view light9/subclient.py @ 1822:0da5fcfe4ea5

collector debug logging Ignore-this: d1357a970ac339186c7e91cd311c6288
author drewp@bigasterisk.com
date Sat, 09 Jun 2018 01:19:23 +0000
parents c45787e306ae
children 1692e8aba9f5
line wrap: on
line source

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)