summaryrefslogtreecommitdiff
path: root/gtk2_ardour/engine_dialog.cc
diff options
context:
space:
mode:
authorRobin Gareus <robin@gareus.org>2020-04-10 01:23:00 +0200
committerRobin Gareus <robin@gareus.org>2020-04-10 01:43:11 +0200
commita2f7abc70b52b53ddeda985b7941e944e7bfec12 (patch)
tree918d393b4b4368820fb8a12b1592d2f951bea7a2 /gtk2_ardour/engine_dialog.cc
parent5f1431aedaa1072cefb095e08070bcec1dcbda98 (diff)
Continue to load session after MIDI latency calibration
This amends e6febe040a
Diffstat (limited to 'gtk2_ardour/engine_dialog.cc')
-rw-r--r--gtk2_ardour/engine_dialog.cc15
1 files changed, 9 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 {