Changeset - e5d14320fbd5
[Not reviewed]
default
0 1 0
dmcc - 22 years ago 2002-07-09 08:48:44

SimpleCues created (took 7 minutes or so)
1 file changed with 30 insertions and 1 deletions:
0 comments (0 inline, 0 general)
light8/Cue.py
Show inline comments
 
"""And that's my cue to exit(0)..."""
 
from time import time
 
from util import subsetdict
 
from util import subsetdict, scaledict
 

	
 
class Cue:
 
    """Cues are groups of fades.  They can tell you the current levels at a 
 
    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."""
 
@@ -82,12 +82,41 @@ class Fade(Cue):
 
                        self.dur
 
            return {self.channel : self.init_level + 
 
                percent * (self.endlevel - self.init_level)}
 
    def get_end_levels(self):
 
        return {self.channel : self.endlevel}
 

	
 
class SimpleCue(Cue):
 
    'See Cue.__doc__'
 
    def __init__(self, name, target, dur, **info):
 
        Cue.__init__(self, name, 0, dur)
 
        self.target = target
 
        self.dur = dur
 
        self.info = info
 
    def start(self, levels, time):
 
        'Mark the beginning of the fade'
 
        self.init_levels = levels
 
        self.init_time = time
 
    def channels_involved(self):
 
        'Speaks for itself, I hope'
 
        return self.target.keys()
 
    def get_levels(self, curtime):
 
        elapsed = curtime - self.init_time
 
        if elapsed >= self.endtime:
 
            return self.target
 
        else:
 
            percent = float((curtime - self.init_time) - self.starttime) / \
 
                        self.dur
 
            return dict([(n, self.init_levels[n] + 
 
                percent * (lev - self.init_levels[n]))
 
                    for n, lev in self.target])
 
            # return {self.channel : self.init_level + 
 
                # percent * (self.endlevel - self.init_level)}
 
    def get_end_levels(self):
 
        return self.target
 

	
 
if __name__ == '__main__':
 
    f1 = Fade('red', 0, 2, 100)
 
    f2 = Fade('green', 1, 3, 50)
 
    f3 = Fade('blue', 0, 4, 0)
 
    f4 = Fade('clear', 0, 8, 75) 
 
    c = Cue("Color shift", 0, 10, f1, f2, f3, f4)
0 comments (0 inline, 0 general)