git-svn-id: http://subversion.jackaudio.org/jack/jack2/trunk/jackmp@2522 0c269be4-1314-0410-8aa9-9f06e86f4224tags/1.90
| @@ -174,7 +174,7 @@ int JackDriver::ClientNotify(int refnum, const char* name, int notify, int sync, | |||
| return 0; | |||
| } | |||
| bool JackDriver::IsRealTime() | |||
| bool JackDriver::IsRealTime() const | |||
| { | |||
| return fEngineControl->fRealTime; | |||
| } | |||
| @@ -231,4 +231,60 @@ int JackDriverClient::ProcessSlaves() | |||
| return res; | |||
| } | |||
| int JackDriver::Process() | |||
| { | |||
| return 0; | |||
| } | |||
| int JackDriver::ProcessNull() | |||
| { | |||
| return 0; | |||
| } | |||
| int JackDriver::Attach() | |||
| { | |||
| return 0; | |||
| } | |||
| int JackDriver::Detach() | |||
| { | |||
| return 0; | |||
| } | |||
| int JackDriver::Read() | |||
| { | |||
| return 0; | |||
| } | |||
| int JackDriver::Write() | |||
| { | |||
| return 0; | |||
| } | |||
| int JackDriver::Start() | |||
| { | |||
| return 0; | |||
| } | |||
| int JackDriver::Stop() | |||
| { | |||
| return 0; | |||
| } | |||
| int JackDriver::SetBufferSize(jack_nframes_t buffer_size) | |||
| { | |||
| return 0; | |||
| } | |||
| int JackDriver::SetSampleRate(jack_nframes_t sample_rate) | |||
| { | |||
| return 0; | |||
| } | |||
| bool JackDriver::Init() | |||
| { | |||
| return true; | |||
| } | |||
| } // end of namespace | |||
| @@ -83,7 +83,7 @@ class EXPORT JackDriverInterface | |||
| virtual void RemoveSlave(JackDriverInterface* slave) = 0; | |||
| virtual int ProcessSlaves() = 0; | |||
| virtual bool IsRealTime() = 0; | |||
| virtual bool IsRealTime() const = 0; | |||
| }; | |||
| /*! | |||
| \brief The base interface for drivers clients. | |||
| @@ -165,66 +165,32 @@ class EXPORT JackDriver : public JackDriverClient | |||
| virtual int Close(); | |||
| virtual int Process() | |||
| { | |||
| return 0; | |||
| } | |||
| virtual int ProcessNull() | |||
| { | |||
| return 0; | |||
| } | |||
| virtual int Attach() | |||
| { | |||
| return 0; | |||
| } | |||
| virtual int Detach() | |||
| { | |||
| return 0; | |||
| } | |||
| virtual int Read() | |||
| { | |||
| return 0; | |||
| } | |||
| virtual int Write() | |||
| { | |||
| return 0; | |||
| } | |||
| virtual int Start() | |||
| { | |||
| return 0; | |||
| } | |||
| virtual int Stop() | |||
| { | |||
| return 0; | |||
| } | |||
| virtual int SetBufferSize(jack_nframes_t buffer_size) | |||
| { | |||
| return 0; | |||
| } | |||
| virtual int SetSampleRate(jack_nframes_t sample_rate) | |||
| { | |||
| return 0; | |||
| } | |||
| virtual int Process(); | |||
| virtual int ProcessNull(); | |||
| virtual int Attach(); | |||
| virtual int Detach(); | |||
| virtual int Read(); | |||
| virtual int Write(); | |||
| virtual int Start(); | |||
| virtual int Stop(); | |||
| virtual int SetBufferSize(jack_nframes_t buffer_size); | |||
| virtual int SetSampleRate(jack_nframes_t sample_rate); | |||
| void NotifyXRun(jack_time_t callback_usecs, float delayed_usecs); // XRun notification sent by the driver | |||
| virtual bool IsRealTime(); | |||
| virtual bool IsRealTime() const; | |||
| int ClientNotify(int refnum, const char* name, int notify, int sync, int value1, int value2); | |||
| void SetupDriverSync(int ref, bool freewheel); | |||
| virtual bool Init() | |||
| { | |||
| return true; | |||
| } | |||
| virtual bool Init(); | |||
| }; | |||
| } // end of namespace | |||
| @@ -24,6 +24,7 @@ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. | |||
| #include <iostream> | |||
| #include <string> | |||
| #include "JackExports.h" | |||
| #include "JackError.h" | |||
| namespace Jack | |||
| { | |||
| @@ -0,0 +1,59 @@ | |||
| /* | |||
| Copyright (C) 2001 Paul Davis | |||
| Copyright (C) 2004-2008 Grame | |||
| This program is free software; you can redistribute it and/or modify | |||
| it under the terms of the GNU General Public License as published by | |||
| the Free Software Foundation; either version 2 of the License, or | |||
| (at your option) any later version. | |||
| This program is distributed in the hope that it will be useful, | |||
| but WITHOUT ANY WARRANTY; without even the implied warranty of | |||
| MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |||
| GNU General Public License for more details. | |||
| You should have received a copy of the GNU General Public License | |||
| along with this program; if not, write to the Free Software | |||
| Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. | |||
| */ | |||
| #if defined(HAVE_CONFIG_H) | |||
| #include "config.h" | |||
| #endif | |||
| #ifdef WIN32 | |||
| #pragma warning (disable : 4786) | |||
| #endif | |||
| #include "JackRestartThreadedDriver.h" | |||
| #include "JackException.h" | |||
| namespace Jack | |||
| { | |||
| bool JackRestartThreadedDriver::Execute() | |||
| { | |||
| try { | |||
| // Keep running even in case of error | |||
| while (fThread.GetStatus() == JackThread::kRunning) { | |||
| Process(); | |||
| } | |||
| return false; | |||
| } catch (JackDriverException& e) { | |||
| e.PrintMessage(); | |||
| jack_log("Driver is restarted"); | |||
| fThread.DropRealTime(); | |||
| // Thread in kIniting status again... | |||
| fThread.SetStatus(JackThread::kIniting); | |||
| if (Init()) { | |||
| // Thread in kRunning status again... | |||
| fThread.SetStatus(JackThread::kRunning); | |||
| return true; | |||
| } else { | |||
| return false; | |||
| } | |||
| } | |||
| } | |||
| } // end of namespace | |||
| @@ -0,0 +1,46 @@ | |||
| /* | |||
| Copyright (C) 2001 Paul Davis | |||
| Copyright (C) 2004-2008 Grame | |||
| This program is free software; you can redistribute it and/or modify | |||
| it under the terms of the GNU General Public License as published by | |||
| the Free Software Foundation; either version 2 of the License, or | |||
| (at your option) any later version. | |||
| This program is distributed in the hope that it will be useful, | |||
| but WITHOUT ANY WARRANTY; without even the implied warranty of | |||
| MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |||
| GNU General Public License for more details. | |||
| You should have received a copy of the GNU General Public License | |||
| along with this program; if not, write to the Free Software | |||
| Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. | |||
| */ | |||
| #ifndef __JackRestartThreadedDriver__ | |||
| #define __JackRestartThreadedDriverr__ | |||
| #include "JackThreadedDriver.h" | |||
| namespace Jack | |||
| { | |||
| class EXPORT JackRestartThreadedDriver : public JackThreadedDriver | |||
| { | |||
| public: | |||
| JackRestartThreadedDriver(JackDriverClient* driver) | |||
| :JackThreadedDriver(driver) | |||
| {} | |||
| virtual ~JackRestartThreadedDriver() | |||
| {} | |||
| // JackRunnableInterface interface | |||
| virtual bool Execute(); | |||
| }; | |||
| } // end of namespace | |||
| #endif | |||
| @@ -46,6 +46,111 @@ JackThreadedDriver::~JackThreadedDriver() | |||
| delete fDriver; | |||
| } | |||
| int JackThreadedDriver::Open() | |||
| { | |||
| return fDriver->Open(); | |||
| } | |||
| int JackThreadedDriver::Open(jack_nframes_t nframes, | |||
| jack_nframes_t samplerate, | |||
| bool capturing, | |||
| bool playing, | |||
| int inchannels, | |||
| int outchannels, | |||
| bool monitor, | |||
| const char* capture_driver_name, | |||
| const char* playback_driver_name, | |||
| jack_nframes_t capture_latency, | |||
| jack_nframes_t playback_latency) | |||
| { | |||
| return fDriver->Open(nframes, samplerate, capturing, playing, inchannels, outchannels, monitor, capture_driver_name, playback_driver_name, capture_latency, playback_latency); | |||
| } | |||
| int JackThreadedDriver::Close() | |||
| { | |||
| return fDriver->Close(); | |||
| } | |||
| int JackThreadedDriver::Process() | |||
| { | |||
| return fDriver->Process(); | |||
| } | |||
| int JackThreadedDriver::ProcessNull() | |||
| { | |||
| return fDriver->ProcessNull(); | |||
| } | |||
| int JackThreadedDriver::Attach() | |||
| { | |||
| return fDriver->Attach(); | |||
| } | |||
| int JackThreadedDriver::Detach() | |||
| { | |||
| return fDriver->Detach(); | |||
| } | |||
| int JackThreadedDriver::Read() | |||
| { | |||
| return fDriver->Read(); | |||
| } | |||
| int JackThreadedDriver::Write() | |||
| { | |||
| return fDriver->Write(); | |||
| } | |||
| int JackThreadedDriver::SetBufferSize(jack_nframes_t buffer_size) | |||
| { | |||
| return fDriver->SetBufferSize(buffer_size); | |||
| } | |||
| int JackThreadedDriver::SetSampleRate(jack_nframes_t sample_rate) | |||
| { | |||
| return fDriver->SetSampleRate(sample_rate); | |||
| } | |||
| void JackThreadedDriver::SetMaster(bool onoff) | |||
| { | |||
| fDriver->SetMaster(onoff); | |||
| } | |||
| bool JackThreadedDriver::GetMaster() | |||
| { | |||
| return fDriver->GetMaster(); | |||
| } | |||
| void JackThreadedDriver::AddSlave(JackDriverInterface* slave) | |||
| { | |||
| fDriver->AddSlave(slave); | |||
| } | |||
| void JackThreadedDriver::RemoveSlave(JackDriverInterface* slave) | |||
| { | |||
| fDriver->RemoveSlave(slave); | |||
| } | |||
| int JackThreadedDriver::ProcessSlaves() | |||
| { | |||
| return fDriver->ProcessSlaves(); | |||
| } | |||
| int JackThreadedDriver::ClientNotify(int refnum, const char* name, int notify, int sync, int value1, int value2) | |||
| { | |||
| return fDriver->ClientNotify(refnum, name, notify, sync, value1, value2); | |||
| } | |||
| JackClientControl* JackThreadedDriver::GetClientControl() const | |||
| { | |||
| return fDriver->GetClientControl(); | |||
| } | |||
| bool JackThreadedDriver::IsRealTime() const | |||
| { | |||
| return fDriver->IsRealTime(); | |||
| } | |||
| int JackThreadedDriver::Start() | |||
| { | |||
| jack_log("JackThreadedDriver::Start"); | |||
| @@ -120,28 +225,4 @@ bool JackThreadedDriver::Init() | |||
| } | |||
| } | |||
| bool JackRestartThreadedDriver::Execute() | |||
| { | |||
| try { | |||
| // Keep running even in case of error | |||
| while (fThread.GetStatus() == JackThread::kRunning) { | |||
| Process(); | |||
| } | |||
| return false; | |||
| } catch (JackDriverException& e) { | |||
| e.PrintMessage(); | |||
| jack_log("Driver is restarted"); | |||
| fThread.DropRealTime(); | |||
| // Thread in kIniting status again... | |||
| fThread.SetStatus(JackThread::kIniting); | |||
| if (Init()) { | |||
| // Thread in kRunning status again... | |||
| fThread.SetStatus(JackThread::kRunning); | |||
| return true; | |||
| } else { | |||
| return false; | |||
| } | |||
| } | |||
| } | |||
| } // end of namespace | |||
| @@ -44,11 +44,7 @@ class EXPORT JackThreadedDriver : public JackDriverClientInterface, public JackR | |||
| JackThreadedDriver(JackDriverClient* driver); | |||
| virtual ~JackThreadedDriver(); | |||
| virtual int Open() | |||
| { | |||
| return fDriver->Open(); | |||
| } | |||
| virtual int Open(); | |||
| virtual int Open(jack_nframes_t nframes, | |||
| jack_nframes_t samplerate, | |||
| bool capturing, | |||
| @@ -59,113 +55,44 @@ class EXPORT JackThreadedDriver : public JackDriverClientInterface, public JackR | |||
| const char* capture_driver_name, | |||
| const char* playback_driver_name, | |||
| jack_nframes_t capture_latency, | |||
| jack_nframes_t playback_latency) | |||
| { | |||
| return fDriver->Open(nframes, samplerate, capturing, playing, inchannels, outchannels, monitor, capture_driver_name, playback_driver_name, capture_latency, playback_latency); | |||
| } | |||
| int Close() | |||
| { | |||
| return fDriver->Close(); | |||
| } | |||
| int Process() | |||
| { | |||
| return fDriver->Process(); | |||
| } | |||
| jack_nframes_t playback_latency); | |||
| virtual int Close(); | |||
| virtual int Process(); | |||
| int ProcessNull() | |||
| { | |||
| return fDriver->ProcessNull(); | |||
| } | |||
| int Attach() | |||
| { | |||
| return fDriver->Attach(); | |||
| } | |||
| int Detach() | |||
| { | |||
| return fDriver->Detach(); | |||
| } | |||
| int Read() | |||
| { | |||
| return fDriver->Read(); | |||
| } | |||
| int Write() | |||
| { | |||
| return fDriver->Write(); | |||
| } | |||
| int Start(); | |||
| int Stop(); | |||
| int SetBufferSize(jack_nframes_t buffer_size) | |||
| { | |||
| return fDriver->SetBufferSize(buffer_size); | |||
| } | |||
| int SetSampleRate(jack_nframes_t sample_rate) | |||
| { | |||
| return fDriver->SetSampleRate(sample_rate); | |||
| } | |||
| void SetMaster(bool onoff) | |||
| { | |||
| fDriver->SetMaster(onoff); | |||
| } | |||
| bool GetMaster() | |||
| { | |||
| return fDriver->GetMaster(); | |||
| } | |||
| void AddSlave(JackDriverInterface* slave) | |||
| { | |||
| fDriver->AddSlave(slave); | |||
| } | |||
| void RemoveSlave(JackDriverInterface* slave) | |||
| { | |||
| fDriver->RemoveSlave(slave); | |||
| } | |||
| int ProcessSlaves() | |||
| { | |||
| return fDriver->ProcessSlaves(); | |||
| } | |||
| int ClientNotify(int refnum, const char* name, int notify, int sync, int value1, int value2) | |||
| { | |||
| return fDriver->ClientNotify(refnum, name, notify, sync, value1, value2); | |||
| } | |||
| JackClientControl* GetClientControl() const | |||
| { | |||
| return fDriver->GetClientControl(); | |||
| } | |||
| bool IsRealTime() | |||
| { | |||
| return fDriver->IsRealTime(); | |||
| } | |||
| virtual int ProcessNull(); | |||
| virtual int Attach(); | |||
| virtual int Detach(); | |||
| virtual int Read(); | |||
| virtual int Write(); | |||
| virtual int Start(); | |||
| virtual int Stop(); | |||
| virtual int SetBufferSize(jack_nframes_t buffer_size); | |||
| virtual int SetSampleRate(jack_nframes_t sample_rate); | |||
| virtual void SetMaster(bool onoff); | |||
| virtual bool GetMaster(); | |||
| virtual void AddSlave(JackDriverInterface* slave); | |||
| virtual void RemoveSlave(JackDriverInterface* slave); | |||
| virtual int ProcessSlaves(); | |||
| virtual int ClientNotify(int refnum, const char* name, int notify, int sync, int value1, int value2); | |||
| virtual JackClientControl* GetClientControl() const; | |||
| virtual bool IsRealTime() const; | |||
| // JackRunnableInterface interface | |||
| virtual bool Execute(); | |||
| virtual bool Init(); | |||
| }; | |||
| class EXPORT JackRestartThreadedDriver : public JackThreadedDriver | |||
| { | |||
| public: | |||
| JackRestartThreadedDriver(JackDriverClient* driver):JackThreadedDriver(driver) | |||
| {} | |||
| virtual ~JackRestartThreadedDriver() | |||
| {} | |||
| // JackRunnableInterface interface | |||
| virtual bool Execute(); | |||
| }; | |||
| } // end of namespace | |||
| @@ -310,6 +310,10 @@ | |||
| 4B363F760DEB0D7D001F72D9 /* impulse_grabber.c in Sources */ = {isa = PBXBuildFile; fileRef = 4B363F750DEB0D7D001F72D9 /* impulse_grabber.c */; }; | |||
| 4B3F49080AD8503300491C6E /* jack_cpu.c in Sources */ = {isa = PBXBuildFile; fileRef = 4B3F49070AD8503300491C6E /* jack_cpu.c */; }; | |||
| 4B44FAE70C7598370033A72C /* JackServerLaunch.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4B44FAE50C7598370033A72C /* JackServerLaunch.cpp */; }; | |||
| 4B4CA9750E02CF9600F4BFDA /* JackRestartThreadedDriver.h in Headers */ = {isa = PBXBuildFile; fileRef = 4B4CA9730E02CF9600F4BFDA /* JackRestartThreadedDriver.h */; }; | |||
| 4B4CA9760E02CF9600F4BFDA /* JackRestartThreadedDriver.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4B4CA9740E02CF9600F4BFDA /* JackRestartThreadedDriver.cpp */; }; | |||
| 4B4CA9770E02CF9600F4BFDA /* JackRestartThreadedDriver.h in Headers */ = {isa = PBXBuildFile; fileRef = 4B4CA9730E02CF9600F4BFDA /* JackRestartThreadedDriver.h */; }; | |||
| 4B4CA9780E02CF9600F4BFDA /* JackRestartThreadedDriver.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4B4CA9740E02CF9600F4BFDA /* JackRestartThreadedDriver.cpp */; }; | |||
| 4B4F9C8C0DC20C0400706CB0 /* JackMessageBuffer.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4B4F9C8A0DC20C0400706CB0 /* JackMessageBuffer.cpp */; }; | |||
| 4B4F9C8D0DC20C0400706CB0 /* JackMessageBuffer.h in Headers */ = {isa = PBXBuildFile; fileRef = 4B4F9C8B0DC20C0400706CB0 /* JackMessageBuffer.h */; }; | |||
| 4B4F9C8E0DC20C0400706CB0 /* JackMessageBuffer.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4B4F9C8A0DC20C0400706CB0 /* JackMessageBuffer.cpp */; }; | |||
| @@ -1187,6 +1191,8 @@ | |||
| 4B4259E5076B635E00C1ECE1 /* JackMacEngineRPC.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = JackMacEngineRPC.cpp; sourceTree = SOURCE_ROOT; }; | |||
| 4B44FAE50C7598370033A72C /* JackServerLaunch.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = JackServerLaunch.cpp; path = ../common/JackServerLaunch.cpp; sourceTree = SOURCE_ROOT; }; | |||
| 4B464301076CAC7700E5077C /* Jack-Info.plist */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text.xml; path = "Jack-Info.plist"; sourceTree = SOURCE_ROOT; }; | |||
| 4B4CA9730E02CF9600F4BFDA /* JackRestartThreadedDriver.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = JackRestartThreadedDriver.h; path = ../common/JackRestartThreadedDriver.h; sourceTree = SOURCE_ROOT; }; | |||
| 4B4CA9740E02CF9600F4BFDA /* JackRestartThreadedDriver.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = JackRestartThreadedDriver.cpp; path = ../common/JackRestartThreadedDriver.cpp; sourceTree = SOURCE_ROOT; }; | |||
| 4B4F9C8A0DC20C0400706CB0 /* JackMessageBuffer.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = JackMessageBuffer.cpp; path = ../common/JackMessageBuffer.cpp; sourceTree = SOURCE_ROOT; }; | |||
| 4B4F9C8B0DC20C0400706CB0 /* JackMessageBuffer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = JackMessageBuffer.h; path = ../common/JackMessageBuffer.h; sourceTree = SOURCE_ROOT; }; | |||
| 4B56880F08B5C8620022B32D /* JackFifo.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = JackFifo.cpp; path = ../common/JackFifo.cpp; sourceTree = SOURCE_ROOT; }; | |||
| @@ -2482,12 +2488,14 @@ | |||
| 4BD56D8707968982006D44F9 /* Threaded */ = { | |||
| isa = PBXGroup; | |||
| children = ( | |||
| 4BBC93B90DF9736C002DF220 /* JackWaitThreadedDriver.h */, | |||
| 4BBC93B80DF9736C002DF220 /* JackWaitThreadedDriver.cpp */, | |||
| 4BF8D1BD0834EEFC00C94B91 /* JackThreadedDriver.h */, | |||
| 4BF8D1BE0834EEFC00C94B91 /* JackThreadedDriver.cpp */, | |||
| 4BF8D1B90834EEF100C94B91 /* JackFreewheelDriver.h */, | |||
| 4BF8D1BA0834EEF100C94B91 /* JackFreewheelDriver.cpp */, | |||
| 4B4CA9730E02CF9600F4BFDA /* JackRestartThreadedDriver.h */, | |||
| 4B4CA9740E02CF9600F4BFDA /* JackRestartThreadedDriver.cpp */, | |||
| 4BBC93B90DF9736C002DF220 /* JackWaitThreadedDriver.h */, | |||
| 4BBC93B80DF9736C002DF220 /* JackWaitThreadedDriver.cpp */, | |||
| ); | |||
| name = Threaded; | |||
| sourceTree = "<group>"; | |||
| @@ -2676,6 +2684,7 @@ | |||
| BA222ADB0DC88269001A17F4 /* JackNetTool.h in Headers */, | |||
| 4B9A26060DBF8584006E9FBC /* jslist.h in Headers */, | |||
| 4B4F9C930DC20C0400706CB0 /* JackMessageBuffer.h in Headers */, | |||
| 4B4CA9770E02CF9600F4BFDA /* JackRestartThreadedDriver.h in Headers */, | |||
| ); | |||
| runOnlyForDeploymentPostprocessing = 0; | |||
| }; | |||
| @@ -3024,6 +3033,7 @@ | |||
| 4B4F9C8D0DC20C0400706CB0 /* JackMessageBuffer.h in Headers */, | |||
| 4B5F253E0DEE9B8F0041E486 /* JackLockedEngine.h in Headers */, | |||
| 4BBC93BB0DF9736C002DF220 /* JackWaitThreadedDriver.h in Headers */, | |||
| 4B4CA9750E02CF9600F4BFDA /* JackRestartThreadedDriver.h in Headers */, | |||
| ); | |||
| runOnlyForDeploymentPostprocessing = 0; | |||
| }; | |||
| @@ -5250,6 +5260,7 @@ | |||
| 4B9A26680DBF8B23006E9FBC /* JackControl.cpp in Sources */, | |||
| 4B0206A10DC0BAB400319AF1 /* JackProcessSync.cpp in Sources */, | |||
| 4B4F9C920DC20C0400706CB0 /* JackMessageBuffer.cpp in Sources */, | |||
| 4B4CA9780E02CF9600F4BFDA /* JackRestartThreadedDriver.cpp in Sources */, | |||
| ); | |||
| runOnlyForDeploymentPostprocessing = 0; | |||
| }; | |||
| @@ -5619,6 +5630,7 @@ | |||
| 4B02069E0DC0BAB400319AF1 /* JackProcessSync.cpp in Sources */, | |||
| 4B4F9C8C0DC20C0400706CB0 /* JackMessageBuffer.cpp in Sources */, | |||
| 4BBC93BA0DF9736C002DF220 /* JackWaitThreadedDriver.cpp in Sources */, | |||
| 4B4CA9760E02CF9600F4BFDA /* JackRestartThreadedDriver.cpp in Sources */, | |||
| ); | |||
| runOnlyForDeploymentPostprocessing = 0; | |||
| }; | |||