From 9948975066981b6d9dfbbb18adc7013341a26634 Mon Sep 17 00:00:00 2001 From: Eric Wong Date: Mon, 9 Sep 2013 09:06:44 +0000 Subject: player/client_handler: return count for list-style responses This is necessary to handle the case where the tracklist is empty, clients get confused and timeout the response if we attempt to emit an empty string. --- lib/dtas/player/client_handler.rb | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) (limited to 'lib') diff --git a/lib/dtas/player/client_handler.rb b/lib/dtas/player/client_handler.rb index 6070851..70d992b 100644 --- a/lib/dtas/player/client_handler.rb +++ b/lib/dtas/player/client_handler.rb @@ -567,9 +567,10 @@ module DTAS::Player::ClientHandler # :nodoc: when "get" res = @tl.get_tracks(msg.map! { |i| i.to_i }) res.map! { |tid, file| "#{tid}=#{file ? Shellwords.escape(file) : ''}" } - io.emit(res.join(' ')) + io.emit("#{res.size} #{res.join(' ')}") when "tracks" - io.emit(@tl.tracks.map! { |i| i.to_s }.join(' ')) + tracks = @tl.tracks + io.emit("#{tracks.size} " << tracks.map! { |i| i.to_s }.join(' ')) when "goto" track_id = msg.shift or return io.emit("ERR track_id not specified") offset = msg.shift # may be nil -- cgit v1.2.3-24-ge0c7