From 10faed82e4aef475141055b68a8d7ad01ba2fb3b Mon Sep 17 00:00:00 2001 From: j Date: Thu, 12 Oct 2023 11:38:34 +0100 Subject: [PATCH] fix lights in sync --- cdoseaplay/lights.py | 2 +- cdoseaplay/play.py | 7 +------ cdoseaplay/sync.py | 15 ++++++--------- cdoseaplay/utils.py | 5 +++++ 4 files changed, 13 insertions(+), 16 deletions(-) diff --git a/cdoseaplay/lights.py b/cdoseaplay/lights.py index 7e1743a..d457001 100755 --- a/cdoseaplay/lights.py +++ b/cdoseaplay/lights.py @@ -5,7 +5,6 @@ import os import time import ox -import lanbox import sacn from .pi import random @@ -103,6 +102,7 @@ def fade_to(target, duration): def switch(state): lights, duration = LIGHTS[state] if config.lanbox: + import lanbox lb = lanbox.Lanbox() #lb.getChannels(lights) #lb.fadeTo(lights, fade) diff --git a/cdoseaplay/play.py b/cdoseaplay/play.py index fdd0f92..ab8953f 100755 --- a/cdoseaplay/play.py +++ b/cdoseaplay/play.py @@ -4,7 +4,7 @@ from glob import glob import os import sys -from .utils import update_playlist, get_player, trigger_lights +from .utils import update_playlist, get_player, trigger_lights, get_path from .subtitleserver import SubtitleServer from . import config @@ -22,11 +22,6 @@ def q_binding(*args): player = None -def get_path(path): - if isinstance(path, bytes): - path = path.decode() - return path - def main(): global player diff --git a/cdoseaplay/sync.py b/cdoseaplay/sync.py index 40777bd..55de595 100755 --- a/cdoseaplay/sync.py +++ b/cdoseaplay/sync.py @@ -13,7 +13,8 @@ from queue import Queue from socketserver import UDPServer, ThreadingMixIn, BaseRequestHandler from threading import Thread -from .utils import update_playlist, get_player, trigger_lights +from .utils import update_playlist, get_player, trigger_lights, get_path +from . import config import logging logger = logging.getLogger('cdosea') @@ -55,12 +56,11 @@ class Player(Thread): current = '' playlist_items = 260 - def __init__(self, peer, player, playlist, prefix, lights=False): + def __init__(self, peer, player, playlist, prefix): self.peer = peer self.playlist = playlist self.prefix = prefix self.player = player - self.lights = lights self.queue = Queue() Thread.__init__(self) self.daemon = True @@ -84,8 +84,8 @@ class Player(Thread): def play(self): self.playing = True self.player.pause = False - if self.lights: - trigger_lights(self.player.path.decode()) + if config.lights and self.player.path: + trigger_lights(get_path(self.player.path)) self.player.wait_for_playback() self.player.pause = True self.playing = False @@ -128,7 +128,6 @@ def main(): parser.add_argument('--prefix', help='video location', default=prefix) parser.add_argument('--window', action='store_true', help='run in window', default=False) parser.add_argument('--debug', action='store_true', help='debug', default=False) - parser.add_argument('--lights', action='store_true', help='lights', default=False) args = parser.parse_args() if ':' in args.peer: @@ -143,13 +142,11 @@ def main(): logging.basicConfig(level=logging.DEBUG, format=log_format) base = os.path.dirname(os.path.abspath(__file__)) os.chdir(base) - if args.lights: - time.sleep(5) player = get_player(fullscreen=not args.window) server = ThreadingUDPServer(('0.0.0.0', args.port), Handler) - server.player = Player(peer, player, args.playlist, args.prefix, args.lights) + server.player = Player(peer, player, args.playlist, args.prefix) player.register_key_binding('q', server.q_binding) logger.debug("listen on %s...", args.port) diff --git a/cdoseaplay/utils.py b/cdoseaplay/utils.py index 12a6a5a..eb08753 100644 --- a/cdoseaplay/utils.py +++ b/cdoseaplay/utils.py @@ -92,3 +92,8 @@ def update_playlist(playlist, prefix, position=None, shift=True): def trigger_lights(path): cmd = ['python3', '-m', 'cdoseaplay.lights', path] subprocess.Popen(cmd) + +def get_path(path): + if isinstance(path, bytes): + path = path.decode() + return path