comparison light8/Subs.py @ 71:177e9ba0b4a7

simple DMX server
author dmcc
date Thu, 11 Jul 2002 09:33:02 +0000
parents 71489bb71528
children
comparison
equal deleted inserted replaced
70:45664ac19f65 71:177e9ba0b4a7
168 self.name = name # keep this consistent please 168 self.name = name # keep this consistent please
169 self.levels = levels 169 self.levels = levels
170 self.dimmers = dimmers # needed? 170 self.dimmers = dimmers # needed?
171 self.is_effect = callable(self.levels) 171 self.is_effect = callable(self.levels)
172 self.slideradjuster = SliderAdjuster() 172 self.slideradjuster = SliderAdjuster()
173 self.namecache = {}
173 if self.is_effect: 174 if self.is_effect:
174 self.params = Params() 175 self.params = Params()
175 self.generator = self.levels(self.params, self.slideradjuster) 176 self.generator = self.levels(self.params, self.slideradjuster)
176 self.generator.next() 177 self.generator.next()
177 self.color = color 178 self.color = color
179 def resolve_name(self, ch_name):
180 if ch_name in self.namecache:
181 return self.namecache[ch_name]
182 else:
183 resolved = get_dmx_channel(ch_name)
184 self.namecache[ch_name] = resolved
185 return resolved
178 def set_slider_var(self, slidervar): 186 def set_slider_var(self, slidervar):
179 if self.is_effect: 187 if self.is_effect:
180 self.slideradjuster.var = slidervar 188 self.slideradjuster.var = slidervar
181 def draw_tk(self, frame): 189 def draw_tk(self, frame):
182 if self.is_effect: 190 if self.is_effect:
189 197
190 return state 198 return state
191 def set_state(self, statedict): 199 def set_state(self, statedict):
192 self.__dict__.update(statedict) 200 self.__dict__.update(statedict)
193 def get_levels(self, level): 201 def get_levels(self, level):
194 """returns a scaled version of the levels in the sub; channel names are resolved to numbers""" 202 """returns a scaled version of the levels in the sub; channel names
203 are resolved to numbers"""
195 d = {} 204 d = {}
196 if level == 0: 205 if level == 0:
197 self.slideradjuster.atzero = 1 206 self.slideradjuster.atzero = 1
198 return d 207 return d
199 if self.is_effect: # effect 208 if self.is_effect: # effect
200 d = self.generator.next() 209 d = self.generator.next()
201 self.slideradjuster.atzero = 0 210 self.slideradjuster.atzero = 0
211 return dict([(get_dmx_channel(ch), float(lev) * float(level))
212 for ch, lev in d.items()])
202 else: # dictionary (standard) 213 else: # dictionary (standard)
203 d = self.levels 214 d = self.levels
204 return dict([(get_dmx_channel(ch), float(lev) * float(level)) 215 return dict([(self.resolve_name(ch), float(lev) * float(level))
205 for ch, lev in d.items()]) 216 for ch, lev in d.items()])
206 217
207 # 218 #
208 # methods for Subediting to use 219 # methods for Subediting to use
209 # 220 #
210 def getlevels(self): 221 def getlevels(self):