about summary refs log tree commit homepage
diff options
context:
space:
mode:
-rw-r--r--lib/dtas/player.rb1
-rw-r--r--lib/dtas/player/client_handler.rb7
2 files changed, 6 insertions, 2 deletions
diff --git a/lib/dtas/player.rb b/lib/dtas/player.rb
index f94c575..56fbdac 100644
--- a/lib/dtas/player.rb
+++ b/lib/dtas/player.rb
@@ -419,7 +419,6 @@ class DTAS::Player # :nodoc:
 
   def player_idle
     stop_sinks if @sink_buf.inflight == 0
-    @tl.reset unless @paused
     wall("idle")
   end
 
diff --git a/lib/dtas/player/client_handler.rb b/lib/dtas/player/client_handler.rb
index 75e490d..ea0fc28 100644
--- a/lib/dtas/player/client_handler.rb
+++ b/lib/dtas/player/client_handler.rb
@@ -344,7 +344,12 @@ module DTAS::Player::ClientHandler # :nodoc:
     # no wall, next_source will wall on new track
     @paused = false
     return if @current
-    next_source(_next)
+    n = _next
+    unless n
+      @tl.reset
+      n = _next
+    end
+    next_source(n)
   end
 
   def do_play_pause