Files
@ 186a66095036
Branch filter:
Location: light9/flax/bumppad - annotation
186a66095036
2.3 KiB
text/plain
new
186a66095036 186a66095036 186a66095036 186a66095036 186a66095036 186a66095036 186a66095036 186a66095036 186a66095036 186a66095036 186a66095036 186a66095036 186a66095036 186a66095036 186a66095036 186a66095036 186a66095036 186a66095036 186a66095036 186a66095036 186a66095036 186a66095036 186a66095036 186a66095036 186a66095036 186a66095036 186a66095036 186a66095036 186a66095036 186a66095036 186a66095036 186a66095036 186a66095036 186a66095036 186a66095036 186a66095036 186a66095036 186a66095036 186a66095036 186a66095036 186a66095036 186a66095036 186a66095036 186a66095036 186a66095036 186a66095036 186a66095036 186a66095036 186a66095036 186a66095036 186a66095036 186a66095036 186a66095036 186a66095036 186a66095036 186a66095036 186a66095036 186a66095036 186a66095036 186a66095036 186a66095036 186a66095036 186a66095036 186a66095036 186a66095036 | #!/usr/bin/env python
from __future__ import division,nested_scopes
import sys, time, math
import Tkinter as tk
sys.path.append("../light8")
import dmxclient
from TLUtility import make_attributes_from_args
from Submaster import Submaster,sub_maxes
class pad(tk.Frame):
levs = None # Submaster : level
def __init__(self,master,root,mag):
make_attributes_from_args('master','mag')
tk.Frame.__init__(self,master)
self.levs={}
for xy,key,subname in [
((1,1),'KP_Up','upstage'),
((1,3),"KP_Down",'narrow-c'),
((0,2),'KP_Left','left1'),
((2,2),'KP_Right','right1'),
((1,0),'KP_Divide','cyc'),
((0,3),"KP_End",'edge-l'),
((2,3),'KP_Next','edge-r'),
((0,4),'KP_Insert',"zip_red"),
((2,4),'KP_Delete',"zip_orange"),
((3,1),'KP_Add','zip_green'),
((3,3),'KP_Enter','zip_blue'),
((1,2),'KP_Begin','downfront'),
]:
sub = Submaster(subname)
self.levs[sub]=0
l = tk.Label(self,font="arial 12 bold",anchor='w',height=2,
relief='groove',bd=5,
text="%s\n%s" % (key.replace('KP_',''),sub.name))
l.grid(column=xy[0],row=xy[1],sticky='news')
root.bind("<KeyPress-%s>"%key,
lambda ev,sub=sub: self.bumpto(sub,1))
root.bind("<KeyRelease-%s>"%key,
lambda ev,sub=sub: self.bumpto(sub,0))
def bumpto(self,sub,lev):
now=time.time()
self.levs[sub]=lev*self.mag.get()
self.master.after_idle(self.output)
def output(self):
dmx = sub_maxes(*[s*l for s,l in self.levs.items()]).get_dmx_list()
dmxclient.outputlevels(dmx,clientid="bumppad")
root=tk.Tk()
root.tk_setPalette("maroon4")
mag = tk.DoubleVar()
pad(root,root,mag).pack(side='left',fill='both',exp=1)
magscl = tk.Scale(root,orient='vertical',from_=1,to=0,res=.01,
showval=1,variable=mag,label='mag',relief='raised',bd=1)
for i in range(1,6):
root.bind("<Key-%s>"%i,lambda ev,i=i: mag.set(math.sqrt((i )/5)))
magscl.pack(side='left',fill='y')
root.mainloop()
|