diff options
author | Eric Wong <normalperson@yhbt.net> | 2013-10-09 06:49:56 +0000 |
---|---|---|
committer | Eric Wong <normalperson@yhbt.net> | 2013-10-09 06:50:10 +0000 |
commit | 0eec3250509c290d7be0cec43b06cb621f2b71f8 (patch) | |
tree | 5814d2ec5dd0c490a09125eae6766ce493a39f9e | |
parent | d131bb0964ba323eac225c888a84875c1ae8cd3d (diff) | |
download | dtas-0eec3250509c290d7be0cec43b06cb621f2b71f8.tar.gz |
We should not have the position point too far past the end of the list. This allows playback to start when we do "tl add" on an idle player after removing something from the tracklist.
-rw-r--r-- | lib/dtas/tracklist.rb | 12 |
1 files changed, 8 insertions, 4 deletions
diff --git a/lib/dtas/tracklist.rb b/lib/dtas/tracklist.rb index 6856648..325db20 100644 --- a/lib/dtas/tracklist.rb +++ b/lib/dtas/tracklist.rb @@ -101,11 +101,15 @@ class DTAS::Tracklist # :nodoc: def remove_track(track_id) by_track_id = _track_id_map - if idx = by_track_id.delete(track_id) - @list[idx] = nil - @list.compact! - # TODO: what do we do with @pos (and the currently-playing track) + idx = by_track_id.delete(track_id) or return false + @list[idx] = nil + @list.compact! + len = @list.size + if @pos >= len + @pos = len == 0 ? TL_DEFAULTS["pos"] : len end + @goto_pos = @goto_pos = nil # TODO: reposition? + true end def go_to(track_id, offset_hhmmss = nil) |