summaryrefslogtreecommitdiff
path: root/guile/nanolight/fixture-library/robe.scm
blob: 8a081851d9ab77df35c273bebc9db137d09d66c1 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
(define-module (nanolight fixture-library robe)
  #:use-module (oop goops)
  #:use-module (nanolight fixture)
  #:export (robe-dl7s-profile-mode1))


(define (robe-dl7s-profile-mode1)
  (list

    (make <fixture-attribute> #:name 'pan
      #:range '(0 540) #:type 'continuous #:home-value 270
      #:translator (lambda (universe start-addr value set-dmx)
                     (let ((val16 (* value (/ 65536 540))))
                       (set-dmx universe (chan 1 start-addr)
                         (msb val16))
                       (set-dmx universe (chan 2 start-addr)
                         (lsb val16)))))

    (make <fixture-attribute> #:name 'tilt
      #:range '(0 270) #:type 'continuous #:home-value 135
      #:translator (lambda (universe start-addr value set-dmx)
                     (let ((val16 (* value (/ 65536 270))))
                       (set-dmx universe (chan 3 start-addr)
                         (msb val16))
                       (set-dmx universe (chan 4 start-addr)
                         (lsb val16)))))

    (make <fixture-attribute> #:name 'strobe
      #:range '(#f #t) #:type 'step #:home-value #f
      #:translator (lambda (universe start-addr value set-dmx)
                     (set-dmx universe (chan 49 start-addr)
                       (if value 95 32))))

    (make <fixture-attribute> #:name 'intensity
      #:range '(0 100) #:type 'continuous #:home-value 0
      #:translator (lambda (universe start-addr value set-dmx)
                     (let ((val16 (* value (/ 65536 100))))
                       (set-dmx universe (chan 50 start-addr)
                         (msb val16))
                       (set-dmx universe (chan 51 start-addr)
                         (lsb val16)))))

    (make <fixture-attribute> #:name 'prism
      #:range '(#f #t) #:type 'step #:home-value #f
      #:translator (lambda (universe start-addr value set-dmx)
                     (set-dmx universe (chan 28 start-addr)
                       (if value 50 0))))))