Changeset - caeaa88430b8
[Not reviewed]
default
0 4 0
drewp@bigasterisk.com - 12 years ago 2012-07-16 22:28:08
drewp@bigasterisk.com
KC sends real levels
Ignore-this: 2c6dae9c9c706c7db02e361d1ff46035
4 files changed with 17 insertions and 19 deletions:
0 comments (0 inline, 0 general)
bin/keyboardcomposer
Show inline comments
 
@@ -140,9 +140,8 @@ class KeyboardComposer(Frame, SubClient)
 
        self.sub_name = Entry(self.buttonframe, bg='black', fg='white')
 
        self.sub_name.pack(side=LEFT)
 

	
 

	
 
    def redraw_sliders(self):
 
        self.slider_vars = {} # this holds subname:sub Tk vars
 
        self.slider_vars = {} # this holds suburi : sub Tk vars
 
        self.slider_table = {} # this holds coords:sub Tk vars
 
        self.name_to_subtk.clear() # subname : SubmasterTk instance
 

	
 
@@ -219,7 +218,7 @@ class KeyboardComposer(Frame, SubClient)
 
        subtk.place(relx=col / 8, rely=0, relwidth=1 / 8, relheight=1)
 
        self.setup_key_nudgers(subtk.scale)
 

	
 
        self.slider_vars[sub.name] = subtk.slider_var
 
        self.slider_vars[sub.uri] = subtk.slider_var
 
        return subtk
 

	
 
    def toggle_slider_connectedness(self):
 
@@ -337,11 +336,11 @@ class KeyboardComposer(Frame, SubClient)
 
            return # no slider assigned at that column
 
        subtk.scale.set(value)
 

	
 
    def send_to_hw(self, subName, hwNum):
 
    def send_to_hw(self, subUri, hwNum):
 
        if isinstance(self.sliders, DummySliders):
 
            return
 
            
 
        v = round(127 * self.slider_vars[subName].get())
 
        v = round(127 * self.slider_vars[subUri].get())
 
        chan = "slider%s" % hwNum
 
        
 
        # workaround for some rounding issue, where we receive one
 
@@ -368,13 +367,12 @@ class KeyboardComposer(Frame, SubClient)
 
        row['bg'] = 'black'
 

	
 
    def get_levels(self):
 
        return dict([(name, slidervar.get()) 
 
            for name, slidervar in self.slider_vars.items()])
 
        return dict([(uri, slidervar.get()) 
 
            for uri, slidervar in self.slider_vars.items()])
 

	
 
    def get_levels_as_sub(self):
 
        scaledsubs = [self.submasters.get_sub_by_name(sub) * level \
 
        scaledsubs = [self.submasters.get_sub_by_uri(sub) * level
 
            for sub, level in self.get_levels().items() if level > 0.0]
 

	
 
        maxes = sub_maxes(*scaledsubs)
 
        return maxes
 

	
bin/rdfdb
Show inline comments
 
@@ -132,6 +132,7 @@ class Db(object):
 
        notifier.startReading()
 

	
 
        for inFile in [#"show/dance2012/config.n3",
 
                       "show/dance2012/patch.n3",
 
                       "show/dance2012/subs/bcools",
 
                       "show/dance2012/subs/bwarm",
 
                       "show/dance2012/subs/house",
light9/Submaster.py
Show inline comments
 
@@ -160,7 +160,7 @@ class PersistentSubmaster(Submaster):
 
            val = self.graph.value(lev, L9['level'])
 
            name = patchGraph.label(chan)
 
            if not name:
 
                #log.error("sub %r has channel %r with no name- leaving out that channel" % (self.name, chan))
 
                log.error("sub %r has channel %r with no name- leaving out that channel" % (self.name, chan))
 
                continue
 
            self.levels[name] = float(val)
 

	
 
@@ -253,14 +253,9 @@ class Submasters:
 
        combined = notsongs + songs
 

	
 
        return combined
 
    def get_all_sub_names(self):
 
        return [s.name for s in self.get_all_subs()]
 
    def get_sub_by_name(self, name):
 
        "Makes a new sub if there isn't one."
 
        if name in self.submasters:
 
            return self.submasters[name]
 
        return Submaster(name)
 
    __getitem__ = get_sub_by_name
 

	
 
    def get_sub_by_uri(self, uri):
 
        return self.submasters[uri]
 

	
 
def fullsub(*chans):
 
    """Make a submaster with chans at full."""
light9/subclient.py
Show inline comments
 
@@ -4,6 +4,7 @@ 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):
 
@@ -19,13 +20,16 @@ class SubClient:
 
        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.send_levels()
 
        self.graph.addHandler(self.send_levels)
 
        self.after(delay, self.send_levels_loop, delay)
 

	
 
    def send_zeroes(self):
0 comments (0 inline, 0 general)