From 7057172ad190ae0fc718a93a7adb07b826dee323 Mon Sep 17 00:00:00 2001 From: Thomas White Date: Fri, 21 Aug 2020 22:08:46 +0200 Subject: Add current-state parameter and define-state macro --- examples/demo.scm | 71 +++++++++++++++++++++++++------------------------------ 1 file changed, 32 insertions(+), 39 deletions(-) (limited to 'examples') 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 -- cgit v1.2.3