From 652468a34430cb1c7ef841dcc278e2cfb9806ea5 Mon Sep 17 00:00:00 2001 From: Robin Gareus Date: Mon, 18 Apr 2016 14:11:22 +0200 Subject: add a try-autostart-engine option (most recently used settings) --- gtk2_ardour/ardour_ui.cc | 13 +++++++++++-- gtk2_ardour/engine_dialog.cc | 12 ++++++++++++ gtk2_ardour/engine_dialog.h | 1 + 3 files changed, 24 insertions(+), 2 deletions(-) diff --git a/gtk2_ardour/ardour_ui.cc b/gtk2_ardour/ardour_ui.cc index 39bdc9280a..c368572e9c 100644 --- a/gtk2_ardour/ardour_ui.cc +++ b/gtk2_ardour/ardour_ui.cc @@ -5122,10 +5122,19 @@ ARDOUR_UI::do_audio_midi_setup (uint32_t desired_sample_rate) audio_midi_setup->set_desired_sample_rate (desired_sample_rate); audio_midi_setup->set_position (WIN_POS_CENTER); - int response; + // TODO make this a preference. + // (engine state is parsed by the GUI, but currently saved + // in preferences: ARDOUR::Config->extra_xml + // soooo where should this option go?) + if (getenv("TRY_AUTOSTART_ENGINE")) { + audio_midi_setup->try_autostart (); + if (ARDOUR::AudioEngine::instance()->running()) { + return 0; + } + } while (true) { - response = audio_midi_setup->run(); + int response = audio_midi_setup->run(); switch (response) { case Gtk::RESPONSE_OK: if (!AudioEngine::instance()->running()) { diff --git a/gtk2_ardour/engine_dialog.cc b/gtk2_ardour/engine_dialog.cc index da0e6168d9..be21170264 100644 --- a/gtk2_ardour/engine_dialog.cc +++ b/gtk2_ardour/engine_dialog.cc @@ -423,6 +423,18 @@ EngineControl::on_show () ok_button->grab_focus(); } +bool +EngineControl::try_autostart () +{ + if (!start_stop_button.get_sensitive()) { + return false; + } + if (ARDOUR::AudioEngine::instance()->running()) { + return true; + } + return start_engine (); +} + bool EngineControl::start_engine () { diff --git a/gtk2_ardour/engine_dialog.h b/gtk2_ardour/engine_dialog.h index faf12d7c98..8f47f2b5a3 100644 --- a/gtk2_ardour/engine_dialog.h +++ b/gtk2_ardour/engine_dialog.h @@ -49,6 +49,7 @@ class EngineControl : public ArdourDialog, public PBD::ScopedConnectionList { bool set_state (const XMLNode&); void set_desired_sample_rate (uint32_t); + bool try_autostart (); private: Gtk::Notebook notebook; -- cgit v1.2.3