Changeset - a1b30c3463b4
[Not reviewed]
default
0 0 1
drewp@bigasterisk.com - 20 months ago 2023-05-18 02:36:07
drewp@bigasterisk.com
add some old docs that still look good
1 file changed with 24 insertions and 0 deletions:
0 comments (0 inline, 0 general)
light9/web/live/README.md
Show inline comments
 
new file 100644
 
This is an editor of :Effect resources, which have graphs like this:
 

	
 
    <http://light9.bigasterisk.com/effect/effect43> a :Effect;
 
    rdfs:label "effect43";
 
    :publishAttr :strength;
 
    :setting <http://light9.bigasterisk.com/effect/effect43_set0> .
 

	
 
    <http://light9.bigasterisk.com/effect/effect43_set0> :device dev:strip1; :deviceAttr :color; :scaledValue 0.337 .
 

	
 
# Objects
 

	
 
SyncedGraph has the true data.
 

	
 
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
 
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
 
(_probably_ at their zero position, but this is not always true) have a null value.
 

	
 
GraphToControls has a record of all the control widgets on the page, and sends/receives edits with them.
 

	
 
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
 
:setting for that device+attribute
 

	
 
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
 
the Effect would live as long as the page too)
0 comments (0 inline, 0 general)