git-svn-id: http://subversion.jackaudio.org/jack/jack2/trunk/jackmp@2934 0c269be4-1314-0410-8aa9-9f06e86f4224tags/1.90
| @@ -23,9 +23,13 @@ Michael Voigt | |||
| Jackdmp changes log | |||
| --------------------------- | |||
| 2008-08-20 Stephane Letz <letz@grame.fr> | |||
| * Michael Voigt JackAPI cleanup patch. | |||
| 2008-08-19 Stephane Letz <letz@grame.fr> | |||
| * Michael Voigt JackTime patch. | |||
| * Michael Voigt JackTime cleanup patch. | |||
| 2008-09-17 Stephane Letz <letz@grame.fr> | |||
| @@ -31,14 +31,7 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. | |||
| #include "JackTime.h" | |||
| #include "JackCompilerDeps.h" | |||
| #include "JackPortType.h" | |||
| #ifdef __APPLE__ | |||
| #include "JackMachThread.h" | |||
| #elif WIN32 | |||
| #include "JackWinThread.h" | |||
| #else | |||
| #include "JackPosixThread.h" | |||
| #endif | |||
| #include "JackPlatformPlug.h" | |||
| #include <math.h> | |||
| #ifdef __CLIENTDEBUG__ | |||
| @@ -1588,14 +1581,8 @@ EXPORT void jack_reset_max_delayed_usecs(jack_client_t* ext_client) | |||
| // thread.h | |||
| EXPORT int jack_acquire_real_time_scheduling(pthread_t thread, int priority) | |||
| { | |||
| #ifdef __APPLE__ | |||
| JackEngineControl* control = GetEngineControl(); | |||
| return (control ? JackMachThread::AcquireRealTimeImp(thread, GetEngineControl()->fPeriod, GetEngineControl()->fComputation, GetEngineControl()->fConstraint) : -1); | |||
| #elif WIN32 | |||
| return JackWinThread::AcquireRealTimeImp(thread, priority); | |||
| #else | |||
| return JackPosixThread::AcquireRealTimeImp(thread, priority); | |||
| #endif | |||
| return (control ? JackThread::AcquireRealTimeImp(thread, priority, GetEngineControl()->fPeriod, GetEngineControl()->fComputation, GetEngineControl()->fConstraint) : -1); | |||
| } | |||
| EXPORT int jack_client_create_thread(jack_client_t* client, | |||
| @@ -1605,42 +1592,22 @@ EXPORT int jack_client_create_thread(jack_client_t* client, | |||
| void *(*start_routine)(void*), | |||
| void *arg) | |||
| { | |||
| #ifdef __APPLE__ | |||
| return JackPosixThread::StartImp(thread, priority, realtime, start_routine, arg); | |||
| #elif WIN32 | |||
| return JackWinThread::StartImp(thread, priority, realtime, (ThreadCallback)start_routine, arg); | |||
| #else | |||
| return JackPosixThread::StartImp(thread, priority, realtime, start_routine, arg); | |||
| #endif | |||
| return JackThread::StartImp(thread, priority, realtime, start_routine, arg); | |||
| } | |||
| EXPORT int jack_drop_real_time_scheduling(pthread_t thread) | |||
| { | |||
| #ifdef __APPLE__ | |||
| return JackMachThread::DropRealTimeImp(thread); | |||
| #elif WIN32 | |||
| return JackWinThread::DropRealTimeImp(thread); | |||
| #else | |||
| return JackPosixThread::DropRealTimeImp(thread); | |||
| #endif | |||
| return JackThread::DropRealTimeImp(thread); | |||
| } | |||
| EXPORT int jack_client_stop_thread(jack_client_t* client, pthread_t thread) | |||
| { | |||
| #ifdef WIN32 | |||
| return JackWinThread::StopImp(thread); | |||
| #else | |||
| return JackPosixThread::StopImp(thread); | |||
| #endif | |||
| return JackThread::StopImp(thread); | |||
| } | |||
| EXPORT int jack_client_kill_thread(jack_client_t* client, pthread_t thread) | |||
| { | |||
| #ifdef WIN32 | |||
| return JackWinThread::KillImp(thread); | |||
| #else | |||
| return JackPosixThread::KillImp(thread); | |||
| #endif | |||
| return JackThread::KillImp(thread); | |||
| } | |||
| // intclient.h | |||
| @@ -27,9 +27,10 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. | |||
| #include "JackChannel.h" | |||
| #include "JackLibGlobals.h" | |||
| #include "JackGlobals.h" | |||
| #include "JackServerLaunch.h" | |||
| #include "JackCompilerDeps.h" | |||
| #include "JackTools.h" | |||
| #include "JackSystemDeps.h" | |||
| #include "JackServerLaunch.h" | |||
| using namespace Jack; | |||
| @@ -81,30 +82,25 @@ EXPORT jack_client_t* jack_client_open_aux(const char* ext_client_name, jack_opt | |||
| } | |||
| /* parse variable arguments */ | |||
| if (ap) | |||
| if (ap) { | |||
| jack_varargs_parse(options, ap, &va); | |||
| else | |||
| } else { | |||
| jack_varargs_init(&va); | |||
| } | |||
| JackLibGlobals::Init(); // jack library initialisation | |||
| #ifndef WIN32 | |||
| if (try_start_server(&va, options, status)) { | |||
| jack_error("jack server is not running or cannot be started"); | |||
| JackLibGlobals::Destroy(); // jack library destruction | |||
| return 0; | |||
| } | |||
| #endif | |||
| #ifndef WIN32 | |||
| char* jack_debug = getenv("JACK_CLIENT_DEBUG"); | |||
| if (jack_debug && strcmp(jack_debug, "on") == 0) | |||
| if (JACK_DEBUG) { | |||
| client = new JackDebugClient(new JackLibClient(GetSynchroTable())); // Debug mode | |||
| else | |||
| } else { | |||
| client = new JackLibClient(GetSynchroTable()); | |||
| #else | |||
| client = new JackLibClient(GetSynchroTable()); | |||
| #endif | |||
| } | |||
| int res = client->Open(va.server_name, client_name, options, status); | |||
| if (res < 0) { | |||
| @@ -28,7 +28,6 @@ This program is free software; you can redistribute it and/or modify | |||
| #include "JackServer.h" | |||
| #include "JackDebugClient.h" | |||
| #include "JackServerGlobals.h" | |||
| #include "JackServerLaunch.h" | |||
| #include "JackTools.h" | |||
| #include "JackCompilerDeps.h" | |||
| #include "JackLockedEngine.h" | |||
| @@ -83,10 +82,11 @@ EXPORT jack_client_t* jack_client_open_aux(const char* ext_client_name, jack_opt | |||
| } | |||
| /* parse variable arguments */ | |||
| if (ap) | |||
| if (ap) { | |||
| jack_varargs_parse(options, ap, &va); | |||
| else | |||
| } else { | |||
| jack_varargs_init(&va); | |||
| } | |||
| g_nostart = (options & JackNoStartServer) != 0; | |||
| if (!g_nostart) { | |||
| @@ -97,15 +97,11 @@ EXPORT jack_client_t* jack_client_open_aux(const char* ext_client_name, jack_opt | |||
| } | |||
| } | |||
| #ifndef WIN32 | |||
| char* jack_debug = getenv("JACK_CLIENT_DEBUG"); | |||
| if (jack_debug && strcmp(jack_debug, "on") == 0) | |||
| if (JACK_DEBUG) { | |||
| client = new JackDebugClient(new JackInternalClient(JackServer::fInstance, GetSynchroTable())); // Debug mode | |||
| else | |||
| } else { | |||
| client = new JackInternalClient(JackServer::fInstance, GetSynchroTable()); | |||
| #else | |||
| client = new JackInternalClient(JackServer::fInstance, GetSynchroTable()); | |||
| #endif | |||
| } | |||
| int res = client->Open(va.server_name, client_name, options, status); | |||
| if (res < 0) { | |||
| @@ -103,6 +103,7 @@ class SERVER_EXPORT JackThreadInterface | |||
| pthread_t GetThreadID(); | |||
| static int AcquireRealTimeImp(pthread_t thread, int priority); | |||
| static int AcquireRealTimeImp(pthread_t thread, int priority, UInt64 period, UInt64 computation, UInt64 constraint); | |||
| static int DropRealTimeImp(pthread_t thread); | |||
| static int StartImp(pthread_t* thread, int priority, int realtime, void*(*start_routine)(void*), void* arg); | |||
| static int StopImp(pthread_t thread); | |||
| @@ -23,6 +23,7 @@ | |||
| #include <stdlib.h> | |||
| #include <stdarg.h> | |||
| #include <string.h> | |||
| #include "types.h" | |||
| #ifdef __cplusplus | |||
| extern "C" | |||
| @@ -180,12 +180,12 @@ def build(bld): | |||
| clientlib.source += [ | |||
| 'JackLibClient.cpp', | |||
| 'JackLibAPI.cpp', | |||
| 'JackServerLaunch.cpp', | |||
| ] | |||
| if bld.env()['IS_LINUX']: | |||
| clientlib.source += [ | |||
| '../posix/JackSocketClientChannel.cpp', | |||
| '../posix/JackPosixServerLaunch.cpp', | |||
| ] | |||
| if bld.env()['IS_MACOSX']: | |||
| @@ -193,6 +193,7 @@ def build(bld): | |||
| '../macosx/JackMachClientChannel.cpp', | |||
| '../macosx/RPC/JackRPCEngineUser.c', | |||
| '../macosx/JackMacLibClientRPC.cpp', | |||
| '../posix/JackPosixServerLaunch.cpp', | |||
| ] | |||
| clientlib.vnum = bld.env()['JACK_API_VERSION'] | |||
| @@ -19,7 +19,7 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. | |||
| */ | |||
| /* | |||
| Copyright: © Copyright 2002 Apple Computer, Inc. All rights reserved. | |||
| Copyright: Copyright 2002 Apple Computer, Inc. All rights reserved. | |||
| Disclaimer: IMPORTANT: This Apple software is supplied to you by Apple Computer, Inc. | |||
| ("Apple") in consideration of your agreement to the following terms, and your | |||
| @@ -28,7 +28,7 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. | |||
| please do not use, install, modify or redistribute this Apple software. | |||
| In consideration of your agreement to abide by the following terms, and subject | |||
| to these terms, Apple grants you a personal, non-exclusive license, under AppleÕs | |||
| to these terms, Apple grants you a personal, non-exclusive license, under Apple | |||
| copyrights in this original Apple software (the "Apple Software"), to use, | |||
| reproduce, modify and redistribute the Apple Software, with or without | |||
| modifications, in source and/or binary forms; provided that if you redistribute | |||
| @@ -111,6 +111,10 @@ class SERVER_EXPORT JackMachThread : public JackPosixThread | |||
| static int SetThreadToPriority(pthread_t thread, UInt32 inPriority, Boolean inIsFixed, UInt64 period, UInt64 computation, UInt64 constraint); | |||
| static int AcquireRealTimeImp(pthread_t thread, UInt64 period, UInt64 computation, UInt64 constraint); | |||
| static int AcquireRealTimeImp(pthread_t thread, int priority, UInt64 period, UInt64 computation, UInt64 constraint) | |||
| { | |||
| return JackMachThread::AcquireRealTimeImp(thread, period, computation, constraint); | |||
| } | |||
| static int DropRealTimeImp(pthread_t thread); | |||
| }; | |||
| @@ -65,6 +65,8 @@ class SERVER_EXPORT JackPosixThread : public detail::JackThreadInterface | |||
| pthread_t GetThreadID(); | |||
| static int AcquireRealTimeImp(pthread_t thread, int priority); | |||
| static int AcquireRealTimeImp(pthread_t thread, int priority, UInt64 period, UInt64 computation, UInt64 constraint) | |||
| { return JackPosixThread::AcquireRealTimeImp(thread, priority); } | |||
| static int DropRealTimeImp(pthread_t thread); | |||
| static int StartImp(pthread_t* thread, int priority, int realtime, void*(*start_routine)(void*), void* arg); | |||
| static int StopImp(pthread_t thread); | |||
| @@ -30,4 +30,6 @@ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. | |||
| #define UnloadDriverModule(handle) dlclose((handle)) | |||
| #define GetProc(handle, name) dlsym((handle), (name)) | |||
| #define JACK_DEBUG (getenv("JACK_CLIENT_DEBUG") && strcmp(getenv("JACK_CLIENT_DEBUG"), "on") == 0) | |||
| #endif | |||
| @@ -31,5 +31,8 @@ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. | |||
| #define ENOBUFS 55 | |||
| #define JACK_DEBUG false | |||
| #define try_start_server 0 | |||
| #endif | |||
| @@ -64,7 +64,15 @@ class SERVER_EXPORT JackWinThread : public detail::JackThreadInterface | |||
| pthread_t GetThreadID(); | |||
| static int AcquireRealTimeImp(pthread_t thread, int priority); | |||
| static int AcquireRealTimeImp(pthread_t thread, int priority, UInt64 period, UInt64 computation, UInt64 constraint) | |||
| { | |||
| return JackWinThread::AcquireRealTimeImp(thread, priority); | |||
| } | |||
| static int DropRealTimeImp(pthread_t thread); | |||
| static int StartImp(pthread_t* thread, int priority, int realtime, void*(*start_routine)(void*), void* arg) | |||
| { | |||
| return JackWinThread::StartImp(thread, priority, realtime, (ThreadCallback) start_routine, arg); | |||
| } | |||
| static int StartImp(pthread_t* thread, int priority, int realtime, ThreadCallback start_routine, void* arg); | |||
| static int StopImp(pthread_t thread); | |||
| static int KillImp(pthread_t thread); | |||