about summary refs log tree commit homepage
path: root/lib/dtas/tracklist.rb
diff options
context:
space:
mode:
authorEric Wong <e@80x24.org>2015-05-10 07:18:54 +0000
committerEric Wong <e@80x24.org>2015-05-10 07:18:54 +0000
commitb6515b3a8abab6dcc56166da825e01e2c083bfc9 (patch)
treebc4e46e57ed80a2800c279f5f6d718d09480a233 /lib/dtas/tracklist.rb
parent403ed90e2e7bed3e017938d76e17037b0d5059b6 (diff)
downloaddtas-b6515b3a8abab6dcc56166da825e01e2c083bfc9.tar.gz
If a file is missing, we must not respect the repeat option
set by the user to avoid infinite looping
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 c008204..63fe4ec 100644
--- a/lib/dtas/tracklist.rb
+++ b/lib/dtas/tracklist.rb
@@ -69,12 +69,13 @@ class DTAS::Tracklist # :nodoc:
   def advance_track(repeat_ok = true)
     return if @list.empty?
     # @repeat == 1 for single track repeat
-    next_pos = @goto_pos || @pos + (@repeat == 1 ? 0 : 1)
+    repeat = repeat_ok ? @repeat : false
+    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]
       @pos = next_pos
-    elsif @repeat && repeat_ok
+    elsif repeat
       next_pos = @pos = 0
     else
       return