aboutsummaryrefslogtreecommitdiff
path: root/guile/starlet/midi-control/base.scm
diff options
context:
space:
mode:
authorThomas White <taw@bitwiz.me.uk>2020-12-31 10:50:16 +0100
committerThomas White <taw@bitwiz.me.uk>2020-12-31 10:50:16 +0100
commit42f49129729e3f74244c4d752b225877cba631d2 (patch)
tree902b5076acdc0bc7e77cf95ec2dcaca371912c97 /guile/starlet/midi-control/base.scm
parent8aa3c8d107343a3e5f124989914351cdcea242ba (diff)
Select fixture and change parameters via MIDI
Diffstat (limited to 'guile/starlet/midi-control/base.scm')
-rw-r--r--guile/starlet/midi-control/base.scm10
1 files changed, 9 insertions, 1 deletions
diff --git a/guile/starlet/midi-control/base.scm b/guile/starlet/midi-control/base.scm
index 21692b5..fece2be 100644
--- a/guile/starlet/midi-control/base.scm
+++ b/guile/starlet/midi-control/base.scm
@@ -10,7 +10,8 @@
send-note-on
send-note-off
register-midi-note-callback!
- register-midi-cc-callback!))
+ register-midi-cc-callback!
+ remove-midi-callback!))
(define cc-arrays (make-atomic-box '()))
@@ -62,6 +63,13 @@
(register-midi-callback! 'cc channel cc-number func))
+(define (remove-midi-callback! callback)
+ (atomic-box-set! callback-list
+ (remove (lambda (a)
+ (eq? callback a))
+ (atomic-box-ref callback-list))))
+
+
(define enqueue-midi-bytes!
(lambda bytes
(unless (eq? (atomic-box-compare-and-swap! send-queue '() bytes)