From 7d52284a96c634a9e36756ba88423d8fad346c6f Mon Sep 17 00:00:00 2001 From: Max Kellermann Date: Tue, 10 Mar 2009 17:52:38 +0100 Subject: player_thread: moved code to player_seek_decoder() Reset player.xfade and player.buffering from within player_seek_decoder(), not in the player_process_command() switch statement. --- src/player_thread.c | 27 +++++++++++++++------------ 1 file changed, 15 insertions(+), 12 deletions(-) diff --git a/src/player_thread.c b/src/player_thread.c index 022e97f0f..82628ddc0 100644 --- a/src/player_thread.c +++ b/src/player_thread.c @@ -247,12 +247,23 @@ static bool player_seek_decoder(struct player *player) where = 0.0; ret = dc_seek(&pc.notify, where); - if (ret) - pc.elapsed_time = where; + if (!ret) { + player_command_finished(); + return false; + } + pc.elapsed_time = where; player_command_finished(); - return ret; + player->xfade = XFADE_UNKNOWN; + + /* abort buffering when the user has requested + a seek */ + player->buffering = false; + + audio_output_all_cancel(); + + return true; } static void player_process_command(struct player *player) @@ -294,15 +305,7 @@ static void player_process_command(struct player *player) break; case PLAYER_COMMAND_SEEK: - if (player_seek_decoder(player)) { - player->xfade = XFADE_UNKNOWN; - - /* abort buffering when the user has requested - a seek */ - player->buffering = false; - - audio_output_all_cancel(); - } + player_seek_decoder(player); break; case PLAYER_COMMAND_CANCEL: -- cgit v1.2.3