Mercurial > code > home > repos > light9
changeset 1136:f48be3d18387
Strip can be scaled.
Ignore-this: e8a739d189357b5befcca2ba6fc78ec7
author | drewp@bigasterisk.com |
---|---|
date | Sat, 14 Jun 2014 07:10:00 +0000 |
parents | d5c87125225e |
children | 05f272019697 |
files | light9/Effects.py light9/effecteval/effect.py |
diffstat | 2 files changed, 22 insertions(+), 2 deletions(-) [+] |
line wrap: on
line diff
--- a/light9/Effects.py Sat Jun 14 06:54:54 2014 +0000 +++ b/light9/Effects.py Sat Jun 14 07:10:00 2014 +0000 @@ -27,6 +27,17 @@ x.pixels = [tuple(color)] * 50 return x + def __mul__(self, f): + if not isinstance(f, (int, float)): + raise TypeError + + s = Strip() + s.which = self.which + s.pixels = [(r*f, g*f, b*f) for r,g,b in self.pixels] + return s + + __rmul__ = __mul__ + @register class Blacklight(float): """a level for the blacklight PWM output"""
--- a/light9/effecteval/effect.py Sat Jun 14 06:54:54 2014 +0000 +++ b/light9/effecteval/effect.py Sat Jun 14 07:10:00 2014 +0000 @@ -9,6 +9,9 @@ # consider http://waxeye.org/ for a parser that can be used in py and js +class CouldNotConvert(TypeError): + pass + class CodeLine(object): """code string is immutable""" def __init__(self, graph, code): @@ -64,18 +67,24 @@ out = {} subs = Submaster.get_global_submasters(self.graph) for localVar, uri in resources.items(): + for rdfClass in self.graph.objects(uri, RDF.type): if rdfClass == L9['Curve']: cr = CurveResource(self.graph, uri) cr.loadCurve() out[localVar] = cr.curve + break elif rdfClass == L9['Submaster']: out[localVar] = subs.get_sub_by_uri(uri) + break else: - out[localVar] = uri + out[localVar] = CouldNotConvert(uri) + break + else: + out[localVar] = CouldNotConvert(uri) return out - + class EffectNode(object): def __init__(self, graph, uri): self.graph, self.uri = graph, uri