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 | Jackdmp changes log | ||||
| --------------------------- | --------------------------- | ||||
| 2009-05-07 Stephane Letz <letz@grame.fr> | |||||
| * Cleanup "loopback" stuff in server. | |||||
| 2009-05-06 Stephane Letz <letz@grame.fr> | 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). | * 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. */ | /* int32_t, msecs; if zero, use period size. */ | ||||
| union jackctl_parameter_value client_timeout; | union jackctl_parameter_value client_timeout; | ||||
| union jackctl_parameter_value default_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 */ | /* uint32_t, clock source type */ | ||||
| union jackctl_parameter_value clock_source; | union jackctl_parameter_value clock_source; | ||||
| @@ -643,7 +639,7 @@ EXPORT jackctl_server_t * jackctl_server_create() | |||||
| if (jackctl_add_parameter( | if (jackctl_add_parameter( | ||||
| &server_ptr->parameters, | &server_ptr->parameters, | ||||
| "name", | "name", | ||||
| "server name to use", | |||||
| "Server name to use.", | |||||
| "", | "", | ||||
| JackParamString, | JackParamString, | ||||
| &server_ptr->name, | &server_ptr->name, | ||||
| @@ -657,7 +653,7 @@ EXPORT jackctl_server_t * jackctl_server_create() | |||||
| if (jackctl_add_parameter( | if (jackctl_add_parameter( | ||||
| &server_ptr->parameters, | &server_ptr->parameters, | ||||
| "realtime", | "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.", | "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, | JackParamBool, | ||||
| &server_ptr->realtime, | &server_ptr->realtime, | ||||
| @@ -714,7 +710,7 @@ EXPORT jackctl_server_t * jackctl_server_create() | |||||
| if (jackctl_add_parameter( | if (jackctl_add_parameter( | ||||
| &server_ptr->parameters, | &server_ptr->parameters, | ||||
| "client-timeout", | "client-timeout", | ||||
| "Client timeout limit in milliseconds", | |||||
| "Client timeout limit in milliseconds.", | |||||
| "", | "", | ||||
| JackParamInt, | JackParamInt, | ||||
| &server_ptr->client_timeout, | &server_ptr->client_timeout, | ||||
| @@ -724,25 +720,11 @@ EXPORT jackctl_server_t * jackctl_server_create() | |||||
| goto fail_free_parameters; | 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; | value.ui = 0; | ||||
| if (jackctl_add_parameter( | if (jackctl_add_parameter( | ||||
| &server_ptr->parameters, | &server_ptr->parameters, | ||||
| "clock-source", | "clock-source", | ||||
| "Clocksource type : c(ycle) | h(pet) | s(ystem)", | |||||
| "Clocksource type : c(ycle) | h(pet) | s(ystem).", | |||||
| "", | "", | ||||
| JackParamUInt, | JackParamUInt, | ||||
| &server_ptr->clock_source, | &server_ptr->clock_source, | ||||
| @@ -756,7 +738,7 @@ EXPORT jackctl_server_t * jackctl_server_create() | |||||
| if (jackctl_add_parameter( | if (jackctl_add_parameter( | ||||
| &server_ptr->parameters, | &server_ptr->parameters, | ||||
| "replace-registry", | "replace-registry", | ||||
| "Replace registry", | |||||
| "Replace shared memory registry.", | |||||
| "", | "", | ||||
| JackParamBool, | JackParamBool, | ||||
| &server_ptr->replace_registry, | &server_ptr->replace_registry, | ||||
| @@ -770,7 +752,7 @@ EXPORT jackctl_server_t * jackctl_server_create() | |||||
| if (jackctl_add_parameter( | if (jackctl_add_parameter( | ||||
| &server_ptr->parameters, | &server_ptr->parameters, | ||||
| "sync", | "sync", | ||||
| "Use synchronous mode", | |||||
| "Use server synchronous mode.", | |||||
| "", | "", | ||||
| JackParamBool, | JackParamBool, | ||||
| &server_ptr->sync, | &server_ptr->sync, | ||||
| @@ -880,7 +862,6 @@ jackctl_server_start( | |||||
| server_ptr->client_timeout.i, | server_ptr->client_timeout.i, | ||||
| server_ptr->realtime.b, | server_ptr->realtime.b, | ||||
| server_ptr->realtime_priority.i, | server_ptr->realtime_priority.i, | ||||
| server_ptr->loopback_ports.ui, | |||||
| server_ptr->verbose.b, | server_ptr->verbose.b, | ||||
| (jack_timer_type_t)server_ptr->clock_source.ui, | (jack_timer_type_t)server_ptr->clock_source.ui, | ||||
| server_ptr->name.str); | server_ptr->name.str); | ||||
| @@ -22,7 +22,6 @@ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. | |||||
| #include "JackServerGlobals.h" | #include "JackServerGlobals.h" | ||||
| #include "JackTime.h" | #include "JackTime.h" | ||||
| #include "JackFreewheelDriver.h" | #include "JackFreewheelDriver.h" | ||||
| #include "JackLoopbackDriver.h" | |||||
| #include "JackDummyDriver.h" | #include "JackDummyDriver.h" | ||||
| #include "JackThreadedDriver.h" | #include "JackThreadedDriver.h" | ||||
| #include "JackGlobals.h" | #include "JackGlobals.h" | ||||
| @@ -39,7 +38,7 @@ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. | |||||
| namespace Jack | 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) { | if (rt) { | ||||
| jack_info("JACK server starting in realtime mode with priority %ld", priority); | 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(); | fDriverInfo = new JackDriverInfo(); | ||||
| fAudioDriver = NULL; | fAudioDriver = NULL; | ||||
| fFreewheel = false; | fFreewheel = false; | ||||
| fLoopback = loopback; | |||||
| JackServerGlobals::fInstance = this; // Unique instance | JackServerGlobals::fInstance = this; // Unique instance | ||||
| JackServerGlobals::fUserCount = 1; // One user | JackServerGlobals::fUserCount = 1; // One user | ||||
| jack_verbose = verbose; | jack_verbose = verbose; | ||||
| @@ -57,13 +57,12 @@ class SERVER_EXPORT JackServer | |||||
| JackConnectionManager fConnectionState; | JackConnectionManager fConnectionState; | ||||
| JackSynchro fSynchroTable[CLIENT_NUM]; | JackSynchro fSynchroTable[CLIENT_NUM]; | ||||
| bool fFreewheel; | bool fFreewheel; | ||||
| long fLoopback; | |||||
| int InternalClientLoadAux(JackLoadableInternalClient* client, const char* so_name, const char* client_name, int options, int* int_ref, int* status); | int InternalClientLoadAux(JackLoadableInternalClient* client, const char* so_name, const char* client_name, int options, int* int_ref, int* status); | ||||
| public: | 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(); | ~JackServer(); | ||||
| int Open(jack_driver_desc_t* driver_desc, JSList* driver_params); | 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 time_out_ms, | ||||
| int rt, | int rt, | ||||
| int priority, | int priority, | ||||
| int loopback, | |||||
| int verbose, | int verbose, | ||||
| jack_timer_type_t clock) | 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); | 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); | int res = fInstance->Open(driver_desc, driver_params); | ||||
| return (res < 0) ? res : fInstance->Start(); | return (res < 0) ? res : fInstance->Start(); | ||||
| } | } | ||||
| @@ -71,7 +70,6 @@ bool JackServerGlobals::Init() | |||||
| int verbose_aux = 0; | int verbose_aux = 0; | ||||
| int do_mlock = 1; | int do_mlock = 1; | ||||
| unsigned int port_max = 128; | unsigned int port_max = 128; | ||||
| int loopback = 0; | |||||
| int do_unlock = 0; | int do_unlock = 0; | ||||
| int temporary = 0; | int temporary = 0; | ||||
| @@ -112,7 +110,6 @@ bool JackServerGlobals::Init() | |||||
| { "name", 0, 0, 'n' }, | { "name", 0, 0, 'n' }, | ||||
| { "unlock", 0, 0, 'u' }, | { "unlock", 0, 0, 'u' }, | ||||
| { "realtime", 0, 0, 'R' }, | { "realtime", 0, 0, 'R' }, | ||||
| { "loopback", 0, 0, 'L' }, | |||||
| { "realtime-priority", 1, 0, 'P' }, | { "realtime-priority", 1, 0, 'P' }, | ||||
| { "timeout", 1, 0, 't' }, | { "timeout", 1, 0, 't' }, | ||||
| { "temporary", 0, 0, 'T' }, | { "temporary", 0, 0, 'T' }, | ||||
| @@ -204,10 +201,6 @@ bool JackServerGlobals::Init() | |||||
| realtime = 1; | realtime = 1; | ||||
| break; | break; | ||||
| case 'L': | |||||
| loopback = atoi(optarg); | |||||
| break; | |||||
| case 'T': | case 'T': | ||||
| temporary = 1; | temporary = 1; | ||||
| break; | break; | ||||
| @@ -296,7 +289,7 @@ bool JackServerGlobals::Init() | |||||
| free(argv[i]); | 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) { | if (res < 0) { | ||||
| jack_error("Cannot start server... exit"); | jack_error("Cannot start server... exit"); | ||||
| Delete(); | Delete(); | ||||
| @@ -52,7 +52,6 @@ struct SERVER_EXPORT JackServerGlobals | |||||
| int time_out_ms, | int time_out_ms, | ||||
| int rt, | int rt, | ||||
| int priority, | int priority, | ||||
| int loopback, | |||||
| int verbose, | int verbose, | ||||
| jack_timer_type_t clock); | jack_timer_type_t clock); | ||||
| static void Stop(); | static void Stop(); | ||||