Mercurial > code > home > repos > light9
annotate bin/musictime @ 979:c1f3cc23b51b
subcomposer wouldn't draw right if there is an odd number of channels
Ignore-this: 981a0c4ef92f82f2b14505185fb9fce6
author | drewp@bigasterisk.com |
---|---|
date | Sat, 15 Jun 2013 23:05:43 +0000 |
parents | 3322285457ac |
children | 7772cc48e016 |
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 |
532
8d6f6d8a4719
clean up music client calls from curvecalc and musictime
drewp@bigasterisk.com
parents:
305
diff
changeset
|
6 import time |
8d6f6d8a4719
clean up music client calls from curvecalc and musictime
drewp@bigasterisk.com
parents:
305
diff
changeset
|
7 import restkit, jsonlib |
0 | 8 |
9 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
|
10 def __init__(self, url): |
532
8d6f6d8a4719
clean up music client calls from curvecalc and musictime
drewp@bigasterisk.com
parents:
305
diff
changeset
|
11 self.player = restkit.Resource(url) |
0 | 12 def get_music_time(self): |
13 playtime = None | |
14 while not playtime: | |
15 try: | |
660 | 16 playtime = jsonlib.read(self.player.get("time").body_string(), |
532
8d6f6d8a4719
clean up music client calls from curvecalc and musictime
drewp@bigasterisk.com
parents:
305
diff
changeset
|
17 use_float=True)['t'] |
8d6f6d8a4719
clean up music client calls from curvecalc and musictime
drewp@bigasterisk.com
parents:
305
diff
changeset
|
18 except restkit.RequestError, e: |
0 | 19 print "Server error %s, waiting" % e |
20 time.sleep(2) | |
21 return playtime | |
22 | |
23 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
|
24 def __init__(self, master, url): |
0 | 25 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
|
26 MusicTime.__init__(self, url) |
0 | 27 self.timevar = tk.DoubleVar() |
28 self.timelabel = tk.Label(self, textvariable=self.timevar, bd=2, | |
29 relief='raised', width=10, padx=2, pady=2, anchor='w') | |
30 self.timelabel.pack(expand=1, fill='both') | |
31 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
|
32 self.timevar.set(self.get_music_time()) |
0 | 33 print self.timevar.get(), evt.keysym |
34 self.timelabel.bind('<KeyPress>', print_time) | |
35 self.timelabel.bind('<1>', print_time) | |
36 self.timelabel.focus() | |
37 self.update_time() | |
38 def update_time(self): | |
39 self.timevar.set(self.get_music_time()) | |
40 self.after(100, self.update_time) | |
41 | |
42 if __name__ == "__main__": | |
205
3905d3c92aaa
twisted mainloop, more row-change keys, xmlrpc fadesub command on port 8050
drewp
parents:
0
diff
changeset
|
43 from optparse import OptionParser |
0 | 44 parser = OptionParser() |
623
46d319974176
move networking settings to config.n3
drewp@bigasterisk.com
parents:
532
diff
changeset
|
45 parser.add_option("-u", "--url", default=light9.networking.musicPlayer.url) |
0 | 46 options, args = parser.parse_args() |
47 | |
48 root = tk.Tk() | |
49 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
|
50 MusicTimeTk(root, options.url).pack(expand=1, fill='both') |
0 | 51 try: |
52 tk.mainloop() | |
53 except KeyboardInterrupt: | |
54 root.destroy() |