#!/usr/bin/python3 import subprocess import sys import os import time import ox import lanbox from .pi import random # Screen 1-5, Control, 6,7 ''' > _*10 patterns / cues that correspond to 10 digit:*_ > 0 = Screen LED @ 100% fade time = 9s (cue list 1) > 1 = LED Control @ 10% fade time = 8s (cue list 2) > 2 = LED Control @ 20% fade time = 7s (cue list 3) > 3 = LED Control @ 30% fade time = 6s (cue list 4) > 4 = LED Control @ 40% fade time = 5s (cue list 5) > 5 = LED Control @ 50% fade time = 4s (cue List 6) > 6 = LED Control @ 60% fade time = 3s (cue list 7) > 7 = LED Control @ 70% fade time = 2s (cue list 8) > 8 = LED Control @ 80% fade time = 1s (cue list 9) > 9 = LED Control @ 90% fade time = 0s (cue list 10) ''' def channels(screen, control): screen = int(screen * 255) control = int(control * 255) return {'1': screen, '2': screen, '3': screen, '4': screen, '5': screen, '6': control, '7': control} LIGHTS = { 0: (channels(1, 0.0), 9), 1: (channels(0, 0.1), 8), 2: (channels(0, 0.2), 7), 3: (channels(0, 0.3), 6), 4: (channels(0, 0.4), 5), 5: (channels(0, 0.5), 4), 6: (channels(0, 0.6), 3), 7: (channels(0, 0.7), 2), 8: (channels(0, 0.8), 1), 9: (channels(0, 0.9), 0.1), } def switch(state): lights, fade = LIGHTS[state] lb = lanbox.Lanbox() #lb.getChannels(lights) #lb.fadeTo(lights, fade) lb.layerGo(state) if __name__ == '__main__': path = sys.argv[1] no_sleep = len(sys.argv) > 2 n = int(os.path.getctime(path) - 1495280000) info = ox.avinfo(path) duration = info.get('duration', 0) seq = random(n * 1000) pos = 0 lights = [] while pos < duration - 15: sleep = seq() + 15 light = seq() if pos + sleep > duration: break if not no_sleep: time.sleep(sleep) switch(light) pos += sleep