diff options
Diffstat (limited to 'guile')
-rw-r--r-- | guile/starlet/base.scm | 19 |
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 () |