view light9/subclient.py @ 1235:07c2e2e0d879

style on home page Ignore-this: af5a85ba67c169df52479d2c6204e37f
author Drew Perttula <drewp@bigasterisk.com>
date Wed, 10 Jun 2015 05:40:38 +0000
parents 9a86ed1886db
children 4a7594476905
line wrap: on
line source

from light9 import dmxclient

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):
        self.graph.addHandler(self._send_sub)

    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_sub(self):
        maxes = self.get_levels_as_sub()
        levels = maxes.get_dmx_list()
        dmxclient.outputlevels(levels)