1 // Copyright © 2017-2018 Mozilla Foundation
2 //
3 // This program is made available under an ISC-style license.  See the
4 // accompanying file LICENSE for details.
5 
6 use callbacks::{cubeb_data_callback, cubeb_state_callback};
7 use device::cubeb_devid;
8 use std::os::raw::{c_char, c_int, c_uint, c_void};
9 use stream::{cubeb_stream, cubeb_stream_params};
10 
11 pub enum cubeb {}
12 
13 extern "C" {
cubeb_init( context: *mut *mut cubeb, context_name: *const c_char, backend_name: *const c_char, ) -> c_int14     pub fn cubeb_init(
15         context: *mut *mut cubeb,
16         context_name: *const c_char,
17         backend_name: *const c_char,
18     ) -> c_int;
cubeb_get_backend_id(context: *mut cubeb) -> *const c_char19     pub fn cubeb_get_backend_id(context: *mut cubeb) -> *const c_char;
cubeb_get_max_channel_count(context: *mut cubeb, max_channels: *mut c_uint) -> c_int20     pub fn cubeb_get_max_channel_count(context: *mut cubeb, max_channels: *mut c_uint) -> c_int;
cubeb_get_min_latency( context: *mut cubeb, params: *mut cubeb_stream_params, latency_frames: *mut c_uint, ) -> c_int21     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;
cubeb_get_preferred_sample_rate(context: *mut cubeb, rate: *mut c_uint) -> c_int26     pub fn cubeb_get_preferred_sample_rate(context: *mut cubeb, rate: *mut c_uint) -> c_int;
cubeb_destroy(context: *mut cubeb)27     pub fn cubeb_destroy(context: *mut cubeb);
cubeb_stream_init( context: *mut cubeb, stream: *mut *mut cubeb_stream, stream_name: *const c_char, input_device: cubeb_devid, input_stream_params: *mut cubeb_stream_params, output_device: cubeb_devid, output_stream_params: *mut cubeb_stream_params, latency_frames: c_uint, data_callback: cubeb_data_callback, state_callback: cubeb_state_callback, user_ptr: *mut c_void, ) -> c_int28     pub fn cubeb_stream_init(
29         context: *mut cubeb,
30         stream: *mut *mut cubeb_stream,
31         stream_name: *const c_char,
32         input_device: cubeb_devid,
33         input_stream_params: *mut cubeb_stream_params,
34         output_device: cubeb_devid,
35         output_stream_params: *mut cubeb_stream_params,
36         latency_frames: c_uint,
37         data_callback: cubeb_data_callback,
38         state_callback: cubeb_state_callback,
39         user_ptr: *mut c_void,
40     ) -> c_int;
41 }
42