From e9c3ac5c9679fa6418cfd7c9b53bf51dabdf9599 Mon Sep 17 00:00:00 2001 From: Wohlstand Date: Fri, 2 Aug 2024 08:50:45 +0300 Subject: MidiPlay: Tweaked the non-SDL2 timer This works on Windows with MinGW-w64, but won't work with MSVC because of unistd features. --- utils/midiplay/adlmidiplay.cpp | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) (limited to 'utils/midiplay') diff --git a/utils/midiplay/adlmidiplay.cpp b/utils/midiplay/adlmidiplay.cpp index b61f1b6..4b44678 100644 --- a/utils/midiplay/adlmidiplay.cpp +++ b/utils/midiplay/adlmidiplay.cpp @@ -55,7 +55,7 @@ static inline void s_sleepU(double s) double target = s_getTime() + s - debt; while(s_getTime() < target) - usleep(100); + usleep(1000); debt = s_getTime() - target; #else @@ -76,7 +76,13 @@ static inline double s_getTime() static inline void s_sleepU(double s) { - usleep((uint32_t)(s * 1000000)); + static double debt = 0.0; + double target = s_getTime() + s - debt; + + while(s_getTime() < target) + usleep(1000); + + debt = s_getTime() - target; } # endif #endif -- cgit v1.2.3