summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--libs/backends/portaudio/mmcss.cc16
-rw-r--r--libs/backends/portaudio/mmcss.h5
2 files changed, 21 insertions, 0 deletions
diff --git a/libs/backends/portaudio/mmcss.cc b/libs/backends/portaudio/mmcss.cc
index d8cec029a7..e986fe965e 100644
--- a/libs/backends/portaudio/mmcss.cc
+++ b/libs/backends/portaudio/mmcss.cc
@@ -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;
}
diff --git a/libs/backends/portaudio/mmcss.h b/libs/backends/portaudio/mmcss.h
index deb9a417d3..7c77f463a5 100644
--- a/libs/backends/portaudio/mmcss.h
+++ b/libs/backends/portaudio/mmcss.h
@@ -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 ();