summaryrefslogtreecommitdiffstats
path: root/third_party/rust/cubeb-pulse/src/capi.rs
diff options
context:
space:
mode:
Diffstat (limited to 'third_party/rust/cubeb-pulse/src/capi.rs')
-rw-r--r--third_party/rust/cubeb-pulse/src/capi.rs21
1 files changed, 21 insertions, 0 deletions
diff --git a/third_party/rust/cubeb-pulse/src/capi.rs b/third_party/rust/cubeb-pulse/src/capi.rs
new file mode 100644
index 0000000000..49eaa7a1a1
--- /dev/null
+++ b/third_party/rust/cubeb-pulse/src/capi.rs
@@ -0,0 +1,21 @@
+// Copyright © 2017-2018 Mozilla Foundation
+//
+// This program is made available under an ISC-style license. See the
+// accompanying file LICENSE for details.
+
+use backend::PulseContext;
+use cubeb_backend::{capi, ffi};
+use std::os::raw::{c_char, c_int};
+
+/// # Safety
+///
+/// Entry point from C code. This function is unsafe because it dereferences
+/// the given `c` and `context_name` pointers. The caller should ensure those
+/// pointers are valid.
+#[no_mangle]
+pub unsafe extern "C" fn pulse_rust_init(
+ c: *mut *mut ffi::cubeb,
+ context_name: *const c_char,
+) -> c_int {
+ capi::capi_init::<PulseContext>(c, context_name)
+}