def _call_handler_filter(self, request, response, filter_chain): try: response = self._format_response(self._call_handler(request)) return self._call_next_filter(request, response, filter_chain) except pykka.ActorDeadError as e: logger.warning("Tried to communicate with dead actor.") raise exceptions.MpdSystemError(e)
def volume(context, change): """ *musicpd.org, playback section:* ``volume {CHANGE}`` Changes volume by amount ``CHANGE``. Note: ``volume`` is deprecated, use ``setvol`` instead. """ if change < -100 or change > 100: raise exceptions.MpdArgError("Invalid volume value") old_volume = context.core.mixer.get_volume().get() if old_volume is None: raise exceptions.MpdSystemError("problems setting volume") new_volume = min(max(0, old_volume + change), 100) success = context.core.mixer.set_volume(new_volume).get() if not success: raise exceptions.MpdSystemError("problems setting volume")
def disableoutput(context, outputid): """ *musicpd.org, audio output section:* ``disableoutput {ID}`` Turns an output off. """ if outputid == 0: success = context.core.mixer.set_mute(False).get() if not success: raise exceptions.MpdSystemError("problems disabling output") else: raise exceptions.MpdNoExistError("No such audio output")
def toggleoutput(context, outputid): """ *musicpd.org, audio output section:* ``toggleoutput {ID}`` Turns an output on or off, depending on the current state. """ if outputid == 0: mute_status = context.core.mixer.get_mute().get() success = context.core.mixer.set_mute(not mute_status) if not success: raise exceptions.MpdSystemError("problems toggling output") else: raise exceptions.MpdNoExistError("No such audio output")
def setvol(context, volume): """ *musicpd.org, playback section:* ``setvol {VOL}`` Sets volume to ``VOL``, the range of volume is 0-100. *Droid MPD:* - issues ``setvol 50`` without quotes around the argument. """ # NOTE: we use INT as clients can pass in +N etc. value = min(max(0, volume), 100) success = context.core.mixer.set_volume(value).get() if not success: raise exceptions.MpdSystemError("problems setting volume")