From 990f473bb3b590de34931c9dfa485e2a33d832fd Mon Sep 17 00:00:00 2001
From: Max Kellermann <max@duempel.org>
Date: Thu, 5 Nov 2015 00:29:03 +0100
Subject: player/Control: initialize seek_time in EnqueueSongLocked()

Allows removing a few special cases in the player thread.
---
 src/player/Control.hxx | 1 +
 src/player/Thread.cxx  | 8 ++------
 2 files changed, 3 insertions(+), 6 deletions(-)

diff --git a/src/player/Control.hxx b/src/player/Control.hxx
index a2807a9a1..2b15e89d8 100644
--- a/src/player/Control.hxx
+++ b/src/player/Control.hxx
@@ -417,6 +417,7 @@ private:
 		assert(next_song == nullptr);
 
 		next_song = song;
+		seek_time = SongTime::zero();
 		SynchronousCommand(PlayerCommand::QUEUE);
 	}
 
diff --git a/src/player/Thread.cxx b/src/player/Thread.cxx
index 993bcfedf..b251cddfb 100644
--- a/src/player/Thread.cxx
+++ b/src/player/Thread.cxx
@@ -324,9 +324,7 @@ Player::StartDecoder(MusicPipe &_pipe)
 	assert(queued || pc.command == PlayerCommand::SEEK);
 	assert(pc.next_song != nullptr);
 
-	SongTime start_time = pc.next_song->GetStartTime();
-	if (pc.command == PlayerCommand::SEEK)
-		start_time += pc.seek_time;
+	SongTime start_time = pc.next_song->GetStartTime() + pc.seek_time;
 
 	dc.Start(new DetachedSong(*pc.next_song),
 		 start_time, pc.next_song->GetEndTime(),
@@ -950,9 +948,7 @@ Player::Run()
 
 	pc.Lock();
 	pc.state = PlayerState::PLAY;
-
-	if (pc.command == PlayerCommand::SEEK)
-		elapsed_time = pc.seek_time;
+	elapsed_time = pc.seek_time;
 
 	pc.CommandFinished();
 
-- 
cgit v1.2.3