Mercurial > code > home > repos > light9
changeset 266:58bbf9f42457
Revive MusicTime as bin/musictime, use light9.networking for music server location
author | David McClosky <dmcc@bigasterisk.com> |
---|---|
date | Fri, 17 Jun 2005 00:52:22 +0000 |
parents | 62e9761a5f13 |
children | 9de7bbf50267 |
files | bin/musictime flax/MusicTime.py |
diffstat | 2 files changed, 52 insertions(+), 49 deletions(-) [+] |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/bin/musictime Fri Jun 17 00:52:22 2005 +0000 @@ -0,0 +1,52 @@ +#!/usr/bin/env python +import run_local +import light9.networking + +import Tkinter as tk +import xmlrpclib, socket, time + +class MusicTime: + def __init__(self, url): + self.player = xmlrpclib.Server(url) + def get_music_time(self): + playtime = None + while not playtime: + try: + playtime = self.player.gettime() + except socket.error, e: + print "Server error %s, waiting" % e + time.sleep(2) + return playtime + +class MusicTimeTk(tk.Frame, MusicTime): + def __init__(self, master, url): + tk.Frame.__init__(self) + MusicTime.__init__(self, url) + self.timevar = tk.DoubleVar() + self.timelabel = tk.Label(self, textvariable=self.timevar, bd=2, + relief='raised', width=10, padx=2, pady=2, anchor='w') + self.timelabel.pack(expand=1, fill='both') + def print_time(evt, *args): + self.update_time() + print self.timevar.get(), evt.keysym + self.timelabel.bind('<KeyPress>', print_time) + self.timelabel.bind('<1>', print_time) + self.timelabel.focus() + self.update_time() + def update_time(self): + self.timevar.set(self.get_music_time()) + self.after(100, self.update_time) + +if __name__ == "__main__": + from optparse import OptionParser + parser = OptionParser() + parser.add_option("-u", "--url", default=light9.networking.musicUrl()) + options, args = parser.parse_args() + + root = tk.Tk() + root.title("Time") + MusicTimeTk(root, options.url).pack(expand=1, fill='both') + try: + tk.mainloop() + except KeyboardInterrupt: + root.destroy()
--- a/flax/MusicTime.py Thu Jun 16 23:49:53 2005 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,49 +0,0 @@ -import Tkinter as tk -import xmlrpclib, socket, time - -class MusicTime: - def __init__(self, server, port): - self.player = xmlrpclib.Server("http://%s:%d" % (server, port)) - def get_music_time(self): - playtime = None - while not playtime: - try: - playtime = self.player.gettime() - except socket.error, e: - print "Server error %s, waiting" % e - time.sleep(2) - return playtime - -class MusicTimeTk(tk.Frame, MusicTime): - def __init__(self, master, server, port): - tk.Frame.__init__(self) - MusicTime.__init__(self, server, port) - self.timevar = tk.DoubleVar() - self.timelabel = tk.Label(self, textvariable=self.timevar, bd=2, - relief='raised', width=10, padx=2, pady=2, anchor='w') - self.timelabel.pack(expand=1, fill='both') - def print_time(evt, *args): - self.update_time() - print self.timevar.get(), evt.keysym - self.timelabel.bind('<KeyPress>', print_time) - self.timelabel.bind('<1>', print_time) - self.timelabel.focus() - self.update_time() - def update_time(self): - self.timevar.set(self.get_music_time()) - self.after(100, self.update_time) - -if __name__ == "__main__": - from optparse import OptionParser - parser = OptionParser() - parser.add_option("-s", "--server", default='dash') - parser.add_option("-p", "--port", default=8040, type='int') - options, args = parser.parse_args() - - root = tk.Tk() - root.title("Time") - MusicTimeTk(root, options.server, options.port).pack(expand=1, fill='both') - try: - tk.mainloop() - except KeyboardInterrupt: - root.destroy()