# HG changeset patch # User drewp@bigasterisk.com # Date 2023-05-31 06:50:42 # Node ID 8c82f13a3298cc56e4476986f09b8aff7e1ff576 # Parent 63aad60fb070a97d8a7746a80e21ef86444293b9 rm or repair dead code (notes could come back) diff --git a/light9/effect/sequencer/note.py b/light9/effect/sequencer/note.py --- a/light9/effect/sequencer/note.py +++ b/light9/effect/sequencer/note.py @@ -11,7 +11,7 @@ from rdflib import Literal from light9.effect.settings import BareEffectSettings from light9.namespaces import L9 -from light9.newtypes import (Curve, EffectAttr, EffectClass, NoteUri, VTUnion) +from light9.newtypes import (Curve, EffectAttr, NoteUri, VTUnion) log = logging.getLogger('sequencer') diff --git a/light9/effect/sequencer/note_test.py b/light9/effect/sequencer/note_test.py --- a/light9/effect/sequencer/note_test.py +++ b/light9/effect/sequencer/note_test.py @@ -25,14 +25,14 @@ FADER_GRAPH = PREFIXES + ''' ''' -class TestUntimedFaderNote: +# class TestUntimedFaderNote: - def test_returnsEffectSettings(self): - g = MockSyncedGraph(FADER_GRAPH) - n = Note(g, NoteUri(L9['fade1']), timed=False) - out, report = n.outputCurrent() - assert report['effectSettings'] == {'http://light9.bigasterisk.com/strength': 0.6} - assert out == BareEffectSettings(s={EffectAttr(L9['strength']): 0.6}) +# def test_returnsEffectSettings(self): +# g = MockSyncedGraph(FADER_GRAPH) +# n = Note(g, NoteUri(L9['fade1']), timed=False) +# out, report = n.outputCurrent() +# assert report['effectSettings'] == {'http://light9.bigasterisk.com/strength': 0.6} +# assert out == BareEffectSettings(s={EffectAttr(L9['strength']): 0.6}) NOTE_GRAPH = PREFIXES + ''' diff --git a/light9/effect/sequencer/sequencer.py b/light9/effect/sequencer/sequencer.py --- a/light9/effect/sequencer/sequencer.py +++ b/light9/effect/sequencer/sequencer.py @@ -20,7 +20,6 @@ from light9.ascoltami.musictime_client i from light9.effect import effecteval from light9.effect.sequencer import Note from light9.effect.settings import DeviceSettings -from light9.effect.simple_outputs import SimpleOutputs from light9.metrics import metrics from light9.namespaces import L9, RDF from light9.newtypes import NoteUri, Song diff --git a/light9/effect/simple_outputs.py b/light9/effect/simple_outputs.py deleted file mode 100644 --- a/light9/effect/simple_outputs.py +++ /dev/null @@ -1,67 +0,0 @@ -import logging -import traceback -from typing import Any, Dict, List, Tuple, cast -from light9.newtypes import DeviceAttr, DeviceUri, EffectUri, VTUnion -from light9.typedgraph import typedValue - -from rdflib import URIRef - -from light9.effect.scale import scale -from light9.namespaces import L9, RDF - -log = logging.getLogger('simple') - - -class SimpleOutputs: - """ - Watches graph for effects that are just fading output attrs. - Call `values` to get (dev,attr):value settings. - - The alternative to 'simple' is 'custom code' (see effecteval.py) - """ - - def __init__(self, graph): - self.graph = graph - - # effect : [(dev, attr, value, isScaled)] - self.effectOutputs: Dict[EffectUri, List[Tuple[DeviceUri, DeviceAttr, VTUnion, bool]]] = {} - - self.graph.addHandler(self.updateEffectsFromGraph) - - def updateEffectsFromGraph(self): - self.effectOutputs.clear() - for effect in self.graph.subjects(RDF.type, L9['Effect']): - log.debug(f' {effect=}') - settings:List[Tuple[DeviceUri, DeviceAttr, VTUnion, bool]] = [] - for setting in self.graph.objects(effect, L9['setting']): - try: - d = typedValue(DeviceUri, self.graph, setting, L9['device']) - a = typedValue(DeviceAttr, self.graph, setting, L9['deviceAttr']) - v = typedValue(VTUnion | None, self.graph, setting, L9['value']) - sv = typedValue(VTUnion|None, self.graph, setting, L9['scaledValue']) - 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) - except Exception: - traceback.print_exc() - continue - - settingValue = cast(VTUnion, v if v is not None else sv) - settings.append((d, a, settingValue, bool(sv))) - log.debug(f' effect {effect} has {settings=}') - if settings: - self.effectOutputs[effect] = settings - # also have to read eff :effectAttr [ :tint x; :tintStrength y ] - - def values(self, effect, strength, colorScale): - out = {} - for dev, devAttr, value, isScaled in self.effectOutputs.get(effect, []): - if isScaled: - value = scale(value, strength) - if colorScale is not None and devAttr == L9['color']: - value = scale(value, colorScale) - out[(dev, devAttr)] = value - return out diff --git a/light9/effect/simple_outputs_test.py b/light9/effect/simple_outputs_test.py deleted file mode 100644