Browse Source

Correct Deactivate

git-svn-id: http://subversion.jackaudio.org/jack/jack2/trunk/jackmp@1300 0c269be4-1314-0410-8aa9-9f06e86f4224
tags/0.59
sletz 19 years ago
parent
commit
fcb9e5e6c9
1 changed files with 25 additions and 23 deletions
  1. +25
    -23
      common/JackServer.cpp

+ 25
- 23
common/JackServer.cpp View File

@@ -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)


Loading…
Cancel
Save