diff options
Diffstat (limited to 'guile/nanolight/fixture.scm')
-rw-r--r-- | guile/nanolight/fixture.scm | 22 |
1 files changed, 5 insertions, 17 deletions
diff --git a/guile/nanolight/fixture.scm b/guile/nanolight/fixture.scm index 4a530f7..df4b168 100644 --- a/guile/nanolight/fixture.scm +++ b/guile/nanolight/fixture.scm @@ -1,10 +1,9 @@ (define-module (nanolight fixture) #:use-module (oop goops) - #:use-module (nanolight state) #:use-module (ice-9 threads) #:export (<fixture> <fixture-attribute> make-output - patch-fixture show-state + patch-fixture fixture-string get-address-string percent->dmxval get-start-addr get-universe)) @@ -112,8 +111,7 @@ (define (make-output) - (let ((fixtures '()) - (current-state '())) + (let ((fixtures '())) (define (run-scanout) @@ -128,19 +126,13 @@ universes))) (u8vector-set! (assq-ref universes universe) - addr (round-dmx value))) - - (define (execute-state-assignment state-assignment) - (let ((attr (find-attribute - (fixture state-assignment) - (attribute state-assignment)))) - (when attr - (let ((trans (translator attr))) + addr (round-dmx value) + (trans (get-universe (fixture state-assignment)) (get-start-addr (fixture state-assignment)) ((value-func state-assignment)) - set-dmx))))) + set-dmx))) (for-each execute-state-assignment current-state) @@ -155,16 +147,12 @@ (make-thread run-scanout) ; Method functions - (define (show-state state) - (set! current-state state)) - (define (add-fixture fixture) (set! fixtures (cons fixture fixtures))) (lambda args (apply (case (car args) - ((show-state) show-state) ((add-fixture) add-fixture) (else => (error "Invalid method"))) (cdr args))))) |