From 1619ecbd56d634c648fb4372e416ec5b4e5849b4 Mon Sep 17 00:00:00 2001 From: Stein Magnus Jodal Date: Mon, 8 Mar 2010 20:22:17 +0100 Subject: [PATCH] Add mixer for OS X which uses osascript --- mopidy/mixers/osa.py | 15 +++++++++++++++ mopidy/settings/default.py | 6 ++++++ 2 files changed, 21 insertions(+) create mode 100644 mopidy/mixers/osa.py diff --git a/mopidy/mixers/osa.py b/mopidy/mixers/osa.py new file mode 100644 index 00000000..a10dfe42 --- /dev/null +++ b/mopidy/mixers/osa.py @@ -0,0 +1,15 @@ +from subprocess import Popen, PIPE + +from mopidy.mixers import BaseMixer + +class OsaMixer(BaseMixer): + def _get_volume(self): + try: + return int(Popen( + ['osascript', '-e', 'output volume of (get volume settings)'], + stdout=PIPE).communicate()[0]) + except ValueError: + return None + + def _set_volume(self, volume): + Popen(['osascript', '-e', 'set volume output volume %d' % volume]) diff --git a/mopidy/settings/default.py b/mopidy/settings/default.py index 65db36a3..96d5cd23 100644 --- a/mopidy/settings/default.py +++ b/mopidy/settings/default.py @@ -31,12 +31,18 @@ CONSOLE_LOG_FORMAT = u'%(levelname)-8s %(asctime)s [%(threadName)s] %(name)s\n #: #: MIXER = u'mopidy.mixers.alsa.AlsaMixer' #: +#: Default on OS X:: +#: +#: MIXER = u'mopidy.mixers.osa.OsaMixer' +#: #: Default on other operating systems:: #: #: MIXER = u'mopidy.mixers.dummy.DummyMixer' MIXER = u'mopidy.mixers.dummy.DummyMixer' if sys.platform == 'linux2': MIXER = u'mopidy.mixers.alsa.AlsaMixer' +elif sys.platform == 'darwin': + MIXER = u'mopidy.mixers.osa.OsaMixer' #: Which address Mopidy should bind to. Examples: #: