Files
@ 4556eebe5d73
Branch filter:
Location: light9/bin/attic/bumppad - annotation
4556eebe5d73
2.7 KiB
text/plain
topdir reorgs; let pdm have its src/ dir; separate vite area from light9/
4556eebe5d73 4556eebe5d73 4556eebe5d73 4556eebe5d73 4556eebe5d73 4556eebe5d73 4556eebe5d73 4556eebe5d73 4556eebe5d73 4556eebe5d73 4556eebe5d73 4556eebe5d73 4556eebe5d73 4556eebe5d73 4556eebe5d73 4556eebe5d73 4556eebe5d73 4556eebe5d73 4556eebe5d73 4556eebe5d73 4556eebe5d73 4556eebe5d73 4556eebe5d73 4556eebe5d73 4556eebe5d73 4556eebe5d73 4556eebe5d73 4556eebe5d73 4556eebe5d73 4556eebe5d73 4556eebe5d73 4556eebe5d73 4556eebe5d73 4556eebe5d73 4556eebe5d73 4556eebe5d73 4556eebe5d73 4556eebe5d73 4556eebe5d73 4556eebe5d73 4556eebe5d73 4556eebe5d73 4556eebe5d73 4556eebe5d73 4556eebe5d73 4556eebe5d73 4556eebe5d73 4556eebe5d73 4556eebe5d73 4556eebe5d73 4556eebe5d73 4556eebe5d73 4556eebe5d73 4556eebe5d73 4556eebe5d73 4556eebe5d73 4556eebe5d73 4556eebe5d73 4556eebe5d73 4556eebe5d73 4556eebe5d73 4556eebe5d73 4556eebe5d73 4556eebe5d73 4556eebe5d73 4556eebe5d73 4556eebe5d73 4556eebe5d73 4556eebe5d73 4556eebe5d73 4556eebe5d73 4556eebe5d73 4556eebe5d73 4556eebe5d73 4556eebe5d73 4556eebe5d73 4556eebe5d73 4556eebe5d73 4556eebe5d73 4556eebe5d73 4556eebe5d73 4556eebe5d73 4556eebe5d73 4556eebe5d73 4556eebe5d73 4556eebe5d73 4556eebe5d73 4556eebe5d73 4556eebe5d73 | #!bin/python
import sys, time, math
import tkinter as tk
import run_local
import light9.dmxclient as dmxclient
from light9.TLUtility import make_attributes_from_args
from light9.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', 'centered'),
((1, 3), "KP_Down", 'third-c'),
((0, 2), 'KP_Left', 'scoop-l'),
((2, 2), 'KP_Right', 'scoop-r'),
((1, 0), 'KP_Divide', 'cyc'),
((0, 3), "KP_End", 'hottest'),
((2, 3), 'KP_Next', 'deepblues'),
((0, 4), 'KP_Insert', "zip_red"),
((2, 4), 'KP_Delete', "zip_orange"),
((3, 1), 'KP_Add', 'strobedim'),
((3, 3), 'KP_Enter', 'zip_blue'),
((1, 2), 'KP_Begin', 'scoop-c'),
]:
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 list(self.levs.items())]).get_dmx_list()
dmxclient.outputlevels(dmx, clientid="bumppad")
root = tk.Tk()
root.tk_setPalette("maroon4")
root.wm_title("bumppad")
mag = tk.DoubleVar()
tk.Label(root,
text="Keypad press/release activate sub; 1..5 set mag",
font="Helvetica -12 italic",
anchor='w').pack(side='bottom', fill='x')
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()
|