diff options
author | Eric Wong <e@80x24.org> | 2015-05-10 07:18:54 +0000 |
---|---|---|
committer | Eric Wong <e@80x24.org> | 2015-05-10 07:18:54 +0000 |
commit | b6515b3a8abab6dcc56166da825e01e2c083bfc9 (patch) | |
tree | bc4e46e57ed80a2800c279f5f6d718d09480a233 | |
parent | 403ed90e2e7bed3e017938d76e17037b0d5059b6 (diff) | |
download | dtas-b6515b3a8abab6dcc56166da825e01e2c083bfc9.tar.gz |
If a file is missing, we must not respect the repeat option set by the user to avoid infinite looping
-rw-r--r-- | lib/dtas/tracklist.rb | 5 |
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 |