diff --git a/libs/backends/dummy/dummy_audiobackend.cc b/libs/backends/dummy/dummy_audiobackend.cc index 9c757d95ab..aed0a30921 100644 --- a/libs/backends/dummy/dummy_audiobackend.cc +++ b/libs/backends/dummy/dummy_audiobackend.cc @@ -932,6 +932,10 @@ DummyAudioBackend::main_process_thread () manager.registration_callback(); manager.graph_order_callback(); +#ifdef PLATFORM_WINDOWS + PBD::MMTIMERS::set_min_resolution(); +#endif + int64_t clock1; clock1 = -1; while (_running) { @@ -1036,6 +1040,9 @@ DummyAudioBackend::main_process_thread () } } +#ifdef PLATFORM_WINDOWS + PBD::MMTIMERS::reset_resolution(); +#endif _running = false; return 0; } diff --git a/libs/backends/portaudio/portaudio_backend.cc b/libs/backends/portaudio/portaudio_backend.cc index ab1044639a..4a4ed2580d 100644 --- a/libs/backends/portaudio/portaudio_backend.cc +++ b/libs/backends/portaudio/portaudio_backend.cc @@ -681,12 +681,14 @@ PortAudioBackend::_start (bool for_latency_measurement) if (!start_blocking_process_thread()) { return ProcessThreadStartError; } + PBD::MMTIMERS::set_min_resolution(); } else { if (_pcmio->start_stream() != paNoError) { DEBUG_AUDIO("Unable to start stream\n"); return AudioDeviceOpenError; } + PBD::MMTIMERS::set_min_resolution(); if (!start_freewheel_process_thread()) { DEBUG_AUDIO("Unable to start freewheel thread\n"); stop(); @@ -833,6 +835,7 @@ PortAudioBackend::stop () } _midiio->stop(); + PBD::MMTIMERS::reset_resolution(); _run = false; diff --git a/libs/backends/portaudio/winmmemidi_io.cc b/libs/backends/portaudio/winmmemidi_io.cc index 5b8b31b55c..e288eae40d 100644 --- a/libs/backends/portaudio/winmmemidi_io.cc +++ b/libs/backends/portaudio/winmmemidi_io.cc @@ -26,7 +26,6 @@ #include "pbd/error.h" #include "pbd/compose.h" -#include "pbd/windows_timer_utils.h" #include "winmmemidi_io.h" #include "debug.h" @@ -137,7 +136,6 @@ WinMMEMidiIO::start () m_run = true; DEBUG_MIDI ("Starting MIDI driver\n"); - PBD::MMTIMERS::set_min_resolution(); discover(); start_devices (); } @@ -156,8 +154,6 @@ WinMMEMidiIO::stop () pthread_mutex_lock (&m_device_lock); cleanup (); pthread_mutex_unlock (&m_device_lock); - - PBD::MMTIMERS::reset_resolution(); } void