Changeset - d07b3a20c48e
[Not reviewed]
default
0 1 0
drewp - 22 years ago 2002-07-07 12:15:34

subeditor begins to work
1 file changed with 17 insertions and 2 deletions:
0 comments (0 inline, 0 general)
light8/Subs.py
Show inline comments
 
@@ -155,25 +155,26 @@ class SliderAdjuster:
 
        return self.atzero
 
    def __getstate__(self):
 
        state = self.__dict__.copy()
 
        # remove var (non-pickleable)
 
        try:
 
            del state['var']
 
        except KeyError:
 
            pass
 
        return state
 
    # no setstate needed
 

	
 
class Sub:
 
    def __init__(self, levels, dimmers=68, color=None):
 
    def __init__(self, name, levels, dimmers=68, color=None):
 
        self.name = name # keep this consistent please
 
        self.levels = levels
 
        self.dimmers = dimmers # needed?
 
        self.is_effect = callable(self.levels)
 
        self.slideradjuster = SliderAdjuster()
 
        if self.is_effect:
 
            self.params = Params()
 
            self.generator = self.levels(self.params, self.slideradjuster)
 
            self.generator.next()
 
        self.color = color
 
    def set_slider_var(self, slidervar):
 
        if self.is_effect:
 
            self.slideradjuster.var = slidervar
 
@@ -181,43 +182,57 @@ class Sub:
 
        if self.is_effect:
 
            self.params.draw_tk(frame)
 
    def get_state(self):
 
        state = self.__dict__.copy()
 
        if self.is_effect:
 
            del state['levels']
 
            del state['generator']
 

	
 
        return state
 
    def set_state(self, statedict):
 
        self.__dict__.update(statedict)
 
    def get_levels(self, level):
 
        """returns a scaled version of the levels in the sub; channel names are resolved to numbers"""
 
        d = {}
 
        if level == 0: 
 
            self.slideradjuster.atzero = 1
 
            return d
 
        if self.is_effect: # effect
 
            d = self.generator.next()
 
            self.slideradjuster.atzero = 0
 
        else: # dictionary (standard)
 
            d = self.levels
 
        return dict([(get_dmx_channel(ch), float(lev) * float(level)) 
 
            for ch, lev in d.items()])
 

	
 
    #
 
    # methods for Subediting to use
 
    #
 
    def getlevels(self):
 
        return self.levels.copy()
 
    def reviselevels(self,levels):
 
        # we can accept these new levels; subediting has done all the work
 
        self.levels.update(levels)
 
                
 
    
 

	
 
def reload_data(dummy):
 
    global subs
 
    if dummy:
 
        import ConfigDummy as Config
 
    else:
 
        import Config
 

	
 
    reload(Config)
 

	
 
    subs = {}
 
    for name, levels in Config.subs.items():
 
        if type(name) == TupleType:
 
            name, color = name
 
        else:
 
            color = None
 

	
 
        subs[name] = Sub(levels, color=color)
 
        subs[name] = Sub(name, levels, color=color)
 

	
 
    # subs = dict([(name, Sub(levels)) for name, levels in Config.subs.items()])
 
def longestsubname():
 
    return max([len(x) for x in subs.keys()])
0 comments (0 inline, 0 general)