From 311c1bff4ef86cc46272c382c4e5bdbaa15aba83 Mon Sep 17 00:00:00 2001 From: Robin Gareus Date: Sun, 18 Jun 2023 02:41:06 +0200 Subject: [PATCH] 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. --- gtk2_ardour/engine_dialog.cc | 16 ++++++---------- 1 file changed, 6 insertions(+), 10 deletions(-) diff --git a/gtk2_ardour/engine_dialog.cc b/gtk2_ardour/engine_dialog.cc index 6871e1e3f2..ce39a07ee4 100644 --- a/gtk2_ardour/engine_dialog.cc +++ b/gtk2_ardour/engine_dialog.cc @@ -899,7 +899,7 @@ EngineControl::midi_latency_adjustment_changed (Gtk::Adjustment* a, MidiDeviceSe if (ARDOUR::AudioEngine::instance ()->running () && !_measure_midi) { std::shared_ptr backend = ARDOUR::AudioEngine::instance ()->current_backend (); assert (backend); - if (backend->can_change_systemic_latency_when_running () && device->enabled) { + if (device->enabled) { if (for_input) { backend->set_systemic_midi_input_latency (device->name, device->input_latency); } else { @@ -920,7 +920,7 @@ EngineControl::midi_device_enabled_toggled (ArdourButton* b, MidiDeviceSettings std::shared_ptr backend = ARDOUR::AudioEngine::instance ()->current_backend (); assert (backend); backend->set_midi_device_enabled (device->name, device->enabled); - if (backend->can_change_systemic_latency_when_running () && device->enabled) { + if (device->enabled) { backend->set_systemic_midi_input_latency (device->name, device->input_latency); backend->set_systemic_midi_output_latency (device->name, device->output_latency); } @@ -2881,10 +2881,8 @@ EngineControl::on_switch_page (GtkNotebookPage*, guint page_num) /* undo special case from push_state_to_backend() when measuring midi latency */ if (_measure_midi && ARDOUR::AudioEngine::instance ()->running ()) { std::shared_ptr backend = ARDOUR::AudioEngine::instance ()->current_backend (); - if (backend->can_change_systemic_latency_when_running ()) { - for (vector::const_iterator p = _midi_devices.begin (); p != _midi_devices.end (); ++p) { - backend->set_midi_device_enabled ((*p)->name, (*p)->enabled); - } + for (vector::const_iterator p = _midi_devices.begin (); p != _midi_devices.end (); ++p) { + backend->set_midi_device_enabled ((*p)->name, (*p)->enabled); } } _measure_midi.reset (); @@ -3195,10 +3193,8 @@ EngineControl::use_latency_button_clicked () uint32_t one_way = max ((ARDOUR::samplecnt_t)0, extra / 2); _measure_midi->input_latency = one_way; _measure_midi->output_latency = one_way; - if (backend->can_change_systemic_latency_when_running ()) { - backend->set_systemic_midi_input_latency (_measure_midi->name, one_way); - backend->set_systemic_midi_output_latency (_measure_midi->name, one_way); - } + backend->set_systemic_midi_input_latency (_measure_midi->name, one_way); + backend->set_systemic_midi_output_latency (_measure_midi->name, one_way); notebook.set_current_page (midi_tab); } else { MTDM* mtdm = ARDOUR::AudioEngine::instance ()->mtdm ();