From f8722913cf2f9d88cdc20a022c81d131c1728b17 Mon Sep 17 00:00:00 2001 From: Max Kellermann Date: Wed, 29 Oct 2008 22:34:37 +0100 Subject: output: removed audio_output.result Since open() and play() close the device on error, we can simply check audio_output.open instead of audio_output.result after a call. --- src/audio.c | 8 +++----- src/output_control.c | 8 ++------ src/output_internal.h | 11 ----------- src/output_thread.c | 12 +++++++----- 4 files changed, 12 insertions(+), 27 deletions(-) diff --git a/src/audio.c b/src/audio.c index 45f36fff..953b1a54 100644 --- a/src/audio.c +++ b/src/audio.c @@ -247,11 +247,9 @@ bool playAudio(const char *buffer, size_t length) if (!audio_output_is_open(ao)) continue; - if (audio_output_command_is_finished(ao)) { - bool success = audio_output_get_result(ao); - if (success) - ret = true; - } else { + if (audio_output_command_is_finished(ao)) + ret = true; + else { finished = false; audio_output_signal(ao); } diff --git a/src/output_control.c b/src/output_control.c index c4c9510d..f6ff6347 100644 --- a/src/output_control.c +++ b/src/output_control.c @@ -55,8 +55,6 @@ bool audio_output_open(struct audio_output *audioOutput, const struct audio_format *audioFormat) { - bool ret = true; - audioOutput->reopen_after = 0; if (audioOutput->open && @@ -83,12 +81,10 @@ audio_output_open(struct audio_output *audioOutput, if (audioOutput->thread == 0) audio_output_thread_start(audioOutput); - if (!audioOutput->open) { + if (!audioOutput->open) ao_command(audioOutput, AO_COMMAND_OPEN); - ret = audioOutput->result; - } - return ret; + return audioOutput->open; } void diff --git a/src/output_internal.h b/src/output_internal.h index cfa23121..97b24255 100644 --- a/src/output_internal.h +++ b/src/output_internal.h @@ -109,11 +109,6 @@ struct audio_output { const struct tag *tag; } args; - - /** - * Result value of the command. true means success. - */ - bool result; }; /** @@ -134,10 +129,4 @@ audio_output_command_is_finished(const struct audio_output *ao) return ao->command == AO_COMMAND_NONE; } -static inline bool -audio_output_get_result(const struct audio_output *ao) -{ - return ao->result; -} - #endif diff --git a/src/output_thread.c b/src/output_thread.c index 5d468c57..4209f226 100644 --- a/src/output_thread.c +++ b/src/output_thread.c @@ -63,12 +63,13 @@ static void ao_play(struct audio_output *ao) { const char *data = ao->args.play.data; size_t size = ao->args.play.size; + bool ret; if (!audio_format_equals(&ao->inAudioFormat, &ao->outAudioFormat)) convertAudioFormat(ao, &data, &size); - ao->result = ao->plugin->play(ao->data, data, size); - if (!ao->result) { + ret = ao->plugin->play(ao->data, data, size); + if (!ret) { ao->plugin->cancel(ao->data); ao->plugin->close(ao->data); ao->open = false; @@ -96,6 +97,7 @@ static void ao_pause(struct audio_output *ao) static void *audio_output_task(void *arg) { struct audio_output *ao = arg; + bool ret; while (1) { switch (ao->command) { @@ -104,11 +106,11 @@ static void *audio_output_task(void *arg) case AO_COMMAND_OPEN: assert(!ao->open); - ao->result = ao->plugin->open(ao->data, - &ao->outAudioFormat); + ret = ao->plugin->open(ao->data, + &ao->outAudioFormat); assert(!ao->open); - if (ao->result == true) + if (ret == true) ao->open = true; else ao->reopen_after = time(NULL) + REOPEN_AFTER; -- cgit v1.2.3