aboutsummaryrefslogtreecommitdiff
path: root/utils/midiplay
diff options
context:
space:
mode:
Diffstat (limited to 'utils/midiplay')
-rw-r--r--utils/midiplay/adlmidiplay.cpp10
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