fix lights in sync
This commit is contained in:
parent
d0f0184deb
commit
10faed82e4
4 changed files with 13 additions and 16 deletions
|
@ -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)
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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
|
||||
|
|
Loading…
Reference in a new issue