added validity checking

This commit is contained in:
2026-04-15 09:44:01 +02:00
parent 296e4bb687
commit df27105a06

View File

@@ -16,6 +16,7 @@
ao-bufsize-async ao-bufsize-async
ao-clear-async ao-clear-async
ao-pause ao-pause
ao-valid?
) )
(define device-number 1) (define device-number 1)
@@ -71,6 +72,9 @@
) )
) )
(define (ao-valid? handle)
(not (eq? (ao-handle-async-player handle) #f)))
(define (ao-play handle at-time-in-s music-duration-s buffer buf-len buf-type) (define (ao-play handle at-time-in-s music-duration-s buffer buf-len buf-type)
(let* ((bytes-per-sample (ao-handle-bytes-per-sample handle)) (let* ((bytes-per-sample (ao-handle-bytes-per-sample handle))
(bits (ao-handle-bits handle)) (bits (ao-handle-bits handle))
@@ -79,6 +83,8 @@
(endianess (ao-handle-byte-format handle)) (endianess (ao-handle-byte-format handle))
(buf-info (ffi:make-BufferInfo_t buf-type bits rate channels endianess)) (buf-info (ffi:make-BufferInfo_t buf-type bits rate channels endianess))
) )
(unless (ao-valid? handle)
(error "Cannot play on an invalid ao-device"))
(ffi:ao_play_async (ao-handle-async-player handle) (ffi:ao_play_async (ao-handle-async-player handle)
(exact->inexact at-time-in-s) (exact->inexact at-time-in-s)
(exact->inexact music-duration-s) (exact->inexact music-duration-s)