Mercurial > code > home > repos > light9
comparison 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 |
comparison
equal
deleted
inserted
replaced
50:5ff08b489693 | 51:71489bb71528 |
---|---|
5 class Cue: | 5 class Cue: |
6 """Cues are groups of fades. They can tell you the current levels at a | 6 """Cues are groups of fades. They can tell you the current levels at a |
7 given time. They contain Fades, which are actually children of Cue, | 7 given time. They contain Fades, which are actually children of Cue, |
8 meaning that Cues can contain Cues. This is similar to the Light9 concept | 8 meaning that Cues can contain Cues. This is similar to the Light9 concept |
9 of Cues and Fades, but without all the Nodes.""" | 9 of Cues and Fades, but without all the Nodes.""" |
10 def __init__(self, name, starttime, endtime, *fades): | 10 def __init__(self, name, starttime, endtime=None, dur=None, *fades): |
11 'Create a cue' | 11 'Create a cue' |
12 if not endtime: | |
13 endtime = starttime + dur | |
14 else: | |
15 dur = endtime - starttime | |
16 | |
12 self.name = name | 17 self.name = name |
13 self.starttime = starttime | 18 self.starttime = starttime |
19 self.dur = dur | |
14 self.endtime = endtime | 20 self.endtime = endtime |
15 self.fades = fades | 21 self.fades = fades |
16 self.cuestart = None | 22 self.cuestart = None |
17 self.init_levels = None | 23 self.init_levels = None |
18 def channels_involved(self): | 24 def channels_involved(self): |
36 for fade in self.fades: | 42 for fade in self.fades: |
37 fade_d = fade.get_levels(curtime) | 43 fade_d = fade.get_levels(curtime) |
38 for ch, lev in fade_d.items(): | 44 for ch, lev in fade_d.items(): |
39 d[ch] = max(lev, d.get(ch, 0)) | 45 d[ch] = max(lev, d.get(ch, 0)) |
40 return d | 46 return d |
47 def get_end_levels(self): | |
48 'Returns the final levels' | |
49 d = {} | |
50 for fade in self.fades: | |
51 fade_d = fade.get_end_levels() | |
52 for ch, lev in fade_d.items(): | |
53 d[ch] = max(lev, d.get(ch, 0)) | |
54 return d | |
41 | 55 |
42 class Fade(Cue): | 56 class Fade(Cue): |
43 'See Cue.__doc__' | 57 'See Cue.__doc__' |
44 def __init__(self, channel, starttime, endtime=None, endlevel=0, dur=None, | 58 def __init__(self, channel, starttime, endtime=None, endlevel=0, dur=None, |
45 param=None): | 59 param=None): |
46 'Only specify an end time or a duration' | 60 'Fades are simple Cues' |
47 if not endtime: | 61 Cue.__init__(self, "%s -> %f" % (channel, endlevel), starttime, endtime, |
48 endtime = starttime + dur | 62 dur) |
49 else: | |
50 dur = endtime - starttime | |
51 Cue.__init__(self, "%s -> %f" % (channel, endlevel), starttime, endtime) | |
52 self.channel = channel | 63 self.channel = channel |
53 self.endlevel = endlevel | 64 self.endlevel = endlevel |
54 self.dur = dur | 65 self.dur = dur |
55 self.param = param | 66 self.param = param |
56 def start(self, levels, time): | 67 def start(self, levels, time): |
69 return {self.channel : self.endlevel} | 80 return {self.channel : self.endlevel} |
70 else: | 81 else: |
71 percent = float(elapsed) / self.dur | 82 percent = float(elapsed) / self.dur |
72 return {self.channel : self.init_level + | 83 return {self.channel : self.init_level + |
73 percent * (self.endlevel - self.init_level)} | 84 percent * (self.endlevel - self.init_level)} |
85 def get_end_levels(self): | |
86 return {self.channel : self.endlevel} | |
74 | 87 |
75 if __name__ == '__main__': | 88 if __name__ == '__main__': |
76 f1 = Fade('red', 0, 2, 100) | 89 f1 = Fade('red', 0, 2, 100) |
77 f2 = Fade('green', 1, 3, 50) | 90 f2 = Fade('green', 1, 3, 50) |
78 f3 = Fade('blue', 0, 4, 0) | 91 f3 = Fade('blue', 0, 4, 0) |