X-Git-Url: http://git.kaliko.me/?p=python-musicpd.git;a=blobdiff_plain;f=mpd.py;h=315c26210a6877bd31fe8af25055a0342f093651;hp=2875f95ced8c42c3511ce9d60c7868692e734755;hb=234f05d87439af7651f09b6ebdba84f7f0dc2a1c;hpb=5c84adfc3853f683df1a79f4e4852386c4714508 diff --git a/mpd.py b/mpd.py index 2875f95..315c262 100644 --- a/mpd.py +++ b/mpd.py @@ -1,5 +1,5 @@ # Python MPD client library -# Copyright (C) 2008 J. Alexander Treuman +# Copyright (C) 2008-2010 J. Alexander Treuman # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by @@ -174,14 +174,17 @@ class MPDClient(object): raise PendingCommandError("Cannot execute %s with " "pending commands" % command) retval = self._commands[command] - if self._command_list is not None and not callable(retval): - raise CommandListError("%s not allowed in command list" % command) - self._write_command(command, args) - if self._command_list is None: + if self._command_list is not None: + if not callable(retval): + raise CommandListError("%s not allowed in command list" % + command) + self._write_command(command, args) + self._command_list.append(retval) + else: + self._write_command(command, args) if callable(retval): return retval() return retval - self._command_list.append(retval) def _write_line(self, line): self._wfile.write("%s\n" % line) @@ -386,6 +389,11 @@ class MPDClient(object): self._sock.close() self._reset() + def fileno(self): + if not self._sock: + raise ConnectionError("Not connected") + return self._sock.fileno() + def command_list_ok_begin(self): if self._command_list is not None: raise CommandListError("Already in command list")