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()])