Mercurial > code > home > repos > light9
changeset 2335:54cf7034bee0
EE don't abort compile on partial data
author | drewp@bigasterisk.com |
---|---|
date | Fri, 02 Jun 2023 14:54:11 -0700 |
parents | 887fde4a9a2c |
children | 47f7f5ac81e8 |
files | light9/effect/sequencer/eval_faders.py |
diffstat | 1 files changed, 16 insertions(+), 6 deletions(-) [+] |
line wrap: on
line diff
--- a/light9/effect/sequencer/eval_faders.py Fri Jun 02 14:53:18 2023 -0700 +++ b/light9/effect/sequencer/eval_faders.py Fri Jun 02 14:54:11 2023 -0700 @@ -52,15 +52,25 @@ """rebuild our data from the graph""" self.faders = [] for fader in self.graph.subjects(RDF.type, L9['Fader']): - effect = typedValue(EffectUri, self.graph, fader, L9['effect']) - setting = typedValue(Node, self.graph, fader, L9['setting']) - setAttr = typedValue(EffectAttr, self.graph, setting, L9['effectAttr']) - self.faders.append(Fader(self.graph, self.lib, cast(URIRef, fader), effect, setAttr)) + try: + self.faders.append(self._compileFader(fader)) + except ValueError: + pass # this could go in a second, smaller addHandler call to avoid rebuilding Fader objs constantly for f in self.faders: - setting = typedValue(Node, self.graph, f.uri, L9['setting']) - f.value = typedValue(float, self.graph, setting, L9['value']) + try: + setting = typedValue(Node, self.graph, f.uri, L9['setting']) + except ValueError: + f.value = None + else: + f.value = typedValue(float, self.graph, setting, L9['value']) + + def _compileFader(self, fader: URIRef) -> Fader: + effect = typedValue(EffectUri, self.graph, fader, L9['effect']) + setting = typedValue(Node, self.graph, fader, L9['setting']) + setAttr = typedValue(EffectAttr, self.graph, setting, L9['effectAttr']) + return (Fader(self.graph, self.lib, cast(URIRef, fader), effect, setAttr)) def computeOutput(self) -> DeviceSettings: faderEffectOutputs: List[DeviceSettings] = []