Files @ 00d0dbc2d6db
Branch filter:

Location: light9/light9/subclient.py

Drew Perttula
boring paths
Ignore-this: b5a75632bbdfe3f04d344754d1e791cb
from light9.effect.sequencer import sendToCollector
from twisted.internet import reactor, task
import traceback
import logging
log = logging.getLogger()

class SubClient:
    def __init__(self):
        """assumed that your init saves self.graph"""
        pass # we may later need init code for network setup

    def get_levels_as_sub(self):
        """Subclasses must implement this method and return a Submaster
        object."""

    def send_levels(self):
        # shouldn't be handler- should be immediate mode!
        self.graph.addHandler(self._send_sub)

    def send_levels_loop(self, delay=1000):
        task.LoopingCall(lambda: self.graph.addHandler(self.send_levels)).start(delay)

    def _send_sub(self):
        try:
            outputSettings = self.get_output_settings()
        except:
            traceback.print_exc()
            return
        sendToCollector('subclient', self.session, outputSettings)