git-svn-id: http://subversion.jackaudio.org/jack/jack2/trunk/jackmp@1582 0c269be4-1314-0410-8aa9-9f06e86f4224tags/0.67
@@ -13,6 +13,11 @@ Tom Szilagyi | |||
Jackdmp changes log | |||
--------------------------- | |||
2007-10-08 Stephane Letz <letz@grame.fr> | |||
* Use .jackdrc file (instead of .jackdmprc). Install script now creates a link "jackd ==> jackdmp" so that automatic launch can work correctly. | |||
* Paul Davis patch for -r (--replace-registry) feature. | |||
2007-10-07 Stephane Letz <letz@grame.fr> | |||
* Add missing timestamps.c and timestamps.h files. Correctly export public headers in OSX frameworks. Suppress JackEngine::ClientInternalCloseIm method. | |||
@@ -651,7 +651,7 @@ void JackGraphManager::GetConnectionsAux(JackConnectionManager* manager, const c | |||
jack_int_t index; | |||
int i; | |||
for (i = 0; (i < CONNECTION_NUM) && ((index = connections[i]) != EMPTY) ; i++) { | |||
for (i = 0; (i < CONNECTION_NUM) && ((index = connections[i]) != EMPTY); i++) { | |||
JackPort* port = GetPort(index); | |||
res[i] = port->fName; | |||
} | |||
@@ -220,15 +220,15 @@ bool JackServerGlobals::Init() | |||
int argc = 0; | |||
char* argv[32]; | |||
snprintf(filename, 255, "%s/.jackdmprc", getenv("HOME")); | |||
snprintf(filename, 255, "%s/.jackdrc", getenv("HOME")); | |||
fp = fopen(filename, "r"); | |||
if (!fp) { | |||
fp = fopen("/etc/jackdmprc", "r"); | |||
fp = fopen("/etc/jackdrc", "r"); | |||
} | |||
// if still not found, check old config name for backwards compatability | |||
if (!fp) { | |||
fp = fopen("/etc/jackdmp.conf", "r"); | |||
fp = fopen("/etc/jackd.conf", "r"); | |||
} | |||
argc = 0; | |||
@@ -355,7 +355,7 @@ bool JackServerGlobals::Init() | |||
server_name = jack_default_server_name(); | |||
#endif | |||
rc = jack_register_server(server_name); | |||
rc = jack_register_server(server_name, false); | |||
switch (rc) { | |||
case EEXIST: | |||
fprintf(stderr, "`%s' server already active\n", server_name); | |||
@@ -41,15 +41,15 @@ static void start_server_aux(const char* server_name) | |||
int good = 0; | |||
int ret; | |||
snprintf(filename, 255, "%s/.jackdmprc", getenv("HOME")); | |||
snprintf(filename, 255, "%s/.jackdrc", getenv("HOME")); | |||
fp = fopen(filename, "r"); | |||
if (!fp) { | |||
fp = fopen("/etc/jackdmprc", "r"); | |||
fp = fopen("/etc/jackdrc", "r"); | |||
} | |||
/* if still not found, check old config name for backwards compatability */ | |||
if (!fp) { | |||
fp = fopen("/etc/jackdmp.conf", "r"); | |||
fp = fopen("/etc/jackd.conf", "r"); | |||
} | |||
if (fp) { | |||
@@ -67,8 +67,8 @@ static void start_server_aux(const char* server_name) | |||
} | |||
if (!good) { | |||
command = JACK_LOCATION "/jackdmp"; | |||
strncpy(arguments, JACK_LOCATION "/jackdmp -T -d "JACK_DEFAULT_DRIVER, 255); | |||
command = JACK_LOCATION "/jackd"; | |||
strncpy(arguments, JACK_LOCATION "/jackd -T -d "JACK_DEFAULT_DRIVER, 255); | |||
} else { | |||
result = strcspn(arguments, " "); | |||
command = (char*)malloc(result + 1); | |||
@@ -97,7 +97,7 @@ static void start_server_aux(const char* server_name) | |||
break; | |||
} | |||
argv[i] = (char*)malloc(result + 1); | |||
strncpy(argv[i], arguments+pos, result); | |||
strncpy(argv[i], arguments + pos, result); | |||
argv[i][result] = '\0'; | |||
pos += result + 1; | |||
++i; | |||
@@ -80,6 +80,7 @@ static void usage(FILE* file) | |||
" [ --loopback OR -L loopback-port-number ]\n" | |||
// " [ --port-max OR -p maximum-number-of-ports]\n" | |||
" [ --verbose OR -v ]\n" | |||
" [ --replace-registry OR -r ]\n" | |||
" [ --silent OR -s ]\n" | |||
" [ --sync OR -S ]\n" | |||
" [ --temporary OR -T ]\n" | |||
@@ -245,7 +246,7 @@ int main(int argc, char* argv[]) | |||
int waiting; | |||
jack_driver_desc_t* driver_desc; | |||
const char *options = "-ad:P:uvshVRL:STFl:t:mn:p:"; | |||
const char *options = "-ad:P:uvrshVRL:STFl:t:mn:p:"; | |||
struct option long_options[] = { | |||
{ "driver", 1, 0, 'd' }, | |||
{ "verbose", 0, 0, 'v' }, | |||
@@ -255,6 +256,7 @@ int main(int argc, char* argv[]) | |||
{ "name", 0, 0, 'n' }, | |||
{ "unlock", 0, 0, 'u' }, | |||
{ "realtime", 0, 0, 'R' }, | |||
{ "replace-registry", 0, 0, 'r' }, | |||
{ "loopback", 0, 0, 'L' }, | |||
{ "realtime-priority", 1, 0, 'P' }, | |||
{ "timeout", 1, 0, 't' }, | |||
@@ -272,6 +274,7 @@ int main(int argc, char* argv[]) | |||
JSList* driver_params; | |||
int driver_nargs = 1; | |||
int show_version = 0; | |||
int replace_registry = 0; | |||
int sync = 0; | |||
int rc, i; | |||
@@ -313,7 +316,11 @@ int main(int argc, char* argv[]) | |||
case 'P': | |||
realtime_priority = atoi(optarg); | |||
break; | |||
case 'r': | |||
replace_registry = 1; | |||
break; | |||
case 'R': | |||
realtime = 1; | |||
break; | |||
@@ -404,7 +411,7 @@ int main(int argc, char* argv[]) | |||
copyright(stdout); | |||
rc = jack_register_server(server_name); | |||
rc = jack_register_server(server_name, replace_registry); | |||
switch (rc) { | |||
case EEXIST: | |||
fprintf(stderr, "`%s' server already active\n", server_name); | |||
@@ -276,7 +276,7 @@ jack_set_server_prefix (const char *server_name) | |||
* returns: 0 if successful | |||
*/ | |||
static int | |||
jack_server_initialize_shm (void) | |||
jack_server_initialize_shm (int new_registry) | |||
{ | |||
int rc; | |||
@@ -286,6 +286,11 @@ jack_server_initialize_shm (void) | |||
jack_shm_lock_registry (); | |||
rc = jack_access_registry (®istry_info); | |||
if (new_registry) { | |||
jack_remove_shm (®istry_id); | |||
rc = ENOENT; | |||
} | |||
switch (rc) { | |||
case ENOENT: /* registry does not exist */ | |||
@@ -430,7 +435,7 @@ jack_release_shm_info (jack_shm_registry_index_t index) | |||
* ENOMEM if unable to access shared memory registry | |||
*/ | |||
EXPORT int | |||
jack_register_server (const char *server_name) | |||
jack_register_server (const char *server_name, int new_registry) | |||
{ | |||
int i, res = 0; | |||
@@ -442,7 +447,7 @@ jack_register_server (const char *server_name) | |||
jack_set_server_prefix (server_name); | |||
if (jack_server_initialize_shm ()) | |||
if (jack_server_initialize_shm (new_registry)) | |||
return ENOMEM; | |||
jack_shm_lock_registry (); | |||
@@ -770,7 +775,7 @@ jack_shmalloc (const char *shm_name, jack_shmsize_t size, jack_shm_info_t* si) | |||
* registry index for uniqueness and ignore the shm_name | |||
* parameter. Bah! | |||
*/ | |||
snprintf (name, sizeof (name), "/jack-%d", registry->index); | |||
snprintf (name, sizeof (name), "/jackmp-%d", registry->index); | |||
if (strlen (name) >= sizeof (registry->id)) { | |||
jack_error ("shm segment name too long %s", name); | |||
@@ -134,7 +134,7 @@ extern "C" | |||
/* here beginneth the API */ | |||
EXPORT extern int jack_register_server (const char *server_name); | |||
EXPORT extern int jack_register_server (const char *server_name, int new_registry); | |||
EXPORT extern void jack_unregister_server (const char *server_name); | |||
extern int jack_initialize_shm (const char *server_name); | |||
@@ -113,9 +113,11 @@ install: | |||
cp jack_dummy.so $(prefix)/lib/jackmp | |||
[ -f jack_freebob.so ] && cp jack_freebob.so $(prefix)/lib/jackmp || echo "freebob driver not installed" | |||
cd $(prefix)/lib && [ -f libjack.so.0.0.23 ] && mv -f libjack.so.0.0.23 tmp_libjack.so.0.0.23 || echo "Jack not found, continue..." | |||
cd $(prefix)/bin && [ -f jackd ] && mv -f jackd tmp_jackd | |||
cd $(prefix)/lib && rm -f libjack.so* | |||
cd $(prefix)/lib && ln -s libjackmp.so libjack.so | |||
cd $(prefix)/lib && ln -s libjackmp.so libjack.so.0 | |||
cd $(prefix)/bin && ln -s jackdmp jackd | |||
/sbin/ldconfig | |||
# Remove jackdmp and tries to restore jack | |||
@@ -129,6 +131,7 @@ remove: | |||
cd $(prefix)/lib && rm -f libjack.so* | |||
cd $(prefix)/lib && [ -f tmp_libjack.so.0.0.23 ] && mv -f tmp_libjack.so.0.0.23 libjack.so.0.0.23 \ | |||
&& ln -s libjack.so.0.0.23 libjack.so && ln -s libjack.so.0.0.23 libjack.so.0 || echo "Jack not restored" | |||
cd $(prefix)/bin && [ -f tmp_jackd ] && mv -f tmp_jackd jackd | |||
/sbin/ldconfig | |||
@@ -1,23 +1,27 @@ | |||
# Install jackdmp and owerwrite jack installation | |||
# Plug-ins | |||
sudo cp -r Panda.framework /Library/Frameworks | |||
sudo cp -r JackRouterMP.plugin /Library/Audio/Plug-Ins/HAL/ | |||
# Copy libraries and exe | |||
sudo cp -r Jackmp.framework /Library/Frameworks/ | |||
sudo cp -r Jackdmp.framework /Library/Frameworks/ | |||
sudo install -d /usr/local/bin | |||
sudo cp jackdmp /usr/local/bin | |||
# Copy drivers | |||
sudo install -d /usr/local/lib/jackmp | |||
sudo cp jack_coreaudio.so /usr/local/lib/jackmp | |||
sudo cp jack_dummy.so /usr/local/lib/jackmp | |||
# Create links to jackmp ressources | |||
cd /usr/local/lib && [ -f libjack.0.dylib ] && sudo mv -f libjack.0.dylib tmp_libjack.0.dylib | |||
cd /usr/local/lib && [ -f jackd ] && sudo mv -f jackd tmp_jackd | |||
cd /usr/local/lib && [ -f libjack.dylib ] && sudo rm libjack.dylib | |||
cd /usr/local/bin && [ -f jackd ] && sudo rm jackd | |||
cd /usr/local/lib && sudo ln -s /Library/Frameworks/Jackmp.framework/Jackmp libjack.dylib | |||
cd /usr/local/lib && sudo ln -s /Library/Frameworks/Jackmp.framework/Jackmp libjack.0.dylib | |||
cd /usr/local/bin && sudo ln -s jackdmp jackd | |||
@@ -1,13 +1,15 @@ | |||
# Remove jackdmp and tries to restore jack | |||
# Remove jackdmp resources | |||
sudo rm -r "/usr/local/lib/jackmp" | |||
sudo rm "/usr/local/bin/jackdmp" | |||
sudo rm -r "/usr/local/lib/jackd" | |||
sudo rm "/usr/local/lib/libjackmp.dylib" | |||
sudo rm -r "/Library/Frameworks/Jackmp.framework" | |||
sudo rm -r "/Library/Frameworks/Jackdmp.framework" | |||
sudo rm -r "/Library/Audio/Plug-Ins/HAL/JackRouterMP.plugin" | |||
# Tries to restore jack | |||
cd /usr/local/lib && sudo rm -r libjack.0.dylib | |||
cd /usr/local/lib && [ -f tmp_libjack.0.dylib ] && sudo mv -f tmp_libjack.0.dylib libjack.0.dylib | |||
cd /usr/local/lib && ln -s libjack.0.dylib libjack.dylib | |||
cd /usr/local/bin && [ -f tmp_jackd ] && sudo mv -f tmp_jackd jackd | |||
@@ -79,6 +79,7 @@ static void usage (FILE *file) | |||
" [ --loopback OR -L loopback-port-number ]\n" | |||
// " [ --port-max OR -p maximum-number-of-ports]\n" | |||
" [ --verbose OR -v ]\n" | |||
" [ --replace-registry OR -r ]\n" | |||
" [ --silent OR -s ]\n" | |||
" [ --sync OR -S ]\n" | |||
" [ --version OR -V ]\n" | |||
@@ -262,6 +263,7 @@ int main(int argc, char* argv[]) | |||
{ "name", 0, 0, 'n' }, | |||
{ "unlock", 0, 0, 'u' }, | |||
{ "realtime", 0, 0, 'R' }, | |||
{ "replace-registry", 0, 0, 'r' }, | |||
{ "loopback", 0, 0, 'L' }, | |||
{ "realtime-priority", 1, 0, 'P' }, | |||
{ "timeout", 1, 0, 't' }, | |||
@@ -279,6 +281,7 @@ int main(int argc, char* argv[]) | |||
JSList * driver_params; | |||
int driver_nargs = 1; | |||
int show_version = 0; | |||
int replace_registry = 0; | |||
int sync = 0; | |||
int i; | |||
int rc; | |||
@@ -329,6 +332,10 @@ int main(int argc, char* argv[]) | |||
case 'P': | |||
realtime_priority = atoi(optarg); | |||
break; | |||
case 'r': | |||
replace_registry = 1; | |||
break; | |||
case 'R': | |||
realtime = 1; | |||
@@ -414,7 +421,7 @@ int main(int argc, char* argv[]) | |||
copyright (stdout); | |||
rc = jack_register_server (server_name); | |||
rc = jack_register_server (server_name, replace_registry); | |||
switch (rc) { | |||
case EEXIST: | |||
fprintf (stderr, "`%s' server already active\n", server_name); | |||