diff options
Diffstat (limited to 'src/output_thread.c')
-rw-r--r-- | src/output_thread.c | 17 |
1 files changed, 11 insertions, 6 deletions
diff --git a/src/output_thread.c b/src/output_thread.c index 39b644e38..40906d82f 100644 --- a/src/output_thread.c +++ b/src/output_thread.c @@ -312,6 +312,16 @@ ao_play_chunk(struct audio_output *ao, const struct music_chunk *chunk) return true; } +static const struct music_chunk * +ao_next_chunk(struct audio_output *ao) +{ + return ao->chunk != NULL + /* continue the previous play() call */ + ? ao->chunk->next + /* get the first chunk from the pipe */ + : music_pipe_peek(ao->pipe); +} + /** * Plays all remaining chunks, until the tail of the pipe has been * reached (and no more chunks are queued), or until a command is @@ -328,12 +338,7 @@ ao_play(struct audio_output *ao) assert(ao->pipe != NULL); - chunk = ao->chunk; - if (chunk != NULL) - /* continue the previous play() call */ - chunk = chunk->next; - else - chunk = music_pipe_peek(ao->pipe); + chunk = ao_next_chunk(ao); if (chunk == NULL) /* no chunk available */ return false; |