Mercurial > code > home > repos > light9
comparison light8/Lightboard.py @ 103:ddd3c8f04640
more untested code, ready for production: colors for slider mapping
author | dmcc |
---|---|
date | Sun, 14 Jul 2002 09:07:14 +0000 |
parents | e04f7b552bcd |
children | 15ead14b4dd1 |
comparison
equal
deleted
inserted
replaced
102:e04f7b552bcd | 103:ddd3c8f04640 |
---|---|
1 from __future__ import nested_scopes | 1 from __future__ import nested_scopes |
2 | 2 |
3 from Tix import * | 3 from Tix import * |
4 from signal import signal, SIGINT | 4 from signal import signal, SIGINT |
5 from time import time | |
5 import sys, cPickle, random | 6 import sys, cPickle, random |
6 | 7 |
7 from uihelpers import * | 8 from uihelpers import * |
8 from panels import * | 9 from panels import * |
9 from Xfader import * | 10 from Xfader import * |
39 self.buildinterface() | 40 self.buildinterface() |
40 self.load() | 41 self.load() |
41 print "Light 8.8: Enterring backgroundloop" | 42 print "Light 8.8: Enterring backgroundloop" |
42 self.backgroundloop() | 43 self.backgroundloop() |
43 self.updatestagelevels() | 44 self.updatestagelevels() |
45 self.rec_file = open('light9.log', 'a') | |
46 self.record_start() | |
44 | 47 |
45 def buildinterface(self): | 48 def buildinterface(self): |
46 print "Light 8.8: Constructing interface..." | 49 print "Light 8.8: Constructing interface..." |
47 for w in self.master.winfo_children(): | 50 for w in self.master.winfo_children(): |
48 w.destroy() | 51 w.destroy() |
61 | 64 |
62 print "\tslider patching" | 65 print "\tslider patching" |
63 mapping_tl = toplevelat('mapping') | 66 mapping_tl = toplevelat('mapping') |
64 self.slidermapper = ExtSliderMapper.ExtSliderMapper(mapping_tl, | 67 self.slidermapper = ExtSliderMapper.ExtSliderMapper(mapping_tl, |
65 self.scalelevels, | 68 self.scalelevels, |
66 ExternalSliders()) | 69 ExternalSliders(), |
70 self) | |
67 self.slidermapper.pack() | 71 self.slidermapper.pack() |
68 | 72 |
69 print "\tsubmaster control" | 73 print "\tsubmaster control" |
70 self.subpanels = Subpanels(sub_tl, effect_tl, scene_tl, self, self.scalelevels, | 74 self.subpanels = Subpanels(sub_tl, effect_tl, scene_tl, self, self.scalelevels, |
71 Subs, self.xfader, self.changelevel, | 75 Subs, self.xfader, self.changelevel, |
114 print "Light 8.8:", len(Patch.patch), "dimmers patched" | 118 print "Light 8.8:", len(Patch.patch), "dimmers patched" |
115 print "Light 8.8:", len(Subs.subs), "submasters loaded" | 119 print "Light 8.8:", len(Subs.subs), "submasters loaded" |
116 | 120 |
117 def refresh(self, *args): | 121 def refresh(self, *args): |
118 'rebuild interface, reload data' | 122 'rebuild interface, reload data' |
123 print "Light 8.8: Refresh initiated. Cross your fingers." | |
119 self.get_data() | 124 self.get_data() |
125 print "Light 8.8: Subediting refreshed" | |
120 self.subediting.refresh() | 126 self.subediting.refresh() |
127 print "Light 8.8: Rebuilding interface..." | |
121 self.buildinterface() | 128 self.buildinterface() |
122 bindkeys(self.master,'<Escape>', self.quit) | 129 bindkeys(self.master,'<Escape>', self.quit) |
130 print "Light 8.8: Setting up slider patching..." | |
123 self.slidermapper.setup() | 131 self.slidermapper.setup() |
124 # self.master.tk_setPalette('gray40') | 132 # self.master.tk_setPalette('gray40') |
133 print "Light 8.8: Now back to your regularly scheduled Light 8" | |
125 | 134 |
126 def stageassub(self): | 135 def stageassub(self): |
127 """returns the current onstage lighting as a levels | 136 """returns the current onstage lighting as a levels |
128 dictionary, skipping the zeros, and using names where | 137 dictionary, skipping the zeros, and using names where |
129 possible""" | 138 possible""" |
234 | 243 |
235 def backgroundloop(self, *args): | 244 def backgroundloop(self, *args): |
236 self.master.after(50, self.backgroundloop, ()) | 245 self.master.after(50, self.backgroundloop, ()) |
237 self.changelevel() | 246 self.changelevel() |
238 def quit(self, *args): | 247 def quit(self, *args): |
248 print "Light 8.8: And that's my cue to exit..." | |
239 self.save() | 249 self.save() |
250 self.record_end() | |
240 self.master.destroy() | 251 self.master.destroy() |
241 sys.exit() | 252 sys.exit() |
242 def save(self, *args): | 253 def save(self, *args): |
243 filename = '/tmp/light9.prefs' | 254 filename = '/tmp/light9.prefs' |
244 if self.DUMMY: | 255 if self.DUMMY: |
245 filename += '.dummy' | 256 filename += '.dummy' |
246 print "Saving to", filename | 257 print "Light 8.8: Saving to", filename |
247 file = open(filename, 'w') | 258 file = open(filename, 'w') |
248 | 259 |
249 try: | 260 try: |
250 cPickle.dump(Pickles(self.scalelevels, Subs.subs.items()), file) | 261 cPickle.dump(Pickles(self.scalelevels, Subs.subs.items()), file) |
251 except cPickle.UnpickleableError: | 262 except cPickle.UnpickleableError: |
252 print "UnpickleableError! There's yer problem." | 263 print "UnpickleableError! There's yer problem." |
253 def toggle_jostle(self, *args): | 264 def toggle_jostle(self, *args): |
254 self.jostle_mode = not self.jostle_mode | 265 self.jostle_mode = not self.jostle_mode |
266 print "Light 8.8: Jostle mode", ('off', 'on')[self.jostle_mode] | |
267 def record_start(self): | |
268 print "Light 8.8: Recorder started" | |
269 self.rec_file.write("%s:\t%s\n" % (time(), "--- Start ---")) | |
270 self.record_stamp() | |
271 def record_end(self): | |
272 print "Light 8.8: Recorder shutdown" | |
273 self.rec_file.write("%s:\t%s\n" % (time(), "--- End ---")) | |
274 def record_stamp(self): | |
275 'Record the current submaster levels, continue this loop' | |
276 levels = [] | |
277 for n, v in self.scalelevels.items(): | |
278 lev = v.get() | |
279 if lev: | |
280 levels.append('%s\t%s' % (n, lev)) | |
281 | |
282 template = "%s:\t%s\n" % (time(), '\t'.join(levels)) | |
283 self.rec_file.write(template) | |
284 self.master.after(100, self.record_stamp) | |
285 def highlight_sub(self, name, color): | |
286 self.subediting.colorsub(name, color) |