diff --git a/po/template.pot b/po/template.pot index d23ed267..7e5bd21d 100644 --- a/po/template.pot +++ b/po/template.pot @@ -5,7 +5,7 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: Pure Data 0.49.0\n" +"Project-Id-Version: Pure Data 0.50.0\n" "Report-Msgid-Bugs-To: pd-dev@iem.at\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" diff --git a/src/g_canvas.c b/src/g_canvas.c index cd9098e9..fe0a6d4a 100644 --- a/src/g_canvas.c +++ b/src/g_canvas.c @@ -1659,6 +1659,34 @@ static void canvas_stdlib(t_canvasenvironment *e, const char *stdlib) } } +static void canvas_jackname(t_canvasenvironment *e, const char *jackname) +{ + t_namelist *nl; + char strbuf[MAXPDSTRING]; + +#ifdef USEAPI_JACK + sys_close_audio(); + sys_set_audio_api(API_JACK), jack_client_name(jackname); + sys_reopen_audio(); +#else + fprintf(stderr, "Pd compiled without JACK-support, ignoring '%s' flag\n", *argv); +#endif + return; +} + +static void canvas_alsamidiname(t_canvasenvironment *e, const char *alsamidiname) +{ + t_namelist *nl; + char strbuf[MAXPDSTRING]; + +#ifdef USEAPI_ALSA + midi_alsa_client_name(alsamidiname); + sys_reopen_midi(); +#else + fprintf(stderr, "Pd compiled without MIDIALSA-support, ignoring '%s' flag\n", *argv); +#endif + return; +} void canvas_declare(t_canvas *x, t_symbol *s, int argc, t_atom *argv) { @@ -1692,6 +1720,16 @@ void canvas_declare(t_canvas *x, t_symbol *s, int argc, t_atom *argv) canvas_stdlib(e, atom_getsymbolarg(i+1, argc, argv)->s_name); i++; } + else if ((argc > i+1) && !strcmp(flag, "-jackname")) + { + canvas_jackname(e, atom_getsymbolarg(i+1, argc, argv)->s_name); + i++; + } + else if ((argc > i+1) && !strcmp(flag, "-alsamidiname")) + { + canvas_alsamidiname(e, atom_getsymbolarg(i+1, argc, argv)->s_name); + i++; + } else post("declare: %s: unknown declaration", flag); } } diff --git a/src/s_midi_alsa.c b/src/s_midi_alsa.c index 0c6bba90..3d0fb33b 100644 --- a/src/s_midi_alsa.c +++ b/src/s_midi_alsa.c @@ -47,6 +47,8 @@ static snd_seq_t *midi_handle; static snd_midi_event_t *midiev; +static char * desired_midiport_name = NULL; + void sys_alsa_do_open_midi(int nmidiin, int *midiinvec, int nmidiout, int *midioutvec) { @@ -89,7 +91,10 @@ void sys_alsa_do_open_midi(int nmidiin, int *midiinvec, for (i = 0; i < nmidiin; i++) { int port; - sprintf(portname, "Pure Data Midi-In %d", i+1); + if(desired_midiport_name != NULL) + sprintf(portname,"%s-%3d",desired_midiport_name,i+1); + else + sprintf(portname, "Pure Data Midi-In %d", i+1); port = snd_seq_create_simple_port(midi_handle,portname, SND_SEQ_PORT_CAP_WRITE | SND_SEQ_PORT_CAP_SUBS_WRITE, SND_SEQ_PORT_TYPE_APPLICATION); @@ -100,7 +105,10 @@ void sys_alsa_do_open_midi(int nmidiin, int *midiinvec, for (i = 0; i < nmidiout; i++) { int port; - sprintf(portname,"Pure Data Midi-Out %d", i+1); + if(desired_midiport_name != NULL) + sprintf(portname,"%s-%3d",desired_midiport_name,i+1); + else + sprintf(portname,"Pure Data Midi-Out %d", i+1); port = snd_seq_create_simple_port(midi_handle,portname, SND_SEQ_PORT_CAP_READ | SND_SEQ_PORT_CAP_SUBS_READ, SND_SEQ_PORT_TYPE_APPLICATION); @@ -110,7 +118,10 @@ void sys_alsa_do_open_midi(int nmidiin, int *midiinvec, snd_seq_client_info_malloc(&alsainfo); snd_seq_get_client_info(midi_handle, alsainfo); - snd_seq_client_info_set_name(alsainfo,"Pure Data"); + if(desired_midiport_name != NULL) + snd_seq_client_info_set_name(alsainfo,desired_midiport_name); + else + snd_seq_client_info_set_name(alsainfo,"Pure Data"); client = snd_seq_client_info_get_client(alsainfo); snd_seq_set_client_info(midi_handle, alsainfo); snd_seq_client_info_free(alsainfo); @@ -285,3 +296,17 @@ void midi_alsa_getdevs(char *indevlist, int *nindevs, sprintf(outdevlist + i * devdescsize, "ALSA MIDI device #%d", i+1); *noutdevs = ndev; } + +void midi_alsa_client_name(char *name) +{ + if (desired_midiport_name) { + free(desired_midiport_name); + desired_midiport_name = NULL; + } + if (name) { + if(strlen(name)>(49-4)) + name[49-4]=0; + desired_midiport_name = (char*)getbytes(strlen(name) + 1); + strcpy(desired_midiport_name, name); + } +} diff --git a/src/s_stuff.h b/src/s_stuff.h index 00ca5297..babe3081 100644 --- a/src/s_stuff.h +++ b/src/s_stuff.h @@ -141,6 +141,7 @@ EXTERN void sys_alsa_close_midi(void); /* implemented in the system dependent MIDI code (s_midi_pm.c, etc. ) */ void midi_alsa_getdevs(char *indevlist, int *nindevs, char *outdevlist, int *noutdevs, int maxndev, int devdescsize); +void midi_alsa_client_name(char *name); void sys_alsa_do_open_midi(int nmidiindev, int *midiindev, int nmidioutdev, int *midioutdev); #endif