diff options
author | Tim Mayberry <mojofunk@gmail.com> | 2015-10-03 15:49:55 +1000 |
---|---|---|
committer | Tim Mayberry <mojofunk@gmail.com> | 2015-10-06 13:29:57 +1000 |
commit | ef0f13cb840376a8bc8553a509597e0c8cf5a7ea (patch) | |
tree | 9c330646ae37492bf9b4d42b1d16a7ae795a7710 | |
parent | 528ad3416affba88adef19e7f8db71504772e057 (diff) |
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.
-rw-r--r-- | gtk2_ardour/engine_dialog.cc | 16 | ||||
-rw-r--r-- | 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 (); } @@ -2803,6 +2805,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 () { if (_measure_midi) { @@ -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; |