Alsa

`sig
val get_version : unit -> string
exception Buffer_xrun
exception Bad_state
exception Suspended
exception IO_error
exception Device_busy
exception Invalid_argument
exception Device_removed
exception Interrupted
exception Unknown_error of int
type direction = Dir_down | Dir_eq | Dir_up
val string_of_error : exn -> string
val no_stderr_report : unit -> unit
module Pcm :
sig
type handle
type params
type stream = Playback | Capture
type mode = Async | Non_blocking
val open_pcm :
string ->
Alsa.Pcm.stream list -> Alsa.Pcm.mode list -> Alsa.Pcm.handle
val close : Alsa.Pcm.handle -> unit
val prepare : Alsa.Pcm.handle -> unit
val resume : Alsa.Pcm.handle -> unit
val recover : ?verbose:bool -> Alsa.Pcm.handle -> exn -> unit
val start : Alsa.Pcm.handle -> unit
val drain : Alsa.Pcm.handle -> unit
val drop : Alsa.Pcm.handle -> unit
val pause : Alsa.Pcm.handle -> bool -> unit
val reset : Alsa.Pcm.handle -> unit
val wait : Alsa.Pcm.handle -> int -> bool
val readi : Alsa.Pcm.handle -> string -> int -> int -> int
val writei : Alsa.Pcm.handle -> string -> int -> int -> int
val readn : Alsa.Pcm.handle -> string array -> int -> int -> int
val writen : Alsa.Pcm.handle -> string array -> int -> int -> int
val readn_float :
Alsa.Pcm.handle -> float array array -> int -> int -> int
val writen_float :
Alsa.Pcm.handle -> float array array -> int -> int -> int
val readn_float64 :
Alsa.Pcm.handle -> float array array -> int -> int -> int
val writen_float64 :
Alsa.Pcm.handle -> float array array -> int -> int -> int
val get_delay : Alsa.Pcm.handle -> int
type state =
St_open
| St_setup
| St_prepared
| St_running
| St_xrun
| St_draining
| St_paused
| St_suspended
| St_disconnected
val get_state : Alsa.Pcm.handle -> Alsa.Pcm.state
val get_params : Alsa.Pcm.handle -> Alsa.Pcm.params
val set_params : Alsa.Pcm.handle -> Alsa.Pcm.params -> unit
type access = Access_rw_interleaved | Access_rw_noninterleaved
val set_access :
Alsa.Pcm.handle -> Alsa.Pcm.params -> Alsa.Pcm.access -> unit
type fmt =
Format_s16_le
| Format_s24_3le
| Format_float
| Format_float64
val set_format :
Alsa.Pcm.handle -> Alsa.Pcm.params -> Alsa.Pcm.fmt -> unit
val set_rate_near :
Alsa.Pcm.handle -> Alsa.Pcm.params -> int -> Alsa.direction -> int
val set_channels : Alsa.Pcm.handle -> Alsa.Pcm.params -> int -> unit
val set_periods :
Alsa.Pcm.handle -> Alsa.Pcm.params -> int -> Alsa.direction -> unit
val get_periods_min : Alsa.Pcm.params -> int * Alsa.direction
val get_periods_max : Alsa.Pcm.params -> int * Alsa.direction
val set_buffer_size : Alsa.Pcm.handle -> Alsa.Pcm.params -> int -> unit
val set_buffer_size_near :
Alsa.Pcm.handle -> Alsa.Pcm.params -> int -> int
val get_buffer_size_min : Alsa.Pcm.params -> int
val get_buffer_size_max : Alsa.Pcm.params -> int
val set_nonblock : Alsa.Pcm.handle -> bool -> unit
val get_frame_size : Alsa.Pcm.params -> int
end
end`