Merge branch 'dev'
This commit is contained in:
commit
1a5bd638c0
@ -1123,33 +1123,15 @@ class Window(QMainWindow, Ui_MainWindow):
|
|||||||
|
|
||||||
# Restore volume if -3dB active
|
# Restore volume if -3dB active
|
||||||
if self.btnDrop3db.isChecked():
|
if self.btnDrop3db.isChecked():
|
||||||
|
log.debug("Reset -3db button")
|
||||||
self.btnDrop3db.setChecked(False)
|
self.btnDrop3db.setChecked(False)
|
||||||
|
|
||||||
# Show closing volume graph
|
|
||||||
if track_sequence.now.fade_graph:
|
|
||||||
track_sequence.now.fade_graph.plot()
|
|
||||||
else:
|
|
||||||
log.error("No fade_graph")
|
|
||||||
|
|
||||||
# Play (new) current track
|
# Play (new) current track
|
||||||
if not track_sequence.now.path:
|
if not track_sequence.now.path:
|
||||||
log.error("No path for next track")
|
log.error("No path for next track")
|
||||||
return
|
return
|
||||||
self.music.play(track_sequence.now.path, position)
|
self.music.play(track_sequence.now.path, position)
|
||||||
|
|
||||||
# Note that track is playing
|
|
||||||
track_sequence.now.start()
|
|
||||||
self.playing = True
|
|
||||||
|
|
||||||
# Disable play next controls
|
|
||||||
self.catch_return_key = True
|
|
||||||
|
|
||||||
# Notify model
|
|
||||||
self.active_proxy_model().current_track_started()
|
|
||||||
|
|
||||||
# Update headers
|
|
||||||
self.update_headers()
|
|
||||||
|
|
||||||
# Ensure 100% volume
|
# Ensure 100% volume
|
||||||
# For as-yet unknown reasons. sometimes the volume gets
|
# For as-yet unknown reasons. sometimes the volume gets
|
||||||
# reset to zero within 200mS or so of starting play. This
|
# reset to zero within 200mS or so of starting play. This
|
||||||
@ -1164,6 +1146,36 @@ class Window(QMainWindow, Ui_MainWindow):
|
|||||||
break
|
break
|
||||||
sleep(0.1)
|
sleep(0.1)
|
||||||
|
|
||||||
|
# TODO: remove sleep() calls - used to try to isolate bug #223
|
||||||
|
# Show closing volume graph
|
||||||
|
sleep(1)
|
||||||
|
if track_sequence.now.fade_graph:
|
||||||
|
track_sequence.now.fade_graph.plot()
|
||||||
|
else:
|
||||||
|
log.error("No fade_graph")
|
||||||
|
|
||||||
|
# Note that track is playing
|
||||||
|
sleep(1)
|
||||||
|
log.error("set track_sequence")
|
||||||
|
track_sequence.now.start()
|
||||||
|
self.playing = True
|
||||||
|
|
||||||
|
# Disable play next controls
|
||||||
|
sleep(1)
|
||||||
|
log.error("catch return key")
|
||||||
|
self.catch_return_key = True
|
||||||
|
self.show_status_message("Play controls: Disabled", 0)
|
||||||
|
|
||||||
|
# Notify model
|
||||||
|
sleep(1)
|
||||||
|
log.error("active_proxy_model().current_track_started()")
|
||||||
|
self.active_proxy_model().current_track_started()
|
||||||
|
|
||||||
|
# Update headers
|
||||||
|
sleep(1)
|
||||||
|
log.error("update headers")
|
||||||
|
self.update_headers()
|
||||||
|
|
||||||
def preview(self) -> None:
|
def preview(self) -> None:
|
||||||
"""
|
"""
|
||||||
Preview selected or next track. We use a different mechanism to
|
Preview selected or next track. We use a different mechanism to
|
||||||
@ -1477,6 +1489,7 @@ class Window(QMainWindow, Ui_MainWindow):
|
|||||||
|
|
||||||
# Enable controls
|
# Enable controls
|
||||||
self.catch_return_key = False
|
self.catch_return_key = False
|
||||||
|
self.show_status_message("Play controls: Enabled", 0)
|
||||||
|
|
||||||
def tab_change(self):
|
def tab_change(self):
|
||||||
"""Called when active tab changed"""
|
"""Called when active tab changed"""
|
||||||
@ -1557,6 +1570,7 @@ class Window(QMainWindow, Ui_MainWindow):
|
|||||||
if self.frame_silent.styleSheet() != css_silence:
|
if self.frame_silent.styleSheet() != css_silence:
|
||||||
self.frame_silent.setStyleSheet(css_silence)
|
self.frame_silent.setStyleSheet(css_silence)
|
||||||
self.catch_return_key = False
|
self.catch_return_key = False
|
||||||
|
self.show_status_message("Play controls: Enabled", 0)
|
||||||
# Set warning colour on time to silence box when fade starts
|
# Set warning colour on time to silence box when fade starts
|
||||||
elif time_to_fade <= 500:
|
elif time_to_fade <= 500:
|
||||||
css_fade = f"background: {Config.COLOUR_WARNING_TIMER}"
|
css_fade = f"background: {Config.COLOUR_WARNING_TIMER}"
|
||||||
@ -1569,6 +1583,7 @@ class Window(QMainWindow, Ui_MainWindow):
|
|||||||
f"background: {Config.COLOUR_WARNING_TIMER}"
|
f"background: {Config.COLOUR_WARNING_TIMER}"
|
||||||
)
|
)
|
||||||
self.catch_return_key = False
|
self.catch_return_key = False
|
||||||
|
self.show_status_message("Play controls: Enabled", 0)
|
||||||
else:
|
else:
|
||||||
self.frame_silent.setStyleSheet("")
|
self.frame_silent.setStyleSheet("")
|
||||||
self.frame_fade.setStyleSheet("")
|
self.frame_fade.setStyleSheet("")
|
||||||
|
|||||||
@ -160,7 +160,7 @@ class PipeClient():
|
|||||||
|
|
||||||
def _write_pipe_open(self) -> None:
|
def _write_pipe_open(self) -> None:
|
||||||
"""Open _write_pipe."""
|
"""Open _write_pipe."""
|
||||||
self._write_pipe = open(WRITE_NAME, 'w', encoding='ascii')
|
self._write_pipe = open(WRITE_NAME, 'w')
|
||||||
|
|
||||||
def _read_thread_start(self) -> None:
|
def _read_thread_start(self) -> None:
|
||||||
"""Start read_pipe thread."""
|
"""Start read_pipe thread."""
|
||||||
@ -204,7 +204,7 @@ class PipeClient():
|
|||||||
"""Read FIFO in worker thread."""
|
"""Read FIFO in worker thread."""
|
||||||
# Thread will wait at this read until it connects.
|
# Thread will wait at this read until it connects.
|
||||||
# Connection should occur as soon as _write_pipe has connected.
|
# Connection should occur as soon as _write_pipe has connected.
|
||||||
with open(READ_NAME, 'r', encoding='ascii') as read_pipe:
|
with open(READ_NAME, 'r') as read_pipe:
|
||||||
message = ''
|
message = ''
|
||||||
pipe_ok = True
|
pipe_ok = True
|
||||||
while pipe_ok:
|
while pipe_ok:
|
||||||
|
|||||||
@ -2,11 +2,10 @@
|
|||||||
from __future__ import annotations
|
from __future__ import annotations
|
||||||
import obsws_python as obs # type: ignore
|
import obsws_python as obs # type: ignore
|
||||||
import re
|
import re
|
||||||
from dataclasses import dataclass
|
|
||||||
from datetime import datetime, timedelta
|
from datetime import datetime, timedelta
|
||||||
from enum import auto, Enum
|
from enum import auto, Enum
|
||||||
from operator import attrgetter
|
from operator import attrgetter
|
||||||
from pprint import pprint
|
from time import sleep
|
||||||
from random import shuffle
|
from random import shuffle
|
||||||
from typing import List, Optional
|
from typing import List, Optional
|
||||||
|
|
||||||
@ -273,14 +272,21 @@ class PlaylistModel(QAbstractTableModel):
|
|||||||
)
|
)
|
||||||
return
|
return
|
||||||
|
|
||||||
|
# TODO: remove sleep/log calls, used to debug #223
|
||||||
# Check for OBS scene change
|
# Check for OBS scene change
|
||||||
|
sleep(1)
|
||||||
|
log.error("Call OBS scene change")
|
||||||
self.obs_scene_change(row_number)
|
self.obs_scene_change(row_number)
|
||||||
|
|
||||||
with Session() as session:
|
with Session() as session:
|
||||||
# Update Playdates in database
|
# Update Playdates in database
|
||||||
|
sleep(1)
|
||||||
|
log.error("update playdates")
|
||||||
Playdates(session, track_sequence.now.track_id)
|
Playdates(session, track_sequence.now.track_id)
|
||||||
|
|
||||||
# Mark track as played in playlist
|
# Mark track as played in playlist
|
||||||
|
sleep(1)
|
||||||
|
log.error("Mark track as played")
|
||||||
plr = session.get(PlaylistRows, track_sequence.now.plr_id)
|
plr = session.get(PlaylistRows, track_sequence.now.plr_id)
|
||||||
if plr:
|
if plr:
|
||||||
plr.played = True
|
plr.played = True
|
||||||
@ -289,6 +295,8 @@ class PlaylistModel(QAbstractTableModel):
|
|||||||
log.error(f"Can't retrieve plr, {track_sequence.now.plr_id=}")
|
log.error(f"Can't retrieve plr, {track_sequence.now.plr_id=}")
|
||||||
|
|
||||||
# Update track times
|
# Update track times
|
||||||
|
sleep(1)
|
||||||
|
log.error("Update track times")
|
||||||
if prd:
|
if prd:
|
||||||
prd.start_time = track_sequence.now.start_time
|
prd.start_time = track_sequence.now.start_time
|
||||||
prd.end_time = track_sequence.now.end_time
|
prd.end_time = track_sequence.now.end_time
|
||||||
@ -305,6 +313,8 @@ class PlaylistModel(QAbstractTableModel):
|
|||||||
|
|
||||||
# Find next track
|
# Find next track
|
||||||
# Get all unplayed track rows
|
# Get all unplayed track rows
|
||||||
|
sleep(1)
|
||||||
|
log.error("Find next track")
|
||||||
next_row = None
|
next_row = None
|
||||||
unplayed_rows = self.get_unplayed_rows()
|
unplayed_rows = self.get_unplayed_rows()
|
||||||
if unplayed_rows:
|
if unplayed_rows:
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user