summaryrefslogtreecommitdiff
path: root/libs
diff options
context:
space:
mode:
authorTim Mayberry <mojofunk@gmail.com>2015-09-14 13:47:38 +1000
committerTim Mayberry <mojofunk@gmail.com>2015-09-16 11:22:16 +1000
commitd007fc05b18c7767cc72c13ac89882bd9ae36f63 (patch)
treed95156a38b0a8f00b2419d07345b14c2c244a212 /libs
parent091c4ed3a718c22ebcf205abdb3f2e2bad786459 (diff)
De/Initialize MMCSS on windows in PBD::init/cleanup instead of in PA Backend
Diffstat (limited to 'libs')
-rw-r--r--libs/backends/portaudio/portaudio_backend.cc4
-rw-r--r--libs/pbd/pbd.cc12
2 files changed, 9 insertions, 7 deletions
diff --git a/libs/backends/portaudio/portaudio_backend.cc b/libs/backends/portaudio/portaudio_backend.cc
index f55d9c3131..eef2869ae5 100644
--- a/libs/backends/portaudio/portaudio_backend.cc
+++ b/libs/backends/portaudio/portaudio_backend.cc
@@ -83,8 +83,6 @@ PortAudioBackend::PortAudioBackend (AudioEngine& e, AudioBackendInfo& info)
_instance_name = s_instance_name;
pthread_mutex_init (&_port_callback_mutex, 0);
- PBD::MMCSS::initialize ();
-
_pcmio = new PortAudioIO ();
_midiio = new WinMMEMidiIO ();
}
@@ -94,8 +92,6 @@ PortAudioBackend::~PortAudioBackend ()
delete _pcmio; _pcmio = 0;
delete _midiio; _midiio = 0;
- PBD::MMCSS::deinitialize ();
-
pthread_mutex_destroy (&_port_callback_mutex);
}
diff --git a/libs/pbd/pbd.cc b/libs/pbd/pbd.cc
index b0da66b138..86d04c45bc 100644
--- a/libs/pbd/pbd.cc
+++ b/libs/pbd/pbd.cc
@@ -35,12 +35,11 @@
#include "pbd/id.h"
#include "pbd/enumwriter.h"
#include "pbd/fpu.h"
-#ifdef PLATFORM_WINDOWS
-#include "pbd/windows_timer_utils.h"
-#endif
#ifdef PLATFORM_WINDOWS
#include <winsock2.h>
+#include "pbd/windows_timer_utils.h"
+#include "pbd/windows_mmcss.h"
#endif
#include "i18n.h"
@@ -109,6 +108,12 @@ PBD::init ()
}
test_timers_from_env ();
+
+ if (!PBD::MMCSS::initialize()) {
+ PBD::info << "Unable to initialize MMCSS" << endmsg;
+ } else {
+ PBD::info << "MMCSS Initialized" << endmsg;
+ }
#endif
if (!Glib::thread_supported()) {
@@ -131,6 +136,7 @@ void
PBD::cleanup ()
{
#ifdef PLATFORM_WINDOWS
+ PBD::MMCSS::deinitialize ();
WSACleanup();
#endif