aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMax Kellermann <max@duempel.org>2009-02-10 18:51:53 +0100
committerMax Kellermann <max@duempel.org>2009-02-10 18:51:53 +0100
commitfacf146cfd557d04edeb7d06ca3230dbe86659a3 (patch)
treec01823b6c7862ed4d29a057f5bfbd86687becf2a
parent4493a9642522890f81ea505266c1a46f551c45e7 (diff)
downloadmpd-facf146cfd557d04edeb7d06ca3230dbe86659a3.tar.gz
mpd-facf146cfd557d04edeb7d06ca3230dbe86659a3.tar.xz
mpd-facf146cfd557d04edeb7d06ca3230dbe86659a3.zip
output_all: moved code to audio_output_all_finished()
audio_output_all_finished() returns bool, not int.
-rw-r--r--src/output_all.c29
1 files changed, 16 insertions, 13 deletions
diff --git a/src/output_all.c b/src/output_all.c
index 253bed8bc..166dbb430 100644
--- a/src/output_all.c
+++ b/src/output_all.c
@@ -127,23 +127,26 @@ audio_output_all_finish(void)
notify_deinit(&audio_output_client_notify);
}
-static void audio_output_wait_all(void)
-{
- unsigned i;
-
- while (1) {
- int finished = 1;
- for (i = 0; i < num_audio_outputs; ++i)
- if (audio_output_is_open(&audio_outputs[i]) &&
- !audio_output_command_is_finished(&audio_outputs[i]))
- finished = 0;
+/**
+ * Determine if all (active) outputs have finished the current
+ * command.
+ */
+static bool
+audio_output_all_finished(void)
+{
+ for (unsigned i = 0; i < num_audio_outputs; ++i)
+ if (audio_output_is_open(&audio_outputs[i]) &&
+ !audio_output_command_is_finished(&audio_outputs[i]))
+ return false;
- if (finished)
- break;
+ return true;
+}
+static void audio_output_wait_all(void)
+{
+ while (!audio_output_all_finished())
notify_wait(&audio_output_client_notify);
- };
}
static void