0
|
1 import sys, time, socket
|
|
2 sys.path.append("../light8")
|
|
3
|
|
4 import Patch, Timeline, dmxclient, xmlrpclib
|
|
5 import TheShow
|
|
6
|
|
7 Patch.reload_data()
|
|
8
|
135
|
9 class ShowRunner:
|
|
10 def __init__(self, show):
|
0
|
11 self.show = show
|
|
12 self.find_player()
|
|
13 def find_player(self):
|
|
14 self.player = xmlrpclib.Server("http://localhost:8040")
|
|
15 def send_levels(self):
|
135
|
16 """
|
|
17 sub = self.show.get_levels() # gets levels of subs
|
|
18 leveldict = sub.get_levels() # gets levels of sub contents
|
|
19 print 'resolved levels', leveldict
|
|
20
|
|
21 levels = [0] * 68
|
|
22 for k, v in leveldict.items():
|
|
23 levels[Patch.get_dmx_channel(k)] = v
|
|
24 """
|
0
|
25 levels = self.show.calc_active_submaster().get_dmx_list()
|
|
26
|
|
27 dmxclient.outputlevels(levels)
|
|
28 def sync_times(self):
|
|
29 try:
|
|
30 playtime = self.player.gettime()
|
|
31 self.show.set_time(playtime)
|
|
32 except socket.error, e:
|
|
33 print "Server error %s, waiting"%e
|
|
34 time.sleep(2)
|
|
35 def mainloop(self):
|
|
36 try:
|
|
37 while 1:
|
|
38 self.sync_times()
|
|
39 self.send_levels()
|
|
40 time.sleep(0.01)
|
|
41 except KeyboardInterrupt:
|
|
42 sys.exit(0)
|
|
43
|
|
44 if __name__ == "__main__":
|
135
|
45 s = ShowRunner(TheShow.show)
|
0
|
46 s.show.set_timeline('strobe test')
|
|
47 s.mainloop()
|