summaryrefslogtreecommitdiff
path: root/gtk2_ardour/engine_dialog.cc
diff options
context:
space:
mode:
authorRobin Gareus <robin@gareus.org>2017-04-27 21:10:10 +0200
committerRobin Gareus <robin@gareus.org>2017-04-27 21:10:10 +0200
commit6ece6ed40756135dd2da87f298a1a2a66b293f0e (patch)
tree5e45ec67c2321cf84947f8cc81d0d55e7b0d9226 /gtk2_ardour/engine_dialog.cc
parentcba2543131e3ffa0f58f94e65192ace2310293d3 (diff)
EngineDialog: immediadely push latency changes to running backends
Diffstat (limited to 'gtk2_ardour/engine_dialog.cc')
-rw-r--r--gtk2_ardour/engine_dialog.cc9
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);