From 0980af25905a5c5a317100a667218e050a32b885 Mon Sep 17 00:00:00 2001 From: Simon de Bakker Date: Thu, 9 Jan 2014 18:47:26 +0100 Subject: [PATCH] Set initial mixer volume for all mixers --- mopidy/audio/actor.py | 10 ++++++++++ mopidy/config/__init__.py | 1 + mopidy/config/convert.py | 1 + mopidy/config/default.conf | 1 + 4 files changed, 13 insertions(+) diff --git a/mopidy/audio/actor.py b/mopidy/audio/actor.py index feeee820..5a023be8 100644 --- a/mopidy/audio/actor.py +++ b/mopidy/audio/actor.py @@ -184,6 +184,7 @@ class Audio(pykka.ThreadingActor): def _setup_mixer(self): mixer_desc = self._config['audio']['mixer'] track_desc = self._config['audio']['mixer_track'] + volume = self._config['audio']['mixer_volume'] if mixer_desc is None: logger.info('Not setting up audio mixer') @@ -192,6 +193,9 @@ class Audio(pykka.ThreadingActor): if mixer_desc == 'software': self._software_mixing = True logger.info('Audio mixer is using software mixing') + if volume is not None: + self.set_volume(volume) + logger.info('Audio mixer volume set to %d', volume) return try: @@ -223,11 +227,17 @@ class Audio(pykka.ThreadingActor): self._mixer_track = track self._mixer_scale = ( self._mixer_track.min_volume, self._mixer_track.max_volume) + logger.info( 'Audio mixer set to "%s" using track "%s"', str(mixer.get_factory().get_name()).decode('utf-8'), str(track.label).decode('utf-8')) + if volume is not None: + self.set_volume(volume) + logger.info('Audio mixer volume set to %d', volume) + + def _select_mixer_track(self, mixer, track_label): # Ignore tracks without volumes, then look for track with # label equal to the audio/mixer_track config value, otherwise fallback diff --git a/mopidy/config/__init__.py b/mopidy/config/__init__.py index d6400fad..2b740549 100644 --- a/mopidy/config/__init__.py +++ b/mopidy/config/__init__.py @@ -25,6 +25,7 @@ _loglevels_schema = LogLevelConfigSchema('loglevels') _audio_schema = ConfigSchema('audio') _audio_schema['mixer'] = String() _audio_schema['mixer_track'] = String(optional=True) +_audio_schema['mixer_volume'] = Integer(optional=True, minimum=0, maximum=100) _audio_schema['output'] = String() _audio_schema['visualizer'] = String(optional=True) diff --git a/mopidy/config/convert.py b/mopidy/config/convert.py index 7012b56e..a3ae5273 100644 --- a/mopidy/config/convert.py +++ b/mopidy/config/convert.py @@ -36,6 +36,7 @@ def convert(settings): helper('audio/mixer', 'MIXER') helper('audio/mixer_track', 'MIXER_TRACK') + helper('audio/mixer_volume', 'MIXER_VOLUME') helper('audio/output', 'OUTPUT') helper('proxy/hostname', 'SPOTIFY_PROXY_HOST') diff --git a/mopidy/config/default.conf b/mopidy/config/default.conf index 26b9f2e7..ae690de3 100644 --- a/mopidy/config/default.conf +++ b/mopidy/config/default.conf @@ -10,6 +10,7 @@ pykka = info [audio] mixer = software mixer_track = +mixer_volume = output = autoaudiosink visualizer =