aboutsummaryrefslogtreecommitdiff
path: root/examples
diff options
context:
space:
mode:
authorThomas White <taw@physics.org>2020-08-21 22:08:46 +0200
committerThomas White <taw@physics.org>2020-08-21 22:08:46 +0200
commit7057172ad190ae0fc718a93a7adb07b826dee323 (patch)
treeec56d2a659162795636526b94633f196f71aad9d /examples
parente6905bb5192eb0a3dd14b713b3229fe2847d276a (diff)
Add current-state parameter and define-state macro
Diffstat (limited to 'examples')
-rw-r--r--examples/demo.scm71
1 files changed, 32 insertions, 39 deletions
diff --git a/examples/demo.scm b/examples/demo.scm
index a724152..315ada4 100644
--- a/examples/demo.scm
+++ b/examples/demo.scm
@@ -18,26 +18,27 @@
(make-midi-controller! #:channel 14
#:cc-number 19))
-(define (worklight)
- (let ((state (make-empty-state))
- (fader-pos (get-controller-value working-light-fader)))
- (set-attr! state dim11 'intensity fader-pos)
- (set-attr! state dim12 'intensity fader-pos)
- (set-attr! state dim13 'intensity fader-pos)
- state))
+(define-state worklight
+ (let ((fader-pos (lambda ()
+ (get-controller-value working-light-fader))))
+ (set-attr! (current-state) dim11 'intensity (fader-pos))
+ (set-attr! (current-state) dim12 'intensity (fader-pos))
+ (set-attr! (current-state) dim13 'intensity (fader-pos))))
(register-state! worklight)
+;; Same, for some different fixtures
+
(define movers-fader
(make-midi-controller! #:channel 14
#:cc-number 18))
-(define (movers)
- (let ((state (make-empty-state))
- (fader-pos (get-controller-value movers-fader)))
- (set-attr! state mh1 'intensity fader-pos)
- (set-attr! state mh2 'intensity fader-pos)
- state))
+
+(define-state movers
+ (let ((fader-pos (lambda ()
+ (get-controller-value movers-fader))))
+ (set-attr! (current-state) mh1 'intensity (fader-pos))
+ (set-attr! (current-state) mh2 'intensity (fader-pos))))
(register-state! movers)
@@ -46,39 +47,31 @@
(make-midi-controller! #:channel 14
#:cc-number 7))
-(define (example-state-1)
-
- (let ((state (make-empty-state)))
-
- ;; Front wash
- (set-attr! state dim11 'intensity 50)
- (set-attr! state dim12 'intensity 50)
- (set-attr! state dim13 'intensity 50)
-
- ;; Sidelight
- (set-attr! state dim7 'intensity (flash 2))
- (set-attr! state dim8 'intensity 50)
-
- (set-attr! state dim48 'intensity
- (lambda (a)
- (get-controller-value pot1)))
+(define-state example-state-1
- state))
+ ;; Front wash
+ (set-attr! (current-state) dim11 'intensity 50)
+ (set-attr! (current-state) dim12 'intensity 50)
+ (set-attr! (current-state) dim13 'intensity 50)
+ ;; Sidelight
+ (set-attr! (current-state) dim7 'intensity (flash 2))
+ (set-attr! (current-state) dim8 'intensity 50)
-(define (example-state-2)
+ (set-attr! (current-state) dim48 'intensity
+ (lambda (a)
+ (get-controller-value pot1))))
- (let ((state (make-empty-state)))
- ;; Front wash
- (set-attr! state dim1 'intensity 10)
- (set-attr! state dim2 'intensity 10)
- (set-attr! state dim3 'intensity 10)
+(define-state example-state-2
- ;; Sidelight
- (set-attr! state dim7 'intensity (flash 5))
+ ;; Front wash
+ (set-attr! (current-state) dim1 'intensity 10)
+ (set-attr! (current-state) dim2 'intensity 10)
+ (set-attr! (current-state) dim3 'intensity 10)
- state))
+ ;; Sidelight
+ (set-attr! (current-state) dim7 'intensity (flash 5)))
(define cue-list