diff options
author | Thomas White <taw@physics.org> | 2020-08-21 22:08:46 +0200 |
---|---|---|
committer | Thomas White <taw@physics.org> | 2020-08-21 22:08:46 +0200 |
commit | 7057172ad190ae0fc718a93a7adb07b826dee323 (patch) | |
tree | ec56d2a659162795636526b94633f196f71aad9d /examples | |
parent | e6905bb5192eb0a3dd14b713b3229fe2847d276a (diff) |
Add current-state parameter and define-state macro
Diffstat (limited to 'examples')
-rw-r--r-- | examples/demo.scm | 71 |
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 |