annotate light8/Fader.py @ 52:065896b0913c

emergency commit
author dmcc
date Mon, 08 Jul 2002 03:25:42 +0000
parents 71489bb71528
children 032b2b67bc10
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
45b12307c695 Initial revision
drewp
parents:
diff changeset
1 from Tix import *
52
065896b0913c emergency commit
dmcc
parents: 51
diff changeset
2 from time import time # time is on my side
065896b0913c emergency commit
dmcc
parents: 51
diff changeset
3 from util import subsetdict
065896b0913c emergency commit
dmcc
parents: 51
diff changeset
4
065896b0913c emergency commit
dmcc
parents: 51
diff changeset
5 # statuses are:
065896b0913c emergency commit
dmcc
parents: 51
diff changeset
6 # stopped - no cue is loaded
065896b0913c emergency commit
dmcc
parents: 51
diff changeset
7 # running - cue is running, not complete
065896b0913c emergency commit
dmcc
parents: 51
diff changeset
8 # halted - cue stops wherever it was, can't continue
065896b0913c emergency commit
dmcc
parents: 51
diff changeset
9 # finished - cue is finished, next is loaded
0
45b12307c695 Initial revision
drewp
parents:
diff changeset
10
45b12307c695 Initial revision
drewp
parents:
diff changeset
11 stdfont = ('Arial', 10)
45b12307c695 Initial revision
drewp
parents:
diff changeset
12
45b12307c695 Initial revision
drewp
parents:
diff changeset
13 class Fader(Frame):
45b12307c695 Initial revision
drewp
parents:
diff changeset
14 'User interface for cue fader'
45b12307c695 Initial revision
drewp
parents:
diff changeset
15 def __init__(self, master, cues, scalelevels):
45b12307c695 Initial revision
drewp
parents:
diff changeset
16 self.master = master
45b12307c695 Initial revision
drewp
parents:
diff changeset
17 self.cues = cues
45b12307c695 Initial revision
drewp
parents:
diff changeset
18 self.scalelevels = scalelevels
45b12307c695 Initial revision
drewp
parents:
diff changeset
19 self.init_layout()
45b12307c695 Initial revision
drewp
parents:
diff changeset
20 def init_layout(self):
45b12307c695 Initial revision
drewp
parents:
diff changeset
21 Frame.__init__(self, self.master)
45b12307c695 Initial revision
drewp
parents:
diff changeset
22
52
065896b0913c emergency commit
dmcc
parents: 51
diff changeset
23 # info variables
0
45b12307c695 Initial revision
drewp
parents:
diff changeset
24 self.cuename = StringVar()
45b12307c695 Initial revision
drewp
parents:
diff changeset
25 self.cuelength = DoubleVar()
52
065896b0913c emergency commit
dmcc
parents: 51
diff changeset
26 self.cuetarget = StringVar()
065896b0913c emergency commit
dmcc
parents: 51
diff changeset
27
065896b0913c emergency commit
dmcc
parents: 51
diff changeset
28 # info about a running cue
065896b0913c emergency commit
dmcc
parents: 51
diff changeset
29 self.cuestatus = StringVar() # text description
065896b0913c emergency commit
dmcc
parents: 51
diff changeset
30 self.cuestatus.set("stopped")
065896b0913c emergency commit
dmcc
parents: 51
diff changeset
31
065896b0913c emergency commit
dmcc
parents: 51
diff changeset
32 self.cuepercent = DoubleVar() # percent complete
065896b0913c emergency commit
dmcc
parents: 51
diff changeset
33 self.cuepercent.set(0)
065896b0913c emergency commit
dmcc
parents: 51
diff changeset
34 self.cuetime = StringVar() # time left
065896b0913c emergency commit
dmcc
parents: 51
diff changeset
35 self.cuetime.set('0 / 0')
0
45b12307c695 Initial revision
drewp
parents:
diff changeset
36
45b12307c695 Initial revision
drewp
parents:
diff changeset
37 buttonframe = Frame(self)
45b12307c695 Initial revision
drewp
parents:
diff changeset
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
45b12307c695 Initial revision
drewp
parents:
diff changeset
41 for c in self.cues:
45b12307c695 Initial revision
drewp
parents:
diff changeset
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
45b12307c695 Initial revision
drewp
parents:
diff changeset
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
45b12307c695 Initial revision
drewp
parents:
diff changeset
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
065896b0913c emergency commit
dmcc
parents: 51
diff changeset
51
0
45b12307c695 Initial revision
drewp
parents:
diff changeset
52 Label(infoframe, text="Length", font=stdfont,
45b12307c695 Initial revision
drewp
parents:
diff changeset
53 bg='lightPink').grid(row=1, sticky=NE+SW)
45b12307c695 Initial revision
drewp
parents:
diff changeset
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
065896b0913c emergency commit
dmcc
parents: 51
diff changeset
56
0
45b12307c695 Initial revision
drewp
parents:
diff changeset
57 Label(infoframe, text="Target", font=stdfont,
52
065896b0913c emergency commit
dmcc
parents: 51
diff changeset
58 bg='lightPink', wraplength=50).grid(row=2, sticky=NE+SW)
065896b0913c emergency commit
dmcc
parents: 51
diff changeset
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
065896b0913c emergency commit
dmcc
parents: 51
diff changeset
61
065896b0913c emergency commit
dmcc
parents: 51
diff changeset
62 Label(infoframe, text="Status", font=stdfont,
065896b0913c emergency commit
dmcc
parents: 51
diff changeset
63 bg='lightPink').grid(row=3, sticky=NE+SW)
065896b0913c emergency commit
dmcc
parents: 51
diff changeset
64 Label(infoframe, textvariable=self.cuestatus,
065896b0913c emergency commit
dmcc
parents: 51
diff changeset
65 font=stdfont).grid(row=3, column=1, sticky=NE+SW)
065896b0913c emergency commit
dmcc
parents: 51
diff changeset
66
065896b0913c emergency commit
dmcc
parents: 51
diff changeset
67 Label(infoframe, text="Time", font=stdfont,
065896b0913c emergency commit
dmcc
parents: 51
diff changeset
68 bg='lightPink').grid(row=4, sticky=NE+SW)
065896b0913c emergency commit
dmcc
parents: 51
diff changeset
69 Label(infoframe, textvariable=self.cuetime,
065896b0913c emergency commit
dmcc
parents: 51
diff changeset
70 font=stdfont).grid(row=4, column=1, sticky=NE+SW)
065896b0913c emergency commit
dmcc
parents: 51
diff changeset
71
065896b0913c emergency commit
dmcc
parents: 51
diff changeset
72 Label(infoframe, text="Percent Complete", font=stdfont,
065896b0913c emergency commit
dmcc
parents: 51
diff changeset
73 bg='lightPink').grid(row=5, sticky=NE+SW)
065896b0913c emergency commit
dmcc
parents: 51
diff changeset
74 Label(infoframe, textvariable=self.cuepercent,
065896b0913c emergency commit
dmcc
parents: 51
diff changeset
75 font=stdfont).grid(row=5, column=1, sticky=NE+SW)
065896b0913c emergency commit
dmcc
parents: 51
diff changeset
76
0
45b12307c695 Initial revision
drewp
parents:
diff changeset
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
45b12307c695 Initial revision
drewp
parents:
diff changeset
79
45b12307c695 Initial revision
drewp
parents:
diff changeset
80 self.listbox.listbox.select_set(0)
45b12307c695 Initial revision
drewp
parents:
diff changeset
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
45b12307c695 Initial revision
drewp
parents:
diff changeset
84 self.current = self.cues[selection]
45b12307c695 Initial revision
drewp
parents:
diff changeset
85 self.cuename.set(self.current.name)
45b12307c695 Initial revision
drewp
parents:
diff changeset
86 self.cuelength.set(self.current.dur)
52
065896b0913c emergency commit
dmcc
parents: 51
diff changeset
87 self.cuetarget.set(str(self.current.get_end_levels()))
0
45b12307c695 Initial revision
drewp
parents:
diff changeset
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
065896b0913c emergency commit
dmcc
parents: 51
diff changeset
90 self.cuestatus.set("running")
065896b0913c emergency commit
dmcc
parents: 51
diff changeset
91 self.time_start = time()
065896b0913c emergency commit
dmcc
parents: 51
diff changeset
92 startlevels = dict([(k, v.get()) for k, v in self.scalelevels.items()])
065896b0913c emergency commit
dmcc
parents: 51
diff changeset
93 self.current.start(startlevels, self.time_start)
065896b0913c emergency commit
dmcc
parents: 51
diff changeset
94 self.running_loop()
065896b0913c emergency commit
dmcc
parents: 51
diff changeset
95 def running_loop(self):
065896b0913c emergency commit
dmcc
parents: 51
diff changeset
96 curtime = time()
065896b0913c emergency commit
dmcc
parents: 51
diff changeset
97 if (curtime - self.time_start) > self.current.dur:
065896b0913c emergency commit
dmcc
parents: 51
diff changeset
98 return
065896b0913c emergency commit
dmcc
parents: 51
diff changeset
99 newlevels = self.current.get_levels(time())
065896b0913c emergency commit
dmcc
parents: 51
diff changeset
100 print newlevels
065896b0913c emergency commit
dmcc
parents: 51
diff changeset
101 self.after(30, self.running_loop)