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)