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