Commit 183b591a authored by sletz's avatar sletz
Browse files

Michael Voigt JackAPI cleanup patch.

git-svn-id: http://subversion.jackaudio.org/jack/jack2/trunk/jackmp@2934 0c269be4-1314-0410-8aa9-9f06e86f4224
parent 4806e5e7
......@@ -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);
......
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment