Browse Source

If raw midi port can't be opened, do not try again (fixes #35)

git-svn-id: svn+ssh://jackaudio.org/trunk/jack@1138 0c269be4-1314-0410-8aa9-9f06e86f4224
tags/0.115.6
dsbaikov 18 years ago
parent
commit
5ecbdf2467
1 changed files with 16 additions and 8 deletions
  1. +16
    -8
      drivers/alsa-midi/alsa_rawmidi.c

+ 16
- 8
drivers/alsa-midi/alsa_rawmidi.c View File

@@ -486,15 +486,22 @@ int midi_port_open(const alsa_rawmidi_t *midi, midi_port_t *port)
static
void midi_port_close(const alsa_rawmidi_t *midi, midi_port_t *port)
{
if (port->data_ring)
if (port->data_ring) {
jack_ringbuffer_free(port->data_ring);
if (port->event_ring)
port->data_ring = NULL;
}
if (port->event_ring) {
jack_ringbuffer_free(port->event_ring);
if (port->jack)
port->event_ring = NULL;
}
if (port->jack) {
jack_port_unregister(midi->client, port->jack);
if (port->rawmidi)
port->jack = NULL;
}
if (port->rawmidi) {
snd_rawmidi_close(port->rawmidi);
memset(port, 0, sizeof(*port));
port->rawmidi = NULL;
}
}

/*
@@ -694,11 +701,12 @@ midi_port_t** scan_port_open(alsa_rawmidi_t *midi, midi_port_t **list)
(str->port_close)(midi, port);
fail_1:
midi_port_close(midi, port);
port->state = PORT_ZOMBIFIED;
error_log("scan: can't open port %s %s, zombified", port->dev, port->name);
return &port->next;
fail_0:
*list = port->next;
error_log("scan: can't open port %s %s", port->dev, port->name);
free(port);
return list;
return &port->next;
}

static


Loading…
Cancel
Save