From 9aeac6ca6e70706183b9c400e67a21d9b720ae9a Mon Sep 17 00:00:00 2001 From: carlo-bramini <30959007+carlo-bramini@users.noreply.github.com> Date: Sun, 25 Nov 2018 20:14:18 +0100 Subject: [PATCH] Unprepare MIDI buffers This was missing. --- src/drivers/fluid_winmidi.c | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/src/drivers/fluid_winmidi.c b/src/drivers/fluid_winmidi.c index c9a1057b..94f047ac 100644 --- a/src/drivers/fluid_winmidi.c +++ b/src/drivers/fluid_winmidi.c @@ -371,6 +371,8 @@ error_recovery: void delete_fluid_winmidi_driver(fluid_midi_driver_t *p) { + int i; + fluid_winmidi_driver_t *dev = (fluid_winmidi_driver_t *) p; fluid_return_if_fail(dev != NULL); @@ -387,6 +389,17 @@ delete_fluid_winmidi_driver(fluid_midi_driver_t *p) { midiInStop(dev->hmidiin); midiInReset(dev->hmidiin); + + for(i = 0; i < MIDI_SYSEX_BUF_COUNT; i++) + { + MIDIHDR *hdr = &dev->sysExHdrs[i]; + + if ((hdr->dwFlags & MHDR_PREPARED)) + { + midiInUnprepareHeader(dev->hmidiin, hdr, sizeof(MIDIHDR)); + } + } + midiInClose(dev->hmidiin); }