Mercurial > code > home > repos > light9
annotate light8/Fader.py @ 52:065896b0913c
emergency commit
author | dmcc |
---|---|
date | Mon, 08 Jul 2002 03:25:42 +0000 |
parents | 71489bb71528 |
children | 032b2b67bc10 |
rev | line source |
---|---|
0 | 1 from Tix import * |
52 | 2 from time import time # time is on my side |
3 from util import subsetdict | |
4 | |
5 # statuses are: | |
6 # stopped - no cue is loaded | |
7 # running - cue is running, not complete | |
8 # halted - cue stops wherever it was, can't continue | |
9 # finished - cue is finished, next is loaded | |
0 | 10 |
11 stdfont = ('Arial', 10) | |
12 | |
13 class Fader(Frame): | |
14 'User interface for cue fader' | |
15 def __init__(self, master, cues, scalelevels): | |
16 self.master = master | |
17 self.cues = cues | |
18 self.scalelevels = scalelevels | |
19 self.init_layout() | |
20 def init_layout(self): | |
21 Frame.__init__(self, self.master) | |
22 | |
52 | 23 # info variables |
0 | 24 self.cuename = StringVar() |
25 self.cuelength = DoubleVar() | |
52 | 26 self.cuetarget = StringVar() |
27 | |
28 # info about a running cue | |
29 self.cuestatus = StringVar() # text description | |
30 self.cuestatus.set("stopped") | |
31 | |
32 self.cuepercent = DoubleVar() # percent complete | |
33 self.cuepercent.set(0) | |
34 self.cuetime = StringVar() # time left | |
35 self.cuetime.set('0 / 0') | |
0 | 36 |
37 buttonframe = Frame(self) | |
38 | |
51
71489bb71528
- Meet Fader. He is going to grow up and be a crossfader some day
dmcc
parents:
0
diff
changeset
|
39 self.listbox = ScrolledListBox(buttonframe) |
71489bb71528
- Meet Fader. He is going to grow up and be a crossfader some day
dmcc
parents:
0
diff
changeset
|
40 self.listbox.listbox.configure({'exportselection' : 0}) |
0 | 41 for c in self.cues: |
42 self.listbox.listbox.insert(END, c.name) | |
51
71489bb71528
- Meet Fader. He is going to grow up and be a crossfader some day
dmcc
parents:
0
diff
changeset
|
43 self.listbox.pack(side=TOP) |
71489bb71528
- Meet Fader. He is going to grow up and be a crossfader some day
dmcc
parents:
0
diff
changeset
|
44 Button(buttonframe, text="Go", command=self.go).pack(side=LEFT) |
71489bb71528
- Meet Fader. He is going to grow up and be a crossfader some day
dmcc
parents:
0
diff
changeset
|
45 Button(buttonframe, text="Halt").pack(side=LEFT) |
71489bb71528
- Meet Fader. He is going to grow up and be a crossfader some day
dmcc
parents:
0
diff
changeset
|
46 Button(buttonframe, text="Clear").pack(side=LEFT) |
0 | 47 |
51
71489bb71528
- Meet Fader. He is going to grow up and be a crossfader some day
dmcc
parents:
0
diff
changeset
|
48 infoframe = Frame(self) |
0 | 49 Label(infoframe, textvariable=self.cuename, |
51
71489bb71528
- Meet Fader. He is going to grow up and be a crossfader some day
dmcc
parents:
0
diff
changeset
|
50 font=('Arial', 12), bg='lightBlue').grid(columnspan=2, sticky=NE+SW) |
52 | 51 |
0 | 52 Label(infoframe, text="Length", font=stdfont, |
53 bg='lightPink').grid(row=1, sticky=NE+SW) | |
54 Label(infoframe, textvariable=self.cuelength, | |
51
71489bb71528
- Meet Fader. He is going to grow up and be a crossfader some day
dmcc
parents:
0
diff
changeset
|
55 font=stdfont).grid(row=1, column=1, sticky=NE+SW) |
52 | 56 |
0 | 57 Label(infoframe, text="Target", font=stdfont, |
52 | 58 bg='lightPink', wraplength=50).grid(row=2, sticky=NE+SW) |
59 Label(infoframe, textvariable=self.cuetarget, | |
51
71489bb71528
- Meet Fader. He is going to grow up and be a crossfader some day
dmcc
parents:
0
diff
changeset
|
60 font=stdfont).grid(row=2, column=1, sticky=NE+SW) |
52 | 61 |
62 Label(infoframe, text="Status", font=stdfont, | |
63 bg='lightPink').grid(row=3, sticky=NE+SW) | |
64 Label(infoframe, textvariable=self.cuestatus, | |
65 font=stdfont).grid(row=3, column=1, sticky=NE+SW) | |
66 | |
67 Label(infoframe, text="Time", font=stdfont, | |
68 bg='lightPink').grid(row=4, sticky=NE+SW) | |
69 Label(infoframe, textvariable=self.cuetime, | |
70 font=stdfont).grid(row=4, column=1, sticky=NE+SW) | |
71 | |
72 Label(infoframe, text="Percent Complete", font=stdfont, | |
73 bg='lightPink').grid(row=5, sticky=NE+SW) | |
74 Label(infoframe, textvariable=self.cuepercent, | |
75 font=stdfont).grid(row=5, column=1, sticky=NE+SW) | |
76 | |
0 | 77 infoframe.pack(side=RIGHT, fill=BOTH, expand=1) |
51
71489bb71528
- Meet Fader. He is going to grow up and be a crossfader some day
dmcc
parents:
0
diff
changeset
|
78 buttonframe.pack(side=BOTTOM) |
0 | 79 |
80 self.listbox.listbox.select_set(0) | |
81 self.update_selection() | |
51
71489bb71528
- Meet Fader. He is going to grow up and be a crossfader some day
dmcc
parents:
0
diff
changeset
|
82 def update_selection(self): |
71489bb71528
- Meet Fader. He is going to grow up and be a crossfader some day
dmcc
parents:
0
diff
changeset
|
83 selection = int(self.listbox.listbox.curselection()[0]) # blech |
0 | 84 self.current = self.cues[selection] |
85 self.cuename.set(self.current.name) | |
86 self.cuelength.set(self.current.dur) | |
52 | 87 self.cuetarget.set(str(self.current.get_end_levels())) |
0 | 88 def go(self): |
51
71489bb71528
- Meet Fader. He is going to grow up and be a crossfader some day
dmcc
parents:
0
diff
changeset
|
89 print 'Fade to', self.current.name |
52 | 90 self.cuestatus.set("running") |
91 self.time_start = time() | |
92 startlevels = dict([(k, v.get()) for k, v in self.scalelevels.items()]) | |
93 self.current.start(startlevels, self.time_start) | |
94 self.running_loop() | |
95 def running_loop(self): | |
96 curtime = time() | |
97 if (curtime - self.time_start) > self.current.dur: | |
98 return | |
99 newlevels = self.current.get_levels(time()) | |
100 print newlevels | |
101 self.after(30, self.running_loop) |