aboutsummaryrefslogtreecommitdiff
path: root/guile
diff options
context:
space:
mode:
authorThomas White <taw@physics.org>2020-08-30 21:24:29 +0200
committerThomas White <taw@physics.org>2020-08-30 21:24:29 +0200
commit9c87690dd43e6b74c631aea553dfb755ad2202b6 (patch)
tree1657d2662c6af13f52255b424febb06934b0b928 /guile
parentc454bd5e208ebc8c9184e51d728b3c91ad117d4c (diff)
cue-state and apply-state
Diffstat (limited to 'guile')
-rw-r--r--guile/starlet/base.scm19
1 files changed, 19 insertions, 0 deletions
diff --git a/guile/starlet/base.scm b/guile/starlet/base.scm
index f0dead1..1e6e44a 100644
--- a/guile/starlet/base.scm
+++ b/guile/starlet/base.scm
@@ -29,6 +29,8 @@
attr-list
current-state
lighting-state
+ cue-state
+ apply-state
at))
(define-class <fixture-attribute> (<object>)
@@ -223,6 +225,10 @@
new))
+(define (apply-state state)
+ (add-state-to-state! merge-rule-ltp state (current-state)))
+
+
(define (value->number val time)
(if (procedure? val)
(val time)
@@ -413,6 +419,19 @@
(current-state)))))
+(define-syntax cue-state
+ (syntax-rules ()
+
+ ((_)
+ make-empty-state)
+
+ ((_ body ...)
+ (lambda ()
+ (parameterize ((current-state (make-empty-state)))
+ body ...
+ (current-state))))))
+
+
(define-syntax at
(syntax-rules ()