#!/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(""%key, lambda ev,sub=sub: self.bumpto(sub,1)) root.bind(""%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(""%i,lambda ev,i=i: mag.set(math.sqrt((i )/5))) magscl.pack(side='left',fill='y') root.mainloop()