git-svn-id: http://subversion.jackaudio.org/jack/jack2/trunk/jackmp@1653 0c269be4-1314-0410-8aa9-9f06e86f4224tags/0.68
| @@ -15,7 +15,9 @@ Tom Szilagyi | |||||
| 2007-10-25 Stephane Letz <letz@grame.fr> | 2007-10-25 Stephane Letz <letz@grame.fr> | ||||
| * Merge of Dmitry Baikov MIDI branch. Correct JackGraphManager::GetPortsAux to use port type. | |||||
| * Merge of Dmitry Baikov MIDI branch. | |||||
| * Correct JackGraphManager::GetPortsAux to use port type. | |||||
| * Remove JackEngineTiming class: code moved in JackEngineControl. | |||||
| 2007-10-24 Stephane Letz <letz@grame.fr> | 2007-10-24 Stephane Letz <letz@grame.fr> | ||||
| @@ -27,22 +27,8 @@ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. | |||||
| namespace Jack | namespace Jack | ||||
| { | { | ||||
| #define NO_PORT 0xFFFE | |||||
| #define EMPTY 0xFFFD | |||||
| #define FREE 0xFFFC | |||||
| typedef uint16_t jack_int_t; // Internal type for ports and refnum | |||||
| struct JackClientControl; | struct JackClientControl; | ||||
| typedef enum { | |||||
| NotTriggered, | |||||
| Triggered, | |||||
| Running, | |||||
| Finished, | |||||
| } jack_client_state_t; | |||||
| /*! | /*! | ||||
| \brief Utility class. | \brief Utility class. | ||||
| */ | */ | ||||
| @@ -17,7 +17,11 @@ | |||||
| */ | */ | ||||
| #define PRINTDEBUG | |||||
| #ifndef __JackConstants__ | |||||
| #define __JackConstants__ | |||||
| namespace Jack | |||||
| { | |||||
| #define VERSION "0.68" | #define VERSION "0.68" | ||||
| @@ -68,3 +72,21 @@ | |||||
| #define JACK_PROTOCOL_VERSION 1 | #define JACK_PROTOCOL_VERSION 1 | ||||
| #define DRIVER_OPEN_TIMEOUT 5 // in sec | #define DRIVER_OPEN_TIMEOUT 5 // in sec | ||||
| #define NO_PORT 0xFFFE | |||||
| #define EMPTY 0xFFFD | |||||
| #define FREE 0xFFFC | |||||
| typedef uint16_t jack_int_t; // Internal type for ports and refnum | |||||
| typedef enum { | |||||
| NotTriggered, | |||||
| Triggered, | |||||
| Running, | |||||
| Finished, | |||||
| } jack_client_state_t; | |||||
| } // end of namespace | |||||
| #endif | |||||
| @@ -31,7 +31,6 @@ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. | |||||
| #include "JackInternalClient.h" | #include "JackInternalClient.h" | ||||
| #include "JackEngineControl.h" | #include "JackEngineControl.h" | ||||
| #include "JackClientControl.h" | #include "JackClientControl.h" | ||||
| #include "JackEngineTiming.h" | |||||
| #include "JackGlobals.h" | #include "JackGlobals.h" | ||||
| #include "JackChannel.h" | #include "JackChannel.h" | ||||
| #include "JackSyncInterface.h" | #include "JackSyncInterface.h" | ||||
| @@ -48,17 +47,13 @@ JackEngine::JackEngine(JackGraphManager* manager, | |||||
| fEngineControl = control; | fEngineControl = control; | ||||
| fChannel = JackGlobals::MakeServerNotifyChannel(); | fChannel = JackGlobals::MakeServerNotifyChannel(); | ||||
| fSignal = JackGlobals::MakeInterProcessSync(); | fSignal = JackGlobals::MakeInterProcessSync(); | ||||
| fEngineTiming = new JackEngineTiming(fClientTable, fGraphManager, fEngineControl); | |||||
| for (int i = 0; i < CLIENT_NUM; i++) | for (int i = 0; i < CLIENT_NUM; i++) | ||||
| fClientTable[i] = NULL; | fClientTable[i] = NULL; | ||||
| fEngineTiming->ClearTimeMeasures(); | |||||
| fEngineTiming->ResetRollingUsecs(); | |||||
| } | } | ||||
| JackEngine::~JackEngine() | JackEngine::~JackEngine() | ||||
| { | { | ||||
| delete fChannel; | delete fChannel; | ||||
| delete fEngineTiming; | |||||
| delete fSignal; | delete fSignal; | ||||
| } | } | ||||
| @@ -154,14 +149,10 @@ bool JackEngine::Process(jack_time_t callback_usecs) | |||||
| { | { | ||||
| bool res = true; | bool res = true; | ||||
| // Transport begin | |||||
| fEngineControl->CycleBegin(callback_usecs); | |||||
| // Cycle begin | |||||
| fEngineControl->CycleBegin(fClientTable, fGraphManager, callback_usecs); | |||||
| // Timing | |||||
| fEngineControl->IncFrameTime(callback_usecs); | |||||
| fEngineTiming->UpdateTiming(callback_usecs); | |||||
| // Graph | |||||
| // Graph | |||||
| if (fGraphManager->IsFinishedGraph()) { | if (fGraphManager->IsFinishedGraph()) { | ||||
| ProcessNext(callback_usecs); | ProcessNext(callback_usecs); | ||||
| res = true; | res = true; | ||||
| @@ -179,7 +170,7 @@ bool JackEngine::Process(jack_time_t callback_usecs) | |||||
| } | } | ||||
| } | } | ||||
| // Transport end | |||||
| // Cycle end | |||||
| fEngineControl->CycleEnd(fClientTable); | fEngineControl->CycleEnd(fClientTable); | ||||
| return res; | return res; | ||||
| } | } | ||||
| @@ -538,7 +529,7 @@ int JackEngine::ClientExternalOpen(const char* name, int* ref, int* shared_engin | |||||
| fClientTable[refnum] = client; | fClientTable[refnum] = client; | ||||
| fGraphManager->InitRefNum(refnum); | fGraphManager->InitRefNum(refnum); | ||||
| fEngineTiming->ResetRollingUsecs(); | |||||
| fEngineControl->ResetRollingUsecs(); | |||||
| *shared_engine = fEngineControl->GetShmIndex(); | *shared_engine = fEngineControl->GetShmIndex(); | ||||
| *shared_graph_manager = fGraphManager->GetShmIndex(); | *shared_graph_manager = fGraphManager->GetShmIndex(); | ||||
| *ref = refnum; | *ref = refnum; | ||||
| @@ -580,7 +571,7 @@ int JackEngine::ClientInternalOpen(const char* name, int* ref, JackEngineControl | |||||
| fClientTable[refnum] = client; | fClientTable[refnum] = client; | ||||
| fGraphManager->InitRefNum(refnum); | fGraphManager->InitRefNum(refnum); | ||||
| fEngineTiming->ResetRollingUsecs(); | |||||
| fEngineControl->ResetRollingUsecs(); | |||||
| *shared_engine = fEngineControl; | *shared_engine = fEngineControl; | ||||
| *shared_manager = fGraphManager; | *shared_manager = fGraphManager; | ||||
| *ref = refnum; | *ref = refnum; | ||||
| @@ -634,7 +625,7 @@ int JackEngine::ClientCloseAux(int refnum, JackClientInterface* client, bool wai | |||||
| // Cleanup... | // Cleanup... | ||||
| fSynchroTable[refnum]->Destroy(); | fSynchroTable[refnum]->Destroy(); | ||||
| fEngineTiming->ResetRollingUsecs(); | |||||
| fEngineControl->ResetRollingUsecs(); | |||||
| return 0; | return 0; | ||||
| } | } | ||||
| @@ -31,7 +31,6 @@ namespace Jack | |||||
| class JackClientInterface; | class JackClientInterface; | ||||
| struct JackEngineControl; | struct JackEngineControl; | ||||
| class JackServerNotifyChannelInterface; | class JackServerNotifyChannelInterface; | ||||
| class JackEngineTiming; | |||||
| class JackExternalClient; | class JackExternalClient; | ||||
| class JackSyncInterface; | class JackSyncInterface; | ||||
| @@ -48,7 +47,6 @@ class JackEngine | |||||
| JackClientInterface* fClientTable[CLIENT_NUM]; | JackClientInterface* fClientTable[CLIENT_NUM]; | ||||
| JackSynchro** fSynchroTable; | JackSynchro** fSynchroTable; | ||||
| JackServerNotifyChannelInterface* fChannel; /*! To communicate between the RT thread and server */ | JackServerNotifyChannelInterface* fChannel; /*! To communicate between the RT thread and server */ | ||||
| JackEngineTiming* fEngineTiming; | |||||
| JackSyncInterface* fSignal; | JackSyncInterface* fSignal; | ||||
| jack_time_t fLastSwitchUsecs; | jack_time_t fLastSwitchUsecs; | ||||
| @@ -1,5 +1,6 @@ | |||||
| /* | /* | ||||
| Copyright (C) 2004-2006 Grame | |||||
| Copyright (C) 2003 Paul Davis | |||||
| Copyright (C) 2004-2006 Grame | |||||
| This program is free software; you can redistribute it and/or modify | 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 | it under the terms of the GNU General Public License as published by | ||||
| @@ -17,50 +18,59 @@ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. | |||||
| */ | */ | ||||
| #include "JackEngineTiming.h" | |||||
| #include "JackClientInterface.h" | |||||
| #include "JackEngineControl.h" | #include "JackEngineControl.h" | ||||
| #include "JackGraphManager.h" | |||||
| #include "JackClientControl.h" | #include "JackClientControl.h" | ||||
| #include <math.h> | |||||
| #include <algorithm> | |||||
| #include <iostream> | |||||
| #include <assert.h> | |||||
| namespace Jack | namespace Jack | ||||
| { | { | ||||
| inline jack_time_t MAX(jack_time_t a, jack_time_t b) | |||||
| void JackEngineControl::CycleBegin(JackClientInterface** table, JackGraphManager* manager, jack_time_t callback_usecs) | |||||
| { | { | ||||
| return (a < b) ? b : a; | |||||
| // Transport | |||||
| fTransport.CycleBegin(fSampleRate, callback_usecs); | |||||
| // Timer | |||||
| fFrameTimer.IncFrameTime(fBufferSize, callback_usecs, fPeriodUsecs); | |||||
| // Timing | |||||
| GetTimeMeasure(table, manager, callback_usecs); | |||||
| CalcCPULoad(table, manager); | |||||
| } | } | ||||
| JackEngineTiming::JackEngineTiming(JackClientInterface** table, JackGraphManager* manager, JackEngineControl* control) | |||||
| void JackEngineControl::CycleEnd(JackClientInterface** table) | |||||
| { | { | ||||
| fClientTable = table; | |||||
| fGraphManager = manager; | |||||
| fEngineControl = control; | |||||
| fLastTime = 0; | |||||
| fCurTime = 0; | |||||
| fProcessTime = 0; | |||||
| fLastProcessTime = 0; | |||||
| fSpareUsecs = 0; | |||||
| fMaxUsecs = 0; | |||||
| fAudioCycle = 0; | |||||
| fTransport.CycleEnd(table, fSampleRate, fBufferSize); | |||||
| } | |||||
| void JackEngineControl::InitFrameTime() | |||||
| { | |||||
| fFrameTimer.InitFrameTime(); | |||||
| } | |||||
| void JackEngineControl::ResetFrameTime(jack_time_t callback_usecs) | |||||
| { | |||||
| fFrameTimer.ResetFrameTime(fSampleRate, callback_usecs, fPeriodUsecs); | |||||
| } | |||||
| void JackEngineControl::ReadFrameTime(JackTimer* timer) | |||||
| { | |||||
| fFrameTimer.ReadFrameTime(timer); | |||||
| } | } | ||||
| void JackEngineTiming::UpdateTiming(jack_time_t callback_usecs) | |||||
| // Private | |||||
| inline jack_time_t MAX(jack_time_t a, jack_time_t b) | |||||
| { | { | ||||
| GetTimeMeasure(callback_usecs); | |||||
| CalcCPULoad(); | |||||
| return (a < b) ? b : a; | |||||
| } | } | ||||
| void JackEngineTiming::CalcCPULoad() | |||||
| void JackEngineControl::CalcCPULoad(JackClientInterface** table, JackGraphManager* manager) | |||||
| { | { | ||||
| jack_time_t lastCycleEnd = fLastProcessTime; | jack_time_t lastCycleEnd = fLastProcessTime; | ||||
| for (int i = REAL_REFNUM; i < CLIENT_NUM; i++) { | for (int i = REAL_REFNUM; i < CLIENT_NUM; i++) { | ||||
| JackClientInterface* client = fClientTable[i]; | |||||
| JackClientTiming* timing = fGraphManager->GetClientTiming(i); | |||||
| JackClientInterface* client = table[i]; | |||||
| JackClientTiming* timing = manager->GetClientTiming(i); | |||||
| if (client && client->GetClientControl()->fActive && timing->fStatus == Finished) { | if (client && client->GetClientControl()->fActive && timing->fStatus == Finished) { | ||||
| lastCycleEnd = MAX(lastCycleEnd, timing->fFinishedAt); | lastCycleEnd = MAX(lastCycleEnd, timing->fFinishedAt); | ||||
| } | } | ||||
| @@ -85,27 +95,26 @@ void JackEngineTiming::CalcCPULoad() | |||||
| } | } | ||||
| fMaxUsecs = MAX(fMaxUsecs, maxUsecs); | fMaxUsecs = MAX(fMaxUsecs, maxUsecs); | ||||
| fSpareUsecs = jack_time_t((maxUsecs < fEngineControl->fPeriodUsecs) ? fEngineControl->fPeriodUsecs - maxUsecs : 0); | |||||
| fEngineControl->fCPULoad | |||||
| = ((1.0f - (float(fSpareUsecs) / float(fEngineControl->fPeriodUsecs))) * 50.0f + (fEngineControl->fCPULoad * 0.5f)); | |||||
| fSpareUsecs = jack_time_t((maxUsecs < fPeriodUsecs) ? fPeriodUsecs - maxUsecs : 0); | |||||
| fCPULoad = ((1.f - (float(fSpareUsecs) / float(fPeriodUsecs))) * 50.f + (fCPULoad * 0.5f)); | |||||
| } | } | ||||
| } | } | ||||
| void JackEngineTiming::ResetRollingUsecs() | |||||
| void JackEngineControl::ResetRollingUsecs() | |||||
| { | { | ||||
| memset(fRollingClientUsecs, 0, sizeof(fRollingClientUsecs)); | memset(fRollingClientUsecs, 0, sizeof(fRollingClientUsecs)); | ||||
| fRollingClientUsecsIndex = 0; | fRollingClientUsecsIndex = 0; | ||||
| fRollingClientUsecsCnt = 0; | fRollingClientUsecsCnt = 0; | ||||
| fSpareUsecs = 0; | fSpareUsecs = 0; | ||||
| fRollingInterval = (int)floor((JACK_ENGINE_ROLLING_INTERVAL * 1000.0f) / fEngineControl->fPeriodUsecs); | |||||
| fRollingInterval = (int)floor((JACK_ENGINE_ROLLING_INTERVAL * 1000.f) / fPeriodUsecs); | |||||
| } | } | ||||
| void JackEngineTiming::GetTimeMeasure(jack_time_t callbackUsecs) | |||||
| void JackEngineControl::GetTimeMeasure(JackClientInterface** table, JackGraphManager* manager, jack_time_t callback_usecs) | |||||
| { | { | ||||
| int pos = (++fAudioCycle) % TIME_POINTS; | int pos = (++fAudioCycle) % TIME_POINTS; | ||||
| fLastTime = fCurTime; | fLastTime = fCurTime; | ||||
| fCurTime = callbackUsecs; | |||||
| fCurTime = callback_usecs; | |||||
| fLastProcessTime = fProcessTime; | fLastProcessTime = fProcessTime; | ||||
| fProcessTime = GetMicroSeconds(); | fProcessTime = GetMicroSeconds(); | ||||
| @@ -115,8 +124,8 @@ void JackEngineTiming::GetTimeMeasure(jack_time_t callbackUsecs) | |||||
| fMeasure[pos].fAudioCycle = fAudioCycle; | fMeasure[pos].fAudioCycle = fAudioCycle; | ||||
| for (int i = 0; i < CLIENT_NUM; i++) { | for (int i = 0; i < CLIENT_NUM; i++) { | ||||
| JackClientInterface* client = fClientTable[i]; | |||||
| JackClientTiming* timing = fGraphManager->GetClientTiming(i); | |||||
| JackClientInterface* client = table[i]; | |||||
| JackClientTiming* timing = manager->GetClientTiming(i); | |||||
| if (client && client->GetClientControl()->fActive) { | if (client && client->GetClientControl()->fActive) { | ||||
| fMeasure[pos].fClientTable[i].fRefNum = i; | fMeasure[pos].fClientTable[i].fRefNum = i; | ||||
| fMeasure[pos].fClientTable[i].fSignaledAt = timing->fSignaledAt; | fMeasure[pos].fClientTable[i].fSignaledAt = timing->fSignaledAt; | ||||
| @@ -128,7 +137,7 @@ void JackEngineTiming::GetTimeMeasure(jack_time_t callbackUsecs) | |||||
| } | } | ||||
| } | } | ||||
| void JackEngineTiming::ClearTimeMeasures() | |||||
| void JackEngineControl::ClearTimeMeasures() | |||||
| { | { | ||||
| for (int i = 0; i < TIME_POINTS; i++) { | for (int i = 0; i < TIME_POINTS; i++) { | ||||
| for (int j = 0; j < CLIENT_NUM; j++) { | for (int j = 0; j < CLIENT_NUM; j++) { | ||||
| @@ -141,6 +150,4 @@ void JackEngineTiming::ClearTimeMeasures() | |||||
| fLastTime = fCurTime = 0; | fLastTime = fCurTime = 0; | ||||
| } | } | ||||
| } // end of namespace | } // end of namespace | ||||
| @@ -29,75 +29,118 @@ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. | |||||
| namespace Jack | namespace Jack | ||||
| { | { | ||||
| class JackClientInterface; | |||||
| class JackGraphManager; | |||||
| #define TIME_POINTS 1000 | |||||
| #define JACK_ENGINE_ROLLING_COUNT 32 | |||||
| #define JACK_ENGINE_ROLLING_INTERVAL 1024 | |||||
| /*! | |||||
| \brief Timing stucture for a client. | |||||
| */ | |||||
| struct JackTimingMeasureClient | |||||
| { | |||||
| int fRefNum; | |||||
| jack_time_t fSignaledAt; | |||||
| jack_time_t fAwakeAt; | |||||
| jack_time_t fFinishedAt; | |||||
| jack_client_state_t fStatus; | |||||
| }; | |||||
| /*! | |||||
| \brief Timing stucture for a table of clients. | |||||
| */ | |||||
| struct JackTimingMeasure | |||||
| { | |||||
| long fAudioCycle; | |||||
| jack_time_t fEngineTime; | |||||
| JackTimingMeasureClient fClientTable[CLIENT_NUM]; | |||||
| }; | |||||
| /*! | /*! | ||||
| \brief Engine control in shared memory. | \brief Engine control in shared memory. | ||||
| */ | */ | ||||
| struct JackEngineControl : public JackShmMem | struct JackEngineControl : public JackShmMem | ||||
| { | { | ||||
| // Shared state | |||||
| jack_nframes_t fBufferSize; | jack_nframes_t fBufferSize; | ||||
| jack_nframes_t fSampleRate; | jack_nframes_t fSampleRate; | ||||
| float fCPULoad; | |||||
| bool fSyncMode; | bool fSyncMode; | ||||
| bool fTemporary; | bool fTemporary; | ||||
| jack_time_t fPeriodUsecs; | jack_time_t fPeriodUsecs; | ||||
| jack_time_t fTimeOutUsecs; | jack_time_t fTimeOutUsecs; | ||||
| bool fRealTime; | bool fRealTime; | ||||
| int32_t fPriority; | int32_t fPriority; | ||||
| UInt64 fPeriod; | |||||
| UInt64 fComputation; | |||||
| UInt64 fConstraint; | |||||
| char fServerName[64]; | char fServerName[64]; | ||||
| JackFrameTimer fFrameTimer; | |||||
| JackTransportEngine fTransport; | JackTransportEngine fTransport; | ||||
| bool fVerbose; | bool fVerbose; | ||||
| JackEngineControl(bool sync, bool temporary, long timeout, bool rt, long priority, bool verbose, const char* server_name) | |||||
| :fSyncMode(sync), | |||||
| fTemporary(temporary), | |||||
| fTimeOutUsecs(timeout * 1000), | |||||
| fRealTime(rt), | |||||
| fPriority(priority), | |||||
| fVerbose(verbose) | |||||
| { | |||||
| snprintf(fServerName, sizeof(fServerName), server_name); | |||||
| } | |||||
| void InitFrameTime() | |||||
| { | |||||
| fFrameTimer.InitFrameTime(); | |||||
| } | |||||
| // Timing | |||||
| JackTimingMeasure fMeasure[TIME_POINTS]; | |||||
| jack_time_t fLastTime; | |||||
| jack_time_t fCurTime; | |||||
| jack_time_t fProcessTime; | |||||
| jack_time_t fLastProcessTime; | |||||
| jack_time_t fSpareUsecs; | |||||
| jack_time_t fMaxUsecs; | |||||
| uint32_t fAudioCycle; | |||||
| jack_time_t fRollingClientUsecs[JACK_ENGINE_ROLLING_COUNT]; | |||||
| int fRollingClientUsecsCnt; | |||||
| int fRollingClientUsecsIndex; | |||||
| int fRollingInterval; | |||||
| float fCPULoad; | |||||
| void IncFrameTime(jack_time_t callback_usecs) | |||||
| { | |||||
| fFrameTimer.IncFrameTime(fBufferSize, callback_usecs, fPeriodUsecs); | |||||
| } | |||||
| // Fos OSX thread | |||||
| UInt64 fPeriod; | |||||
| UInt64 fComputation; | |||||
| UInt64 fConstraint; | |||||
| void ResetFrameTime(jack_time_t callback_usecs) | |||||
| // Timer | |||||
| JackFrameTimer fFrameTimer; | |||||
| JackEngineControl(bool sync, bool temporary, long timeout, bool rt, long priority, bool verbose, const char* server_name) | |||||
| { | { | ||||
| fFrameTimer.ResetFrameTime(fSampleRate, callback_usecs, fPeriodUsecs); | |||||
| fSyncMode = sync; | |||||
| fTemporary = temporary; | |||||
| fTimeOutUsecs = timeout * 1000; | |||||
| fRealTime = rt; | |||||
| fPriority = priority; | |||||
| fVerbose = verbose; | |||||
| fLastTime = 0; | |||||
| fCurTime = 0; | |||||
| fProcessTime = 0; | |||||
| fLastProcessTime = 0; | |||||
| fSpareUsecs = 0; | |||||
| fMaxUsecs = 0; | |||||
| fAudioCycle = 0; | |||||
| ClearTimeMeasures(); | |||||
| ResetRollingUsecs(); | |||||
| snprintf(fServerName, sizeof(fServerName), server_name); | |||||
| } | } | ||||
| ~JackEngineControl() | |||||
| {} | |||||
| void ReadFrameTime(JackTimer* timer) | |||||
| { | |||||
| fFrameTimer.ReadFrameTime(timer); | |||||
| } | |||||
| // Cycle | |||||
| void CycleBegin(JackClientInterface** table, JackGraphManager* manager, jack_time_t callback_usecs); | |||||
| void CycleEnd(JackClientInterface** table); | |||||
| void CycleBegin(jack_time_t callback_usecs) | |||||
| { | |||||
| fTransport.CycleBegin(fSampleRate, callback_usecs); | |||||
| } | |||||
| void CycleEnd(JackClientInterface** table) | |||||
| { | |||||
| fTransport.CycleEnd(table, fSampleRate, fBufferSize); | |||||
| } | |||||
| // Timer | |||||
| void InitFrameTime(); | |||||
| void ResetFrameTime(jack_time_t callback_usecs); | |||||
| void ReadFrameTime(JackTimer* timer); | |||||
| // Private | |||||
| void CalcCPULoad(JackClientInterface** table, JackGraphManager* manager); | |||||
| void GetTimeMeasure(JackClientInterface** table, JackGraphManager* manager, jack_time_t callback_usecs); | |||||
| void ClearTimeMeasures(); | |||||
| void ResetRollingUsecs(); | |||||
| }; | }; | ||||
| } // end of namespace | } // end of namespace | ||||
| #endif | #endif | ||||
| @@ -1,104 +0,0 @@ | |||||
| /* | |||||
| Copyright (C) 2004-2006 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 __JackEngineTiming__ | |||||
| #define __JackEngineTiming__ | |||||
| #include "types.h" | |||||
| #include "JackGraphManager.h" | |||||
| namespace Jack | |||||
| { | |||||
| #define TIME_POINTS 1000 | |||||
| #define JACK_ENGINE_ROLLING_COUNT 32 | |||||
| #define JACK_ENGINE_ROLLING_INTERVAL 1024 | |||||
| class JackClientInterface; | |||||
| struct JackEngineControl; | |||||
| /*! | |||||
| \brief Timing stucture for a client. | |||||
| */ | |||||
| struct JackTimingMeasureClient | |||||
| { | |||||
| int fRefNum; | |||||
| jack_time_t fSignaledAt; | |||||
| jack_time_t fAwakeAt; | |||||
| jack_time_t fFinishedAt; | |||||
| jack_client_state_t fStatus; | |||||
| }; | |||||
| /*! | |||||
| \brief Timing stucture for a table of clients. | |||||
| */ | |||||
| struct JackTimingMeasure | |||||
| { | |||||
| long fAudioCycle; | |||||
| jack_time_t fEngineTime; | |||||
| JackTimingMeasureClient fClientTable[CLIENT_NUM]; | |||||
| }; | |||||
| /*! | |||||
| \brief Engine timing management. | |||||
| */ | |||||
| class JackEngineTiming | |||||
| { | |||||
| private: | |||||
| JackClientInterface** fClientTable; | |||||
| JackGraphManager* fGraphManager; | |||||
| JackEngineControl* fEngineControl; | |||||
| JackTimingMeasure fMeasure[TIME_POINTS]; | |||||
| jack_time_t fLastTime; | |||||
| jack_time_t fCurTime; | |||||
| jack_time_t fProcessTime; | |||||
| jack_time_t fLastProcessTime; | |||||
| jack_time_t fSpareUsecs; | |||||
| jack_time_t fMaxUsecs; | |||||
| uint32_t fAudioCycle; | |||||
| jack_time_t fRollingClientUsecs[JACK_ENGINE_ROLLING_COUNT]; | |||||
| int fRollingClientUsecsCnt; | |||||
| int fRollingClientUsecsIndex; | |||||
| int fRollingInterval; | |||||
| void CalcCPULoad(); | |||||
| void GetTimeMeasure(jack_time_t callback_usecs); | |||||
| public: | |||||
| JackEngineTiming(JackClientInterface** table, JackGraphManager* manager, JackEngineControl* control); | |||||
| virtual ~JackEngineTiming() | |||||
| {} | |||||
| void UpdateTiming(jack_time_t callback_usecs); | |||||
| void ResetRollingUsecs(); | |||||
| void ClearTimeMeasures(); | |||||
| }; | |||||
| } // end of namespace | |||||
| #endif | |||||
| @@ -24,7 +24,7 @@ | |||||
| int jack_verbose = 0; | int jack_verbose = 0; | ||||
| EXPORT void jack_error (const char *fmt, ...) | |||||
| EXPORT void jack_error(const char *fmt, ...) | |||||
| { | { | ||||
| va_list ap; | va_list ap; | ||||
| char buffer[300]; | char buffer[300]; | ||||
| @@ -37,7 +37,6 @@ EXPORT void jack_error (const char *fmt, ...) | |||||
| EXPORT void JackLog(char *fmt,...) | EXPORT void JackLog(char *fmt,...) | ||||
| { | { | ||||
| #ifdef PRINTDEBUG | |||||
| if (jack_verbose) { | if (jack_verbose) { | ||||
| va_list ap; | va_list ap; | ||||
| va_start(ap, fmt); | va_start(ap, fmt); | ||||
| @@ -45,6 +44,5 @@ EXPORT void JackLog(char *fmt,...) | |||||
| vfprintf(stderr, fmt, ap); | vfprintf(stderr, fmt, ap); | ||||
| va_end(ap); | va_end(ap); | ||||
| } | } | ||||
| #endif | |||||
| } | } | ||||
| @@ -22,11 +22,8 @@ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. | |||||
| #include <string.h> | #include <string.h> | ||||
| #include <errno.h> | #include <errno.h> | ||||
| #include <stdio.h> | #include <stdio.h> | ||||
| #include "JackConstants.h" | |||||
| #include "JackExports.h" | #include "JackExports.h" | ||||
| #ifdef __cplusplus | #ifdef __cplusplus | ||||
| extern "C" | extern "C" | ||||
| { | { | ||||
| @@ -26,9 +26,8 @@ VPATH := $(subprojects) | |||||
| LIB_LINUX := -lpthread -lrt -lasound | LIB_LINUX := -lpthread -lrt -lasound | ||||
| objects_common_server_lib := JackActivationCount.o JackAPI.o JackAudioDriver.o JackClient.o JackConnectionManager.o \ | objects_common_server_lib := JackActivationCount.o JackAPI.o JackAudioDriver.o JackClient.o JackConnectionManager.o \ | ||||
| JackDriver.o JackEngine.o JackEngineTiming.o JackError.o JackExternalClient.o JackFrameTimer.o \ | |||||
| JackDriver.o JackEngine.o JackEngineControl.o JackError.o JackExternalClient.o JackFrameTimer.o \ | |||||
| JackFreewheelDriver.o JackGlobalsServer.o JackGraphManager.o JackInternalClient.o JackPort.o JackPosixSemaphore.o JackPosixThread.o JackFifo.o JackLoopbackDriver.o\ | JackFreewheelDriver.o JackGlobalsServer.o JackGraphManager.o JackInternalClient.o JackPort.o JackPosixSemaphore.o JackPosixThread.o JackFifo.o JackLoopbackDriver.o\ | ||||
| JackPortType.o JackAudioPort.o JackMidiPort.o \ | JackPortType.o JackAudioPort.o JackMidiPort.o \ | ||||
| JackServer.o JackShmMem.o JackThreadedDriver.o shm.o JackSocket.o JackSocketServerChannel.o JackSocketNotifyChannel.o \ | JackServer.o JackShmMem.o JackThreadedDriver.o shm.o JackSocket.o JackSocketServerChannel.o JackSocketNotifyChannel.o \ | ||||
| @@ -40,7 +39,6 @@ objects_common_client_lib := JackActivationCount.o JackAPI.o JackClient.o JackCo | |||||
| JackPortType.o JackAudioPort.o JackMidiPort.o JackMidiAPI.o \ | JackPortType.o JackAudioPort.o JackMidiPort.o JackMidiAPI.o \ | ||||
| JackPosixThread.o JackShmMem.o shm.o JackSocket.o JackSocketClientChannel.o JackTime.o JackGlobals.o JackDebugClient.o JackTransportEngine.o timestamps.o | JackPosixThread.o JackShmMem.o shm.o JackSocket.o JackSocketClientChannel.o JackTime.o JackGlobals.o JackDebugClient.o JackTransportEngine.o timestamps.o | ||||
| objects_linux_server := Jackdmp.o | objects_linux_server := Jackdmp.o | ||||
| objects_linux_alsa := JackAlsaDriver.o memops.o generic_hw.o hdsp.o hammerfall.o ice1712.o | objects_linux_alsa := JackAlsaDriver.o memops.o generic_hw.o hdsp.o hammerfall.o ice1712.o | ||||
| @@ -147,7 +147,6 @@ | |||||
| 4B699C6F097D421600A18468 /* JackDriverLoader.h in Headers */ = {isa = PBXBuildFile; fileRef = 4B869B4208C8D22F001CF041 /* JackDriverLoader.h */; }; | 4B699C6F097D421600A18468 /* JackDriverLoader.h in Headers */ = {isa = PBXBuildFile; fileRef = 4B869B4208C8D22F001CF041 /* JackDriverLoader.h */; }; | ||||
| 4B699C70097D421600A18468 /* jslist.h in Headers */ = {isa = PBXBuildFile; fileRef = 4B869B6408C8D76B001CF041 /* jslist.h */; }; | 4B699C70097D421600A18468 /* jslist.h in Headers */ = {isa = PBXBuildFile; fileRef = 4B869B6408C8D76B001CF041 /* jslist.h */; }; | ||||
| 4B699C71097D421600A18468 /* JackEngine.h in Headers */ = {isa = PBXBuildFile; fileRef = 4BF8D2130834F02800C94B91 /* JackEngine.h */; }; | 4B699C71097D421600A18468 /* JackEngine.h in Headers */ = {isa = PBXBuildFile; fileRef = 4BF8D2130834F02800C94B91 /* JackEngine.h */; }; | ||||
| 4B699C72097D421600A18468 /* JackEngineTiming.h in Headers */ = {isa = PBXBuildFile; fileRef = 4BF8D2100834F01C00C94B91 /* JackEngineTiming.h */; }; | |||||
| 4B699C73097D421600A18468 /* JackExternalClient.h in Headers */ = {isa = PBXBuildFile; fileRef = 4BF8D1F70834EFBD00C94B91 /* JackExternalClient.h */; }; | 4B699C73097D421600A18468 /* JackExternalClient.h in Headers */ = {isa = PBXBuildFile; fileRef = 4BF8D1F70834EFBD00C94B91 /* JackExternalClient.h */; }; | ||||
| 4B699C74097D421600A18468 /* JackServer.h in Headers */ = {isa = PBXBuildFile; fileRef = 4BF8D2220834F05C00C94B91 /* JackServer.h */; }; | 4B699C74097D421600A18468 /* JackServer.h in Headers */ = {isa = PBXBuildFile; fileRef = 4BF8D2220834F05C00C94B91 /* JackServer.h */; }; | ||||
| 4B699C75097D421600A18468 /* JackSocketServerNotifyChannel.h in Headers */ = {isa = PBXBuildFile; fileRef = 4B9745CB08AF771B0094983C /* JackSocketServerNotifyChannel.h */; }; | 4B699C75097D421600A18468 /* JackSocketServerNotifyChannel.h in Headers */ = {isa = PBXBuildFile; fileRef = 4B9745CB08AF771B0094983C /* JackSocketServerNotifyChannel.h */; }; | ||||
| @@ -183,7 +182,6 @@ | |||||
| 4B699C95097D421600A18468 /* JackDriver.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4BF8D1B60834EEE400C94B91 /* JackDriver.cpp */; }; | 4B699C95097D421600A18468 /* JackDriver.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4BF8D1B60834EEE400C94B91 /* JackDriver.cpp */; }; | ||||
| 4B699C96097D421600A18468 /* JackDriverLoader.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4B869D7F08C9CB00001CF041 /* JackDriverLoader.cpp */; }; | 4B699C96097D421600A18468 /* JackDriverLoader.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4B869D7F08C9CB00001CF041 /* JackDriverLoader.cpp */; }; | ||||
| 4B699C97097D421600A18468 /* JackEngine.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4BF8D2140834F02800C94B91 /* JackEngine.cpp */; }; | 4B699C97097D421600A18468 /* JackEngine.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4BF8D2140834F02800C94B91 /* JackEngine.cpp */; }; | ||||
| 4B699C98097D421600A18468 /* JackEngineTiming.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4BF8D20F0834F01C00C94B91 /* JackEngineTiming.cpp */; }; | |||||
| 4B699C99097D421600A18468 /* JackExternalClient.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4BF8D1F80834EFBD00C94B91 /* JackExternalClient.cpp */; }; | 4B699C99097D421600A18468 /* JackExternalClient.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4BF8D1F80834EFBD00C94B91 /* JackExternalClient.cpp */; }; | ||||
| 4B699C9A097D421600A18468 /* JackInternalClient.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4BF8D1ED0834EF9200C94B91 /* JackInternalClient.cpp */; }; | 4B699C9A097D421600A18468 /* JackInternalClient.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4BF8D1ED0834EF9200C94B91 /* JackInternalClient.cpp */; }; | ||||
| 4B699C9B097D421600A18468 /* JackRPCClientUser.c in Sources */ = {isa = PBXBuildFile; fileRef = 4B89B759076B731100D170DE /* JackRPCClientUser.c */; }; | 4B699C9B097D421600A18468 /* JackRPCClientUser.c in Sources */ = {isa = PBXBuildFile; fileRef = 4B89B759076B731100D170DE /* JackRPCClientUser.c */; }; | ||||
| @@ -261,6 +259,8 @@ | |||||
| 4B6C73890CC60A85001AFFD4 /* statistics.h in Headers */ = {isa = PBXBuildFile; fileRef = 4B6C737C0CC60A6D001AFFD4 /* statistics.h */; settings = {ATTRIBUTES = (Public, ); }; }; | 4B6C73890CC60A85001AFFD4 /* statistics.h in Headers */ = {isa = PBXBuildFile; fileRef = 4B6C737C0CC60A6D001AFFD4 /* statistics.h */; settings = {ATTRIBUTES = (Public, ); }; }; | ||||
| 4B6C738A0CC60A85001AFFD4 /* thread.h in Headers */ = {isa = PBXBuildFile; fileRef = 4B6C737D0CC60A6D001AFFD4 /* thread.h */; settings = {ATTRIBUTES = (Public, ); }; }; | 4B6C738A0CC60A85001AFFD4 /* thread.h in Headers */ = {isa = PBXBuildFile; fileRef = 4B6C737D0CC60A6D001AFFD4 /* thread.h */; settings = {ATTRIBUTES = (Public, ); }; }; | ||||
| 4B6C738B0CC60A86001AFFD4 /* transport.h in Headers */ = {isa = PBXBuildFile; fileRef = 4B6C737E0CC60A6D001AFFD4 /* transport.h */; settings = {ATTRIBUTES = (Public, ); }; }; | 4B6C738B0CC60A86001AFFD4 /* transport.h in Headers */ = {isa = PBXBuildFile; fileRef = 4B6C737E0CC60A6D001AFFD4 /* transport.h */; settings = {ATTRIBUTES = (Public, ); }; }; | ||||
| 4B6F7AED0CD0CDBD00F48A9D /* JackEngineControl.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4B6F7AEC0CD0CDBD00F48A9D /* JackEngineControl.cpp */; }; | |||||
| 4B6F7AEE0CD0CDBD00F48A9D /* JackEngineControl.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4B6F7AEC0CD0CDBD00F48A9D /* JackEngineControl.cpp */; }; | |||||
| 4B80D7E80BA0D17400F035BB /* JackMidiPort.h in Headers */ = {isa = PBXBuildFile; fileRef = 4B80D7E50BA0D17400F035BB /* JackMidiPort.h */; }; | 4B80D7E80BA0D17400F035BB /* JackMidiPort.h in Headers */ = {isa = PBXBuildFile; fileRef = 4B80D7E50BA0D17400F035BB /* JackMidiPort.h */; }; | ||||
| 4B80D7E90BA0D17400F035BB /* JackMidiPort.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4B80D7E60BA0D17400F035BB /* JackMidiPort.cpp */; }; | 4B80D7E90BA0D17400F035BB /* JackMidiPort.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4B80D7E60BA0D17400F035BB /* JackMidiPort.cpp */; }; | ||||
| 4B80D7EA0BA0D17400F035BB /* JackMidiAPI.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4B80D7E70BA0D17400F035BB /* JackMidiAPI.cpp */; }; | 4B80D7EA0BA0D17400F035BB /* JackMidiAPI.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4B80D7E70BA0D17400F035BB /* JackMidiAPI.cpp */; }; | ||||
| @@ -525,6 +525,7 @@ | |||||
| 4B6C737D0CC60A6D001AFFD4 /* thread.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = thread.h; path = ../common/jack/thread.h; sourceTree = SOURCE_ROOT; }; | 4B6C737D0CC60A6D001AFFD4 /* thread.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = thread.h; path = ../common/jack/thread.h; sourceTree = SOURCE_ROOT; }; | ||||
| 4B6C737E0CC60A6D001AFFD4 /* transport.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = transport.h; path = ../common/jack/transport.h; sourceTree = SOURCE_ROOT; }; | 4B6C737E0CC60A6D001AFFD4 /* transport.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = transport.h; path = ../common/jack/transport.h; sourceTree = SOURCE_ROOT; }; | ||||
| 4B6C737F0CC60A6D001AFFD4 /* types.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = types.h; path = ../common/jack/types.h; sourceTree = SOURCE_ROOT; }; | 4B6C737F0CC60A6D001AFFD4 /* types.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = types.h; path = ../common/jack/types.h; sourceTree = SOURCE_ROOT; }; | ||||
| 4B6F7AEC0CD0CDBD00F48A9D /* JackEngineControl.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = JackEngineControl.cpp; path = ../common/JackEngineControl.cpp; sourceTree = SOURCE_ROOT; }; | |||||
| 4B799AD607899652003F3F15 /* JackMachPort.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = JackMachPort.cpp; sourceTree = "<group>"; }; | 4B799AD607899652003F3F15 /* JackMachPort.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = JackMachPort.cpp; sourceTree = "<group>"; }; | ||||
| 4B799AD707899652003F3F15 /* JackMachPort.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = JackMachPort.h; sourceTree = "<group>"; }; | 4B799AD707899652003F3F15 /* JackMachPort.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = JackMachPort.h; sourceTree = "<group>"; }; | ||||
| 4B80D7E50BA0D17400F035BB /* JackMidiPort.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = JackMidiPort.h; path = ../common/JackMidiPort.h; sourceTree = SOURCE_ROOT; }; | 4B80D7E50BA0D17400F035BB /* JackMidiPort.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = JackMidiPort.h; path = ../common/JackMidiPort.h; sourceTree = SOURCE_ROOT; }; | ||||
| @@ -637,8 +638,6 @@ | |||||
| 4BF8D1FC0834EFD100C94B91 /* JackLibClient.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = JackLibClient.h; path = ../common/JackLibClient.h; sourceTree = SOURCE_ROOT; }; | 4BF8D1FC0834EFD100C94B91 /* JackLibClient.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = JackLibClient.h; path = ../common/JackLibClient.h; sourceTree = SOURCE_ROOT; }; | ||||
| 4BF8D1FD0834EFD100C94B91 /* JackLibClient.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = JackLibClient.cpp; path = ../common/JackLibClient.cpp; sourceTree = SOURCE_ROOT; }; | 4BF8D1FD0834EFD100C94B91 /* JackLibClient.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = JackLibClient.cpp; path = ../common/JackLibClient.cpp; sourceTree = SOURCE_ROOT; }; | ||||
| 4BF8D1FE0834EFD100C94B91 /* JackLibAPI.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = JackLibAPI.cpp; path = ../common/JackLibAPI.cpp; sourceTree = SOURCE_ROOT; }; | 4BF8D1FE0834EFD100C94B91 /* JackLibAPI.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = JackLibAPI.cpp; path = ../common/JackLibAPI.cpp; sourceTree = SOURCE_ROOT; }; | ||||
| 4BF8D20F0834F01C00C94B91 /* JackEngineTiming.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = JackEngineTiming.cpp; path = ../common/JackEngineTiming.cpp; sourceTree = SOURCE_ROOT; }; | |||||
| 4BF8D2100834F01C00C94B91 /* JackEngineTiming.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = JackEngineTiming.h; path = ../common/JackEngineTiming.h; sourceTree = SOURCE_ROOT; }; | |||||
| 4BF8D2130834F02800C94B91 /* JackEngine.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = JackEngine.h; path = ../common/JackEngine.h; sourceTree = SOURCE_ROOT; }; | 4BF8D2130834F02800C94B91 /* JackEngine.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = JackEngine.h; path = ../common/JackEngine.h; sourceTree = SOURCE_ROOT; }; | ||||
| 4BF8D2140834F02800C94B91 /* JackEngine.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = JackEngine.cpp; path = ../common/JackEngine.cpp; sourceTree = SOURCE_ROOT; }; | 4BF8D2140834F02800C94B91 /* JackEngine.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = JackEngine.cpp; path = ../common/JackEngine.cpp; sourceTree = SOURCE_ROOT; }; | ||||
| 4BF8D2190834F03D00C94B91 /* JackEngineControl.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = JackEngineControl.h; path = ../common/JackEngineControl.h; sourceTree = SOURCE_ROOT; }; | 4BF8D2190834F03D00C94B91 /* JackEngineControl.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = JackEngineControl.h; path = ../common/JackEngineControl.h; sourceTree = SOURCE_ROOT; }; | ||||
| @@ -1017,6 +1016,7 @@ | |||||
| 4B123D3308B3954300540632 /* JackGlobalsClient.cpp */, | 4B123D3308B3954300540632 /* JackGlobalsClient.cpp */, | ||||
| 4B123D3608B3954A00540632 /* JackGlobalsServer.cpp */, | 4B123D3608B3954A00540632 /* JackGlobalsServer.cpp */, | ||||
| 4BF8D2190834F03D00C94B91 /* JackEngineControl.h */, | 4BF8D2190834F03D00C94B91 /* JackEngineControl.h */, | ||||
| 4B6F7AEC0CD0CDBD00F48A9D /* JackEngineControl.cpp */, | |||||
| 4BD4B4D409BACD9600750C0F /* JackTransportEngine.h */, | 4BD4B4D409BACD9600750C0F /* JackTransportEngine.h */, | ||||
| 4BD4B4D509BACD9600750C0F /* JackTransportEngine.cpp */, | 4BD4B4D509BACD9600750C0F /* JackTransportEngine.cpp */, | ||||
| 4BF8D2220834F05C00C94B91 /* JackServer.h */, | 4BF8D2220834F05C00C94B91 /* JackServer.h */, | ||||
| @@ -1123,8 +1123,6 @@ | |||||
| 4BF8D2140834F02800C94B91 /* JackEngine.cpp */, | 4BF8D2140834F02800C94B91 /* JackEngine.cpp */, | ||||
| 4BF8FB0E08AC88EF00D1A344 /* JackFrameTimer.h */, | 4BF8FB0E08AC88EF00D1A344 /* JackFrameTimer.h */, | ||||
| 4BF8FB0D08AC88EF00D1A344 /* JackFrameTimer.cpp */, | 4BF8FB0D08AC88EF00D1A344 /* JackFrameTimer.cpp */, | ||||
| 4BF8D2100834F01C00C94B91 /* JackEngineTiming.h */, | |||||
| 4BF8D20F0834F01C00C94B91 /* JackEngineTiming.cpp */, | |||||
| ); | ); | ||||
| name = Engine; | name = Engine; | ||||
| sourceTree = "<group>"; | sourceTree = "<group>"; | ||||
| @@ -1361,7 +1359,6 @@ | |||||
| 4B699C6F097D421600A18468 /* JackDriverLoader.h in Headers */, | 4B699C6F097D421600A18468 /* JackDriverLoader.h in Headers */, | ||||
| 4B699C70097D421600A18468 /* jslist.h in Headers */, | 4B699C70097D421600A18468 /* jslist.h in Headers */, | ||||
| 4B699C71097D421600A18468 /* JackEngine.h in Headers */, | 4B699C71097D421600A18468 /* JackEngine.h in Headers */, | ||||
| 4B699C72097D421600A18468 /* JackEngineTiming.h in Headers */, | |||||
| 4B699C73097D421600A18468 /* JackExternalClient.h in Headers */, | 4B699C73097D421600A18468 /* JackExternalClient.h in Headers */, | ||||
| 4B699C74097D421600A18468 /* JackServer.h in Headers */, | 4B699C74097D421600A18468 /* JackServer.h in Headers */, | ||||
| 4B699C75097D421600A18468 /* JackSocketServerNotifyChannel.h in Headers */, | 4B699C75097D421600A18468 /* JackSocketServerNotifyChannel.h in Headers */, | ||||
| @@ -2280,6 +2277,7 @@ | |||||
| 4BAB95ED0B9E21A500A0C723 /* JackAudioPort.cpp in Sources */, | 4BAB95ED0B9E21A500A0C723 /* JackAudioPort.cpp in Sources */, | ||||
| 4B80D7E90BA0D17400F035BB /* JackMidiPort.cpp in Sources */, | 4B80D7E90BA0D17400F035BB /* JackMidiPort.cpp in Sources */, | ||||
| 4B80D7EA0BA0D17400F035BB /* JackMidiAPI.cpp in Sources */, | 4B80D7EA0BA0D17400F035BB /* JackMidiAPI.cpp in Sources */, | ||||
| 4B6F7AED0CD0CDBD00F48A9D /* JackEngineControl.cpp in Sources */, | |||||
| ); | ); | ||||
| runOnlyForDeploymentPostprocessing = 0; | runOnlyForDeploymentPostprocessing = 0; | ||||
| }; | }; | ||||
| @@ -2313,7 +2311,6 @@ | |||||
| 4B699C95097D421600A18468 /* JackDriver.cpp in Sources */, | 4B699C95097D421600A18468 /* JackDriver.cpp in Sources */, | ||||
| 4B699C96097D421600A18468 /* JackDriverLoader.cpp in Sources */, | 4B699C96097D421600A18468 /* JackDriverLoader.cpp in Sources */, | ||||
| 4B699C97097D421600A18468 /* JackEngine.cpp in Sources */, | 4B699C97097D421600A18468 /* JackEngine.cpp in Sources */, | ||||
| 4B699C98097D421600A18468 /* JackEngineTiming.cpp in Sources */, | |||||
| 4B699C99097D421600A18468 /* JackExternalClient.cpp in Sources */, | 4B699C99097D421600A18468 /* JackExternalClient.cpp in Sources */, | ||||
| 4B699C9A097D421600A18468 /* JackInternalClient.cpp in Sources */, | 4B699C9A097D421600A18468 /* JackInternalClient.cpp in Sources */, | ||||
| 4B699C9B097D421600A18468 /* JackRPCClientUser.c in Sources */, | 4B699C9B097D421600A18468 /* JackRPCClientUser.c in Sources */, | ||||
| @@ -2336,6 +2333,7 @@ | |||||
| 4BAB95EE0B9E21A500A0C723 /* JackAudioPort.cpp in Sources */, | 4BAB95EE0B9E21A500A0C723 /* JackAudioPort.cpp in Sources */, | ||||
| 4B80D7EC0BA0D17400F035BB /* JackMidiPort.cpp in Sources */, | 4B80D7EC0BA0D17400F035BB /* JackMidiPort.cpp in Sources */, | ||||
| 4B80D7ED0BA0D17400F035BB /* JackMidiAPI.cpp in Sources */, | 4B80D7ED0BA0D17400F035BB /* JackMidiAPI.cpp in Sources */, | ||||
| 4B6F7AEE0CD0CDBD00F48A9D /* JackEngineControl.cpp in Sources */, | |||||
| ); | ); | ||||
| runOnlyForDeploymentPostprocessing = 0; | runOnlyForDeploymentPostprocessing = 0; | ||||
| }; | }; | ||||