Commit Graph

353 Commits

Author SHA1 Message Date
Paul Davis dfbe4f61cd more debug output for bad buffer sized trout 2023-10-12 21:19:21 -06:00
Robin Gareus 6c96c9bd4a
Add workaround for blank engine-dialog with some XWayland installs 2023-08-22 20:57:43 +02:00
Robin Gareus 92b86d8dd6
Prepare for systemic_hw_*_latency API removal
This API is not used by any backend anymore.
2023-06-21 23:58:46 +02:00
Robin Gareus 1b6ba4d71d
Improve error message 2023-06-18 16:24:33 +02:00
Robin Gareus 311c1bff4e
EngineDialog: MIDI config is always directly apply-able
`can_change_systemic_latency_when_running()` is only relevant for
Audio. This allows to en/disable MIDI ports and set MIDI port
systemic latency with the PortAudio backend.
2023-06-18 02:41:06 +02:00
Robin Gareus d66b70f3a2
Distinct engine-states per sample-rate
Previously only the one engine-state per device was
saved. However systemic latency depends on the sample-rate
(and buffersize)
2023-06-02 22:31:02 +02:00
Robin Gareus 3b8cbd7c8f
Revert "Debug xwayland blank Engine dialog, allow to resize the window"
This reverts commit bb474b1b8e.
2023-05-24 00:45:16 +02:00
Robin Gareus bb474b1b8e
Debug xwayland blank Engine dialog, allow to resize the window
Revert this before release
2023-05-23 03:19:34 +02:00
Robin Gareus ca88794ab7
Engine-dialog: push splash on error
When starting the engine fails, the splash screen
needs to remain behind the dialog.
2023-05-12 03:34:47 +02:00
Paul Davis b35518e212 switch from boost::{shared,weak}_ptr to std::{shared,weak}_ptr
This is mostly a simple lexical search+replace but the absence of operator< for
std::weak_ptr<T> leads to some complications, particularly with Evoral::Sequence
and ExportPortChannel.
2023-03-24 14:19:15 -06:00
Robin Gareus 138b25c0b0
Do not update devices when JACK is already running 2023-02-01 03:09:13 +01:00
Robin Gareus 65317ef0e0 Prevent engine dialog from changing devices when the engine is running
This fixes an issue with excessive "sample rate mismatches" warnings
via device_changed -> set_in/output_device_name -> set_sample_rate
2023-01-22 20:45:29 +01:00
Robin Gareus 1ad22e9ce9
Make engine dialog non-resizable (remove resize workarounds) 2022-12-30 23:43:35 +01:00
Alexandre Prokoudine 05afb53743 Make capitalization more consistent across the UI
This commit mostly changes "Sample rate" to "Sample Rate"
2022-11-11 03:53:19 +03:00
luz paz 47c525315d Fix various typos
Found via `codespell -q 3 -S *.po,./.git,./share/patchfiles,./libs,./msvc_extra_headers,./share/web_surfaces,*.patch  -L ba,buss,busses,discreet,doubleclick,hsi,ontop,ro,scrollin,seh,siz,sord,sur,te,trough,ue`
2022-08-03 12:10:01 -06:00
Robin Gareus 95fceceeb4
Engine-dialog: move MIDI system to advanced (amend 0a5b62a9e1b0) 2022-07-11 21:45:55 +02:00
Robin Gareus 0b2be03196
Overhaul Engine Dialog
* Update Layout
* Move action buttons to action-area
* Hide insensitive "Control App" button
* Set MIDI device option from backend
* Hide Latency Setup in Expander by default
2022-07-11 21:45:55 +02:00
Robin Gareus ddca042b7b
Engine Dialog: fix memory-leak, do not manage Labels
Gtk::manage only destroys managed widgets when the parent container
is destroyed. In Ardour's case this is not the case since
Gtkmm2ext::container_clear() is used to unpack/repack widgets
as required.
2022-07-11 21:45:54 +02:00
Robin Gareus 8f4aab9584
NO-OP: clang-format 2022-07-11 21:45:54 +02:00
Robin Gareus ee63b65df8
Engine Dialog: append monitor-model option
The Monitor Model usually depends on the studio setup (hardware
mixing desk), but also to some extent on the audio interface (zero-
latency monitoring). Since a user may also use different interfaces
(e.g. with a laptop), it makes sense to expose the monitor model
preference in the engine-dialog.

NB. It is not part of the engine-state (!), but still a preference.
2022-07-11 21:45:54 +02:00
Robin Gareus bdf6570ea6
Engine Dialog: remove I/O channel count setting
This has no been useful since years. Both Ardour and JACK
backends always use all available ports and the setting was
only useful to "hide" excess ports.
2022-07-11 21:45:54 +02:00
Robin Gareus 2970cd4b70
Engine Dialog: move start/stop button to action-area 2022-07-11 21:45:54 +02:00
Mads Kiilerich 7f649efd42
gtkmm: use set_can_focus() instead of deprecated Gtk::Widget::set_flags(CAN_FOCUS) 2022-04-08 21:11:06 +02:00
Paul Davis ca22ba77e1 Constification: make Stateful::get_state() const, with all other required const-ness added (GUI) 2022-04-06 21:56:59 -06:00
Matthijs van Otterdijk 3050fe24e5 use backend_client_name parsed from options when initializing backend 2022-03-01 02:36:11 +01:00
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