comparison light8/Lightboard.py @ 71:177e9ba0b4a7

simple DMX server
author dmcc
date Thu, 11 Jul 2002 09:33:02 +0000
parents ab0be21b549b
children 609cb9ae53b1
comparison
equal deleted inserted replaced
70:45664ac19f65 71:177e9ba0b4a7
2 2
3 from Tix import * 3 from Tix import *
4 from time import sleep 4 from time import sleep
5 from signal import signal, SIGINT 5 from signal import signal, SIGINT
6 import sys, cPickle 6 import sys, cPickle
7 # import shelve
8 7
9 import io 8 import io
10 from uihelpers import * 9 from uihelpers import *
11 from panels import * 10 from panels import *
12 from Xfader import * 11 from Xfader import *
33 self.scalelevels = {} 32 self.scalelevels = {}
34 self.xfader = Xfader(self.scalelevels) # doesn't draw any UI yet-- look for self.xfader.setupwidget() 33 self.xfader = Xfader(self.scalelevels) # doesn't draw any UI yet-- look for self.xfader.setupwidget()
35 self.oldlevels = [None] * 68 # never replace this; just clear it 34 self.oldlevels = [None] * 68 # never replace this; just clear it
36 self.subediting = Subediting(currentoutputlevels=self.oldlevels) 35 self.subediting = Subediting(currentoutputlevels=self.oldlevels)
37 36
38 # self.shelf = shelve.open('/tmp/light9.newprefs')
39 # self.windowpos = self.shelf.get('window', {})
40 self.windowpos = 0 37 self.windowpos = 0
41 self.get_data() 38 self.get_data()
42 self.buildinterface() 39 self.buildinterface()
43 self.load() 40 self.load()
44 self.backgroundloop() 41 self.backgroundloop()
148 newlevels = s.get_levels(level=self.scalelevels[name].get()) 145 newlevels = s.get_levels(level=self.scalelevels[name].get())
149 for (ch, fadelev) in newlevels.items(): 146 for (ch, fadelev) in newlevels.items():
150 levels[ch-1] = max(levels[ch-1], fadelev) 147 levels[ch-1] = max(levels[ch-1], fadelev)
151 148
152 levels = [int(l) for l in levels] 149 levels = [int(l) for l in levels]
153 150 lenlevels = len(levels)
154 for lev,lab,oldlev,numlab in zip(levels, self.channel_levels, 151 changed = [] # list of changed levels
152
153 for lev,lab,oldlev,numlab,idx in zip(levels, self.channel_levels,
155 self.oldlevels, 154 self.oldlevels,
156 self.leveldisplay.number_labels): 155 self.leveldisplay.number_labels,
156 xrange(1, lenlevels + 2)):
157 if lev != oldlev: 157 if lev != oldlev:
158 changed.extend((idx, lev))
158 lab.config(text="%d" % lev) # update labels in lev display 159 lab.config(text="%d" % lev) # update labels in lev display
159 colorlabel(lab) # recolor labels 160 colorlabel(lab) # recolor labels
160 if lev < oldlev: 161 if lev < oldlev:
161 numlab['bg'] = 'blue' 162 numlab['bg'] = 'blue'
162 else: 163 else:
163 numlab['bg'] = 'red' 164 numlab['bg'] = 'red'
164 else: 165 else:
165 numlab['bg'] = 'lightPink' 166 numlab['bg'] = 'lightPink'
166 167
167 self.oldlevels[:] = levels[:] # replace the elements in oldlevels - don't make a new list (Subediting is watching it) 168 # replace the elements in oldlevels - don't make a new list
169 # (Subediting is watching it)
170 self.oldlevels[:] = levels[:]
168 171
169 self.parportdmx.sendlevels(levels) 172 # self.parportdmx.sendlevels(levels)
173 self.parportdmx.sendupdates(changed)
170 174
171 def updatestagelevels(self): 175 def updatestagelevels(self):
172 self.master.after(100, self.updatestagelevels) 176 self.master.after(100, self.updatestagelevels)
173 for lev, idx in zip(self.oldlevels, xrange(0, 68 + 1)): 177 for lev, idx in zip(self.oldlevels, xrange(0, 68 + 1)):
174 self.stage.updatelightlevel(Patch.get_channel_name(idx + 1), lev) 178 self.stage.updatelightlevel(Patch.get_channel_name(idx + 1), lev)