Mercurial > code > home > repos > light9
comparison flax/TimelineDMX.py @ 0:45b12307c695
Initial revision
author | drewp |
---|---|
date | Wed, 03 Jul 2002 09:37:57 +0000 |
parents | |
children | 5670f66845ce |
comparison
equal
deleted
inserted
replaced
-1:000000000000 | 0:45b12307c695 |
---|---|
1 import sys, time, socket | |
2 sys.path.append("../light8") | |
3 import Tix as tk | |
4 | |
5 import Patch, Timeline, dmxclient, xmlrpclib | |
6 import TheShow | |
7 | |
8 Patch.reload_data() | |
9 | |
10 class ShowRunner(tk.Frame): | |
11 def __init__(self, master, show): | |
12 tk.Frame.__init__(self, master) | |
13 self.master = master | |
14 | |
15 self.show = show | |
16 self.find_player() | |
17 self.build_timeline_list() | |
18 def build_timeline_list(self): | |
19 self.tl_list = tk.Frame(self) | |
20 for tl in self.show.get_timelines(): | |
21 b=tk.Button(self.tl_list,text=tl, | |
22 anchor='w',pady=1) | |
23 b.config(command=lambda tl=tl: self.set_timeline(tl)) | |
24 b.pack(side='top',fill='x') | |
25 self.tl_list.pack() | |
26 def set_timeline(self, tlname): | |
27 print "TimelineDMX: set timeline to", tlname | |
28 self.show.set_timeline(tlname) | |
29 def find_player(self): | |
30 self.player = xmlrpclib.Server("http://localhost:8040") | |
31 def send_levels(self): | |
32 levels = self.show.calc_active_submaster().get_dmx_list() | |
33 | |
34 dmxclient.outputlevels(levels) | |
35 def sync_times(self): | |
36 try: | |
37 playtime = self.player.gettime() | |
38 self.show.set_time(playtime) | |
39 except socket.error, e: | |
40 print "Server error %s, waiting"%e | |
41 time.sleep(2) | |
42 def mainloop(self): | |
43 try: | |
44 while 1: | |
45 self.sync_times() | |
46 self.send_levels() | |
47 time.sleep(0.01) | |
48 self.master.update() | |
49 except KeyboardInterrupt: | |
50 sys.exit(0) | |
51 | |
52 if __name__ == "__main__": | |
53 root = tk.Tk() | |
54 s = ShowRunner(root, TheShow.show) | |
55 s.show.set_timeline('strobe test') | |
56 s.pack() | |
57 s.mainloop() |