annotate flax/MusicTime.py @ 124:8de8a2f467db

The "T" function now creates TimedEvents with LinearBlenders for you The "T" function now creates TimedEvents with LinearBlenders for you (using the same LinearBlender). Thus, we don't need to specify linear anymore. The timeline seek bar was reading the length of track1 instead of the whole timeline. This is fixed.
author dmcc
date Fri, 13 Jun 2003 15:55:54 +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()