Changeset - 604fbd524391
[Not reviewed]
default
0 2 0
drewp@bigasterisk.com - 8 years ago 2017-06-11 18:58:23
drewp@bigasterisk.com
effecteval graph read optimizations
Ignore-this: 1adf7746190be77cc7f45d7144e00601
2 files changed with 8 insertions and 6 deletions:
0 comments (0 inline, 0 general)
light9/effect/effecteval.py
Show inline comments
 
@@ -69,17 +69,18 @@ class EffectEval(object):
 
            self.graph.addHandler(self.updateEffectsFromGraph)
 

	
 
    def updateEffectsFromGraph(self):
 
        for effect in self.graph.subjects(RDF.type, L9['Effect']):
 
            settings = []
 
            for setting in self.graph.objects(effect, L9['setting']):
 
                settingValues = dict(self.graph.predicate_objects(setting))
 
                try:
 
                    d = self.graph.value(setting, L9['device'])
 
                    a = self.graph.value(setting, L9['deviceAttr'])
 
                    v = self.graph.value(setting, L9['value'])
 
                    sv = self.graph.value(setting, L9['scaledValue'])
 
                    d = settingValues.get(L9['device'], None)
 
                    a = settingValues.get(L9['deviceAttr'], None)
 
                    v = settingValues.get(L9['value'], None)
 
                    sv = settingValues.get(L9['scaledValue'], None)
 
                    if not (bool(v) ^ bool(sv)):
 
                        raise NotImplementedError('no value for %s' % setting)
 
                    if d is None:
 
                        raise TypeError('no device on %s' % effect)
 
                    if a is None:
 
                        raise TypeError('no attr on %s' % effect)
light9/effect/sequencer.py
Show inline comments
 
@@ -81,14 +81,15 @@ class Note(object):
 
        g = self.graph = graph
 
        self.uri = uri
 
        self.effectEval = effectevalModule.EffectEval(
 
            graph, g.value(uri, L9['effectClass']), sharedEffectOutputs)
 
        self.baseEffectSettings = {}  # {effectAttr: value}
 
        for s in g.objects(uri, L9['setting']):
 
            ea = g.value(s, L9['effectAttr'])
 
            self.baseEffectSettings[ea] = g.value(s, L9['value'])
 
            settingValues = dict(g.predicate_objects(s))
 
            ea = settingValues[L9['effectAttr']]
 
            self.baseEffectSettings[ea] = settingValues[L9['value']]
 
            
 
        floatVal = lambda s, p: float(g.value(s, p).toPython())
 
        originTime = floatVal(uri, L9['originTime'])
 
        self.points = []
 
        for curve in g.objects(uri, L9['curve']):
 
            if g.value(curve, L9['attr']) != L9['strength']:
0 comments (0 inline, 0 general)