diff --git a/light9/Effects.py b/light9/Effects.py --- a/light9/Effects.py +++ b/light9/Effects.py @@ -22,7 +22,7 @@ class Strip(object): pixels = [] def __repr__(self): - return '' % (self.which, self.pixels[0,:]) + return '' % (self.which, self.pixels[0]) @classmethod def solid(cls, which='L', color=(1,1,1), hsv=None): diff --git a/light9/effecteval/effectloop.py b/light9/effecteval/effectloop.py --- a/light9/effecteval/effectloop.py +++ b/light9/effecteval/effectloop.py @@ -234,6 +234,18 @@ class LedLoop(EffectLoop): for out in outputs: log.debug('combine output %r', out) + + + # workaround- somehow these subs that drive fx aren't + # sending their fx, so we react to the sub + if isinstance(out, Submaster.Submaster) and '*' in out.name: + level = float(out.name.split('*')[1]) + n = out.name.split('*')[0] + if n == 'widered': out = Effects.Strip.solid('W', (1,0,0)) * level + if n == 'widegreen': out = Effects.Strip.solid('W', (0,1,0)) * level + if n == 'wideblue': out = Effects.Strip.solid('W', (0,0,1)) * level + if n == 'whiteled': out = Effects.Strip.solid('W', (1,.5,.5)) * level + if isinstance(out, Effects.Blacklight): # no picking yet #key = 'blacklight%s' % out.which