Mercurial > code > home > repos > light9
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() |