Compare commits

...

2 Commits

Author SHA1 Message Date
Keith Edmunds
5d7b55a0ab Change track_ended_signal to signal_track_ended 2025-04-19 18:25:56 +01:00
Keith Edmunds
0124ca6018 Cleanup 2025-04-19 18:23:43 +01:00
5 changed files with 19 additions and 24 deletions

View File

@ -291,7 +291,7 @@ class MusicMusterSignals(QObject):
status_message_signal = pyqtSignal(str, int)
# Emitted when track ends or is manually faded
track_ended_signal = pyqtSignal(int)
signal_track_ended = pyqtSignal(int)
def __post_init__(self):
super().__init__()

View File

@ -168,7 +168,7 @@ class Music:
if helpers.file_is_unreadable(path):
log.error(f"play({path}): path not readable")
return None
return
self.player = vlc.MediaPlayer(self.vlc_instance, path)
if self.player is None:
@ -217,11 +217,12 @@ class Music:
# reset to zero within 200mS or so of starting play. This
# only happened since moving to Debian 12, which uses
# Pipewire for sound (which may be irrelevant).
# Update 19 April 2025: this may no longer be occuring
for _ in range(3):
current_volume = self.player.audio_get_volume()
if current_volume < volume:
self.player.audio_set_volume(volume)
log.debug(f"Reset from {volume=}")
log.debug(f"Volume reset from {volume=}")
sleep(0.1)
def signal_track_ended(self) -> None:
@ -236,7 +237,7 @@ class Music:
with lock:
if self.end_of_track_signalled:
return
self.signals.track_ended_signal.emit(self.playlist_id)
self.signals.signal_track_ended.emit(self.playlist_id)
self.end_of_track_signalled = True
def stop(self) -> None:
@ -253,6 +254,7 @@ class Music:
self.player.stop()
self.player.release()
self.player = None
self.signal_track_ended()
def track_end_event_handler(self, event: vlc.Event) -> None:
"""

View File

@ -144,8 +144,8 @@ class SignalMonitor:
self.signals.status_message_signal.connect(
partial(self.show_signal, "status_message_signal ")
)
self.signals.track_ended_signal.connect(
partial(self.show_signal, "track_ended_signal ")
self.signals.signal_track_ended.connect(
partial(self.show_signal, "signal_track_ended ")
)
def show_signal(self, name: str, *args: Any) -> None:
@ -1745,7 +1745,7 @@ class Window(QMainWindow):
self.signals.signal_next_track_changed.connect(self.signal_next_track_changed_handler)
self.signals.signal_set_next_track.connect(self.signal_set_next_track_handler)
self.signals.status_message_signal.connect(self.show_status_message)
self.signals.track_ended_signal.connect(self.end_of_track_actions)
self.signals.signal_track_ended.connect(self.end_of_track_actions)
self.timer10.timeout.connect(self.tick_10ms)
self.timer500.timeout.connect(self.tick_500ms)
@ -1760,6 +1760,8 @@ class Window(QMainWindow):
of the playlist.
"""
# TODO should be able to have the model handle row depending on
# how current_row_or_end is used
if self.current.selected_row_numbers:
return self.current.selected_row_numbers[0]
return self.current.base_model.rowCount()
@ -1818,7 +1820,7 @@ class Window(QMainWindow):
# @log_call
def end_of_track_actions(self) -> None:
"""
Called by track_ended_signal
Called by signal_track_ended
Actions required:
- Reset track_sequence objects
@ -1903,6 +1905,9 @@ class Window(QMainWindow):
def hide_played(self):
"""Toggle hide played tracks"""
# TODO: handle this with signals, but first decide how to better
# handle hide tracks / sections
if self.hide_played_tracks:
self.hide_played_tracks = False
self.current.base_model.hide_played_tracks(False)
@ -1940,7 +1945,7 @@ class Window(QMainWindow):
if ok:
self.signals.signal_insert_track.emit(
InsertTrack(
playlist_id=self.current.base_model.playlist_id,
playlist_id=self.current.playlist_id,
track_id=None,
note=dlg.textValue(),
)

View File

@ -100,7 +100,7 @@ class PlaylistModel(QAbstractTableModel):
self.signals.signal_playlist_selected_rows.connect(self.set_selected_rows)
self.signals.signal_set_next_row.connect(self.set_next_row)
self.signals.signal_track_started.connect(self.track_started)
self.signals.track_ended_signal.connect(self.previous_track_ended)
self.signals.signal_track_ended.connect(self.previous_track_ended)
self.signals.signal_next_track_changed.connect(self.signal_next_track_changed_handler)
# Populate self.playlist_rows
@ -983,7 +983,7 @@ class PlaylistModel(QAbstractTableModel):
# @log_call
def previous_track_ended(self, playlist_id: int) -> None:
"""
Notification from track_ended_signal that the previous track has ended.
Notification from signal_track_ended that the previous track has ended.
Actions required:
- sanity check

View File

@ -238,18 +238,6 @@ class PlaylistRow:
self.resume_marker = self.music.get_position()
self.music.fade(fade_seconds)
self.signals.track_ended_signal.emit(self.playlist_id)
self.end_of_track_signalled = True
def is_playing(self) -> bool:
"""
Return True if we're currently playing else False
"""
if self.start_time is None:
return False
return self.music.is_playing()
def play(self, position: float | None = None) -> None:
"""Play track"""
@ -368,7 +356,7 @@ class PlaylistRow:
"""
if (
not self.is_playing()
not self.music.is_playing()
or not self.fade_graph_start_updates
or not self.fade_graph
):