git-svn-id: svn+ssh://jackaudio.org/trunk/jack@693 0c269be4-1314-0410-8aa9-9f06e86f4224tags/0.109.0
@@ -14,8 +14,8 @@ dnl micro version = incremented when implementation-only | |||||
dnl changes are made | dnl changes are made | ||||
dnl --- | dnl --- | ||||
JACK_MAJOR_VERSION=0 | JACK_MAJOR_VERSION=0 | ||||
JACK_MINOR_VERSION=97 | |||||
JACK_MICRO_VERSION=2 | |||||
JACK_MINOR_VERSION=98 | |||||
JACK_MICRO_VERSION=0 | |||||
dnl --- | dnl --- | ||||
dnl HOWTO: updating the jack protocol version | dnl HOWTO: updating the jack protocol version | ||||
@@ -150,6 +150,7 @@ struct _jack_engine { | |||||
jack_engine_t *jack_engine_new (int real_time, int real_time_priority, | jack_engine_t *jack_engine_new (int real_time, int real_time_priority, | ||||
int do_mlock, int temporary, | int do_mlock, int temporary, | ||||
int verbose, int client_timeout, | int verbose, int client_timeout, | ||||
unsigned int port_max, | |||||
pid_t waitpid, JSList *drivers); | pid_t waitpid, JSList *drivers); | ||||
int jack_engine_delete (jack_engine_t *); | int jack_engine_delete (jack_engine_t *); | ||||
int jack_run (jack_engine_t *engine); | int jack_run (jack_engine_t *engine); | ||||
@@ -1927,7 +1927,7 @@ jack_server_thread (void *arg) | |||||
jack_engine_t * | jack_engine_t * | ||||
jack_engine_new (int realtime, int rtpriority, int do_mlock, int temporary, | jack_engine_new (int realtime, int rtpriority, int do_mlock, int temporary, | ||||
int verbose, int client_timeout, pid_t wait_pid, | |||||
int verbose, int client_timeout, unsigned int port_max, pid_t wait_pid, | |||||
JSList *drivers) | JSList *drivers) | ||||
{ | { | ||||
jack_engine_t *engine; | jack_engine_t *engine; | ||||
@@ -1955,7 +1955,7 @@ jack_engine_new (int realtime, int rtpriority, int do_mlock, int temporary, | |||||
engine->client_timeout_msecs = client_timeout; | engine->client_timeout_msecs = client_timeout; | ||||
engine->next_client_id = 1; | engine->next_client_id = 1; | ||||
engine->port_max = 128; | |||||
engine->port_max = port_max; | |||||
engine->rtpriority = rtpriority; | engine->rtpriority = rtpriority; | ||||
engine->silent_buffer = 0; | engine->silent_buffer = 0; | ||||
engine->verbose = verbose; | engine->verbose = verbose; | ||||
@@ -45,6 +45,10 @@ These do not include driver options, which are obtained using the | |||||
\fB\-m, \-\-no\-mlock\fR | \fB\-m, \-\-no\-mlock\fR | ||||
Do not attempt to lock memory, even if \fB\-\-realtime\fR. | Do not attempt to lock memory, even if \fB\-\-realtime\fR. | ||||
.TP | .TP | ||||
\fB\-p, \-\-port\-max \fI n\fR | |||||
Set the maximum number of ports the JACK server can manage. | |||||
The default value is 128. | |||||
.TP | |||||
\fB\-R, \-\-realtime\fR | \fB\-R, \-\-realtime\fR | ||||
.br | .br | ||||
Use realtime scheduling. This is needed for reliable low-latency | Use realtime scheduling. This is needed for reliable low-latency | ||||
@@ -60,6 +60,7 @@ static int do_mlock = 1; | |||||
static int temporary = 0; | static int temporary = 0; | ||||
static int verbose = 0; | static int verbose = 0; | ||||
static int client_timeout = 500; /* msecs */ | static int client_timeout = 500; /* msecs */ | ||||
static unsigned int port_max = 128; | |||||
static void | static void | ||||
do_nothing_handler (int sig) | do_nothing_handler (int sig) | ||||
@@ -135,7 +136,7 @@ jack_main (jack_driver_desc_t * driver_desc, JSList * driver_params) | |||||
/* get the engine/driver started */ | /* get the engine/driver started */ | ||||
if ((engine = jack_engine_new (realtime, realtime_priority, do_mlock, | if ((engine = jack_engine_new (realtime, realtime_priority, do_mlock, | ||||
temporary, verbose, client_timeout, | |||||
temporary, verbose, client_timeout, port_max, | |||||
getpid(), drivers)) == 0) { | getpid(), drivers)) == 0) { | ||||
fprintf (stderr, "cannot create engine\n"); | fprintf (stderr, "cannot create engine\n"); | ||||
return -1; | return -1; | ||||
@@ -345,6 +346,7 @@ static void usage (FILE *file) | |||||
"usage: jackd [ --realtime OR -R [ --realtime-priority OR -P priority ] ]\n" | "usage: jackd [ --realtime OR -R [ --realtime-priority OR -P priority ] ]\n" | ||||
" [ --no-mlock OR -m ]\n" | " [ --no-mlock OR -m ]\n" | ||||
" [ --timeout OR -t client-timeout-in-msecs ]\n" | " [ --timeout OR -t client-timeout-in-msecs ]\n" | ||||
" [ --port-max OR -p maximum-number-of-ports]\n" | |||||
" [ --verbose OR -v ]\n" | " [ --verbose OR -v ]\n" | ||||
" [ --silent OR -s ]\n" | " [ --silent OR -s ]\n" | ||||
" [ --version OR -V ]\n" | " [ --version OR -V ]\n" | ||||
@@ -384,6 +386,7 @@ main (int argc, char *argv[]) | |||||
{ "driver", 1, 0, 'd' }, | { "driver", 1, 0, 'd' }, | ||||
{ "verbose", 0, 0, 'v' }, | { "verbose", 0, 0, 'v' }, | ||||
{ "help", 0, 0, 'h' }, | { "help", 0, 0, 'h' }, | ||||
{ "port-max", 1, 0, 'p' }, | |||||
{ "no-mlock", 0, 0, 'm' }, | { "no-mlock", 0, 0, 'm' }, | ||||
{ "realtime", 0, 0, 'R' }, | { "realtime", 0, 0, 'R' }, | ||||
{ "realtime-priority", 1, 0, 'P' }, | { "realtime-priority", 1, 0, 'P' }, | ||||
@@ -465,6 +468,10 @@ main (int argc, char *argv[]) | |||||
do_mlock = 0; | do_mlock = 0; | ||||
break; | break; | ||||
case 'p': | |||||
port_max = (unsigned int) atol (optarg); | |||||
break; | |||||
case 'P': | case 'P': | ||||
realtime_priority = atoi (optarg); | realtime_priority = atoi (optarg); | ||||
break; | break; | ||||
@@ -119,7 +119,9 @@ jack_cleanup_shm (void) | |||||
if (destroy) { | if (destroy) { | ||||
jack_destroy_shm (©); | |||||
if (copy.index >= 0 && copy.index < MAX_SHM_ID) { | |||||
jack_destroy_shm (©); | |||||
} | |||||
r->size = 0; | r->size = 0; | ||||
r->allocator = 0; | r->allocator = 0; | ||||
} | } | ||||