diff flax/MusicTime.py @ 0:45b12307c695

Initial revision
author drewp
date Wed, 03 Jul 2002 09:37:57 +0000
parents
children 3905d3c92aaa
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/flax/MusicTime.py	Wed Jul 03 09:37:57 2002 +0000
@@ -0,0 +1,49 @@
+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 optik 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()