From 2aefc871b35db434fbc07af48cfe1b5f75a73076 Mon Sep 17 00:00:00 2001 From: s-ol Date: Tue, 12 May 2020 16:20:52 +0200 Subject: RTNode constifies constant SigStreams --- alv/base/input.moon | 19 +++++++++++++++---- 1 file changed, 15 insertions(+), 4 deletions(-) (limited to 'alv/base') diff --git a/alv/base/input.moon b/alv/base/input.moon index b73a476..f29bd10 100644 --- a/alv/base/input.moon +++ b/alv/base/input.moon @@ -76,8 +76,11 @@ class Input metatype: => @result.metatype --- the current value - -- - -- @tfield SigStream result + -- @tfield Result result + + --- the Input mode + -- @tfield string mode `'hot'`, `'cold'` or `'io'`. + mode: 'hot' --- members -- @section members @@ -125,17 +128,25 @@ class Input InputType value class ColdInput extends Input + mode: 'cold' dirty: => false class ValueInput extends Input - setup: (old) => @dirty_setup = not old or @result != old.result + new: (result) => + super result + @mode = if @result.metatype == '=' then 'cold' else 'hot' + + setup: (old) => + @dirty_setup = not old or @result != old.result + finish_setup: => @dirty_setup = nil + dirty: => return @dirty_setup if @dirty_setup != nil @result\dirty! class IOInput extends Input - io: true + mode: 'io' mapping = { [Constant]: ValueInput -- cgit v1.2.3