Skip to content

Commit

Permalink
Refactor some code
Browse files Browse the repository at this point in the history
  • Loading branch information
pabera committed Jan 4, 2024
1 parent 5286b7d commit 1a3dd69
Show file tree
Hide file tree
Showing 6 changed files with 47 additions and 55 deletions.
7 changes: 3 additions & 4 deletions documentation/developers/status.md
Original file line number Diff line number Diff line change
Expand Up @@ -107,10 +107,9 @@ Topics marked _in progress_ are already in the process of implementation by comm
- [ ] Folder configuration (_in progress_)
- [ ] [Reference](https://github.com/MiczFlor/RPi-Jukebox-RFID/wiki/MANUAL#manage-playout-behaviour)
- [ ] Resume: Save and restore position (how interact with shuffle?)
- [ ] Single: Enable mpc single
- [ ] Shuffle: Enable mpc random (not shuffle)
- Rename to random, as this is mpc random
- [ ] Loop: Loop playlist
- [x] Repeat Playlist
- [x] Repeat Song
- [X] Shuffle

### MPD Player

Expand Down
74 changes: 34 additions & 40 deletions src/jukebox/components/playermpd/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -335,25 +335,6 @@ def seek(self, new_time):
with self.mpd_lock:
self.mpd_client.seekcur(new_time)

@plugs.tag
def shuffle(self, random):
# As long as we don't work with waiting lists (aka playlist), this implementation is ok!
self.mpd_retry_with_mutex(self.mpd_client.random, 1 if random else 0)

@plugs.tag
def set_shuffle(self, option='toggle'):
if option == 'toggle':
if self.mpd_status['random'] == '0':
self.shuffle(1)
else:
self.shuffle(0)
elif option == 'enable':
self.shuffle(1)
elif option == 'disable':
self.shuffle(0)
else:
logger.error(f"'{option}' does not exist for set_shuffle")

@plugs.tag
def rewind(self):
"""
Expand Down Expand Up @@ -391,8 +372,27 @@ def replay_if_stopped(self):
if self.mpd_status['state'] == 'stop':
self.play_folder(self.music_player_status['player_status']['last_played_folder'])

# Shuffle
def _shuffle(self, random):
# As long as we don't work with waiting lists (aka playlist), this implementation is ok!
self.mpd_retry_with_mutex(self.mpd_client.random, 1 if random else 0)

@plugs.tag
def repeatmode(self, mode):
def set_shuffle(self, option='toggle'):
if option == 'toggle':
if self.mpd_status['random'] == '0':
self._shuffle(1)
else:
self._shuffle(0)
elif option == 'enable':
self._shuffle(1)
elif option == 'disable':
self._shuffle(0)
else:
logger.error(f"'{option}' does not exist for set_shuffle")

# Repeat
def _repeatmode(self, mode):
if mode == 'repeat':
repeat = 1
single = 0
Expand All @@ -411,36 +411,30 @@ def repeatmode(self, mode):
def set_repeat(self, option='toggle'):
if option == 'toggle':
if self.mpd_status['repeat'] == '0':
self.repeatmode('repeat')
self._repeatmode('repeat')
elif self.mpd_status['repeat'] == '1' and self.mpd_status['single'] == '0':
self.repeatmode('single')
self._repeatmode('single')
else:
self.repeatmode(None)
self._repeatmode(None)
elif option == 'toggle_repeat':
self.toggle_repeat()
if self.mpd_status['repeat'] == '0':
self._repeatmode('repeat')
else:
self._repeatmode(None)
elif option == 'toggle_repeat_single':
self.toggle_repeat_single()
if self.mpd_status['single'] == '0':
self._repeatmode('single')
else:
self._repeatmode(None)
elif option == 'enable_repeat':
self.repeatmode('repeat')
self._repeatmode('repeat')
elif option == 'enable_repeat_single':
self.repeatmode('single')
self._repeatmode('single')
elif option == 'disable':
self.repeatmode(None)
self._repeatmode(None)
else:
logger.error(f"'{option}' does not exist for set_repeat")

def toggle_repeat(self):
if self.mpd_status['repeat'] == '0':
self.repeatmode('repeat')
else:
self.repeatmode(None)

def toggle_repeat_single(self):
if self.mpd_status['single'] == '0':
self.repeatmode('single')
else:
self.repeatmode(None)

@plugs.tag
def get_current_song(self, param):
return self.mpd_status
Expand Down
8 changes: 4 additions & 4 deletions src/webapp/public/locales/de/translation.json
Original file line number Diff line number Diff line change
Expand Up @@ -80,7 +80,7 @@
"label-disable": "Deaktivieren"
},
"volume": {
"title": "Volume steps"
"title": "Lautstärke Stufen"
}
},
"timers": {
Expand Down Expand Up @@ -170,9 +170,9 @@
"pause": "Pause",
"next_song": "Weiter",
"repeat": {
"activate": "Wiedergabeliste Wiederholen aktivieren",
"activate-single": "Song Wiederholen aktivieren",
"deactivate": "Wiederholen deaktivieren"
"enable": "Wiedergabeliste Wiederholen aktivieren",
"enable-single": "Song Wiederholen aktivieren",
"disable": "Wiederholen deaktivieren"
}
},
"cover": {
Expand Down
6 changes: 3 additions & 3 deletions src/webapp/public/locales/en/translation.json
Original file line number Diff line number Diff line change
Expand Up @@ -170,9 +170,9 @@
"pause": "Pause",
"next_song": "Skip to next track",
"repeat": {
"activate": "Activate repeat",
"activate-single": "Activate single repeat",
"deactivate": "Deactivate repeat"
"enable": "Enable Playlist repeat",
"enable-single": "Enable Song repeat",
"disable": "Disable repeat"
}
},
"cover": {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,6 @@ import React from 'react';

import CommandSelector from '../../command-selector';
import OptionsSelector from '../../options-selector';
import ChangeOnRfidScan from './rfidcards/change-on-rfid-scan-options';

import { getActionAndCommand } from '../../../utils';

Expand Down
6 changes: 3 additions & 3 deletions src/webapp/src/components/Player/controls.js
Original file line number Diff line number Diff line change
Expand Up @@ -59,9 +59,9 @@ const Controls = () => {
);

const labelRepeat = () => {
if (!isRepeat) return t('player.controls.repeat.activate');
if (isRepeat && !isSingle) return t('player.controls.repeat.activate-single');
if (isRepeat && isSingle) return t('player.controls.repeat.deactivate');
if (!isRepeat) return t('player.controls.repeat.enable');
if (isRepeat && !isSingle) return t('player.controls.repeat.enable-single');
if (isRepeat && isSingle) return t('player.controls.repeat.disable');
};

return (
Expand Down

0 comments on commit 1a3dd69

Please sign in to comment.