summaryrefslogtreecommitdiffstats
path: root/third_party/rust/cubeb-sys/src/mixer.rs
diff options
context:
space:
mode:
Diffstat (limited to 'third_party/rust/cubeb-sys/src/mixer.rs')
-rw-r--r--third_party/rust/cubeb-sys/src/mixer.rs31
1 files changed, 31 insertions, 0 deletions
diff --git a/third_party/rust/cubeb-sys/src/mixer.rs b/third_party/rust/cubeb-sys/src/mixer.rs
new file mode 100644
index 0000000000..d0452036bf
--- /dev/null
+++ b/third_party/rust/cubeb-sys/src/mixer.rs
@@ -0,0 +1,31 @@
+// Copyright © 2017-2018 Mozilla Foundation
+//
+// This program is made available under an ISC-style license. See the
+// accompanying file LICENSE for details.
+
+use channel::cubeb_channel_layout;
+use format::cubeb_sample_format;
+use std::os::raw::{c_int, c_uint, c_void};
+
+pub enum cubeb_mixer {}
+
+extern "C" {
+ pub fn cubeb_mixer_create(
+ format: cubeb_sample_format,
+ in_channels: u32,
+ in_layout: cubeb_channel_layout,
+ out_channels: u32,
+ out_layout: cubeb_channel_layout,
+ ) -> *mut cubeb_mixer;
+ pub fn cubeb_mixer_destroy(mixer: *mut cubeb_mixer);
+ pub fn cubeb_mixer_mix(
+ mixer: *mut cubeb_mixer,
+ frames: usize,
+ input_buffer: *const c_void,
+ input_buffer_length: usize,
+ output_buffer: *mut c_void,
+ output_buffer_length: usize,
+ ) -> c_int;
+
+ pub fn cubeb_channel_layout_nb_channels(channel_layout: cubeb_channel_layout) -> c_uint;
+}