|
|
@@ -49,6 +49,7 @@ show_usage (char *my_name) |
|
|
|
fprintf (stderr, "For more information see http://jackaudio.org/\n"); |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
int |
|
|
|
main (int argc, char *argv[]) |
|
|
|
{ |
|
|
@@ -63,6 +64,9 @@ main (int argc, char *argv[]) |
|
|
|
jack_port_t *dst_port = 0; |
|
|
|
jack_port_t *port1 = 0; |
|
|
|
jack_port_t *port2 = 0; |
|
|
|
char portA[300]; |
|
|
|
char portB[300]; |
|
|
|
int use_uuid=0; |
|
|
|
int connecting, disconnecting; |
|
|
|
int port1_flags, port2_flags; |
|
|
|
int rc = 1; |
|
|
@@ -71,16 +75,20 @@ main (int argc, char *argv[]) |
|
|
|
{ "server", 1, 0, 's' }, |
|
|
|
{ "help", 0, 0, 'h' }, |
|
|
|
{ "version", 0, 0, 'v' }, |
|
|
|
{ "uuid", 0, 0, 'u' }, |
|
|
|
{ 0, 0, 0, 0 } |
|
|
|
}; |
|
|
|
|
|
|
|
while ((c = getopt_long (argc, argv, "s:hv", long_options, &option_index)) >= 0) { |
|
|
|
while ((c = getopt_long (argc, argv, "s:hvu", long_options, &option_index)) >= 0) { |
|
|
|
switch (c) { |
|
|
|
case 's': |
|
|
|
server_name = (char *) malloc (sizeof (char) * strlen(optarg)); |
|
|
|
strcpy (server_name, optarg); |
|
|
|
options |= JackServerName; |
|
|
|
break; |
|
|
|
case 'u': |
|
|
|
use_uuid = 1; |
|
|
|
break; |
|
|
|
case 'h': |
|
|
|
show_usage (my_name); |
|
|
|
return 1; |
|
|
@@ -123,12 +131,46 @@ main (int argc, char *argv[]) |
|
|
|
|
|
|
|
/* find the two ports */ |
|
|
|
|
|
|
|
if ((port1 = jack_port_by_name(client, argv[argc-1])) == 0) { |
|
|
|
fprintf (stderr, "ERROR %s not a valid port\n", argv[argc-1]); |
|
|
|
if( use_uuid ) { |
|
|
|
char *tmpname; |
|
|
|
char *clientname; |
|
|
|
char *portname; |
|
|
|
tmpname = strdup( argv[argc-1] ); |
|
|
|
portname = strchr( tmpname, ':' ); |
|
|
|
portname[0] = '\0'; |
|
|
|
portname+=1; |
|
|
|
clientname = jack_get_client_name_by_uuid( client, tmpname ); |
|
|
|
if( clientname ) { |
|
|
|
|
|
|
|
snprintf( portA, sizeof(portA), "%s:%s", clientname, portname ); |
|
|
|
jack_free( clientname ); |
|
|
|
} else { |
|
|
|
snprintf( portA, sizeof(portA), "%s", argv[argc-1] ); |
|
|
|
} |
|
|
|
free( tmpname ); |
|
|
|
|
|
|
|
tmpname = strdup( argv[argc-2] ); |
|
|
|
portname = strchr( tmpname, ':' ); |
|
|
|
portname[0] = '\0'; |
|
|
|
portname+=1; |
|
|
|
clientname = jack_get_client_name_by_uuid( client, tmpname ); |
|
|
|
if( clientname ) { |
|
|
|
snprintf( portB, sizeof(portB), "%s:%s", clientname, portname ); |
|
|
|
jack_free( clientname ); |
|
|
|
} else { |
|
|
|
snprintf( portB, sizeof(portB), "%s", argv[argc-2] ); |
|
|
|
printf( "argv...>%s<", argv[argc-2] ); |
|
|
|
} |
|
|
|
|
|
|
|
free( tmpname ); |
|
|
|
|
|
|
|
} |
|
|
|
if ((port1 = jack_port_by_name(client, portA)) == 0) { |
|
|
|
fprintf (stderr, "ERROR %s not a valid port\n", portA); |
|
|
|
goto exit; |
|
|
|
} |
|
|
|
if ((port2 = jack_port_by_name(client, argv[argc-2])) == 0) { |
|
|
|
fprintf (stderr, "ERROR %s not a valid port\n", argv[argc-2]); |
|
|
|
if ((port2 = jack_port_by_name(client, portB)) == 0) { |
|
|
|
fprintf (stderr, "ERROR %s not a valid port\n", portB); |
|
|
|
goto exit; |
|
|
|
} |
|
|
|
|
|
|
|