From f37c6f3e709739c7c10a36048748e6e86cdeffe8 Mon Sep 17 00:00:00 2001 From: Keith Edmunds Date: Sat, 12 Jun 2021 10:09:32 +0100 Subject: [PATCH] Improve metadata handling; fixes #20 --- app/music.py | 2 +- app/musicmuster.py | 43 +++++++++++++++++++++++++++---------------- 2 files changed, 28 insertions(+), 17 deletions(-) diff --git a/app/music.py b/app/music.py index 63fc13e..20d94a8 100644 --- a/app/music.py +++ b/app/music.py @@ -59,7 +59,7 @@ class Music: p = self.player self.player = None - DEBUG(f"music._fade() post-lock, {self.player=}", True) + DEBUG("music._fade() post-lock", True) fade_time = Config.FADE_TIME / 1000 steps = Config.FADE_STEPS diff --git a/app/musicmuster.py b/app/musicmuster.py index 300997c..77f5a6e 100755 --- a/app/musicmuster.py +++ b/app/musicmuster.py @@ -219,6 +219,23 @@ class Window(QMainWindow, Ui_MainWindow): self.actionPlay_next.setEnabled(True) self.statusbar.showMessage("Play controls: Enabled", 0) + def end_of_track_actions(self): + "Clean up after track played" + + # Clean up metadata + self.previous_track = self.current_track + self.current_track_playlist_tab.play_stopped() + self.current_track_playlist_tab.clear_current() + self.current_track_playlist_tab = None + self.current_track = None + self.playing = False + + # Clean up display + self.label_end_timer.setText("00:00") + self.frame_silent.setStyleSheet("") + self.frame_fade.setStyleSheet("") + self.update_headers() + def export_playlist_tab(self): "Export the current playlist to an m3u file" @@ -260,12 +277,17 @@ class Window(QMainWindow, Ui_MainWindow): def fade(self): "Fade currently playing track" + DEBUG("musicmuster:fade()", True) + if not self.current_track: return + # Set self.playing to False so that tick() doesn't see + # player=None and kick off end-of-track actions + self.playing = False self.enable_play_next_controls() - self.previous_track = self.current_track self.previous_track_position = self.music.fade() + self.end_of_track_actions() def insert_note(self): "Add non-track row to playlist" @@ -525,11 +547,11 @@ class Window(QMainWindow, Ui_MainWindow): else: self.music.stop() DEBUG("musicmuster.stop_playing(): stopping music", True) - self.current_track_playlist_tab.clear_current() - # Shuffle tracks along - self.previous_track = self.current_track + self.end_of_track_actions() + # Release player + self.music.stop() self.update_headers() def test_function(self): @@ -619,18 +641,7 @@ class Window(QMainWindow, Ui_MainWindow): else: if self.playing: - self.label_end_timer.setText("00:00") - self.frame_silent.setStyleSheet("") - self.frame_fade.setStyleSheet("") - self.current_track_playlist_tab.play_stopped() - self.playing = False - self.previous_track = self.current_track - self.current_track = None - self.current_track_playlist_tab = None - self.previous_track_position = 0 - self.update_headers() - # Release player - self.music.stop() + self.stop_playing() def update_headers(self): "Update last / current / next track headers"