diff options
author | Eric Wong <e@80x24.org> | 2015-12-13 13:01:06 +0000 |
---|---|---|
committer | Eric Wong <e@80x24.org> | 2015-12-13 13:01:06 +0000 |
commit | 15fc2b737ea5fe7e4c8b21eb6395721ba9522ab4 (patch) | |
tree | 609c265935f12483c1b6afd4d605bc15921b61f3 | |
parent | fc00838faa4480a03e8a33fedc80c4648817bb93 (diff) | |
download | dtas-15fc2b737ea5fe7e4c8b21eb6395721ba9522ab4.tar.gz |
It is orders of magnitude more efficient to implement this in the player and very noticeable when using large playlists.
-rwxr-xr-x | bin/dtas-tl | 4 | ||||
-rw-r--r-- | lib/dtas/player/client_handler.rb | 6 | ||||
-rw-r--r-- | lib/dtas/tracklist.rb | 6 |
3 files changed, 12 insertions, 4 deletions
diff --git a/bin/dtas-tl b/bin/dtas-tl index 5fde3f0..3d1d946 100755 --- a/bin/dtas-tl +++ b/bin/dtas-tl @@ -24,10 +24,6 @@ when "cat" res.sub!(/\A1 /, '') print "#{res}\n" end -when "clear" - get_track_ids(c).each do |track_id| - print("#{track_id} " << c.req("tl remove #{track_id}") << "\n") - end when "addhead" ARGV.shift ARGV.reverse.each do |path| diff --git a/lib/dtas/player/client_handler.rb b/lib/dtas/player/client_handler.rb index 4827840..1c0a79e 100644 --- a/lib/dtas/player/client_handler.rb +++ b/lib/dtas/player/client_handler.rb @@ -676,6 +676,12 @@ module DTAS::Player::ClientHandler # :nodoc: io.emit('OK') end + def _dpc_tl_clear(io, msg) + @tl.clear + _tl_skip + io.emit('OK') + end + def __bp_prev_next(io, msg, cur, bp) case type = msg[1] when nil, "track" diff --git a/lib/dtas/tracklist.rb b/lib/dtas/tracklist.rb index b1cdc1e..b9abe55 100644 --- a/lib/dtas/tracklist.rb +++ b/lib/dtas/tracklist.rb @@ -195,6 +195,12 @@ class DTAS::Tracklist # :nodoc: track.to_path end + def clear + @list.clear + @shuffle.clear if @shuffle + reset + end + def go_to(track_id, offset_hhmmss = nil) list = @shuffle || @list if idx = _idx_of(list, track_id) |