diff options
author | Robin Gareus <robin@gareus.org> | 2020-04-10 01:23:00 +0200 |
---|---|---|
committer | Robin Gareus <robin@gareus.org> | 2020-04-10 01:43:11 +0200 |
commit | a2f7abc70b52b53ddeda985b7941e944e7bfec12 (patch) | |
tree | 918d393b4b4368820fb8a12b1592d2f951bea7a2 /gtk2_ardour | |
parent | 5f1431aedaa1072cefb095e08070bcec1dcbda98 (diff) |
Continue to load session after MIDI latency calibration
This amends e6febe040a
Diffstat (limited to 'gtk2_ardour')
-rw-r--r-- | gtk2_ardour/engine_dialog.cc | 15 | ||||
-rw-r--r-- | gtk2_ardour/engine_dialog.h | 1 |
2 files changed, 10 insertions, 6 deletions
diff --git a/gtk2_ardour/engine_dialog.cc b/gtk2_ardour/engine_dialog.cc index a45c97aa05..3f4438de1e 100644 --- a/gtk2_ardour/engine_dialog.cc +++ b/gtk2_ardour/engine_dialog.cc @@ -115,6 +115,7 @@ EngineControl::EngineControl () , queue_device_changed (false) , _have_control (true) , block_signals(0) + , _was_calibrating_midi (false) { using namespace Notebook_Helpers; vector<string> backend_names; @@ -2869,8 +2870,6 @@ EngineControl::set_desired_sample_rate (uint32_t sr) void EngineControl::on_switch_page (GtkNotebookPage*, guint page_num) { - bool was_calibrating_midi = _measure_midi != 0; - if (page_num == 0) { _measure_midi.reset(); update_sensitivity (); @@ -2942,11 +2941,14 @@ EngineControl::on_switch_page (GtkNotebookPage*, guint page_num) * RESPONSE_OK is a NO-OP when the dialog is displayed as Window * from a running instance. */ - if (page_num == 0 && _have_control && was_calibrating_midi && ARDOUR::AudioEngine::instance()->running()) { - boost::shared_ptr<ARDOUR::AudioBackend> backend = ARDOUR::AudioEngine::instance()->current_backend(); - if (backend && backend->can_change_systemic_latency_when_running ()) { - response (RESPONSE_OK); + if (page_num == 0) { + if (_have_control && _was_calibrating_midi && ARDOUR::AudioEngine::instance()->running()) { + boost::shared_ptr<ARDOUR::AudioBackend> backend = ARDOUR::AudioEngine::instance()->current_backend(); + if (backend && backend->can_change_systemic_latency_when_running ()) { + response (RESPONSE_OK); + } } + _was_calibrating_midi = false; } } @@ -3162,6 +3164,7 @@ EngineControl::use_latency_button_clicked () 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); + _was_calibrating_midi = true; } notebook.set_current_page (midi_tab); } else { diff --git a/gtk2_ardour/engine_dialog.h b/gtk2_ardour/engine_dialog.h index 5d3d6854d9..b63261e8a9 100644 --- a/gtk2_ardour/engine_dialog.h +++ b/gtk2_ardour/engine_dialog.h @@ -373,6 +373,7 @@ private: void midi_latency_adjustment_changed(Gtk::Adjustment *, MidiDeviceSettings, bool); void midi_device_enabled_toggled(ArdourWidgets::ArdourButton *, MidiDeviceSettings); sigc::connection lm_back_button_signal; + bool _was_calibrating_midi; }; #endif /* __gtk2_ardour_engine_dialog_h__ */ |