changeset 142:feddef0d2fd4

now can load a sub into the display too
author drewp
date Sun, 15 Jun 2003 15:19:53 +0000
parents 2dfe2c0ba052
children 79aabb5db3ce
files flax/subcomposer
diffstat 1 files changed, 27 insertions(+), 10 deletions(-) [+]
line wrap: on
line diff
--- a/flax/subcomposer	Sun Jun 15 15:19:06 2003 +0000
+++ b/flax/subcomposer	Sun Jun 15 15:19:53 2003 +0000
@@ -23,11 +23,12 @@
     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 @@
         
     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
     
 #############################
@@ -64,6 +73,14 @@
 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)