summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-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