Changeset - feddef0d2fd4
[Not reviewed]
default
0 1 0
drewp - 22 years ago 2003-06-15 15:19:53

now can load a sub into the display too
1 file changed with 27 insertions and 10 deletions:
0 comments (0 inline, 0 general)
flax/subcomposer
Show inline comments
 
@@ -20,37 +20,46 @@ def persistentlevels():
 
    except IOError:
 
        pass
 

	
 
    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):
 
    leveldict={}
 
    for i,lev in zip(range(len(levels)),levels):
 
        if lev!=0:
 
            leveldict[Patch.get_channel_name(i+1)]=lev
 
        
 
    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("<Return>",cb)
 
    tk.Button(f,text=verb,command=cb).pack(side='left')
 
    return f
 
    
 
#############################
 

	
 
levels=[0]*68 # levels should never get overwritten, just edited
 
persistentlevels()
 
@@ -61,12 +70,20 @@ root.config(bg='black')
 
lb=Levelbox(root)
 
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)
 

	
 
dispatcher.connect(levelchanged,"levelchanged")
 

	
0 comments (0 inline, 0 general)