Fade graph no longer lagging

This commit is contained in:
Keith Edmunds 2024-06-02 14:31:14 +01:00
parent 0361d25c7b
commit 4ec1c0e09c

View File

@ -289,11 +289,19 @@ class _Music:
self._adjust_by_ms(ms)
def play(self, path: str, position: Optional[float]) -> None:
def play(
self,
path: str,
start_time: dt.datetime,
position: Optional[float] = None,
) -> None:
"""
Start playing the track at path.
Log and return if path not found.
start_time ensures our version and our caller's version of
the start time is the same
"""
log.info(f"Music[{self.name}].play({path=}, {position=}")
@ -310,7 +318,7 @@ class _Music:
if position:
self.player.set_position(position)
self.start_dt = dt.datetime.now()
self.start_dt = start_time
# For as-yet unknown reasons. sometimes the volume gets
# reset to zero within 200mS or so of starting play. This
@ -457,10 +465,11 @@ class _TrackManager:
def play(self, position: Optional[float] = None) -> None:
"""Play track"""
self.player.play(self.path, position)
now = dt.datetime.now()
self.start_time = now
self.player.play(self.path, start_time=now, position=position)
self.end_time = self.start_time + dt.timedelta(milliseconds=self.duration)
# Calculate time fade_graph should start updating