paused handling

This commit is contained in:
2026-05-07 14:37:56 +02:00
parent a1e49de9ea
commit debabf5151
+28 -21
View File
@@ -474,34 +474,40 @@
(get h 150)))) (get h 150))))
(mutex-unlock (ao-handle-clear-mutex h)) (mutex-unlock (ao-handle-clear-mutex h))
(if (eq? elem #f) (if (eq? elem #f)
(begin (if (ao-handle-paused h)
(dbg-sound "nothing in the queue")
(sleep 0.01))
(begin
(if (eq? (queue-elem-command elem) 'stop)
(set! go-on #f)
(begin (begin
(set-ao-handle-at-second! h (queue-elem-at-second elem)) (dbg-sound "run thread paused")
(set-ao-handle-music-duration! h (queue-elem-music-duration elem)) (sleep 0.1)
(set-ao-handle-music-id! h (queue-elem-music-id elem)) )
(begin
(dbg-sound "nothing in the queue")
(sleep 0.01))
)
(begin
(if (eq? (queue-elem-command elem) 'stop)
(set! go-on #f)
(begin
(set-ao-handle-at-second! h (queue-elem-at-second elem))
(set-ao-handle-music-duration! h (queue-elem-music-duration elem))
(set-ao-handle-music-id! h (queue-elem-music-id elem))
(unless (= (ao-handle-volume-in-10000 h) 10000) (unless (= (ao-handle-volume-in-10000 h) 10000)
(adjust-volume h (queue-elem-buf elem) (queue-elem-buflen elem) (adjust-volume h (queue-elem-buf elem) (queue-elem-buflen elem)
(ao-handle-volume-in-10000 h))) (ao-handle-volume-in-10000 h)))
(let* ((size (queue-elem-buflen elem))) (let* ((size (queue-elem-buflen elem)))
(when (> size buf-size) (when (> size buf-size)
(set! buf (malloc size 'atomic-interior )) (set! buf (malloc size 'atomic-interior ))
(set! buf-size size)) (set! buf-size size))
(memcpy buf (queue-elem-buf elem) size) (memcpy buf (queue-elem-buf elem) size)
(ao_play (ao-handle-ao-device h) buf size) (ao_play (ao-handle-ao-device h) buf size)
)
) )
) )
)
(del-elem h elem) (del-elem h elem)
)
) )
)
) )
) )
) )
@@ -767,6 +773,7 @@
(when (eq? paused #t) (when (eq? paused #t)
(mutex-lock (ao-handle-pause-mutex h)) (mutex-lock (ao-handle-pause-mutex h))
(set-ao-handle-paused! h #t) (set-ao-handle-paused! h #t)
(dbg-sound "paused")
) )
) )
) )