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
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
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
45b12307c695 Initial revision
drewp
parents:
diff changeset
5 import Tkinter as tk
45b12307c695 Initial revision
drewp
parents:
diff changeset
6 import xmlrpclib, socket, time
45b12307c695 Initial revision
drewp
parents:
diff changeset
7
45b12307c695 Initial revision
drewp
parents:
diff changeset
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
45b12307c695 Initial revision
drewp
parents:
diff changeset
11 def get_music_time(self):
45b12307c695 Initial revision
drewp
parents:
diff changeset
12 playtime = None
45b12307c695 Initial revision
drewp
parents:
diff changeset
13 while not playtime:
45b12307c695 Initial revision
drewp
parents:
diff changeset
14 try:
45b12307c695 Initial revision
drewp
parents:
diff changeset
15 playtime = self.player.gettime()
45b12307c695 Initial revision
drewp
parents:
diff changeset
16 except socket.error, e:
45b12307c695 Initial revision
drewp
parents:
diff changeset
17 print "Server error %s, waiting" % e
45b12307c695 Initial revision
drewp
parents:
diff changeset
18 time.sleep(2)
45b12307c695 Initial revision
drewp
parents:
diff changeset
19 return playtime
45b12307c695 Initial revision
drewp
parents:
diff changeset
20
45b12307c695 Initial revision
drewp
parents:
diff changeset
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
45b12307c695 Initial revision
drewp
parents:
diff changeset
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
45b12307c695 Initial revision
drewp
parents:
diff changeset
25 self.timevar = tk.DoubleVar()
45b12307c695 Initial revision
drewp
parents:
diff changeset
26 self.timelabel = tk.Label(self, textvariable=self.timevar, bd=2,
45b12307c695 Initial revision
drewp
parents:
diff changeset
27 relief='raised', width=10, padx=2, pady=2, anchor='w')
45b12307c695 Initial revision
drewp
parents:
diff changeset
28 self.timelabel.pack(expand=1, fill='both')
45b12307c695 Initial revision
drewp
parents:
diff changeset
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
45b12307c695 Initial revision
drewp
parents:
diff changeset
31 print self.timevar.get(), evt.keysym
45b12307c695 Initial revision
drewp
parents:
diff changeset
32 self.timelabel.bind('<KeyPress>', print_time)
45b12307c695 Initial revision
drewp
parents:
diff changeset
33 self.timelabel.bind('<1>', print_time)
45b12307c695 Initial revision
drewp
parents:
diff changeset
34 self.timelabel.focus()
45b12307c695 Initial revision
drewp
parents:
diff changeset
35 self.update_time()
45b12307c695 Initial revision
drewp
parents:
diff changeset
36 def update_time(self):
45b12307c695 Initial revision
drewp
parents:
diff changeset
37 self.timevar.set(self.get_music_time())
45b12307c695 Initial revision
drewp
parents:
diff changeset
38 self.after(100, self.update_time)
45b12307c695 Initial revision
drewp
parents:
diff changeset
39
45b12307c695 Initial revision
drewp
parents:
diff changeset
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
45b12307c695 Initial revision
drewp
parents:
diff changeset
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
45b12307c695 Initial revision
drewp
parents:
diff changeset
44 options, args = parser.parse_args()
45b12307c695 Initial revision
drewp
parents:
diff changeset
45
45b12307c695 Initial revision
drewp
parents:
diff changeset
46 root = tk.Tk()
45b12307c695 Initial revision
drewp
parents:
diff changeset
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
45b12307c695 Initial revision
drewp
parents:
diff changeset
49 try:
45b12307c695 Initial revision
drewp
parents:
diff changeset
50 tk.mainloop()
45b12307c695 Initial revision
drewp
parents:
diff changeset
51 except KeyboardInterrupt:
45b12307c695 Initial revision
drewp
parents:
diff changeset
52 root.destroy()