aboutsummaryrefslogtreecommitdiffstats
path: root/alv/base
diff options
context:
space:
mode:
authors-ol <s-ol@users.noreply.github.com>2020-07-11 17:25:50 +0000
committers-ol <s-ol@users.noreply.github.com>2020-07-11 17:37:04 +0000
commitc6fa7aa7657647fffbbe8a0507e29bcd9a980dba (patch)
tree9b58942e0d5c2ad4be70fd7f628893e7f984dfc7 /alv/base
parentrename time/sequence to time/val-seq and add time/bang-seq (diff)
downloadalive-c6fa7aa7657647fffbbe8a0507e29bcd9a980dba.tar.gz
alive-c6fa7aa7657647fffbbe8a0507e29bcd9a980dba.zip
add vis field to Ops
Diffstat (limited to 'alv/base')
-rw-r--r--alv/base/op.moon16
1 files changed, 14 insertions, 2 deletions
diff --git a/alv/base/op.moon b/alv/base/op.moon
index b152543..625e1a8 100644
--- a/alv/base/op.moon
+++ b/alv/base/op.moon
@@ -22,7 +22,8 @@ class Op
fork: =>
out = if @out then @out\fork!
state = if @state then deep_copy @state
- @@ out, state
+ vis = if @vis then deep_copy @vis
+ @@ out, state, vis
--- internal state of this Op.
--
@@ -31,6 +32,16 @@ class Op
--
-- @tfield table state
+ --- visualisation data of this Op.
+ --
+ -- This may be any simple Lua value, including Lua tables, as long as it has
+ -- no metatables, multiple references/loops, userdata etc.
+ --
+ -- This value is exposed to alv editors in order to render realtime
+ -- visualisations overlaid onto the program text.
+ --
+ -- @tfield table vis
+
--- `Result` instance representing this Op's computed output value.
--
-- Must be set to a `Result` instance once `setup` finishes. Must not change
@@ -107,7 +118,8 @@ class Op
-- @classmethod
-- @tparam ?Result out `out`
-- @tparam ?table state `state`
- new: (@out, @state) =>
+ -- @tparam ?table vis `vis`
+ new: (@out, @state, @vis={}) =>
do_setup = (old, cur) ->
for k, cur_val in pairs cur