Mercurial > code > home > repos > light9
comparison light8/Subs.py @ 36:d07b3a20c48e
subeditor begins to work
author | drewp |
---|---|
date | Sun, 07 Jul 2002 12:15:34 +0000 |
parents | f595fdd4c548 |
children | 71489bb71528 |
comparison
equal
deleted
inserted
replaced
35:3cbe7110d8f7 | 36:d07b3a20c48e |
---|---|
162 pass | 162 pass |
163 return state | 163 return state |
164 # no setstate needed | 164 # no setstate needed |
165 | 165 |
166 class Sub: | 166 class Sub: |
167 def __init__(self, levels, dimmers=68, color=None): | 167 def __init__(self, name, levels, dimmers=68, color=None): |
168 self.name = name # keep this consistent please | |
168 self.levels = levels | 169 self.levels = levels |
169 self.dimmers = dimmers # needed? | 170 self.dimmers = dimmers # needed? |
170 self.is_effect = callable(self.levels) | 171 self.is_effect = callable(self.levels) |
171 self.slideradjuster = SliderAdjuster() | 172 self.slideradjuster = SliderAdjuster() |
172 if self.is_effect: | 173 if self.is_effect: |
188 | 189 |
189 return state | 190 return state |
190 def set_state(self, statedict): | 191 def set_state(self, statedict): |
191 self.__dict__.update(statedict) | 192 self.__dict__.update(statedict) |
192 def get_levels(self, level): | 193 def get_levels(self, level): |
194 """returns a scaled version of the levels in the sub; channel names are resolved to numbers""" | |
193 d = {} | 195 d = {} |
194 if level == 0: | 196 if level == 0: |
195 self.slideradjuster.atzero = 1 | 197 self.slideradjuster.atzero = 1 |
196 return d | 198 return d |
197 if self.is_effect: # effect | 199 if self.is_effect: # effect |
200 else: # dictionary (standard) | 202 else: # dictionary (standard) |
201 d = self.levels | 203 d = self.levels |
202 return dict([(get_dmx_channel(ch), float(lev) * float(level)) | 204 return dict([(get_dmx_channel(ch), float(lev) * float(level)) |
203 for ch, lev in d.items()]) | 205 for ch, lev in d.items()]) |
204 | 206 |
207 # | |
208 # methods for Subediting to use | |
209 # | |
210 def getlevels(self): | |
211 return self.levels.copy() | |
212 def reviselevels(self,levels): | |
213 # we can accept these new levels; subediting has done all the work | |
214 self.levels.update(levels) | |
215 | |
216 | |
217 | |
205 def reload_data(dummy): | 218 def reload_data(dummy): |
206 global subs | 219 global subs |
207 if dummy: | 220 if dummy: |
208 import ConfigDummy as Config | 221 import ConfigDummy as Config |
209 else: | 222 else: |
216 if type(name) == TupleType: | 229 if type(name) == TupleType: |
217 name, color = name | 230 name, color = name |
218 else: | 231 else: |
219 color = None | 232 color = None |
220 | 233 |
221 subs[name] = Sub(levels, color=color) | 234 subs[name] = Sub(name, levels, color=color) |
222 | 235 |
223 # subs = dict([(name, Sub(levels)) for name, levels in Config.subs.items()]) | 236 # subs = dict([(name, Sub(levels)) for name, levels in Config.subs.items()]) |
237 def longestsubname(): | |
238 return max([len(x) for x in subs.keys()]) |