diff options
author | Max Kellermann <max@duempel.org> | 2009-03-25 18:04:41 +0100 |
---|---|---|
committer | Max Kellermann <max@duempel.org> | 2009-03-25 18:04:41 +0100 |
commit | 3be1cdf8e0488a933371a6a45ced720d2aa67905 (patch) | |
tree | 7ad74a1150b56e544ed5fceb65184fd43f9b8578 | |
parent | 933fcf42326972c93dfa840ef06e2639e16cc43d (diff) | |
download | mpd-3be1cdf8e0488a933371a6a45ced720d2aa67905.tar.gz mpd-3be1cdf8e0488a933371a6a45ced720d2aa67905.tar.xz mpd-3be1cdf8e0488a933371a6a45ced720d2aa67905.zip |
output_all: synchronize playback with a notify object
Use audio_output_client_notify instead of g_usleep(1ms) in
audio_output_all_wait() to synchronize with the output_thread. Signal
the audio_output_client_notify object in ao_play().
-rw-r--r-- | src/output_all.c | 3 | ||||
-rw-r--r-- | src/output_thread.c | 2 |
2 files changed, 3 insertions, 2 deletions
diff --git a/src/output_all.c b/src/output_all.c index 870d8aed3..23d46b5f4 100644 --- a/src/output_all.c +++ b/src/output_all.c @@ -414,8 +414,7 @@ audio_output_all_wait(unsigned threshold) if (audio_output_all_check() < threshold) return true; - /* XXX synchronize in a better way */ - g_usleep(1000); + notify_wait(&audio_output_client_notify); return audio_output_all_check() < threshold; } diff --git a/src/output_thread.c b/src/output_thread.c index 62b893074..b545a62be 100644 --- a/src/output_thread.c +++ b/src/output_thread.c @@ -155,6 +155,8 @@ static void ao_play(struct audio_output *ao) ao->chunk_finished = true; g_mutex_unlock(ao->mutex); + + notify_signal(&audio_output_client_notify); } static void ao_pause(struct audio_output *ao) |