annotate flax/MusicTime.py @ 168:f8b5cb5fbeed

- CueFader is hopefully done: - CueFader is hopefully done: - The TimedGoButton accepts a wheel to change the times. You can also enter times directly. - TimedGoButton really has a default starting time of 2 now. (there was a variable attached to the wrong widget before) - We send DMX levels with dmxclient now. - Autoload Times is a new option. - We load times from the next cue if Autoload Times is true. - Time predictions in the LabelledScale are slightly better. You still can change the time of an active fade. - Cue cache and DMX level computing now have their own functions, which get called at (hopefully) All The Right Times. - There are even some docs now! - Cues: sub_level parsing is better, will only throw out one line if it encounters problems (instead of the rest of the cue) - CueList: lots of 0 vs. None bugs fixed. - TkCueList: stores a reference to the controlling fader so it can alert it about changed cues. - CueEditron: You can edit sub_levels now. - cuelist1 was edited, checking it in for consistency's sake
author dmcc
date Wed, 09 Jul 2003 03:59:40 +0000
parents 45b12307c695
children 3905d3c92aaa
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
45b12307c695 Initial revision
drewp
parents:
diff changeset
1 import Tkinter as tk
45b12307c695 Initial revision
drewp
parents:
diff changeset
2 import xmlrpclib, socket, time
45b12307c695 Initial revision
drewp
parents:
diff changeset
3
45b12307c695 Initial revision
drewp
parents:
diff changeset
4 class MusicTime:
45b12307c695 Initial revision
drewp
parents:
diff changeset
5 def __init__(self, server, port):
45b12307c695 Initial revision
drewp
parents:
diff changeset
6 self.player = xmlrpclib.Server("http://%s:%d" % (server, port))
45b12307c695 Initial revision
drewp
parents:
diff changeset
7 def get_music_time(self):
45b12307c695 Initial revision
drewp
parents:
diff changeset
8 playtime = None
45b12307c695 Initial revision
drewp
parents:
diff changeset
9 while not playtime:
45b12307c695 Initial revision
drewp
parents:
diff changeset
10 try:
45b12307c695 Initial revision
drewp
parents:
diff changeset
11 playtime = self.player.gettime()
45b12307c695 Initial revision
drewp
parents:
diff changeset
12 except socket.error, e:
45b12307c695 Initial revision
drewp
parents:
diff changeset
13 print "Server error %s, waiting" % e
45b12307c695 Initial revision
drewp
parents:
diff changeset
14 time.sleep(2)
45b12307c695 Initial revision
drewp
parents:
diff changeset
15 return playtime
45b12307c695 Initial revision
drewp
parents:
diff changeset
16
45b12307c695 Initial revision
drewp
parents:
diff changeset
17 class MusicTimeTk(tk.Frame, MusicTime):
45b12307c695 Initial revision
drewp
parents:
diff changeset
18 def __init__(self, master, server, port):
45b12307c695 Initial revision
drewp
parents:
diff changeset
19 tk.Frame.__init__(self)
45b12307c695 Initial revision
drewp
parents:
diff changeset
20 MusicTime.__init__(self, server, port)
45b12307c695 Initial revision
drewp
parents:
diff changeset
21 self.timevar = tk.DoubleVar()
45b12307c695 Initial revision
drewp
parents:
diff changeset
22 self.timelabel = tk.Label(self, textvariable=self.timevar, bd=2,
45b12307c695 Initial revision
drewp
parents:
diff changeset
23 relief='raised', width=10, padx=2, pady=2, anchor='w')
45b12307c695 Initial revision
drewp
parents:
diff changeset
24 self.timelabel.pack(expand=1, fill='both')
45b12307c695 Initial revision
drewp
parents:
diff changeset
25 def print_time(evt, *args):
45b12307c695 Initial revision
drewp
parents:
diff changeset
26 self.update_time()
45b12307c695 Initial revision
drewp
parents:
diff changeset
27 print self.timevar.get(), evt.keysym
45b12307c695 Initial revision
drewp
parents:
diff changeset
28 self.timelabel.bind('<KeyPress>', print_time)
45b12307c695 Initial revision
drewp
parents:
diff changeset
29 self.timelabel.bind('<1>', print_time)
45b12307c695 Initial revision
drewp
parents:
diff changeset
30 self.timelabel.focus()
45b12307c695 Initial revision
drewp
parents:
diff changeset
31 self.update_time()
45b12307c695 Initial revision
drewp
parents:
diff changeset
32 def update_time(self):
45b12307c695 Initial revision
drewp
parents:
diff changeset
33 self.timevar.set(self.get_music_time())
45b12307c695 Initial revision
drewp
parents:
diff changeset
34 self.after(100, self.update_time)
45b12307c695 Initial revision
drewp
parents:
diff changeset
35
45b12307c695 Initial revision
drewp
parents:
diff changeset
36 if __name__ == "__main__":
45b12307c695 Initial revision
drewp
parents:
diff changeset
37 from optik import OptionParser
45b12307c695 Initial revision
drewp
parents:
diff changeset
38 parser = OptionParser()
45b12307c695 Initial revision
drewp
parents:
diff changeset
39 parser.add_option("-s", "--server", default='dash')
45b12307c695 Initial revision
drewp
parents:
diff changeset
40 parser.add_option("-p", "--port", default=8040, type='int')
45b12307c695 Initial revision
drewp
parents:
diff changeset
41 options, args = parser.parse_args()
45b12307c695 Initial revision
drewp
parents:
diff changeset
42
45b12307c695 Initial revision
drewp
parents:
diff changeset
43 root = tk.Tk()
45b12307c695 Initial revision
drewp
parents:
diff changeset
44 root.title("Time")
45b12307c695 Initial revision
drewp
parents:
diff changeset
45 MusicTimeTk(root, options.server, options.port).pack(expand=1, fill='both')
45b12307c695 Initial revision
drewp
parents:
diff changeset
46 try:
45b12307c695 Initial revision
drewp
parents:
diff changeset
47 tk.mainloop()
45b12307c695 Initial revision
drewp
parents:
diff changeset
48 except KeyboardInterrupt:
45b12307c695 Initial revision
drewp
parents:
diff changeset
49 root.destroy()