git-svn-id: http://subversion.jackaudio.org/jack/jack2/trunk/jackmp@3531 0c269be4-1314-0410-8aa9-9f06e86f4224tags/v1.9.3
@@ -25,6 +25,10 @@ Paul Davis | |||
Jackdmp changes log | |||
--------------------------- | |||
2009-05-07 Stephane Letz <letz@grame.fr> | |||
* Cleanup "loopback" stuff in server. | |||
2009-05-06 Stephane Letz <letz@grame.fr> | |||
* Fix transport callback (timebase master, sync) issue when used after jack_activate (RT thread was not running). | |||
@@ -77,10 +77,6 @@ struct jackctl_server | |||
/* int32_t, msecs; if zero, use period size. */ | |||
union jackctl_parameter_value client_timeout; | |||
union jackctl_parameter_value default_client_timeout; | |||
/* uint32_t, ports of the loopback driver */ | |||
union jackctl_parameter_value loopback_ports; | |||
union jackctl_parameter_value default_loopback_ports; | |||
/* uint32_t, clock source type */ | |||
union jackctl_parameter_value clock_source; | |||
@@ -643,7 +639,7 @@ EXPORT jackctl_server_t * jackctl_server_create() | |||
if (jackctl_add_parameter( | |||
&server_ptr->parameters, | |||
"name", | |||
"server name to use", | |||
"Server name to use.", | |||
"", | |||
JackParamString, | |||
&server_ptr->name, | |||
@@ -657,7 +653,7 @@ EXPORT jackctl_server_t * jackctl_server_create() | |||
if (jackctl_add_parameter( | |||
&server_ptr->parameters, | |||
"realtime", | |||
"Whether to use realtime mode", | |||
"Whether to use realtime mode.", | |||
"Use realtime scheduling. This is needed for reliable low-latency performance. On most systems, it requires JACK to run with special scheduler and memory allocation privileges, which may be obtained in several ways. On Linux you should use PAM.", | |||
JackParamBool, | |||
&server_ptr->realtime, | |||
@@ -714,7 +710,7 @@ EXPORT jackctl_server_t * jackctl_server_create() | |||
if (jackctl_add_parameter( | |||
&server_ptr->parameters, | |||
"client-timeout", | |||
"Client timeout limit in milliseconds", | |||
"Client timeout limit in milliseconds.", | |||
"", | |||
JackParamInt, | |||
&server_ptr->client_timeout, | |||
@@ -724,25 +720,11 @@ EXPORT jackctl_server_t * jackctl_server_create() | |||
goto fail_free_parameters; | |||
} | |||
value.ui = 0; | |||
if (jackctl_add_parameter( | |||
&server_ptr->parameters, | |||
"loopback-ports", | |||
"Number of loopback ports", | |||
"", | |||
JackParamUInt, | |||
&server_ptr->loopback_ports, | |||
&server_ptr->default_loopback_ports, | |||
value) == NULL) | |||
{ | |||
goto fail_free_parameters; | |||
} | |||
value.ui = 0; | |||
if (jackctl_add_parameter( | |||
&server_ptr->parameters, | |||
"clock-source", | |||
"Clocksource type : c(ycle) | h(pet) | s(ystem)", | |||
"Clocksource type : c(ycle) | h(pet) | s(ystem).", | |||
"", | |||
JackParamUInt, | |||
&server_ptr->clock_source, | |||
@@ -756,7 +738,7 @@ EXPORT jackctl_server_t * jackctl_server_create() | |||
if (jackctl_add_parameter( | |||
&server_ptr->parameters, | |||
"replace-registry", | |||
"Replace registry", | |||
"Replace shared memory registry.", | |||
"", | |||
JackParamBool, | |||
&server_ptr->replace_registry, | |||
@@ -770,7 +752,7 @@ EXPORT jackctl_server_t * jackctl_server_create() | |||
if (jackctl_add_parameter( | |||
&server_ptr->parameters, | |||
"sync", | |||
"Use synchronous mode", | |||
"Use server synchronous mode.", | |||
"", | |||
JackParamBool, | |||
&server_ptr->sync, | |||
@@ -880,7 +862,6 @@ jackctl_server_start( | |||
server_ptr->client_timeout.i, | |||
server_ptr->realtime.b, | |||
server_ptr->realtime_priority.i, | |||
server_ptr->loopback_ports.ui, | |||
server_ptr->verbose.b, | |||
(jack_timer_type_t)server_ptr->clock_source.ui, | |||
server_ptr->name.str); | |||
@@ -22,7 +22,6 @@ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. | |||
#include "JackServerGlobals.h" | |||
#include "JackTime.h" | |||
#include "JackFreewheelDriver.h" | |||
#include "JackLoopbackDriver.h" | |||
#include "JackDummyDriver.h" | |||
#include "JackThreadedDriver.h" | |||
#include "JackGlobals.h" | |||
@@ -39,7 +38,7 @@ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. | |||
namespace Jack | |||
{ | |||
JackServer::JackServer(bool sync, bool temporary, long timeout, bool rt, long priority, long loopback, bool verbose, jack_timer_type_t clock, const char* server_name) | |||
JackServer::JackServer(bool sync, bool temporary, long timeout, bool rt, long priority, bool verbose, jack_timer_type_t clock, const char* server_name) | |||
{ | |||
if (rt) { | |||
jack_info("JACK server starting in realtime mode with priority %ld", priority); | |||
@@ -54,7 +53,6 @@ JackServer::JackServer(bool sync, bool temporary, long timeout, bool rt, long pr | |||
fDriverInfo = new JackDriverInfo(); | |||
fAudioDriver = NULL; | |||
fFreewheel = false; | |||
fLoopback = loopback; | |||
JackServerGlobals::fInstance = this; // Unique instance | |||
JackServerGlobals::fUserCount = 1; // One user | |||
jack_verbose = verbose; | |||
@@ -57,13 +57,12 @@ class SERVER_EXPORT JackServer | |||
JackConnectionManager fConnectionState; | |||
JackSynchro fSynchroTable[CLIENT_NUM]; | |||
bool fFreewheel; | |||
long fLoopback; | |||
int InternalClientLoadAux(JackLoadableInternalClient* client, const char* so_name, const char* client_name, int options, int* int_ref, int* status); | |||
public: | |||
JackServer(bool sync, bool temporary, long timeout, bool rt, long priority, long loopback, bool verbose, jack_timer_type_t clock, const char* server_name); | |||
JackServer(bool sync, bool temporary, long timeout, bool rt, long priority, bool verbose, jack_timer_type_t clock, const char* server_name); | |||
~JackServer(); | |||
int Open(jack_driver_desc_t* driver_desc, JSList* driver_params); | |||
@@ -39,12 +39,11 @@ int JackServerGlobals::Start(const char* server_name, | |||
int time_out_ms, | |||
int rt, | |||
int priority, | |||
int loopback, | |||
int verbose, | |||
jack_timer_type_t clock) | |||
{ | |||
jack_log("Jackdmp: sync = %ld timeout = %ld rt = %ld priority = %ld verbose = %ld ", sync, time_out_ms, rt, priority, verbose); | |||
new JackServer(sync, temporary, time_out_ms, rt, priority, loopback, verbose, clock, server_name); // Will setup fInstance and fUserCount globals | |||
new JackServer(sync, temporary, time_out_ms, rt, priority, verbose, clock, server_name); // Will setup fInstance and fUserCount globals | |||
int res = fInstance->Open(driver_desc, driver_params); | |||
return (res < 0) ? res : fInstance->Start(); | |||
} | |||
@@ -71,7 +70,6 @@ bool JackServerGlobals::Init() | |||
int verbose_aux = 0; | |||
int do_mlock = 1; | |||
unsigned int port_max = 128; | |||
int loopback = 0; | |||
int do_unlock = 0; | |||
int temporary = 0; | |||
@@ -112,7 +110,6 @@ bool JackServerGlobals::Init() | |||
{ "name", 0, 0, 'n' }, | |||
{ "unlock", 0, 0, 'u' }, | |||
{ "realtime", 0, 0, 'R' }, | |||
{ "loopback", 0, 0, 'L' }, | |||
{ "realtime-priority", 1, 0, 'P' }, | |||
{ "timeout", 1, 0, 't' }, | |||
{ "temporary", 0, 0, 'T' }, | |||
@@ -204,10 +201,6 @@ bool JackServerGlobals::Init() | |||
realtime = 1; | |||
break; | |||
case 'L': | |||
loopback = atoi(optarg); | |||
break; | |||
case 'T': | |||
temporary = 1; | |||
break; | |||
@@ -296,7 +289,7 @@ bool JackServerGlobals::Init() | |||
free(argv[i]); | |||
} | |||
int res = Start(server_name, driver_desc, driver_params, sync, temporary, client_timeout, realtime, realtime_priority, loopback, verbose_aux, clock_source); | |||
int res = Start(server_name, driver_desc, driver_params, sync, temporary, client_timeout, realtime, realtime_priority, verbose_aux, clock_source); | |||
if (res < 0) { | |||
jack_error("Cannot start server... exit"); | |||
Delete(); | |||
@@ -52,7 +52,6 @@ struct SERVER_EXPORT JackServerGlobals | |||
int time_out_ms, | |||
int rt, | |||
int priority, | |||
int loopback, | |||
int verbose, | |||
jack_timer_type_t clock); | |||
static void Stop(); | |||