This commit is contained in:
2026-02-25 15:11:15 +01:00
parent 994e21ebf5
commit 98108e6f35

View File

@@ -45,6 +45,7 @@
[queue #:mutable]
[stopped #:mutable]
[paused #:mutable]
pause-sem
)
#:transparent
)
@@ -60,8 +61,8 @@
(let ((p (ao-shm-paused shm)))
(mutex-unlock (ao-shm-mutex shm))
(when p
(sleep 0.25)
(player)))
(os-semaphore-wait (ao-shm-pause-sem shm)))
)
(os-semaphore-wait (ao-shm-queue-sem shm))
(mutex-lock (ao-shm-mutex shm))
@@ -107,7 +108,13 @@
)
(define (ao-player ao_device)
(let ((shm (make-ao-shm (make-mutex) ao_device 0.0 0.0 0 (make-os-semaphore) (make-queue) #f #f)))
(let ((shm (make-ao-shm (make-mutex)
ao_device
0.0 0.0 0
(make-os-semaphore) (make-queue)
#f
#f (make-os-semaphore))))
(os-semaphore-post (ao-shm-pause-sem shm))
(ao-player* shm)
shm
)
@@ -185,6 +192,15 @@
)
(define (ao_pause_async shm pause)
(if pause
(begin
(displayln "Pausing ao play thread")
(os-semaphore-wait (ao-shm-pause-sem shm))
(set-ao-shm-paused! shm pause))
(begin
(displayln "Continuing ao play thread")
(set-ao-shm-paused! shm pause)
(os-semaphore-post (ao-shm-pause-sem shm)))
)
)