Merge pull request #1035 from jodal/feature/none-mixer-adjustments

core/mpd: None-mixer adjustments
This commit is contained in:
Thomas Adamcik 2015-03-13 23:31:20 +01:00
commit 980e04537b
5 changed files with 20 additions and 19 deletions

View File

@ -25,10 +25,11 @@ class MixerController(object):
def set_volume(self, volume):
"""Set the volume.
The volume is defined as an integer in range [0..100] or :class:`None`
if the mixer is disabled.
The volume is defined as an integer in range [0..100].
The volume scale is linear.
Returns :class:`True` if call is successful, otherwise :class:`False`.
"""
if self._mixer is None:
return False
@ -41,9 +42,7 @@ class MixerController(object):
:class:`True` if muted, :class:`False` unmuted, :class:`None` if
unknown.
"""
if self._mixer is None:
return False
else:
if self._mixer is not None:
return self._mixer.get_mute().get()
def set_mute(self, mute):

View File

@ -14,7 +14,7 @@ def disableoutput(context, outputid):
"""
if outputid == 0:
success = context.core.mixer.set_mute(False).get()
if success is False:
if not success:
raise exceptions.MpdSystemError('problems disabling output')
else:
raise exceptions.MpdNoExistError('No such audio output')
@ -31,7 +31,7 @@ def enableoutput(context, outputid):
"""
if outputid == 0:
success = context.core.mixer.set_mute(True).get()
if success is False:
if not success:
raise exceptions.MpdSystemError('problems enabling output')
else:
raise exceptions.MpdNoExistError('No such audio output')
@ -49,7 +49,7 @@ def toggleoutput(context, outputid):
if outputid == 0:
mute_status = context.core.mixer.get_mute().get()
success = context.core.mixer.set_mute(not mute_status)
if success is False:
if not success:
raise exceptions.MpdSystemError('problems toggling output')
else:
raise exceptions.MpdNoExistError('No such audio output')

View File

@ -397,7 +397,7 @@ def setvol(context, volume):
# 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 success is False:
if not success:
raise exceptions.MpdSystemError('problems setting volume')

View File

@ -42,17 +42,17 @@ class CoreNoneMixerTest(unittest.TestCase):
def setUp(self): # noqa: N802
self.core = core.Core(mixer=None, backends=[])
def test_get_volume_return_none(self):
def test_get_volume_return_none_because_it_is_unknown(self):
self.assertEqual(self.core.mixer.get_volume(), None)
def test_set_volume_return_false(self):
def test_set_volume_return_false_because_it_failed(self):
self.assertEqual(self.core.mixer.set_volume(30), False)
def test_get_set_mute_return_proper_state(self):
self.assertEqual(self.core.mixer.set_mute(False), False)
self.assertEqual(self.core.mixer.get_mute(), False)
def test_get_mute_return_none_because_it_is_unknown(self):
self.assertEqual(self.core.mixer.get_mute(), None)
def test_set_mute_return_false_because_it_failed(self):
self.assertEqual(self.core.mixer.set_mute(True), False)
self.assertEqual(self.core.mixer.get_mute(), False)
@mock.patch.object(mixer.MixerListener, 'send')

View File

@ -90,20 +90,22 @@ class AudioOutputHandlerNoneMixerTest(protocol.BaseTestCase):
enable_mixer = False
def test_enableoutput(self):
self.core.mixer.set_mute(False)
self.assertEqual(self.core.mixer.get_mute().get(), None)
self.send_request('enableoutput "0"')
self.assertInResponse(
'ACK [52@0] {enableoutput} problems enabling output')
self.assertEqual(self.core.mixer.get_mute().get(), False)
self.assertEqual(self.core.mixer.get_mute().get(), None)
def test_disableoutput(self):
self.core.mixer.set_mute(True)
self.assertEqual(self.core.mixer.get_mute().get(), None)
self.send_request('disableoutput "0"')
self.assertInResponse(
'ACK [52@0] {disableoutput} problems disabling output')
self.assertEqual(self.core.mixer.get_mute().get(), False)
self.assertEqual(self.core.mixer.get_mute().get(), None)
def test_outputs_when_unmuted(self):
self.core.mixer.set_mute(False)