diff --git a/ChangeLog b/ChangeLog index 22951bc7..f3ed5be2 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,6 +1,10 @@ ---------------------------- - Jackdmp changes log --------------------------- + Jackdmp changes log +--------------------------- + +2006-09-11 Stephane Letz + + * Handling of LoopBack driver only when really needed. 2006-09-06 Stephane Letz @@ -9,7 +13,7 @@ 2006-09-04 Stephane Letz * Correct Windows VC++ projects. - + 2006-09-03 Stephane Letz * First import of version 0.58 code diff --git a/common/JackServer.cpp b/common/JackServer.cpp index 269b41fd..fdc37851 100644 --- a/common/JackServer.cpp +++ b/common/JackServer.cpp @@ -51,7 +51,7 @@ JackServer::JackServer(bool sync, long timeout, bool rt, long priority, long loo fSignal = JackGlobals::MakeInterProcessSync(); fEngine = new JackEngine(fGraphManager, fSynchroTable, fEngineControl, fSignal, sync, timeout, rt, priority, verbose); fFreewheelDriver = new JackThreadedDriver(new JackFreewheelDriver("freewheel", fEngine, fSynchroTable)); - fLoopbackDriver = new JackLoopbackDriver("loopback", fEngine, fSynchroTable); + fLoopbackDriver = (loopback > 0) ? new JackLoopbackDriver("loopback", fEngine, fSynchroTable) : NULL; fChannel = JackGlobals::MakeServerChannel(); fState = new JackConnectionManager(); fFreewheel = false; @@ -111,7 +111,7 @@ int JackServer::Open(jack_driver_desc_t* driver_desc, JSList* driver_params) } // Before engine open - if (fLoopbackDriver->Open(fEngineControl->fBufferSize, fEngineControl->fSampleRate, 1, 1, fLoopback, fLoopback, false, "loopback", "loopback", 0, 0) != 0) { + if (fLoopback > 0 && fLoopbackDriver->Open(fEngineControl->fBufferSize, fEngineControl->fSampleRate, 1, 1, fLoopback, fLoopback, false, "loopback", "loopback", 0, 0) != 0) { jack_error("Cannot open driver"); return -1; } @@ -155,7 +155,8 @@ int JackServer::Close() fLoopbackDriver->Detach(); fAudioDriver->Close(); fFreewheelDriver->Close(); - fLoopbackDriver->Close(); + if (fLoopback > 0) + fLoopbackDriver->Close(); fEngine->Close(); #ifdef __APPLE__