From 87b0316f2bad10ce2f8caa1a60065ab9f3592bbf Mon Sep 17 00:00:00 2001 From: Eric Wong Date: Wed, 9 Oct 2013 06:49:57 +0000 Subject: player: "tl remove" drops the track from the queue A paused/seeked track in the tracklist may end up in the queue. --- lib/dtas/player/client_handler.rb | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) 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) : ''}" } -- cgit v1.2.3-24-ge0c7