Mercurial > code > home > repos > light9
diff bin/keyboardcomposer @ 350:c7478a778992
junky first pass at bcf2000 for keyboardcomposer
author | Drew Perttula <drewp@bigasterisk.com> |
---|---|
date | Sun, 10 Jun 2007 07:41:48 +0000 |
parents | fe9dff7dbffd |
children | a6662d61ebcd |
line wrap: on
line diff
--- a/bin/keyboardcomposer Sun Jun 10 06:18:53 2007 +0000 +++ b/bin/keyboardcomposer Sun Jun 10 07:41:48 2007 +0000 @@ -16,6 +16,7 @@ from light9.subclient import SubClient from light9 import dmxclient, showconfig, networking from light9.uihelpers import toplevelat, bindkeys +from bcf2000 import BCF2000 nudge_keys = { 'up' : list('qwertyuiop'), @@ -106,6 +107,9 @@ self.sub_name = Entry(self.buttonframe, bg='black', fg='white') self.sub_name.pack(side=LEFT) self.stop_frequent_update_time = 0 + + self.sliders = Sliders(self.hw_slider_moved) + def make_key_hints(self): keyhintrow = Frame(self) @@ -171,6 +175,11 @@ subtk.scale.fade(0) else: subtk.scale.decrease() + + def hw_slider_moved(self, col, value): + subtk = self.slider_table[(self.current_row, col)] + subtk.scale.set(value) + def draw_sliders(self): self.tk_focusFollowsMouse() @@ -187,9 +196,12 @@ col += 1 col %= 10 - def slider_changed(x, y, z, subtk=subtk): + def slider_changed(x, y, z, subtk=subtk, col=col, sub=sub): subtk.scale.draw_indicator_colors() self.send_levels() + v = 127 * self.get_levels()[sub.name] + self.sliders.valueOut("slider%s" % (col), v) + subtk.slider_var.trace('w', slider_changed) def make_row(self): @@ -265,6 +277,15 @@ ret=str(e) return ret +class Sliders(BCF2000): + def __init__(self, cb): + BCF2000.__init__(self) + self.cb = cb + def valueIn(self, name, value): + print "in", name, value + if name.startswith("slider"): + self.cb(int(name[6:]) - 1, value / 127) + if __name__ == "__main__": parser = OptionParser() parser.add_option('--nonpersistent', action="store_true",