summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTim Mayberry <mojofunk@gmail.com>2015-10-03 15:49:55 +1000
committerTim Mayberry <mojofunk@gmail.com>2015-10-06 13:29:57 +1000
commitef0f13cb840376a8bc8553a509597e0c8cf5a7ea (patch)
tree9c330646ae37492bf9b4d42b1d16a7ae795a7710
parent528ad3416affba88adef19e7f8db71504772e057 (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.cc16
-rw-r--r--gtk2_ardour/engine_dialog.h1
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;