Alsa.Pcm
type mode =
| Async | (* Asynchronous notification (not supported yet). *) |
| Non_blocking | (* Non blocking I/O. *) |
Modes for opening a stream.
Open given device (use "defaut"
for default one) with given streams and modes.
val close : handle -> unit
Close device.
val prepare : handle -> unit
Prepare PCM for use.
val resume : handle -> unit
Resume from suspend, no samples are lost.
val recover : ?verbose:bool -> handle -> exn -> unit
Recover the stream state from an error or suspend. This a high-level helper function building on other functions. This functions handles Interrupted, Buffer_xrun and Suspended exceptions trying to prepare given stream for next I/O. Raises the given exception when not recognized/used.
val start : handle -> unit
Start the PCM.
val drain : handle -> unit
Stop a PCM preserving pending frames.
val drop : handle -> unit
Stop a PCM dropping pending frames.
val pause : handle -> bool -> unit
pause hnd pause
pauses (when pause
is true
) or resume (when pause
is false
) a PCM.
val reset : handle -> unit
val wait : handle -> int -> bool
Wait for a PCM to become ready. The second argument is the timeout in milliseconds (negative for infinite). Returns false
if a timeout occured.
val readi : handle -> bytes -> int -> int -> int
readi handle buf ofs len
reads len
interleaved frames in buf
starting at offset ofs
(in bytes). It returns the actual number of frames read.
val writei : handle -> bytes -> int -> int -> int
writei handle buf ofs len
writes len
interleaved frames of buf
starting at offset ofs
(in bytes).
val readn : handle -> bytes array -> int -> int -> int
Read non-interleaved frames.
val writen : handle -> bytes array -> int -> int -> int
Write non-interleaved frames.
val readn_float : handle -> float array array -> int -> int -> int
val writen_float : handle -> float array array -> int -> int -> int
val writei_floatn : handle -> float array array -> int -> int -> int
Write in interleaved way non-interleaved frames.
val readn_float_ba :
handle ->
( float, Stdlib.Bigarray.float32_elt, Stdlib.Bigarray.c_layout )
Stdlib.Bigarray.Array1.t
array ->
int
val writen_float_ba :
handle ->
( float, Stdlib.Bigarray.float32_elt, Stdlib.Bigarray.c_layout )
Stdlib.Bigarray.Array1.t
array ->
int
val writei_float_ba :
handle ->
int ->
( float, Stdlib.Bigarray.float32_elt, Stdlib.Bigarray.c_layout )
Stdlib.Bigarray.Array1.t ->
int
val readn_float64 : handle -> float array array -> int -> int -> int
val writen_float64 : handle -> float array array -> int -> int -> int
val get_delay : handle -> int
Get the delay (in frames).
type state =
State.
type fmt =
| Format_s16_le | (* 16 bits, little endian *) |
| Format_s24_3le | |
| Format_float | (* float 32 bit CPU endian *) |
| Format_float64 | (* float 64 bit CPU endian *) |
Format of audio data.
set_rate_near handle params rate dir
sets the sampling rate (in Hz). * If the rate is not avalaible, dir
is used to determine the direction of * the nearest available sampling rate to use . The actual sampling rate used * is returned.
val get_period_size : params -> int
Set the buffer size near a value in frames.
val get_buffer_size : params -> int
val get_buffer_size_min : params -> int
val get_buffer_size_max : params -> int
val set_nonblock : handle -> bool -> unit
Set blocking mode (true
means non-blocking).
val get_frame_size : params -> int
Get the size of a frame in bytes.