diff --git a/src/jackpatch.c b/src/jackpatch.c index 6d0d30a..6d30bcb 100644 --- a/src/jackpatch.c +++ b/src/jackpatch.c @@ -61,6 +61,8 @@ int nsm_is_active; char *project_file; +int REAL_JACK_PORT_NAME_SIZE; //defined after jack client activated + #undef VERSION #define APP_TITLE "JACKPatch" #define VERSION "0.2" @@ -326,11 +328,11 @@ connect_path ( struct patch_record *pr ) { int r = 0; - char srcport[512]; - char dstport[512]; + char srcport[REAL_JACK_PORT_NAME_SIZE]; + char dstport[REAL_JACK_PORT_NAME_SIZE]; - snprintf( srcport, 512, "%s:%s", pr->src.client, pr->src.port ); - snprintf( dstport, 512, "%s:%s", pr->dst.client, pr->dst.port ); + snprintf( srcport, REAL_JACK_PORT_NAME_SIZE, "%s:%s", pr->src.client, pr->src.port ); + snprintf( dstport, REAL_JACK_PORT_NAME_SIZE, "%s:%s", pr->dst.client, pr->dst.port ); if ( pr->active ) { @@ -383,8 +385,8 @@ do_for_matching_patches ( const char *portname, void (*func)( struct patch_recor { struct patch_record *pr; - char client[512]; - char port[512]; + char client[REAL_JACK_PORT_NAME_SIZE]; //the length is too much. The value is client+port+1. But is guaranteed to be enouigh. + char port[REAL_JACK_PORT_NAME_SIZE]; sscanf( portname, "%[^:]:%[^\n]", client, port ); @@ -446,9 +448,7 @@ void remove_known_port ( const char *port ) * Called for every new port, which includes restored-from-file ports on startup. * It will try to activate a restored connection for every single port, thus doing an attempt * twice: Once for the source-port and then for the destination-port. - * This can lead to false-negative error messages. See connect_path. - * - * */ + */ void handle_new_port ( const char *portname ) { @@ -483,6 +483,9 @@ static int stringsort ( const void *a, const void *b ) return strcmp(* (char * const *) a, * (char * const *) b); } +/** + * Save all current connections to a file. + */ void snapshot ( const char *file ) { @@ -572,7 +575,6 @@ die ( void ) { if ( client_active ) jack_deactivate( client ); - printf( "[jackpatch] Closing jack client\n" ); jack_client_close( client ); @@ -646,6 +648,7 @@ maybe_activate_jack_client ( void ) { jack_activate( client ); client_active = 1; + REAL_JACK_PORT_NAME_SIZE = jack_port_name_size(); //global } }