Mercurial > code > home > repos > light9
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): |