Dummy: add a CC only test-sequence
[ardour.git] / libs / backends / portaudio / portaudio_backend.cc
index 60cd94c6940a4e3f2af1bc4fc3f618f2a6740396..eef2869ae5f8a0c74b3a63f7febc3293f8a8ad9d 100644 (file)
 #include "pbd/compose.h"
 #include "pbd/error.h"
 #include "pbd/file_utils.h"
+#include "pbd/windows_timer_utils.h"
+#include "pbd/windows_mmcss.h"
 
 #include "ardour/filesystem_paths.h"
 #include "ardour/port_manager.h"
 #include "i18n.h"
 
-#include "win_utils.h"
-#include "mmcss.h"
 #include "audio_utils.h"
 
 #include "debug.h"
@@ -83,8 +83,6 @@ PortAudioBackend::PortAudioBackend (AudioEngine& e, AudioBackendInfo& info)
        _instance_name = s_instance_name;
        pthread_mutex_init (&_port_callback_mutex, 0);
 
-       mmcss::initialize ();
-
        _pcmio = new PortAudioIO ();
        _midiio = new WinMMEMidiIO ();
 }
@@ -94,8 +92,6 @@ PortAudioBackend::~PortAudioBackend ()
        delete _pcmio; _pcmio = 0;
        delete _midiio; _midiio = 0;
 
-       mmcss::deinitialize ();
-
        pthread_mutex_destroy (&_port_callback_mutex);
 }
 
@@ -680,7 +676,7 @@ PortAudioBackend::samples_since_cycle_start ()
                return 0;
        }
 
-       return m_cycle_timer.samples_since_cycle_start (utils::get_microseconds());
+       return m_cycle_timer.samples_since_cycle_start (PBD::get_microseconds());
 }
 
 int
@@ -702,7 +698,7 @@ PortAudioBackend::name_to_id(std::string device_name) const {
 bool
 PortAudioBackend::set_mmcss_pro_audio (HANDLE* task_handle)
 {
-       bool mmcss_success = mmcss::set_thread_characteristics ("Pro Audio", task_handle);
+       bool mmcss_success = PBD::MMCSS::set_thread_characteristics ("Pro Audio", task_handle);
 
        if (!mmcss_success) {
                PBD::warning << get_error_string(SettingAudioThreadPriorityError) << endmsg;
@@ -712,7 +708,7 @@ PortAudioBackend::set_mmcss_pro_audio (HANDLE* task_handle)
        }
 
        bool mmcss_priority =
-               mmcss::set_thread_priority(*task_handle, mmcss::AVRT_PRIORITY_NORMAL);
+               PBD::MMCSS::set_thread_priority(*task_handle, PBD::MMCSS::AVRT_PRIORITY_NORMAL);
 
        if (!mmcss_priority) {
                PBD::warning << get_error_string(SettingAudioThreadPriorityError) << endmsg;
@@ -727,7 +723,7 @@ PortAudioBackend::set_mmcss_pro_audio (HANDLE* task_handle)
 bool
 PortAudioBackend::reset_mmcss (HANDLE task_handle)
 {
-       if (!mmcss::revert_thread_characteristics(task_handle)) {
+       if (!PBD::MMCSS::revert_thread_characteristics(task_handle)) {
                DEBUG_THREADS("Unable to reset process thread characteristics\n");
                return false;
        }
@@ -1522,10 +1518,10 @@ PortAudioBackend::blocking_process_main(const float* interleaved_input_data,
                                         float* interleaved_output_data)
 {
        uint32_t i = 0;
-       uint64_t min_elapsed_us = 1000000;
-       uint64_t max_elapsed_us = 0;
+       int64_t min_elapsed_us = 1000000;
+       int64_t max_elapsed_us = 0;
 
-       m_dsp_calc.set_start_timestamp_us (utils::get_microseconds());
+       m_dsp_calc.set_start_timestamp_us (PBD::get_microseconds());
 
        i = 0;
        /* Copy input audio data into input port buffers */
@@ -1551,7 +1547,7 @@ PortAudioBackend::blocking_process_main(const float* interleaved_input_data,
        }
 
        m_last_cycle_start = m_cycle_timer.get_start();
-       m_cycle_timer.reset_start(utils::get_microseconds());
+       m_cycle_timer.reset_start(PBD::get_microseconds());
        m_cycle_count++;
 
        uint64_t cycle_diff_us = (m_cycle_timer.get_start() - m_last_cycle_start);
@@ -1599,7 +1595,7 @@ PortAudioBackend::blocking_process_main(const float* interleaved_input_data,
        _processed_samples += _samples_per_period;
 
        /* calculate DSP load */
-       m_dsp_calc.set_stop_timestamp_us (utils::get_microseconds());
+       m_dsp_calc.set_stop_timestamp_us (PBD::get_microseconds());
        _dsp_load = m_dsp_calc.get_dsp_load();
 
        DEBUG_TIMING(string_compose("DSP Load: %1\n", _dsp_load));