From 08210af23a5d33cb08efcfd5710e65887ab8e398 Mon Sep 17 00:00:00 2001 From: Max Kellermann Date: Sun, 12 Oct 2008 01:21:35 +0200 Subject: player: replaced buffered_before_play with buffering flag buffered_before_play was copied to struct player because it was used to disable buffering when seeking. Instead of mainaining a copy of this number, move just the flag to the player struct. --- src/player_thread.c | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-) diff --git a/src/player_thread.c b/src/player_thread.c index 10b9a8769..b55fba338 100644 --- a/src/player_thread.c +++ b/src/player_thread.c @@ -35,10 +35,9 @@ enum xfade_state { struct player { /** - * number of chunks which have to be decoded before playing - * starts + * are we waiting for buffered_before_play? */ - unsigned int buffered_before_play; + bool buffering; /** * true if the decoder is starting and did not provide data @@ -178,7 +177,10 @@ static void processDecodeInput(struct player *player) dropBufferedAudio(); if (decodeSeek(player) == 0) { player->xfade = XFADE_UNKNOWN; - player->buffered_before_play = 0; + + /* abort buffering when the user has requested + a seek */ + player->buffering = false; } break; @@ -225,14 +227,13 @@ static int playChunk(ob_chunk * chunk, static void do_play(void) { struct player player = { - .buffered_before_play = pc.buffered_before_play, + .buffering = true, .decoder_starting = false, .paused = false, .queued = false, .xfade = XFADE_UNKNOWN, .next_song_chunk = -1, }; - int buffering = 1; unsigned int crossFadeChunks = 0; /** the position of the next cross-faded chunk in the next song */ @@ -262,14 +263,14 @@ static void do_play(void) break; } - if (buffering) { - if (ob_available() < player.buffered_before_play) { + if (player.buffering) { + if (ob_available() < pc.buffered_before_play) { /* not enough decoded buffer space yet */ notify_wait(&pc.notify); continue; } else { /* buffering is complete */ - buffering = 0; + player.buffering = false; ob_set_lazy(true); } } -- cgit v1.2.3