module Pcm:sig
..end
type
handle
type
params
type
stream =
| |
Playback |
(* |
Playback stream.
| *) |
| |
Capture |
(* |
Capture stream.
| *) |
type
mode =
| |
Async |
(* |
Asynchronous notification (not supported yet).
| *) |
| |
Non_blocking |
(* |
Non blocking I/O.
| *) |
val open_pcm : string -> stream list -> mode list -> handle
val close : handle -> unit
val prepare : handle -> unit
val resume : handle -> unit
val recover : ?verbose:bool -> handle -> exn -> unit
val start : handle -> unit
val drain : handle -> unit
val drop : handle -> unit
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
false
if a timeout
occured.val readi : handle -> string -> 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 -> string -> int -> int -> int
writei handle buf ofs len
writes len
interleaved frames of buf
starting at offset ofs
(in bytes).val readn : handle -> string array -> int -> int -> int
val writen : handle -> string array -> int -> int -> int
val readn_float : handle -> float array array -> int -> int -> int
val writen_float : handle -> float array array -> int -> int -> 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
type
state =
| |
St_open |
(* |
open
| *) |
| |
St_setup |
(* |
setup installed
| *) |
| |
St_prepared |
(* |
ready to start
| *) |
| |
St_running |
(* |
running
| *) |
| |
St_xrun |
(* |
stopped: underrun (playback) or overrun (capture) detected
| *) |
| |
St_draining |
(* |
draining: running (playback) or stopped (capture)
| *) |
| |
St_paused |
(* |
paused
| *) |
| |
St_suspended |
(* |
hardware is suspended
| *) |
| |
St_disconnected |
(* |
hardward is disconnected
| *) |
val get_state : handle -> state
val get_params : handle -> params
val set_params : handle -> params -> unit
type
access =
| |
Access_rw_interleaved |
| |
Access_rw_noninterleaved |
val set_access : handle -> params -> access -> unit
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
| *) |
val set_format : handle -> params -> fmt -> unit
val set_rate_near : handle -> params -> int -> Alsa.direction -> int
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 set_channels : handle -> params -> int -> unit
val set_periods : handle -> params -> int -> Alsa.direction -> unit
val get_periods_min : params -> int * Alsa.direction
val get_periods_max : params -> int * Alsa.direction
val set_buffer_size : handle -> params -> int -> unit
val set_buffer_size_near : handle -> params -> int -> int
val get_buffer_size_min : params -> int
val get_buffer_size_max : params -> int
val set_nonblock : handle -> bool -> unit
true
means non-blocking).val get_frame_size : params -> int