aboutsummaryrefslogtreecommitdiff
path: root/guile/starlet
diff options
context:
space:
mode:
Diffstat (limited to 'guile/starlet')
-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 ()