blob: ce752820bfe5240e3f85e66284463a8043592532 (
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
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
|
(define set-level
(lambda (fix level)
(cond
[(list? fix) (for-each (lambda (q)
(set-level q level))
fix)]
[(symbol? fix) (set-intensity
(find-fixture fixtures fix)
level)]
[else (set-intensity fix level)])))
(define find-fixture
(lambda (fixtures name)
(cond
[(null? fixtures) #f]
[(eq? (fixture-name (car fixtures)) name) (car fixtures)]
[else (find-fixture (cdr fixtures) name)])))
(define find-fixture-class
(lambda (fixture-classes name)
(cond
[(null? fixture-classes) #f]
[(string-ci=? (fixture-class-name (car fixture-classes)) name) (car fixture-classes)]
[else (find-fixture-class (cdr fixture-classes) name)])))
(define patch-many
(lambda (fixcls prefix n universe start-addr)
(define f (lambda (i)
(patch-fixture (symbol-append prefix (string->symbol (number->string i)))
fixcls universe (+ start-addr (- i 1)))
(if (< i n)
(f (+ i 1)))))
(if fixcls
(f 1)
(display "Fixture class not available\n"))))
(define at
(lambda (fixname level)
(cons fixname (cons 'intensity level))))
(define show-state-absolute
(lambda (state)
(set-level fixtures 0)
(for-each (lambda (q)
(set-level
(car q)
(cddr q)))
state)))
(patch-many (find-fixture-class fixture-class-library "Robe Robin DL7S Profile Mode 1") 'mh 4 0 51)
(patch-many (find-fixture-class fixture-class-library "Generic dimmer") 'dim 6 0 1)
(define home (list
(at 'mh1 0)
(at 'mh2 0)
(at 'mh3 (+ 30 30))
(at 'mh4 0)
(at 'dim1 0)
(at 'dim2 0)))
(show-state-absolute home)
|