This commit is contained in:
2026-02-25 00:43:00 +01:00
parent 59a2062f6a
commit b14e6e3fca
3 changed files with 63 additions and 19 deletions

View File

@@ -79,6 +79,7 @@
(set-ao-shm-bufsize! shm (- bs buf-len)))
(mutex-unlock (ao-shm-mutex shm))
(ao_play ao-device buf buf-len) ; Play this buffer part
(free buf) ; Free the previously malloc 'raw (see libao.rkt)
)]
)
(player)
@@ -107,6 +108,7 @@
(define (ao_stop_async shm)
(mutex-lock (ao-shm-mutex shm))
(ao_clear_async* shm)
(enqueue! (ao-shm-queue shm) (list 'stop 0 #f #f))
(os-semaphore-post (ao-shm-queue-sem shm))
(mutex-unlock (ao-shm-mutex shm))
@@ -149,6 +151,16 @@
(define (ao_clear_async shm)
(mutex-lock (ao-shm-mutex shm))
(set-ao-shm-queue! shm (make-queue))
(ao_clear_async* shm)
(mutex-unlock (ao-shm-mutex shm)))
(define (ao_clear_async* shm)
(let ((q (ao-shm-queue shm)))
(while (> (queue-length q) 0)
(let* ((elem (dequeue! q))
(buf (cadddr elem)))
(free buf))))
(set-ao-shm-queue! shm (make-queue))
(set-ao-shm-bufsize! shm 0)
)