This commit is contained in:
Keith Edmunds 2024-04-27 18:47:06 +01:00
parent 4c638ab608
commit ebf62fe161
3 changed files with 15 additions and 11 deletions

View File

@ -111,6 +111,7 @@ class PlaylistTrack:
self.end_time: Optional[datetime] = None self.end_time: Optional[datetime] = None
self.fade_at: Optional[int] = None self.fade_at: Optional[int] = None
self.fade_graph: Optional[FadeCurve] = None self.fade_graph: Optional[FadeCurve] = None
self.fade_graph_start_updates: Optional[datetime] = None
self.fade_length: Optional[int] = None self.fade_length: Optional[int] = None
self.path: Optional[str] = None self.path: Optional[str] = None
self.playlist_id: Optional[int] = None self.playlist_id: Optional[int] = None
@ -177,10 +178,16 @@ class PlaylistTrack:
Called when track starts playing Called when track starts playing
""" """
self.start_time = datetime.now() now = datetime.now()
self.start_time = now
if self.duration: if self.duration:
self.end_time = self.start_time + timedelta(milliseconds=self.duration) self.end_time = self.start_time + timedelta(milliseconds=self.duration)
# Calculate time fade_graph should start updating
if self.fade_at:
update_graph_at_ms = max(0, self.fade_at - Config.FADE_CURVE_MS_BEFORE_FADE - 1)
self.fade_graph_start_updates = now + timedelta(milliseconds=update_graph_at_ms)
class AddFadeCurve(QObject): class AddFadeCurve(QObject):
""" """

View File

@ -1110,10 +1110,6 @@ class Window(QMainWindow, Ui_MainWindow):
log.error("musicmuster.play_next(): no path for next track") log.error("musicmuster.play_next(): no path for next track")
return return
# TODO temporary measure to help isolate issue #223
self.timer10.stop()
self.show_status_message("10ms timer disabled", 0)
# If there's currently a track playing, fade it. # If there's currently a track playing, fade it.
self.stop_playing(fade=True) self.stop_playing(fade=True)
@ -1498,6 +1494,12 @@ class Window(QMainWindow, Ui_MainWindow):
""" """
# Update volume fade curve # Update volume fade curve
if (
track_sequence.now.fade_graph_start_updates is None
or track_sequence.now.fade_graph_start_updates > datetime.now()
):
return
if ( if (
track_sequence.now.track_id track_sequence.now.track_id
and track_sequence.now.fade_graph and track_sequence.now.fade_graph
@ -1549,11 +1551,6 @@ class Window(QMainWindow, Ui_MainWindow):
time_to_fade = track_sequence.now.fade_at - playtime time_to_fade = track_sequence.now.fade_at - playtime
time_to_silence = track_sequence.now.silence_at - playtime time_to_silence = track_sequence.now.silence_at - playtime
# TODO working on issue #223
if playtime > 10000 and not self.timer10.isActive():
self.timer10.start(10)
self.show_status_message("10ms timer enabled", 0)
# Elapsed time # Elapsed time
self.label_elapsed_timer.setText( self.label_elapsed_timer.setText(
helpers.ms_to_mmss(playtime) helpers.ms_to_mmss(playtime)

View File

@ -1205,7 +1205,7 @@ class PlaylistModel(QAbstractTableModel):
self.signals.next_track_changed_signal.emit() self.signals.next_track_changed_signal.emit()
return return
# Update playing_track # Update track_sequence
with Session() as session: with Session() as session:
track_sequence.next = PlaylistTrack() track_sequence.next = PlaylistTrack()
try: try: