Compare commits
No commits in common. "2394327d386ae4f95e0cc532e95eb6e58efd6485" and "68a253bc7c1c7f9d32336def1c8868f484a4cbb0" have entirely different histories.
2394327d38
...
68a253bc7c
@ -370,7 +370,7 @@ def show_OK(parent: QMainWindow, title: str, msg: str) -> None:
|
|||||||
QMessageBox.information(parent, title, msg, buttons=QMessageBox.StandardButton.Ok)
|
QMessageBox.information(parent, title, msg, buttons=QMessageBox.StandardButton.Ok)
|
||||||
|
|
||||||
|
|
||||||
def show_warning(parent: Optional[QMainWindow], title: str, msg: str) -> None:
|
def show_warning(parent: QMainWindow, title: str, msg: str) -> None:
|
||||||
"""Display a warning to user"""
|
"""Display a warning to user"""
|
||||||
|
|
||||||
QMessageBox.warning(parent, title, msg, buttons=QMessageBox.StandardButton.Cancel)
|
QMessageBox.warning(parent, title, msg, buttons=QMessageBox.StandardButton.Cancel)
|
||||||
|
|||||||
@ -297,13 +297,12 @@ class Window(QMainWindow, Ui_MainWindow):
|
|||||||
self.signals = MusicMusterSignals()
|
self.signals = MusicMusterSignals()
|
||||||
self.connect_signals_slots()
|
self.connect_signals_slots()
|
||||||
self.catch_return_key = False
|
self.catch_return_key = False
|
||||||
|
self.load_last_playlists()
|
||||||
|
|
||||||
# Set up shortcut key for instant logging from keyboard
|
# Set up shortcut key for instant logging from keyboard
|
||||||
self.action_quicklog = QShortcut(QKeySequence("Ctrl+L"), self)
|
self.action_quicklog = QShortcut(QKeySequence("Ctrl+L"), self)
|
||||||
self.action_quicklog.activated.connect(self.quicklog)
|
self.action_quicklog.activated.connect(self.quicklog)
|
||||||
|
|
||||||
self.load_last_playlists()
|
|
||||||
|
|
||||||
def about(self) -> None:
|
def about(self) -> None:
|
||||||
"""Get git tag and database name"""
|
"""Get git tag and database name"""
|
||||||
|
|
||||||
@ -1145,12 +1144,12 @@ class Window(QMainWindow, Ui_MainWindow):
|
|||||||
|
|
||||||
# Show closing volume graph
|
# Show closing volume graph
|
||||||
if track_sequence.current.fade_graph:
|
if track_sequence.current.fade_graph:
|
||||||
log.debug("issue223: play_next: set up fade_graph")
|
log.error("issue223: play_next: set up fade_graph")
|
||||||
track_sequence.current.fade_graph.GraphWidget = self.widgetFadeVolume
|
track_sequence.current.fade_graph.GraphWidget = self.widgetFadeVolume
|
||||||
track_sequence.current.fade_graph.clear()
|
track_sequence.current.fade_graph.clear()
|
||||||
track_sequence.current.fade_graph.plot()
|
track_sequence.current.fade_graph.plot()
|
||||||
else:
|
else:
|
||||||
log.debug("issue223: play_next: No fade_graph")
|
log.error("issue223: play_next: No fade_graph")
|
||||||
|
|
||||||
# Disable play next controls
|
# Disable play next controls
|
||||||
self.catch_return_key = True
|
self.catch_return_key = True
|
||||||
|
|||||||
@ -31,7 +31,6 @@ from models import db, PlaylistRows, Tracks
|
|||||||
from helpers import (
|
from helpers import (
|
||||||
file_is_unreadable,
|
file_is_unreadable,
|
||||||
get_audio_segment,
|
get_audio_segment,
|
||||||
show_warning,
|
|
||||||
)
|
)
|
||||||
|
|
||||||
lock = threading.Lock()
|
lock = threading.Lock()
|
||||||
@ -313,10 +312,6 @@ class _Music:
|
|||||||
return None
|
return None
|
||||||
|
|
||||||
media = self.VLC.media_new_path(path)
|
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()
|
self.player = media.player_new_from_media()
|
||||||
if self.player:
|
if self.player:
|
||||||
_ = self.player.play()
|
_ = self.player.play()
|
||||||
@ -339,9 +334,6 @@ class _Music:
|
|||||||
self.set_volume(Config.VLC_VOLUME_DEFAULT)
|
self.set_volume(Config.VLC_VOLUME_DEFAULT)
|
||||||
log.error(f"Reset from {volume=}")
|
log.error(f"Reset from {volume=}")
|
||||||
sleep(0.1)
|
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:
|
def set_position(self, position: float) -> None:
|
||||||
"""
|
"""
|
||||||
@ -505,6 +497,19 @@ class _TrackManager:
|
|||||||
|
|
||||||
self.player.adjust_by_ms(ms)
|
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:
|
def play(self, position: Optional[float] = None) -> None:
|
||||||
"""Play track"""
|
"""Play track"""
|
||||||
|
|
||||||
@ -514,7 +519,7 @@ class _TrackManager:
|
|||||||
|
|
||||||
self.player.play(self.path, start_time=now, position=position)
|
self.player.play(self.path, start_time=now, position=position)
|
||||||
|
|
||||||
self.end_time = now + dt.timedelta(milliseconds=self.duration)
|
self.end_time = self.start_time + dt.timedelta(milliseconds=self.duration)
|
||||||
|
|
||||||
# Calculate time fade_graph should start updating
|
# Calculate time fade_graph should start updating
|
||||||
if self.fade_at:
|
if self.fade_at:
|
||||||
@ -537,8 +542,6 @@ class _TrackManager:
|
|||||||
Send end of track signal unless we are a preview player
|
Send end of track signal unless we are a preview player
|
||||||
"""
|
"""
|
||||||
|
|
||||||
self.signals.track_ended_signal.emit()
|
|
||||||
|
|
||||||
def stop(self, fade_seconds: int = 0) -> None:
|
def stop(self, fade_seconds: int = 0) -> None:
|
||||||
"""
|
"""
|
||||||
Stop this track playing
|
Stop this track playing
|
||||||
|
|||||||
@ -841,4 +841,4 @@ class Ui_MainWindow(object):
|
|||||||
|
|
||||||
|
|
||||||
from infotabs import InfoTabs
|
from infotabs import InfoTabs
|
||||||
from pyqtgraph import PlotWidget # type: ignore
|
from pyqtgraph import PlotWidget
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user