about summary refs log tree commit homepage
diff options
context:
space:
mode:
-rw-r--r--lib/dtas/player.rb9
-rw-r--r--lib/dtas/tracklist.rb5
2 files changed, 12 insertions, 2 deletions
diff --git a/lib/dtas/player.rb b/lib/dtas/player.rb
index a8c7fe0..8926e0b 100644
--- a/lib/dtas/player.rb
+++ b/lib/dtas/player.rb
@@ -359,7 +359,7 @@ class DTAS::Player # :nodoc:
       end
     end
 
-    echo "idle"
+    player_idle
     nil
   end
 
@@ -388,10 +388,15 @@ class DTAS::Player # :nodoc:
       @srv.wait_ctl(dst, :wait_readable)
     else
       stop_sinks if @sink_buf.inflight == 0
-      echo "idle"
+      player_idle
     end
   end
 
+  def player_idle
+    @tl.reset
+    echo "idle"
+  end
+
   def drop_target(target)
     @srv.wait_ctl(target, :delete)
     target.close
diff --git a/lib/dtas/tracklist.rb b/lib/dtas/tracklist.rb
index 01339cc..a51db32 100644
--- a/lib/dtas/tracklist.rb
+++ b/lib/dtas/tracklist.rb
@@ -35,6 +35,11 @@ class DTAS::Tracklist
     @goto_pos = nil
   end
 
+  def reset
+    @goto_pos = nil
+    @pos = TL_DEFAULTS["pos"]
+  end
+
   def size
     @list.size
   end