about summary refs log tree commit homepage
path: root/lib
diff options
context:
space:
mode:
authorEric Wong <e@80x24.org>2015-12-13 13:01:06 +0000
committerEric Wong <e@80x24.org>2015-12-13 13:01:06 +0000
commit15fc2b737ea5fe7e4c8b21eb6395721ba9522ab4 (patch)
tree609c265935f12483c1b6afd4d605bc15921b61f3 /lib
parentfc00838faa4480a03e8a33fedc80c4648817bb93 (diff)
downloaddtas-15fc2b737ea5fe7e4c8b21eb6395721ba9522ab4.tar.gz
It is orders of magnitude more efficient to implement this
in the player and very noticeable when using large playlists.
Diffstat (limited to 'lib')
-rw-r--r--lib/dtas/player/client_handler.rb6
-rw-r--r--lib/dtas/tracklist.rb6
2 files changed, 12 insertions, 0 deletions
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)