Ejemplo n.º 1
0
 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)
Ejemplo n.º 2
0
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")
Ejemplo n.º 3
0
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")
Ejemplo n.º 4
0
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")
Ejemplo n.º 5
0
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")