return true;
}
+bool
+EngineControl::stop_engine ()
+{
+ if (ARDOUR::AudioEngine::instance()->stop()) {
+ MessageDialog msg(*this,
+ ARDOUR::AudioEngine::instance()->get_last_backend_error());
+ msg.run();
+ return false;
+ }
+ return true;
+}
+
void
EngineControl::on_response (int response_id)
{
if (was_running) {
if (restart_required) {
- if (ARDOUR_UI::instance()->disconnect_from_engine ()) {
+ if (ARDOUR::AudioEngine::instance()->stop()) {
return -1;
}
}
}
-
if (change_driver && backend->set_driver (get_driver())) {
error << string_compose (_("Cannot set driver to %1"), get_driver()) << endmsg;
return -1;
if (ARDOUR::AudioEngine::instance()->running()) {
// TODO - mark as 'stopped for latency
- ARDOUR_UI::instance()->disconnect_from_engine ();
+ stop_engine ();
}
{
EngineControl::connect_disconnect_click()
{
if (ARDOUR::AudioEngine::instance()->running()) {
- ARDOUR_UI::instance()->disconnect_from_engine ();
+ stop_engine ();
} else {
- ARDOUR_UI::instance()->reconnect_to_engine ();
+ start_engine ();
}
}