Add debug output for errors when setting MMCSS thread characteristics
authorTim Mayberry <mojofunk@gmail.com>
Tue, 1 Sep 2015 02:37:24 +0000 (12:37 +1000)
committerTim Mayberry <mojofunk@gmail.com>
Wed, 2 Sep 2015 02:07:59 +0000 (12:07 +1000)
libs/backends/portaudio/mmcss.cc
libs/backends/portaudio/mmcss.h

index d8cec029a75d8867e74b77b7ea84ca524041de38..e986fe965e88d5896ce5075475c8ae4657d75e06 100644 (file)
@@ -118,6 +118,22 @@ set_thread_characteristics (const std::string& task_name, HANDLE* task_handle)
        if (*task_handle == 0) {
                DEBUG_THREADS (string_compose ("Failed to set Thread Characteristics to %1\n",
                                               task_name));
+               DWORD error = GetLastError();
+
+               switch (error) {
+               case ERROR_INVALID_TASK_INDEX:
+                       DEBUG_THREADS("MMCSS: Invalid Task Index\n");
+                       break;
+               case ERROR_INVALID_TASK_NAME:
+                       DEBUG_THREADS("MMCSS: Invalid Task Name\n");
+                       break;
+               case ERROR_PRIVILEGE_NOT_HELD:
+                       DEBUG_THREADS("MMCSS: Privilege not held\n");
+                       break;
+               default:
+                       DEBUG_THREADS("MMCSS: Unknown error setting thread characteristics\n");
+                       break;
+               }
                return false;
        }
 
index deb9a417d323c98fdb32d3e118329df0e18524f3..7c77f463a52c1b33118de61cb406f431985e81d9 100644 (file)
@@ -33,6 +33,11 @@ enum AVRT_PRIORITY {
        AVRT_PRIORITY_CRITICAL
 };
 
+enum error_codes {
+       ERROR_INVALID_TASK_NAME = 1550,
+       ERROR_INVALID_TASK_INDEX = 1551
+};
+
 bool initialize ();
 
 bool deinitialize ();