comparison flax/MusicTime.py @ 0:45b12307c695

Initial revision
author drewp
date Wed, 03 Jul 2002 09:37:57 +0000
parents
children 3905d3c92aaa
comparison
equal deleted inserted replaced
-1:000000000000 0:45b12307c695
1 import Tkinter as tk
2 import xmlrpclib, socket, time
3
4 class MusicTime:
5 def __init__(self, server, port):
6 self.player = xmlrpclib.Server("http://%s:%d" % (server, port))
7 def get_music_time(self):
8 playtime = None
9 while not playtime:
10 try:
11 playtime = self.player.gettime()
12 except socket.error, e:
13 print "Server error %s, waiting" % e
14 time.sleep(2)
15 return playtime
16
17 class MusicTimeTk(tk.Frame, MusicTime):
18 def __init__(self, master, server, port):
19 tk.Frame.__init__(self)
20 MusicTime.__init__(self, server, port)
21 self.timevar = tk.DoubleVar()
22 self.timelabel = tk.Label(self, textvariable=self.timevar, bd=2,
23 relief='raised', width=10, padx=2, pady=2, anchor='w')
24 self.timelabel.pack(expand=1, fill='both')
25 def print_time(evt, *args):
26 self.update_time()
27 print self.timevar.get(), evt.keysym
28 self.timelabel.bind('<KeyPress>', print_time)
29 self.timelabel.bind('<1>', print_time)
30 self.timelabel.focus()
31 self.update_time()
32 def update_time(self):
33 self.timevar.set(self.get_music_time())
34 self.after(100, self.update_time)
35
36 if __name__ == "__main__":
37 from optik import OptionParser
38 parser = OptionParser()
39 parser.add_option("-s", "--server", default='dash')
40 parser.add_option("-p", "--port", default=8040, type='int')
41 options, args = parser.parse_args()
42
43 root = tk.Tk()
44 root.title("Time")
45 MusicTimeTk(root, options.server, options.port).pack(expand=1, fill='both')
46 try:
47 tk.mainloop()
48 except KeyboardInterrupt:
49 root.destroy()