diff options
author | Paul Davis <paul@linuxaudiosystems.com> | 2013-08-03 16:37:10 -0400 |
---|---|---|
committer | Paul Davis <paul@linuxaudiosystems.com> | 2013-08-03 16:37:10 -0400 |
commit | c2e7c32c53b481ef6889de834fe43b0853398c58 (patch) | |
tree | 8e03516ab8c1f957b6258ed639b78dc5392b8636 /gtk2_ardour | |
parent | 1c4d00e8b70785ce58f868645dad93afa1855193 (diff) |
add tim's jack_utils code to rationalize setup of JACK config
Diffstat (limited to 'gtk2_ardour')
-rw-r--r-- | gtk2_ardour/ardour_ui.cc | 25 | ||||
-rw-r--r-- | gtk2_ardour/engine_dialog.cc | 12 | ||||
-rw-r--r-- | gtk2_ardour/startup.cc | 3 |
3 files changed, 14 insertions, 26 deletions
diff --git a/gtk2_ardour/ardour_ui.cc b/gtk2_ardour/ardour_ui.cc index e764c50d4e..7e6ce10300 100644 --- a/gtk2_ardour/ardour_ui.cc +++ b/gtk2_ardour/ardour_ui.cc @@ -400,13 +400,23 @@ ARDOUR_UI::attach_to_engine () engine->BackendAvailable.connect_same_thread (forever_connections, boost::bind (&ARDOUR_UI::post_engine, this)); ARDOUR::Port::set_connecting_blocked (ARDOUR_COMMAND_LINE::no_connect_ports); + + /* if there is only one audio/midi backend, and it does not require setup, get our use of it underway + * right here (we need to know the client name and potential session ID + * to do this, which is why this is here, rather than in, say, + * ARDOUR::init(). + */ + + if (!AudioEngine::instance()->setup_required()) { + const AudioBackendInfo* backend = AudioEngine::instance()->available_backends().front(); + AudioEngine::instance()->set_backend (backend->name, ARDOUR_COMMAND_LINE::backend_client_name, ARDOUR_COMMAND_LINE::backend_session_uuid); + AudioEngine::instance()->start (); + } } void ARDOUR_UI::post_engine () { - cerr << "Backend available!\n"; - /* Things to be done once we have a backend running in the AudioEngine */ @@ -2565,17 +2575,6 @@ ARDOUR_UI::get_session_parameters (bool quit_on_cancel, bool should_be_new, stri int ret = -1; bool likely_new = false; - /* if the audio/midi backend does not require setup, get our use of it underway - * right here - */ - - if (!EngineControl::need_setup()) { - vector<const AudioBackendInfo*> backends = AudioEngine::instance()->available_backends(); - cerr << "Setting up backend " << backends.front()->name; - AudioEngine::instance()->set_backend (backends.front()->name, ARDOUR_COMMAND_LINE::backend_client_name, ARDOUR_COMMAND_LINE::backend_session_uuid); - AudioEngine::instance()->start (); - } - /* deal with any existing DIRTY session now, rather than later. don't * treat a non-dirty session this way, so that it stays visible * as we bring up the new session dialog. diff --git a/gtk2_ardour/engine_dialog.cc b/gtk2_ardour/engine_dialog.cc index 2db93d75ec..b52d3a7a15 100644 --- a/gtk2_ardour/engine_dialog.cc +++ b/gtk2_ardour/engine_dialog.cc @@ -593,18 +593,6 @@ EngineControl::build_command_line (vector<string>& cmd) } } -bool -EngineControl::need_setup () -{ - vector<const ARDOUR::AudioBackendInfo*> backends = ARDOUR::AudioEngine::instance()->available_backends(); - - if (backends.size() == 1 && backends.front()->already_configured()) { - return false; - } - - return true; -} - int EngineControl::setup_engine () { diff --git a/gtk2_ardour/startup.cc b/gtk2_ardour/startup.cc index e24e7d6989..8314a0986e 100644 --- a/gtk2_ardour/startup.cc +++ b/gtk2_ardour/startup.cc @@ -34,6 +34,7 @@ #include "pbd/stacktrace.h" #include "pbd/openuri.h" +#include "ardour/audioengine.h" #include "ardour/filesystem_paths.h" #include "ardour/recent_sessions.h" #include "ardour/session.h" @@ -91,7 +92,7 @@ ArdourStartup::ArdourStartup (bool require_new, const std::string& session_name, , _existing_session_chooser_used (false) { new_user = !Glib::file_test (been_here_before_path(), Glib::FILE_TEST_EXISTS); - need_audio_setup = EngineControl::need_setup (); + need_audio_setup = AudioEngine::instance()->setup_required (); need_session_info = (session_name.empty() || require_new); _provided_session_name = session_name; |