From 2f9b93d0eb0e27d94278353de96f4c54b606d7eb Mon Sep 17 00:00:00 2001 From: Stephane Letz Date: Fri, 25 Jan 2013 08:42:47 +0100 Subject: [PATCH] Rework JackEngine::Shutdown. --- common/JackEngine.cpp | 13 ------------- common/JackEngine.h | 4 +--- common/JackLockedEngine.h | 10 +--------- common/JackServer.cpp | 13 +++++++------ common/JackServer.h | 2 +- 5 files changed, 10 insertions(+), 32 deletions(-) diff --git a/common/JackEngine.cpp b/common/JackEngine.cpp index 146a8ce8..aee66070 100644 --- a/common/JackEngine.cpp +++ b/common/JackEngine.cpp @@ -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(fClientTable[i])) { - jack_log("JackEngine::ShutDown loadable client = %s", loadable_client->GetClientControl()->fName); - loadable_client->ShutDown(); - } - } -} - void JackEngine::NotifyQuit() { fChannel.NotifyQuit(); diff --git a/common/JackEngine.h b/common/JackEngine.h index 023063ca..9e059ec7 100644 --- a/common/JackEngine.h +++ b/common/JackEngine.h @@ -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); diff --git a/common/JackLockedEngine.h b/common/JackLockedEngine.h index bbdf2c29..ab2cea3a 100644 --- a/common/JackLockedEngine.h +++ b/common/JackLockedEngine.h @@ -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) { diff --git a/common/JackServer.cpp b/common/JackServer.cpp index 8b1829ef..7f7a5daf 100644 --- a/common/JackServer.cpp +++ b/common/JackServer.cpp @@ -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(); diff --git a/common/JackServer.h b/common/JackServer.h index 91fcd85b..0dde5cfa 100644 --- a/common/JackServer.h +++ b/common/JackServer.h @@ -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;