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)
{
JackGlobals::CheckContext("jack_client_stop_thread");

return JackThread::StopImp(thread);
}

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

return JackThread::KillImp(thread);
}

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

jack_error("jack_internal_client_new: deprecated");
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)
{
JackGlobals::CheckContext("jack_internal_client_close");

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()
{
JackGlobals::CheckContext("jack_get_version_string");

return VERSION;
}



+ 11
- 9
common/JackClient.cpp View File

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

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

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

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()->fComputation) / 1000.0f),
long(int64_t(GetEngineControl()->fConstraint) / 1000.0f));
@@ -548,6 +543,13 @@ int JackClient::StartThread()
// Will do "something" on OSX only...
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) {
jack_error("Start thread error");
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 int ActivateAux();
inline void InitAux();
inline void SetupRealTime();

int HandleLatencyCallback(int status);



Loading…
Cancel
Save