From 9ca4dae16792f9c584b12943f70f025be8025fd4 Mon Sep 17 00:00:00 2001 From: Stein Magnus Jodal Date: Sun, 22 Jun 2014 11:28:39 +0200 Subject: [PATCH] mixer: Add mixer API --- docs/api/index.rst | 1 + docs/api/mixer.rst | 17 ++++++++++++++++ mopidy/mixer.py | 51 ++++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 69 insertions(+) create mode 100644 docs/api/mixer.rst create mode 100644 mopidy/mixer.py diff --git a/docs/api/index.rst b/docs/api/index.rst index 444b6ece..5aac825c 100644 --- a/docs/api/index.rst +++ b/docs/api/index.rst @@ -21,6 +21,7 @@ API reference backends core audio + mixer frontends commands ext diff --git a/docs/api/mixer.rst b/docs/api/mixer.rst new file mode 100644 index 00000000..5f4c2882 --- /dev/null +++ b/docs/api/mixer.rst @@ -0,0 +1,17 @@ +.. _mixer-api: + +*************** +Audio mixer API +*************** + +.. module:: mopidy.mixer + :synopsis: The audio mixer API + +.. autoclass:: mopidy.mixer.Mixer + :members: + + +Mixer implementations +===================== + +- TODO diff --git a/mopidy/mixer.py b/mopidy/mixer.py new file mode 100644 index 00000000..1adae665 --- /dev/null +++ b/mopidy/mixer.py @@ -0,0 +1,51 @@ +from __future__ import unicode_literals + + +class Mixer(object): + """Audio mixer API""" + + def get_volume(self): + """ + Get volume level of the mixer. + + Example values: + + 0: + Minimum volume, usually silent. + 100: + Max volume. + :class:`None`: + Volume is unknown. + + :rtype: int in range [0..100] or :class:`None` + """ + return None + + def set_volume(self, volume): + """ + Set volume level of the mixer. + + :param volume: Volume in the range [0..100] + :type volume: int + :rtype: :class:`True` if success, :class:`False` if failure + """ + return False + + def get_mute(self): + """ + Get mute status of the mixer. + + :rtype: :class:`True` if muted, :class:`False` if unmuted, + :class:`None` if unknown. + """ + return None + + def set_mute(self, muted): + """ + Mute or unmute the mixer. + + :param muted: :class:`True` to mute, :class:`False` to unmute + :type muted: bool + :rtype: :class:`True` if success, :class:`False` if failure + """ + return False