From 494e4b4646ffa5d70581af385b107cc147ac73fd Mon Sep 17 00:00:00 2001 From: houston Date: Sun, 11 Feb 2018 10:18:18 +0100 Subject: [PATCH] modify naming of ports in alsa_seq midi-driver --- linux/alsa/alsa_seqmidi.c | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/linux/alsa/alsa_seqmidi.c b/linux/alsa/alsa_seqmidi.c index 708aa305..ff8a6217 100644 --- a/linux/alsa/alsa_seqmidi.c +++ b/linux/alsa/alsa_seqmidi.c @@ -502,19 +502,20 @@ port_t* port_create(alsa_seqmidi_t *self, int type, snd_seq_addr_t addr, const s /* define the client name to use in port name and aliases */ snprintf(client_name , sizeof(client_name), snd_seq_client_info_get_name(client_info)); - for (int i=1; i <= 1; i++){ + for (int i=1; i <= 16; i++){ snprintf(name, sizeof(name), "system:%s/midi_%s_%d", client_name, port_suffix, i); jack_port_t* existing_port = jack_port_by_name(self->jack, name); if (!existing_port) break; -// if (i == 1){ -// if (jack_caps & JackPortIsInput) -// snprintf(name, sizeof(name), "system:midi_%s_%d", client_name, port_suffix, ++self->midi_in_cnt); -// else -// snprintf(name, sizeof(name), "system:midi_%s_%d", client_name, port_suffix, ++self->midi_out_cnt); -// } + /* Use a rescue name if 16 ports already use this name */ + if (i == 16){ + if (jack_caps & JackPortIsInput) + snprintf(name, sizeof(name), "system:midi_%s_%d", port_suffix, ++self->midi_in_cnt); + else + snprintf(name, sizeof(name), "system:midi_%s_%d", port_suffix, ++self->midi_out_cnt); + } } /* generate first alias */