aboutsummaryrefslogtreecommitdiff
path: root/guile/starlet/base.scm
diff options
context:
space:
mode:
Diffstat (limited to 'guile/starlet/base.scm')
-rw-r--r--guile/starlet/base.scm15
1 files changed, 14 insertions, 1 deletions
diff --git a/guile/starlet/base.scm b/guile/starlet/base.scm
index 839c064..2d218cd 100644
--- a/guile/starlet/base.scm
+++ b/guile/starlet/base.scm
@@ -326,7 +326,20 @@
combined-state)
(hirestime)))
- (scanout-fixture fix get-attr set-dmx))
+ ;; Helper function to set 8-bit DMX value
+ (define (set-chan relative-channel-number value)
+ (set-dmx (get-fixture-universe fix)
+ (+ (get-fixture-addr fix)
+ (- relative-channel-number 1))
+ value))
+
+ ;; Helper function to set 16-bit DMX value
+ (define (set-chan-16bit relative-channel-number value max-value)
+ (let ((val16 (* value (/ 65535 max-value))))
+ (set-chan relative-channel-number (msb val16))
+ (set-chan (+ relative-channel-number 1) (lsb val16))))
+
+ (scanout-fixture fix get-attr set-chan set-chan-16bit))
(atomic-box-ref patched-fixture-list)))