From 4b7caa6f03eede8e1a497dfe8e09796ad3cf18d3 Mon Sep 17 00:00:00 2001 From: GuardKenzie Date: Thu, 13 May 2021 01:38:23 +0000 Subject: [PATCH] Made the selected song follow the currently playing song if no playlist controls have been pressed for 30s. --- bin/miniplayer | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/bin/miniplayer b/bin/miniplayer index cb14ec2..9ce3d02 100755 --- a/bin/miniplayer +++ b/bin/miniplayer @@ -209,6 +209,9 @@ class Player: # Flag to check if any music has been played self.has_music_been_played = False + # A counter to check how long since playlist has moved + self.control_cycle = 0 + # Selected song in playlist self.selected_song = 0 @@ -375,6 +378,10 @@ class Player: if self.last_song != song: self.art_win.clear() + # Move selected_song to the currently playing one + if self.control_cycle == 0: + self.selected_song = int(song["pos"]) + try: self.album = song["album"] except KeyError: @@ -497,14 +504,17 @@ class Player: self.update_needed = True elif action == "select_up": + self.control_cycle = 1 self.selected_song -= 1 self.update_needed = True elif action == "select_down": + self.control_cycle = 1 self.selected_song += 1 self.update_needed = True elif action == "select": + self.control_cycle = 1 self.client.play(self.selected_song % len(self.client.playlist())) self.update_needed = True @@ -787,6 +797,10 @@ class Player: self.update_needed = False + # Update control_cycle once a second if it is not 0 + if i == 0 and self.control_cycle != 0: + self.control_cycle = (self.control_cycle + 1) % 30 + e = time.perf_counter() sleeptime = abs(1/FPS - (e-s))