Mercurial > code > home > repos > light9
annotate flax/TimelineDMX.py @ 271:97c08a1c4351
gyrocontroller: remap buttons, fix keep mode
Also, solo mode is now default, colors are brighter, numeric names for subs
are converted to subs with only that channel up, send zeroes when exiting
author | David McClosky <dmcc@bigasterisk.com> |
---|---|
date | Fri, 17 Jun 2005 04:23:07 +0000 |
parents | 3905d3c92aaa |
children |
rev | line source |
---|---|
0 | 1 import sys, time, socket |
2 sys.path.append("../light8") | |
139 | 3 import Tix as tk |
0 | 4 |
5 import Patch, Timeline, dmxclient, xmlrpclib | |
6 import TheShow | |
7 | |
8 Patch.reload_data() | |
9 | |
139 | 10 class ShowRunner(tk.Frame): |
11 def __init__(self, master, show): | |
12 tk.Frame.__init__(self, master) | |
13 self.master = master | |
14 | |
0 | 15 self.show = show |
16 self.find_player() | |
139 | 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) | |
0 | 29 def find_player(self): |
205
3905d3c92aaa
twisted mainloop, more row-change keys, xmlrpc fadesub command on port 8050
drewp
parents:
139
diff
changeset
|
30 self.player = xmlrpclib.Server("http://spot:8040") |
0 | 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) | |
139 | 48 self.master.update() |
0 | 49 except KeyboardInterrupt: |
50 sys.exit(0) | |
51 | |
52 if __name__ == "__main__": | |
139 | 53 root = tk.Tk() |
54 s = ShowRunner(root, TheShow.show) | |
0 | 55 s.show.set_timeline('strobe test') |
139 | 56 s.pack() |
0 | 57 s.mainloop() |