Browse Source

Rework JackEngine::Shutdown.

tags/v1.9.10
Stephane Letz 13 years ago
parent
commit
2f9b93d0eb
5 changed files with 10 additions and 32 deletions
  1. +0
    -13
      common/JackEngine.cpp
  2. +1
    -3
      common/JackEngine.h
  3. +1
    -9
      common/JackLockedEngine.h
  4. +7
    -6
      common/JackServer.cpp
  5. +1
    -1
      common/JackServer.h

+ 0
- 13
common/JackEngine.cpp View File

@@ -94,19 +94,6 @@ int JackEngine::Close()
return 0;
}

void JackEngine::ShutDown()
{
jack_log("JackEngine::ShutDown");
// Shutdown remaining clients (RT is stopped)
for (int i = fEngineControl->fDriverNum; i < CLIENT_NUM; i++) {
if (JackLoadableInternalClient* loadable_client = dynamic_cast<JackLoadableInternalClient*>(fClientTable[i])) {
jack_log("JackEngine::ShutDown loadable client = %s", loadable_client->GetClientControl()->fName);
loadable_client->ShutDown();
}
}
}

void JackEngine::NotifyQuit()
{
fChannel.NotifyQuit();


+ 1
- 3
common/JackEngine.h View File

@@ -101,9 +101,7 @@ class SERVER_EXPORT JackEngine : public JackLockAble

int Open();
int Close();
void ShutDown();

// Client management
int ClientCheck(const char* name, int uuid, char* name_res, int protocol, int options, int* status);


+ 1
- 9
common/JackLockedEngine.h View File

@@ -103,15 +103,7 @@ class SERVER_EXPORT JackLockedEngine
return fEngine.Close();
CATCH_EXCEPTION_RETURN
}
void ShutDown()
{
// No lock needed
TRY_CALL
fEngine.ShutDown();
CATCH_EXCEPTION
}

// Client management
int ClientCheck(const char* name, int uuid, char* name_res, int protocol, int options, int* status)
{


+ 7
- 6
common/JackServer.cpp View File

@@ -86,7 +86,7 @@ int JackServer::Open(jack_driver_desc_t* driver_desc, JSList* driver_params)
goto fail_close1;
}

if (fChannel.Open(fEngineControl->fServerName, this) < 0) {
if (fRequestChannel.Open(fEngineControl->fServerName, this) < 0) {
jack_error("Server channel open error");
goto fail_close2;
}
@@ -120,7 +120,7 @@ fail_close4:
fEngine->Close();

fail_close3:
fChannel.Close();
fRequestChannel.Close();

fail_close2:
fAudioDriver->Close();
@@ -133,7 +133,7 @@ fail_close1:
int JackServer::Close()
{
jack_log("JackServer::Close");
fChannel.Close();
fRequestChannel.Close();
fAudioDriver->Detach();
fAudioDriver->Close();
fFreewheelDriver->Close();
@@ -182,16 +182,17 @@ int JackServer::Start()
if (fAudioDriver->Start() < 0) {
return -1;
}
return fChannel.Start();
return fRequestChannel.Start();
}

int JackServer::Stop()
{
jack_log("JackServer::Stop");
fEngine->NotifyQuit();
fChannel.Stop();
fRequestChannel.Stop();
fEngine->ShutDown();
fEngine->NotifyFailure(JackFailure, "JACK server has been closed");

if (fFreewheel) {
return fThreadedFreewheelDriver->Stop();


+ 1
- 1
common/JackServer.h View File

@@ -55,7 +55,7 @@ class SERVER_EXPORT JackServer
JackLockedEngine* fEngine;
JackEngineControl* fEngineControl;
JackGraphManager* fGraphManager;
JackServerChannel fChannel;
JackServerChannel fRequestChannel;
JackConnectionManager fConnectionState;
JackSynchro fSynchroTable[CLIENT_NUM];
bool fFreewheel;


Loading…
Cancel
Save