sig
  type t
  val create :
    ?server:string ->
    client_name:string ->
    dir:Pulseaudio.dir ->
    ?dev:string ->
    stream_name:string ->
    sample:Pulseaudio.sample ->
    ?map:Pulseaudio.map ->
    ?attr:Pulseaudio.buffer_attr -> unit -> Pulseaudio.Simple.t
  val free : Pulseaudio.Simple.t -> unit
  val read : Pulseaudio.Simple.t -> float array array -> int -> int -> unit
  val write : Pulseaudio.Simple.t -> float array array -> int -> int -> unit
  val drain : Pulseaudio.Simple.t -> unit
  val flush : Pulseaudio.Simple.t -> unit
  val latency : Pulseaudio.Simple.t -> int
end