From ef0f13cb840376a8bc8553a509597e0c8cf5a7ea Mon Sep 17 00:00:00 2001 From: Tim Mayberry Date: Sat, 3 Oct 2015 15:49:55 +1000 Subject: Stop engine when clicking back button in latency measurement tab of EngineControl dialog The engine is started when you switch to latency measurement tab but it isn't stopped if you just click the back button without measuring for latency. --- gtk2_ardour/engine_dialog.cc | 16 ++++++++++++---- gtk2_ardour/engine_dialog.h | 1 + 2 files changed, 13 insertions(+), 4 deletions(-) diff --git a/gtk2_ardour/engine_dialog.cc b/gtk2_ardour/engine_dialog.cc index 82b7645161..8e9df2c5c5 100644 --- a/gtk2_ardour/engine_dialog.cc +++ b/gtk2_ardour/engine_dialog.cc @@ -186,7 +186,8 @@ EngineControl::EngineControl () lm_measure_button.add (lm_measure_label); lm_measure_button.signal_clicked().connect (sigc::mem_fun (*this, &EngineControl::latency_button_clicked)); lm_use_button.signal_clicked().connect (sigc::mem_fun (*this, &EngineControl::use_latency_button_clicked)); - lm_back_button_signal = lm_back_button.signal_clicked().connect (sigc::bind (sigc::mem_fun (notebook, &Gtk::Notebook::set_current_page), 0)); + lm_back_button_signal = lm_back_button.signal_clicked().connect( + sigc::mem_fun(*this, &EngineControl::latency_back_button_clicked)); lm_use_button.set_sensitive (false); @@ -726,7 +727,8 @@ EngineControl::enable_latency_tab () lm_back_button_signal = lm_back_button.signal_clicked().connect (sigc::bind (sigc::mem_fun (notebook, &Gtk::Notebook::set_current_page), midi_tab)); lm_preamble.hide (); } else { - lm_back_button_signal = lm_back_button.signal_clicked().connect (sigc::bind (sigc::mem_fun (notebook, &Gtk::Notebook::set_current_page), 0)); + lm_back_button_signal = lm_back_button.signal_clicked().connect( + sigc::mem_fun(*this, &EngineControl::latency_back_button_clicked)); lm_preamble.show (); } @@ -2802,6 +2804,13 @@ EngineControl::latency_button_clicked () } } +void +EngineControl::latency_back_button_clicked () +{ + ARDOUR::AudioEngine::instance()->stop(true); + notebook.set_current_page(0); +} + void EngineControl::use_latency_button_clicked () { @@ -2831,9 +2840,8 @@ EngineControl::use_latency_button_clicked () /* back to settings page */ notebook.set_current_page (0); -} } - +} bool EngineControl::on_delete_event (GdkEventAny* ev) diff --git a/gtk2_ardour/engine_dialog.h b/gtk2_ardour/engine_dialog.h index 7fc0106b36..39ae276162 100644 --- a/gtk2_ardour/engine_dialog.h +++ b/gtk2_ardour/engine_dialog.h @@ -304,6 +304,7 @@ class EngineControl : public ArdourDialog, public PBD::ScopedConnectionList { /* latency measurement */ void latency_button_clicked (); + void latency_back_button_clicked (); bool check_audio_latency_measurement (); bool check_midi_latency_measurement (); sigc::connection latency_timeout; -- cgit v1.2.3