Browse Source

Cleanup RT setup code in JackClient.

tags/v1.9.10
Stephane Letz 12 years ago
parent
commit
3959a27499
3 changed files with 12 additions and 14 deletions
  1. +0
    -5
      common/JackAPI.cpp
  2. +11
    -9
      common/JackClient.cpp
  3. +1
    -0
      common/JackClient.h

+ 0
- 5
common/JackAPI.cpp View File

@@ -1718,14 +1718,12 @@ LIB_EXPORT int jack_drop_real_time_scheduling(jack_native_thread_t thread)
LIB_EXPORT int jack_client_stop_thread(jack_client_t* client, jack_native_thread_t thread) LIB_EXPORT int jack_client_stop_thread(jack_client_t* client, jack_native_thread_t thread)
{ {
JackGlobals::CheckContext("jack_client_stop_thread"); JackGlobals::CheckContext("jack_client_stop_thread");

return JackThread::StopImp(thread); return JackThread::StopImp(thread);
} }


LIB_EXPORT int jack_client_kill_thread(jack_client_t* client, jack_native_thread_t thread) LIB_EXPORT int jack_client_kill_thread(jack_client_t* client, jack_native_thread_t thread)
{ {
JackGlobals::CheckContext("jack_client_kill_thread"); JackGlobals::CheckContext("jack_client_kill_thread");

return JackThread::KillImp(thread); return JackThread::KillImp(thread);
} }


@@ -1746,7 +1744,6 @@ LIB_EXPORT int jack_internal_client_new (const char* client_name,
const char* load_init) const char* load_init)
{ {
JackGlobals::CheckContext("jack_internal_client_new"); JackGlobals::CheckContext("jack_internal_client_new");

jack_error("jack_internal_client_new: deprecated"); jack_error("jack_internal_client_new: deprecated");
return -1; return -1;
} }
@@ -1754,7 +1751,6 @@ LIB_EXPORT int jack_internal_client_new (const char* client_name,
LIB_EXPORT void jack_internal_client_close (const char* client_name) LIB_EXPORT void jack_internal_client_close (const char* client_name)
{ {
JackGlobals::CheckContext("jack_internal_client_close"); JackGlobals::CheckContext("jack_internal_client_close");

jack_error("jack_internal_client_close: deprecated"); jack_error("jack_internal_client_close: deprecated");
} }


@@ -1866,7 +1862,6 @@ LIB_EXPORT void jack_get_version(int *major_ptr,
LIB_EXPORT const char* jack_get_version_string() LIB_EXPORT const char* jack_get_version_string()
{ {
JackGlobals::CheckContext("jack_get_version_string"); JackGlobals::CheckContext("jack_get_version_string");

return VERSION; return VERSION;
} }




+ 11
- 9
common/JackClient.cpp View File

@@ -524,23 +524,18 @@ bool JackClient::Init()
jack_error("Failed to set thread realtime key"); jack_error("Failed to set thread realtime key");
} }


if (GetEngineControl()->fRealTime) {
set_threaded_log_function();
}

// Setup RT // Setup RT
if (GetEngineControl()->fRealTime) { if (GetEngineControl()->fRealTime) {
if (fThread.AcquireSelfRealTime(GetEngineControl()->fClientPriority) < 0) {
jack_error("JackClient::AcquireSelfRealTime error");
}
set_threaded_log_function();
SetupRealTime();
} }


return true; return true;
} }


int JackClient::StartThread()
void JackClient::SetupRealTime()
{ {
jack_log("JackClient::StartThread : period = %ld computation = %ld constraint = %ld",
jack_log("JackClient::Init : period = %ld computation = %ld constraint = %ld",
long(int64_t(GetEngineControl()->fPeriod) / 1000.0f), long(int64_t(GetEngineControl()->fPeriod) / 1000.0f),
long(int64_t(GetEngineControl()->fComputation) / 1000.0f), long(int64_t(GetEngineControl()->fComputation) / 1000.0f),
long(int64_t(GetEngineControl()->fConstraint) / 1000.0f)); long(int64_t(GetEngineControl()->fConstraint) / 1000.0f));
@@ -548,6 +543,13 @@ int JackClient::StartThread()
// Will do "something" on OSX only... // Will do "something" on OSX only...
fThread.SetParams(GetEngineControl()->fPeriod, GetEngineControl()->fComputation, GetEngineControl()->fConstraint); fThread.SetParams(GetEngineControl()->fPeriod, GetEngineControl()->fComputation, GetEngineControl()->fConstraint);


if (fThread.AcquireSelfRealTime(GetEngineControl()->fClientPriority) < 0) {
jack_error("JackClient::AcquireSelfRealTime error");
}
}

int JackClient::StartThread()
{
if (fThread.StartSync() < 0) { if (fThread.StartSync() < 0) {
jack_error("Start thread error"); jack_error("Start thread error");
return -1; return -1;


+ 1
- 0
common/JackClient.h View File

@@ -118,6 +118,7 @@ class SERVER_EXPORT JackClient : public JackClientInterface, public JackRunnable
inline void CallTimebaseCallbackAux(); inline void CallTimebaseCallbackAux();
inline int ActivateAux(); inline int ActivateAux();
inline void InitAux(); inline void InitAux();
inline void SetupRealTime();


int HandleLatencyCallback(int status); int HandleLatencyCallback(int status);




Loading…
Cancel
Save