From d62e2fe77908553b8fcbdff571ad06f2f8bc9b94 Mon Sep 17 00:00:00 2001 From: Erica Date: Tue, 4 Oct 2022 20:42:10 +0000 Subject: [PATCH 1/3] Removed repeat flag --- bin/miniplayer | 9 --------- 1 file changed, 9 deletions(-) diff --git a/bin/miniplayer b/bin/miniplayer index 3b8c397..66153cc 100755 --- a/bin/miniplayer +++ b/bin/miniplayer @@ -227,15 +227,6 @@ class Player: self.last_song = None - # Set repeat flag - current_status = self.client.status() - - if "repeat" in current_status.keys(): - self.repeat = current_status["repeat"] - - else: - self.repeat = 0 - # Album art only flag self.album_art_only = player_config.getboolean("album_art_only", False) From 4012271ccc2b4475d1aa7cd1c49807848b407bea Mon Sep 17 00:00:00 2001 From: Erica Date: Tue, 4 Oct 2022 20:43:05 +0000 Subject: [PATCH 2/3] Updated repeat keybind to check MPD repeat state when issued and toggle --- bin/miniplayer | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/bin/miniplayer b/bin/miniplayer index 66153cc..0a3d0d0 100755 --- a/bin/miniplayer +++ b/bin/miniplayer @@ -743,9 +743,19 @@ class Player: self.update_needed = True elif action == "repeat": - self.repeat = int(not self.repeat) - self.client.repeat(self.repeat) - self.update_needed = True + # Find repeat state + repeat = None + for key, value in self.client.status().items(): + if key == "repeat": + try: + repeat = int(value) + except ValueError: + break + + # Update repeat state if it exists + if repeat is not None: + self.client.repeat(int(not repeat)) + self.update_needed = True elif action == "shuffle": self.client.shuffle() From 9f64a610c5dc8f004624174d0d0d6db82cfe1fff Mon Sep 17 00:00:00 2001 From: Erica Date: Tue, 4 Oct 2022 20:44:21 +0000 Subject: [PATCH 3/3] Check MPD's repeat state every time when drawing repeat flag --- bin/miniplayer | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/bin/miniplayer b/bin/miniplayer index 0a3d0d0..48ff7ec 100755 --- a/bin/miniplayer +++ b/bin/miniplayer @@ -817,7 +817,17 @@ class Player: ) # Repeat string - if self.repeat: + repeat_state = None + for key, state in self.client.status().items(): + # Check if we got repeat + if key == "repeat": + try: + # Cast repeat state to int + repeat_state = int(state) + except ValueError: + break + + if repeat_state: repeat_string = "r" self.art_win.addstr( self.text_start + 3, 0,