Changeset - 186a66095036
[Not reviewed]
default
0 0 1
drewp - 20 years ago 2005-04-10 15:00:36

new
1 file changed with 65 insertions and 0 deletions:
0 comments (0 inline, 0 general)
flax/bumppad
Show inline comments
 
new file 100644
 
#!/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()
0 comments (0 inline, 0 general)