use AudioBackendInfo::already_configured() to correctly determine if backend requires...
authorPaul Davis <paul@linuxaudiosystems.com>
Thu, 1 May 2014 13:15:26 +0000 (09:15 -0400)
committerPaul Davis <paul@linuxaudiosystems.com>
Thu, 1 May 2014 13:15:26 +0000 (09:15 -0400)
Fixes issues when using JACK backend in combination with others, that prevented connecting to an existing JACK server.

libs/ardour/audioengine.cc

index 0b01f97f7a2ab4cdca473ea2566d32505097d212..8d4b17ebd4c607f27065bd79d66b703e4518b46a 100644 (file)
@@ -594,7 +594,7 @@ AudioEngine::set_backend (const std::string& name, const std::string& arg1, cons
                if (b->second->instantiate (arg1, arg2)) {
                        throw failed_constructor ();
                }
-
+               
                _backend = b->second->factory (*this);
 
        } catch (exception& e) {
@@ -1016,17 +1016,15 @@ AudioEngine::halted_callback (const char* why)
 bool
 AudioEngine::setup_required () const
 {
-       /* If there is only a single backend and it claims to be configured
-        * already there is no setup to be done.
-        *
-        * Primarily for a case where there is only a JACK backend and
-        * JACK is already running.
-        */
-        
-       if (_backends.size() == 1 && _backends.begin()->second->already_configured()) {
-               return false;
+       if (_backend) {
+               if (_backend->info().already_configured())
+                       return false;
+       } else {
+               if (_backends.size() == 1 && _backends.begin()->second->already_configured()) {
+                       return false;
+               }
        }
-
+       
        return true;
 }