summaryrefslogtreecommitdiff
path: root/gtk2_ardour
diff options
context:
space:
mode:
authorPaul Davis <paul@linuxaudiosystems.com>2013-08-03 16:37:10 -0400
committerPaul Davis <paul@linuxaudiosystems.com>2013-08-03 16:37:10 -0400
commitc2e7c32c53b481ef6889de834fe43b0853398c58 (patch)
tree8e03516ab8c1f957b6258ed639b78dc5392b8636 /gtk2_ardour
parent1c4d00e8b70785ce58f868645dad93afa1855193 (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.cc25
-rw-r--r--gtk2_ardour/engine_dialog.cc12
-rw-r--r--gtk2_ardour/startup.cc3
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;