Mercurial > code > home > repos > light9
annotate bin/musictime @ 522:e20419d637d5
initial vidref tests
Ignore-this: f3ca12ad8071d889ed71689be0716827
author | drewp@bigasterisk.com |
---|---|
date | Tue, 08 Jun 2010 06:52:59 +0000 |
parents | 4072d93f02c5 |
children | 8d6f6d8a4719 |
rev | line source |
---|---|
266
58bbf9f42457
Revive MusicTime as bin/musictime, use light9.networking for music server location
David McClosky <dmcc@bigasterisk.com>
parents:
205
diff
changeset
|
1 #!/usr/bin/env python |
58bbf9f42457
Revive MusicTime as bin/musictime, use light9.networking for music server location
David McClosky <dmcc@bigasterisk.com>
parents:
205
diff
changeset
|
2 import run_local |
58bbf9f42457
Revive MusicTime as bin/musictime, use light9.networking for music server location
David McClosky <dmcc@bigasterisk.com>
parents:
205
diff
changeset
|
3 import light9.networking |
58bbf9f42457
Revive MusicTime as bin/musictime, use light9.networking for music server location
David McClosky <dmcc@bigasterisk.com>
parents:
205
diff
changeset
|
4 |
0 | 5 import Tkinter as tk |
6 import xmlrpclib, socket, time | |
7 | |
8 class MusicTime: | |
266
58bbf9f42457
Revive MusicTime as bin/musictime, use light9.networking for music server location
David McClosky <dmcc@bigasterisk.com>
parents:
205
diff
changeset
|
9 def __init__(self, url): |
58bbf9f42457
Revive MusicTime as bin/musictime, use light9.networking for music server location
David McClosky <dmcc@bigasterisk.com>
parents:
205
diff
changeset
|
10 self.player = xmlrpclib.Server(url) |
0 | 11 def get_music_time(self): |
12 playtime = None | |
13 while not playtime: | |
14 try: | |
15 playtime = self.player.gettime() | |
16 except socket.error, e: | |
17 print "Server error %s, waiting" % e | |
18 time.sleep(2) | |
19 return playtime | |
20 | |
21 class MusicTimeTk(tk.Frame, MusicTime): | |
266
58bbf9f42457
Revive MusicTime as bin/musictime, use light9.networking for music server location
David McClosky <dmcc@bigasterisk.com>
parents:
205
diff
changeset
|
22 def __init__(self, master, url): |
0 | 23 tk.Frame.__init__(self) |
266
58bbf9f42457
Revive MusicTime as bin/musictime, use light9.networking for music server location
David McClosky <dmcc@bigasterisk.com>
parents:
205
diff
changeset
|
24 MusicTime.__init__(self, url) |
0 | 25 self.timevar = tk.DoubleVar() |
26 self.timelabel = tk.Label(self, textvariable=self.timevar, bd=2, | |
27 relief='raised', width=10, padx=2, pady=2, anchor='w') | |
28 self.timelabel.pack(expand=1, fill='both') | |
29 def print_time(evt, *args): | |
305
4072d93f02c5
musictime was piling on more and more timers every time you pressed a key
Drew Perttula <drewp@bigasterisk.com>
parents:
266
diff
changeset
|
30 self.timevar.set(self.get_music_time()) |
0 | 31 print self.timevar.get(), evt.keysym |
32 self.timelabel.bind('<KeyPress>', print_time) | |
33 self.timelabel.bind('<1>', print_time) | |
34 self.timelabel.focus() | |
35 self.update_time() | |
36 def update_time(self): | |
37 self.timevar.set(self.get_music_time()) | |
38 self.after(100, self.update_time) | |
39 | |
40 if __name__ == "__main__": | |
205
3905d3c92aaa
twisted mainloop, more row-change keys, xmlrpc fadesub command on port 8050
drewp
parents:
0
diff
changeset
|
41 from optparse import OptionParser |
0 | 42 parser = OptionParser() |
266
58bbf9f42457
Revive MusicTime as bin/musictime, use light9.networking for music server location
David McClosky <dmcc@bigasterisk.com>
parents:
205
diff
changeset
|
43 parser.add_option("-u", "--url", default=light9.networking.musicUrl()) |
0 | 44 options, args = parser.parse_args() |
45 | |
46 root = tk.Tk() | |
47 root.title("Time") | |
266
58bbf9f42457
Revive MusicTime as bin/musictime, use light9.networking for music server location
David McClosky <dmcc@bigasterisk.com>
parents:
205
diff
changeset
|
48 MusicTimeTk(root, options.url).pack(expand=1, fill='both') |
0 | 49 try: |
50 tk.mainloop() | |
51 except KeyboardInterrupt: | |
52 root.destroy() |