Commit Graph

328 Commits

Author SHA1 Message Date
luz paz 364f2f0788 Fix typos in gtk2_ardour/ directory
Found via `codespell -q 3 -S *.po,./share/patchfiles,./libs -L ba,buss,busses,doubleclick,hsi,ontop,ro,seh,siz,sur,te,trough,ue`
2022-01-26 12:35:38 -05:00
Jim Ramsay 79a365edce
Allow latency measurements even if inverted wiring is detected
Inverted wiring is important to call out when detected, but the measured
latency is still valid and should be applicable.
2022-01-04 15:54:49 +01:00
Robin Gareus aae8252341
Fix engine-dialog MIDI Dropdown issue
Sensitivity is managed by EngineControl::update_sensitivity,
prior settings in update_midi_options() were ignored.

This also fixes the layout (MIDI dropdown width) and midi-option
value when changing backends.
2021-05-30 18:54:00 +02:00
Robin Gareus adcc5be728 Retain devices when device list changes
EngineControl::device_list_changed calls
list_devices, which clears and refills the
I/O dropdown. This resulted in changed callbacks
EngineControl::input_device_changed which in turn
unsets the device in the backend:
set_input_device_name("").

The I/O devices were reset (use first available).
2021-05-29 17:54:39 +02:00
Robin Gareus 3a7304ca01
Fix session loading when aborting latency measurement #8691
Stop the engine if it was started for latency measurement
but measurement was aborted.

Previously the engine was kept running and the "Start' button
was not available.
If this happened during initial session loading, a user
would have to manually restart the engine to proceed.
2021-05-12 00:11:43 +02:00
Robin Gareus 4abde9972d
Yet another fix for asymetric I/O latencies 2021-04-15 03:44:33 +02:00
Robin Gareus 350938b68e
Fix crash at exit when EngineDialog shows some page other than 1st
#1  std::operator==<char> (__lhs=<error reading variable: Cannot access memory at address 0x801f0f1f>) at /usr/include/c++/8/bits/basic_string.h:6058
#2  EngineControl::get_matching_state at ../gtk2_ardour/engine_dialog.cc:1874
#3  EngineControl::get_saved_state_for_currently_displayed_backend_and_device() at ../gtk2_ardour/engine_dialog.cc:1893
#4  EngineControl::post_push() at ../gtk2_ardour/engine_dialog.cc:2655
#5  EngineControl::push_state_to_backend(bool) at ../gtk2_ardour/engine_dialog.cc:2643
#6  EngineControl::on_switch_page(_GtkNotebookPage*, unsigned int) (this=0x55bc43fd4d40, page_num=1) at ../gtk2_ardour/engine_dialog.cc:2988
[...]
#20  () at /usr/lib/x86_64-linux-gnu/libgtk-x11-2.0.so.0
#21 g_object_run_dispose () at /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
#22 Gtk::VBox::~VBox() () at /usr/lib/x86_64-linux-gnu/libgtkmm-2.4.so.1
#23 EngineControl::~EngineControl() (this=0x55bc43fd4d40, __in_chrg=<optimized out>, __vtt_parm=<optimized out>) at ../gtk2_ardour/engine_dialog.cc:73
2021-01-14 01:54:43 +01:00
Robin Gareus 3adc9e4ec0
Disable latency-measurement for half-duplex devices
This prevents excessive error popup dialog popups when
trying to measure latency for half-duplex devices.
2020-06-30 03:36:52 +02:00
Robin Gareus ab4b268e5f
Display engine setup error #8134
get_last_backend_error() is only set if AudioEngine::start() fails.
When an error occurs earlier in the setup process it not updated.
2020-05-22 00:17:23 +02:00
Robin Gareus 08da389acc
Remove unused condition (MIDI calibration starts engine)
MIDI latency calibration is now only possible when the engine
is running (since 4c8f562053).

