diff options
author | Robin Gareus <robin@gareus.org> | 2016-04-18 14:11:22 +0200 |
---|---|---|
committer | Robin Gareus <robin@gareus.org> | 2016-04-18 14:11:22 +0200 |
commit | 652468a34430cb1c7ef841dcc278e2cfb9806ea5 (patch) | |
tree | 0193a35836081a0e36fbe97af1f85541e141c151 /gtk2_ardour | |
parent | db56a4da71308cd788f7f4eb00e3f095105c6c91 (diff) |
add a try-autostart-engine option (most recently used settings)
Diffstat (limited to 'gtk2_ardour')
-rw-r--r-- | gtk2_ardour/ardour_ui.cc | 13 | ||||
-rw-r--r-- | gtk2_ardour/engine_dialog.cc | 12 | ||||
-rw-r--r-- | 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 @@ -424,6 +424,18 @@ EngineControl::on_show () } 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 () { if (push_state_to_backend(true) != 0) { 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; |