Mercurial > code > home > repos > light9
annotate flax/TimelineDMX.py @ 2366:b42cb1ea1d20
rm - we don't do a kernel module anymore; just usb api
author | drewp@bigasterisk.com |
---|---|
date | Mon, 05 Jun 2023 17:34:01 -0700 |
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() |