This reverts part of e6febe040a
and a2f7abc70b
2020-05-21 22:06:43 +02:00
Robin Gareus 4c8f562053
Better version of 24ca53f97 (engine dialog, MIDI calibration) 2020-05-18 23:01:44 +02:00
Robin Gareus 24ca53f971
Don't autostart engine for MIDI latency compensation 2020-05-18 22:49:31 +02:00
Robin Gareus cbc6bccc36
Try restore the recently used state after device-list refresh
This takes into account if the device is present, and picks
the most recently used state for the available devices.
2020-05-18 15:13:15 +02:00
Robin Gareus dffe780d95
Engine-dialog: latency spinbox sensitivity
This allows to change latency while running using numeric entry
or otherwise makes the spinboxes insensitive.
2020-05-09 01:19:03 +02:00
Robin Gareus fe8df2eeae
Remember I/O ports used for latency measurement 2020-05-09 00:55:40 +02:00
Robin Gareus 8e482ef0fb
Con't work on ALSA nperiod selection (see also d3d120fa) 2020-04-28 17:56:17 +02:00
Robin Gareus 35fe4f79f5
Fix translation context (amend 47e4216012) 2020-04-21 20:50:45 +02:00
Alexandre Prokoudine 47e4216012
Mark user-visible messages for translation 2020-04-21 15:35:52 +02:00
Robin Gareus a2f7abc70b
Continue to load session after MIDI latency calibration
This amends e6febe040a
2020-04-10 01:43:11 +02:00
Robin Gareus e6febe040a
Continue to load session after latency calibration #7998 2020-04-09 23:31:45 +02:00
Robin Gareus 7eb16db628
Default to device reported systemic latency 2020-02-24 04:25:42 +01:00
Robin Gareus 7e899b4199
Restore engine state for auto-start 2020-01-27 22:27:29 +01:00
Paul Davis a416829379 make audio/MIDI setup dialog use ArdourDialog::_sensitive 2020-01-24 15:56:37 -07:00
Robin Gareus 2b55d6dce3
First batch of MessageDialog replacements 2019-12-14 23:44:01 +01:00
Paul Davis debcb22697 NOOP: line merge 2019-12-11 14:53:00 -07:00
David Robillard 0ac56f1582 Fix incorrect parameter type
This takes a bool.
2019-12-09 22:50:37 +01:00
Paul Davis eda27cc3de move all responsibility for autostart into StartupFSM and out of engine dialog 2019-11-06 17:35:30 -07:00
Paul Davis a16f004d24 fix vanished audio/MIDI setup window after "Start" is clicked anytime other than during startup 2019-10-29 18:20:55 -06:00
Paul Davis 015eb03bd5 remove debug output 2019-10-24 21:32:46 -06:00
Paul Davis a4723ab8d9 NOOP: newline removal; space injection 2019-10-24 21:32:46 -06:00
Paul Davis 44445ea309 remove Session::AudioMidiSetupRequired signal (no longer necessary) 2019-10-12 12:45:18 -06:00
Paul Davis da2d6312c4 call parent ::on_response() 2019-10-11 13:53:48 -06:00
Paul Davis 03a248d517 make EngineDialog behavior more appropriate for use in both startup and non-startup conditions 2019-10-10 16:52:00 -06:00
Paul Davis 1be0c0efe7 engine dialog should emit response and handle it, not just call its own response dialog 2019-10-10 16:52:00 -06:00
Robin Gareus 5044dad3f2
Fix a duplicate layout parent issue 2019-09-29 22:42:02 +02:00
Robin Gareus 478f165295
Re-layout engine dialog, improve "Autostart" button position 2019-09-27 13:58:28 +02:00
Robin Gareus 9d65350600
Add use-these-engine-settings-from-now-on checkbox
Functional, but this needs a layout fix, still.
2019-09-26 21:12:37 +02:00
Paul Davis 9c0beeb759 fix problem with ArdourDialog::on_delete_event() not being called when appropriate during app startup
The dialog is run using gtk_dialog_run() which uses on_response() to deal with delete/close events unlike a regular
top level event loop.

Probably even better would be run run the dialog from the top level event loop, but this is a bit complex
2019-09-22 21:45:30 -06:00
Robin Gareus 799e535b2a
Fix latency-measurement port-name display
In case there are no pretty-names, a blank text was displayed
2019-09-20 23:30:05 +02:00
Robin Gareus 4050ca5633
Update GPL boilerplate and (C)
Copyright-holder and year information is extracted from git log.

git history begins in 2005. So (C) from 1998..2005 is lost. Also some
(C) assignment of commits where the committer didn't use --author.
2019-08-03 15:53:15 +02:00
Robin Gareus d70b03ae61
Fix engine-dialog for backends without MIDI options 2019-07-25 17:49:42 +02:00
Robin Gareus 83f484a3ce
Engine Dialog: update MIDI devices, merge settings with state 2019-05-06 01:29:18 +02:00
Robin Gareus ae181f5f66
Fix MIDI latency measurement
* Restore active state of devices after measurement
* Don't manually set latencies for measurement (backend handles this)
* remove superfluous call to stop measurement
2019-05-06 00:13:47 +02:00
Robin Gareus 837678bdcc
Use pretty-port-names in latency measurement dialog 2019-05-05 18:15:18 +02:00
Robin Gareus df90d4f636
Engine Dialog MIDI tweaks
* Allow to dynamically en/disable MIDI devices when running
* Push midi latencies directly to running backend
2018-12-23 21:58:56 +01:00
Robin Gareus 2d87af1988
Engine-dialog: skip audio device update when running
Only update MIDI devices list, which can be dynamic. Audio devices
which are in-use can't be updated, and the GUI may no longer show
the current device (since it is in use).
2018-12-23 21:58:56 +01:00
Robin Gareus bf874562ef
Fix inconsistent session-check
under some circumstances, e.g. session-exit it is possible to to have
inconsistent information
    ARDOUR_UI::instance()->session_loaded == true
 && ARDOUR_UI::instance()->the_session() == NULL

This lead to a crash on MacOS/X. stopping the engine at exit may destory
an Aggregate Device, leading to DeviceListChanged which in turn updates
the engine-dialog..
 else if (ARDOUR_UI::instance()->session_loaded) {
   float active_sr = ARDOUR_UI::instance()->the_session()->nominal_sample_rate ();
2018-12-06 02:24:30 +01:00
Robin Gareus 8f216afa24 Another engine dialog edge-case fix to set the samplerate
Honor the sesssion's sample-rate when showing the dialog with the engine
stopped. This can happen when then engine dies or hide/show the dialog
after manually stopping the engine.
2018-11-11 19:51:56 +01:00
Robin Gareus 38301c808c Fix sample-rate override when changing backends or devices
This indirectly honors session_loaded() and prevents that restoring
engine-state can change the sample-rate dropdown when a session is loaded.
2018-11-11 18:50:01 +01:00
Paul Davis 30b087ab3d globally change all use of "frame" to refer to audio into "sample".
Generated by tools/f2s. Some hand-editing will be required in a few places to fix up comments related to timecode
and video in order to keep the legible
2017-09-18 12:39:17 -04:00