From: Tim Mayberry Date: Mon, 14 Sep 2015 03:47:38 +0000 (+1000) Subject: De/Initialize MMCSS on windows in PBD::init/cleanup instead of in PA Backend X-Git-Tag: 4.3~366 X-Git-Url: https://main.carlh.net/gitweb/?a=commitdiff_plain;h=d007fc05b18c7767cc72c13ac89882bd9ae36f63;p=ardour.git De/Initialize MMCSS on windows in PBD::init/cleanup instead of in PA Backend --- 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 +#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