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 -> unitval resume : handle -> unitval recover : ?verbose:bool -> handle -> exn -> unitval start : handle -> unit
val drain : handle -> unitval drop : handle -> unitval pause : handle -> bool -> unitpause hnd pause pauses (when pause is true) or resume (when pause
is false) a PCM.val reset : handle -> unit
val wait : handle -> int -> boolfalse if a timeout
occured.val readi : handle -> string -> int -> int -> intreadi 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 -> intwritei 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 -> inttype 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 -> stateval get_params : handle -> params
val set_params : handle -> params -> unit
type access =
| |
Access_rw_interleaved |
| |
Access_rw_noninterleaved |
val set_access : handle -> params -> access -> unittype 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 -> unitval set_rate_near : handle -> params -> int -> Alsa.direction -> intset_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 -> unitval set_periods : handle -> params -> int -> Alsa.direction -> unitval get_periods_min : params -> int * Alsa.directionval get_periods_max : params -> int * Alsa.direction
val set_buffer_size : handle -> params -> int -> unitval set_buffer_size_near : handle -> params -> int -> intval get_buffer_size_min : params -> int
val get_buffer_size_max : params -> int
val set_nonblock : handle -> bool -> unittrue means non-blocking).val get_frame_size : params -> int