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.
This commit is contained in:
Tim Mayberry 2015-10-03 15:49:55 +10:00
parent 528ad3416a
commit ef0f13cb84
2 changed files with 13 additions and 4 deletions

View File

@ -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)

View File

@ -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;