diff --git a/flax/subcomposer b/flax/subcomposer --- a/flax/subcomposer +++ b/flax/subcomposer @@ -23,11 +23,12 @@ def persistentlevels(): atexit.register(lambda: file("subcomposer.savedlevels","w"). write(" ".join(map(str,levels)))) -def levelchanged(channel,newlevel): +def levelchanged(channel=None,newlevel=None): global lb, levels - if channel>len(levels): - return - levels[channel-1]=max(0,min(1,float(newlevel))) + if channel is not None and newlevel is not None: + if channel>len(levels): + return + levels[channel-1]=max(0,min(1,float(newlevel))) lb.setlevels(levels) def savenewsub(levels,subname): @@ -38,16 +39,24 @@ def savenewsub(levels,subname): s=Submaster.Submaster(subname,leveldict) s.save() -def Savebox(master,levels): +def loadsub(levels,subname): + """puts a sub into the levels, replacing old level values""" + s=Submaster.Submasters().get_sub_by_name(subname) + levels[:]=[0]*68 + levels[:]=s.get_dmx_list() + dispatcher.send("levelchanged") +def Savebox(master,levels,verb="Save", + cmd=savenewsub): f=tk.Frame(master,bd=2,relief='raised') - tk.Label(f,text="Save this as:").pack(side='left') + tk.Label(f,text="Sub name:").pack(side='left') e=tk.Entry(f) e.pack(side='left',exp=1,fill='x') - def cmd(): + def cb(*args): subname=e.get() - savenewsub(levels,subname) - print "saved new sub",subname - tk.Button(f,text="Save",command=cmd).pack(side='left') + cmd(levels,subname) + print "sub",verb,subname + e.bind("",cb) + tk.Button(f,text=verb,command=cb).pack(side='left') return f ############################# @@ -64,6 +73,14 @@ lb.pack(side='top') savebox=Savebox(root,levels) savebox.pack(side='top') +loadbox=Savebox(root,levels,verb="Load",cmd=loadsub) +loadbox.pack(side='top') + +def alltozero(): + levels[:]=[0]*68 + dispatcher.send("levelchanged") +tk.Button(root,text="all to zero",command=alltozero).pack(side='top') + # the dmx levels we edit and output, range is 0..1 (dmx chan 1 is # the 0 element) lb.setlevels(levels)