From 250956d0df7c1f06843b0bc3a0c33ea9f2b2a642 Mon Sep 17 00:00:00 2001 From: Eric Wong Date: Fri, 22 Jan 2016 11:10:57 +0000 Subject: mpd: beginnings of list support --- lib/dtas/mpd_emu_client.rb | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) (limited to 'lib/dtas/mpd_emu_client.rb') diff --git a/lib/dtas/mpd_emu_client.rb b/lib/dtas/mpd_emu_client.rb index f073b9e..3691ff1 100644 --- a/lib/dtas/mpd_emu_client.rb +++ b/lib/dtas/mpd_emu_client.rb @@ -32,6 +32,7 @@ class DTAS::MpdEmuClient # :nodoc: @rbuf = ''.b @wbuf = nil @cmd_listnum = 0 + @cmd_list = nil out("OK #{SERVER}\n") end @@ -62,6 +63,10 @@ class DTAS::MpdEmuClient # :nodoc: end end + def unknown_cmd(cmd) + %Q!#{err(:ERROR_UNKNOWN)} unknown command "#{cmd}"\n! + end + def err(sym) "[#{ACK[sym]}@#@cmd_listnum {}" end @@ -74,6 +79,26 @@ class DTAS::MpdEmuClient # :nodoc: out("OK\n") end + def mpdcmd_command_list_begin + if @cmd_list + @cmd_list << 'command_list_begin' # will trigger failure + else + @cmd_list = [] + end + end + + def mpdcmd_command_list_end + @cmd_list or return out(unknown_cmd('command_list_end')) + list = @cmd_list + @cmd_list = nil + list.each do |cmd| + case cmd + when 'command_list_begin', 'command_list_ok_begin' + return out(unknown_cmd(cmd)) + end + end + end + def mpdcmd_stats out("artists: \n" \ "albums: \n" \ -- cgit v1.2.3-24-ge0c7