From d520b9c878249ca6f3843ceabedccc2ecaa19191 Mon Sep 17 00:00:00 2001 From: Tim Mayberry Date: Wed, 26 Aug 2015 21:39:21 +1000 Subject: [PATCH] Stop WINMME midi driver/devices when PortAudio backend is stopped --- libs/backends/portaudio/portaudio_backend.cc | 2 ++ libs/backends/portaudio/winmmemidi_io.cc | 4 ++++ 2 files changed, 6 insertions(+) diff --git a/libs/backends/portaudio/portaudio_backend.cc b/libs/backends/portaudio/portaudio_backend.cc index f9fddf6169..420a45aae5 100644 --- a/libs/backends/portaudio/portaudio_backend.cc +++ b/libs/backends/portaudio/portaudio_backend.cc @@ -602,6 +602,8 @@ PortAudioBackend::stop () return 0; } + _midiio->stop(); + _run = false; if (!stop_blocking_process_thread ()) { diff --git a/libs/backends/portaudio/winmmemidi_io.cc b/libs/backends/portaudio/winmmemidi_io.cc index 710456da0b..43c5d36469 100644 --- a/libs/backends/portaudio/winmmemidi_io.cc +++ b/libs/backends/portaudio/winmmemidi_io.cc @@ -145,6 +145,10 @@ WinMMEMidiIO::start () void WinMMEMidiIO::stop () { + if (!m_run) { + DEBUG_MIDI ("MIDI driver already stopped\n"); + return; + } DEBUG_MIDI ("Stopping MIDI driver\n"); m_run = false; stop_devices ();