diff options
author | Robin Gareus <robin@gareus.org> | 2017-04-27 21:10:10 +0200 |
---|---|---|
committer | Robin Gareus <robin@gareus.org> | 2017-04-27 21:10:10 +0200 |
commit | 6ece6ed40756135dd2da87f298a1a2a66b293f0e (patch) | |
tree | 5e45ec67c2321cf84947f8cc81d0d55e7b0d9226 /gtk2_ardour/engine_dialog.cc | |
parent | cba2543131e3ffa0f58f94e65192ace2310293d3 (diff) |
EngineDialog: immediadely push latency changes to running backends
Diffstat (limited to 'gtk2_ardour/engine_dialog.cc')
-rw-r--r-- | gtk2_ardour/engine_dialog.cc | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/gtk2_ardour/engine_dialog.cc b/gtk2_ardour/engine_dialog.cc index dab339641e..d81473bb25 100644 --- a/gtk2_ardour/engine_dialog.cc +++ b/gtk2_ardour/engine_dialog.cc @@ -2985,6 +2985,7 @@ EngineControl::latency_back_button_clicked () void EngineControl::use_latency_button_clicked () { + boost::shared_ptr<ARDOUR::AudioBackend> backend = ARDOUR::AudioEngine::instance()->current_backend(); if (_measure_midi) { ARDOUR::MIDIDM* mididm = ARDOUR::AudioEngine::instance()->mididm (); if (!mididm) { @@ -2995,6 +2996,10 @@ EngineControl::use_latency_button_clicked () uint32_t one_way = max ((ARDOUR::framecnt_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); + } notebook.set_current_page (midi_tab); } else { MTDM* mtdm = ARDOUR::AudioEngine::instance()->mtdm (); @@ -3008,6 +3013,10 @@ EngineControl::use_latency_button_clicked () input_latency_adjustment.set_value (one_way); output_latency_adjustment.set_value (one_way); + if (backend->can_change_systemic_latency_when_running ()) { + backend->set_systemic_input_latency (one_way); + backend->set_systemic_output_latency (one_way); + } /* back to settings page */ notebook.set_current_page (0); |