annotate flax/MusicTime.py @ 205:3905d3c92aaa

twisted mainloop, more row-change keys, xmlrpc fadesub command on port 8050
author drewp
date Sun, 10 Apr 2005 15:03:24 +0000
parents 45b12307c695
children
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__":
205
3905d3c92aaa twisted mainloop, more row-change keys, xmlrpc fadesub command on port 8050
drewp
parents: 0
diff changeset
37 from optparse import OptionParser
0
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()