From 6ee8e730f4ec8a5cc95f968f253a404f67334669 Mon Sep 17 00:00:00 2001 From: Alexandre Ratchov Date: Tue, 27 Aug 2019 15:06:18 +0200 Subject: [PATCH] Move code to disconnect all MIDI clients to its own routine. --- sndiod/midi.c | 23 +++++++++++++++-------- 1 file changed, 15 insertions(+), 8 deletions(-) diff --git a/sndiod/midi.c b/sndiod/midi.c index b5cc4e8..fade7d3 100644 --- a/sndiod/midi.c +++ b/sndiod/midi.c @@ -530,11 +530,23 @@ port_open(struct port *c) return 1; } -int -port_close(struct port *c) +void +port_exitall(struct port *c) { int i; struct midi *ep; + + for (i = 0; i < MIDI_NEP; i++) { + ep = midi_ep + i; + if ((ep->txmask & c->midi->self) || + (c->midi->txmask & ep->self)) + ep->ops->exit(ep->arg); + } +} + +int +port_close(struct port *c) +{ #ifdef DEBUG if (c->state == PORT_CFG) { port_log(c); @@ -545,12 +557,7 @@ port_close(struct port *c) c->state = PORT_CFG; port_mio_close(c); - for (i = 0; i < MIDI_NEP; i++) { - ep = midi_ep + i; - if ((ep->txmask & c->midi->self) || - (c->midi->txmask & ep->self)) - ep->ops->exit(ep->arg); - } + port_exitall(c); return 1; }