diff --git a/pd/src/s_midi.c b/pd/src/s_midi.c index 0258cd6303606d7d6cd024ae3c6ac0c77a267271..9c9b04f2db1971d8a31d4524aa15217acb33aff2 100644 --- a/pd/src/s_midi.c +++ b/pd/src/s_midi.c @@ -666,38 +666,21 @@ void midi_alsa_setndevs(int in, int out); void glob_midi_setapi(void *dummy, t_floatarg f) { int newapi = f; - if (newapi) + if (newapi != sys_midiapi) { - if (newapi == sys_midiapi) - { - //if (!midi_isopen()) - // s_reopen_midi(); - } - else - { #ifdef USEAPI_ALSA - if (sys_midiapi == API_ALSA) - sys_alsa_close_midi(); - else + if (sys_midiapi == API_ALSA) + sys_alsa_close_midi(); + else #endif - sys_close_midi(); - sys_midiapi = newapi; - /* bash device params back to default */ -// midi_nmidiindev = midi_nmidioutdev = 1; - //midi_midiindev[0] = midi_midioutdev[0] = DEFAULTMIDIDEV; - //midi_midichindev[0] = midi_midichoutdev[0] = SYS_DEFAULTCH; - sys_reopen_midi(); - } + sys_close_midi(); + sys_midiapi = newapi; + sys_reopen_midi(); + } #ifdef USEAPI_ALSA midi_alsa_setndevs(midi_nmidiindev, midi_nmidioutdev); #endif - glob_midi_properties(0, 0); - } - else //if (midi_isopen()) - { - sys_close_midi(); - //midi_state = 0; - } + glob_midi_properties(0, (midi_nmidiindev > 1 || midi_nmidioutdev > 1)); } extern t_class *glob_pdobject; @@ -808,9 +791,9 @@ void glob_midi_properties(t_pd *dummy, t_floatarg flongform) if (sys_midiapi == API_ALSA) { // sprintf(buf, -//"pdtk_alsa_midi_dialog %%s " -//"%d %d %d %d %d %d %d %d " -//"%d 1\n", +// "pdtk_alsa_midi_dialog %%s " +// "%d %d %d %d %d %d %d %d " +// "%d 1\n", // midiindev1, midiindev2, midiindev3, midiindev4, // midioutdev1, midioutdev2, midioutdev3, midioutdev4, // (flongform != 0));