# Playback Option Commands
"consume": self._fetch_nothing,
"crossfade": self._fetch_nothing,
+ "mixrampdb": self._fetch_nothing,
+ "mixrampdelay": self._fetch_nothing,
"random": self._fetch_nothing,
"repeat": self._fetch_nothing,
"setvol": self._fetch_nothing,
# Database Commands
"count": self._fetch_object,
"find": self._fetch_songs,
+ "findadd": self._fetch_nothing,
"list": self._fetch_list,
"listall": self._fetch_database,
"listallinfo": self._fetch_database,
"lsinfo": self._fetch_database,
"search": self._fetch_songs,
"update": self._fetch_item,
+ "rescan": self._fetch_item,
# Sticker Commands
"sticker get": self._fetch_item,
"sticker set": self._fetch_nothing,
"notcommands": self._fetch_list,
"tagtypes": self._fetch_list,
"urlhandlers": self._fetch_list,
+ "decoders": self._fetch_plugins,
}
def __getattr__(self, attr):
else:
command = attr
wrapper = self._execute
- command = command.replace("_", " ")
if command not in self._commands:
- raise AttributeError("'%s' object has no attribute '%s'" %
- (self.__class__.__name__, attr))
+ command = command.replace("_", " ")
+ if command not in self._commands:
+ raise AttributeError("'%s' object has no attribute '%s'" %
+ (self.__class__.__name__, attr))
return lambda *args: wrapper(command, args)
def _send(self, command, args):
def _fetch_objects(self, delimiters):
return self._wrap_iterator(self._read_objects(delimiters))
+ def _fetch_changes(self):
+ return self._fetch_objects(["cpos"])
+
def _fetch_songs(self):
return self._fetch_objects(["file"])
def _fetch_outputs(self):
return self._fetch_objects(["outputid"])
- def _fetch_changes(self):
- return self._fetch_objects(["cpos"])
+ def _fetch_plugins(self):
+ return self._fetch_objects(["plugin"])
def _fetch_command_list(self):
return self._wrap_iterator(self._read_command_list())