diff --git a/app/helpers.py b/app/helpers.py index 9a25e17..98e4024 100644 --- a/app/helpers.py +++ b/app/helpers.py @@ -370,7 +370,7 @@ def show_OK(parent: QMainWindow, title: str, msg: str) -> None: QMessageBox.information(parent, title, msg, buttons=QMessageBox.StandardButton.Ok) -def show_warning(parent: QMainWindow, title: str, msg: str) -> None: +def show_warning(parent: Optional[QMainWindow], title: str, msg: str) -> None: """Display a warning to user""" QMessageBox.warning(parent, title, msg, buttons=QMessageBox.StandardButton.Cancel) diff --git a/app/musicmuster.py b/app/musicmuster.py index c116019..291cac8 100755 --- a/app/musicmuster.py +++ b/app/musicmuster.py @@ -1144,12 +1144,12 @@ class Window(QMainWindow, Ui_MainWindow): # Show closing volume graph if track_sequence.current.fade_graph: - log.error("issue223: play_next: set up fade_graph") + log.debug("issue223: play_next: set up fade_graph") track_sequence.current.fade_graph.GraphWidget = self.widgetFadeVolume track_sequence.current.fade_graph.clear() track_sequence.current.fade_graph.plot() else: - log.error("issue223: play_next: No fade_graph") + log.debug("issue223: play_next: No fade_graph") # Disable play next controls self.catch_return_key = True diff --git a/app/trackmanager.py b/app/trackmanager.py index f6dd3c7..4679909 100644 --- a/app/trackmanager.py +++ b/app/trackmanager.py @@ -31,6 +31,7 @@ from models import db, PlaylistRows, Tracks from helpers import ( file_is_unreadable, get_audio_segment, + show_warning, ) lock = threading.Lock() @@ -312,6 +313,10 @@ class _Music: return None media = self.VLC.media_new_path(path) + if media is None: + log.error(f"_Music:play: failed to create media ({path=})") + show_warning(None, "Error loading file", f"Cannot play file ({path})") + return self.player = media.player_new_from_media() if self.player: _ = self.player.play() @@ -334,6 +339,9 @@ class _Music: self.set_volume(Config.VLC_VOLUME_DEFAULT) log.error(f"Reset from {volume=}") sleep(0.1) + else: + log.error("_Music:play: failed to create media player") + show_warning(None, "Media player", "Unable to create media player") def set_position(self, position: float) -> None: """ @@ -497,19 +505,6 @@ class _TrackManager: self.player.adjust_by_ms(ms) - def move_to_intro_end(self, buffer: int = Config.PREVIEW_END_BUFFER_MS) -> None: - """ - Move play position to 'buffer' milliseconds before end of intro. - - If no intro defined, do nothing. - """ - - if self.intro is None: - return - - new_position = max(0, self.intro - Config.PREVIEW_END_BUFFER_MS) - self.player.adjust_by_ms(new_position - self.time_playing()) - def play(self, position: Optional[float] = None) -> None: """Play track""" @@ -519,7 +514,7 @@ class _TrackManager: self.player.play(self.path, start_time=now, position=position) - self.end_time = self.start_time + dt.timedelta(milliseconds=self.duration) + self.end_time = now + dt.timedelta(milliseconds=self.duration) # Calculate time fade_graph should start updating if self.fade_at: diff --git a/app/ui/main_window_ui.py b/app/ui/main_window_ui.py index 76f8e34..204c1b6 100644 --- a/app/ui/main_window_ui.py +++ b/app/ui/main_window_ui.py @@ -841,4 +841,4 @@ class Ui_MainWindow(object): from infotabs import InfoTabs -from pyqtgraph import PlotWidget +from pyqtgraph import PlotWidget # type: ignore