version 1.2, 2012/11/30 20:30:24 |
version 1.3, 2012/11/30 20:48:00 |
|
|
midi_del(f->midi); |
midi_del(f->midi); |
f->midi = NULL; |
f->midi = NULL; |
} |
} |
|
if (f->port) { |
|
port_unref(f->port); |
|
f->port = NULL; |
|
} |
file_del(f->file); |
file_del(f->file); |
close(f->fd); |
close(f->fd); |
xfree(f); |
xfree(f); |
|
|
} |
} |
f->pstate = SOCK_INIT; |
f->pstate = SOCK_INIT; |
if (mode & MODE_MIDIMASK) { |
if (mode & MODE_MIDIMASK) { |
|
f->port = NULL; |
f->slot = NULL; |
f->slot = NULL; |
f->midi = midi_new(&sock_midiops, f, mode); |
f->midi = midi_new(&sock_midiops, f, mode); |
if (f->midi == NULL) |
if (f->midi == NULL) |
|
|
midi_tag(f->midi, p->devnum); |
midi_tag(f->midi, p->devnum); |
} else if (p->devnum < 48) { |
} else if (p->devnum < 48) { |
c = port_bynum(p->devnum - 32); |
c = port_bynum(p->devnum - 32); |
if (c == NULL) |
if (c == NULL || !port_ref(c)) |
return 0; |
return 0; |
|
f->port = c; |
midi_link(f->midi, c->midi); |
midi_link(f->midi, c->midi); |
} else |
} else |
return 0; |
return 0; |