Mercurial > code > home > repos > light9
annotate flax/TimelineDMX.py @ 2405:69ca2b2fc133
overcomplicated attempt at persisting the pane layout in the rdf graph
this was hard because we have to somehow wait for the graph to load before config'ing the panes
author | drewp@bigasterisk.com |
---|---|
date | Fri, 17 May 2024 16:58:26 -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() |