diff --git a/common/JackServer.cpp b/common/JackServer.cpp index 6c9004d1..abd441a5 100644 --- a/common/JackServer.cpp +++ b/common/JackServer.cpp @@ -185,33 +185,35 @@ int JackServer::Stop() } int JackServer::Activate(int refnum) -{ - fGraphManager->DirectConnect(fFreewheelDriver->GetClientControl()->fRefNum, refnum); - fGraphManager->DirectConnect(refnum, fFreewheelDriver->GetClientControl()->fRefNum); +{ + int fw_refnum = fFreewheelDriver->GetClientControl()->fRefNum; + fGraphManager->DirectConnect(fw_refnum, refnum); + fGraphManager->DirectConnect(refnum, fw_refnum); return fEngine->ClientActivate(refnum); } // Disconnection from the FW must be done in last otherwise an intermediate "unconnected" -// (thus unactivated) state may happen where the client is still checked for its end. -int JackServer::Deactivate(int refnum) -{ - int res = fEngine->ClientDeactivate(refnum); - - // Disconnect only when needed - if (fGraphManager->IsDirectConnection(fFreewheelDriver->GetClientControl()->fRefNum, refnum)) { - fGraphManager->DirectDisconnect(fFreewheelDriver->GetClientControl()->fRefNum, refnum); - } else { - JackLog("JackServer::Deactivate: client = %ld was not activated \n", refnum); - } - - // Disconnect only when needed - if (fGraphManager->IsDirectConnection(refnum, fFreewheelDriver->GetClientControl()->fRefNum)) { - fGraphManager->DirectDisconnect(refnum, fFreewheelDriver->GetClientControl()->fRefNum); - } else { - JackLog("JackServer::Deactivate: client = %ld was not activated \n", refnum); - } - - return res; +// (thus unactivated) state may happen where the client is still checked for its end. +int JackServer::Deactivate(int refnum) +{ + int res = fEngine->ClientDeactivate(refnum); + int fw_refnum = fFreewheelDriver->GetClientControl()->fRefNum; + + // Disconnect only when needed + if (fGraphManager->IsDirectConnection(refnum, fw_refnum)) { + fGraphManager->DirectDisconnect(refnum, fw_refnum); + } else { + JackLog("JackServer::Deactivate: client = %ld was not activated \n", refnum); + } + + // Disconnect only when needed + if (fGraphManager->IsDirectConnection(fw_refnum, refnum)) { + fGraphManager->DirectDisconnect(fw_refnum, refnum); + } else { + JackLog("JackServer::Deactivate: client = %ld was not activated \n", refnum); + } + + return res; } int JackServer::SetBufferSize(jack_nframes_t buffer_size)