diff options
Diffstat (limited to 'utils/midiplay')
-rw-r--r-- | utils/midiplay/adlmidiplay.cpp | 10 |
1 files changed, 8 insertions, 2 deletions
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 |