about summary refs log tree commit homepage
diff options
context:
space:
mode:
-rw-r--r--lib/dtas/player/client_handler.rb8
1 files changed, 7 insertions, 1 deletions
diff --git a/lib/dtas/player/client_handler.rb b/lib/dtas/player/client_handler.rb
index f313a2a..b9beee4 100644
--- a/lib/dtas/player/client_handler.rb
+++ b/lib/dtas/player/client_handler.rb
@@ -580,7 +580,13 @@ module DTAS::Player::ClientHandler # :nodoc:
         _tl_skip
       end
 
-      io.emit(@tl.remove_track(track_id) ? "OK" : "MISSING")
+      if @tl.remove_track(track_id)
+        # drop it from the queue, too, in case it just got requeued or paused
+        @queue.delete_if { |t| Array === t && t[0].object_id == track_id }
+        io.emit("OK")
+      else
+        io.emit("MISSING")
+      end
     when "get"
       res = @tl.get_tracks(msg.map! { |i| i.to_i })
       res.map! { |tid, file| "#{tid}=#{file ? Shellwords.escape(file) : ''}" }