Changeset - f433e95f2e42
[Not reviewed]
default
1 1 0
dmcc - 22 years ago 2003-07-02 10:21:59

subcomposer is now a module. You can still run it from the command
subcomposer is now a module. You can still run it from the command
line. If you want it to work as a module, you need to call the
considersendupdate() method with the period of the after loop that it
should use.
2 files changed with 6 insertions and 142 deletions:
0 comments (0 inline, 0 general)
flax/Subcomposer.py
Show inline comments
 
@@ -6,17 +6,16 @@ from dmxchanedit import Levelbox
 
import sys,os,time,atexit
 
sys.path.append("../light8")
 
import dmxclient
 
import Patch
 
import Submaster
 

	
 
from dispatch import dispatcher
 
import dispatcher
 

	
 
class Subcomposer(tk.Frame):
 
    def __init__(self, master, levelboxopts=None, dmxdummy=0, numchannels=68,
 
        use_persistentlevels=0):
 
    def __init__(self, master, levelboxopts=None, dmxdummy=0, numchannels=68):
 
        tk.Frame.__init__(self, master, bg='black')
 
        self.dmxdummy = dmxdummy
 
        self.numchannels = numchannels
 

	
 
        self.levels = [0]*68 # levels should never get overwritten, just edited
 

	
 
@@ -38,14 +37,13 @@ class Subcomposer(tk.Frame):
 

	
 
        tk.Button(self, text="all to zero", command=alltozero).pack(side='top')
 

	
 
        dispatcher.connect(self.levelchanged,"levelchanged")
 
        dispatcher.connect(self.sendupdate,"levelchanged")
 

	
 
        if use_persistentlevels:
 
            self.persistentlevels()
 
        self.persistentlevels()
 

	
 
        self.lastupdate=0 # time we last sent to dmx
 

	
 
        self.lastsent=[] # copy of levels
 

	
 
    def persistentlevels(self):
 
@@ -66,21 +64,21 @@ class Subcomposer(tk.Frame):
 
    def levelchanged(self, channel=None, newlevel=None):
 
        if channel is not None and newlevel is not None:
 
            if channel>len(self.levels):
 
                return
 
            self.levels[channel-1]=max(0,min(1,float(newlevel)))
 
        self.levelbox.setlevels(self.levels)
 
    def savenewsub(self, levels, subname):
 
    def savenewsub(self, subname):
 
        leveldict={}
 
        for i,lev in zip(range(len(self.levels)),self.levels):
 
            if lev!=0:
 
                leveldict[Patch.get_channel_name(i+1)]=lev
 
        
 
        s=Submaster.Submaster(subname,leveldict)
 
        s.save()
 
    def loadsub(self, levels, subname):
 
    def loadsub(self, subname):
 
        """puts a sub into the levels, replacing old level values"""
 
        s=Submaster.Submasters().get_sub_by_name(subname)
 
        self.levels[:]=[0]*68
 
        self.levels[:]=s.get_dmx_list()
 
        dispatcher.send("levelchanged")
 
    def sendupdate(self):
 
@@ -107,38 +105,20 @@ def Savebox(master, levels, verb="Save",
 
        subname=e.get()
 
        cmd(levels,subname)
 
        print "sub",verb,subname
 
    e.bind("<Return>",cb)
 
    tk.Button(f,text=verb,command=cb).pack(side='left')
 
    return f
 

	
 
def open_sub_editing_window(subname, use_mainloop=1, dmxdummy=0):
 
    if use_mainloop:
 
        toplevel = tk.Tk()
 
    else:
 
        toplevel = tk.Toplevel()
 
    if dmxdummy: 
 
        dummy_str = ' (dummy)'
 
    else:
 
        dummy_str = ''
 
    toplevel.title("Subcomposer: %s%s" % (subname, dummy_str))
 
    sc = Subcomposer(toplevel, use_persistentlevels=0, dmxdummy=dmxdummy)
 
    sc.pack(fill='both', expand=1)
 
    sc.loadsub(None, subname) # don't ask
 
    sc.considersendupdate(use_after_loop=10)
 
    if use_mainloop:
 
        tk.mainloop()
 
    
 
#############################
 

	
 
if __name__ == "__main__":
 
    root=tk.Tk()
 
    root.config(bg='black')
 
    root.tk_setPalette("#004633")
 

	
 
    sc = Subcomposer(root, dmxdummy=0)
 
    sc = Subcomposer(root, dmxdummy=1)
 
    sc.pack()
 

	
 
    while 1:
 
        if 0:
 
            for i in range(20): # don't let Tk take all the time
 
                tk._tkinter.dooneevent()
flax/subcomposer
Show inline comments
 
deleted file
0 comments (0 inline, 0 general)