extern crate libc;
use libc::{c_char,c_void};
#[repr(C)]
pub struct ad_rec_t(c_void);
pub const DEFAULT_SAMPLES_PER_SEC:i32 = 16000;
pub const AD_OK:i32 = 0;
pub const AD_EOF:i32 = -1;
pub const AD_ERR_GEN:i32 = -1;
pub const AD_ERR_NOT_OPEN:i32 = -2;
pub const AD_ERR_WAVE:i32 = -3;
#[link(name = "sphinxad")]
extern {
pub fn ad_open_dev(device_name: *const c_char, samples_per_sec: u32) -> *const ad_rec_t;
pub fn ad_open_sps(samples_per_sec:u32) -> *const ad_rec_t;
pub fn ad_open() -> *const ad_rec_t;
pub fn ad_start_rec(dev: *const ad_rec_t) -> i32;
pub fn ad_stop_rec(dev: *const ad_rec_t) -> i32;
pub fn ad_close(dev: *const ad_rec_t) -> i32;
pub fn ad_read(dev: *const ad_rec_t, buf:*mut i16, max:u32) -> i32;
}