瀏覽代碼

Add custom implementation of usleep for windows

Filip Klembara 4 年之前
父節點
當前提交
3f9565b55d
共有 1 個文件被更改,包括 18 次插入0 次删除
  1. 18 0
      examples/streamer/stream.cpp

+ 18 - 0
examples/streamer/stream.cpp

@@ -19,6 +19,24 @@
 #include "stream.hpp"
 #include "helpers.hpp"
 
+#if _WIN32
+// taken from https://stackoverflow.com/questions/5801813/c-usleep-is-obsolete-workarounds-for-windows-mingw
+#include <windows.h>
+
+void usleep(__int64 usec)
+{
+    HANDLE timer;
+    LARGE_INTEGER ft;
+
+    ft.QuadPart = -(10*usec); // Convert to 100 nanosecond interval, negative value indicates relative time
+
+    timer = CreateWaitableTimer(NULL, TRUE, NULL);
+    SetWaitableTimer(timer, &ft, 0, NULL, NULL, 0);
+    WaitForSingleObject(timer, INFINITE);
+    CloseHandle(timer);
+}
+#endif
+
 void StreamSource::stop() {
     sampleTime_us = 0;
     sample = {};