1use callbacks::{cubeb_data_callback, cubeb_state_callback};
7use device::cubeb_devid;
8use std::os::raw::{c_char, c_int, c_uint, c_void};
9use stream::{cubeb_input_processing_params, cubeb_stream, cubeb_stream_params};
10
11pub enum cubeb {}
12
13extern "C" {
14 pub fn cubeb_init(
15 context: *mut *mut cubeb,
16 context_name: *const c_char,
17 backend_name: *const c_char,
18 ) -> c_int;
19 pub fn cubeb_get_backend_id(context: *mut cubeb) -> *const c_char;
20 pub fn cubeb_get_max_channel_count(context: *mut cubeb, max_channels: *mut c_uint) -> c_int;
21 pub fn cubeb_get_min_latency(
22 context: *mut cubeb,
23 params: *mut cubeb_stream_params,
24 latency_frames: *mut c_uint,
25 ) -> c_int;
26 pub fn cubeb_get_preferred_sample_rate(context: *mut cubeb, rate: *mut c_uint) -> c_int;
27 pub fn cubeb_get_supported_input_processing_params(
28 context: *mut cubeb,
29 params: *mut cubeb_input_processing_params,
30 ) -> c_int;
31 pub fn cubeb_destroy(context: *mut cubeb);
32 pub fn cubeb_stream_init(
33 context: *mut cubeb,
34 stream: *mut *mut cubeb_stream,
35 stream_name: *const c_char,
36 input_device: cubeb_devid,
37 input_stream_params: *mut cubeb_stream_params,
38 output_device: cubeb_devid,
39 output_stream_params: *mut cubeb_stream_params,
40 latency_frames: c_uint,
41 data_callback: cubeb_data_callback,
42 state_callback: cubeb_state_callback,
43 user_ptr: *mut c_void,
44 ) -> c_int;
45}