diff --git a/mopidy_pummeluff/actions/__init__.py b/mopidy_pummeluff/actions/__init__.py index 42a9a83..775fa77 100644 --- a/mopidy_pummeluff/actions/__init__.py +++ b/mopidy_pummeluff/actions/__init__.py @@ -9,12 +9,13 @@ __all__ = ( 'NextTrack', 'Shutdown', 'Tracklist', + 'ToggleShuffle', 'Volume', ) from .playback import PlayPause, Stop, PreviousTrack, NextTrack from .shutdown import Shutdown -from .tracklist import Tracklist +from .tracklist import Tracklist, ToggleShuffle from .volume import Volume ACTIONS = {} diff --git a/mopidy_pummeluff/actions/tracklist.py b/mopidy_pummeluff/actions/tracklist.py index 3cbb155..1108501 100644 --- a/mopidy_pummeluff/actions/tracklist.py +++ b/mopidy_pummeluff/actions/tracklist.py @@ -4,6 +4,7 @@ Python module for Mopidy Pummeluff tracklist tag. __all__ = ( 'Tracklist', + 'ToggleShuffle', ) from logging import getLogger @@ -39,3 +40,23 @@ class Tracklist(Action): core.tracklist.clear() core.tracklist.add(uris=uris) core.playback.play() + + +class ToggleShuffle(Action): + ''' + Toggles random mode + ''' + + @classmethod + def execute(cls, core): + ''' + Toggle random mode. + + :param mopidy.core.Core core: The mopidy core instance + ''' + + shuffle = core.tracklist.get_random().get() + shuffle = not shuffle + core.tracklist.set_random(shuffle) + + LOGGER.info('Toggling shuffle mode [%s]', shuffle)