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
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
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
45b12307c695 Initial revision
drewp
parents:
diff changeset
8
45b12307c695 Initial revision
drewp
parents:
diff changeset
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
45b12307c695 Initial revision
drewp
parents:
diff changeset
12 def get_music_time(self):
45b12307c695 Initial revision
drewp
parents:
diff changeset
13 playtime = None
45b12307c695 Initial revision
drewp
parents:
diff changeset
14 while not playtime:
45b12307c695 Initial revision
drewp
parents:
diff changeset
15 try:
660
3322285457ac fix musictime restkit api
drewp@bigasterisk.com
parents: 623
diff changeset
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
45b12307c695 Initial revision
drewp
parents:
diff changeset
19 print "Server error %s, waiting" % e
45b12307c695 Initial revision
drewp
parents:
diff changeset
20 time.sleep(2)
45b12307c695 Initial revision
drewp
parents:
diff changeset
21 return playtime
45b12307c695 Initial revision
drewp
parents:
diff changeset
22
45b12307c695 Initial revision
drewp
parents:
diff changeset
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
45b12307c695 Initial revision
drewp
parents:
diff changeset
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
45b12307c695 Initial revision
drewp
parents:
diff changeset
27 self.timevar = tk.DoubleVar()
45b12307c695 Initial revision
drewp
parents:
diff changeset
28 self.timelabel = tk.Label(self, textvariable=self.timevar, bd=2,
45b12307c695 Initial revision
drewp
parents:
diff changeset
29 relief='raised', width=10, padx=2, pady=2, anchor='w')
45b12307c695 Initial revision
drewp
parents:
diff changeset
30 self.timelabel.pack(expand=1, fill='both')
45b12307c695 Initial revision
drewp
parents:
diff changeset
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
45b12307c695 Initial revision
drewp
parents:
diff changeset
33 print self.timevar.get(), evt.keysym
45b12307c695 Initial revision
drewp
parents:
diff changeset
34 self.timelabel.bind('<KeyPress>', print_time)
45b12307c695 Initial revision
drewp
parents:
diff changeset
35 self.timelabel.bind('<1>', print_time)
45b12307c695 Initial revision
drewp
parents:
diff changeset
36 self.timelabel.focus()
45b12307c695 Initial revision
drewp
parents:
diff changeset
37 self.update_time()
45b12307c695 Initial revision
drewp
parents:
diff changeset
38 def update_time(self):
45b12307c695 Initial revision
drewp
parents:
diff changeset
39 self.timevar.set(self.get_music_time())
45b12307c695 Initial revision
drewp
parents:
diff changeset
40 self.after(100, self.update_time)
45b12307c695 Initial revision
drewp
parents:
diff changeset
41
45b12307c695 Initial revision
drewp
parents:
diff changeset
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
45b12307c695 Initial revision
drewp
parents:
diff changeset
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
45b12307c695 Initial revision
drewp
parents:
diff changeset
46 options, args = parser.parse_args()
45b12307c695 Initial revision
drewp
parents:
diff changeset
47
45b12307c695 Initial revision
drewp
parents:
diff changeset
48 root = tk.Tk()
45b12307c695 Initial revision
drewp
parents:
diff changeset
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
45b12307c695 Initial revision
drewp
parents:
diff changeset
51 try:
45b12307c695 Initial revision
drewp
parents:
diff changeset
52 tk.mainloop()
45b12307c695 Initial revision
drewp
parents:
diff changeset
53 except KeyboardInterrupt:
45b12307c695 Initial revision
drewp
parents:
diff changeset
54 root.destroy()