Mercurial > code > home > repos > light9
view flax/MusicTime.py @ 124:8de8a2f467db
The "T" function now creates TimedEvents with LinearBlenders for you
The "T" function now creates TimedEvents with LinearBlenders for you
(using the same LinearBlender). Thus, we don't need to specify linear
anymore.
The timeline seek bar was reading the length of track1 instead of the
whole timeline. This is fixed.
author | dmcc |
---|---|
date | Fri, 13 Jun 2003 15:55:54 +0000 |
parents | 45b12307c695 |
children | 3905d3c92aaa |
line wrap: on
line source
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()