Files @ 69885b86ff44
Branch filter:

Location: light9/light9/subclient.py

drewp@bigasterisk.com
checkpoint
Ignore-this: 648d0aefd94837263542c466a8d41e57
from light9 import dmxclient
from light9.Submaster import Submaster

# later, this stuff will talk to a SubServer
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 get_dmx_list(self):
        maxes = self.get_levels_as_sub()
        return maxes.get_dmx_list()

    def send_sub(self, sub):
        levels = sub.get_dmx_list()
        dmxclient.outputlevels(levels)

    def send_levels(self):
        self.graph.addHandler(self._send_levels_handler)
        
    def _send_levels_handler(self):
        levels = self.get_dmx_list()
        dmxclient.outputlevels(levels)

    def send_levels_loop(self, delay=1000):
        """This function assumes that we are an instance of a Tk object
        (or at least that we have an 'after' method)"""
        self.graph.addHandler(self.send_levels)
        self.after(delay, self.send_levels_loop, delay)

    def send_zeroes(self):
        self.send_sub(Submaster('empty', {}, temporary=1))