Improve metadata handling; fixes #20
This commit is contained in:
parent
f4efeac36a
commit
f37c6f3e70
@ -59,7 +59,7 @@ class Music:
|
|||||||
p = self.player
|
p = self.player
|
||||||
self.player = None
|
self.player = None
|
||||||
|
|
||||||
DEBUG(f"music._fade() post-lock, {self.player=}", True)
|
DEBUG("music._fade() post-lock", True)
|
||||||
|
|
||||||
fade_time = Config.FADE_TIME / 1000
|
fade_time = Config.FADE_TIME / 1000
|
||||||
steps = Config.FADE_STEPS
|
steps = Config.FADE_STEPS
|
||||||
|
|||||||
@ -219,6 +219,23 @@ class Window(QMainWindow, Ui_MainWindow):
|
|||||||
self.actionPlay_next.setEnabled(True)
|
self.actionPlay_next.setEnabled(True)
|
||||||
self.statusbar.showMessage("Play controls: Enabled", 0)
|
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):
|
def export_playlist_tab(self):
|
||||||
"Export the current playlist to an m3u file"
|
"Export the current playlist to an m3u file"
|
||||||
|
|
||||||
@ -260,12 +277,17 @@ class Window(QMainWindow, Ui_MainWindow):
|
|||||||
def fade(self):
|
def fade(self):
|
||||||
"Fade currently playing track"
|
"Fade currently playing track"
|
||||||
|
|
||||||
|
DEBUG("musicmuster:fade()", True)
|
||||||
|
|
||||||
if not self.current_track:
|
if not self.current_track:
|
||||||
return
|
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.enable_play_next_controls()
|
||||||
self.previous_track = self.current_track
|
|
||||||
self.previous_track_position = self.music.fade()
|
self.previous_track_position = self.music.fade()
|
||||||
|
self.end_of_track_actions()
|
||||||
|
|
||||||
def insert_note(self):
|
def insert_note(self):
|
||||||
"Add non-track row to playlist"
|
"Add non-track row to playlist"
|
||||||
@ -525,11 +547,11 @@ class Window(QMainWindow, Ui_MainWindow):
|
|||||||
else:
|
else:
|
||||||
self.music.stop()
|
self.music.stop()
|
||||||
DEBUG("musicmuster.stop_playing(): stopping music", True)
|
DEBUG("musicmuster.stop_playing(): stopping music", True)
|
||||||
self.current_track_playlist_tab.clear_current()
|
|
||||||
|
|
||||||
# Shuffle tracks along
|
self.end_of_track_actions()
|
||||||
self.previous_track = self.current_track
|
|
||||||
|
|
||||||
|
# Release player
|
||||||
|
self.music.stop()
|
||||||
self.update_headers()
|
self.update_headers()
|
||||||
|
|
||||||
def test_function(self):
|
def test_function(self):
|
||||||
@ -619,18 +641,7 @@ class Window(QMainWindow, Ui_MainWindow):
|
|||||||
|
|
||||||
else:
|
else:
|
||||||
if self.playing:
|
if self.playing:
|
||||||
self.label_end_timer.setText("00:00")
|
self.stop_playing()
|
||||||
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()
|
|
||||||
|
|
||||||
def update_headers(self):
|
def update_headers(self):
|
||||||
"Update last / current / next track headers"
|
"Update last / current / next track headers"
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user