This commit is contained in:
2026-04-28 18:15:02 +02:00
parent e941876fa5
commit 08ca038b68
9 changed files with 28 additions and 137 deletions
+7 -5
View File
@@ -2,12 +2,14 @@
@(require racket/base
(for-label racket/base
racket/contract
racket/path
"../libao.rkt"))
@title{libao}
@author[@author+email["Hans Dijkema" "hans@dijkewijk.nl"]]
@defmodule["racket-sound/libao"]
@defmodule[(file "../libao.rkt")]
This module provides a small high-level interface to an asynchronous
audio output backend. It opens a live output device or a file output,
@@ -15,8 +17,8 @@ queues audio buffers for playback, reports playback position, supports
pause and buffer clearing, and exposes a small set of validation
predicates.
The central value is an @racket[ao-handle], created by
@racket[ao-open-live] or @racket[ao-open-file]. An @racket[ao-handle]
The central value is an @tt{ao-handle}, created by
@racket[ao-open-live] or @racket[ao-open-file]. An @tt{ao-handle}
stores the requested playback configuration together with a native
asynchronous player handle. It also records the real bit depth accepted
by the selected libao output device.
@@ -25,7 +27,7 @@ by the selected libao output device.
@defproc[(ao-handle? [v any/c]) boolean?]{
Returns @racket[#t] if @racket[v] is an @racket[ao-handle] value, and
Returns @racket[#t] if @racket[v] is an @tt{ao-handle} value, and
@racket[#f] otherwise.
}
@@ -120,7 +122,7 @@ and can be inspected with @racket[ao-device-bits].
If the native player is created successfully, the returned handle is
valid. If player creation fails, the function still returns an
@racket[ao-handle], but that handle is marked closed and is not valid
@tt{ao-handle}, but that handle is marked closed and is not valid
for playback.
A finalizer is registered for the handle and calls @racket[ao-close]