summaryrefslogtreecommitdiff
path: root/libs/backends
diff options
context:
space:
mode:
authorTim Mayberry <mojofunk@gmail.com>2015-08-26 21:39:21 +1000
committerTim Mayberry <mojofunk@gmail.com>2015-09-02 12:07:15 +1000
commitd520b9c878249ca6f3843ceabedccc2ecaa19191 (patch)
tree4857fcb9b462767902b7d388f389ce3ab5f1cd9d /libs/backends
parent2dbdaaa8f52190757c8bea0096b26b92dde2692a (diff)
Stop WINMME midi driver/devices when PortAudio backend is stopped
Diffstat (limited to 'libs/backends')
-rw-r--r--libs/backends/portaudio/portaudio_backend.cc2
-rw-r--r--libs/backends/portaudio/winmmemidi_io.cc4
2 files changed, 6 insertions, 0 deletions
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 ();