about summary refs log tree commit homepage
path: root/lib/dtas/tracklist.rb
diff options
context:
space:
mode:
authorEric Wong <normalperson@yhbt.net>2013-09-09 08:29:15 +0000
committerEric Wong <normalperson@yhbt.net>2013-09-09 08:29:15 +0000
commit5484099e7cc3077ed2bb5631d0f2f33f6df1e483 (patch)
tree895e644de923d0db06aa0e72a02951a33f067334 /lib/dtas/tracklist.rb
parent40411aa35b2889ba0ebc919a29d7c895e416ec5e (diff)
downloaddtas-5484099e7cc3077ed2bb5631d0f2f33f6df1e483.tar.gz
Because sometimes a song is just stuck in our head.
Or MPRIS 2.0 wants us to implement it this way...
Diffstat (limited to 'lib/dtas/tracklist.rb')
-rw-r--r--lib/dtas/tracklist.rb5
1 files changed, 3 insertions, 2 deletions
diff --git a/lib/dtas/tracklist.rb b/lib/dtas/tracklist.rb
index 644c57f..6ed22ee 100644
--- a/lib/dtas/tracklist.rb
+++ b/lib/dtas/tracklist.rb
@@ -6,7 +6,7 @@ require_relative 'serialize'
 # this is inspired by the MPRIS 2.0 TrackList spec
 class DTAS::Tracklist
   include DTAS::Serialize
-  attr_accessor :repeat
+  attr_accessor :repeat # true, false, 1
 
   SIVS = %w(list pos repeat)
   TL_DEFAULTS = {
@@ -67,7 +67,8 @@ class DTAS::Tracklist
 
   def advance_track(repeat_ok = true)
     return if @list.empty?
-    next_pos = @goto_pos || @pos + 1
+    # @repeat == 1 for single track repeat
+    next_pos = @goto_pos || @pos + (@repeat == 1 ? 0 : 1)
     next_off = @goto_off # nil by default
     @goto_pos = @goto_off = nil
     if @list[next_pos]