diff light8/Cue.py @ 51:71489bb71528

- Meet Fader. He is going to grow up and be a crossfader some day - Meet Fader. He is going to grow up and be a crossfader some day (tomarrow) - Tkinter -> Tix so we can use ScrolledListBox which has a command - Some improvements to Cue - Cues need to specify their final values - Cues are imported by subs. This should be fixed for style points. - Some other cleanups
author dmcc
date Sun, 07 Jul 2002 15:40:45 +0000
parents cfb00e8cc0ea
children 032b2b67bc10
line wrap: on
line diff
--- a/light8/Cue.py	Sun Jul 07 15:26:02 2002 +0000
+++ b/light8/Cue.py	Sun Jul 07 15:40:45 2002 +0000
@@ -7,10 +7,16 @@
     given time.  They contain Fades, which are actually children of Cue,
     meaning that Cues can contain Cues.  This is similar to the Light9 concept
     of Cues and Fades, but without all the Nodes."""
-    def __init__(self, name, starttime, endtime, *fades):
+    def __init__(self, name, starttime, endtime=None, dur=None, *fades):
         'Create a cue'
+        if not endtime:
+            endtime = starttime + dur
+        else:
+            dur = endtime - starttime
+
         self.name = name
         self.starttime = starttime
+        self.dur = dur
         self.endtime = endtime
         self.fades = fades
         self.cuestart = None
@@ -38,17 +44,22 @@
             for ch, lev in fade_d.items():
                 d[ch] = max(lev, d.get(ch, 0))
         return d
+    def get_end_levels(self):
+        'Returns the final levels'
+        d = {}
+        for fade in self.fades:
+            fade_d = fade.get_end_levels()
+            for ch, lev in fade_d.items():
+                d[ch] = max(lev, d.get(ch, 0))
+        return d
 
 class Fade(Cue):
     'See Cue.__doc__'
     def __init__(self, channel, starttime, endtime=None, endlevel=0, dur=None,
                  param=None):
-        'Only specify an end time or a duration'
-        if not endtime:
-            endtime = starttime + dur
-        else:
-            dur = endtime - starttime
-        Cue.__init__(self, "%s -> %f" % (channel, endlevel), starttime, endtime)
+        'Fades are simple Cues'
+        Cue.__init__(self, "%s -> %f" % (channel, endlevel), starttime, endtime,
+            dur)
         self.channel = channel
         self.endlevel = endlevel
         self.dur = dur
@@ -71,6 +82,8 @@
             percent = float(elapsed) / self.dur
             return {self.channel : self.init_level + 
                 percent * (self.endlevel - self.init_level)}
+    def get_end_levels(self):
+        return {self.channel : self.endlevel}
 
 if __name__ == '__main__':
     f1 = Fade('red', 0, 2, 100)