2153
|
1 This is an editor of :Effect resources, which have graphs like this:
|
|
2
|
|
3 <http://light9.bigasterisk.com/effect/effect43> a :Effect;
|
|
4 rdfs:label "effect43";
|
|
5 :publishAttr :strength;
|
|
6 :setting <http://light9.bigasterisk.com/effect/effect43_set0> .
|
|
7
|
|
8 <http://light9.bigasterisk.com/effect/effect43_set0> :device dev:strip1; :deviceAttr :color; :scaledValue 0.337 .
|
|
9
|
|
10 # Objects
|
|
11
|
|
12 SyncedGraph has the true data.
|
|
13
|
|
14 Effect sends/receives data from one :Effect resource in the graph. Only Effect knows that there are :setting edges in the graph. Everything else on the page
|
|
15 sees the effect as a list of (effect, device, deviceAttr, value) tuples. Those values are non-null. Control elements that aren't contributing the effect
|
|
16 (_probably_ at their zero position, but this is not always true) have a null value.
|
|
17
|
|
18 GraphToControls has a record of all the control widgets on the page, and sends/receives edits with them.
|
|
19
|
|
20 We deal in ControlValue objects, which are the union of a brightness, color, choice, etc. Some layers deal in ControlValue|null. A null value means there is no
|
|
21 :setting for that device+attribute
|
|
22
|
|
23 SyncedGraph and GraphToControls live as long as the web page. Effect can come and go (though there is a plan to make a separate web page url per effect, then
|
|
24 the Effect would live as long as the page too)
|