diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-07 19:33:14 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-07 19:33:14 +0000 |
commit | 36d22d82aa202bb199967e9512281e9a53db42c9 (patch) | |
tree | 105e8c98ddea1c1e4784a60a5a6410fa416be2de /third_party/rust/alsa-sys | |
parent | Initial commit. (diff) | |
download | firefox-esr-36d22d82aa202bb199967e9512281e9a53db42c9.tar.xz firefox-esr-36d22d82aa202bb199967e9512281e9a53db42c9.zip |
Adding upstream version 115.7.0esr.upstream/115.7.0esr
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'third_party/rust/alsa-sys')
-rw-r--r-- | third_party/rust/alsa-sys/.cargo-checksum.json | 1 | ||||
-rw-r--r-- | third_party/rust/alsa-sys/Cargo.toml | 29 | ||||
-rw-r--r-- | third_party/rust/alsa-sys/LICENSE | 21 | ||||
-rw-r--r-- | third_party/rust/alsa-sys/README.md | 6 | ||||
-rw-r--r-- | third_party/rust/alsa-sys/build.rs | 16 | ||||
-rwxr-xr-x | third_party/rust/alsa-sys/regenerate_bindings.sh | 4 | ||||
-rw-r--r-- | third_party/rust/alsa-sys/src/generated.rs | 8745 | ||||
-rw-r--r-- | third_party/rust/alsa-sys/src/lib.rs | 40 |
8 files changed, 8862 insertions, 0 deletions
diff --git a/third_party/rust/alsa-sys/.cargo-checksum.json b/third_party/rust/alsa-sys/.cargo-checksum.json new file mode 100644 index 0000000000..ff132b40d6 --- /dev/null +++ b/third_party/rust/alsa-sys/.cargo-checksum.json @@ -0,0 +1 @@ +{"files":{"Cargo.toml":"709564bceccc44d3314d06ce59e61c11c30e6c861a784c886ca813d64ad9765d","LICENSE":"219766b3420f49f6204143c5f3ef750888fb6de29ce5f63e909f146e90b375a2","README.md":"263763eb2baff7d9e3db7d96b54a0679d0f05c42198ac9a685f5482137d4340e","build.rs":"47195d700b895b8901570c281ff3a99ca0dd1535df52f92f990a89d215ea831a","regenerate_bindings.sh":"71afbc324170622c8337b9e6bb0ab6d621ab72093231da37d780ffc79b2a0c0c","src/generated.rs":"6841b36de61a1998bc54ca5b41c8d2b3fcd300aeb48c7b60f4655f0823664668","src/lib.rs":"0aa55bfdc6fe3ab69082f8fc79217846f11d9d40c3104228255456b07840570e"},"package":"db8fee663d06c4e303404ef5f40488a53e062f89ba8bfed81f42325aafad1527"}
\ No newline at end of file diff --git a/third_party/rust/alsa-sys/Cargo.toml b/third_party/rust/alsa-sys/Cargo.toml new file mode 100644 index 0000000000..180ed96880 --- /dev/null +++ b/third_party/rust/alsa-sys/Cargo.toml @@ -0,0 +1,29 @@ +# THIS FILE IS AUTOMATICALLY GENERATED BY CARGO +# +# When uploading crates to the registry Cargo will automatically +# "normalize" Cargo.toml files for maximal compatibility +# with all versions of Cargo and also rewrite `path` dependencies +# to registry (e.g., crates.io) dependencies +# +# If you believe there's an error in this file please file an +# issue against the rust-lang/cargo repository. If you're +# editing this file be aware that the upstream Cargo.toml +# will likely look very different (and much more reasonable) + +[package] +edition = "2018" +name = "alsa-sys" +version = "0.3.1" +authors = ["Pierre Krieger <pierre.krieger1708@gmail.com>", "David Henningsson <coding@diwic.se>"] +build = "build.rs" +links = "alsa" +description = "FFI bindings for the ALSA project (Advanced Linux Sound Architecture)" +documentation = "http://docs.rs/alsa-sys" +keywords = ["ALSA", "audio", "sound"] +categories = ["os::unix-apis", "external-ffi-bindings", "multimedia::audio"] +license = "MIT" +repository = "https://github.com/diwic/alsa-sys" +[dependencies.libc] +version = "0.2.65" +[build-dependencies.pkg-config] +version = "0.3" diff --git a/third_party/rust/alsa-sys/LICENSE b/third_party/rust/alsa-sys/LICENSE new file mode 100644 index 0000000000..1d287e86c3 --- /dev/null +++ b/third_party/rust/alsa-sys/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2018 diwic + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/third_party/rust/alsa-sys/README.md b/third_party/rust/alsa-sys/README.md new file mode 100644 index 0000000000..d796093418 --- /dev/null +++ b/third_party/rust/alsa-sys/README.md @@ -0,0 +1,6 @@ +# alsa-sys + +Rust raw FFI bindings for ALSA. + +To avoid too long build times, the finished binding is committed into this repository. +If you need to regenerate it, run `regenerate_bindings.sh` (and have `bindgen` set up when you do so). diff --git a/third_party/rust/alsa-sys/build.rs b/third_party/rust/alsa-sys/build.rs new file mode 100644 index 0000000000..9132dcdb6a --- /dev/null +++ b/third_party/rust/alsa-sys/build.rs @@ -0,0 +1,16 @@ +extern crate pkg_config; + +fn main() { + if let Err(e) = pkg_config::probe_library("alsa") { + match e { + pkg_config::Error::Failure { .. } => panic! ( + "Pkg-config failed - usually this is because alsa development headers are not installed.\n\n\ + For Fedora users:\n# dnf install alsa-lib-devel\n\n\ + For Debian/Ubuntu users:\n# apt-get install libasound2-dev\n\n\ + pkg_config details:\n{}", + e + ), + _ => panic!("{}", e) + } + } +} diff --git a/third_party/rust/alsa-sys/regenerate_bindings.sh b/third_party/rust/alsa-sys/regenerate_bindings.sh new file mode 100755 index 0000000000..a1d33d6c02 --- /dev/null +++ b/third_party/rust/alsa-sys/regenerate_bindings.sh @@ -0,0 +1,4 @@ +#!/bin/sh +bindgen --size_t-is-usize --no-recursive-whitelist --no-prepend-enum-name --no-layout-tests \ +--generate "functions,types" --whitelist-function="snd_.*" --whitelist-type="_?snd_.*" \ +/usr/include/alsa/asoundlib.h -o src/generated.rs diff --git a/third_party/rust/alsa-sys/src/generated.rs b/third_party/rust/alsa-sys/src/generated.rs new file mode 100644 index 0000000000..7d4053c109 --- /dev/null +++ b/third_party/rust/alsa-sys/src/generated.rs @@ -0,0 +1,8745 @@ +/* automatically generated by rust-bindgen */ + +#[repr(C)] +#[derive(Copy, Clone, Debug, Default, Eq, Hash, Ord, PartialEq, PartialOrd)] +pub struct __BindgenBitfieldUnit<Storage, Align> { + storage: Storage, + align: [Align; 0], +} +impl<Storage, Align> __BindgenBitfieldUnit<Storage, Align> { + #[inline] + pub const fn new(storage: Storage) -> Self { + Self { storage, align: [] } + } +} +impl<Storage, Align> __BindgenBitfieldUnit<Storage, Align> +where + Storage: AsRef<[u8]> + AsMut<[u8]>, +{ + #[inline] + pub fn get_bit(&self, index: usize) -> bool { + debug_assert!(index / 8 < self.storage.as_ref().len()); + let byte_index = index / 8; + let byte = self.storage.as_ref()[byte_index]; + let bit_index = if cfg!(target_endian = "big") { + 7 - (index % 8) + } else { + index % 8 + }; + let mask = 1 << bit_index; + byte & mask == mask + } + #[inline] + pub fn set_bit(&mut self, index: usize, val: bool) { + debug_assert!(index / 8 < self.storage.as_ref().len()); + let byte_index = index / 8; + let byte = &mut self.storage.as_mut()[byte_index]; + let bit_index = if cfg!(target_endian = "big") { + 7 - (index % 8) + } else { + index % 8 + }; + let mask = 1 << bit_index; + if val { + *byte |= mask; + } else { + *byte &= !mask; + } + } + #[inline] + pub fn get(&self, bit_offset: usize, bit_width: u8) -> u64 { + debug_assert!(bit_width <= 64); + debug_assert!(bit_offset / 8 < self.storage.as_ref().len()); + debug_assert!((bit_offset + (bit_width as usize)) / 8 <= self.storage.as_ref().len()); + let mut val = 0; + for i in 0..(bit_width as usize) { + if self.get_bit(i + bit_offset) { + let index = if cfg!(target_endian = "big") { + bit_width as usize - 1 - i + } else { + i + }; + val |= 1 << index; + } + } + val + } + #[inline] + pub fn set(&mut self, bit_offset: usize, bit_width: u8, val: u64) { + debug_assert!(bit_width <= 64); + debug_assert!(bit_offset / 8 < self.storage.as_ref().len()); + debug_assert!((bit_offset + (bit_width as usize)) / 8 <= self.storage.as_ref().len()); + for i in 0..(bit_width as usize) { + let mask = 1 << i; + let val_bit_is_set = val & mask == mask; + let index = if cfg!(target_endian = "big") { + bit_width as usize - 1 - i + } else { + i + }; + self.set_bit(index + bit_offset, val_bit_is_set); + } + } +} +#[repr(C)] +#[derive(Default)] +pub struct __IncompleteArrayField<T>(::std::marker::PhantomData<T>, [T; 0]); +impl<T> __IncompleteArrayField<T> { + #[inline] + pub const fn new() -> Self { + __IncompleteArrayField(::std::marker::PhantomData, []) + } + #[inline] + pub fn as_ptr(&self) -> *const T { + self as *const _ as *const T + } + #[inline] + pub fn as_mut_ptr(&mut self) -> *mut T { + self as *mut _ as *mut T + } + #[inline] + pub unsafe fn as_slice(&self, len: usize) -> &[T] { + ::std::slice::from_raw_parts(self.as_ptr(), len) + } + #[inline] + pub unsafe fn as_mut_slice(&mut self, len: usize) -> &mut [T] { + ::std::slice::from_raw_parts_mut(self.as_mut_ptr(), len) + } +} +impl<T> ::std::fmt::Debug for __IncompleteArrayField<T> { + fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result { + fmt.write_str("__IncompleteArrayField") + } +} +extern "C" { + #[doc = " \\defgroup Global Global defines and functions"] + #[doc = " Global defines and functions."] + #[doc = " \\par"] + #[doc = " The ALSA library implementation uses these macros and functions."] + #[doc = " Most applications probably do not need them."] + #[doc = " \\{"] + pub fn snd_asoundlib_version() -> *const ::std::os::raw::c_char; +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct snd_dlsym_link { + pub next: *mut snd_dlsym_link, + pub dlsym_name: *const ::std::os::raw::c_char, + pub dlsym_ptr: *const ::std::os::raw::c_void, +} +extern "C" { + pub fn snd_dlpath( + path: *mut ::std::os::raw::c_char, + path_len: usize, + name: *const ::std::os::raw::c_char, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_dlopen( + file: *const ::std::os::raw::c_char, + mode: ::std::os::raw::c_int, + errbuf: *mut ::std::os::raw::c_char, + errbuflen: usize, + ) -> *mut ::std::os::raw::c_void; +} +extern "C" { + pub fn snd_dlsym( + handle: *mut ::std::os::raw::c_void, + name: *const ::std::os::raw::c_char, + version: *const ::std::os::raw::c_char, + ) -> *mut ::std::os::raw::c_void; +} +extern "C" { + pub fn snd_dlclose(handle: *mut ::std::os::raw::c_void) -> ::std::os::raw::c_int; +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct _snd_async_handler { + _unused: [u8; 0], +} +#[doc = " \\brief Internal structure for an async notification client handler."] +#[doc = ""] +#[doc = " The ALSA library uses a pointer to this structure as a handle to an async"] +#[doc = " notification object. Applications don't access its contents directly."] +pub type snd_async_handler_t = _snd_async_handler; +#[doc = " \\brief Async notification callback."] +#[doc = ""] +#[doc = " See the #snd_async_add_handler function for details."] +pub type snd_async_callback_t = + ::std::option::Option<unsafe extern "C" fn(handler: *mut snd_async_handler_t)>; +extern "C" { + pub fn snd_async_add_handler( + handler: *mut *mut snd_async_handler_t, + fd: ::std::os::raw::c_int, + callback: snd_async_callback_t, + private_data: *mut ::std::os::raw::c_void, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_async_del_handler(handler: *mut snd_async_handler_t) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_async_handler_get_fd(handler: *mut snd_async_handler_t) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_async_handler_get_signo(handler: *mut snd_async_handler_t) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_async_handler_get_callback_private( + handler: *mut snd_async_handler_t, + ) -> *mut ::std::os::raw::c_void; +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct snd_shm_area { + _unused: [u8; 0], +} +extern "C" { + pub fn snd_shm_area_create( + shmid: ::std::os::raw::c_int, + ptr: *mut ::std::os::raw::c_void, + ) -> *mut snd_shm_area; +} +extern "C" { + pub fn snd_shm_area_share(area: *mut snd_shm_area) -> *mut snd_shm_area; +} +extern "C" { + pub fn snd_shm_area_destroy(area: *mut snd_shm_area) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_user_file( + file: *const ::std::os::raw::c_char, + result: *mut *mut ::std::os::raw::c_char, + ) -> ::std::os::raw::c_int; +} +#[doc = " Timestamp"] +pub type snd_timestamp_t = timeval; +#[doc = " Hi-res timestamp"] +pub type snd_htimestamp_t = timespec; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct _snd_input { + _unused: [u8; 0], +} +#[doc = " \\brief Internal structure for an input object."] +#[doc = ""] +#[doc = " The ALSA library uses a pointer to this structure as a handle to an"] +#[doc = " input object. Applications don't access its contents directly."] +pub type snd_input_t = _snd_input; +#[doc = " Input from a stdio stream."] +pub const SND_INPUT_STDIO: _snd_input_type = 0; +#[doc = " Input from a memory buffer."] +pub const SND_INPUT_BUFFER: _snd_input_type = 1; +#[doc = " Input type."] +pub type _snd_input_type = u32; +#[doc = " Input type."] +pub use self::_snd_input_type as snd_input_type_t; +extern "C" { + pub fn snd_input_stdio_open( + inputp: *mut *mut snd_input_t, + file: *const ::std::os::raw::c_char, + mode: *const ::std::os::raw::c_char, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_input_stdio_attach( + inputp: *mut *mut snd_input_t, + fp: *mut FILE, + _close: ::std::os::raw::c_int, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_input_buffer_open( + inputp: *mut *mut snd_input_t, + buffer: *const ::std::os::raw::c_char, + size: isize, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_input_close(input: *mut snd_input_t) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_input_scanf( + input: *mut snd_input_t, + format: *const ::std::os::raw::c_char, + ... + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_input_gets( + input: *mut snd_input_t, + str: *mut ::std::os::raw::c_char, + size: usize, + ) -> *mut ::std::os::raw::c_char; +} +extern "C" { + pub fn snd_input_getc(input: *mut snd_input_t) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_input_ungetc( + input: *mut snd_input_t, + c: ::std::os::raw::c_int, + ) -> ::std::os::raw::c_int; +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct _snd_output { + _unused: [u8; 0], +} +#[doc = " \\brief Internal structure for an output object."] +#[doc = ""] +#[doc = " The ALSA library uses a pointer to this structure as a handle to an"] +#[doc = " output object. Applications don't access its contents directly."] +pub type snd_output_t = _snd_output; +#[doc = " Output to a stdio stream."] +pub const SND_OUTPUT_STDIO: _snd_output_type = 0; +#[doc = " Output to a memory buffer."] +pub const SND_OUTPUT_BUFFER: _snd_output_type = 1; +#[doc = " Output type."] +pub type _snd_output_type = u32; +#[doc = " Output type."] +pub use self::_snd_output_type as snd_output_type_t; +extern "C" { + pub fn snd_output_stdio_open( + outputp: *mut *mut snd_output_t, + file: *const ::std::os::raw::c_char, + mode: *const ::std::os::raw::c_char, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_output_stdio_attach( + outputp: *mut *mut snd_output_t, + fp: *mut FILE, + _close: ::std::os::raw::c_int, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_output_buffer_open(outputp: *mut *mut snd_output_t) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_output_buffer_string( + output: *mut snd_output_t, + buf: *mut *mut ::std::os::raw::c_char, + ) -> usize; +} +extern "C" { + pub fn snd_output_close(output: *mut snd_output_t) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_output_printf( + output: *mut snd_output_t, + format: *const ::std::os::raw::c_char, + ... + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_output_vprintf( + output: *mut snd_output_t, + format: *const ::std::os::raw::c_char, + args: *mut __va_list_tag, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_output_puts( + output: *mut snd_output_t, + str: *const ::std::os::raw::c_char, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_output_putc( + output: *mut snd_output_t, + c: ::std::os::raw::c_int, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_output_flush(output: *mut snd_output_t) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_strerror(errnum: ::std::os::raw::c_int) -> *const ::std::os::raw::c_char; +} +#[doc = " \\brief Error handler callback."] +#[doc = " \\param file Source file name."] +#[doc = " \\param line Line number."] +#[doc = " \\param function Function name."] +#[doc = " \\param err Value of \\c errno, or 0 if not relevant."] +#[doc = " \\param fmt \\c printf(3) format."] +#[doc = " \\param ... \\c printf(3) arguments."] +#[doc = ""] +#[doc = " A function of this type is called by the ALSA library when an error occurs."] +#[doc = " This function usually shows the message on the screen, and/or logs it."] +pub type snd_lib_error_handler_t = ::std::option::Option< + unsafe extern "C" fn( + file: *const ::std::os::raw::c_char, + line: ::std::os::raw::c_int, + function: *const ::std::os::raw::c_char, + err: ::std::os::raw::c_int, + fmt: *const ::std::os::raw::c_char, + ... + ), +>; +extern "C" { + pub fn snd_lib_error_set_handler(handler: snd_lib_error_handler_t) -> ::std::os::raw::c_int; +} +#[doc = " Local error handler function type"] +pub type snd_local_error_handler_t = ::std::option::Option< + unsafe extern "C" fn( + file: *const ::std::os::raw::c_char, + line: ::std::os::raw::c_int, + func: *const ::std::os::raw::c_char, + err: ::std::os::raw::c_int, + fmt: *const ::std::os::raw::c_char, + arg: *mut __va_list_tag, + ), +>; +extern "C" { + pub fn snd_lib_error_set_local(func: snd_local_error_handler_t) -> snd_local_error_handler_t; +} +#[doc = " Integer number."] +pub const SND_CONFIG_TYPE_INTEGER: _snd_config_type = 0; +#[doc = " 64-bit integer number."] +pub const SND_CONFIG_TYPE_INTEGER64: _snd_config_type = 1; +#[doc = " Real number."] +pub const SND_CONFIG_TYPE_REAL: _snd_config_type = 2; +#[doc = " Character string."] +pub const SND_CONFIG_TYPE_STRING: _snd_config_type = 3; +#[doc = " Pointer (runtime only, cannot be saved)."] +pub const SND_CONFIG_TYPE_POINTER: _snd_config_type = 4; +#[doc = " Compound node."] +pub const SND_CONFIG_TYPE_COMPOUND: _snd_config_type = 1024; +#[doc = " \\brief Configuration node type."] +pub type _snd_config_type = u32; +#[doc = " \\brief Configuration node type."] +pub use self::_snd_config_type as snd_config_type_t; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct _snd_config { + _unused: [u8; 0], +} +#[doc = " \\brief Internal structure for a configuration node object."] +#[doc = ""] +#[doc = " The ALSA library uses a pointer to this structure as a handle to a"] +#[doc = " configuration node. Applications don't access its contents directly."] +pub type snd_config_t = _snd_config; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct _snd_config_iterator { + _unused: [u8; 0], +} +#[doc = " \\brief Type for a configuration compound iterator."] +#[doc = ""] +#[doc = " The ALSA library uses this pointer type as a handle to a configuration"] +#[doc = " compound iterator. Applications don't directly access the contents of"] +#[doc = " the structure pointed to by this type."] +pub type snd_config_iterator_t = *mut _snd_config_iterator; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct _snd_config_update { + _unused: [u8; 0], +} +#[doc = " \\brief Internal structure for a configuration private update object."] +#[doc = ""] +#[doc = " The ALSA library uses this structure to save private update information."] +pub type snd_config_update_t = _snd_config_update; +extern "C" { + pub fn snd_config_topdir() -> *const ::std::os::raw::c_char; +} +extern "C" { + pub fn snd_config_top(config: *mut *mut snd_config_t) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_config_load( + config: *mut snd_config_t, + in_: *mut snd_input_t, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_config_load_override( + config: *mut snd_config_t, + in_: *mut snd_input_t, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_config_save( + config: *mut snd_config_t, + out: *mut snd_output_t, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_config_update() -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_config_update_r( + top: *mut *mut snd_config_t, + update: *mut *mut snd_config_update_t, + path: *const ::std::os::raw::c_char, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_config_update_free(update: *mut snd_config_update_t) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_config_update_free_global() -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_config_update_ref(top: *mut *mut snd_config_t) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_config_ref(top: *mut snd_config_t); +} +extern "C" { + pub fn snd_config_unref(top: *mut snd_config_t); +} +extern "C" { + pub fn snd_config_search( + config: *mut snd_config_t, + key: *const ::std::os::raw::c_char, + result: *mut *mut snd_config_t, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_config_searchv( + config: *mut snd_config_t, + result: *mut *mut snd_config_t, + ... + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_config_search_definition( + config: *mut snd_config_t, + base: *const ::std::os::raw::c_char, + key: *const ::std::os::raw::c_char, + result: *mut *mut snd_config_t, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_config_expand( + config: *mut snd_config_t, + root: *mut snd_config_t, + args: *const ::std::os::raw::c_char, + private_data: *mut snd_config_t, + result: *mut *mut snd_config_t, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_config_evaluate( + config: *mut snd_config_t, + root: *mut snd_config_t, + private_data: *mut snd_config_t, + result: *mut *mut snd_config_t, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_config_add( + config: *mut snd_config_t, + child: *mut snd_config_t, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_config_add_before( + before: *mut snd_config_t, + child: *mut snd_config_t, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_config_add_after( + after: *mut snd_config_t, + child: *mut snd_config_t, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_config_remove(config: *mut snd_config_t) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_config_delete(config: *mut snd_config_t) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_config_delete_compound_members(config: *const snd_config_t) + -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_config_copy( + dst: *mut *mut snd_config_t, + src: *mut snd_config_t, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_config_make( + config: *mut *mut snd_config_t, + key: *const ::std::os::raw::c_char, + type_: snd_config_type_t, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_config_make_integer( + config: *mut *mut snd_config_t, + key: *const ::std::os::raw::c_char, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_config_make_integer64( + config: *mut *mut snd_config_t, + key: *const ::std::os::raw::c_char, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_config_make_real( + config: *mut *mut snd_config_t, + key: *const ::std::os::raw::c_char, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_config_make_string( + config: *mut *mut snd_config_t, + key: *const ::std::os::raw::c_char, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_config_make_pointer( + config: *mut *mut snd_config_t, + key: *const ::std::os::raw::c_char, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_config_make_compound( + config: *mut *mut snd_config_t, + key: *const ::std::os::raw::c_char, + join: ::std::os::raw::c_int, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_config_imake_integer( + config: *mut *mut snd_config_t, + key: *const ::std::os::raw::c_char, + value: ::std::os::raw::c_long, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_config_imake_integer64( + config: *mut *mut snd_config_t, + key: *const ::std::os::raw::c_char, + value: ::std::os::raw::c_longlong, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_config_imake_real( + config: *mut *mut snd_config_t, + key: *const ::std::os::raw::c_char, + value: f64, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_config_imake_string( + config: *mut *mut snd_config_t, + key: *const ::std::os::raw::c_char, + ascii: *const ::std::os::raw::c_char, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_config_imake_safe_string( + config: *mut *mut snd_config_t, + key: *const ::std::os::raw::c_char, + ascii: *const ::std::os::raw::c_char, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_config_imake_pointer( + config: *mut *mut snd_config_t, + key: *const ::std::os::raw::c_char, + ptr: *const ::std::os::raw::c_void, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_config_get_type(config: *const snd_config_t) -> snd_config_type_t; +} +extern "C" { + pub fn snd_config_is_array(config: *const snd_config_t) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_config_set_id( + config: *mut snd_config_t, + id: *const ::std::os::raw::c_char, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_config_set_integer( + config: *mut snd_config_t, + value: ::std::os::raw::c_long, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_config_set_integer64( + config: *mut snd_config_t, + value: ::std::os::raw::c_longlong, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_config_set_real(config: *mut snd_config_t, value: f64) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_config_set_string( + config: *mut snd_config_t, + value: *const ::std::os::raw::c_char, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_config_set_ascii( + config: *mut snd_config_t, + ascii: *const ::std::os::raw::c_char, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_config_set_pointer( + config: *mut snd_config_t, + ptr: *const ::std::os::raw::c_void, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_config_get_id( + config: *const snd_config_t, + value: *mut *const ::std::os::raw::c_char, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_config_get_integer( + config: *const snd_config_t, + value: *mut ::std::os::raw::c_long, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_config_get_integer64( + config: *const snd_config_t, + value: *mut ::std::os::raw::c_longlong, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_config_get_real( + config: *const snd_config_t, + value: *mut f64, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_config_get_ireal( + config: *const snd_config_t, + value: *mut f64, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_config_get_string( + config: *const snd_config_t, + value: *mut *const ::std::os::raw::c_char, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_config_get_ascii( + config: *const snd_config_t, + value: *mut *mut ::std::os::raw::c_char, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_config_get_pointer( + config: *const snd_config_t, + value: *mut *const ::std::os::raw::c_void, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_config_test_id( + config: *const snd_config_t, + id: *const ::std::os::raw::c_char, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_config_iterator_first(node: *const snd_config_t) -> snd_config_iterator_t; +} +extern "C" { + pub fn snd_config_iterator_next(iterator: snd_config_iterator_t) -> snd_config_iterator_t; +} +extern "C" { + pub fn snd_config_iterator_end(node: *const snd_config_t) -> snd_config_iterator_t; +} +extern "C" { + pub fn snd_config_iterator_entry(iterator: snd_config_iterator_t) -> *mut snd_config_t; +} +extern "C" { + pub fn snd_config_get_bool_ascii(ascii: *const ::std::os::raw::c_char) + -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_config_get_bool(conf: *const snd_config_t) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_config_get_ctl_iface_ascii( + ascii: *const ::std::os::raw::c_char, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_config_get_ctl_iface(conf: *const snd_config_t) -> ::std::os::raw::c_int; +} +#[doc = " Device-name list element"] +pub type snd_devname_t = snd_devname; +#[doc = " Device-name list element (definition)"] +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct snd_devname { + #[doc = "< Device name string"] + pub name: *mut ::std::os::raw::c_char, + #[doc = "< Comments"] + pub comment: *mut ::std::os::raw::c_char, + #[doc = "< Next pointer"] + pub next: *mut snd_devname_t, +} +extern "C" { + pub fn snd_names_list( + iface: *const ::std::os::raw::c_char, + list: *mut *mut snd_devname_t, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_names_list_free(list: *mut snd_devname_t); +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct _snd_pcm_info { + _unused: [u8; 0], +} +#[doc = " PCM generic info container"] +pub type snd_pcm_info_t = _snd_pcm_info; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct _snd_pcm_hw_params { + _unused: [u8; 0], +} +#[doc = " PCM hardware configuration space container"] +#[doc = ""] +#[doc = " snd_pcm_hw_params_t is an opaque structure which contains a set of possible"] +#[doc = " PCM hardware configurations. For example, a given instance might include a"] +#[doc = " range of buffer sizes, a range of period sizes, and a set of several sample"] +#[doc = " formats. Some subset of all possible combinations these sets may be valid,"] +#[doc = " but not necessarily any combination will be valid."] +#[doc = ""] +#[doc = " When a parameter is set or restricted using a snd_pcm_hw_params_set*"] +#[doc = " function, all of the other ranges will be updated to exclude as many"] +#[doc = " impossible configurations as possible. Attempting to set a parameter"] +#[doc = " outside of its acceptable range will result in the function failing"] +#[doc = " and an error code being returned."] +pub type snd_pcm_hw_params_t = _snd_pcm_hw_params; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct _snd_pcm_sw_params { + _unused: [u8; 0], +} +#[doc = " PCM software configuration container"] +pub type snd_pcm_sw_params_t = _snd_pcm_sw_params; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct _snd_pcm_status { + _unused: [u8; 0], +} +#[doc = " PCM status container"] +pub type snd_pcm_status_t = _snd_pcm_status; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct _snd_pcm_access_mask { + _unused: [u8; 0], +} +#[doc = " PCM access types mask"] +pub type snd_pcm_access_mask_t = _snd_pcm_access_mask; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct _snd_pcm_format_mask { + _unused: [u8; 0], +} +#[doc = " PCM formats mask"] +pub type snd_pcm_format_mask_t = _snd_pcm_format_mask; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct _snd_pcm_subformat_mask { + _unused: [u8; 0], +} +#[doc = " PCM subformats mask"] +pub type snd_pcm_subformat_mask_t = _snd_pcm_subformat_mask; +#[doc = " standard device"] +pub const SND_PCM_CLASS_GENERIC: _snd_pcm_class = 0; +#[doc = " multichannel device"] +pub const SND_PCM_CLASS_MULTI: _snd_pcm_class = 1; +#[doc = " software modem device"] +pub const SND_PCM_CLASS_MODEM: _snd_pcm_class = 2; +#[doc = " digitizer device"] +pub const SND_PCM_CLASS_DIGITIZER: _snd_pcm_class = 3; +#[doc = " digitizer device"] +pub const SND_PCM_CLASS_LAST: _snd_pcm_class = 3; +#[doc = " PCM class"] +pub type _snd_pcm_class = u32; +#[doc = " PCM class"] +pub use self::_snd_pcm_class as snd_pcm_class_t; +#[doc = " subdevices are mixed together"] +pub const SND_PCM_SUBCLASS_GENERIC_MIX: _snd_pcm_subclass = 0; +#[doc = " multichannel subdevices are mixed together"] +pub const SND_PCM_SUBCLASS_MULTI_MIX: _snd_pcm_subclass = 1; +#[doc = " multichannel subdevices are mixed together"] +pub const SND_PCM_SUBCLASS_LAST: _snd_pcm_subclass = 1; +#[doc = " PCM subclass"] +pub type _snd_pcm_subclass = u32; +#[doc = " PCM subclass"] +pub use self::_snd_pcm_subclass as snd_pcm_subclass_t; +#[doc = " Playback stream"] +pub const SND_PCM_STREAM_PLAYBACK: _snd_pcm_stream = 0; +#[doc = " Capture stream"] +pub const SND_PCM_STREAM_CAPTURE: _snd_pcm_stream = 1; +#[doc = " Capture stream"] +pub const SND_PCM_STREAM_LAST: _snd_pcm_stream = 1; +#[doc = " PCM stream (direction)"] +pub type _snd_pcm_stream = u32; +#[doc = " PCM stream (direction)"] +pub use self::_snd_pcm_stream as snd_pcm_stream_t; +#[doc = " mmap access with simple interleaved channels"] +pub const SND_PCM_ACCESS_MMAP_INTERLEAVED: _snd_pcm_access = 0; +#[doc = " mmap access with simple non interleaved channels"] +pub const SND_PCM_ACCESS_MMAP_NONINTERLEAVED: _snd_pcm_access = 1; +#[doc = " mmap access with complex placement"] +pub const SND_PCM_ACCESS_MMAP_COMPLEX: _snd_pcm_access = 2; +#[doc = " snd_pcm_readi/snd_pcm_writei access"] +pub const SND_PCM_ACCESS_RW_INTERLEAVED: _snd_pcm_access = 3; +#[doc = " snd_pcm_readn/snd_pcm_writen access"] +pub const SND_PCM_ACCESS_RW_NONINTERLEAVED: _snd_pcm_access = 4; +#[doc = " snd_pcm_readn/snd_pcm_writen access"] +pub const SND_PCM_ACCESS_LAST: _snd_pcm_access = 4; +#[doc = " PCM access type"] +pub type _snd_pcm_access = u32; +#[doc = " PCM access type"] +pub use self::_snd_pcm_access as snd_pcm_access_t; +#[doc = " Unknown"] +pub const SND_PCM_FORMAT_UNKNOWN: _snd_pcm_format = -1; +#[doc = " Signed 8 bit"] +pub const SND_PCM_FORMAT_S8: _snd_pcm_format = 0; +#[doc = " Unsigned 8 bit"] +pub const SND_PCM_FORMAT_U8: _snd_pcm_format = 1; +#[doc = " Signed 16 bit Little Endian"] +pub const SND_PCM_FORMAT_S16_LE: _snd_pcm_format = 2; +#[doc = " Signed 16 bit Big Endian"] +pub const SND_PCM_FORMAT_S16_BE: _snd_pcm_format = 3; +#[doc = " Unsigned 16 bit Little Endian"] +pub const SND_PCM_FORMAT_U16_LE: _snd_pcm_format = 4; +#[doc = " Unsigned 16 bit Big Endian"] +pub const SND_PCM_FORMAT_U16_BE: _snd_pcm_format = 5; +#[doc = " Signed 24 bit Little Endian using low three bytes in 32-bit word"] +pub const SND_PCM_FORMAT_S24_LE: _snd_pcm_format = 6; +#[doc = " Signed 24 bit Big Endian using low three bytes in 32-bit word"] +pub const SND_PCM_FORMAT_S24_BE: _snd_pcm_format = 7; +#[doc = " Unsigned 24 bit Little Endian using low three bytes in 32-bit word"] +pub const SND_PCM_FORMAT_U24_LE: _snd_pcm_format = 8; +#[doc = " Unsigned 24 bit Big Endian using low three bytes in 32-bit word"] +pub const SND_PCM_FORMAT_U24_BE: _snd_pcm_format = 9; +#[doc = " Signed 32 bit Little Endian"] +pub const SND_PCM_FORMAT_S32_LE: _snd_pcm_format = 10; +#[doc = " Signed 32 bit Big Endian"] +pub const SND_PCM_FORMAT_S32_BE: _snd_pcm_format = 11; +#[doc = " Unsigned 32 bit Little Endian"] +pub const SND_PCM_FORMAT_U32_LE: _snd_pcm_format = 12; +#[doc = " Unsigned 32 bit Big Endian"] +pub const SND_PCM_FORMAT_U32_BE: _snd_pcm_format = 13; +#[doc = " Float 32 bit Little Endian, Range -1.0 to 1.0"] +pub const SND_PCM_FORMAT_FLOAT_LE: _snd_pcm_format = 14; +#[doc = " Float 32 bit Big Endian, Range -1.0 to 1.0"] +pub const SND_PCM_FORMAT_FLOAT_BE: _snd_pcm_format = 15; +#[doc = " Float 64 bit Little Endian, Range -1.0 to 1.0"] +pub const SND_PCM_FORMAT_FLOAT64_LE: _snd_pcm_format = 16; +#[doc = " Float 64 bit Big Endian, Range -1.0 to 1.0"] +pub const SND_PCM_FORMAT_FLOAT64_BE: _snd_pcm_format = 17; +#[doc = " IEC-958 Little Endian"] +pub const SND_PCM_FORMAT_IEC958_SUBFRAME_LE: _snd_pcm_format = 18; +#[doc = " IEC-958 Big Endian"] +pub const SND_PCM_FORMAT_IEC958_SUBFRAME_BE: _snd_pcm_format = 19; +#[doc = " Mu-Law"] +pub const SND_PCM_FORMAT_MU_LAW: _snd_pcm_format = 20; +#[doc = " A-Law"] +pub const SND_PCM_FORMAT_A_LAW: _snd_pcm_format = 21; +#[doc = " Ima-ADPCM"] +pub const SND_PCM_FORMAT_IMA_ADPCM: _snd_pcm_format = 22; +#[doc = " MPEG"] +pub const SND_PCM_FORMAT_MPEG: _snd_pcm_format = 23; +#[doc = " GSM"] +pub const SND_PCM_FORMAT_GSM: _snd_pcm_format = 24; +#[doc = " Signed 20bit Little Endian in 4bytes format, LSB justified"] +pub const SND_PCM_FORMAT_S20_LE: _snd_pcm_format = 25; +#[doc = " Signed 20bit Big Endian in 4bytes format, LSB justified"] +pub const SND_PCM_FORMAT_S20_BE: _snd_pcm_format = 26; +#[doc = " Unsigned 20bit Little Endian in 4bytes format, LSB justified"] +pub const SND_PCM_FORMAT_U20_LE: _snd_pcm_format = 27; +#[doc = " Unsigned 20bit Big Endian in 4bytes format, LSB justified"] +pub const SND_PCM_FORMAT_U20_BE: _snd_pcm_format = 28; +#[doc = " Special"] +pub const SND_PCM_FORMAT_SPECIAL: _snd_pcm_format = 31; +#[doc = " Signed 24bit Little Endian in 3bytes format"] +pub const SND_PCM_FORMAT_S24_3LE: _snd_pcm_format = 32; +#[doc = " Signed 24bit Big Endian in 3bytes format"] +pub const SND_PCM_FORMAT_S24_3BE: _snd_pcm_format = 33; +#[doc = " Unsigned 24bit Little Endian in 3bytes format"] +pub const SND_PCM_FORMAT_U24_3LE: _snd_pcm_format = 34; +#[doc = " Unsigned 24bit Big Endian in 3bytes format"] +pub const SND_PCM_FORMAT_U24_3BE: _snd_pcm_format = 35; +#[doc = " Signed 20bit Little Endian in 3bytes format"] +pub const SND_PCM_FORMAT_S20_3LE: _snd_pcm_format = 36; +#[doc = " Signed 20bit Big Endian in 3bytes format"] +pub const SND_PCM_FORMAT_S20_3BE: _snd_pcm_format = 37; +#[doc = " Unsigned 20bit Little Endian in 3bytes format"] +pub const SND_PCM_FORMAT_U20_3LE: _snd_pcm_format = 38; +#[doc = " Unsigned 20bit Big Endian in 3bytes format"] +pub const SND_PCM_FORMAT_U20_3BE: _snd_pcm_format = 39; +#[doc = " Signed 18bit Little Endian in 3bytes format"] +pub const SND_PCM_FORMAT_S18_3LE: _snd_pcm_format = 40; +#[doc = " Signed 18bit Big Endian in 3bytes format"] +pub const SND_PCM_FORMAT_S18_3BE: _snd_pcm_format = 41; +#[doc = " Unsigned 18bit Little Endian in 3bytes format"] +pub const SND_PCM_FORMAT_U18_3LE: _snd_pcm_format = 42; +#[doc = " Unsigned 18bit Big Endian in 3bytes format"] +pub const SND_PCM_FORMAT_U18_3BE: _snd_pcm_format = 43; +#[doc = " Unsigned 18bit Big Endian in 3bytes format"] +pub const SND_PCM_FORMAT_G723_24: _snd_pcm_format = 44; +#[doc = " Unsigned 18bit Big Endian in 3bytes format"] +pub const SND_PCM_FORMAT_G723_24_1B: _snd_pcm_format = 45; +#[doc = " Unsigned 18bit Big Endian in 3bytes format"] +pub const SND_PCM_FORMAT_G723_40: _snd_pcm_format = 46; +#[doc = " Unsigned 18bit Big Endian in 3bytes format"] +pub const SND_PCM_FORMAT_G723_40_1B: _snd_pcm_format = 47; +#[doc = " Unsigned 18bit Big Endian in 3bytes format"] +pub const SND_PCM_FORMAT_DSD_U8: _snd_pcm_format = 48; +#[doc = " Unsigned 18bit Big Endian in 3bytes format"] +pub const SND_PCM_FORMAT_DSD_U16_LE: _snd_pcm_format = 49; +#[doc = " Unsigned 18bit Big Endian in 3bytes format"] +pub const SND_PCM_FORMAT_DSD_U32_LE: _snd_pcm_format = 50; +#[doc = " Unsigned 18bit Big Endian in 3bytes format"] +pub const SND_PCM_FORMAT_DSD_U16_BE: _snd_pcm_format = 51; +#[doc = " Unsigned 18bit Big Endian in 3bytes format"] +pub const SND_PCM_FORMAT_DSD_U32_BE: _snd_pcm_format = 52; +#[doc = " Unsigned 18bit Big Endian in 3bytes format"] +pub const SND_PCM_FORMAT_LAST: _snd_pcm_format = 52; +#[doc = " Signed 16 bit CPU endian"] +pub const SND_PCM_FORMAT_S16: _snd_pcm_format = 2; +#[doc = " Unsigned 16 bit CPU endian"] +pub const SND_PCM_FORMAT_U16: _snd_pcm_format = 4; +#[doc = " Signed 24 bit CPU endian"] +pub const SND_PCM_FORMAT_S24: _snd_pcm_format = 6; +#[doc = " Unsigned 24 bit CPU endian"] +pub const SND_PCM_FORMAT_U24: _snd_pcm_format = 8; +#[doc = " Signed 32 bit CPU endian"] +pub const SND_PCM_FORMAT_S32: _snd_pcm_format = 10; +#[doc = " Unsigned 32 bit CPU endian"] +pub const SND_PCM_FORMAT_U32: _snd_pcm_format = 12; +#[doc = " Float 32 bit CPU endian"] +pub const SND_PCM_FORMAT_FLOAT: _snd_pcm_format = 14; +#[doc = " Float 64 bit CPU endian"] +pub const SND_PCM_FORMAT_FLOAT64: _snd_pcm_format = 16; +#[doc = " IEC-958 CPU Endian"] +pub const SND_PCM_FORMAT_IEC958_SUBFRAME: _snd_pcm_format = 18; +#[doc = " Signed 20bit in 4bytes format, LSB justified, CPU Endian"] +pub const SND_PCM_FORMAT_S20: _snd_pcm_format = 25; +#[doc = " Unsigned 20bit in 4bytes format, LSB justified, CPU Endian"] +pub const SND_PCM_FORMAT_U20: _snd_pcm_format = 27; +#[doc = " PCM sample format"] +pub type _snd_pcm_format = i32; +#[doc = " PCM sample format"] +pub use self::_snd_pcm_format as snd_pcm_format_t; +#[doc = " Standard"] +pub const SND_PCM_SUBFORMAT_STD: _snd_pcm_subformat = 0; +#[doc = " Standard"] +pub const SND_PCM_SUBFORMAT_LAST: _snd_pcm_subformat = 0; +#[doc = " PCM sample subformat"] +pub type _snd_pcm_subformat = u32; +#[doc = " PCM sample subformat"] +pub use self::_snd_pcm_subformat as snd_pcm_subformat_t; +#[doc = " Open"] +pub const SND_PCM_STATE_OPEN: _snd_pcm_state = 0; +#[doc = " Setup installed"] +pub const SND_PCM_STATE_SETUP: _snd_pcm_state = 1; +#[doc = " Ready to start"] +pub const SND_PCM_STATE_PREPARED: _snd_pcm_state = 2; +#[doc = " Running"] +pub const SND_PCM_STATE_RUNNING: _snd_pcm_state = 3; +#[doc = " Stopped: underrun (playback) or overrun (capture) detected"] +pub const SND_PCM_STATE_XRUN: _snd_pcm_state = 4; +#[doc = " Draining: running (playback) or stopped (capture)"] +pub const SND_PCM_STATE_DRAINING: _snd_pcm_state = 5; +#[doc = " Paused"] +pub const SND_PCM_STATE_PAUSED: _snd_pcm_state = 6; +#[doc = " Hardware is suspended"] +pub const SND_PCM_STATE_SUSPENDED: _snd_pcm_state = 7; +#[doc = " Hardware is disconnected"] +pub const SND_PCM_STATE_DISCONNECTED: _snd_pcm_state = 8; +#[doc = " Hardware is disconnected"] +pub const SND_PCM_STATE_LAST: _snd_pcm_state = 8; +#[doc = " Private - used internally in the library - do not use"] +pub const SND_PCM_STATE_PRIVATE1: _snd_pcm_state = 1024; +#[doc = " PCM state"] +pub type _snd_pcm_state = u32; +#[doc = " PCM state"] +pub use self::_snd_pcm_state as snd_pcm_state_t; +#[doc = " Automatic start on data read/write"] +pub const SND_PCM_START_DATA: _snd_pcm_start = 0; +#[doc = " Explicit start"] +pub const SND_PCM_START_EXPLICIT: _snd_pcm_start = 1; +#[doc = " Explicit start"] +pub const SND_PCM_START_LAST: _snd_pcm_start = 1; +#[doc = " PCM start mode"] +pub type _snd_pcm_start = u32; +#[doc = " PCM start mode"] +pub use self::_snd_pcm_start as snd_pcm_start_t; +#[doc = " Xrun detection disabled"] +pub const SND_PCM_XRUN_NONE: _snd_pcm_xrun = 0; +#[doc = " Stop on xrun detection"] +pub const SND_PCM_XRUN_STOP: _snd_pcm_xrun = 1; +#[doc = " Stop on xrun detection"] +pub const SND_PCM_XRUN_LAST: _snd_pcm_xrun = 1; +#[doc = " PCM xrun mode"] +pub type _snd_pcm_xrun = u32; +#[doc = " PCM xrun mode"] +pub use self::_snd_pcm_xrun as snd_pcm_xrun_t; +#[doc = " No timestamp"] +pub const SND_PCM_TSTAMP_NONE: _snd_pcm_tstamp = 0; +#[doc = " Update timestamp at every hardware position update"] +pub const SND_PCM_TSTAMP_ENABLE: _snd_pcm_tstamp = 1; +#[doc = " Equivalent with #SND_PCM_TSTAMP_ENABLE,"] +#[doc = " just for compatibility with older versions"] +pub const SND_PCM_TSTAMP_MMAP: _snd_pcm_tstamp = 1; +#[doc = " Equivalent with #SND_PCM_TSTAMP_ENABLE,"] +#[doc = " just for compatibility with older versions"] +pub const SND_PCM_TSTAMP_LAST: _snd_pcm_tstamp = 1; +#[doc = " PCM timestamp mode"] +pub type _snd_pcm_tstamp = u32; +#[doc = " PCM timestamp mode"] +pub use self::_snd_pcm_tstamp as snd_pcm_tstamp_t; +#[doc = "< gettimeofday equivalent"] +pub const SND_PCM_TSTAMP_TYPE_GETTIMEOFDAY: _snd_pcm_tstamp_type = 0; +#[doc = "< posix_clock_monotonic equivalent"] +pub const SND_PCM_TSTAMP_TYPE_MONOTONIC: _snd_pcm_tstamp_type = 1; +#[doc = "< monotonic_raw (no NTP)"] +pub const SND_PCM_TSTAMP_TYPE_MONOTONIC_RAW: _snd_pcm_tstamp_type = 2; +pub const SND_PCM_TSTAMP_TYPE_LAST: _snd_pcm_tstamp_type = 2; +pub type _snd_pcm_tstamp_type = u32; +pub use self::_snd_pcm_tstamp_type as snd_pcm_tstamp_type_t; +#[doc = " first definition for backwards compatibility only,"] +#[doc = " maps to wallclock/link time for HDAudio playback and DEFAULT/DMA time for everything else"] +pub const SND_PCM_AUDIO_TSTAMP_TYPE_COMPAT: _snd_pcm_audio_tstamp_type = 0; +#[doc = "< DMA time, reported as per hw_ptr"] +pub const SND_PCM_AUDIO_TSTAMP_TYPE_DEFAULT: _snd_pcm_audio_tstamp_type = 1; +#[doc = "< link time reported by sample or wallclock counter, reset on startup"] +pub const SND_PCM_AUDIO_TSTAMP_TYPE_LINK: _snd_pcm_audio_tstamp_type = 2; +#[doc = "< link time reported by sample or wallclock counter, not reset on startup"] +pub const SND_PCM_AUDIO_TSTAMP_TYPE_LINK_ABSOLUTE: _snd_pcm_audio_tstamp_type = 3; +#[doc = "< link time estimated indirectly"] +pub const SND_PCM_AUDIO_TSTAMP_TYPE_LINK_ESTIMATED: _snd_pcm_audio_tstamp_type = 4; +#[doc = "< link time synchronized with system time"] +pub const SND_PCM_AUDIO_TSTAMP_TYPE_LINK_SYNCHRONIZED: _snd_pcm_audio_tstamp_type = 5; +pub const SND_PCM_AUDIO_TSTAMP_TYPE_LAST: _snd_pcm_audio_tstamp_type = 5; +pub type _snd_pcm_audio_tstamp_type = u32; +pub use self::_snd_pcm_audio_tstamp_type as snd_pcm_audio_tstamp_type_t; +#[repr(C)] +#[repr(align(4))] +#[derive(Debug, Copy, Clone)] +pub struct _snd_pcm_audio_tstamp_config { + pub _bitfield_1: __BindgenBitfieldUnit<[u8; 1usize], u8>, + pub __bindgen_padding_0: [u8; 3usize], +} +impl _snd_pcm_audio_tstamp_config { + #[inline] + pub fn type_requested(&self) -> ::std::os::raw::c_uint { + unsafe { ::std::mem::transmute(self._bitfield_1.get(0usize, 4u8) as u32) } + } + #[inline] + pub fn set_type_requested(&mut self, val: ::std::os::raw::c_uint) { + unsafe { + let val: u32 = ::std::mem::transmute(val); + self._bitfield_1.set(0usize, 4u8, val as u64) + } + } + #[inline] + pub fn report_delay(&self) -> ::std::os::raw::c_uint { + unsafe { ::std::mem::transmute(self._bitfield_1.get(4usize, 1u8) as u32) } + } + #[inline] + pub fn set_report_delay(&mut self, val: ::std::os::raw::c_uint) { + unsafe { + let val: u32 = ::std::mem::transmute(val); + self._bitfield_1.set(4usize, 1u8, val as u64) + } + } + #[inline] + pub fn new_bitfield_1( + type_requested: ::std::os::raw::c_uint, + report_delay: ::std::os::raw::c_uint, + ) -> __BindgenBitfieldUnit<[u8; 1usize], u8> { + let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 1usize], u8> = + Default::default(); + __bindgen_bitfield_unit.set(0usize, 4u8, { + let type_requested: u32 = unsafe { ::std::mem::transmute(type_requested) }; + type_requested as u64 + }); + __bindgen_bitfield_unit.set(4usize, 1u8, { + let report_delay: u32 = unsafe { ::std::mem::transmute(report_delay) }; + report_delay as u64 + }); + __bindgen_bitfield_unit + } +} +pub type snd_pcm_audio_tstamp_config_t = _snd_pcm_audio_tstamp_config; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct _snd_pcm_audio_tstamp_report { + pub _bitfield_1: __BindgenBitfieldUnit<[u8; 1usize], u8>, + pub accuracy: ::std::os::raw::c_uint, +} +impl _snd_pcm_audio_tstamp_report { + #[inline] + pub fn valid(&self) -> ::std::os::raw::c_uint { + unsafe { ::std::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u32) } + } + #[inline] + pub fn set_valid(&mut self, val: ::std::os::raw::c_uint) { + unsafe { + let val: u32 = ::std::mem::transmute(val); + self._bitfield_1.set(0usize, 1u8, val as u64) + } + } + #[inline] + pub fn actual_type(&self) -> ::std::os::raw::c_uint { + unsafe { ::std::mem::transmute(self._bitfield_1.get(1usize, 4u8) as u32) } + } + #[inline] + pub fn set_actual_type(&mut self, val: ::std::os::raw::c_uint) { + unsafe { + let val: u32 = ::std::mem::transmute(val); + self._bitfield_1.set(1usize, 4u8, val as u64) + } + } + #[inline] + pub fn accuracy_report(&self) -> ::std::os::raw::c_uint { + unsafe { ::std::mem::transmute(self._bitfield_1.get(5usize, 1u8) as u32) } + } + #[inline] + pub fn set_accuracy_report(&mut self, val: ::std::os::raw::c_uint) { + unsafe { + let val: u32 = ::std::mem::transmute(val); + self._bitfield_1.set(5usize, 1u8, val as u64) + } + } + #[inline] + pub fn new_bitfield_1( + valid: ::std::os::raw::c_uint, + actual_type: ::std::os::raw::c_uint, + accuracy_report: ::std::os::raw::c_uint, + ) -> __BindgenBitfieldUnit<[u8; 1usize], u8> { + let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 1usize], u8> = + Default::default(); + __bindgen_bitfield_unit.set(0usize, 1u8, { + let valid: u32 = unsafe { ::std::mem::transmute(valid) }; + valid as u64 + }); + __bindgen_bitfield_unit.set(1usize, 4u8, { + let actual_type: u32 = unsafe { ::std::mem::transmute(actual_type) }; + actual_type as u64 + }); + __bindgen_bitfield_unit.set(5usize, 1u8, { + let accuracy_report: u32 = unsafe { ::std::mem::transmute(accuracy_report) }; + accuracy_report as u64 + }); + __bindgen_bitfield_unit + } +} +pub type snd_pcm_audio_tstamp_report_t = _snd_pcm_audio_tstamp_report; +#[doc = " Unsigned frames quantity"] +pub type snd_pcm_uframes_t = ::std::os::raw::c_ulong; +#[doc = " Signed frames quantity"] +pub type snd_pcm_sframes_t = ::std::os::raw::c_long; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct _snd_pcm { + _unused: [u8; 0], +} +#[doc = " PCM handle"] +pub type snd_pcm_t = _snd_pcm; +#[doc = " Kernel level PCM"] +pub const SND_PCM_TYPE_HW: _snd_pcm_type = 0; +#[doc = " Hooked PCM"] +pub const SND_PCM_TYPE_HOOKS: _snd_pcm_type = 1; +#[doc = " One or more linked PCM with exclusive access to selected"] +#[doc = "channels"] +pub const SND_PCM_TYPE_MULTI: _snd_pcm_type = 2; +#[doc = " File writing plugin"] +pub const SND_PCM_TYPE_FILE: _snd_pcm_type = 3; +#[doc = " Null endpoint PCM"] +pub const SND_PCM_TYPE_NULL: _snd_pcm_type = 4; +#[doc = " Shared memory client PCM"] +pub const SND_PCM_TYPE_SHM: _snd_pcm_type = 5; +#[doc = " INET client PCM (not yet implemented)"] +pub const SND_PCM_TYPE_INET: _snd_pcm_type = 6; +#[doc = " Copying plugin"] +pub const SND_PCM_TYPE_COPY: _snd_pcm_type = 7; +#[doc = " Linear format conversion PCM"] +pub const SND_PCM_TYPE_LINEAR: _snd_pcm_type = 8; +#[doc = " A-Law format conversion PCM"] +pub const SND_PCM_TYPE_ALAW: _snd_pcm_type = 9; +#[doc = " Mu-Law format conversion PCM"] +pub const SND_PCM_TYPE_MULAW: _snd_pcm_type = 10; +#[doc = " IMA-ADPCM format conversion PCM"] +pub const SND_PCM_TYPE_ADPCM: _snd_pcm_type = 11; +#[doc = " Rate conversion PCM"] +pub const SND_PCM_TYPE_RATE: _snd_pcm_type = 12; +#[doc = " Attenuated static route PCM"] +pub const SND_PCM_TYPE_ROUTE: _snd_pcm_type = 13; +#[doc = " Format adjusted PCM"] +pub const SND_PCM_TYPE_PLUG: _snd_pcm_type = 14; +#[doc = " Sharing PCM"] +pub const SND_PCM_TYPE_SHARE: _snd_pcm_type = 15; +#[doc = " Meter plugin"] +pub const SND_PCM_TYPE_METER: _snd_pcm_type = 16; +#[doc = " Mixing PCM"] +pub const SND_PCM_TYPE_MIX: _snd_pcm_type = 17; +#[doc = " Attenuated dynamic route PCM (not yet implemented)"] +pub const SND_PCM_TYPE_DROUTE: _snd_pcm_type = 18; +#[doc = " Loopback server plugin (not yet implemented)"] +pub const SND_PCM_TYPE_LBSERVER: _snd_pcm_type = 19; +#[doc = " Linear Integer <-> Linear Float format conversion PCM"] +pub const SND_PCM_TYPE_LINEAR_FLOAT: _snd_pcm_type = 20; +#[doc = " LADSPA integration plugin"] +pub const SND_PCM_TYPE_LADSPA: _snd_pcm_type = 21; +#[doc = " Direct Mixing plugin"] +pub const SND_PCM_TYPE_DMIX: _snd_pcm_type = 22; +#[doc = " Jack Audio Connection Kit plugin"] +pub const SND_PCM_TYPE_JACK: _snd_pcm_type = 23; +#[doc = " Direct Snooping plugin"] +pub const SND_PCM_TYPE_DSNOOP: _snd_pcm_type = 24; +#[doc = " Direct Sharing plugin"] +pub const SND_PCM_TYPE_DSHARE: _snd_pcm_type = 25; +#[doc = " IEC958 subframe plugin"] +pub const SND_PCM_TYPE_IEC958: _snd_pcm_type = 26; +#[doc = " Soft volume plugin"] +pub const SND_PCM_TYPE_SOFTVOL: _snd_pcm_type = 27; +#[doc = " External I/O plugin"] +pub const SND_PCM_TYPE_IOPLUG: _snd_pcm_type = 28; +#[doc = " External filter plugin"] +pub const SND_PCM_TYPE_EXTPLUG: _snd_pcm_type = 29; +#[doc = " Mmap-emulation plugin"] +pub const SND_PCM_TYPE_MMAP_EMUL: _snd_pcm_type = 30; +#[doc = " Mmap-emulation plugin"] +pub const SND_PCM_TYPE_LAST: _snd_pcm_type = 30; +#[doc = " PCM type"] +pub type _snd_pcm_type = u32; +#[doc = " PCM type"] +pub use self::_snd_pcm_type as snd_pcm_type_t; +#[doc = " PCM area specification"] +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct _snd_pcm_channel_area { + #[doc = " base address of channel samples"] + pub addr: *mut ::std::os::raw::c_void, + #[doc = " offset to first sample in bits"] + pub first: ::std::os::raw::c_uint, + #[doc = " samples distance in bits"] + pub step: ::std::os::raw::c_uint, +} +#[doc = " PCM area specification"] +pub type snd_pcm_channel_area_t = _snd_pcm_channel_area; +#[doc = " PCM synchronization ID"] +#[repr(C)] +#[derive(Copy, Clone)] +pub union _snd_pcm_sync_id { + #[doc = " 8-bit ID"] + pub id: [::std::os::raw::c_uchar; 16usize], + #[doc = " 16-bit ID"] + pub id16: [::std::os::raw::c_ushort; 8usize], + #[doc = " 32-bit ID"] + pub id32: [::std::os::raw::c_uint; 4usize], + _bindgen_union_align: [u32; 4usize], +} +#[doc = " PCM synchronization ID"] +pub type snd_pcm_sync_id_t = _snd_pcm_sync_id; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct _snd_pcm_scope { + _unused: [u8; 0], +} +#[doc = " #SND_PCM_TYPE_METER scope handle"] +pub type snd_pcm_scope_t = _snd_pcm_scope; +extern "C" { + pub fn snd_pcm_open( + pcm: *mut *mut snd_pcm_t, + name: *const ::std::os::raw::c_char, + stream: snd_pcm_stream_t, + mode: ::std::os::raw::c_int, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_pcm_open_lconf( + pcm: *mut *mut snd_pcm_t, + name: *const ::std::os::raw::c_char, + stream: snd_pcm_stream_t, + mode: ::std::os::raw::c_int, + lconf: *mut snd_config_t, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_pcm_open_fallback( + pcm: *mut *mut snd_pcm_t, + root: *mut snd_config_t, + name: *const ::std::os::raw::c_char, + orig_name: *const ::std::os::raw::c_char, + stream: snd_pcm_stream_t, + mode: ::std::os::raw::c_int, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_pcm_close(pcm: *mut snd_pcm_t) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_pcm_name(pcm: *mut snd_pcm_t) -> *const ::std::os::raw::c_char; +} +extern "C" { + pub fn snd_pcm_type(pcm: *mut snd_pcm_t) -> snd_pcm_type_t; +} +extern "C" { + pub fn snd_pcm_stream(pcm: *mut snd_pcm_t) -> snd_pcm_stream_t; +} +extern "C" { + pub fn snd_pcm_poll_descriptors_count(pcm: *mut snd_pcm_t) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_pcm_poll_descriptors( + pcm: *mut snd_pcm_t, + pfds: *mut pollfd, + space: ::std::os::raw::c_uint, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_pcm_poll_descriptors_revents( + pcm: *mut snd_pcm_t, + pfds: *mut pollfd, + nfds: ::std::os::raw::c_uint, + revents: *mut ::std::os::raw::c_ushort, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_pcm_nonblock( + pcm: *mut snd_pcm_t, + nonblock: ::std::os::raw::c_int, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_async_add_pcm_handler( + handler: *mut *mut snd_async_handler_t, + pcm: *mut snd_pcm_t, + callback: snd_async_callback_t, + private_data: *mut ::std::os::raw::c_void, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_async_handler_get_pcm(handler: *mut snd_async_handler_t) -> *mut snd_pcm_t; +} +extern "C" { + pub fn snd_pcm_info(pcm: *mut snd_pcm_t, info: *mut snd_pcm_info_t) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_pcm_hw_params_current( + pcm: *mut snd_pcm_t, + params: *mut snd_pcm_hw_params_t, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_pcm_hw_params( + pcm: *mut snd_pcm_t, + params: *mut snd_pcm_hw_params_t, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_pcm_hw_free(pcm: *mut snd_pcm_t) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_pcm_sw_params_current( + pcm: *mut snd_pcm_t, + params: *mut snd_pcm_sw_params_t, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_pcm_sw_params( + pcm: *mut snd_pcm_t, + params: *mut snd_pcm_sw_params_t, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_pcm_prepare(pcm: *mut snd_pcm_t) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_pcm_reset(pcm: *mut snd_pcm_t) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_pcm_status( + pcm: *mut snd_pcm_t, + status: *mut snd_pcm_status_t, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_pcm_start(pcm: *mut snd_pcm_t) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_pcm_drop(pcm: *mut snd_pcm_t) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_pcm_drain(pcm: *mut snd_pcm_t) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_pcm_pause( + pcm: *mut snd_pcm_t, + enable: ::std::os::raw::c_int, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_pcm_state(pcm: *mut snd_pcm_t) -> snd_pcm_state_t; +} +extern "C" { + pub fn snd_pcm_hwsync(pcm: *mut snd_pcm_t) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_pcm_delay( + pcm: *mut snd_pcm_t, + delayp: *mut snd_pcm_sframes_t, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_pcm_resume(pcm: *mut snd_pcm_t) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_pcm_htimestamp( + pcm: *mut snd_pcm_t, + avail: *mut snd_pcm_uframes_t, + tstamp: *mut snd_htimestamp_t, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_pcm_avail(pcm: *mut snd_pcm_t) -> snd_pcm_sframes_t; +} +extern "C" { + pub fn snd_pcm_avail_update(pcm: *mut snd_pcm_t) -> snd_pcm_sframes_t; +} +extern "C" { + pub fn snd_pcm_avail_delay( + pcm: *mut snd_pcm_t, + availp: *mut snd_pcm_sframes_t, + delayp: *mut snd_pcm_sframes_t, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_pcm_rewindable(pcm: *mut snd_pcm_t) -> snd_pcm_sframes_t; +} +extern "C" { + pub fn snd_pcm_rewind(pcm: *mut snd_pcm_t, frames: snd_pcm_uframes_t) -> snd_pcm_sframes_t; +} +extern "C" { + pub fn snd_pcm_forwardable(pcm: *mut snd_pcm_t) -> snd_pcm_sframes_t; +} +extern "C" { + pub fn snd_pcm_forward(pcm: *mut snd_pcm_t, frames: snd_pcm_uframes_t) -> snd_pcm_sframes_t; +} +extern "C" { + pub fn snd_pcm_writei( + pcm: *mut snd_pcm_t, + buffer: *const ::std::os::raw::c_void, + size: snd_pcm_uframes_t, + ) -> snd_pcm_sframes_t; +} +extern "C" { + pub fn snd_pcm_readi( + pcm: *mut snd_pcm_t, + buffer: *mut ::std::os::raw::c_void, + size: snd_pcm_uframes_t, + ) -> snd_pcm_sframes_t; +} +extern "C" { + pub fn snd_pcm_writen( + pcm: *mut snd_pcm_t, + bufs: *mut *mut ::std::os::raw::c_void, + size: snd_pcm_uframes_t, + ) -> snd_pcm_sframes_t; +} +extern "C" { + pub fn snd_pcm_readn( + pcm: *mut snd_pcm_t, + bufs: *mut *mut ::std::os::raw::c_void, + size: snd_pcm_uframes_t, + ) -> snd_pcm_sframes_t; +} +extern "C" { + pub fn snd_pcm_wait( + pcm: *mut snd_pcm_t, + timeout: ::std::os::raw::c_int, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_pcm_link(pcm1: *mut snd_pcm_t, pcm2: *mut snd_pcm_t) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_pcm_unlink(pcm: *mut snd_pcm_t) -> ::std::os::raw::c_int; +} +#[doc = "< unspecified channel position"] +pub const SND_CHMAP_TYPE_NONE: snd_pcm_chmap_type = 0; +#[doc = "< fixed channel position"] +pub const SND_CHMAP_TYPE_FIXED: snd_pcm_chmap_type = 1; +#[doc = "< freely swappable channel position"] +pub const SND_CHMAP_TYPE_VAR: snd_pcm_chmap_type = 2; +#[doc = "< pair-wise swappable channel position"] +pub const SND_CHMAP_TYPE_PAIRED: snd_pcm_chmap_type = 3; +#[doc = "< last entry"] +pub const SND_CHMAP_TYPE_LAST: snd_pcm_chmap_type = 3; +#[doc = " channel map list type"] +pub type snd_pcm_chmap_type = u32; +#[doc = "< unspecified"] +pub const SND_CHMAP_UNKNOWN: snd_pcm_chmap_position = 0; +#[doc = "< N/A, silent"] +pub const SND_CHMAP_NA: snd_pcm_chmap_position = 1; +#[doc = "< mono stream"] +pub const SND_CHMAP_MONO: snd_pcm_chmap_position = 2; +#[doc = "< front left"] +pub const SND_CHMAP_FL: snd_pcm_chmap_position = 3; +#[doc = "< front right"] +pub const SND_CHMAP_FR: snd_pcm_chmap_position = 4; +#[doc = "< rear left"] +pub const SND_CHMAP_RL: snd_pcm_chmap_position = 5; +#[doc = "< rear right"] +pub const SND_CHMAP_RR: snd_pcm_chmap_position = 6; +#[doc = "< front center"] +pub const SND_CHMAP_FC: snd_pcm_chmap_position = 7; +#[doc = "< LFE"] +pub const SND_CHMAP_LFE: snd_pcm_chmap_position = 8; +#[doc = "< side left"] +pub const SND_CHMAP_SL: snd_pcm_chmap_position = 9; +#[doc = "< side right"] +pub const SND_CHMAP_SR: snd_pcm_chmap_position = 10; +#[doc = "< rear center"] +pub const SND_CHMAP_RC: snd_pcm_chmap_position = 11; +#[doc = "< front left center"] +pub const SND_CHMAP_FLC: snd_pcm_chmap_position = 12; +#[doc = "< front right center"] +pub const SND_CHMAP_FRC: snd_pcm_chmap_position = 13; +#[doc = "< rear left center"] +pub const SND_CHMAP_RLC: snd_pcm_chmap_position = 14; +#[doc = "< rear right center"] +pub const SND_CHMAP_RRC: snd_pcm_chmap_position = 15; +#[doc = "< front left wide"] +pub const SND_CHMAP_FLW: snd_pcm_chmap_position = 16; +#[doc = "< front right wide"] +pub const SND_CHMAP_FRW: snd_pcm_chmap_position = 17; +#[doc = "< front left high"] +pub const SND_CHMAP_FLH: snd_pcm_chmap_position = 18; +#[doc = "< front center high"] +pub const SND_CHMAP_FCH: snd_pcm_chmap_position = 19; +#[doc = "< front right high"] +pub const SND_CHMAP_FRH: snd_pcm_chmap_position = 20; +#[doc = "< top center"] +pub const SND_CHMAP_TC: snd_pcm_chmap_position = 21; +#[doc = "< top front left"] +pub const SND_CHMAP_TFL: snd_pcm_chmap_position = 22; +#[doc = "< top front right"] +pub const SND_CHMAP_TFR: snd_pcm_chmap_position = 23; +#[doc = "< top front center"] +pub const SND_CHMAP_TFC: snd_pcm_chmap_position = 24; +#[doc = "< top rear left"] +pub const SND_CHMAP_TRL: snd_pcm_chmap_position = 25; +#[doc = "< top rear right"] +pub const SND_CHMAP_TRR: snd_pcm_chmap_position = 26; +#[doc = "< top rear center"] +pub const SND_CHMAP_TRC: snd_pcm_chmap_position = 27; +#[doc = "< top front left center"] +pub const SND_CHMAP_TFLC: snd_pcm_chmap_position = 28; +#[doc = "< top front right center"] +pub const SND_CHMAP_TFRC: snd_pcm_chmap_position = 29; +#[doc = "< top side left"] +pub const SND_CHMAP_TSL: snd_pcm_chmap_position = 30; +#[doc = "< top side right"] +pub const SND_CHMAP_TSR: snd_pcm_chmap_position = 31; +#[doc = "< left LFE"] +pub const SND_CHMAP_LLFE: snd_pcm_chmap_position = 32; +#[doc = "< right LFE"] +pub const SND_CHMAP_RLFE: snd_pcm_chmap_position = 33; +#[doc = "< bottom center"] +pub const SND_CHMAP_BC: snd_pcm_chmap_position = 34; +#[doc = "< bottom left center"] +pub const SND_CHMAP_BLC: snd_pcm_chmap_position = 35; +#[doc = "< bottom right center"] +pub const SND_CHMAP_BRC: snd_pcm_chmap_position = 36; +pub const SND_CHMAP_LAST: snd_pcm_chmap_position = 36; +#[doc = " channel positions"] +pub type snd_pcm_chmap_position = u32; +#[doc = " the channel map header"] +#[repr(C)] +#[derive(Debug)] +pub struct snd_pcm_chmap { + #[doc = "< number of channels"] + pub channels: ::std::os::raw::c_uint, + #[doc = "< channel position array"] + pub pos: __IncompleteArrayField<::std::os::raw::c_uint>, +} +#[doc = " the channel map header"] +pub type snd_pcm_chmap_t = snd_pcm_chmap; +#[doc = " the header of array items returned from snd_pcm_query_chmaps()"] +#[repr(C)] +#[derive(Debug)] +pub struct snd_pcm_chmap_query { + #[doc = "< channel map type"] + pub type_: snd_pcm_chmap_type, + #[doc = "< available channel map"] + pub map: snd_pcm_chmap_t, +} +#[doc = " the header of array items returned from snd_pcm_query_chmaps()"] +pub type snd_pcm_chmap_query_t = snd_pcm_chmap_query; +extern "C" { + pub fn snd_pcm_query_chmaps(pcm: *mut snd_pcm_t) -> *mut *mut snd_pcm_chmap_query_t; +} +extern "C" { + pub fn snd_pcm_query_chmaps_from_hw( + card: ::std::os::raw::c_int, + dev: ::std::os::raw::c_int, + subdev: ::std::os::raw::c_int, + stream: snd_pcm_stream_t, + ) -> *mut *mut snd_pcm_chmap_query_t; +} +extern "C" { + pub fn snd_pcm_free_chmaps(maps: *mut *mut snd_pcm_chmap_query_t); +} +extern "C" { + pub fn snd_pcm_get_chmap(pcm: *mut snd_pcm_t) -> *mut snd_pcm_chmap_t; +} +extern "C" { + pub fn snd_pcm_set_chmap( + pcm: *mut snd_pcm_t, + map: *const snd_pcm_chmap_t, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_pcm_chmap_type_name(val: snd_pcm_chmap_type) -> *const ::std::os::raw::c_char; +} +extern "C" { + pub fn snd_pcm_chmap_name(val: snd_pcm_chmap_position) -> *const ::std::os::raw::c_char; +} +extern "C" { + pub fn snd_pcm_chmap_long_name(val: snd_pcm_chmap_position) -> *const ::std::os::raw::c_char; +} +extern "C" { + pub fn snd_pcm_chmap_print( + map: *const snd_pcm_chmap_t, + maxlen: usize, + buf: *mut ::std::os::raw::c_char, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_pcm_chmap_from_string(str: *const ::std::os::raw::c_char) -> ::std::os::raw::c_uint; +} +extern "C" { + pub fn snd_pcm_chmap_parse_string(str: *const ::std::os::raw::c_char) -> *mut snd_pcm_chmap_t; +} +extern "C" { + pub fn snd_pcm_recover( + pcm: *mut snd_pcm_t, + err: ::std::os::raw::c_int, + silent: ::std::os::raw::c_int, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_pcm_set_params( + pcm: *mut snd_pcm_t, + format: snd_pcm_format_t, + access: snd_pcm_access_t, + channels: ::std::os::raw::c_uint, + rate: ::std::os::raw::c_uint, + soft_resample: ::std::os::raw::c_int, + latency: ::std::os::raw::c_uint, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_pcm_get_params( + pcm: *mut snd_pcm_t, + buffer_size: *mut snd_pcm_uframes_t, + period_size: *mut snd_pcm_uframes_t, + ) -> ::std::os::raw::c_int; +} +extern "C" { + #[doc = " \\defgroup PCM_Info Stream Information"] + #[doc = " \\ingroup PCM"] + #[doc = " See the \\ref pcm page for more details."] + #[doc = " \\{"] + pub fn snd_pcm_info_sizeof() -> usize; +} +extern "C" { + pub fn snd_pcm_info_malloc(ptr: *mut *mut snd_pcm_info_t) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_pcm_info_free(obj: *mut snd_pcm_info_t); +} +extern "C" { + pub fn snd_pcm_info_copy(dst: *mut snd_pcm_info_t, src: *const snd_pcm_info_t); +} +extern "C" { + pub fn snd_pcm_info_get_device(obj: *const snd_pcm_info_t) -> ::std::os::raw::c_uint; +} +extern "C" { + pub fn snd_pcm_info_get_subdevice(obj: *const snd_pcm_info_t) -> ::std::os::raw::c_uint; +} +extern "C" { + pub fn snd_pcm_info_get_stream(obj: *const snd_pcm_info_t) -> snd_pcm_stream_t; +} +extern "C" { + pub fn snd_pcm_info_get_card(obj: *const snd_pcm_info_t) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_pcm_info_get_id(obj: *const snd_pcm_info_t) -> *const ::std::os::raw::c_char; +} +extern "C" { + pub fn snd_pcm_info_get_name(obj: *const snd_pcm_info_t) -> *const ::std::os::raw::c_char; +} +extern "C" { + pub fn snd_pcm_info_get_subdevice_name( + obj: *const snd_pcm_info_t, + ) -> *const ::std::os::raw::c_char; +} +extern "C" { + pub fn snd_pcm_info_get_class(obj: *const snd_pcm_info_t) -> snd_pcm_class_t; +} +extern "C" { + pub fn snd_pcm_info_get_subclass(obj: *const snd_pcm_info_t) -> snd_pcm_subclass_t; +} +extern "C" { + pub fn snd_pcm_info_get_subdevices_count(obj: *const snd_pcm_info_t) -> ::std::os::raw::c_uint; +} +extern "C" { + pub fn snd_pcm_info_get_subdevices_avail(obj: *const snd_pcm_info_t) -> ::std::os::raw::c_uint; +} +extern "C" { + pub fn snd_pcm_info_get_sync(obj: *const snd_pcm_info_t) -> snd_pcm_sync_id_t; +} +extern "C" { + pub fn snd_pcm_info_set_device(obj: *mut snd_pcm_info_t, val: ::std::os::raw::c_uint); +} +extern "C" { + pub fn snd_pcm_info_set_subdevice(obj: *mut snd_pcm_info_t, val: ::std::os::raw::c_uint); +} +extern "C" { + pub fn snd_pcm_info_set_stream(obj: *mut snd_pcm_info_t, val: snd_pcm_stream_t); +} +extern "C" { + #[doc = " \\defgroup PCM_HW_Params Hardware Parameters"] + #[doc = " \\ingroup PCM"] + #[doc = " See the \\ref pcm page for more details."] + #[doc = " \\{"] + pub fn snd_pcm_hw_params_any( + pcm: *mut snd_pcm_t, + params: *mut snd_pcm_hw_params_t, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_pcm_hw_params_can_mmap_sample_resolution( + params: *const snd_pcm_hw_params_t, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_pcm_hw_params_is_double(params: *const snd_pcm_hw_params_t) + -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_pcm_hw_params_is_batch(params: *const snd_pcm_hw_params_t) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_pcm_hw_params_is_block_transfer( + params: *const snd_pcm_hw_params_t, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_pcm_hw_params_is_monotonic( + params: *const snd_pcm_hw_params_t, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_pcm_hw_params_can_overrange( + params: *const snd_pcm_hw_params_t, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_pcm_hw_params_can_pause(params: *const snd_pcm_hw_params_t) + -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_pcm_hw_params_can_resume( + params: *const snd_pcm_hw_params_t, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_pcm_hw_params_is_half_duplex( + params: *const snd_pcm_hw_params_t, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_pcm_hw_params_is_joint_duplex( + params: *const snd_pcm_hw_params_t, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_pcm_hw_params_can_sync_start( + params: *const snd_pcm_hw_params_t, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_pcm_hw_params_can_disable_period_wakeup( + params: *const snd_pcm_hw_params_t, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_pcm_hw_params_supports_audio_wallclock_ts( + params: *const snd_pcm_hw_params_t, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_pcm_hw_params_supports_audio_ts_type( + params: *const snd_pcm_hw_params_t, + type_: ::std::os::raw::c_int, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_pcm_hw_params_get_rate_numden( + params: *const snd_pcm_hw_params_t, + rate_num: *mut ::std::os::raw::c_uint, + rate_den: *mut ::std::os::raw::c_uint, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_pcm_hw_params_get_sbits(params: *const snd_pcm_hw_params_t) + -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_pcm_hw_params_get_fifo_size( + params: *const snd_pcm_hw_params_t, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_pcm_hw_params_sizeof() -> usize; +} +extern "C" { + pub fn snd_pcm_hw_params_malloc(ptr: *mut *mut snd_pcm_hw_params_t) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_pcm_hw_params_free(obj: *mut snd_pcm_hw_params_t); +} +extern "C" { + pub fn snd_pcm_hw_params_copy(dst: *mut snd_pcm_hw_params_t, src: *const snd_pcm_hw_params_t); +} +extern "C" { + pub fn snd_pcm_hw_params_get_access( + params: *const snd_pcm_hw_params_t, + _access: *mut snd_pcm_access_t, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_pcm_hw_params_test_access( + pcm: *mut snd_pcm_t, + params: *mut snd_pcm_hw_params_t, + _access: snd_pcm_access_t, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_pcm_hw_params_set_access( + pcm: *mut snd_pcm_t, + params: *mut snd_pcm_hw_params_t, + _access: snd_pcm_access_t, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_pcm_hw_params_set_access_first( + pcm: *mut snd_pcm_t, + params: *mut snd_pcm_hw_params_t, + _access: *mut snd_pcm_access_t, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_pcm_hw_params_set_access_last( + pcm: *mut snd_pcm_t, + params: *mut snd_pcm_hw_params_t, + _access: *mut snd_pcm_access_t, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_pcm_hw_params_set_access_mask( + pcm: *mut snd_pcm_t, + params: *mut snd_pcm_hw_params_t, + mask: *mut snd_pcm_access_mask_t, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_pcm_hw_params_get_access_mask( + params: *mut snd_pcm_hw_params_t, + mask: *mut snd_pcm_access_mask_t, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_pcm_hw_params_get_format( + params: *const snd_pcm_hw_params_t, + val: *mut snd_pcm_format_t, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_pcm_hw_params_test_format( + pcm: *mut snd_pcm_t, + params: *mut snd_pcm_hw_params_t, + val: snd_pcm_format_t, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_pcm_hw_params_set_format( + pcm: *mut snd_pcm_t, + params: *mut snd_pcm_hw_params_t, + val: snd_pcm_format_t, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_pcm_hw_params_set_format_first( + pcm: *mut snd_pcm_t, + params: *mut snd_pcm_hw_params_t, + format: *mut snd_pcm_format_t, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_pcm_hw_params_set_format_last( + pcm: *mut snd_pcm_t, + params: *mut snd_pcm_hw_params_t, + format: *mut snd_pcm_format_t, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_pcm_hw_params_set_format_mask( + pcm: *mut snd_pcm_t, + params: *mut snd_pcm_hw_params_t, + mask: *mut snd_pcm_format_mask_t, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_pcm_hw_params_get_format_mask( + params: *mut snd_pcm_hw_params_t, + mask: *mut snd_pcm_format_mask_t, + ); +} +extern "C" { + pub fn snd_pcm_hw_params_get_subformat( + params: *const snd_pcm_hw_params_t, + subformat: *mut snd_pcm_subformat_t, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_pcm_hw_params_test_subformat( + pcm: *mut snd_pcm_t, + params: *mut snd_pcm_hw_params_t, + subformat: snd_pcm_subformat_t, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_pcm_hw_params_set_subformat( + pcm: *mut snd_pcm_t, + params: *mut snd_pcm_hw_params_t, + subformat: snd_pcm_subformat_t, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_pcm_hw_params_set_subformat_first( + pcm: *mut snd_pcm_t, + params: *mut snd_pcm_hw_params_t, + subformat: *mut snd_pcm_subformat_t, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_pcm_hw_params_set_subformat_last( + pcm: *mut snd_pcm_t, + params: *mut snd_pcm_hw_params_t, + subformat: *mut snd_pcm_subformat_t, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_pcm_hw_params_set_subformat_mask( + pcm: *mut snd_pcm_t, + params: *mut snd_pcm_hw_params_t, + mask: *mut snd_pcm_subformat_mask_t, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_pcm_hw_params_get_subformat_mask( + params: *mut snd_pcm_hw_params_t, + mask: *mut snd_pcm_subformat_mask_t, + ); +} +extern "C" { + pub fn snd_pcm_hw_params_get_channels( + params: *const snd_pcm_hw_params_t, + val: *mut ::std::os::raw::c_uint, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_pcm_hw_params_get_channels_min( + params: *const snd_pcm_hw_params_t, + val: *mut ::std::os::raw::c_uint, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_pcm_hw_params_get_channels_max( + params: *const snd_pcm_hw_params_t, + val: *mut ::std::os::raw::c_uint, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_pcm_hw_params_test_channels( + pcm: *mut snd_pcm_t, + params: *mut snd_pcm_hw_params_t, + val: ::std::os::raw::c_uint, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_pcm_hw_params_set_channels( + pcm: *mut snd_pcm_t, + params: *mut snd_pcm_hw_params_t, + val: ::std::os::raw::c_uint, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_pcm_hw_params_set_channels_min( + pcm: *mut snd_pcm_t, + params: *mut snd_pcm_hw_params_t, + val: *mut ::std::os::raw::c_uint, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_pcm_hw_params_set_channels_max( + pcm: *mut snd_pcm_t, + params: *mut snd_pcm_hw_params_t, + val: *mut ::std::os::raw::c_uint, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_pcm_hw_params_set_channels_minmax( + pcm: *mut snd_pcm_t, + params: *mut snd_pcm_hw_params_t, + min: *mut ::std::os::raw::c_uint, + max: *mut ::std::os::raw::c_uint, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_pcm_hw_params_set_channels_near( + pcm: *mut snd_pcm_t, + params: *mut snd_pcm_hw_params_t, + val: *mut ::std::os::raw::c_uint, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_pcm_hw_params_set_channels_first( + pcm: *mut snd_pcm_t, + params: *mut snd_pcm_hw_params_t, + val: *mut ::std::os::raw::c_uint, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_pcm_hw_params_set_channels_last( + pcm: *mut snd_pcm_t, + params: *mut snd_pcm_hw_params_t, + val: *mut ::std::os::raw::c_uint, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_pcm_hw_params_get_rate( + params: *const snd_pcm_hw_params_t, + val: *mut ::std::os::raw::c_uint, + dir: *mut ::std::os::raw::c_int, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_pcm_hw_params_get_rate_min( + params: *const snd_pcm_hw_params_t, + val: *mut ::std::os::raw::c_uint, + dir: *mut ::std::os::raw::c_int, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_pcm_hw_params_get_rate_max( + params: *const snd_pcm_hw_params_t, + val: *mut ::std::os::raw::c_uint, + dir: *mut ::std::os::raw::c_int, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_pcm_hw_params_test_rate( + pcm: *mut snd_pcm_t, + params: *mut snd_pcm_hw_params_t, + val: ::std::os::raw::c_uint, + dir: ::std::os::raw::c_int, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_pcm_hw_params_set_rate( + pcm: *mut snd_pcm_t, + params: *mut snd_pcm_hw_params_t, + val: ::std::os::raw::c_uint, + dir: ::std::os::raw::c_int, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_pcm_hw_params_set_rate_min( + pcm: *mut snd_pcm_t, + params: *mut snd_pcm_hw_params_t, + val: *mut ::std::os::raw::c_uint, + dir: *mut ::std::os::raw::c_int, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_pcm_hw_params_set_rate_max( + pcm: *mut snd_pcm_t, + params: *mut snd_pcm_hw_params_t, + val: *mut ::std::os::raw::c_uint, + dir: *mut ::std::os::raw::c_int, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_pcm_hw_params_set_rate_minmax( + pcm: *mut snd_pcm_t, + params: *mut snd_pcm_hw_params_t, + min: *mut ::std::os::raw::c_uint, + mindir: *mut ::std::os::raw::c_int, + max: *mut ::std::os::raw::c_uint, + maxdir: *mut ::std::os::raw::c_int, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_pcm_hw_params_set_rate_near( + pcm: *mut snd_pcm_t, + params: *mut snd_pcm_hw_params_t, + val: *mut ::std::os::raw::c_uint, + dir: *mut ::std::os::raw::c_int, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_pcm_hw_params_set_rate_first( + pcm: *mut snd_pcm_t, + params: *mut snd_pcm_hw_params_t, + val: *mut ::std::os::raw::c_uint, + dir: *mut ::std::os::raw::c_int, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_pcm_hw_params_set_rate_last( + pcm: *mut snd_pcm_t, + params: *mut snd_pcm_hw_params_t, + val: *mut ::std::os::raw::c_uint, + dir: *mut ::std::os::raw::c_int, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_pcm_hw_params_set_rate_resample( + pcm: *mut snd_pcm_t, + params: *mut snd_pcm_hw_params_t, + val: ::std::os::raw::c_uint, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_pcm_hw_params_get_rate_resample( + pcm: *mut snd_pcm_t, + params: *mut snd_pcm_hw_params_t, + val: *mut ::std::os::raw::c_uint, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_pcm_hw_params_set_export_buffer( + pcm: *mut snd_pcm_t, + params: *mut snd_pcm_hw_params_t, + val: ::std::os::raw::c_uint, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_pcm_hw_params_get_export_buffer( + pcm: *mut snd_pcm_t, + params: *mut snd_pcm_hw_params_t, + val: *mut ::std::os::raw::c_uint, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_pcm_hw_params_set_period_wakeup( + pcm: *mut snd_pcm_t, + params: *mut snd_pcm_hw_params_t, + val: ::std::os::raw::c_uint, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_pcm_hw_params_get_period_wakeup( + pcm: *mut snd_pcm_t, + params: *mut snd_pcm_hw_params_t, + val: *mut ::std::os::raw::c_uint, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_pcm_hw_params_get_period_time( + params: *const snd_pcm_hw_params_t, + val: *mut ::std::os::raw::c_uint, + dir: *mut ::std::os::raw::c_int, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_pcm_hw_params_get_period_time_min( + params: *const snd_pcm_hw_params_t, + val: *mut ::std::os::raw::c_uint, + dir: *mut ::std::os::raw::c_int, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_pcm_hw_params_get_period_time_max( + params: *const snd_pcm_hw_params_t, + val: *mut ::std::os::raw::c_uint, + dir: *mut ::std::os::raw::c_int, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_pcm_hw_params_test_period_time( + pcm: *mut snd_pcm_t, + params: *mut snd_pcm_hw_params_t, + val: ::std::os::raw::c_uint, + dir: ::std::os::raw::c_int, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_pcm_hw_params_set_period_time( + pcm: *mut snd_pcm_t, + params: *mut snd_pcm_hw_params_t, + val: ::std::os::raw::c_uint, + dir: ::std::os::raw::c_int, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_pcm_hw_params_set_period_time_min( + pcm: *mut snd_pcm_t, + params: *mut snd_pcm_hw_params_t, + val: *mut ::std::os::raw::c_uint, + dir: *mut ::std::os::raw::c_int, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_pcm_hw_params_set_period_time_max( + pcm: *mut snd_pcm_t, + params: *mut snd_pcm_hw_params_t, + val: *mut ::std::os::raw::c_uint, + dir: *mut ::std::os::raw::c_int, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_pcm_hw_params_set_period_time_minmax( + pcm: *mut snd_pcm_t, + params: *mut snd_pcm_hw_params_t, + min: *mut ::std::os::raw::c_uint, + mindir: *mut ::std::os::raw::c_int, + max: *mut ::std::os::raw::c_uint, + maxdir: *mut ::std::os::raw::c_int, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_pcm_hw_params_set_period_time_near( + pcm: *mut snd_pcm_t, + params: *mut snd_pcm_hw_params_t, + val: *mut ::std::os::raw::c_uint, + dir: *mut ::std::os::raw::c_int, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_pcm_hw_params_set_period_time_first( + pcm: *mut snd_pcm_t, + params: *mut snd_pcm_hw_params_t, + val: *mut ::std::os::raw::c_uint, + dir: *mut ::std::os::raw::c_int, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_pcm_hw_params_set_period_time_last( + pcm: *mut snd_pcm_t, + params: *mut snd_pcm_hw_params_t, + val: *mut ::std::os::raw::c_uint, + dir: *mut ::std::os::raw::c_int, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_pcm_hw_params_get_period_size( + params: *const snd_pcm_hw_params_t, + frames: *mut snd_pcm_uframes_t, + dir: *mut ::std::os::raw::c_int, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_pcm_hw_params_get_period_size_min( + params: *const snd_pcm_hw_params_t, + frames: *mut snd_pcm_uframes_t, + dir: *mut ::std::os::raw::c_int, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_pcm_hw_params_get_period_size_max( + params: *const snd_pcm_hw_params_t, + frames: *mut snd_pcm_uframes_t, + dir: *mut ::std::os::raw::c_int, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_pcm_hw_params_test_period_size( + pcm: *mut snd_pcm_t, + params: *mut snd_pcm_hw_params_t, + val: snd_pcm_uframes_t, + dir: ::std::os::raw::c_int, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_pcm_hw_params_set_period_size( + pcm: *mut snd_pcm_t, + params: *mut snd_pcm_hw_params_t, + val: snd_pcm_uframes_t, + dir: ::std::os::raw::c_int, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_pcm_hw_params_set_period_size_min( + pcm: *mut snd_pcm_t, + params: *mut snd_pcm_hw_params_t, + val: *mut snd_pcm_uframes_t, + dir: *mut ::std::os::raw::c_int, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_pcm_hw_params_set_period_size_max( + pcm: *mut snd_pcm_t, + params: *mut snd_pcm_hw_params_t, + val: *mut snd_pcm_uframes_t, + dir: *mut ::std::os::raw::c_int, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_pcm_hw_params_set_period_size_minmax( + pcm: *mut snd_pcm_t, + params: *mut snd_pcm_hw_params_t, + min: *mut snd_pcm_uframes_t, + mindir: *mut ::std::os::raw::c_int, + max: *mut snd_pcm_uframes_t, + maxdir: *mut ::std::os::raw::c_int, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_pcm_hw_params_set_period_size_near( + pcm: *mut snd_pcm_t, + params: *mut snd_pcm_hw_params_t, + val: *mut snd_pcm_uframes_t, + dir: *mut ::std::os::raw::c_int, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_pcm_hw_params_set_period_size_first( + pcm: *mut snd_pcm_t, + params: *mut snd_pcm_hw_params_t, + val: *mut snd_pcm_uframes_t, + dir: *mut ::std::os::raw::c_int, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_pcm_hw_params_set_period_size_last( + pcm: *mut snd_pcm_t, + params: *mut snd_pcm_hw_params_t, + val: *mut snd_pcm_uframes_t, + dir: *mut ::std::os::raw::c_int, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_pcm_hw_params_set_period_size_integer( + pcm: *mut snd_pcm_t, + params: *mut snd_pcm_hw_params_t, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_pcm_hw_params_get_periods( + params: *const snd_pcm_hw_params_t, + val: *mut ::std::os::raw::c_uint, + dir: *mut ::std::os::raw::c_int, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_pcm_hw_params_get_periods_min( + params: *const snd_pcm_hw_params_t, + val: *mut ::std::os::raw::c_uint, + dir: *mut ::std::os::raw::c_int, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_pcm_hw_params_get_periods_max( + params: *const snd_pcm_hw_params_t, + val: *mut ::std::os::raw::c_uint, + dir: *mut ::std::os::raw::c_int, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_pcm_hw_params_test_periods( + pcm: *mut snd_pcm_t, + params: *mut snd_pcm_hw_params_t, + val: ::std::os::raw::c_uint, + dir: ::std::os::raw::c_int, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_pcm_hw_params_set_periods( + pcm: *mut snd_pcm_t, + params: *mut snd_pcm_hw_params_t, + val: ::std::os::raw::c_uint, + dir: ::std::os::raw::c_int, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_pcm_hw_params_set_periods_min( + pcm: *mut snd_pcm_t, + params: *mut snd_pcm_hw_params_t, + val: *mut ::std::os::raw::c_uint, + dir: *mut ::std::os::raw::c_int, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_pcm_hw_params_set_periods_max( + pcm: *mut snd_pcm_t, + params: *mut snd_pcm_hw_params_t, + val: *mut ::std::os::raw::c_uint, + dir: *mut ::std::os::raw::c_int, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_pcm_hw_params_set_periods_minmax( + pcm: *mut snd_pcm_t, + params: *mut snd_pcm_hw_params_t, + min: *mut ::std::os::raw::c_uint, + mindir: *mut ::std::os::raw::c_int, + max: *mut ::std::os::raw::c_uint, + maxdir: *mut ::std::os::raw::c_int, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_pcm_hw_params_set_periods_near( + pcm: *mut snd_pcm_t, + params: *mut snd_pcm_hw_params_t, + val: *mut ::std::os::raw::c_uint, + dir: *mut ::std::os::raw::c_int, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_pcm_hw_params_set_periods_first( + pcm: *mut snd_pcm_t, + params: *mut snd_pcm_hw_params_t, + val: *mut ::std::os::raw::c_uint, + dir: *mut ::std::os::raw::c_int, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_pcm_hw_params_set_periods_last( + pcm: *mut snd_pcm_t, + params: *mut snd_pcm_hw_params_t, + val: *mut ::std::os::raw::c_uint, + dir: *mut ::std::os::raw::c_int, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_pcm_hw_params_set_periods_integer( + pcm: *mut snd_pcm_t, + params: *mut snd_pcm_hw_params_t, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_pcm_hw_params_get_buffer_time( + params: *const snd_pcm_hw_params_t, + val: *mut ::std::os::raw::c_uint, + dir: *mut ::std::os::raw::c_int, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_pcm_hw_params_get_buffer_time_min( + params: *const snd_pcm_hw_params_t, + val: *mut ::std::os::raw::c_uint, + dir: *mut ::std::os::raw::c_int, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_pcm_hw_params_get_buffer_time_max( + params: *const snd_pcm_hw_params_t, + val: *mut ::std::os::raw::c_uint, + dir: *mut ::std::os::raw::c_int, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_pcm_hw_params_test_buffer_time( + pcm: *mut snd_pcm_t, + params: *mut snd_pcm_hw_params_t, + val: ::std::os::raw::c_uint, + dir: ::std::os::raw::c_int, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_pcm_hw_params_set_buffer_time( + pcm: *mut snd_pcm_t, + params: *mut snd_pcm_hw_params_t, + val: ::std::os::raw::c_uint, + dir: ::std::os::raw::c_int, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_pcm_hw_params_set_buffer_time_min( + pcm: *mut snd_pcm_t, + params: *mut snd_pcm_hw_params_t, + val: *mut ::std::os::raw::c_uint, + dir: *mut ::std::os::raw::c_int, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_pcm_hw_params_set_buffer_time_max( + pcm: *mut snd_pcm_t, + params: *mut snd_pcm_hw_params_t, + val: *mut ::std::os::raw::c_uint, + dir: *mut ::std::os::raw::c_int, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_pcm_hw_params_set_buffer_time_minmax( + pcm: *mut snd_pcm_t, + params: *mut snd_pcm_hw_params_t, + min: *mut ::std::os::raw::c_uint, + mindir: *mut ::std::os::raw::c_int, + max: *mut ::std::os::raw::c_uint, + maxdir: *mut ::std::os::raw::c_int, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_pcm_hw_params_set_buffer_time_near( + pcm: *mut snd_pcm_t, + params: *mut snd_pcm_hw_params_t, + val: *mut ::std::os::raw::c_uint, + dir: *mut ::std::os::raw::c_int, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_pcm_hw_params_set_buffer_time_first( + pcm: *mut snd_pcm_t, + params: *mut snd_pcm_hw_params_t, + val: *mut ::std::os::raw::c_uint, + dir: *mut ::std::os::raw::c_int, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_pcm_hw_params_set_buffer_time_last( + pcm: *mut snd_pcm_t, + params: *mut snd_pcm_hw_params_t, + val: *mut ::std::os::raw::c_uint, + dir: *mut ::std::os::raw::c_int, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_pcm_hw_params_get_buffer_size( + params: *const snd_pcm_hw_params_t, + val: *mut snd_pcm_uframes_t, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_pcm_hw_params_get_buffer_size_min( + params: *const snd_pcm_hw_params_t, + val: *mut snd_pcm_uframes_t, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_pcm_hw_params_get_buffer_size_max( + params: *const snd_pcm_hw_params_t, + val: *mut snd_pcm_uframes_t, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_pcm_hw_params_test_buffer_size( + pcm: *mut snd_pcm_t, + params: *mut snd_pcm_hw_params_t, + val: snd_pcm_uframes_t, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_pcm_hw_params_set_buffer_size( + pcm: *mut snd_pcm_t, + params: *mut snd_pcm_hw_params_t, + val: snd_pcm_uframes_t, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_pcm_hw_params_set_buffer_size_min( + pcm: *mut snd_pcm_t, + params: *mut snd_pcm_hw_params_t, + val: *mut snd_pcm_uframes_t, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_pcm_hw_params_set_buffer_size_max( + pcm: *mut snd_pcm_t, + params: *mut snd_pcm_hw_params_t, + val: *mut snd_pcm_uframes_t, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_pcm_hw_params_set_buffer_size_minmax( + pcm: *mut snd_pcm_t, + params: *mut snd_pcm_hw_params_t, + min: *mut snd_pcm_uframes_t, + max: *mut snd_pcm_uframes_t, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_pcm_hw_params_set_buffer_size_near( + pcm: *mut snd_pcm_t, + params: *mut snd_pcm_hw_params_t, + val: *mut snd_pcm_uframes_t, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_pcm_hw_params_set_buffer_size_first( + pcm: *mut snd_pcm_t, + params: *mut snd_pcm_hw_params_t, + val: *mut snd_pcm_uframes_t, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_pcm_hw_params_set_buffer_size_last( + pcm: *mut snd_pcm_t, + params: *mut snd_pcm_hw_params_t, + val: *mut snd_pcm_uframes_t, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_pcm_hw_params_get_min_align( + params: *const snd_pcm_hw_params_t, + val: *mut snd_pcm_uframes_t, + ) -> ::std::os::raw::c_int; +} +extern "C" { + #[doc = " \\defgroup PCM_SW_Params Software Parameters"] + #[doc = " \\ingroup PCM"] + #[doc = " See the \\ref pcm page for more details."] + #[doc = " \\{"] + pub fn snd_pcm_sw_params_sizeof() -> usize; +} +extern "C" { + pub fn snd_pcm_sw_params_malloc(ptr: *mut *mut snd_pcm_sw_params_t) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_pcm_sw_params_free(obj: *mut snd_pcm_sw_params_t); +} +extern "C" { + pub fn snd_pcm_sw_params_copy(dst: *mut snd_pcm_sw_params_t, src: *const snd_pcm_sw_params_t); +} +extern "C" { + pub fn snd_pcm_sw_params_get_boundary( + params: *const snd_pcm_sw_params_t, + val: *mut snd_pcm_uframes_t, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_pcm_sw_params_set_tstamp_mode( + pcm: *mut snd_pcm_t, + params: *mut snd_pcm_sw_params_t, + val: snd_pcm_tstamp_t, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_pcm_sw_params_get_tstamp_mode( + params: *const snd_pcm_sw_params_t, + val: *mut snd_pcm_tstamp_t, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_pcm_sw_params_set_tstamp_type( + pcm: *mut snd_pcm_t, + params: *mut snd_pcm_sw_params_t, + val: snd_pcm_tstamp_type_t, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_pcm_sw_params_get_tstamp_type( + params: *const snd_pcm_sw_params_t, + val: *mut snd_pcm_tstamp_type_t, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_pcm_sw_params_set_avail_min( + pcm: *mut snd_pcm_t, + params: *mut snd_pcm_sw_params_t, + val: snd_pcm_uframes_t, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_pcm_sw_params_get_avail_min( + params: *const snd_pcm_sw_params_t, + val: *mut snd_pcm_uframes_t, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_pcm_sw_params_set_period_event( + pcm: *mut snd_pcm_t, + params: *mut snd_pcm_sw_params_t, + val: ::std::os::raw::c_int, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_pcm_sw_params_get_period_event( + params: *const snd_pcm_sw_params_t, + val: *mut ::std::os::raw::c_int, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_pcm_sw_params_set_start_threshold( + pcm: *mut snd_pcm_t, + params: *mut snd_pcm_sw_params_t, + val: snd_pcm_uframes_t, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_pcm_sw_params_get_start_threshold( + paramsm: *const snd_pcm_sw_params_t, + val: *mut snd_pcm_uframes_t, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_pcm_sw_params_set_stop_threshold( + pcm: *mut snd_pcm_t, + params: *mut snd_pcm_sw_params_t, + val: snd_pcm_uframes_t, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_pcm_sw_params_get_stop_threshold( + params: *const snd_pcm_sw_params_t, + val: *mut snd_pcm_uframes_t, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_pcm_sw_params_set_silence_threshold( + pcm: *mut snd_pcm_t, + params: *mut snd_pcm_sw_params_t, + val: snd_pcm_uframes_t, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_pcm_sw_params_get_silence_threshold( + params: *const snd_pcm_sw_params_t, + val: *mut snd_pcm_uframes_t, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_pcm_sw_params_set_silence_size( + pcm: *mut snd_pcm_t, + params: *mut snd_pcm_sw_params_t, + val: snd_pcm_uframes_t, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_pcm_sw_params_get_silence_size( + params: *const snd_pcm_sw_params_t, + val: *mut snd_pcm_uframes_t, + ) -> ::std::os::raw::c_int; +} +extern "C" { + #[doc = " \\defgroup PCM_Access Access Mask Functions"] + #[doc = " \\ingroup PCM"] + #[doc = " See the \\ref pcm page for more details."] + #[doc = " \\{"] + pub fn snd_pcm_access_mask_sizeof() -> usize; +} +extern "C" { + pub fn snd_pcm_access_mask_malloc( + ptr: *mut *mut snd_pcm_access_mask_t, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_pcm_access_mask_free(obj: *mut snd_pcm_access_mask_t); +} +extern "C" { + pub fn snd_pcm_access_mask_copy( + dst: *mut snd_pcm_access_mask_t, + src: *const snd_pcm_access_mask_t, + ); +} +extern "C" { + pub fn snd_pcm_access_mask_none(mask: *mut snd_pcm_access_mask_t); +} +extern "C" { + pub fn snd_pcm_access_mask_any(mask: *mut snd_pcm_access_mask_t); +} +extern "C" { + pub fn snd_pcm_access_mask_test( + mask: *const snd_pcm_access_mask_t, + val: snd_pcm_access_t, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_pcm_access_mask_empty(mask: *const snd_pcm_access_mask_t) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_pcm_access_mask_set(mask: *mut snd_pcm_access_mask_t, val: snd_pcm_access_t); +} +extern "C" { + pub fn snd_pcm_access_mask_reset(mask: *mut snd_pcm_access_mask_t, val: snd_pcm_access_t); +} +extern "C" { + #[doc = " \\defgroup PCM_Format Format Mask Functions"] + #[doc = " \\ingroup PCM"] + #[doc = " See the \\ref pcm page for more details."] + #[doc = " \\{"] + pub fn snd_pcm_format_mask_sizeof() -> usize; +} +extern "C" { + pub fn snd_pcm_format_mask_malloc( + ptr: *mut *mut snd_pcm_format_mask_t, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_pcm_format_mask_free(obj: *mut snd_pcm_format_mask_t); +} +extern "C" { + pub fn snd_pcm_format_mask_copy( + dst: *mut snd_pcm_format_mask_t, + src: *const snd_pcm_format_mask_t, + ); +} +extern "C" { + pub fn snd_pcm_format_mask_none(mask: *mut snd_pcm_format_mask_t); +} +extern "C" { + pub fn snd_pcm_format_mask_any(mask: *mut snd_pcm_format_mask_t); +} +extern "C" { + pub fn snd_pcm_format_mask_test( + mask: *const snd_pcm_format_mask_t, + val: snd_pcm_format_t, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_pcm_format_mask_empty(mask: *const snd_pcm_format_mask_t) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_pcm_format_mask_set(mask: *mut snd_pcm_format_mask_t, val: snd_pcm_format_t); +} +extern "C" { + pub fn snd_pcm_format_mask_reset(mask: *mut snd_pcm_format_mask_t, val: snd_pcm_format_t); +} +extern "C" { + #[doc = " \\defgroup PCM_SubFormat Subformat Mask Functions"] + #[doc = " \\ingroup PCM"] + #[doc = " See the \\ref pcm page for more details."] + #[doc = " \\{"] + pub fn snd_pcm_subformat_mask_sizeof() -> usize; +} +extern "C" { + pub fn snd_pcm_subformat_mask_malloc( + ptr: *mut *mut snd_pcm_subformat_mask_t, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_pcm_subformat_mask_free(obj: *mut snd_pcm_subformat_mask_t); +} +extern "C" { + pub fn snd_pcm_subformat_mask_copy( + dst: *mut snd_pcm_subformat_mask_t, + src: *const snd_pcm_subformat_mask_t, + ); +} +extern "C" { + pub fn snd_pcm_subformat_mask_none(mask: *mut snd_pcm_subformat_mask_t); +} +extern "C" { + pub fn snd_pcm_subformat_mask_any(mask: *mut snd_pcm_subformat_mask_t); +} +extern "C" { + pub fn snd_pcm_subformat_mask_test( + mask: *const snd_pcm_subformat_mask_t, + val: snd_pcm_subformat_t, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_pcm_subformat_mask_empty( + mask: *const snd_pcm_subformat_mask_t, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_pcm_subformat_mask_set( + mask: *mut snd_pcm_subformat_mask_t, + val: snd_pcm_subformat_t, + ); +} +extern "C" { + pub fn snd_pcm_subformat_mask_reset( + mask: *mut snd_pcm_subformat_mask_t, + val: snd_pcm_subformat_t, + ); +} +extern "C" { + #[doc = " \\defgroup PCM_Status Status Functions"] + #[doc = " \\ingroup PCM"] + #[doc = " See the \\ref pcm page for more details."] + #[doc = " \\{"] + pub fn snd_pcm_status_sizeof() -> usize; +} +extern "C" { + pub fn snd_pcm_status_malloc(ptr: *mut *mut snd_pcm_status_t) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_pcm_status_free(obj: *mut snd_pcm_status_t); +} +extern "C" { + pub fn snd_pcm_status_copy(dst: *mut snd_pcm_status_t, src: *const snd_pcm_status_t); +} +extern "C" { + pub fn snd_pcm_status_get_state(obj: *const snd_pcm_status_t) -> snd_pcm_state_t; +} +extern "C" { + pub fn snd_pcm_status_get_trigger_tstamp( + obj: *const snd_pcm_status_t, + ptr: *mut snd_timestamp_t, + ); +} +extern "C" { + pub fn snd_pcm_status_get_trigger_htstamp( + obj: *const snd_pcm_status_t, + ptr: *mut snd_htimestamp_t, + ); +} +extern "C" { + pub fn snd_pcm_status_get_tstamp(obj: *const snd_pcm_status_t, ptr: *mut snd_timestamp_t); +} +extern "C" { + pub fn snd_pcm_status_get_htstamp(obj: *const snd_pcm_status_t, ptr: *mut snd_htimestamp_t); +} +extern "C" { + pub fn snd_pcm_status_get_audio_htstamp( + obj: *const snd_pcm_status_t, + ptr: *mut snd_htimestamp_t, + ); +} +extern "C" { + pub fn snd_pcm_status_get_driver_htstamp( + obj: *const snd_pcm_status_t, + ptr: *mut snd_htimestamp_t, + ); +} +extern "C" { + pub fn snd_pcm_status_get_audio_htstamp_report( + obj: *const snd_pcm_status_t, + audio_tstamp_report: *mut snd_pcm_audio_tstamp_report_t, + ); +} +extern "C" { + pub fn snd_pcm_status_set_audio_htstamp_config( + obj: *mut snd_pcm_status_t, + audio_tstamp_config: *mut snd_pcm_audio_tstamp_config_t, + ); +} +extern "C" { + pub fn snd_pcm_status_get_delay(obj: *const snd_pcm_status_t) -> snd_pcm_sframes_t; +} +extern "C" { + pub fn snd_pcm_status_get_avail(obj: *const snd_pcm_status_t) -> snd_pcm_uframes_t; +} +extern "C" { + pub fn snd_pcm_status_get_avail_max(obj: *const snd_pcm_status_t) -> snd_pcm_uframes_t; +} +extern "C" { + pub fn snd_pcm_status_get_overrange(obj: *const snd_pcm_status_t) -> snd_pcm_uframes_t; +} +extern "C" { + #[doc = " \\defgroup PCM_Description Description Functions"] + #[doc = " \\ingroup PCM"] + #[doc = " See the \\ref pcm page for more details."] + #[doc = " \\{"] + pub fn snd_pcm_type_name(type_: snd_pcm_type_t) -> *const ::std::os::raw::c_char; +} +extern "C" { + pub fn snd_pcm_stream_name(stream: snd_pcm_stream_t) -> *const ::std::os::raw::c_char; +} +extern "C" { + pub fn snd_pcm_access_name(_access: snd_pcm_access_t) -> *const ::std::os::raw::c_char; +} +extern "C" { + pub fn snd_pcm_format_name(format: snd_pcm_format_t) -> *const ::std::os::raw::c_char; +} +extern "C" { + pub fn snd_pcm_format_description(format: snd_pcm_format_t) -> *const ::std::os::raw::c_char; +} +extern "C" { + pub fn snd_pcm_subformat_name(subformat: snd_pcm_subformat_t) -> *const ::std::os::raw::c_char; +} +extern "C" { + pub fn snd_pcm_subformat_description( + subformat: snd_pcm_subformat_t, + ) -> *const ::std::os::raw::c_char; +} +extern "C" { + pub fn snd_pcm_format_value(name: *const ::std::os::raw::c_char) -> snd_pcm_format_t; +} +extern "C" { + pub fn snd_pcm_tstamp_mode_name(mode: snd_pcm_tstamp_t) -> *const ::std::os::raw::c_char; +} +extern "C" { + pub fn snd_pcm_state_name(state: snd_pcm_state_t) -> *const ::std::os::raw::c_char; +} +extern "C" { + #[doc = " \\defgroup PCM_Dump Debug Functions"] + #[doc = " \\ingroup PCM"] + #[doc = " See the \\ref pcm page for more details."] + #[doc = " \\{"] + pub fn snd_pcm_dump(pcm: *mut snd_pcm_t, out: *mut snd_output_t) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_pcm_dump_hw_setup( + pcm: *mut snd_pcm_t, + out: *mut snd_output_t, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_pcm_dump_sw_setup( + pcm: *mut snd_pcm_t, + out: *mut snd_output_t, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_pcm_dump_setup(pcm: *mut snd_pcm_t, out: *mut snd_output_t) + -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_pcm_hw_params_dump( + params: *mut snd_pcm_hw_params_t, + out: *mut snd_output_t, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_pcm_sw_params_dump( + params: *mut snd_pcm_sw_params_t, + out: *mut snd_output_t, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_pcm_status_dump( + status: *mut snd_pcm_status_t, + out: *mut snd_output_t, + ) -> ::std::os::raw::c_int; +} +extern "C" { + #[doc = " \\defgroup PCM_Direct Direct Access (MMAP) Functions"] + #[doc = " \\ingroup PCM"] + #[doc = " See the \\ref pcm page for more details."] + #[doc = " \\{"] + pub fn snd_pcm_mmap_begin( + pcm: *mut snd_pcm_t, + areas: *mut *const snd_pcm_channel_area_t, + offset: *mut snd_pcm_uframes_t, + frames: *mut snd_pcm_uframes_t, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_pcm_mmap_commit( + pcm: *mut snd_pcm_t, + offset: snd_pcm_uframes_t, + frames: snd_pcm_uframes_t, + ) -> snd_pcm_sframes_t; +} +extern "C" { + pub fn snd_pcm_mmap_writei( + pcm: *mut snd_pcm_t, + buffer: *const ::std::os::raw::c_void, + size: snd_pcm_uframes_t, + ) -> snd_pcm_sframes_t; +} +extern "C" { + pub fn snd_pcm_mmap_readi( + pcm: *mut snd_pcm_t, + buffer: *mut ::std::os::raw::c_void, + size: snd_pcm_uframes_t, + ) -> snd_pcm_sframes_t; +} +extern "C" { + pub fn snd_pcm_mmap_writen( + pcm: *mut snd_pcm_t, + bufs: *mut *mut ::std::os::raw::c_void, + size: snd_pcm_uframes_t, + ) -> snd_pcm_sframes_t; +} +extern "C" { + pub fn snd_pcm_mmap_readn( + pcm: *mut snd_pcm_t, + bufs: *mut *mut ::std::os::raw::c_void, + size: snd_pcm_uframes_t, + ) -> snd_pcm_sframes_t; +} +extern "C" { + #[doc = " \\defgroup PCM_Helpers Helper Functions"] + #[doc = " \\ingroup PCM"] + #[doc = " See the \\ref pcm page for more details."] + #[doc = " \\{"] + pub fn snd_pcm_format_signed(format: snd_pcm_format_t) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_pcm_format_unsigned(format: snd_pcm_format_t) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_pcm_format_linear(format: snd_pcm_format_t) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_pcm_format_float(format: snd_pcm_format_t) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_pcm_format_little_endian(format: snd_pcm_format_t) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_pcm_format_big_endian(format: snd_pcm_format_t) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_pcm_format_cpu_endian(format: snd_pcm_format_t) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_pcm_format_width(format: snd_pcm_format_t) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_pcm_format_physical_width(format: snd_pcm_format_t) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_pcm_build_linear_format( + width: ::std::os::raw::c_int, + pwidth: ::std::os::raw::c_int, + unsignd: ::std::os::raw::c_int, + big_endian: ::std::os::raw::c_int, + ) -> snd_pcm_format_t; +} +extern "C" { + pub fn snd_pcm_format_size(format: snd_pcm_format_t, samples: usize) -> isize; +} +extern "C" { + pub fn snd_pcm_format_silence(format: snd_pcm_format_t) -> u8; +} +extern "C" { + pub fn snd_pcm_format_silence_16(format: snd_pcm_format_t) -> u16; +} +extern "C" { + pub fn snd_pcm_format_silence_32(format: snd_pcm_format_t) -> u32; +} +extern "C" { + pub fn snd_pcm_format_silence_64(format: snd_pcm_format_t) -> u64; +} +extern "C" { + pub fn snd_pcm_format_set_silence( + format: snd_pcm_format_t, + buf: *mut ::std::os::raw::c_void, + samples: ::std::os::raw::c_uint, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_pcm_bytes_to_frames(pcm: *mut snd_pcm_t, bytes: isize) -> snd_pcm_sframes_t; +} +extern "C" { + pub fn snd_pcm_frames_to_bytes(pcm: *mut snd_pcm_t, frames: snd_pcm_sframes_t) -> isize; +} +extern "C" { + pub fn snd_pcm_bytes_to_samples(pcm: *mut snd_pcm_t, bytes: isize) -> ::std::os::raw::c_long; +} +extern "C" { + pub fn snd_pcm_samples_to_bytes(pcm: *mut snd_pcm_t, samples: ::std::os::raw::c_long) -> isize; +} +extern "C" { + pub fn snd_pcm_area_silence( + dst_channel: *const snd_pcm_channel_area_t, + dst_offset: snd_pcm_uframes_t, + samples: ::std::os::raw::c_uint, + format: snd_pcm_format_t, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_pcm_areas_silence( + dst_channels: *const snd_pcm_channel_area_t, + dst_offset: snd_pcm_uframes_t, + channels: ::std::os::raw::c_uint, + frames: snd_pcm_uframes_t, + format: snd_pcm_format_t, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_pcm_area_copy( + dst_channel: *const snd_pcm_channel_area_t, + dst_offset: snd_pcm_uframes_t, + src_channel: *const snd_pcm_channel_area_t, + src_offset: snd_pcm_uframes_t, + samples: ::std::os::raw::c_uint, + format: snd_pcm_format_t, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_pcm_areas_copy( + dst_channels: *const snd_pcm_channel_area_t, + dst_offset: snd_pcm_uframes_t, + src_channels: *const snd_pcm_channel_area_t, + src_offset: snd_pcm_uframes_t, + channels: ::std::os::raw::c_uint, + frames: snd_pcm_uframes_t, + format: snd_pcm_format_t, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_pcm_areas_copy_wrap( + dst_channels: *const snd_pcm_channel_area_t, + dst_offset: snd_pcm_uframes_t, + dst_size: snd_pcm_uframes_t, + src_channels: *const snd_pcm_channel_area_t, + src_offset: snd_pcm_uframes_t, + src_size: snd_pcm_uframes_t, + channels: ::std::os::raw::c_uint, + frames: snd_pcm_uframes_t, + format: snd_pcm_format_t, + ) -> ::std::os::raw::c_int; +} +pub const SND_PCM_HOOK_TYPE_HW_PARAMS: _snd_pcm_hook_type = 0; +pub const SND_PCM_HOOK_TYPE_HW_FREE: _snd_pcm_hook_type = 1; +pub const SND_PCM_HOOK_TYPE_CLOSE: _snd_pcm_hook_type = 2; +pub const SND_PCM_HOOK_TYPE_LAST: _snd_pcm_hook_type = 2; +#[doc = " type of pcm hook"] +pub type _snd_pcm_hook_type = u32; +#[doc = " type of pcm hook"] +pub use self::_snd_pcm_hook_type as snd_pcm_hook_type_t; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct _snd_pcm_hook { + _unused: [u8; 0], +} +#[doc = " PCM hook container"] +pub type snd_pcm_hook_t = _snd_pcm_hook; +#[doc = " PCM hook callback function"] +pub type snd_pcm_hook_func_t = + ::std::option::Option<unsafe extern "C" fn(hook: *mut snd_pcm_hook_t) -> ::std::os::raw::c_int>; +extern "C" { + pub fn snd_pcm_hook_get_pcm(hook: *mut snd_pcm_hook_t) -> *mut snd_pcm_t; +} +extern "C" { + pub fn snd_pcm_hook_get_private(hook: *mut snd_pcm_hook_t) -> *mut ::std::os::raw::c_void; +} +extern "C" { + pub fn snd_pcm_hook_set_private( + hook: *mut snd_pcm_hook_t, + private_data: *mut ::std::os::raw::c_void, + ); +} +extern "C" { + pub fn snd_pcm_hook_add( + hookp: *mut *mut snd_pcm_hook_t, + pcm: *mut snd_pcm_t, + type_: snd_pcm_hook_type_t, + func: snd_pcm_hook_func_t, + private_data: *mut ::std::os::raw::c_void, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_pcm_hook_remove(hook: *mut snd_pcm_hook_t) -> ::std::os::raw::c_int; +} +#[doc = " #SND_PCM_TYPE_METER scope functions"] +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct _snd_pcm_scope_ops { + #[doc = " \\brief Enable and prepare it using current params"] + #[doc = " \\param scope scope handle"] + pub enable: ::std::option::Option< + unsafe extern "C" fn(scope: *mut snd_pcm_scope_t) -> ::std::os::raw::c_int, + >, + #[doc = " \\brief Disable"] + #[doc = " \\param scope scope handle"] + pub disable: ::std::option::Option<unsafe extern "C" fn(scope: *mut snd_pcm_scope_t)>, + #[doc = " \\brief PCM has been started"] + #[doc = " \\param scope scope handle"] + pub start: ::std::option::Option<unsafe extern "C" fn(scope: *mut snd_pcm_scope_t)>, + #[doc = " \\brief PCM has been stopped"] + #[doc = " \\param scope scope handle"] + pub stop: ::std::option::Option<unsafe extern "C" fn(scope: *mut snd_pcm_scope_t)>, + #[doc = " \\brief New frames are present"] + #[doc = " \\param scope scope handle"] + pub update: ::std::option::Option<unsafe extern "C" fn(scope: *mut snd_pcm_scope_t)>, + #[doc = " \\brief Reset status"] + #[doc = " \\param scope scope handle"] + pub reset: ::std::option::Option<unsafe extern "C" fn(scope: *mut snd_pcm_scope_t)>, + #[doc = " \\brief PCM is closing"] + #[doc = " \\param scope scope handle"] + pub close: ::std::option::Option<unsafe extern "C" fn(scope: *mut snd_pcm_scope_t)>, +} +#[doc = " #SND_PCM_TYPE_METER scope functions"] +pub type snd_pcm_scope_ops_t = _snd_pcm_scope_ops; +extern "C" { + pub fn snd_pcm_meter_get_bufsize(pcm: *mut snd_pcm_t) -> snd_pcm_uframes_t; +} +extern "C" { + pub fn snd_pcm_meter_get_channels(pcm: *mut snd_pcm_t) -> ::std::os::raw::c_uint; +} +extern "C" { + pub fn snd_pcm_meter_get_rate(pcm: *mut snd_pcm_t) -> ::std::os::raw::c_uint; +} +extern "C" { + pub fn snd_pcm_meter_get_now(pcm: *mut snd_pcm_t) -> snd_pcm_uframes_t; +} +extern "C" { + pub fn snd_pcm_meter_get_boundary(pcm: *mut snd_pcm_t) -> snd_pcm_uframes_t; +} +extern "C" { + pub fn snd_pcm_meter_add_scope( + pcm: *mut snd_pcm_t, + scope: *mut snd_pcm_scope_t, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_pcm_meter_search_scope( + pcm: *mut snd_pcm_t, + name: *const ::std::os::raw::c_char, + ) -> *mut snd_pcm_scope_t; +} +extern "C" { + pub fn snd_pcm_scope_malloc(ptr: *mut *mut snd_pcm_scope_t) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_pcm_scope_set_ops(scope: *mut snd_pcm_scope_t, val: *const snd_pcm_scope_ops_t); +} +extern "C" { + pub fn snd_pcm_scope_set_name(scope: *mut snd_pcm_scope_t, val: *const ::std::os::raw::c_char); +} +extern "C" { + pub fn snd_pcm_scope_get_name(scope: *mut snd_pcm_scope_t) -> *const ::std::os::raw::c_char; +} +extern "C" { + pub fn snd_pcm_scope_get_callback_private( + scope: *mut snd_pcm_scope_t, + ) -> *mut ::std::os::raw::c_void; +} +extern "C" { + pub fn snd_pcm_scope_set_callback_private( + scope: *mut snd_pcm_scope_t, + val: *mut ::std::os::raw::c_void, + ); +} +extern "C" { + pub fn snd_pcm_scope_s16_open( + pcm: *mut snd_pcm_t, + name: *const ::std::os::raw::c_char, + scopep: *mut *mut snd_pcm_scope_t, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_pcm_scope_s16_get_channel_buffer( + scope: *mut snd_pcm_scope_t, + channel: ::std::os::raw::c_uint, + ) -> *mut i16; +} +#[doc = " standard latency - for standard playback or capture"] +#[doc = "(estimated latency in one direction 350ms)"] +pub const SND_SPCM_LATENCY_STANDARD: _snd_spcm_latency = 0; +#[doc = " medium latency - software phones etc."] +#[doc = "(estimated latency in one direction maximally 25ms"] +pub const SND_SPCM_LATENCY_MEDIUM: _snd_spcm_latency = 1; +#[doc = " realtime latency - realtime applications (effect processors etc.)"] +#[doc = "(estimated latency in one direction 5ms and better)"] +pub const SND_SPCM_LATENCY_REALTIME: _snd_spcm_latency = 2; +#[doc = " Simple PCM latency type"] +pub type _snd_spcm_latency = u32; +#[doc = " Simple PCM latency type"] +pub use self::_snd_spcm_latency as snd_spcm_latency_t; +#[doc = " driver / library will ignore all xruns, the stream runs forever"] +pub const SND_SPCM_XRUN_IGNORE: _snd_spcm_xrun_type = 0; +#[doc = " driver / library stops the stream when an xrun occurs"] +pub const SND_SPCM_XRUN_STOP: _snd_spcm_xrun_type = 1; +#[doc = " Simple PCM xrun type"] +pub type _snd_spcm_xrun_type = u32; +#[doc = " Simple PCM xrun type"] +pub use self::_snd_spcm_xrun_type as snd_spcm_xrun_type_t; +#[doc = " liberal duplex - the buffer and period sizes might not match"] +pub const SND_SPCM_DUPLEX_LIBERAL: _snd_spcm_duplex_type = 0; +#[doc = " pedantic duplex - the buffer and period sizes MUST match"] +pub const SND_SPCM_DUPLEX_PEDANTIC: _snd_spcm_duplex_type = 1; +#[doc = " Simple PCM duplex type"] +pub type _snd_spcm_duplex_type = u32; +#[doc = " Simple PCM duplex type"] +pub use self::_snd_spcm_duplex_type as snd_spcm_duplex_type_t; +extern "C" { + pub fn snd_spcm_init( + pcm: *mut snd_pcm_t, + rate: ::std::os::raw::c_uint, + channels: ::std::os::raw::c_uint, + format: snd_pcm_format_t, + subformat: snd_pcm_subformat_t, + latency: snd_spcm_latency_t, + _access: snd_pcm_access_t, + xrun_type: snd_spcm_xrun_type_t, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_spcm_init_duplex( + playback_pcm: *mut snd_pcm_t, + capture_pcm: *mut snd_pcm_t, + rate: ::std::os::raw::c_uint, + channels: ::std::os::raw::c_uint, + format: snd_pcm_format_t, + subformat: snd_pcm_subformat_t, + latency: snd_spcm_latency_t, + _access: snd_pcm_access_t, + xrun_type: snd_spcm_xrun_type_t, + duplex_type: snd_spcm_duplex_type_t, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_spcm_init_get_params( + pcm: *mut snd_pcm_t, + rate: *mut ::std::os::raw::c_uint, + buffer_size: *mut snd_pcm_uframes_t, + period_size: *mut snd_pcm_uframes_t, + ) -> ::std::os::raw::c_int; +} +extern "C" { + #[doc = " \\defgroup PCM_Deprecated Deprecated Functions"] + #[doc = " \\ingroup PCM"] + #[doc = " See the \\ref pcm page for more details."] + #[doc = " \\{"] + pub fn snd_pcm_start_mode_name(mode: snd_pcm_start_t) -> *const ::std::os::raw::c_char; +} +extern "C" { + pub fn snd_pcm_xrun_mode_name(mode: snd_pcm_xrun_t) -> *const ::std::os::raw::c_char; +} +extern "C" { + pub fn snd_pcm_sw_params_set_start_mode( + pcm: *mut snd_pcm_t, + params: *mut snd_pcm_sw_params_t, + val: snd_pcm_start_t, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_pcm_sw_params_get_start_mode(params: *const snd_pcm_sw_params_t) -> snd_pcm_start_t; +} +extern "C" { + pub fn snd_pcm_sw_params_set_xrun_mode( + pcm: *mut snd_pcm_t, + params: *mut snd_pcm_sw_params_t, + val: snd_pcm_xrun_t, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_pcm_sw_params_get_xrun_mode(params: *const snd_pcm_sw_params_t) -> snd_pcm_xrun_t; +} +extern "C" { + pub fn snd_pcm_sw_params_set_xfer_align( + pcm: *mut snd_pcm_t, + params: *mut snd_pcm_sw_params_t, + val: snd_pcm_uframes_t, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_pcm_sw_params_get_xfer_align( + params: *const snd_pcm_sw_params_t, + val: *mut snd_pcm_uframes_t, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_pcm_sw_params_set_sleep_min( + pcm: *mut snd_pcm_t, + params: *mut snd_pcm_sw_params_t, + val: ::std::os::raw::c_uint, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_pcm_sw_params_get_sleep_min( + params: *const snd_pcm_sw_params_t, + val: *mut ::std::os::raw::c_uint, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_pcm_hw_params_get_tick_time( + params: *const snd_pcm_hw_params_t, + val: *mut ::std::os::raw::c_uint, + dir: *mut ::std::os::raw::c_int, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_pcm_hw_params_get_tick_time_min( + params: *const snd_pcm_hw_params_t, + val: *mut ::std::os::raw::c_uint, + dir: *mut ::std::os::raw::c_int, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_pcm_hw_params_get_tick_time_max( + params: *const snd_pcm_hw_params_t, + val: *mut ::std::os::raw::c_uint, + dir: *mut ::std::os::raw::c_int, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_pcm_hw_params_test_tick_time( + pcm: *mut snd_pcm_t, + params: *mut snd_pcm_hw_params_t, + val: ::std::os::raw::c_uint, + dir: ::std::os::raw::c_int, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_pcm_hw_params_set_tick_time( + pcm: *mut snd_pcm_t, + params: *mut snd_pcm_hw_params_t, + val: ::std::os::raw::c_uint, + dir: ::std::os::raw::c_int, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_pcm_hw_params_set_tick_time_min( + pcm: *mut snd_pcm_t, + params: *mut snd_pcm_hw_params_t, + val: *mut ::std::os::raw::c_uint, + dir: *mut ::std::os::raw::c_int, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_pcm_hw_params_set_tick_time_max( + pcm: *mut snd_pcm_t, + params: *mut snd_pcm_hw_params_t, + val: *mut ::std::os::raw::c_uint, + dir: *mut ::std::os::raw::c_int, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_pcm_hw_params_set_tick_time_minmax( + pcm: *mut snd_pcm_t, + params: *mut snd_pcm_hw_params_t, + min: *mut ::std::os::raw::c_uint, + mindir: *mut ::std::os::raw::c_int, + max: *mut ::std::os::raw::c_uint, + maxdir: *mut ::std::os::raw::c_int, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_pcm_hw_params_set_tick_time_near( + pcm: *mut snd_pcm_t, + params: *mut snd_pcm_hw_params_t, + val: *mut ::std::os::raw::c_uint, + dir: *mut ::std::os::raw::c_int, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_pcm_hw_params_set_tick_time_first( + pcm: *mut snd_pcm_t, + params: *mut snd_pcm_hw_params_t, + val: *mut ::std::os::raw::c_uint, + dir: *mut ::std::os::raw::c_int, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_pcm_hw_params_set_tick_time_last( + pcm: *mut snd_pcm_t, + params: *mut snd_pcm_hw_params_t, + val: *mut ::std::os::raw::c_uint, + dir: *mut ::std::os::raw::c_int, + ) -> ::std::os::raw::c_int; +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct _snd_rawmidi_info { + _unused: [u8; 0], +} +#[doc = " RawMidi information container"] +pub type snd_rawmidi_info_t = _snd_rawmidi_info; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct _snd_rawmidi_params { + _unused: [u8; 0], +} +#[doc = " RawMidi settings container"] +pub type snd_rawmidi_params_t = _snd_rawmidi_params; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct _snd_rawmidi_status { + _unused: [u8; 0], +} +#[doc = " RawMidi status container"] +pub type snd_rawmidi_status_t = _snd_rawmidi_status; +#[doc = " Output stream"] +pub const SND_RAWMIDI_STREAM_OUTPUT: _snd_rawmidi_stream = 0; +#[doc = " Input stream"] +pub const SND_RAWMIDI_STREAM_INPUT: _snd_rawmidi_stream = 1; +#[doc = " Input stream"] +pub const SND_RAWMIDI_STREAM_LAST: _snd_rawmidi_stream = 1; +#[doc = " RawMidi stream (direction)"] +pub type _snd_rawmidi_stream = u32; +#[doc = " RawMidi stream (direction)"] +pub use self::_snd_rawmidi_stream as snd_rawmidi_stream_t; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct _snd_rawmidi { + _unused: [u8; 0], +} +#[doc = " RawMidi handle"] +pub type snd_rawmidi_t = _snd_rawmidi; +#[doc = " Kernel level RawMidi"] +pub const SND_RAWMIDI_TYPE_HW: _snd_rawmidi_type = 0; +#[doc = " Shared memory client RawMidi (not yet implemented)"] +pub const SND_RAWMIDI_TYPE_SHM: _snd_rawmidi_type = 1; +#[doc = " INET client RawMidi (not yet implemented)"] +pub const SND_RAWMIDI_TYPE_INET: _snd_rawmidi_type = 2; +#[doc = " Virtual (sequencer) RawMidi"] +pub const SND_RAWMIDI_TYPE_VIRTUAL: _snd_rawmidi_type = 3; +#[doc = " RawMidi type"] +pub type _snd_rawmidi_type = u32; +#[doc = " RawMidi type"] +pub use self::_snd_rawmidi_type as snd_rawmidi_type_t; +extern "C" { + pub fn snd_rawmidi_open( + in_rmidi: *mut *mut snd_rawmidi_t, + out_rmidi: *mut *mut snd_rawmidi_t, + name: *const ::std::os::raw::c_char, + mode: ::std::os::raw::c_int, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_rawmidi_open_lconf( + in_rmidi: *mut *mut snd_rawmidi_t, + out_rmidi: *mut *mut snd_rawmidi_t, + name: *const ::std::os::raw::c_char, + mode: ::std::os::raw::c_int, + lconf: *mut snd_config_t, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_rawmidi_close(rmidi: *mut snd_rawmidi_t) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_rawmidi_poll_descriptors_count(rmidi: *mut snd_rawmidi_t) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_rawmidi_poll_descriptors( + rmidi: *mut snd_rawmidi_t, + pfds: *mut pollfd, + space: ::std::os::raw::c_uint, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_rawmidi_poll_descriptors_revents( + rawmidi: *mut snd_rawmidi_t, + pfds: *mut pollfd, + nfds: ::std::os::raw::c_uint, + revent: *mut ::std::os::raw::c_ushort, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_rawmidi_nonblock( + rmidi: *mut snd_rawmidi_t, + nonblock: ::std::os::raw::c_int, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_rawmidi_info_sizeof() -> usize; +} +extern "C" { + pub fn snd_rawmidi_info_malloc(ptr: *mut *mut snd_rawmidi_info_t) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_rawmidi_info_free(obj: *mut snd_rawmidi_info_t); +} +extern "C" { + pub fn snd_rawmidi_info_copy(dst: *mut snd_rawmidi_info_t, src: *const snd_rawmidi_info_t); +} +extern "C" { + pub fn snd_rawmidi_info_get_device(obj: *const snd_rawmidi_info_t) -> ::std::os::raw::c_uint; +} +extern "C" { + pub fn snd_rawmidi_info_get_subdevice(obj: *const snd_rawmidi_info_t) + -> ::std::os::raw::c_uint; +} +extern "C" { + pub fn snd_rawmidi_info_get_stream(obj: *const snd_rawmidi_info_t) -> snd_rawmidi_stream_t; +} +extern "C" { + pub fn snd_rawmidi_info_get_card(obj: *const snd_rawmidi_info_t) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_rawmidi_info_get_flags(obj: *const snd_rawmidi_info_t) -> ::std::os::raw::c_uint; +} +extern "C" { + pub fn snd_rawmidi_info_get_id(obj: *const snd_rawmidi_info_t) + -> *const ::std::os::raw::c_char; +} +extern "C" { + pub fn snd_rawmidi_info_get_name( + obj: *const snd_rawmidi_info_t, + ) -> *const ::std::os::raw::c_char; +} +extern "C" { + pub fn snd_rawmidi_info_get_subdevice_name( + obj: *const snd_rawmidi_info_t, + ) -> *const ::std::os::raw::c_char; +} +extern "C" { + pub fn snd_rawmidi_info_get_subdevices_count( + obj: *const snd_rawmidi_info_t, + ) -> ::std::os::raw::c_uint; +} +extern "C" { + pub fn snd_rawmidi_info_get_subdevices_avail( + obj: *const snd_rawmidi_info_t, + ) -> ::std::os::raw::c_uint; +} +extern "C" { + pub fn snd_rawmidi_info_set_device(obj: *mut snd_rawmidi_info_t, val: ::std::os::raw::c_uint); +} +extern "C" { + pub fn snd_rawmidi_info_set_subdevice( + obj: *mut snd_rawmidi_info_t, + val: ::std::os::raw::c_uint, + ); +} +extern "C" { + pub fn snd_rawmidi_info_set_stream(obj: *mut snd_rawmidi_info_t, val: snd_rawmidi_stream_t); +} +extern "C" { + pub fn snd_rawmidi_info( + rmidi: *mut snd_rawmidi_t, + info: *mut snd_rawmidi_info_t, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_rawmidi_params_sizeof() -> usize; +} +extern "C" { + pub fn snd_rawmidi_params_malloc(ptr: *mut *mut snd_rawmidi_params_t) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_rawmidi_params_free(obj: *mut snd_rawmidi_params_t); +} +extern "C" { + pub fn snd_rawmidi_params_copy( + dst: *mut snd_rawmidi_params_t, + src: *const snd_rawmidi_params_t, + ); +} +extern "C" { + pub fn snd_rawmidi_params_set_buffer_size( + rmidi: *mut snd_rawmidi_t, + params: *mut snd_rawmidi_params_t, + val: usize, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_rawmidi_params_get_buffer_size(params: *const snd_rawmidi_params_t) -> usize; +} +extern "C" { + pub fn snd_rawmidi_params_set_avail_min( + rmidi: *mut snd_rawmidi_t, + params: *mut snd_rawmidi_params_t, + val: usize, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_rawmidi_params_get_avail_min(params: *const snd_rawmidi_params_t) -> usize; +} +extern "C" { + pub fn snd_rawmidi_params_set_no_active_sensing( + rmidi: *mut snd_rawmidi_t, + params: *mut snd_rawmidi_params_t, + val: ::std::os::raw::c_int, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_rawmidi_params_get_no_active_sensing( + params: *const snd_rawmidi_params_t, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_rawmidi_params( + rmidi: *mut snd_rawmidi_t, + params: *mut snd_rawmidi_params_t, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_rawmidi_params_current( + rmidi: *mut snd_rawmidi_t, + params: *mut snd_rawmidi_params_t, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_rawmidi_status_sizeof() -> usize; +} +extern "C" { + pub fn snd_rawmidi_status_malloc(ptr: *mut *mut snd_rawmidi_status_t) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_rawmidi_status_free(obj: *mut snd_rawmidi_status_t); +} +extern "C" { + pub fn snd_rawmidi_status_copy( + dst: *mut snd_rawmidi_status_t, + src: *const snd_rawmidi_status_t, + ); +} +extern "C" { + pub fn snd_rawmidi_status_get_tstamp( + obj: *const snd_rawmidi_status_t, + ptr: *mut snd_htimestamp_t, + ); +} +extern "C" { + pub fn snd_rawmidi_status_get_avail(obj: *const snd_rawmidi_status_t) -> usize; +} +extern "C" { + pub fn snd_rawmidi_status_get_xruns(obj: *const snd_rawmidi_status_t) -> usize; +} +extern "C" { + pub fn snd_rawmidi_status( + rmidi: *mut snd_rawmidi_t, + status: *mut snd_rawmidi_status_t, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_rawmidi_drain(rmidi: *mut snd_rawmidi_t) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_rawmidi_drop(rmidi: *mut snd_rawmidi_t) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_rawmidi_write( + rmidi: *mut snd_rawmidi_t, + buffer: *const ::std::os::raw::c_void, + size: usize, + ) -> isize; +} +extern "C" { + pub fn snd_rawmidi_read( + rmidi: *mut snd_rawmidi_t, + buffer: *mut ::std::os::raw::c_void, + size: usize, + ) -> isize; +} +extern "C" { + pub fn snd_rawmidi_name(rmidi: *mut snd_rawmidi_t) -> *const ::std::os::raw::c_char; +} +extern "C" { + pub fn snd_rawmidi_type(rmidi: *mut snd_rawmidi_t) -> snd_rawmidi_type_t; +} +extern "C" { + pub fn snd_rawmidi_stream(rawmidi: *mut snd_rawmidi_t) -> snd_rawmidi_stream_t; +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct _snd_timer_id { + _unused: [u8; 0], +} +#[doc = " timer identification structure"] +pub type snd_timer_id_t = _snd_timer_id; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct _snd_timer_ginfo { + _unused: [u8; 0], +} +#[doc = " timer global info structure"] +pub type snd_timer_ginfo_t = _snd_timer_ginfo; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct _snd_timer_gparams { + _unused: [u8; 0], +} +#[doc = " timer global params structure"] +pub type snd_timer_gparams_t = _snd_timer_gparams; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct _snd_timer_gstatus { + _unused: [u8; 0], +} +#[doc = " timer global status structure"] +pub type snd_timer_gstatus_t = _snd_timer_gstatus; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct _snd_timer_info { + _unused: [u8; 0], +} +#[doc = " timer info structure"] +pub type snd_timer_info_t = _snd_timer_info; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct _snd_timer_params { + _unused: [u8; 0], +} +#[doc = " timer params structure"] +pub type snd_timer_params_t = _snd_timer_params; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct _snd_timer_status { + _unused: [u8; 0], +} +#[doc = " timer status structure"] +pub type snd_timer_status_t = _snd_timer_status; +#[doc = "< invalid"] +pub const SND_TIMER_CLASS_NONE: _snd_timer_class = -1; +#[doc = "< slave timer"] +pub const SND_TIMER_CLASS_SLAVE: _snd_timer_class = 0; +#[doc = "< global timer"] +pub const SND_TIMER_CLASS_GLOBAL: _snd_timer_class = 1; +#[doc = "< card timer"] +pub const SND_TIMER_CLASS_CARD: _snd_timer_class = 2; +#[doc = "< PCM timer"] +pub const SND_TIMER_CLASS_PCM: _snd_timer_class = 3; +#[doc = "< last timer"] +pub const SND_TIMER_CLASS_LAST: _snd_timer_class = 3; +#[doc = " timer master class"] +pub type _snd_timer_class = i32; +#[doc = " timer master class"] +pub use self::_snd_timer_class as snd_timer_class_t; +#[doc = "< none"] +pub const SND_TIMER_SCLASS_NONE: _snd_timer_slave_class = 0; +#[doc = "< for internal use"] +pub const SND_TIMER_SCLASS_APPLICATION: _snd_timer_slave_class = 1; +#[doc = "< sequencer timer"] +pub const SND_TIMER_SCLASS_SEQUENCER: _snd_timer_slave_class = 2; +#[doc = "< OSS sequencer timer"] +pub const SND_TIMER_SCLASS_OSS_SEQUENCER: _snd_timer_slave_class = 3; +#[doc = "< last slave timer"] +pub const SND_TIMER_SCLASS_LAST: _snd_timer_slave_class = 3; +#[doc = " timer slave class"] +pub type _snd_timer_slave_class = u32; +#[doc = " timer slave class"] +pub use self::_snd_timer_slave_class as snd_timer_slave_class_t; +pub const SND_TIMER_EVENT_RESOLUTION: _snd_timer_event = 0; +pub const SND_TIMER_EVENT_TICK: _snd_timer_event = 1; +pub const SND_TIMER_EVENT_START: _snd_timer_event = 2; +pub const SND_TIMER_EVENT_STOP: _snd_timer_event = 3; +pub const SND_TIMER_EVENT_CONTINUE: _snd_timer_event = 4; +pub const SND_TIMER_EVENT_PAUSE: _snd_timer_event = 5; +pub const SND_TIMER_EVENT_EARLY: _snd_timer_event = 6; +pub const SND_TIMER_EVENT_SUSPEND: _snd_timer_event = 7; +pub const SND_TIMER_EVENT_RESUME: _snd_timer_event = 8; +pub const SND_TIMER_EVENT_MSTART: _snd_timer_event = 12; +pub const SND_TIMER_EVENT_MSTOP: _snd_timer_event = 13; +pub const SND_TIMER_EVENT_MCONTINUE: _snd_timer_event = 14; +pub const SND_TIMER_EVENT_MPAUSE: _snd_timer_event = 15; +pub const SND_TIMER_EVENT_MSUSPEND: _snd_timer_event = 17; +pub const SND_TIMER_EVENT_MRESUME: _snd_timer_event = 18; +#[doc = " timer read event identification"] +pub type _snd_timer_event = u32; +#[doc = " timer read event identification"] +pub use self::_snd_timer_event as snd_timer_event_t; +#[doc = " timer read structure"] +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct _snd_timer_read { + #[doc = "< tick resolution in nanoseconds"] + pub resolution: ::std::os::raw::c_uint, + #[doc = "< count of happened ticks"] + pub ticks: ::std::os::raw::c_uint, +} +#[doc = " timer read structure"] +pub type snd_timer_read_t = _snd_timer_read; +#[doc = " timer tstamp + event read structure"] +#[repr(C)] +pub struct _snd_timer_tread { + #[doc = "< Timer event"] + pub event: snd_timer_event_t, + #[doc = "< Time stamp of each event"] + pub tstamp: snd_htimestamp_t, + #[doc = "< Event value"] + pub val: ::std::os::raw::c_uint, +} +#[doc = " timer tstamp + event read structure"] +pub type snd_timer_tread_t = _snd_timer_tread; +#[doc = " Kernel level HwDep"] +pub const SND_TIMER_TYPE_HW: _snd_timer_type = 0; +#[doc = " Shared memory client timer (not yet implemented)"] +pub const SND_TIMER_TYPE_SHM: _snd_timer_type = 1; +#[doc = " INET client timer (not yet implemented)"] +pub const SND_TIMER_TYPE_INET: _snd_timer_type = 2; +#[doc = " timer handle type"] +pub type _snd_timer_type = u32; +#[doc = " timer handle type"] +pub use self::_snd_timer_type as snd_timer_type_t; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct _snd_timer_query { + _unused: [u8; 0], +} +#[doc = " timer query handle"] +pub type snd_timer_query_t = _snd_timer_query; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct _snd_timer { + _unused: [u8; 0], +} +#[doc = " timer handle"] +pub type snd_timer_t = _snd_timer; +extern "C" { + pub fn snd_timer_query_open( + handle: *mut *mut snd_timer_query_t, + name: *const ::std::os::raw::c_char, + mode: ::std::os::raw::c_int, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_timer_query_open_lconf( + handle: *mut *mut snd_timer_query_t, + name: *const ::std::os::raw::c_char, + mode: ::std::os::raw::c_int, + lconf: *mut snd_config_t, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_timer_query_close(handle: *mut snd_timer_query_t) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_timer_query_next_device( + handle: *mut snd_timer_query_t, + tid: *mut snd_timer_id_t, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_timer_query_info( + handle: *mut snd_timer_query_t, + info: *mut snd_timer_ginfo_t, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_timer_query_params( + handle: *mut snd_timer_query_t, + params: *mut snd_timer_gparams_t, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_timer_query_status( + handle: *mut snd_timer_query_t, + status: *mut snd_timer_gstatus_t, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_timer_open( + handle: *mut *mut snd_timer_t, + name: *const ::std::os::raw::c_char, + mode: ::std::os::raw::c_int, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_timer_open_lconf( + handle: *mut *mut snd_timer_t, + name: *const ::std::os::raw::c_char, + mode: ::std::os::raw::c_int, + lconf: *mut snd_config_t, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_timer_close(handle: *mut snd_timer_t) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_async_add_timer_handler( + handler: *mut *mut snd_async_handler_t, + timer: *mut snd_timer_t, + callback: snd_async_callback_t, + private_data: *mut ::std::os::raw::c_void, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_async_handler_get_timer(handler: *mut snd_async_handler_t) -> *mut snd_timer_t; +} +extern "C" { + pub fn snd_timer_poll_descriptors_count(handle: *mut snd_timer_t) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_timer_poll_descriptors( + handle: *mut snd_timer_t, + pfds: *mut pollfd, + space: ::std::os::raw::c_uint, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_timer_poll_descriptors_revents( + timer: *mut snd_timer_t, + pfds: *mut pollfd, + nfds: ::std::os::raw::c_uint, + revents: *mut ::std::os::raw::c_ushort, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_timer_info( + handle: *mut snd_timer_t, + timer: *mut snd_timer_info_t, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_timer_params( + handle: *mut snd_timer_t, + params: *mut snd_timer_params_t, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_timer_status( + handle: *mut snd_timer_t, + status: *mut snd_timer_status_t, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_timer_start(handle: *mut snd_timer_t) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_timer_stop(handle: *mut snd_timer_t) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_timer_continue(handle: *mut snd_timer_t) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_timer_read( + handle: *mut snd_timer_t, + buffer: *mut ::std::os::raw::c_void, + size: usize, + ) -> isize; +} +extern "C" { + pub fn snd_timer_id_sizeof() -> usize; +} +extern "C" { + pub fn snd_timer_id_malloc(ptr: *mut *mut snd_timer_id_t) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_timer_id_free(obj: *mut snd_timer_id_t); +} +extern "C" { + pub fn snd_timer_id_copy(dst: *mut snd_timer_id_t, src: *const snd_timer_id_t); +} +extern "C" { + pub fn snd_timer_id_set_class(id: *mut snd_timer_id_t, dev_class: ::std::os::raw::c_int); +} +extern "C" { + pub fn snd_timer_id_get_class(id: *mut snd_timer_id_t) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_timer_id_set_sclass(id: *mut snd_timer_id_t, dev_sclass: ::std::os::raw::c_int); +} +extern "C" { + pub fn snd_timer_id_get_sclass(id: *mut snd_timer_id_t) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_timer_id_set_card(id: *mut snd_timer_id_t, card: ::std::os::raw::c_int); +} +extern "C" { + pub fn snd_timer_id_get_card(id: *mut snd_timer_id_t) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_timer_id_set_device(id: *mut snd_timer_id_t, device: ::std::os::raw::c_int); +} +extern "C" { + pub fn snd_timer_id_get_device(id: *mut snd_timer_id_t) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_timer_id_set_subdevice(id: *mut snd_timer_id_t, subdevice: ::std::os::raw::c_int); +} +extern "C" { + pub fn snd_timer_id_get_subdevice(id: *mut snd_timer_id_t) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_timer_ginfo_sizeof() -> usize; +} +extern "C" { + pub fn snd_timer_ginfo_malloc(ptr: *mut *mut snd_timer_ginfo_t) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_timer_ginfo_free(obj: *mut snd_timer_ginfo_t); +} +extern "C" { + pub fn snd_timer_ginfo_copy(dst: *mut snd_timer_ginfo_t, src: *const snd_timer_ginfo_t); +} +extern "C" { + pub fn snd_timer_ginfo_set_tid( + obj: *mut snd_timer_ginfo_t, + tid: *mut snd_timer_id_t, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_timer_ginfo_get_tid(obj: *mut snd_timer_ginfo_t) -> *mut snd_timer_id_t; +} +extern "C" { + pub fn snd_timer_ginfo_get_flags(obj: *mut snd_timer_ginfo_t) -> ::std::os::raw::c_uint; +} +extern "C" { + pub fn snd_timer_ginfo_get_card(obj: *mut snd_timer_ginfo_t) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_timer_ginfo_get_id(obj: *mut snd_timer_ginfo_t) -> *mut ::std::os::raw::c_char; +} +extern "C" { + pub fn snd_timer_ginfo_get_name(obj: *mut snd_timer_ginfo_t) -> *mut ::std::os::raw::c_char; +} +extern "C" { + pub fn snd_timer_ginfo_get_resolution(obj: *mut snd_timer_ginfo_t) -> ::std::os::raw::c_ulong; +} +extern "C" { + pub fn snd_timer_ginfo_get_resolution_min( + obj: *mut snd_timer_ginfo_t, + ) -> ::std::os::raw::c_ulong; +} +extern "C" { + pub fn snd_timer_ginfo_get_resolution_max( + obj: *mut snd_timer_ginfo_t, + ) -> ::std::os::raw::c_ulong; +} +extern "C" { + pub fn snd_timer_ginfo_get_clients(obj: *mut snd_timer_ginfo_t) -> ::std::os::raw::c_uint; +} +extern "C" { + pub fn snd_timer_info_sizeof() -> usize; +} +extern "C" { + pub fn snd_timer_info_malloc(ptr: *mut *mut snd_timer_info_t) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_timer_info_free(obj: *mut snd_timer_info_t); +} +extern "C" { + pub fn snd_timer_info_copy(dst: *mut snd_timer_info_t, src: *const snd_timer_info_t); +} +extern "C" { + pub fn snd_timer_info_is_slave(info: *mut snd_timer_info_t) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_timer_info_get_card(info: *mut snd_timer_info_t) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_timer_info_get_id(info: *mut snd_timer_info_t) -> *const ::std::os::raw::c_char; +} +extern "C" { + pub fn snd_timer_info_get_name(info: *mut snd_timer_info_t) -> *const ::std::os::raw::c_char; +} +extern "C" { + pub fn snd_timer_info_get_resolution(info: *mut snd_timer_info_t) -> ::std::os::raw::c_long; +} +extern "C" { + pub fn snd_timer_params_sizeof() -> usize; +} +extern "C" { + pub fn snd_timer_params_malloc(ptr: *mut *mut snd_timer_params_t) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_timer_params_free(obj: *mut snd_timer_params_t); +} +extern "C" { + pub fn snd_timer_params_copy(dst: *mut snd_timer_params_t, src: *const snd_timer_params_t); +} +extern "C" { + pub fn snd_timer_params_set_auto_start( + params: *mut snd_timer_params_t, + auto_start: ::std::os::raw::c_int, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_timer_params_get_auto_start( + params: *mut snd_timer_params_t, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_timer_params_set_exclusive( + params: *mut snd_timer_params_t, + exclusive: ::std::os::raw::c_int, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_timer_params_get_exclusive(params: *mut snd_timer_params_t) + -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_timer_params_set_early_event( + params: *mut snd_timer_params_t, + early_event: ::std::os::raw::c_int, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_timer_params_get_early_event( + params: *mut snd_timer_params_t, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_timer_params_set_ticks( + params: *mut snd_timer_params_t, + ticks: ::std::os::raw::c_long, + ); +} +extern "C" { + pub fn snd_timer_params_get_ticks(params: *mut snd_timer_params_t) -> ::std::os::raw::c_long; +} +extern "C" { + pub fn snd_timer_params_set_queue_size( + params: *mut snd_timer_params_t, + queue_size: ::std::os::raw::c_long, + ); +} +extern "C" { + pub fn snd_timer_params_get_queue_size( + params: *mut snd_timer_params_t, + ) -> ::std::os::raw::c_long; +} +extern "C" { + pub fn snd_timer_params_set_filter( + params: *mut snd_timer_params_t, + filter: ::std::os::raw::c_uint, + ); +} +extern "C" { + pub fn snd_timer_params_get_filter(params: *mut snd_timer_params_t) -> ::std::os::raw::c_uint; +} +extern "C" { + pub fn snd_timer_status_sizeof() -> usize; +} +extern "C" { + pub fn snd_timer_status_malloc(ptr: *mut *mut snd_timer_status_t) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_timer_status_free(obj: *mut snd_timer_status_t); +} +extern "C" { + pub fn snd_timer_status_copy(dst: *mut snd_timer_status_t, src: *const snd_timer_status_t); +} +extern "C" { + pub fn snd_timer_status_get_timestamp(status: *mut snd_timer_status_t) -> snd_htimestamp_t; +} +extern "C" { + pub fn snd_timer_status_get_resolution( + status: *mut snd_timer_status_t, + ) -> ::std::os::raw::c_long; +} +extern "C" { + pub fn snd_timer_status_get_lost(status: *mut snd_timer_status_t) -> ::std::os::raw::c_long; +} +extern "C" { + pub fn snd_timer_status_get_overrun(status: *mut snd_timer_status_t) -> ::std::os::raw::c_long; +} +extern "C" { + pub fn snd_timer_status_get_queue(status: *mut snd_timer_status_t) -> ::std::os::raw::c_long; +} +extern "C" { + pub fn snd_timer_info_get_ticks(info: *mut snd_timer_info_t) -> ::std::os::raw::c_long; +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct _snd_hwdep_info { + _unused: [u8; 0], +} +#[doc = " HwDep information container"] +pub type snd_hwdep_info_t = _snd_hwdep_info; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct _snd_hwdep_dsp_status { + _unused: [u8; 0], +} +#[doc = " HwDep DSP status container"] +pub type snd_hwdep_dsp_status_t = _snd_hwdep_dsp_status; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct _snd_hwdep_dsp_image { + _unused: [u8; 0], +} +#[doc = " HwDep DSP image container"] +pub type snd_hwdep_dsp_image_t = _snd_hwdep_dsp_image; +#[doc = "< OPL2 raw driver"] +pub const SND_HWDEP_IFACE_OPL2: _snd_hwdep_iface = 0; +#[doc = "< OPL3 raw driver"] +pub const SND_HWDEP_IFACE_OPL3: _snd_hwdep_iface = 1; +#[doc = "< OPL4 raw driver"] +pub const SND_HWDEP_IFACE_OPL4: _snd_hwdep_iface = 2; +#[doc = "< SB16CSP driver"] +pub const SND_HWDEP_IFACE_SB16CSP: _snd_hwdep_iface = 3; +#[doc = "< EMU10K1 driver"] +pub const SND_HWDEP_IFACE_EMU10K1: _snd_hwdep_iface = 4; +#[doc = "< YSS225 driver"] +pub const SND_HWDEP_IFACE_YSS225: _snd_hwdep_iface = 5; +#[doc = "< ICS2115 driver"] +pub const SND_HWDEP_IFACE_ICS2115: _snd_hwdep_iface = 6; +#[doc = "< Ensoniq SoundScape ISA card (MC68EC000)"] +pub const SND_HWDEP_IFACE_SSCAPE: _snd_hwdep_iface = 7; +#[doc = "< Digigram VX cards"] +pub const SND_HWDEP_IFACE_VX: _snd_hwdep_iface = 8; +#[doc = "< Digigram miXart cards"] +pub const SND_HWDEP_IFACE_MIXART: _snd_hwdep_iface = 9; +#[doc = "< Tascam US122, US224 & US428 usb"] +pub const SND_HWDEP_IFACE_USX2Y: _snd_hwdep_iface = 10; +#[doc = "< EmuX wavetable"] +pub const SND_HWDEP_IFACE_EMUX_WAVETABLE: _snd_hwdep_iface = 11; +#[doc = "< Bluetooth audio"] +pub const SND_HWDEP_IFACE_BLUETOOTH: _snd_hwdep_iface = 12; +#[doc = "< Tascam US122, US224 & US428 raw USB PCM"] +pub const SND_HWDEP_IFACE_USX2Y_PCM: _snd_hwdep_iface = 13; +#[doc = "< Digigram PCXHR"] +pub const SND_HWDEP_IFACE_PCXHR: _snd_hwdep_iface = 14; +#[doc = "< SB Extigy/Audigy2NX remote control"] +pub const SND_HWDEP_IFACE_SB_RC: _snd_hwdep_iface = 15; +#[doc = "< HD-audio"] +pub const SND_HWDEP_IFACE_HDA: _snd_hwdep_iface = 16; +#[doc = "< direct access to usb stream"] +pub const SND_HWDEP_IFACE_USB_STREAM: _snd_hwdep_iface = 17; +#[doc = "< TC DICE FireWire device"] +pub const SND_HWDEP_IFACE_FW_DICE: _snd_hwdep_iface = 18; +#[doc = "< Echo Audio Fireworks based device"] +pub const SND_HWDEP_IFACE_FW_FIREWORKS: _snd_hwdep_iface = 19; +#[doc = "< BridgeCo BeBoB based device"] +pub const SND_HWDEP_IFACE_FW_BEBOB: _snd_hwdep_iface = 20; +#[doc = "< Oxford OXFW970/971 based device"] +pub const SND_HWDEP_IFACE_FW_OXFW: _snd_hwdep_iface = 21; +pub const SND_HWDEP_IFACE_FW_DIGI00X: _snd_hwdep_iface = 22; +pub const SND_HWDEP_IFACE_FW_TASCAM: _snd_hwdep_iface = 23; +pub const SND_HWDEP_IFACE_LINE6: _snd_hwdep_iface = 24; +pub const SND_HWDEP_IFACE_FW_MOTU: _snd_hwdep_iface = 25; +pub const SND_HWDEP_IFACE_FW_FIREFACE: _snd_hwdep_iface = 26; +#[doc = "< last known hwdep interface"] +pub const SND_HWDEP_IFACE_LAST: _snd_hwdep_iface = 26; +#[doc = " HwDep interface"] +pub type _snd_hwdep_iface = u32; +#[doc = " HwDep interface"] +pub use self::_snd_hwdep_iface as snd_hwdep_iface_t; +#[doc = " Kernel level HwDep"] +pub const SND_HWDEP_TYPE_HW: _snd_hwdep_type = 0; +#[doc = " Shared memory client HwDep (not yet implemented)"] +pub const SND_HWDEP_TYPE_SHM: _snd_hwdep_type = 1; +#[doc = " INET client HwDep (not yet implemented)"] +pub const SND_HWDEP_TYPE_INET: _snd_hwdep_type = 2; +#[doc = " HwDep handle type"] +pub type _snd_hwdep_type = u32; +#[doc = " HwDep handle type"] +pub use self::_snd_hwdep_type as snd_hwdep_type_t; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct _snd_hwdep { + _unused: [u8; 0], +} +#[doc = " HwDep handle"] +pub type snd_hwdep_t = _snd_hwdep; +extern "C" { + pub fn snd_hwdep_open( + hwdep: *mut *mut snd_hwdep_t, + name: *const ::std::os::raw::c_char, + mode: ::std::os::raw::c_int, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_hwdep_close(hwdep: *mut snd_hwdep_t) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_hwdep_poll_descriptors( + hwdep: *mut snd_hwdep_t, + pfds: *mut pollfd, + space: ::std::os::raw::c_uint, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_hwdep_poll_descriptors_count(hwdep: *mut snd_hwdep_t) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_hwdep_poll_descriptors_revents( + hwdep: *mut snd_hwdep_t, + pfds: *mut pollfd, + nfds: ::std::os::raw::c_uint, + revents: *mut ::std::os::raw::c_ushort, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_hwdep_nonblock( + hwdep: *mut snd_hwdep_t, + nonblock: ::std::os::raw::c_int, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_hwdep_info( + hwdep: *mut snd_hwdep_t, + info: *mut snd_hwdep_info_t, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_hwdep_dsp_status( + hwdep: *mut snd_hwdep_t, + status: *mut snd_hwdep_dsp_status_t, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_hwdep_dsp_load( + hwdep: *mut snd_hwdep_t, + block: *mut snd_hwdep_dsp_image_t, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_hwdep_ioctl( + hwdep: *mut snd_hwdep_t, + request: ::std::os::raw::c_uint, + arg: *mut ::std::os::raw::c_void, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_hwdep_write( + hwdep: *mut snd_hwdep_t, + buffer: *const ::std::os::raw::c_void, + size: usize, + ) -> isize; +} +extern "C" { + pub fn snd_hwdep_read( + hwdep: *mut snd_hwdep_t, + buffer: *mut ::std::os::raw::c_void, + size: usize, + ) -> isize; +} +extern "C" { + pub fn snd_hwdep_info_sizeof() -> usize; +} +extern "C" { + pub fn snd_hwdep_info_malloc(ptr: *mut *mut snd_hwdep_info_t) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_hwdep_info_free(obj: *mut snd_hwdep_info_t); +} +extern "C" { + pub fn snd_hwdep_info_copy(dst: *mut snd_hwdep_info_t, src: *const snd_hwdep_info_t); +} +extern "C" { + pub fn snd_hwdep_info_get_device(obj: *const snd_hwdep_info_t) -> ::std::os::raw::c_uint; +} +extern "C" { + pub fn snd_hwdep_info_get_card(obj: *const snd_hwdep_info_t) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_hwdep_info_get_id(obj: *const snd_hwdep_info_t) -> *const ::std::os::raw::c_char; +} +extern "C" { + pub fn snd_hwdep_info_get_name(obj: *const snd_hwdep_info_t) -> *const ::std::os::raw::c_char; +} +extern "C" { + pub fn snd_hwdep_info_get_iface(obj: *const snd_hwdep_info_t) -> snd_hwdep_iface_t; +} +extern "C" { + pub fn snd_hwdep_info_set_device(obj: *mut snd_hwdep_info_t, val: ::std::os::raw::c_uint); +} +extern "C" { + pub fn snd_hwdep_dsp_status_sizeof() -> usize; +} +extern "C" { + pub fn snd_hwdep_dsp_status_malloc( + ptr: *mut *mut snd_hwdep_dsp_status_t, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_hwdep_dsp_status_free(obj: *mut snd_hwdep_dsp_status_t); +} +extern "C" { + pub fn snd_hwdep_dsp_status_copy( + dst: *mut snd_hwdep_dsp_status_t, + src: *const snd_hwdep_dsp_status_t, + ); +} +extern "C" { + pub fn snd_hwdep_dsp_status_get_version( + obj: *const snd_hwdep_dsp_status_t, + ) -> ::std::os::raw::c_uint; +} +extern "C" { + pub fn snd_hwdep_dsp_status_get_id( + obj: *const snd_hwdep_dsp_status_t, + ) -> *const ::std::os::raw::c_char; +} +extern "C" { + pub fn snd_hwdep_dsp_status_get_num_dsps( + obj: *const snd_hwdep_dsp_status_t, + ) -> ::std::os::raw::c_uint; +} +extern "C" { + pub fn snd_hwdep_dsp_status_get_dsp_loaded( + obj: *const snd_hwdep_dsp_status_t, + ) -> ::std::os::raw::c_uint; +} +extern "C" { + pub fn snd_hwdep_dsp_status_get_chip_ready( + obj: *const snd_hwdep_dsp_status_t, + ) -> ::std::os::raw::c_uint; +} +extern "C" { + pub fn snd_hwdep_dsp_image_sizeof() -> usize; +} +extern "C" { + pub fn snd_hwdep_dsp_image_malloc( + ptr: *mut *mut snd_hwdep_dsp_image_t, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_hwdep_dsp_image_free(obj: *mut snd_hwdep_dsp_image_t); +} +extern "C" { + pub fn snd_hwdep_dsp_image_copy( + dst: *mut snd_hwdep_dsp_image_t, + src: *const snd_hwdep_dsp_image_t, + ); +} +extern "C" { + pub fn snd_hwdep_dsp_image_get_index( + obj: *const snd_hwdep_dsp_image_t, + ) -> ::std::os::raw::c_uint; +} +extern "C" { + pub fn snd_hwdep_dsp_image_get_name( + obj: *const snd_hwdep_dsp_image_t, + ) -> *const ::std::os::raw::c_char; +} +extern "C" { + pub fn snd_hwdep_dsp_image_get_image( + obj: *const snd_hwdep_dsp_image_t, + ) -> *const ::std::os::raw::c_void; +} +extern "C" { + pub fn snd_hwdep_dsp_image_get_length(obj: *const snd_hwdep_dsp_image_t) -> usize; +} +extern "C" { + pub fn snd_hwdep_dsp_image_set_index( + obj: *mut snd_hwdep_dsp_image_t, + _index: ::std::os::raw::c_uint, + ); +} +extern "C" { + pub fn snd_hwdep_dsp_image_set_name( + obj: *mut snd_hwdep_dsp_image_t, + name: *const ::std::os::raw::c_char, + ); +} +extern "C" { + pub fn snd_hwdep_dsp_image_set_image( + obj: *mut snd_hwdep_dsp_image_t, + buffer: *mut ::std::os::raw::c_void, + ); +} +extern "C" { + pub fn snd_hwdep_dsp_image_set_length(obj: *mut snd_hwdep_dsp_image_t, length: usize); +} +#[doc = " IEC958 structure"] +#[repr(C)] +#[derive(Copy, Clone)] +pub struct snd_aes_iec958 { + #[doc = "< AES/IEC958 channel status bits"] + pub status: [::std::os::raw::c_uchar; 24usize], + #[doc = "< AES/IEC958 subcode bits"] + pub subcode: [::std::os::raw::c_uchar; 147usize], + #[doc = "< nothing"] + pub pad: ::std::os::raw::c_uchar, + #[doc = "< AES/IEC958 subframe bits"] + pub dig_subframe: [::std::os::raw::c_uchar; 4usize], +} +#[doc = " IEC958 structure"] +pub type snd_aes_iec958_t = snd_aes_iec958; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct _snd_ctl_card_info { + _unused: [u8; 0], +} +#[doc = " CTL card info container"] +pub type snd_ctl_card_info_t = _snd_ctl_card_info; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct _snd_ctl_elem_id { + _unused: [u8; 0], +} +#[doc = " CTL element identifier container"] +pub type snd_ctl_elem_id_t = _snd_ctl_elem_id; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct _snd_ctl_elem_list { + _unused: [u8; 0], +} +#[doc = " CTL element list container"] +#[doc = ""] +#[doc = " This is a list of CTL elements. The list contains management"] +#[doc = " information (e.g. how many elements the sound card has) as well as"] +#[doc = " the element identifiers. All functions which operate on the list"] +#[doc = " are named snd_ctl_elem_list_*()."] +#[doc = ""] +#[doc = " \\par Memory management"] +#[doc = ""] +#[doc = " There are two memory areas to deal with: The list container itself"] +#[doc = " and the memory for the element identifiers."] +#[doc = ""] +#[doc = " To manage the area for the list container, the following functions"] +#[doc = " are used:"] +#[doc = ""] +#[doc = " - snd_ctl_elem_list_malloc() / snd_ctl_elem_list_free() to allocate"] +#[doc = " and free memory on the heap, or"] +#[doc = " - snd_ctl_elem_list_alloca() to allocate the memory on the"] +#[doc = " stack. This memory is auto-released when the stack is unwound."] +#[doc = ""] +#[doc = " To manage the space for the element identifiers, the"] +#[doc = " snd_ctl_elem_list_alloc_space() and snd_ctl_elem_list_free_space()"] +#[doc = " are used. Allocating the right amount of space can be achieved by"] +#[doc = " first obtaining the number of elements and then calling"] +#[doc = " snd_ctl_elem_list_alloc_space():"] +#[doc = ""] +#[doc = " \\code"] +#[doc = " snd_ctl_elem_list_t* list;"] +#[doc = " int count;"] +#[doc = ""] +#[doc = " // Initialise list"] +#[doc = " snd_ctl_elem_list_malloc(&list);"] +#[doc = ""] +#[doc = " // Get number of elements"] +#[doc = " snd_ctl_elem_list(ctl, list);"] +#[doc = " count = snd_ctl_elem_list_get_count(list);"] +#[doc = ""] +#[doc = " // Allocate space for identifiers"] +#[doc = " snd_ctl_elem_list_alloc_space(list, count);"] +#[doc = ""] +#[doc = " // Get identifiers"] +#[doc = " snd_ctl_elem_list(ctl, list); // yes, this is same as above :)"] +#[doc = ""] +#[doc = " // Do something useful with the list..."] +#[doc = ""] +#[doc = " // Cleanup"] +#[doc = " snd_ctl_elem_list_free_space(list);"] +#[doc = " snd_ctl_elem_list_free(list);"] +#[doc = " \\endcode"] +#[doc = ""] +#[doc = ""] +#[doc = " \\par The Elements"] +#[doc = ""] +#[doc = " The elements in the list are accessed using an index. This index is"] +#[doc = " the location in the list; Don't confuse it with the 'index' of the"] +#[doc = " element identifier. For example:"] +#[doc = ""] +#[doc = " \\code"] +#[doc = " snd_ctl_elem_list_t list;"] +#[doc = " unsigned int element_index;"] +#[doc = ""] +#[doc = " // Allocate space, fill list ..."] +#[doc = ""] +#[doc = " element_index = snd_ctl_elem_list_get_index(&list, 2);"] +#[doc = " \\endcode"] +#[doc = ""] +#[doc = " This will access the 3rd element in the list (index=2) and get the"] +#[doc = " elements index from the driver (which might be 13, for example)."] +pub type snd_ctl_elem_list_t = _snd_ctl_elem_list; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct _snd_ctl_elem_info { + _unused: [u8; 0], +} +#[doc = " CTL element info container"] +pub type snd_ctl_elem_info_t = _snd_ctl_elem_info; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct _snd_ctl_elem_value { + _unused: [u8; 0], +} +#[doc = " CTL element value container"] +#[doc = ""] +#[doc = " Contains the value(s) (i.e. members) of a single element. All"] +#[doc = " values of a given element are of the same type."] +#[doc = ""] +#[doc = " \\par Memory management"] +#[doc = ""] +#[doc = " To access a value, a snd_ctl_elem_value_t must be allocated using"] +#[doc = " snd_ctl_elem_value_alloca() or snd_ctl_elem_value_malloc(). When"] +#[doc = " using the latter, it must be freed again using"] +#[doc = " snd_ctl_elem_value_free()."] +#[doc = ""] +#[doc = " \\par Identifier"] +#[doc = ""] +#[doc = " Then, the ID must be filled. It is sufficient to fill only the"] +#[doc = " numid, if known. Otherwise, interface type, device, subdevice,"] +#[doc = " name, index must all be given. The following functions can be used"] +#[doc = " to fill the ID:"] +#[doc = ""] +#[doc = " - snd_ctl_elem_value_set_id(): Set the ID. Requires an"] +#[doc = " snd_ctl_elem_id_t object."] +#[doc = " - snd_ctl_elem_value_set_numid(): Set the numid."] +#[doc = " - Or use all of the following:"] +#[doc = ""] +#[doc = " - snd_ctl_elem_value_set_interface()"] +#[doc = " - snd_ctl_elem_value_set_device()"] +#[doc = " - snd_ctl_elem_value_set_subdevice()"] +#[doc = " - snd_ctl_elem_value_set_name()"] +#[doc = " - snd_ctl_elem_value_set_index()"] +#[doc = ""] +#[doc = " When communicating with the driver (snd_ctl_elem_read(),"] +#[doc = " snd_ctl_elem_write()), and the numid was given, the interface,"] +#[doc = " device, ... are filled (even if you set the before). When the numid"] +#[doc = " is unset (i.e. it is 0), it is filled."] +#[doc = ""] +#[doc = " \\par Communicating with the driver"] +#[doc = ""] +#[doc = " After the value container was created and filled with the ID of the"] +#[doc = " desired element, the value(s) can be fetched from the driver (and"] +#[doc = " thus from the hardware) or written to the driver."] +#[doc = ""] +#[doc = " To fetch a value, use snd_ctl_elem_read(). Thereafter, use the"] +#[doc = " snd_ctl_elem_value_get_*() functions to obtain the actual value."] +#[doc = ""] +#[doc = " To write a new value, first use a snd_ctl_elem_value_set_*() to set"] +#[doc = " it, then call snd_ctl_elem_write() to write it to the driver."] +pub type snd_ctl_elem_value_t = _snd_ctl_elem_value; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct _snd_ctl_event { + _unused: [u8; 0], +} +#[doc = " CTL event container"] +pub type snd_ctl_event_t = _snd_ctl_event; +#[doc = " Invalid type"] +pub const SND_CTL_ELEM_TYPE_NONE: _snd_ctl_elem_type = 0; +#[doc = " Boolean contents"] +pub const SND_CTL_ELEM_TYPE_BOOLEAN: _snd_ctl_elem_type = 1; +#[doc = " Integer contents"] +pub const SND_CTL_ELEM_TYPE_INTEGER: _snd_ctl_elem_type = 2; +#[doc = " Enumerated contents"] +pub const SND_CTL_ELEM_TYPE_ENUMERATED: _snd_ctl_elem_type = 3; +#[doc = " Bytes contents"] +pub const SND_CTL_ELEM_TYPE_BYTES: _snd_ctl_elem_type = 4; +#[doc = " IEC958 (S/PDIF) setting content"] +pub const SND_CTL_ELEM_TYPE_IEC958: _snd_ctl_elem_type = 5; +#[doc = " 64-bit integer contents"] +pub const SND_CTL_ELEM_TYPE_INTEGER64: _snd_ctl_elem_type = 6; +#[doc = " 64-bit integer contents"] +pub const SND_CTL_ELEM_TYPE_LAST: _snd_ctl_elem_type = 6; +#[doc = " CTL element type"] +pub type _snd_ctl_elem_type = u32; +#[doc = " CTL element type"] +pub use self::_snd_ctl_elem_type as snd_ctl_elem_type_t; +#[doc = " Card level"] +pub const SND_CTL_ELEM_IFACE_CARD: _snd_ctl_elem_iface = 0; +#[doc = " Hardware dependent device"] +pub const SND_CTL_ELEM_IFACE_HWDEP: _snd_ctl_elem_iface = 1; +#[doc = " Mixer"] +pub const SND_CTL_ELEM_IFACE_MIXER: _snd_ctl_elem_iface = 2; +#[doc = " PCM"] +pub const SND_CTL_ELEM_IFACE_PCM: _snd_ctl_elem_iface = 3; +#[doc = " RawMidi"] +pub const SND_CTL_ELEM_IFACE_RAWMIDI: _snd_ctl_elem_iface = 4; +#[doc = " Timer"] +pub const SND_CTL_ELEM_IFACE_TIMER: _snd_ctl_elem_iface = 5; +#[doc = " Sequencer"] +pub const SND_CTL_ELEM_IFACE_SEQUENCER: _snd_ctl_elem_iface = 6; +#[doc = " Sequencer"] +pub const SND_CTL_ELEM_IFACE_LAST: _snd_ctl_elem_iface = 6; +#[doc = " CTL related interface"] +pub type _snd_ctl_elem_iface = u32; +#[doc = " CTL related interface"] +pub use self::_snd_ctl_elem_iface as snd_ctl_elem_iface_t; +#[doc = " Elements related event"] +pub const SND_CTL_EVENT_ELEM: _snd_ctl_event_type = 0; +#[doc = " Elements related event"] +pub const SND_CTL_EVENT_LAST: _snd_ctl_event_type = 0; +#[doc = " Event class"] +pub type _snd_ctl_event_type = u32; +#[doc = " Event class"] +pub use self::_snd_ctl_event_type as snd_ctl_event_type_t; +#[doc = " Kernel level CTL"] +pub const SND_CTL_TYPE_HW: _snd_ctl_type = 0; +#[doc = " Shared memory client CTL"] +pub const SND_CTL_TYPE_SHM: _snd_ctl_type = 1; +#[doc = " INET client CTL (not yet implemented)"] +pub const SND_CTL_TYPE_INET: _snd_ctl_type = 2; +#[doc = " External control plugin"] +pub const SND_CTL_TYPE_EXT: _snd_ctl_type = 3; +#[doc = " CTL type"] +pub type _snd_ctl_type = u32; +#[doc = " CTL type"] +pub use self::_snd_ctl_type as snd_ctl_type_t; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct _snd_ctl { + _unused: [u8; 0], +} +#[doc = " CTL handle"] +pub type snd_ctl_t = _snd_ctl; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct _snd_sctl { + _unused: [u8; 0], +} +#[doc = " SCTL type"] +pub type snd_sctl_t = _snd_sctl; +extern "C" { + pub fn snd_card_load(card: ::std::os::raw::c_int) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_card_next(card: *mut ::std::os::raw::c_int) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_card_get_index(name: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_card_get_name( + card: ::std::os::raw::c_int, + name: *mut *mut ::std::os::raw::c_char, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_card_get_longname( + card: ::std::os::raw::c_int, + name: *mut *mut ::std::os::raw::c_char, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_device_name_hint( + card: ::std::os::raw::c_int, + iface: *const ::std::os::raw::c_char, + hints: *mut *mut *mut ::std::os::raw::c_void, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_device_name_free_hint( + hints: *mut *mut ::std::os::raw::c_void, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_device_name_get_hint( + hint: *const ::std::os::raw::c_void, + id: *const ::std::os::raw::c_char, + ) -> *mut ::std::os::raw::c_char; +} +extern "C" { + pub fn snd_ctl_open( + ctl: *mut *mut snd_ctl_t, + name: *const ::std::os::raw::c_char, + mode: ::std::os::raw::c_int, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_ctl_open_lconf( + ctl: *mut *mut snd_ctl_t, + name: *const ::std::os::raw::c_char, + mode: ::std::os::raw::c_int, + lconf: *mut snd_config_t, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_ctl_open_fallback( + ctl: *mut *mut snd_ctl_t, + root: *mut snd_config_t, + name: *const ::std::os::raw::c_char, + orig_name: *const ::std::os::raw::c_char, + mode: ::std::os::raw::c_int, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_ctl_close(ctl: *mut snd_ctl_t) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_ctl_nonblock( + ctl: *mut snd_ctl_t, + nonblock: ::std::os::raw::c_int, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_async_add_ctl_handler( + handler: *mut *mut snd_async_handler_t, + ctl: *mut snd_ctl_t, + callback: snd_async_callback_t, + private_data: *mut ::std::os::raw::c_void, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_async_handler_get_ctl(handler: *mut snd_async_handler_t) -> *mut snd_ctl_t; +} +extern "C" { + pub fn snd_ctl_poll_descriptors_count(ctl: *mut snd_ctl_t) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_ctl_poll_descriptors( + ctl: *mut snd_ctl_t, + pfds: *mut pollfd, + space: ::std::os::raw::c_uint, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_ctl_poll_descriptors_revents( + ctl: *mut snd_ctl_t, + pfds: *mut pollfd, + nfds: ::std::os::raw::c_uint, + revents: *mut ::std::os::raw::c_ushort, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_ctl_subscribe_events( + ctl: *mut snd_ctl_t, + subscribe: ::std::os::raw::c_int, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_ctl_card_info( + ctl: *mut snd_ctl_t, + info: *mut snd_ctl_card_info_t, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_ctl_elem_list( + ctl: *mut snd_ctl_t, + list: *mut snd_ctl_elem_list_t, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_ctl_elem_info( + ctl: *mut snd_ctl_t, + info: *mut snd_ctl_elem_info_t, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_ctl_elem_read( + ctl: *mut snd_ctl_t, + data: *mut snd_ctl_elem_value_t, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_ctl_elem_write( + ctl: *mut snd_ctl_t, + data: *mut snd_ctl_elem_value_t, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_ctl_elem_lock( + ctl: *mut snd_ctl_t, + id: *mut snd_ctl_elem_id_t, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_ctl_elem_unlock( + ctl: *mut snd_ctl_t, + id: *mut snd_ctl_elem_id_t, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_ctl_elem_tlv_read( + ctl: *mut snd_ctl_t, + id: *const snd_ctl_elem_id_t, + tlv: *mut ::std::os::raw::c_uint, + tlv_size: ::std::os::raw::c_uint, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_ctl_elem_tlv_write( + ctl: *mut snd_ctl_t, + id: *const snd_ctl_elem_id_t, + tlv: *const ::std::os::raw::c_uint, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_ctl_elem_tlv_command( + ctl: *mut snd_ctl_t, + id: *const snd_ctl_elem_id_t, + tlv: *const ::std::os::raw::c_uint, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_ctl_hwdep_next_device( + ctl: *mut snd_ctl_t, + device: *mut ::std::os::raw::c_int, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_ctl_hwdep_info( + ctl: *mut snd_ctl_t, + info: *mut snd_hwdep_info_t, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_ctl_pcm_next_device( + ctl: *mut snd_ctl_t, + device: *mut ::std::os::raw::c_int, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_ctl_pcm_info( + ctl: *mut snd_ctl_t, + info: *mut snd_pcm_info_t, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_ctl_pcm_prefer_subdevice( + ctl: *mut snd_ctl_t, + subdev: ::std::os::raw::c_int, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_ctl_rawmidi_next_device( + ctl: *mut snd_ctl_t, + device: *mut ::std::os::raw::c_int, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_ctl_rawmidi_info( + ctl: *mut snd_ctl_t, + info: *mut snd_rawmidi_info_t, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_ctl_rawmidi_prefer_subdevice( + ctl: *mut snd_ctl_t, + subdev: ::std::os::raw::c_int, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_ctl_set_power_state( + ctl: *mut snd_ctl_t, + state: ::std::os::raw::c_uint, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_ctl_get_power_state( + ctl: *mut snd_ctl_t, + state: *mut ::std::os::raw::c_uint, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_ctl_read(ctl: *mut snd_ctl_t, event: *mut snd_ctl_event_t) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_ctl_wait( + ctl: *mut snd_ctl_t, + timeout: ::std::os::raw::c_int, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_ctl_name(ctl: *mut snd_ctl_t) -> *const ::std::os::raw::c_char; +} +extern "C" { + pub fn snd_ctl_type(ctl: *mut snd_ctl_t) -> snd_ctl_type_t; +} +extern "C" { + pub fn snd_ctl_elem_type_name(type_: snd_ctl_elem_type_t) -> *const ::std::os::raw::c_char; +} +extern "C" { + pub fn snd_ctl_elem_iface_name(iface: snd_ctl_elem_iface_t) -> *const ::std::os::raw::c_char; +} +extern "C" { + pub fn snd_ctl_event_type_name(type_: snd_ctl_event_type_t) -> *const ::std::os::raw::c_char; +} +extern "C" { + pub fn snd_ctl_event_elem_get_mask(obj: *const snd_ctl_event_t) -> ::std::os::raw::c_uint; +} +extern "C" { + pub fn snd_ctl_event_elem_get_numid(obj: *const snd_ctl_event_t) -> ::std::os::raw::c_uint; +} +extern "C" { + pub fn snd_ctl_event_elem_get_id(obj: *const snd_ctl_event_t, ptr: *mut snd_ctl_elem_id_t); +} +extern "C" { + pub fn snd_ctl_event_elem_get_interface(obj: *const snd_ctl_event_t) -> snd_ctl_elem_iface_t; +} +extern "C" { + pub fn snd_ctl_event_elem_get_device(obj: *const snd_ctl_event_t) -> ::std::os::raw::c_uint; +} +extern "C" { + pub fn snd_ctl_event_elem_get_subdevice(obj: *const snd_ctl_event_t) -> ::std::os::raw::c_uint; +} +extern "C" { + pub fn snd_ctl_event_elem_get_name( + obj: *const snd_ctl_event_t, + ) -> *const ::std::os::raw::c_char; +} +extern "C" { + pub fn snd_ctl_event_elem_get_index(obj: *const snd_ctl_event_t) -> ::std::os::raw::c_uint; +} +extern "C" { + pub fn snd_ctl_elem_list_alloc_space( + obj: *mut snd_ctl_elem_list_t, + entries: ::std::os::raw::c_uint, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_ctl_elem_list_free_space(obj: *mut snd_ctl_elem_list_t); +} +extern "C" { + pub fn snd_ctl_ascii_elem_id_get(id: *mut snd_ctl_elem_id_t) -> *mut ::std::os::raw::c_char; +} +extern "C" { + pub fn snd_ctl_ascii_elem_id_parse( + dst: *mut snd_ctl_elem_id_t, + str: *const ::std::os::raw::c_char, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_ctl_ascii_value_parse( + handle: *mut snd_ctl_t, + dst: *mut snd_ctl_elem_value_t, + info: *mut snd_ctl_elem_info_t, + value: *const ::std::os::raw::c_char, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_ctl_elem_id_sizeof() -> usize; +} +extern "C" { + pub fn snd_ctl_elem_id_malloc(ptr: *mut *mut snd_ctl_elem_id_t) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_ctl_elem_id_free(obj: *mut snd_ctl_elem_id_t); +} +extern "C" { + pub fn snd_ctl_elem_id_clear(obj: *mut snd_ctl_elem_id_t); +} +extern "C" { + pub fn snd_ctl_elem_id_copy(dst: *mut snd_ctl_elem_id_t, src: *const snd_ctl_elem_id_t); +} +extern "C" { + pub fn snd_ctl_elem_id_get_numid(obj: *const snd_ctl_elem_id_t) -> ::std::os::raw::c_uint; +} +extern "C" { + pub fn snd_ctl_elem_id_get_interface(obj: *const snd_ctl_elem_id_t) -> snd_ctl_elem_iface_t; +} +extern "C" { + pub fn snd_ctl_elem_id_get_device(obj: *const snd_ctl_elem_id_t) -> ::std::os::raw::c_uint; +} +extern "C" { + pub fn snd_ctl_elem_id_get_subdevice(obj: *const snd_ctl_elem_id_t) -> ::std::os::raw::c_uint; +} +extern "C" { + pub fn snd_ctl_elem_id_get_name(obj: *const snd_ctl_elem_id_t) + -> *const ::std::os::raw::c_char; +} +extern "C" { + pub fn snd_ctl_elem_id_get_index(obj: *const snd_ctl_elem_id_t) -> ::std::os::raw::c_uint; +} +extern "C" { + pub fn snd_ctl_elem_id_set_numid(obj: *mut snd_ctl_elem_id_t, val: ::std::os::raw::c_uint); +} +extern "C" { + pub fn snd_ctl_elem_id_set_interface(obj: *mut snd_ctl_elem_id_t, val: snd_ctl_elem_iface_t); +} +extern "C" { + pub fn snd_ctl_elem_id_set_device(obj: *mut snd_ctl_elem_id_t, val: ::std::os::raw::c_uint); +} +extern "C" { + pub fn snd_ctl_elem_id_set_subdevice(obj: *mut snd_ctl_elem_id_t, val: ::std::os::raw::c_uint); +} +extern "C" { + pub fn snd_ctl_elem_id_set_name( + obj: *mut snd_ctl_elem_id_t, + val: *const ::std::os::raw::c_char, + ); +} +extern "C" { + pub fn snd_ctl_elem_id_set_index(obj: *mut snd_ctl_elem_id_t, val: ::std::os::raw::c_uint); +} +extern "C" { + pub fn snd_ctl_card_info_sizeof() -> usize; +} +extern "C" { + pub fn snd_ctl_card_info_malloc(ptr: *mut *mut snd_ctl_card_info_t) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_ctl_card_info_free(obj: *mut snd_ctl_card_info_t); +} +extern "C" { + pub fn snd_ctl_card_info_clear(obj: *mut snd_ctl_card_info_t); +} +extern "C" { + pub fn snd_ctl_card_info_copy(dst: *mut snd_ctl_card_info_t, src: *const snd_ctl_card_info_t); +} +extern "C" { + pub fn snd_ctl_card_info_get_card(obj: *const snd_ctl_card_info_t) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_ctl_card_info_get_id( + obj: *const snd_ctl_card_info_t, + ) -> *const ::std::os::raw::c_char; +} +extern "C" { + pub fn snd_ctl_card_info_get_driver( + obj: *const snd_ctl_card_info_t, + ) -> *const ::std::os::raw::c_char; +} +extern "C" { + pub fn snd_ctl_card_info_get_name( + obj: *const snd_ctl_card_info_t, + ) -> *const ::std::os::raw::c_char; +} +extern "C" { + pub fn snd_ctl_card_info_get_longname( + obj: *const snd_ctl_card_info_t, + ) -> *const ::std::os::raw::c_char; +} +extern "C" { + pub fn snd_ctl_card_info_get_mixername( + obj: *const snd_ctl_card_info_t, + ) -> *const ::std::os::raw::c_char; +} +extern "C" { + pub fn snd_ctl_card_info_get_components( + obj: *const snd_ctl_card_info_t, + ) -> *const ::std::os::raw::c_char; +} +extern "C" { + pub fn snd_ctl_event_sizeof() -> usize; +} +extern "C" { + pub fn snd_ctl_event_malloc(ptr: *mut *mut snd_ctl_event_t) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_ctl_event_free(obj: *mut snd_ctl_event_t); +} +extern "C" { + pub fn snd_ctl_event_clear(obj: *mut snd_ctl_event_t); +} +extern "C" { + pub fn snd_ctl_event_copy(dst: *mut snd_ctl_event_t, src: *const snd_ctl_event_t); +} +extern "C" { + pub fn snd_ctl_event_get_type(obj: *const snd_ctl_event_t) -> snd_ctl_event_type_t; +} +extern "C" { + pub fn snd_ctl_elem_list_sizeof() -> usize; +} +extern "C" { + pub fn snd_ctl_elem_list_malloc(ptr: *mut *mut snd_ctl_elem_list_t) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_ctl_elem_list_free(obj: *mut snd_ctl_elem_list_t); +} +extern "C" { + pub fn snd_ctl_elem_list_clear(obj: *mut snd_ctl_elem_list_t); +} +extern "C" { + pub fn snd_ctl_elem_list_copy(dst: *mut snd_ctl_elem_list_t, src: *const snd_ctl_elem_list_t); +} +extern "C" { + pub fn snd_ctl_elem_list_set_offset(obj: *mut snd_ctl_elem_list_t, val: ::std::os::raw::c_uint); +} +extern "C" { + pub fn snd_ctl_elem_list_get_used(obj: *const snd_ctl_elem_list_t) -> ::std::os::raw::c_uint; +} +extern "C" { + pub fn snd_ctl_elem_list_get_count(obj: *const snd_ctl_elem_list_t) -> ::std::os::raw::c_uint; +} +extern "C" { + pub fn snd_ctl_elem_list_get_id( + obj: *const snd_ctl_elem_list_t, + idx: ::std::os::raw::c_uint, + ptr: *mut snd_ctl_elem_id_t, + ); +} +extern "C" { + pub fn snd_ctl_elem_list_get_numid( + obj: *const snd_ctl_elem_list_t, + idx: ::std::os::raw::c_uint, + ) -> ::std::os::raw::c_uint; +} +extern "C" { + pub fn snd_ctl_elem_list_get_interface( + obj: *const snd_ctl_elem_list_t, + idx: ::std::os::raw::c_uint, + ) -> snd_ctl_elem_iface_t; +} +extern "C" { + pub fn snd_ctl_elem_list_get_device( + obj: *const snd_ctl_elem_list_t, + idx: ::std::os::raw::c_uint, + ) -> ::std::os::raw::c_uint; +} +extern "C" { + pub fn snd_ctl_elem_list_get_subdevice( + obj: *const snd_ctl_elem_list_t, + idx: ::std::os::raw::c_uint, + ) -> ::std::os::raw::c_uint; +} +extern "C" { + pub fn snd_ctl_elem_list_get_name( + obj: *const snd_ctl_elem_list_t, + idx: ::std::os::raw::c_uint, + ) -> *const ::std::os::raw::c_char; +} +extern "C" { + pub fn snd_ctl_elem_list_get_index( + obj: *const snd_ctl_elem_list_t, + idx: ::std::os::raw::c_uint, + ) -> ::std::os::raw::c_uint; +} +extern "C" { + pub fn snd_ctl_elem_info_sizeof() -> usize; +} +extern "C" { + pub fn snd_ctl_elem_info_malloc(ptr: *mut *mut snd_ctl_elem_info_t) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_ctl_elem_info_free(obj: *mut snd_ctl_elem_info_t); +} +extern "C" { + pub fn snd_ctl_elem_info_clear(obj: *mut snd_ctl_elem_info_t); +} +extern "C" { + pub fn snd_ctl_elem_info_copy(dst: *mut snd_ctl_elem_info_t, src: *const snd_ctl_elem_info_t); +} +extern "C" { + pub fn snd_ctl_elem_info_get_type(obj: *const snd_ctl_elem_info_t) -> snd_ctl_elem_type_t; +} +extern "C" { + pub fn snd_ctl_elem_info_is_readable(obj: *const snd_ctl_elem_info_t) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_ctl_elem_info_is_writable(obj: *const snd_ctl_elem_info_t) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_ctl_elem_info_is_volatile(obj: *const snd_ctl_elem_info_t) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_ctl_elem_info_is_inactive(obj: *const snd_ctl_elem_info_t) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_ctl_elem_info_is_locked(obj: *const snd_ctl_elem_info_t) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_ctl_elem_info_is_tlv_readable( + obj: *const snd_ctl_elem_info_t, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_ctl_elem_info_is_tlv_writable( + obj: *const snd_ctl_elem_info_t, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_ctl_elem_info_is_tlv_commandable( + obj: *const snd_ctl_elem_info_t, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_ctl_elem_info_is_owner(obj: *const snd_ctl_elem_info_t) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_ctl_elem_info_is_user(obj: *const snd_ctl_elem_info_t) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_ctl_elem_info_get_owner(obj: *const snd_ctl_elem_info_t) -> pid_t; +} +extern "C" { + pub fn snd_ctl_elem_info_get_count(obj: *const snd_ctl_elem_info_t) -> ::std::os::raw::c_uint; +} +extern "C" { + pub fn snd_ctl_elem_info_get_min(obj: *const snd_ctl_elem_info_t) -> ::std::os::raw::c_long; +} +extern "C" { + pub fn snd_ctl_elem_info_get_max(obj: *const snd_ctl_elem_info_t) -> ::std::os::raw::c_long; +} +extern "C" { + pub fn snd_ctl_elem_info_get_step(obj: *const snd_ctl_elem_info_t) -> ::std::os::raw::c_long; +} +extern "C" { + pub fn snd_ctl_elem_info_get_min64( + obj: *const snd_ctl_elem_info_t, + ) -> ::std::os::raw::c_longlong; +} +extern "C" { + pub fn snd_ctl_elem_info_get_max64( + obj: *const snd_ctl_elem_info_t, + ) -> ::std::os::raw::c_longlong; +} +extern "C" { + pub fn snd_ctl_elem_info_get_step64( + obj: *const snd_ctl_elem_info_t, + ) -> ::std::os::raw::c_longlong; +} +extern "C" { + pub fn snd_ctl_elem_info_get_items(obj: *const snd_ctl_elem_info_t) -> ::std::os::raw::c_uint; +} +extern "C" { + pub fn snd_ctl_elem_info_set_item(obj: *mut snd_ctl_elem_info_t, val: ::std::os::raw::c_uint); +} +extern "C" { + pub fn snd_ctl_elem_info_get_item_name( + obj: *const snd_ctl_elem_info_t, + ) -> *const ::std::os::raw::c_char; +} +extern "C" { + pub fn snd_ctl_elem_info_get_dimensions( + obj: *const snd_ctl_elem_info_t, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_ctl_elem_info_get_dimension( + obj: *const snd_ctl_elem_info_t, + idx: ::std::os::raw::c_uint, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_ctl_elem_info_set_dimension( + info: *mut snd_ctl_elem_info_t, + dimension: *const ::std::os::raw::c_int, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_ctl_elem_info_get_id(obj: *const snd_ctl_elem_info_t, ptr: *mut snd_ctl_elem_id_t); +} +extern "C" { + pub fn snd_ctl_elem_info_get_numid(obj: *const snd_ctl_elem_info_t) -> ::std::os::raw::c_uint; +} +extern "C" { + pub fn snd_ctl_elem_info_get_interface(obj: *const snd_ctl_elem_info_t) + -> snd_ctl_elem_iface_t; +} +extern "C" { + pub fn snd_ctl_elem_info_get_device(obj: *const snd_ctl_elem_info_t) -> ::std::os::raw::c_uint; +} +extern "C" { + pub fn snd_ctl_elem_info_get_subdevice( + obj: *const snd_ctl_elem_info_t, + ) -> ::std::os::raw::c_uint; +} +extern "C" { + pub fn snd_ctl_elem_info_get_name( + obj: *const snd_ctl_elem_info_t, + ) -> *const ::std::os::raw::c_char; +} +extern "C" { + pub fn snd_ctl_elem_info_get_index(obj: *const snd_ctl_elem_info_t) -> ::std::os::raw::c_uint; +} +extern "C" { + pub fn snd_ctl_elem_info_set_id(obj: *mut snd_ctl_elem_info_t, ptr: *const snd_ctl_elem_id_t); +} +extern "C" { + pub fn snd_ctl_elem_info_set_numid(obj: *mut snd_ctl_elem_info_t, val: ::std::os::raw::c_uint); +} +extern "C" { + pub fn snd_ctl_elem_info_set_interface( + obj: *mut snd_ctl_elem_info_t, + val: snd_ctl_elem_iface_t, + ); +} +extern "C" { + pub fn snd_ctl_elem_info_set_device(obj: *mut snd_ctl_elem_info_t, val: ::std::os::raw::c_uint); +} +extern "C" { + pub fn snd_ctl_elem_info_set_subdevice( + obj: *mut snd_ctl_elem_info_t, + val: ::std::os::raw::c_uint, + ); +} +extern "C" { + pub fn snd_ctl_elem_info_set_name( + obj: *mut snd_ctl_elem_info_t, + val: *const ::std::os::raw::c_char, + ); +} +extern "C" { + pub fn snd_ctl_elem_info_set_index(obj: *mut snd_ctl_elem_info_t, val: ::std::os::raw::c_uint); +} +extern "C" { + pub fn snd_ctl_add_integer_elem_set( + ctl: *mut snd_ctl_t, + info: *mut snd_ctl_elem_info_t, + element_count: ::std::os::raw::c_uint, + member_count: ::std::os::raw::c_uint, + min: ::std::os::raw::c_long, + max: ::std::os::raw::c_long, + step: ::std::os::raw::c_long, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_ctl_add_integer64_elem_set( + ctl: *mut snd_ctl_t, + info: *mut snd_ctl_elem_info_t, + element_count: ::std::os::raw::c_uint, + member_count: ::std::os::raw::c_uint, + min: ::std::os::raw::c_longlong, + max: ::std::os::raw::c_longlong, + step: ::std::os::raw::c_longlong, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_ctl_add_boolean_elem_set( + ctl: *mut snd_ctl_t, + info: *mut snd_ctl_elem_info_t, + element_count: ::std::os::raw::c_uint, + member_count: ::std::os::raw::c_uint, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_ctl_add_enumerated_elem_set( + ctl: *mut snd_ctl_t, + info: *mut snd_ctl_elem_info_t, + element_count: ::std::os::raw::c_uint, + member_count: ::std::os::raw::c_uint, + items: ::std::os::raw::c_uint, + labels: *const *const ::std::os::raw::c_char, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_ctl_add_bytes_elem_set( + ctl: *mut snd_ctl_t, + info: *mut snd_ctl_elem_info_t, + element_count: ::std::os::raw::c_uint, + member_count: ::std::os::raw::c_uint, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_ctl_elem_add_integer( + ctl: *mut snd_ctl_t, + id: *const snd_ctl_elem_id_t, + count: ::std::os::raw::c_uint, + imin: ::std::os::raw::c_long, + imax: ::std::os::raw::c_long, + istep: ::std::os::raw::c_long, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_ctl_elem_add_integer64( + ctl: *mut snd_ctl_t, + id: *const snd_ctl_elem_id_t, + count: ::std::os::raw::c_uint, + imin: ::std::os::raw::c_longlong, + imax: ::std::os::raw::c_longlong, + istep: ::std::os::raw::c_longlong, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_ctl_elem_add_boolean( + ctl: *mut snd_ctl_t, + id: *const snd_ctl_elem_id_t, + count: ::std::os::raw::c_uint, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_ctl_elem_add_enumerated( + ctl: *mut snd_ctl_t, + id: *const snd_ctl_elem_id_t, + count: ::std::os::raw::c_uint, + items: ::std::os::raw::c_uint, + names: *const *const ::std::os::raw::c_char, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_ctl_elem_add_iec958( + ctl: *mut snd_ctl_t, + id: *const snd_ctl_elem_id_t, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_ctl_elem_remove( + ctl: *mut snd_ctl_t, + id: *mut snd_ctl_elem_id_t, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_ctl_elem_value_sizeof() -> usize; +} +extern "C" { + pub fn snd_ctl_elem_value_malloc(ptr: *mut *mut snd_ctl_elem_value_t) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_ctl_elem_value_free(obj: *mut snd_ctl_elem_value_t); +} +extern "C" { + pub fn snd_ctl_elem_value_clear(obj: *mut snd_ctl_elem_value_t); +} +extern "C" { + pub fn snd_ctl_elem_value_copy( + dst: *mut snd_ctl_elem_value_t, + src: *const snd_ctl_elem_value_t, + ); +} +extern "C" { + pub fn snd_ctl_elem_value_compare( + left: *mut snd_ctl_elem_value_t, + right: *const snd_ctl_elem_value_t, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_ctl_elem_value_get_id(obj: *const snd_ctl_elem_value_t, ptr: *mut snd_ctl_elem_id_t); +} +extern "C" { + pub fn snd_ctl_elem_value_get_numid(obj: *const snd_ctl_elem_value_t) + -> ::std::os::raw::c_uint; +} +extern "C" { + pub fn snd_ctl_elem_value_get_interface( + obj: *const snd_ctl_elem_value_t, + ) -> snd_ctl_elem_iface_t; +} +extern "C" { + pub fn snd_ctl_elem_value_get_device( + obj: *const snd_ctl_elem_value_t, + ) -> ::std::os::raw::c_uint; +} +extern "C" { + pub fn snd_ctl_elem_value_get_subdevice( + obj: *const snd_ctl_elem_value_t, + ) -> ::std::os::raw::c_uint; +} +extern "C" { + pub fn snd_ctl_elem_value_get_name( + obj: *const snd_ctl_elem_value_t, + ) -> *const ::std::os::raw::c_char; +} +extern "C" { + pub fn snd_ctl_elem_value_get_index(obj: *const snd_ctl_elem_value_t) + -> ::std::os::raw::c_uint; +} +extern "C" { + pub fn snd_ctl_elem_value_set_id(obj: *mut snd_ctl_elem_value_t, ptr: *const snd_ctl_elem_id_t); +} +extern "C" { + pub fn snd_ctl_elem_value_set_numid( + obj: *mut snd_ctl_elem_value_t, + val: ::std::os::raw::c_uint, + ); +} +extern "C" { + pub fn snd_ctl_elem_value_set_interface( + obj: *mut snd_ctl_elem_value_t, + val: snd_ctl_elem_iface_t, + ); +} +extern "C" { + pub fn snd_ctl_elem_value_set_device( + obj: *mut snd_ctl_elem_value_t, + val: ::std::os::raw::c_uint, + ); +} +extern "C" { + pub fn snd_ctl_elem_value_set_subdevice( + obj: *mut snd_ctl_elem_value_t, + val: ::std::os::raw::c_uint, + ); +} +extern "C" { + pub fn snd_ctl_elem_value_set_name( + obj: *mut snd_ctl_elem_value_t, + val: *const ::std::os::raw::c_char, + ); +} +extern "C" { + pub fn snd_ctl_elem_value_set_index( + obj: *mut snd_ctl_elem_value_t, + val: ::std::os::raw::c_uint, + ); +} +extern "C" { + pub fn snd_ctl_elem_value_get_boolean( + obj: *const snd_ctl_elem_value_t, + idx: ::std::os::raw::c_uint, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_ctl_elem_value_get_integer( + obj: *const snd_ctl_elem_value_t, + idx: ::std::os::raw::c_uint, + ) -> ::std::os::raw::c_long; +} +extern "C" { + pub fn snd_ctl_elem_value_get_integer64( + obj: *const snd_ctl_elem_value_t, + idx: ::std::os::raw::c_uint, + ) -> ::std::os::raw::c_longlong; +} +extern "C" { + pub fn snd_ctl_elem_value_get_enumerated( + obj: *const snd_ctl_elem_value_t, + idx: ::std::os::raw::c_uint, + ) -> ::std::os::raw::c_uint; +} +extern "C" { + pub fn snd_ctl_elem_value_get_byte( + obj: *const snd_ctl_elem_value_t, + idx: ::std::os::raw::c_uint, + ) -> ::std::os::raw::c_uchar; +} +extern "C" { + pub fn snd_ctl_elem_value_set_boolean( + obj: *mut snd_ctl_elem_value_t, + idx: ::std::os::raw::c_uint, + val: ::std::os::raw::c_long, + ); +} +extern "C" { + pub fn snd_ctl_elem_value_set_integer( + obj: *mut snd_ctl_elem_value_t, + idx: ::std::os::raw::c_uint, + val: ::std::os::raw::c_long, + ); +} +extern "C" { + pub fn snd_ctl_elem_value_set_integer64( + obj: *mut snd_ctl_elem_value_t, + idx: ::std::os::raw::c_uint, + val: ::std::os::raw::c_longlong, + ); +} +extern "C" { + pub fn snd_ctl_elem_value_set_enumerated( + obj: *mut snd_ctl_elem_value_t, + idx: ::std::os::raw::c_uint, + val: ::std::os::raw::c_uint, + ); +} +extern "C" { + pub fn snd_ctl_elem_value_set_byte( + obj: *mut snd_ctl_elem_value_t, + idx: ::std::os::raw::c_uint, + val: ::std::os::raw::c_uchar, + ); +} +extern "C" { + pub fn snd_ctl_elem_set_bytes( + obj: *mut snd_ctl_elem_value_t, + data: *mut ::std::os::raw::c_void, + size: usize, + ); +} +extern "C" { + pub fn snd_ctl_elem_value_get_bytes( + obj: *const snd_ctl_elem_value_t, + ) -> *const ::std::os::raw::c_void; +} +extern "C" { + pub fn snd_ctl_elem_value_get_iec958( + obj: *const snd_ctl_elem_value_t, + ptr: *mut snd_aes_iec958_t, + ); +} +extern "C" { + pub fn snd_ctl_elem_value_set_iec958( + obj: *mut snd_ctl_elem_value_t, + ptr: *const snd_aes_iec958_t, + ); +} +extern "C" { + pub fn snd_tlv_parse_dB_info( + tlv: *mut ::std::os::raw::c_uint, + tlv_size: ::std::os::raw::c_uint, + db_tlvp: *mut *mut ::std::os::raw::c_uint, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_tlv_get_dB_range( + tlv: *mut ::std::os::raw::c_uint, + rangemin: ::std::os::raw::c_long, + rangemax: ::std::os::raw::c_long, + min: *mut ::std::os::raw::c_long, + max: *mut ::std::os::raw::c_long, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_tlv_convert_to_dB( + tlv: *mut ::std::os::raw::c_uint, + rangemin: ::std::os::raw::c_long, + rangemax: ::std::os::raw::c_long, + volume: ::std::os::raw::c_long, + db_gain: *mut ::std::os::raw::c_long, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_tlv_convert_from_dB( + tlv: *mut ::std::os::raw::c_uint, + rangemin: ::std::os::raw::c_long, + rangemax: ::std::os::raw::c_long, + db_gain: ::std::os::raw::c_long, + value: *mut ::std::os::raw::c_long, + xdir: ::std::os::raw::c_int, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_ctl_get_dB_range( + ctl: *mut snd_ctl_t, + id: *const snd_ctl_elem_id_t, + min: *mut ::std::os::raw::c_long, + max: *mut ::std::os::raw::c_long, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_ctl_convert_to_dB( + ctl: *mut snd_ctl_t, + id: *const snd_ctl_elem_id_t, + volume: ::std::os::raw::c_long, + db_gain: *mut ::std::os::raw::c_long, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_ctl_convert_from_dB( + ctl: *mut snd_ctl_t, + id: *const snd_ctl_elem_id_t, + db_gain: ::std::os::raw::c_long, + value: *mut ::std::os::raw::c_long, + xdir: ::std::os::raw::c_int, + ) -> ::std::os::raw::c_int; +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct _snd_hctl_elem { + _unused: [u8; 0], +} +#[doc = " HCTL element handle"] +pub type snd_hctl_elem_t = _snd_hctl_elem; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct _snd_hctl { + _unused: [u8; 0], +} +#[doc = " HCTL handle"] +pub type snd_hctl_t = _snd_hctl; +#[doc = " \\brief Compare function for sorting HCTL elements"] +#[doc = " \\param e1 First element"] +#[doc = " \\param e2 Second element"] +#[doc = " \\return -1 if e1 < e2, 0 if e1 == e2, 1 if e1 > e2"] +pub type snd_hctl_compare_t = ::std::option::Option< + unsafe extern "C" fn( + e1: *const snd_hctl_elem_t, + e2: *const snd_hctl_elem_t, + ) -> ::std::os::raw::c_int, +>; +extern "C" { + pub fn snd_hctl_compare_fast( + c1: *const snd_hctl_elem_t, + c2: *const snd_hctl_elem_t, + ) -> ::std::os::raw::c_int; +} +#[doc = " \\brief HCTL callback function"] +#[doc = " \\param hctl HCTL handle"] +#[doc = " \\param mask event mask"] +#[doc = " \\param elem related HCTL element (if any)"] +#[doc = " \\return 0 on success otherwise a negative error code"] +pub type snd_hctl_callback_t = ::std::option::Option< + unsafe extern "C" fn( + hctl: *mut snd_hctl_t, + mask: ::std::os::raw::c_uint, + elem: *mut snd_hctl_elem_t, + ) -> ::std::os::raw::c_int, +>; +#[doc = " \\brief HCTL element callback function"] +#[doc = " \\param elem HCTL element"] +#[doc = " \\param mask event mask"] +#[doc = " \\return 0 on success otherwise a negative error code"] +pub type snd_hctl_elem_callback_t = ::std::option::Option< + unsafe extern "C" fn( + elem: *mut snd_hctl_elem_t, + mask: ::std::os::raw::c_uint, + ) -> ::std::os::raw::c_int, +>; +extern "C" { + pub fn snd_hctl_open( + hctl: *mut *mut snd_hctl_t, + name: *const ::std::os::raw::c_char, + mode: ::std::os::raw::c_int, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_hctl_open_ctl( + hctlp: *mut *mut snd_hctl_t, + ctl: *mut snd_ctl_t, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_hctl_close(hctl: *mut snd_hctl_t) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_hctl_nonblock( + hctl: *mut snd_hctl_t, + nonblock: ::std::os::raw::c_int, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_hctl_poll_descriptors_count(hctl: *mut snd_hctl_t) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_hctl_poll_descriptors( + hctl: *mut snd_hctl_t, + pfds: *mut pollfd, + space: ::std::os::raw::c_uint, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_hctl_poll_descriptors_revents( + ctl: *mut snd_hctl_t, + pfds: *mut pollfd, + nfds: ::std::os::raw::c_uint, + revents: *mut ::std::os::raw::c_ushort, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_hctl_get_count(hctl: *mut snd_hctl_t) -> ::std::os::raw::c_uint; +} +extern "C" { + pub fn snd_hctl_set_compare( + hctl: *mut snd_hctl_t, + hsort: snd_hctl_compare_t, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_hctl_first_elem(hctl: *mut snd_hctl_t) -> *mut snd_hctl_elem_t; +} +extern "C" { + pub fn snd_hctl_last_elem(hctl: *mut snd_hctl_t) -> *mut snd_hctl_elem_t; +} +extern "C" { + pub fn snd_hctl_find_elem( + hctl: *mut snd_hctl_t, + id: *const snd_ctl_elem_id_t, + ) -> *mut snd_hctl_elem_t; +} +extern "C" { + pub fn snd_hctl_set_callback(hctl: *mut snd_hctl_t, callback: snd_hctl_callback_t); +} +extern "C" { + pub fn snd_hctl_set_callback_private(hctl: *mut snd_hctl_t, data: *mut ::std::os::raw::c_void); +} +extern "C" { + pub fn snd_hctl_get_callback_private(hctl: *mut snd_hctl_t) -> *mut ::std::os::raw::c_void; +} +extern "C" { + pub fn snd_hctl_load(hctl: *mut snd_hctl_t) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_hctl_free(hctl: *mut snd_hctl_t) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_hctl_handle_events(hctl: *mut snd_hctl_t) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_hctl_name(hctl: *mut snd_hctl_t) -> *const ::std::os::raw::c_char; +} +extern "C" { + pub fn snd_hctl_wait( + hctl: *mut snd_hctl_t, + timeout: ::std::os::raw::c_int, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_hctl_ctl(hctl: *mut snd_hctl_t) -> *mut snd_ctl_t; +} +extern "C" { + pub fn snd_hctl_elem_next(elem: *mut snd_hctl_elem_t) -> *mut snd_hctl_elem_t; +} +extern "C" { + pub fn snd_hctl_elem_prev(elem: *mut snd_hctl_elem_t) -> *mut snd_hctl_elem_t; +} +extern "C" { + pub fn snd_hctl_elem_info( + elem: *mut snd_hctl_elem_t, + info: *mut snd_ctl_elem_info_t, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_hctl_elem_read( + elem: *mut snd_hctl_elem_t, + value: *mut snd_ctl_elem_value_t, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_hctl_elem_write( + elem: *mut snd_hctl_elem_t, + value: *mut snd_ctl_elem_value_t, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_hctl_elem_tlv_read( + elem: *mut snd_hctl_elem_t, + tlv: *mut ::std::os::raw::c_uint, + tlv_size: ::std::os::raw::c_uint, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_hctl_elem_tlv_write( + elem: *mut snd_hctl_elem_t, + tlv: *const ::std::os::raw::c_uint, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_hctl_elem_tlv_command( + elem: *mut snd_hctl_elem_t, + tlv: *const ::std::os::raw::c_uint, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_hctl_elem_get_hctl(elem: *mut snd_hctl_elem_t) -> *mut snd_hctl_t; +} +extern "C" { + pub fn snd_hctl_elem_get_id(obj: *const snd_hctl_elem_t, ptr: *mut snd_ctl_elem_id_t); +} +extern "C" { + pub fn snd_hctl_elem_get_numid(obj: *const snd_hctl_elem_t) -> ::std::os::raw::c_uint; +} +extern "C" { + pub fn snd_hctl_elem_get_interface(obj: *const snd_hctl_elem_t) -> snd_ctl_elem_iface_t; +} +extern "C" { + pub fn snd_hctl_elem_get_device(obj: *const snd_hctl_elem_t) -> ::std::os::raw::c_uint; +} +extern "C" { + pub fn snd_hctl_elem_get_subdevice(obj: *const snd_hctl_elem_t) -> ::std::os::raw::c_uint; +} +extern "C" { + pub fn snd_hctl_elem_get_name(obj: *const snd_hctl_elem_t) -> *const ::std::os::raw::c_char; +} +extern "C" { + pub fn snd_hctl_elem_get_index(obj: *const snd_hctl_elem_t) -> ::std::os::raw::c_uint; +} +extern "C" { + pub fn snd_hctl_elem_set_callback(obj: *mut snd_hctl_elem_t, val: snd_hctl_elem_callback_t); +} +extern "C" { + pub fn snd_hctl_elem_get_callback_private( + obj: *const snd_hctl_elem_t, + ) -> *mut ::std::os::raw::c_void; +} +extern "C" { + pub fn snd_hctl_elem_set_callback_private( + obj: *mut snd_hctl_elem_t, + val: *mut ::std::os::raw::c_void, + ); +} +extern "C" { + #[doc = " \\defgroup SControl Setup Control Interface"] + #[doc = " \\ingroup Control"] + #[doc = " The setup control interface - set or modify control elements from a configuration file."] + #[doc = " \\{"] + pub fn snd_sctl_build( + ctl: *mut *mut snd_sctl_t, + handle: *mut snd_ctl_t, + config: *mut snd_config_t, + private_data: *mut snd_config_t, + mode: ::std::os::raw::c_int, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_sctl_free(handle: *mut snd_sctl_t) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_sctl_install(handle: *mut snd_sctl_t) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_sctl_remove(handle: *mut snd_sctl_t) -> ::std::os::raw::c_int; +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct _snd_mixer { + _unused: [u8; 0], +} +#[doc = " Mixer handle"] +pub type snd_mixer_t = _snd_mixer; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct _snd_mixer_class { + _unused: [u8; 0], +} +#[doc = " Mixer elements class handle"] +pub type snd_mixer_class_t = _snd_mixer_class; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct _snd_mixer_elem { + _unused: [u8; 0], +} +#[doc = " Mixer element handle"] +pub type snd_mixer_elem_t = _snd_mixer_elem; +#[doc = " \\brief Mixer callback function"] +#[doc = " \\param mixer Mixer handle"] +#[doc = " \\param mask event mask"] +#[doc = " \\param elem related mixer element (if any)"] +#[doc = " \\return 0 on success otherwise a negative error code"] +pub type snd_mixer_callback_t = ::std::option::Option< + unsafe extern "C" fn( + ctl: *mut snd_mixer_t, + mask: ::std::os::raw::c_uint, + elem: *mut snd_mixer_elem_t, + ) -> ::std::os::raw::c_int, +>; +#[doc = " \\brief Mixer element callback function"] +#[doc = " \\param elem Mixer element"] +#[doc = " \\param mask event mask"] +#[doc = " \\return 0 on success otherwise a negative error code"] +pub type snd_mixer_elem_callback_t = ::std::option::Option< + unsafe extern "C" fn( + elem: *mut snd_mixer_elem_t, + mask: ::std::os::raw::c_uint, + ) -> ::std::os::raw::c_int, +>; +#[doc = " \\brief Compare function for sorting mixer elements"] +#[doc = " \\param e1 First element"] +#[doc = " \\param e2 Second element"] +#[doc = " \\return -1 if e1 < e2, 0 if e1 == e2, 1 if e1 > e2"] +pub type snd_mixer_compare_t = ::std::option::Option< + unsafe extern "C" fn( + e1: *const snd_mixer_elem_t, + e2: *const snd_mixer_elem_t, + ) -> ::std::os::raw::c_int, +>; +#[doc = " \\brief Event callback for the mixer class"] +#[doc = " \\param class_ Mixer class"] +#[doc = " \\param mask Event mask (SND_CTL_EVENT_*)"] +#[doc = " \\param helem HCTL element which invoked the event"] +#[doc = " \\param melem Mixer element associated to HCTL element"] +#[doc = " \\return zero if success, otherwise a negative error value"] +pub type snd_mixer_event_t = ::std::option::Option< + unsafe extern "C" fn( + class_: *mut snd_mixer_class_t, + mask: ::std::os::raw::c_uint, + helem: *mut snd_hctl_elem_t, + melem: *mut snd_mixer_elem_t, + ) -> ::std::os::raw::c_int, +>; +pub const SND_MIXER_ELEM_SIMPLE: _snd_mixer_elem_type = 0; +pub const SND_MIXER_ELEM_LAST: _snd_mixer_elem_type = 0; +#[doc = " Mixer element type"] +pub type _snd_mixer_elem_type = u32; +#[doc = " Mixer element type"] +pub use self::_snd_mixer_elem_type as snd_mixer_elem_type_t; +extern "C" { + pub fn snd_mixer_open( + mixer: *mut *mut snd_mixer_t, + mode: ::std::os::raw::c_int, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_mixer_close(mixer: *mut snd_mixer_t) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_mixer_first_elem(mixer: *mut snd_mixer_t) -> *mut snd_mixer_elem_t; +} +extern "C" { + pub fn snd_mixer_last_elem(mixer: *mut snd_mixer_t) -> *mut snd_mixer_elem_t; +} +extern "C" { + pub fn snd_mixer_handle_events(mixer: *mut snd_mixer_t) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_mixer_attach( + mixer: *mut snd_mixer_t, + name: *const ::std::os::raw::c_char, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_mixer_attach_hctl( + mixer: *mut snd_mixer_t, + hctl: *mut snd_hctl_t, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_mixer_detach( + mixer: *mut snd_mixer_t, + name: *const ::std::os::raw::c_char, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_mixer_detach_hctl( + mixer: *mut snd_mixer_t, + hctl: *mut snd_hctl_t, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_mixer_get_hctl( + mixer: *mut snd_mixer_t, + name: *const ::std::os::raw::c_char, + hctl: *mut *mut snd_hctl_t, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_mixer_poll_descriptors_count(mixer: *mut snd_mixer_t) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_mixer_poll_descriptors( + mixer: *mut snd_mixer_t, + pfds: *mut pollfd, + space: ::std::os::raw::c_uint, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_mixer_poll_descriptors_revents( + mixer: *mut snd_mixer_t, + pfds: *mut pollfd, + nfds: ::std::os::raw::c_uint, + revents: *mut ::std::os::raw::c_ushort, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_mixer_load(mixer: *mut snd_mixer_t) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_mixer_free(mixer: *mut snd_mixer_t); +} +extern "C" { + pub fn snd_mixer_wait( + mixer: *mut snd_mixer_t, + timeout: ::std::os::raw::c_int, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_mixer_set_compare( + mixer: *mut snd_mixer_t, + msort: snd_mixer_compare_t, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_mixer_set_callback(obj: *mut snd_mixer_t, val: snd_mixer_callback_t); +} +extern "C" { + pub fn snd_mixer_get_callback_private(obj: *const snd_mixer_t) -> *mut ::std::os::raw::c_void; +} +extern "C" { + pub fn snd_mixer_set_callback_private(obj: *mut snd_mixer_t, val: *mut ::std::os::raw::c_void); +} +extern "C" { + pub fn snd_mixer_get_count(obj: *const snd_mixer_t) -> ::std::os::raw::c_uint; +} +extern "C" { + pub fn snd_mixer_class_unregister(clss: *mut snd_mixer_class_t) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_mixer_elem_next(elem: *mut snd_mixer_elem_t) -> *mut snd_mixer_elem_t; +} +extern "C" { + pub fn snd_mixer_elem_prev(elem: *mut snd_mixer_elem_t) -> *mut snd_mixer_elem_t; +} +extern "C" { + pub fn snd_mixer_elem_set_callback(obj: *mut snd_mixer_elem_t, val: snd_mixer_elem_callback_t); +} +extern "C" { + pub fn snd_mixer_elem_get_callback_private( + obj: *const snd_mixer_elem_t, + ) -> *mut ::std::os::raw::c_void; +} +extern "C" { + pub fn snd_mixer_elem_set_callback_private( + obj: *mut snd_mixer_elem_t, + val: *mut ::std::os::raw::c_void, + ); +} +extern "C" { + pub fn snd_mixer_elem_get_type(obj: *const snd_mixer_elem_t) -> snd_mixer_elem_type_t; +} +extern "C" { + pub fn snd_mixer_class_register( + class_: *mut snd_mixer_class_t, + mixer: *mut snd_mixer_t, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_mixer_elem_new( + elem: *mut *mut snd_mixer_elem_t, + type_: snd_mixer_elem_type_t, + compare_weight: ::std::os::raw::c_int, + private_data: *mut ::std::os::raw::c_void, + private_free: ::std::option::Option<unsafe extern "C" fn(elem: *mut snd_mixer_elem_t)>, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_mixer_elem_add( + elem: *mut snd_mixer_elem_t, + class_: *mut snd_mixer_class_t, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_mixer_elem_remove(elem: *mut snd_mixer_elem_t) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_mixer_elem_free(elem: *mut snd_mixer_elem_t); +} +extern "C" { + pub fn snd_mixer_elem_info(elem: *mut snd_mixer_elem_t) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_mixer_elem_value(elem: *mut snd_mixer_elem_t) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_mixer_elem_attach( + melem: *mut snd_mixer_elem_t, + helem: *mut snd_hctl_elem_t, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_mixer_elem_detach( + melem: *mut snd_mixer_elem_t, + helem: *mut snd_hctl_elem_t, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_mixer_elem_empty(melem: *mut snd_mixer_elem_t) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_mixer_elem_get_private( + melem: *const snd_mixer_elem_t, + ) -> *mut ::std::os::raw::c_void; +} +extern "C" { + pub fn snd_mixer_class_sizeof() -> usize; +} +extern "C" { + pub fn snd_mixer_class_malloc(ptr: *mut *mut snd_mixer_class_t) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_mixer_class_free(obj: *mut snd_mixer_class_t); +} +extern "C" { + pub fn snd_mixer_class_copy(dst: *mut snd_mixer_class_t, src: *const snd_mixer_class_t); +} +extern "C" { + pub fn snd_mixer_class_get_mixer(class_: *const snd_mixer_class_t) -> *mut snd_mixer_t; +} +extern "C" { + pub fn snd_mixer_class_get_event(class_: *const snd_mixer_class_t) -> snd_mixer_event_t; +} +extern "C" { + pub fn snd_mixer_class_get_private( + class_: *const snd_mixer_class_t, + ) -> *mut ::std::os::raw::c_void; +} +extern "C" { + pub fn snd_mixer_class_get_compare(class_: *const snd_mixer_class_t) -> snd_mixer_compare_t; +} +extern "C" { + pub fn snd_mixer_class_set_event( + class_: *mut snd_mixer_class_t, + event: snd_mixer_event_t, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_mixer_class_set_private( + class_: *mut snd_mixer_class_t, + private_data: *mut ::std::os::raw::c_void, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_mixer_class_set_private_free( + class_: *mut snd_mixer_class_t, + private_free: ::std::option::Option<unsafe extern "C" fn(arg1: *mut snd_mixer_class_t)>, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_mixer_class_set_compare( + class_: *mut snd_mixer_class_t, + compare: snd_mixer_compare_t, + ) -> ::std::os::raw::c_int; +} +#[doc = " Unknown"] +pub const SND_MIXER_SCHN_UNKNOWN: _snd_mixer_selem_channel_id = -1; +#[doc = " Front left"] +pub const SND_MIXER_SCHN_FRONT_LEFT: _snd_mixer_selem_channel_id = 0; +#[doc = " Front right"] +pub const SND_MIXER_SCHN_FRONT_RIGHT: _snd_mixer_selem_channel_id = 1; +#[doc = " Rear left"] +pub const SND_MIXER_SCHN_REAR_LEFT: _snd_mixer_selem_channel_id = 2; +#[doc = " Rear right"] +pub const SND_MIXER_SCHN_REAR_RIGHT: _snd_mixer_selem_channel_id = 3; +#[doc = " Front center"] +pub const SND_MIXER_SCHN_FRONT_CENTER: _snd_mixer_selem_channel_id = 4; +#[doc = " Woofer"] +pub const SND_MIXER_SCHN_WOOFER: _snd_mixer_selem_channel_id = 5; +#[doc = " Side Left"] +pub const SND_MIXER_SCHN_SIDE_LEFT: _snd_mixer_selem_channel_id = 6; +#[doc = " Side Right"] +pub const SND_MIXER_SCHN_SIDE_RIGHT: _snd_mixer_selem_channel_id = 7; +#[doc = " Rear Center"] +pub const SND_MIXER_SCHN_REAR_CENTER: _snd_mixer_selem_channel_id = 8; +#[doc = " Rear Center"] +pub const SND_MIXER_SCHN_LAST: _snd_mixer_selem_channel_id = 31; +#[doc = " Mono (Front left alias)"] +pub const SND_MIXER_SCHN_MONO: _snd_mixer_selem_channel_id = 0; +#[doc = " Mixer simple element channel identifier"] +pub type _snd_mixer_selem_channel_id = i32; +#[doc = " Mixer simple element channel identifier"] +pub use self::_snd_mixer_selem_channel_id as snd_mixer_selem_channel_id_t; +#[doc = " no abstraction - try use all universal controls from driver"] +pub const SND_MIXER_SABSTRACT_NONE: snd_mixer_selem_regopt_abstract = 0; +#[doc = " basic abstraction - Master,PCM,CD,Aux,Record-Gain etc."] +pub const SND_MIXER_SABSTRACT_BASIC: snd_mixer_selem_regopt_abstract = 1; +#[doc = " Mixer simple element - register options - abstraction level"] +pub type snd_mixer_selem_regopt_abstract = u32; +#[doc = " Mixer simple element - register options"] +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct snd_mixer_selem_regopt { + #[doc = " structure version"] + pub ver: ::std::os::raw::c_int, + #[doc = " v1: abstract layer selection"] + pub abstract_: snd_mixer_selem_regopt_abstract, + #[doc = " v1: device name (must be NULL when playback_pcm or capture_pcm != NULL)"] + pub device: *const ::std::os::raw::c_char, + #[doc = " v1: playback PCM connected to mixer device (NULL == none)"] + pub playback_pcm: *mut snd_pcm_t, + #[doc = " v1: capture PCM connected to mixer device (NULL == none)"] + pub capture_pcm: *mut snd_pcm_t, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct _snd_mixer_selem_id { + _unused: [u8; 0], +} +#[doc = " Mixer simple element identifier"] +pub type snd_mixer_selem_id_t = _snd_mixer_selem_id; +extern "C" { + pub fn snd_mixer_selem_channel_name( + channel: snd_mixer_selem_channel_id_t, + ) -> *const ::std::os::raw::c_char; +} +extern "C" { + pub fn snd_mixer_selem_register( + mixer: *mut snd_mixer_t, + options: *mut snd_mixer_selem_regopt, + classp: *mut *mut snd_mixer_class_t, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_mixer_selem_get_id(element: *mut snd_mixer_elem_t, id: *mut snd_mixer_selem_id_t); +} +extern "C" { + pub fn snd_mixer_selem_get_name(elem: *mut snd_mixer_elem_t) -> *const ::std::os::raw::c_char; +} +extern "C" { + pub fn snd_mixer_selem_get_index(elem: *mut snd_mixer_elem_t) -> ::std::os::raw::c_uint; +} +extern "C" { + pub fn snd_mixer_find_selem( + mixer: *mut snd_mixer_t, + id: *const snd_mixer_selem_id_t, + ) -> *mut snd_mixer_elem_t; +} +extern "C" { + pub fn snd_mixer_selem_is_active(elem: *mut snd_mixer_elem_t) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_mixer_selem_is_playback_mono(elem: *mut snd_mixer_elem_t) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_mixer_selem_has_playback_channel( + obj: *mut snd_mixer_elem_t, + channel: snd_mixer_selem_channel_id_t, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_mixer_selem_is_capture_mono(elem: *mut snd_mixer_elem_t) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_mixer_selem_has_capture_channel( + obj: *mut snd_mixer_elem_t, + channel: snd_mixer_selem_channel_id_t, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_mixer_selem_get_capture_group(elem: *mut snd_mixer_elem_t) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_mixer_selem_has_common_volume(elem: *mut snd_mixer_elem_t) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_mixer_selem_has_playback_volume( + elem: *mut snd_mixer_elem_t, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_mixer_selem_has_playback_volume_joined( + elem: *mut snd_mixer_elem_t, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_mixer_selem_has_capture_volume(elem: *mut snd_mixer_elem_t) + -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_mixer_selem_has_capture_volume_joined( + elem: *mut snd_mixer_elem_t, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_mixer_selem_has_common_switch(elem: *mut snd_mixer_elem_t) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_mixer_selem_has_playback_switch( + elem: *mut snd_mixer_elem_t, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_mixer_selem_has_playback_switch_joined( + elem: *mut snd_mixer_elem_t, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_mixer_selem_has_capture_switch(elem: *mut snd_mixer_elem_t) + -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_mixer_selem_has_capture_switch_joined( + elem: *mut snd_mixer_elem_t, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_mixer_selem_has_capture_switch_exclusive( + elem: *mut snd_mixer_elem_t, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_mixer_selem_ask_playback_vol_dB( + elem: *mut snd_mixer_elem_t, + value: ::std::os::raw::c_long, + dBvalue: *mut ::std::os::raw::c_long, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_mixer_selem_ask_capture_vol_dB( + elem: *mut snd_mixer_elem_t, + value: ::std::os::raw::c_long, + dBvalue: *mut ::std::os::raw::c_long, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_mixer_selem_ask_playback_dB_vol( + elem: *mut snd_mixer_elem_t, + dBvalue: ::std::os::raw::c_long, + dir: ::std::os::raw::c_int, + value: *mut ::std::os::raw::c_long, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_mixer_selem_ask_capture_dB_vol( + elem: *mut snd_mixer_elem_t, + dBvalue: ::std::os::raw::c_long, + dir: ::std::os::raw::c_int, + value: *mut ::std::os::raw::c_long, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_mixer_selem_get_playback_volume( + elem: *mut snd_mixer_elem_t, + channel: snd_mixer_selem_channel_id_t, + value: *mut ::std::os::raw::c_long, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_mixer_selem_get_capture_volume( + elem: *mut snd_mixer_elem_t, + channel: snd_mixer_selem_channel_id_t, + value: *mut ::std::os::raw::c_long, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_mixer_selem_get_playback_dB( + elem: *mut snd_mixer_elem_t, + channel: snd_mixer_selem_channel_id_t, + value: *mut ::std::os::raw::c_long, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_mixer_selem_get_capture_dB( + elem: *mut snd_mixer_elem_t, + channel: snd_mixer_selem_channel_id_t, + value: *mut ::std::os::raw::c_long, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_mixer_selem_get_playback_switch( + elem: *mut snd_mixer_elem_t, + channel: snd_mixer_selem_channel_id_t, + value: *mut ::std::os::raw::c_int, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_mixer_selem_get_capture_switch( + elem: *mut snd_mixer_elem_t, + channel: snd_mixer_selem_channel_id_t, + value: *mut ::std::os::raw::c_int, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_mixer_selem_set_playback_volume( + elem: *mut snd_mixer_elem_t, + channel: snd_mixer_selem_channel_id_t, + value: ::std::os::raw::c_long, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_mixer_selem_set_capture_volume( + elem: *mut snd_mixer_elem_t, + channel: snd_mixer_selem_channel_id_t, + value: ::std::os::raw::c_long, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_mixer_selem_set_playback_dB( + elem: *mut snd_mixer_elem_t, + channel: snd_mixer_selem_channel_id_t, + value: ::std::os::raw::c_long, + dir: ::std::os::raw::c_int, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_mixer_selem_set_capture_dB( + elem: *mut snd_mixer_elem_t, + channel: snd_mixer_selem_channel_id_t, + value: ::std::os::raw::c_long, + dir: ::std::os::raw::c_int, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_mixer_selem_set_playback_volume_all( + elem: *mut snd_mixer_elem_t, + value: ::std::os::raw::c_long, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_mixer_selem_set_capture_volume_all( + elem: *mut snd_mixer_elem_t, + value: ::std::os::raw::c_long, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_mixer_selem_set_playback_dB_all( + elem: *mut snd_mixer_elem_t, + value: ::std::os::raw::c_long, + dir: ::std::os::raw::c_int, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_mixer_selem_set_capture_dB_all( + elem: *mut snd_mixer_elem_t, + value: ::std::os::raw::c_long, + dir: ::std::os::raw::c_int, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_mixer_selem_set_playback_switch( + elem: *mut snd_mixer_elem_t, + channel: snd_mixer_selem_channel_id_t, + value: ::std::os::raw::c_int, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_mixer_selem_set_capture_switch( + elem: *mut snd_mixer_elem_t, + channel: snd_mixer_selem_channel_id_t, + value: ::std::os::raw::c_int, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_mixer_selem_set_playback_switch_all( + elem: *mut snd_mixer_elem_t, + value: ::std::os::raw::c_int, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_mixer_selem_set_capture_switch_all( + elem: *mut snd_mixer_elem_t, + value: ::std::os::raw::c_int, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_mixer_selem_get_playback_volume_range( + elem: *mut snd_mixer_elem_t, + min: *mut ::std::os::raw::c_long, + max: *mut ::std::os::raw::c_long, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_mixer_selem_get_playback_dB_range( + elem: *mut snd_mixer_elem_t, + min: *mut ::std::os::raw::c_long, + max: *mut ::std::os::raw::c_long, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_mixer_selem_set_playback_volume_range( + elem: *mut snd_mixer_elem_t, + min: ::std::os::raw::c_long, + max: ::std::os::raw::c_long, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_mixer_selem_get_capture_volume_range( + elem: *mut snd_mixer_elem_t, + min: *mut ::std::os::raw::c_long, + max: *mut ::std::os::raw::c_long, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_mixer_selem_get_capture_dB_range( + elem: *mut snd_mixer_elem_t, + min: *mut ::std::os::raw::c_long, + max: *mut ::std::os::raw::c_long, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_mixer_selem_set_capture_volume_range( + elem: *mut snd_mixer_elem_t, + min: ::std::os::raw::c_long, + max: ::std::os::raw::c_long, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_mixer_selem_is_enumerated(elem: *mut snd_mixer_elem_t) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_mixer_selem_is_enum_playback(elem: *mut snd_mixer_elem_t) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_mixer_selem_is_enum_capture(elem: *mut snd_mixer_elem_t) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_mixer_selem_get_enum_items(elem: *mut snd_mixer_elem_t) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_mixer_selem_get_enum_item_name( + elem: *mut snd_mixer_elem_t, + idx: ::std::os::raw::c_uint, + maxlen: usize, + str: *mut ::std::os::raw::c_char, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_mixer_selem_get_enum_item( + elem: *mut snd_mixer_elem_t, + channel: snd_mixer_selem_channel_id_t, + idxp: *mut ::std::os::raw::c_uint, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_mixer_selem_set_enum_item( + elem: *mut snd_mixer_elem_t, + channel: snd_mixer_selem_channel_id_t, + idx: ::std::os::raw::c_uint, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_mixer_selem_id_sizeof() -> usize; +} +extern "C" { + pub fn snd_mixer_selem_id_malloc(ptr: *mut *mut snd_mixer_selem_id_t) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_mixer_selem_id_free(obj: *mut snd_mixer_selem_id_t); +} +extern "C" { + pub fn snd_mixer_selem_id_copy( + dst: *mut snd_mixer_selem_id_t, + src: *const snd_mixer_selem_id_t, + ); +} +extern "C" { + pub fn snd_mixer_selem_id_get_name( + obj: *const snd_mixer_selem_id_t, + ) -> *const ::std::os::raw::c_char; +} +extern "C" { + pub fn snd_mixer_selem_id_get_index(obj: *const snd_mixer_selem_id_t) + -> ::std::os::raw::c_uint; +} +extern "C" { + pub fn snd_mixer_selem_id_set_name( + obj: *mut snd_mixer_selem_id_t, + val: *const ::std::os::raw::c_char, + ); +} +extern "C" { + pub fn snd_mixer_selem_id_set_index( + obj: *mut snd_mixer_selem_id_t, + val: ::std::os::raw::c_uint, + ); +} +extern "C" { + pub fn snd_mixer_selem_id_parse( + dst: *mut snd_mixer_selem_id_t, + str: *const ::std::os::raw::c_char, + ) -> ::std::os::raw::c_int; +} +#[doc = " Sequencer event data type"] +pub type snd_seq_event_type_t = ::std::os::raw::c_uchar; +#[doc = " system status; event data type = #snd_seq_result_t"] +pub const SND_SEQ_EVENT_SYSTEM: snd_seq_event_type = 0; +#[doc = " returned result status; event data type = #snd_seq_result_t"] +pub const SND_SEQ_EVENT_RESULT: snd_seq_event_type = 1; +#[doc = " note on and off with duration; event data type = #snd_seq_ev_note_t"] +pub const SND_SEQ_EVENT_NOTE: snd_seq_event_type = 5; +#[doc = " note on; event data type = #snd_seq_ev_note_t"] +pub const SND_SEQ_EVENT_NOTEON: snd_seq_event_type = 6; +#[doc = " note off; event data type = #snd_seq_ev_note_t"] +pub const SND_SEQ_EVENT_NOTEOFF: snd_seq_event_type = 7; +#[doc = " key pressure change (aftertouch); event data type = #snd_seq_ev_note_t"] +pub const SND_SEQ_EVENT_KEYPRESS: snd_seq_event_type = 8; +#[doc = " controller; event data type = #snd_seq_ev_ctrl_t"] +pub const SND_SEQ_EVENT_CONTROLLER: snd_seq_event_type = 10; +#[doc = " program change; event data type = #snd_seq_ev_ctrl_t"] +pub const SND_SEQ_EVENT_PGMCHANGE: snd_seq_event_type = 11; +#[doc = " channel pressure; event data type = #snd_seq_ev_ctrl_t"] +pub const SND_SEQ_EVENT_CHANPRESS: snd_seq_event_type = 12; +#[doc = " pitchwheel; event data type = #snd_seq_ev_ctrl_t; data is from -8192 to 8191)"] +pub const SND_SEQ_EVENT_PITCHBEND: snd_seq_event_type = 13; +#[doc = " 14 bit controller value; event data type = #snd_seq_ev_ctrl_t"] +pub const SND_SEQ_EVENT_CONTROL14: snd_seq_event_type = 14; +#[doc = " 14 bit NRPN; event data type = #snd_seq_ev_ctrl_t"] +pub const SND_SEQ_EVENT_NONREGPARAM: snd_seq_event_type = 15; +#[doc = " 14 bit RPN; event data type = #snd_seq_ev_ctrl_t"] +pub const SND_SEQ_EVENT_REGPARAM: snd_seq_event_type = 16; +#[doc = " SPP with LSB and MSB values; event data type = #snd_seq_ev_ctrl_t"] +pub const SND_SEQ_EVENT_SONGPOS: snd_seq_event_type = 20; +#[doc = " Song Select with song ID number; event data type = #snd_seq_ev_ctrl_t"] +pub const SND_SEQ_EVENT_SONGSEL: snd_seq_event_type = 21; +#[doc = " midi time code quarter frame; event data type = #snd_seq_ev_ctrl_t"] +pub const SND_SEQ_EVENT_QFRAME: snd_seq_event_type = 22; +#[doc = " SMF Time Signature event; event data type = #snd_seq_ev_ctrl_t"] +pub const SND_SEQ_EVENT_TIMESIGN: snd_seq_event_type = 23; +#[doc = " SMF Key Signature event; event data type = #snd_seq_ev_ctrl_t"] +pub const SND_SEQ_EVENT_KEYSIGN: snd_seq_event_type = 24; +#[doc = " MIDI Real Time Start message; event data type = #snd_seq_ev_queue_control_t"] +pub const SND_SEQ_EVENT_START: snd_seq_event_type = 30; +#[doc = " MIDI Real Time Continue message; event data type = #snd_seq_ev_queue_control_t"] +pub const SND_SEQ_EVENT_CONTINUE: snd_seq_event_type = 31; +#[doc = " MIDI Real Time Stop message; event data type = #snd_seq_ev_queue_control_t"] +pub const SND_SEQ_EVENT_STOP: snd_seq_event_type = 32; +#[doc = " Set tick queue position; event data type = #snd_seq_ev_queue_control_t"] +pub const SND_SEQ_EVENT_SETPOS_TICK: snd_seq_event_type = 33; +#[doc = " Set real-time queue position; event data type = #snd_seq_ev_queue_control_t"] +pub const SND_SEQ_EVENT_SETPOS_TIME: snd_seq_event_type = 34; +#[doc = " (SMF) Tempo event; event data type = #snd_seq_ev_queue_control_t"] +pub const SND_SEQ_EVENT_TEMPO: snd_seq_event_type = 35; +#[doc = " MIDI Real Time Clock message; event data type = #snd_seq_ev_queue_control_t"] +pub const SND_SEQ_EVENT_CLOCK: snd_seq_event_type = 36; +#[doc = " MIDI Real Time Tick message; event data type = #snd_seq_ev_queue_control_t"] +pub const SND_SEQ_EVENT_TICK: snd_seq_event_type = 37; +#[doc = " Queue timer skew; event data type = #snd_seq_ev_queue_control_t"] +pub const SND_SEQ_EVENT_QUEUE_SKEW: snd_seq_event_type = 38; +#[doc = " Sync position changed; event data type = #snd_seq_ev_queue_control_t"] +pub const SND_SEQ_EVENT_SYNC_POS: snd_seq_event_type = 39; +#[doc = " Tune request; event data type = none"] +pub const SND_SEQ_EVENT_TUNE_REQUEST: snd_seq_event_type = 40; +#[doc = " Reset to power-on state; event data type = none"] +pub const SND_SEQ_EVENT_RESET: snd_seq_event_type = 41; +#[doc = " Active sensing event; event data type = none"] +pub const SND_SEQ_EVENT_SENSING: snd_seq_event_type = 42; +#[doc = " Echo-back event; event data type = any type"] +pub const SND_SEQ_EVENT_ECHO: snd_seq_event_type = 50; +#[doc = " OSS emulation raw event; event data type = any type"] +pub const SND_SEQ_EVENT_OSS: snd_seq_event_type = 51; +#[doc = " New client has connected; event data type = #snd_seq_addr_t"] +pub const SND_SEQ_EVENT_CLIENT_START: snd_seq_event_type = 60; +#[doc = " Client has left the system; event data type = #snd_seq_addr_t"] +pub const SND_SEQ_EVENT_CLIENT_EXIT: snd_seq_event_type = 61; +#[doc = " Client status/info has changed; event data type = #snd_seq_addr_t"] +pub const SND_SEQ_EVENT_CLIENT_CHANGE: snd_seq_event_type = 62; +#[doc = " New port was created; event data type = #snd_seq_addr_t"] +pub const SND_SEQ_EVENT_PORT_START: snd_seq_event_type = 63; +#[doc = " Port was deleted from system; event data type = #snd_seq_addr_t"] +pub const SND_SEQ_EVENT_PORT_EXIT: snd_seq_event_type = 64; +#[doc = " Port status/info has changed; event data type = #snd_seq_addr_t"] +pub const SND_SEQ_EVENT_PORT_CHANGE: snd_seq_event_type = 65; +#[doc = " Ports connected; event data type = #snd_seq_connect_t"] +pub const SND_SEQ_EVENT_PORT_SUBSCRIBED: snd_seq_event_type = 66; +#[doc = " Ports disconnected; event data type = #snd_seq_connect_t"] +pub const SND_SEQ_EVENT_PORT_UNSUBSCRIBED: snd_seq_event_type = 67; +#[doc = " user-defined event; event data type = any (fixed size)"] +pub const SND_SEQ_EVENT_USR0: snd_seq_event_type = 90; +#[doc = " user-defined event; event data type = any (fixed size)"] +pub const SND_SEQ_EVENT_USR1: snd_seq_event_type = 91; +#[doc = " user-defined event; event data type = any (fixed size)"] +pub const SND_SEQ_EVENT_USR2: snd_seq_event_type = 92; +#[doc = " user-defined event; event data type = any (fixed size)"] +pub const SND_SEQ_EVENT_USR3: snd_seq_event_type = 93; +#[doc = " user-defined event; event data type = any (fixed size)"] +pub const SND_SEQ_EVENT_USR4: snd_seq_event_type = 94; +#[doc = " user-defined event; event data type = any (fixed size)"] +pub const SND_SEQ_EVENT_USR5: snd_seq_event_type = 95; +#[doc = " user-defined event; event data type = any (fixed size)"] +pub const SND_SEQ_EVENT_USR6: snd_seq_event_type = 96; +#[doc = " user-defined event; event data type = any (fixed size)"] +pub const SND_SEQ_EVENT_USR7: snd_seq_event_type = 97; +#[doc = " user-defined event; event data type = any (fixed size)"] +pub const SND_SEQ_EVENT_USR8: snd_seq_event_type = 98; +#[doc = " user-defined event; event data type = any (fixed size)"] +pub const SND_SEQ_EVENT_USR9: snd_seq_event_type = 99; +#[doc = " system exclusive data (variable length); event data type = #snd_seq_ev_ext_t"] +pub const SND_SEQ_EVENT_SYSEX: snd_seq_event_type = 130; +#[doc = " error event; event data type = #snd_seq_ev_ext_t"] +pub const SND_SEQ_EVENT_BOUNCE: snd_seq_event_type = 131; +#[doc = " reserved for user apps; event data type = #snd_seq_ev_ext_t"] +pub const SND_SEQ_EVENT_USR_VAR0: snd_seq_event_type = 135; +#[doc = " reserved for user apps; event data type = #snd_seq_ev_ext_t"] +pub const SND_SEQ_EVENT_USR_VAR1: snd_seq_event_type = 136; +#[doc = " reserved for user apps; event data type = #snd_seq_ev_ext_t"] +pub const SND_SEQ_EVENT_USR_VAR2: snd_seq_event_type = 137; +#[doc = " reserved for user apps; event data type = #snd_seq_ev_ext_t"] +pub const SND_SEQ_EVENT_USR_VAR3: snd_seq_event_type = 138; +#[doc = " reserved for user apps; event data type = #snd_seq_ev_ext_t"] +pub const SND_SEQ_EVENT_USR_VAR4: snd_seq_event_type = 139; +#[doc = " NOP; ignored in any case"] +pub const SND_SEQ_EVENT_NONE: snd_seq_event_type = 255; +#[doc = " Sequencer event type"] +pub type snd_seq_event_type = u32; +#[doc = " Sequencer event address"] +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct snd_seq_addr { + #[doc = "< Client id"] + pub client: ::std::os::raw::c_uchar, + #[doc = "< Port id"] + pub port: ::std::os::raw::c_uchar, +} +#[doc = " Sequencer event address"] +pub type snd_seq_addr_t = snd_seq_addr; +#[doc = " Connection (subscription) between ports"] +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct snd_seq_connect { + #[doc = "< sender address"] + pub sender: snd_seq_addr_t, + #[doc = "< destination address"] + pub dest: snd_seq_addr_t, +} +#[doc = " Connection (subscription) between ports"] +pub type snd_seq_connect_t = snd_seq_connect; +#[doc = " Real-time data record"] +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct snd_seq_real_time { + #[doc = "< seconds"] + pub tv_sec: ::std::os::raw::c_uint, + #[doc = "< nanoseconds"] + pub tv_nsec: ::std::os::raw::c_uint, +} +#[doc = " Real-time data record"] +pub type snd_seq_real_time_t = snd_seq_real_time; +#[doc = " (MIDI) Tick-time data record"] +pub type snd_seq_tick_time_t = ::std::os::raw::c_uint; +#[doc = " unioned time stamp"] +#[repr(C)] +#[derive(Copy, Clone)] +pub union snd_seq_timestamp { + #[doc = "< tick-time"] + pub tick: snd_seq_tick_time_t, + #[doc = "< real-time"] + pub time: snd_seq_real_time, + _bindgen_union_align: [u32; 2usize], +} +#[doc = " unioned time stamp"] +pub type snd_seq_timestamp_t = snd_seq_timestamp; +#[doc = " Note event"] +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct snd_seq_ev_note { + #[doc = "< channel number"] + pub channel: ::std::os::raw::c_uchar, + #[doc = "< note"] + pub note: ::std::os::raw::c_uchar, + #[doc = "< velocity"] + pub velocity: ::std::os::raw::c_uchar, + #[doc = "< note-off velocity; only for #SND_SEQ_EVENT_NOTE"] + pub off_velocity: ::std::os::raw::c_uchar, + #[doc = "< duration until note-off; only for #SND_SEQ_EVENT_NOTE"] + pub duration: ::std::os::raw::c_uint, +} +#[doc = " Note event"] +pub type snd_seq_ev_note_t = snd_seq_ev_note; +#[doc = " Controller event"] +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct snd_seq_ev_ctrl { + #[doc = "< channel number"] + pub channel: ::std::os::raw::c_uchar, + #[doc = "< reserved"] + pub unused: [::std::os::raw::c_uchar; 3usize], + #[doc = "< control parameter"] + pub param: ::std::os::raw::c_uint, + #[doc = "< control value"] + pub value: ::std::os::raw::c_int, +} +#[doc = " Controller event"] +pub type snd_seq_ev_ctrl_t = snd_seq_ev_ctrl; +#[doc = " generic set of bytes (12x8 bit)"] +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct snd_seq_ev_raw8 { + #[doc = "< 8 bit value"] + pub d: [::std::os::raw::c_uchar; 12usize], +} +#[doc = " generic set of bytes (12x8 bit)"] +pub type snd_seq_ev_raw8_t = snd_seq_ev_raw8; +#[doc = " generic set of integers (3x32 bit)"] +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct snd_seq_ev_raw32 { + #[doc = "< 32 bit value"] + pub d: [::std::os::raw::c_uint; 3usize], +} +#[doc = " generic set of integers (3x32 bit)"] +pub type snd_seq_ev_raw32_t = snd_seq_ev_raw32; +#[doc = " external stored data"] +#[repr(C, packed)] +#[derive(Debug, Copy, Clone)] +pub struct snd_seq_ev_ext { + #[doc = "< length of data"] + pub len: ::std::os::raw::c_uint, + #[doc = "< pointer to data (note: can be 64-bit)"] + pub ptr: *mut ::std::os::raw::c_void, +} +#[doc = " external stored data"] +pub type snd_seq_ev_ext_t = snd_seq_ev_ext; +#[doc = " Result events"] +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct snd_seq_result { + #[doc = "< processed event type"] + pub event: ::std::os::raw::c_int, + #[doc = "< status"] + pub result: ::std::os::raw::c_int, +} +#[doc = " Result events"] +pub type snd_seq_result_t = snd_seq_result; +#[doc = " Queue skew values"] +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct snd_seq_queue_skew { + #[doc = "< skew value"] + pub value: ::std::os::raw::c_uint, + #[doc = "< skew base"] + pub base: ::std::os::raw::c_uint, +} +#[doc = " Queue skew values"] +pub type snd_seq_queue_skew_t = snd_seq_queue_skew; +#[doc = " queue timer control"] +#[repr(C)] +#[derive(Copy, Clone)] +pub struct snd_seq_ev_queue_control { + #[doc = "< affected queue"] + pub queue: ::std::os::raw::c_uchar, + #[doc = "< reserved"] + pub unused: [::std::os::raw::c_uchar; 3usize], + #[doc = "< data value union"] + pub param: snd_seq_ev_queue_control__bindgen_ty_1, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union snd_seq_ev_queue_control__bindgen_ty_1 { + #[doc = "< affected value (e.g. tempo)"] + pub value: ::std::os::raw::c_int, + #[doc = "< time"] + pub time: snd_seq_timestamp_t, + #[doc = "< sync position"] + pub position: ::std::os::raw::c_uint, + #[doc = "< queue skew"] + pub skew: snd_seq_queue_skew_t, + #[doc = "< any data"] + pub d32: [::std::os::raw::c_uint; 2usize], + #[doc = "< any data"] + pub d8: [::std::os::raw::c_uchar; 8usize], + _bindgen_union_align: [u32; 2usize], +} +#[doc = " queue timer control"] +pub type snd_seq_ev_queue_control_t = snd_seq_ev_queue_control; +#[doc = " Sequencer event"] +#[repr(C)] +#[derive(Copy, Clone)] +pub struct snd_seq_event { + #[doc = "< event type"] + pub type_: snd_seq_event_type_t, + #[doc = "< event flags"] + pub flags: ::std::os::raw::c_uchar, + #[doc = "< tag"] + pub tag: ::std::os::raw::c_uchar, + #[doc = "< schedule queue"] + pub queue: ::std::os::raw::c_uchar, + #[doc = "< schedule time"] + pub time: snd_seq_timestamp_t, + #[doc = "< source address"] + pub source: snd_seq_addr_t, + #[doc = "< destination address"] + pub dest: snd_seq_addr_t, + #[doc = "< event data..."] + pub data: snd_seq_event__bindgen_ty_1, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union snd_seq_event__bindgen_ty_1 { + #[doc = "< note information"] + pub note: snd_seq_ev_note_t, + #[doc = "< MIDI control information"] + pub control: snd_seq_ev_ctrl_t, + #[doc = "< raw8 data"] + pub raw8: snd_seq_ev_raw8_t, + #[doc = "< raw32 data"] + pub raw32: snd_seq_ev_raw32_t, + #[doc = "< external data"] + pub ext: snd_seq_ev_ext_t, + #[doc = "< queue control"] + pub queue: snd_seq_ev_queue_control_t, + #[doc = "< timestamp"] + pub time: snd_seq_timestamp_t, + #[doc = "< address"] + pub addr: snd_seq_addr_t, + #[doc = "< connect information"] + pub connect: snd_seq_connect_t, + #[doc = "< operation result code"] + pub result: snd_seq_result_t, + _bindgen_union_align: [u32; 3usize], +} +#[doc = " Sequencer event"] +pub type snd_seq_event_t = snd_seq_event; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct _snd_seq { + _unused: [u8; 0], +} +#[doc = " Sequencer handle"] +pub type snd_seq_t = _snd_seq; +#[doc = "< hardware"] +pub const SND_SEQ_TYPE_HW: _snd_seq_type = 0; +#[doc = "< shared memory (NYI)"] +pub const SND_SEQ_TYPE_SHM: _snd_seq_type = 1; +#[doc = "< network (NYI)"] +pub const SND_SEQ_TYPE_INET: _snd_seq_type = 2; +#[doc = " sequencer handle type"] +pub type _snd_seq_type = u32; +#[doc = " sequencer handle type"] +pub use self::_snd_seq_type as snd_seq_type_t; +extern "C" { + pub fn snd_seq_open( + handle: *mut *mut snd_seq_t, + name: *const ::std::os::raw::c_char, + streams: ::std::os::raw::c_int, + mode: ::std::os::raw::c_int, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_seq_open_lconf( + handle: *mut *mut snd_seq_t, + name: *const ::std::os::raw::c_char, + streams: ::std::os::raw::c_int, + mode: ::std::os::raw::c_int, + lconf: *mut snd_config_t, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_seq_name(seq: *mut snd_seq_t) -> *const ::std::os::raw::c_char; +} +extern "C" { + pub fn snd_seq_type(seq: *mut snd_seq_t) -> snd_seq_type_t; +} +extern "C" { + pub fn snd_seq_close(handle: *mut snd_seq_t) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_seq_poll_descriptors_count( + handle: *mut snd_seq_t, + events: ::std::os::raw::c_short, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_seq_poll_descriptors( + handle: *mut snd_seq_t, + pfds: *mut pollfd, + space: ::std::os::raw::c_uint, + events: ::std::os::raw::c_short, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_seq_poll_descriptors_revents( + seq: *mut snd_seq_t, + pfds: *mut pollfd, + nfds: ::std::os::raw::c_uint, + revents: *mut ::std::os::raw::c_ushort, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_seq_nonblock( + handle: *mut snd_seq_t, + nonblock: ::std::os::raw::c_int, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_seq_client_id(handle: *mut snd_seq_t) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_seq_get_output_buffer_size(handle: *mut snd_seq_t) -> usize; +} +extern "C" { + pub fn snd_seq_get_input_buffer_size(handle: *mut snd_seq_t) -> usize; +} +extern "C" { + pub fn snd_seq_set_output_buffer_size( + handle: *mut snd_seq_t, + size: usize, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_seq_set_input_buffer_size( + handle: *mut snd_seq_t, + size: usize, + ) -> ::std::os::raw::c_int; +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct _snd_seq_system_info { + _unused: [u8; 0], +} +#[doc = " system information container"] +pub type snd_seq_system_info_t = _snd_seq_system_info; +extern "C" { + pub fn snd_seq_system_info_sizeof() -> usize; +} +extern "C" { + pub fn snd_seq_system_info_malloc( + ptr: *mut *mut snd_seq_system_info_t, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_seq_system_info_free(ptr: *mut snd_seq_system_info_t); +} +extern "C" { + pub fn snd_seq_system_info_copy( + dst: *mut snd_seq_system_info_t, + src: *const snd_seq_system_info_t, + ); +} +extern "C" { + pub fn snd_seq_system_info_get_queues( + info: *const snd_seq_system_info_t, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_seq_system_info_get_clients( + info: *const snd_seq_system_info_t, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_seq_system_info_get_ports( + info: *const snd_seq_system_info_t, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_seq_system_info_get_channels( + info: *const snd_seq_system_info_t, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_seq_system_info_get_cur_clients( + info: *const snd_seq_system_info_t, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_seq_system_info_get_cur_queues( + info: *const snd_seq_system_info_t, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_seq_system_info( + handle: *mut snd_seq_t, + info: *mut snd_seq_system_info_t, + ) -> ::std::os::raw::c_int; +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct _snd_seq_client_info { + _unused: [u8; 0], +} +#[doc = " client information container"] +pub type snd_seq_client_info_t = _snd_seq_client_info; +#[doc = "< user client"] +pub const SND_SEQ_USER_CLIENT: snd_seq_client_type = 1; +#[doc = "< kernel client"] +pub const SND_SEQ_KERNEL_CLIENT: snd_seq_client_type = 2; +#[doc = " client types"] +pub type snd_seq_client_type = u32; +#[doc = " client types"] +pub use self::snd_seq_client_type as snd_seq_client_type_t; +extern "C" { + pub fn snd_seq_client_info_sizeof() -> usize; +} +extern "C" { + pub fn snd_seq_client_info_malloc( + ptr: *mut *mut snd_seq_client_info_t, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_seq_client_info_free(ptr: *mut snd_seq_client_info_t); +} +extern "C" { + pub fn snd_seq_client_info_copy( + dst: *mut snd_seq_client_info_t, + src: *const snd_seq_client_info_t, + ); +} +extern "C" { + pub fn snd_seq_client_info_get_client( + info: *const snd_seq_client_info_t, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_seq_client_info_get_type( + info: *const snd_seq_client_info_t, + ) -> snd_seq_client_type_t; +} +extern "C" { + pub fn snd_seq_client_info_get_name( + info: *mut snd_seq_client_info_t, + ) -> *const ::std::os::raw::c_char; +} +extern "C" { + pub fn snd_seq_client_info_get_broadcast_filter( + info: *const snd_seq_client_info_t, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_seq_client_info_get_error_bounce( + info: *const snd_seq_client_info_t, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_seq_client_info_get_card( + info: *const snd_seq_client_info_t, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_seq_client_info_get_pid(info: *const snd_seq_client_info_t) + -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_seq_client_info_get_event_filter( + info: *const snd_seq_client_info_t, + ) -> *const ::std::os::raw::c_uchar; +} +extern "C" { + pub fn snd_seq_client_info_get_num_ports( + info: *const snd_seq_client_info_t, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_seq_client_info_get_event_lost( + info: *const snd_seq_client_info_t, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_seq_client_info_set_client( + info: *mut snd_seq_client_info_t, + client: ::std::os::raw::c_int, + ); +} +extern "C" { + pub fn snd_seq_client_info_set_name( + info: *mut snd_seq_client_info_t, + name: *const ::std::os::raw::c_char, + ); +} +extern "C" { + pub fn snd_seq_client_info_set_broadcast_filter( + info: *mut snd_seq_client_info_t, + val: ::std::os::raw::c_int, + ); +} +extern "C" { + pub fn snd_seq_client_info_set_error_bounce( + info: *mut snd_seq_client_info_t, + val: ::std::os::raw::c_int, + ); +} +extern "C" { + pub fn snd_seq_client_info_set_event_filter( + info: *mut snd_seq_client_info_t, + filter: *mut ::std::os::raw::c_uchar, + ); +} +extern "C" { + pub fn snd_seq_client_info_event_filter_clear(info: *mut snd_seq_client_info_t); +} +extern "C" { + pub fn snd_seq_client_info_event_filter_add( + info: *mut snd_seq_client_info_t, + event_type: ::std::os::raw::c_int, + ); +} +extern "C" { + pub fn snd_seq_client_info_event_filter_del( + info: *mut snd_seq_client_info_t, + event_type: ::std::os::raw::c_int, + ); +} +extern "C" { + pub fn snd_seq_client_info_event_filter_check( + info: *mut snd_seq_client_info_t, + event_type: ::std::os::raw::c_int, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_seq_get_client_info( + handle: *mut snd_seq_t, + info: *mut snd_seq_client_info_t, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_seq_get_any_client_info( + handle: *mut snd_seq_t, + client: ::std::os::raw::c_int, + info: *mut snd_seq_client_info_t, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_seq_set_client_info( + handle: *mut snd_seq_t, + info: *mut snd_seq_client_info_t, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_seq_query_next_client( + handle: *mut snd_seq_t, + info: *mut snd_seq_client_info_t, + ) -> ::std::os::raw::c_int; +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct _snd_seq_client_pool { + _unused: [u8; 0], +} +#[doc = " client pool information container"] +pub type snd_seq_client_pool_t = _snd_seq_client_pool; +extern "C" { + pub fn snd_seq_client_pool_sizeof() -> usize; +} +extern "C" { + pub fn snd_seq_client_pool_malloc( + ptr: *mut *mut snd_seq_client_pool_t, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_seq_client_pool_free(ptr: *mut snd_seq_client_pool_t); +} +extern "C" { + pub fn snd_seq_client_pool_copy( + dst: *mut snd_seq_client_pool_t, + src: *const snd_seq_client_pool_t, + ); +} +extern "C" { + pub fn snd_seq_client_pool_get_client( + info: *const snd_seq_client_pool_t, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_seq_client_pool_get_output_pool(info: *const snd_seq_client_pool_t) -> usize; +} +extern "C" { + pub fn snd_seq_client_pool_get_input_pool(info: *const snd_seq_client_pool_t) -> usize; +} +extern "C" { + pub fn snd_seq_client_pool_get_output_room(info: *const snd_seq_client_pool_t) -> usize; +} +extern "C" { + pub fn snd_seq_client_pool_get_output_free(info: *const snd_seq_client_pool_t) -> usize; +} +extern "C" { + pub fn snd_seq_client_pool_get_input_free(info: *const snd_seq_client_pool_t) -> usize; +} +extern "C" { + pub fn snd_seq_client_pool_set_output_pool(info: *mut snd_seq_client_pool_t, size: usize); +} +extern "C" { + pub fn snd_seq_client_pool_set_input_pool(info: *mut snd_seq_client_pool_t, size: usize); +} +extern "C" { + pub fn snd_seq_client_pool_set_output_room(info: *mut snd_seq_client_pool_t, size: usize); +} +extern "C" { + pub fn snd_seq_get_client_pool( + handle: *mut snd_seq_t, + info: *mut snd_seq_client_pool_t, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_seq_set_client_pool( + handle: *mut snd_seq_t, + info: *mut snd_seq_client_pool_t, + ) -> ::std::os::raw::c_int; +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct _snd_seq_port_info { + _unused: [u8; 0], +} +#[doc = " port information container"] +pub type snd_seq_port_info_t = _snd_seq_port_info; +extern "C" { + pub fn snd_seq_port_info_sizeof() -> usize; +} +extern "C" { + pub fn snd_seq_port_info_malloc(ptr: *mut *mut snd_seq_port_info_t) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_seq_port_info_free(ptr: *mut snd_seq_port_info_t); +} +extern "C" { + pub fn snd_seq_port_info_copy(dst: *mut snd_seq_port_info_t, src: *const snd_seq_port_info_t); +} +extern "C" { + pub fn snd_seq_port_info_get_client(info: *const snd_seq_port_info_t) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_seq_port_info_get_port(info: *const snd_seq_port_info_t) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_seq_port_info_get_addr(info: *const snd_seq_port_info_t) -> *const snd_seq_addr_t; +} +extern "C" { + pub fn snd_seq_port_info_get_name( + info: *const snd_seq_port_info_t, + ) -> *const ::std::os::raw::c_char; +} +extern "C" { + pub fn snd_seq_port_info_get_capability( + info: *const snd_seq_port_info_t, + ) -> ::std::os::raw::c_uint; +} +extern "C" { + pub fn snd_seq_port_info_get_type(info: *const snd_seq_port_info_t) -> ::std::os::raw::c_uint; +} +extern "C" { + pub fn snd_seq_port_info_get_midi_channels( + info: *const snd_seq_port_info_t, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_seq_port_info_get_midi_voices( + info: *const snd_seq_port_info_t, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_seq_port_info_get_synth_voices( + info: *const snd_seq_port_info_t, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_seq_port_info_get_read_use( + info: *const snd_seq_port_info_t, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_seq_port_info_get_write_use( + info: *const snd_seq_port_info_t, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_seq_port_info_get_port_specified( + info: *const snd_seq_port_info_t, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_seq_port_info_get_timestamping( + info: *const snd_seq_port_info_t, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_seq_port_info_get_timestamp_real( + info: *const snd_seq_port_info_t, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_seq_port_info_get_timestamp_queue( + info: *const snd_seq_port_info_t, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_seq_port_info_set_client( + info: *mut snd_seq_port_info_t, + client: ::std::os::raw::c_int, + ); +} +extern "C" { + pub fn snd_seq_port_info_set_port(info: *mut snd_seq_port_info_t, port: ::std::os::raw::c_int); +} +extern "C" { + pub fn snd_seq_port_info_set_addr(info: *mut snd_seq_port_info_t, addr: *const snd_seq_addr_t); +} +extern "C" { + pub fn snd_seq_port_info_set_name( + info: *mut snd_seq_port_info_t, + name: *const ::std::os::raw::c_char, + ); +} +extern "C" { + pub fn snd_seq_port_info_set_capability( + info: *mut snd_seq_port_info_t, + capability: ::std::os::raw::c_uint, + ); +} +extern "C" { + pub fn snd_seq_port_info_set_type( + info: *mut snd_seq_port_info_t, + type_: ::std::os::raw::c_uint, + ); +} +extern "C" { + pub fn snd_seq_port_info_set_midi_channels( + info: *mut snd_seq_port_info_t, + channels: ::std::os::raw::c_int, + ); +} +extern "C" { + pub fn snd_seq_port_info_set_midi_voices( + info: *mut snd_seq_port_info_t, + voices: ::std::os::raw::c_int, + ); +} +extern "C" { + pub fn snd_seq_port_info_set_synth_voices( + info: *mut snd_seq_port_info_t, + voices: ::std::os::raw::c_int, + ); +} +extern "C" { + pub fn snd_seq_port_info_set_port_specified( + info: *mut snd_seq_port_info_t, + val: ::std::os::raw::c_int, + ); +} +extern "C" { + pub fn snd_seq_port_info_set_timestamping( + info: *mut snd_seq_port_info_t, + enable: ::std::os::raw::c_int, + ); +} +extern "C" { + pub fn snd_seq_port_info_set_timestamp_real( + info: *mut snd_seq_port_info_t, + realtime: ::std::os::raw::c_int, + ); +} +extern "C" { + pub fn snd_seq_port_info_set_timestamp_queue( + info: *mut snd_seq_port_info_t, + queue: ::std::os::raw::c_int, + ); +} +extern "C" { + pub fn snd_seq_create_port( + handle: *mut snd_seq_t, + info: *mut snd_seq_port_info_t, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_seq_delete_port( + handle: *mut snd_seq_t, + port: ::std::os::raw::c_int, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_seq_get_port_info( + handle: *mut snd_seq_t, + port: ::std::os::raw::c_int, + info: *mut snd_seq_port_info_t, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_seq_get_any_port_info( + handle: *mut snd_seq_t, + client: ::std::os::raw::c_int, + port: ::std::os::raw::c_int, + info: *mut snd_seq_port_info_t, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_seq_set_port_info( + handle: *mut snd_seq_t, + port: ::std::os::raw::c_int, + info: *mut snd_seq_port_info_t, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_seq_query_next_port( + handle: *mut snd_seq_t, + info: *mut snd_seq_port_info_t, + ) -> ::std::os::raw::c_int; +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct _snd_seq_port_subscribe { + _unused: [u8; 0], +} +#[doc = " port subscription container"] +pub type snd_seq_port_subscribe_t = _snd_seq_port_subscribe; +extern "C" { + pub fn snd_seq_port_subscribe_sizeof() -> usize; +} +extern "C" { + pub fn snd_seq_port_subscribe_malloc( + ptr: *mut *mut snd_seq_port_subscribe_t, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_seq_port_subscribe_free(ptr: *mut snd_seq_port_subscribe_t); +} +extern "C" { + pub fn snd_seq_port_subscribe_copy( + dst: *mut snd_seq_port_subscribe_t, + src: *const snd_seq_port_subscribe_t, + ); +} +extern "C" { + pub fn snd_seq_port_subscribe_get_sender( + info: *const snd_seq_port_subscribe_t, + ) -> *const snd_seq_addr_t; +} +extern "C" { + pub fn snd_seq_port_subscribe_get_dest( + info: *const snd_seq_port_subscribe_t, + ) -> *const snd_seq_addr_t; +} +extern "C" { + pub fn snd_seq_port_subscribe_get_queue( + info: *const snd_seq_port_subscribe_t, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_seq_port_subscribe_get_exclusive( + info: *const snd_seq_port_subscribe_t, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_seq_port_subscribe_get_time_update( + info: *const snd_seq_port_subscribe_t, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_seq_port_subscribe_get_time_real( + info: *const snd_seq_port_subscribe_t, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_seq_port_subscribe_set_sender( + info: *mut snd_seq_port_subscribe_t, + addr: *const snd_seq_addr_t, + ); +} +extern "C" { + pub fn snd_seq_port_subscribe_set_dest( + info: *mut snd_seq_port_subscribe_t, + addr: *const snd_seq_addr_t, + ); +} +extern "C" { + pub fn snd_seq_port_subscribe_set_queue( + info: *mut snd_seq_port_subscribe_t, + q: ::std::os::raw::c_int, + ); +} +extern "C" { + pub fn snd_seq_port_subscribe_set_exclusive( + info: *mut snd_seq_port_subscribe_t, + val: ::std::os::raw::c_int, + ); +} +extern "C" { + pub fn snd_seq_port_subscribe_set_time_update( + info: *mut snd_seq_port_subscribe_t, + val: ::std::os::raw::c_int, + ); +} +extern "C" { + pub fn snd_seq_port_subscribe_set_time_real( + info: *mut snd_seq_port_subscribe_t, + val: ::std::os::raw::c_int, + ); +} +extern "C" { + pub fn snd_seq_get_port_subscription( + handle: *mut snd_seq_t, + sub: *mut snd_seq_port_subscribe_t, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_seq_subscribe_port( + handle: *mut snd_seq_t, + sub: *mut snd_seq_port_subscribe_t, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_seq_unsubscribe_port( + handle: *mut snd_seq_t, + sub: *mut snd_seq_port_subscribe_t, + ) -> ::std::os::raw::c_int; +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct _snd_seq_query_subscribe { + _unused: [u8; 0], +} +#[doc = " subscription query container"] +pub type snd_seq_query_subscribe_t = _snd_seq_query_subscribe; +#[doc = "< query read subscriptions"] +pub const SND_SEQ_QUERY_SUBS_READ: snd_seq_query_subs_type_t = 0; +#[doc = "< query write subscriptions"] +pub const SND_SEQ_QUERY_SUBS_WRITE: snd_seq_query_subs_type_t = 1; +#[doc = " type of query subscription"] +pub type snd_seq_query_subs_type_t = u32; +extern "C" { + pub fn snd_seq_query_subscribe_sizeof() -> usize; +} +extern "C" { + pub fn snd_seq_query_subscribe_malloc( + ptr: *mut *mut snd_seq_query_subscribe_t, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_seq_query_subscribe_free(ptr: *mut snd_seq_query_subscribe_t); +} +extern "C" { + pub fn snd_seq_query_subscribe_copy( + dst: *mut snd_seq_query_subscribe_t, + src: *const snd_seq_query_subscribe_t, + ); +} +extern "C" { + pub fn snd_seq_query_subscribe_get_client( + info: *const snd_seq_query_subscribe_t, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_seq_query_subscribe_get_port( + info: *const snd_seq_query_subscribe_t, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_seq_query_subscribe_get_root( + info: *const snd_seq_query_subscribe_t, + ) -> *const snd_seq_addr_t; +} +extern "C" { + pub fn snd_seq_query_subscribe_get_type( + info: *const snd_seq_query_subscribe_t, + ) -> snd_seq_query_subs_type_t; +} +extern "C" { + pub fn snd_seq_query_subscribe_get_index( + info: *const snd_seq_query_subscribe_t, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_seq_query_subscribe_get_num_subs( + info: *const snd_seq_query_subscribe_t, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_seq_query_subscribe_get_addr( + info: *const snd_seq_query_subscribe_t, + ) -> *const snd_seq_addr_t; +} +extern "C" { + pub fn snd_seq_query_subscribe_get_queue( + info: *const snd_seq_query_subscribe_t, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_seq_query_subscribe_get_exclusive( + info: *const snd_seq_query_subscribe_t, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_seq_query_subscribe_get_time_update( + info: *const snd_seq_query_subscribe_t, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_seq_query_subscribe_get_time_real( + info: *const snd_seq_query_subscribe_t, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_seq_query_subscribe_set_client( + info: *mut snd_seq_query_subscribe_t, + client: ::std::os::raw::c_int, + ); +} +extern "C" { + pub fn snd_seq_query_subscribe_set_port( + info: *mut snd_seq_query_subscribe_t, + port: ::std::os::raw::c_int, + ); +} +extern "C" { + pub fn snd_seq_query_subscribe_set_root( + info: *mut snd_seq_query_subscribe_t, + addr: *const snd_seq_addr_t, + ); +} +extern "C" { + pub fn snd_seq_query_subscribe_set_type( + info: *mut snd_seq_query_subscribe_t, + type_: snd_seq_query_subs_type_t, + ); +} +extern "C" { + pub fn snd_seq_query_subscribe_set_index( + info: *mut snd_seq_query_subscribe_t, + _index: ::std::os::raw::c_int, + ); +} +extern "C" { + pub fn snd_seq_query_port_subscribers( + seq: *mut snd_seq_t, + subs: *mut snd_seq_query_subscribe_t, + ) -> ::std::os::raw::c_int; +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct _snd_seq_queue_info { + _unused: [u8; 0], +} +#[doc = " queue information container"] +pub type snd_seq_queue_info_t = _snd_seq_queue_info; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct _snd_seq_queue_status { + _unused: [u8; 0], +} +#[doc = " queue status container"] +pub type snd_seq_queue_status_t = _snd_seq_queue_status; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct _snd_seq_queue_tempo { + _unused: [u8; 0], +} +#[doc = " queue tempo container"] +pub type snd_seq_queue_tempo_t = _snd_seq_queue_tempo; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct _snd_seq_queue_timer { + _unused: [u8; 0], +} +#[doc = " queue timer information container"] +pub type snd_seq_queue_timer_t = _snd_seq_queue_timer; +extern "C" { + pub fn snd_seq_queue_info_sizeof() -> usize; +} +extern "C" { + pub fn snd_seq_queue_info_malloc(ptr: *mut *mut snd_seq_queue_info_t) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_seq_queue_info_free(ptr: *mut snd_seq_queue_info_t); +} +extern "C" { + pub fn snd_seq_queue_info_copy( + dst: *mut snd_seq_queue_info_t, + src: *const snd_seq_queue_info_t, + ); +} +extern "C" { + pub fn snd_seq_queue_info_get_queue(info: *const snd_seq_queue_info_t) + -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_seq_queue_info_get_name( + info: *const snd_seq_queue_info_t, + ) -> *const ::std::os::raw::c_char; +} +extern "C" { + pub fn snd_seq_queue_info_get_owner(info: *const snd_seq_queue_info_t) + -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_seq_queue_info_get_locked( + info: *const snd_seq_queue_info_t, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_seq_queue_info_get_flags( + info: *const snd_seq_queue_info_t, + ) -> ::std::os::raw::c_uint; +} +extern "C" { + pub fn snd_seq_queue_info_set_name( + info: *mut snd_seq_queue_info_t, + name: *const ::std::os::raw::c_char, + ); +} +extern "C" { + pub fn snd_seq_queue_info_set_owner( + info: *mut snd_seq_queue_info_t, + owner: ::std::os::raw::c_int, + ); +} +extern "C" { + pub fn snd_seq_queue_info_set_locked( + info: *mut snd_seq_queue_info_t, + locked: ::std::os::raw::c_int, + ); +} +extern "C" { + pub fn snd_seq_queue_info_set_flags( + info: *mut snd_seq_queue_info_t, + flags: ::std::os::raw::c_uint, + ); +} +extern "C" { + pub fn snd_seq_create_queue( + seq: *mut snd_seq_t, + info: *mut snd_seq_queue_info_t, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_seq_alloc_named_queue( + seq: *mut snd_seq_t, + name: *const ::std::os::raw::c_char, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_seq_alloc_queue(handle: *mut snd_seq_t) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_seq_free_queue( + handle: *mut snd_seq_t, + q: ::std::os::raw::c_int, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_seq_get_queue_info( + seq: *mut snd_seq_t, + q: ::std::os::raw::c_int, + info: *mut snd_seq_queue_info_t, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_seq_set_queue_info( + seq: *mut snd_seq_t, + q: ::std::os::raw::c_int, + info: *mut snd_seq_queue_info_t, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_seq_query_named_queue( + seq: *mut snd_seq_t, + name: *const ::std::os::raw::c_char, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_seq_get_queue_usage( + handle: *mut snd_seq_t, + q: ::std::os::raw::c_int, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_seq_set_queue_usage( + handle: *mut snd_seq_t, + q: ::std::os::raw::c_int, + used: ::std::os::raw::c_int, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_seq_queue_status_sizeof() -> usize; +} +extern "C" { + pub fn snd_seq_queue_status_malloc( + ptr: *mut *mut snd_seq_queue_status_t, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_seq_queue_status_free(ptr: *mut snd_seq_queue_status_t); +} +extern "C" { + pub fn snd_seq_queue_status_copy( + dst: *mut snd_seq_queue_status_t, + src: *const snd_seq_queue_status_t, + ); +} +extern "C" { + pub fn snd_seq_queue_status_get_queue( + info: *const snd_seq_queue_status_t, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_seq_queue_status_get_events( + info: *const snd_seq_queue_status_t, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_seq_queue_status_get_tick_time( + info: *const snd_seq_queue_status_t, + ) -> snd_seq_tick_time_t; +} +extern "C" { + pub fn snd_seq_queue_status_get_real_time( + info: *const snd_seq_queue_status_t, + ) -> *const snd_seq_real_time_t; +} +extern "C" { + pub fn snd_seq_queue_status_get_status( + info: *const snd_seq_queue_status_t, + ) -> ::std::os::raw::c_uint; +} +extern "C" { + pub fn snd_seq_get_queue_status( + handle: *mut snd_seq_t, + q: ::std::os::raw::c_int, + status: *mut snd_seq_queue_status_t, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_seq_queue_tempo_sizeof() -> usize; +} +extern "C" { + pub fn snd_seq_queue_tempo_malloc( + ptr: *mut *mut snd_seq_queue_tempo_t, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_seq_queue_tempo_free(ptr: *mut snd_seq_queue_tempo_t); +} +extern "C" { + pub fn snd_seq_queue_tempo_copy( + dst: *mut snd_seq_queue_tempo_t, + src: *const snd_seq_queue_tempo_t, + ); +} +extern "C" { + pub fn snd_seq_queue_tempo_get_queue( + info: *const snd_seq_queue_tempo_t, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_seq_queue_tempo_get_tempo( + info: *const snd_seq_queue_tempo_t, + ) -> ::std::os::raw::c_uint; +} +extern "C" { + pub fn snd_seq_queue_tempo_get_ppq(info: *const snd_seq_queue_tempo_t) + -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_seq_queue_tempo_get_skew( + info: *const snd_seq_queue_tempo_t, + ) -> ::std::os::raw::c_uint; +} +extern "C" { + pub fn snd_seq_queue_tempo_get_skew_base( + info: *const snd_seq_queue_tempo_t, + ) -> ::std::os::raw::c_uint; +} +extern "C" { + pub fn snd_seq_queue_tempo_set_tempo( + info: *mut snd_seq_queue_tempo_t, + tempo: ::std::os::raw::c_uint, + ); +} +extern "C" { + pub fn snd_seq_queue_tempo_set_ppq( + info: *mut snd_seq_queue_tempo_t, + ppq: ::std::os::raw::c_int, + ); +} +extern "C" { + pub fn snd_seq_queue_tempo_set_skew( + info: *mut snd_seq_queue_tempo_t, + skew: ::std::os::raw::c_uint, + ); +} +extern "C" { + pub fn snd_seq_queue_tempo_set_skew_base( + info: *mut snd_seq_queue_tempo_t, + base: ::std::os::raw::c_uint, + ); +} +extern "C" { + pub fn snd_seq_get_queue_tempo( + handle: *mut snd_seq_t, + q: ::std::os::raw::c_int, + tempo: *mut snd_seq_queue_tempo_t, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_seq_set_queue_tempo( + handle: *mut snd_seq_t, + q: ::std::os::raw::c_int, + tempo: *mut snd_seq_queue_tempo_t, + ) -> ::std::os::raw::c_int; +} +pub const SND_SEQ_TIMER_ALSA: snd_seq_queue_timer_type_t = 0; +pub const SND_SEQ_TIMER_MIDI_CLOCK: snd_seq_queue_timer_type_t = 1; +pub const SND_SEQ_TIMER_MIDI_TICK: snd_seq_queue_timer_type_t = 2; +#[doc = " sequencer timer sources"] +pub type snd_seq_queue_timer_type_t = u32; +extern "C" { + pub fn snd_seq_queue_timer_sizeof() -> usize; +} +extern "C" { + pub fn snd_seq_queue_timer_malloc( + ptr: *mut *mut snd_seq_queue_timer_t, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_seq_queue_timer_free(ptr: *mut snd_seq_queue_timer_t); +} +extern "C" { + pub fn snd_seq_queue_timer_copy( + dst: *mut snd_seq_queue_timer_t, + src: *const snd_seq_queue_timer_t, + ); +} +extern "C" { + pub fn snd_seq_queue_timer_get_queue( + info: *const snd_seq_queue_timer_t, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_seq_queue_timer_get_type( + info: *const snd_seq_queue_timer_t, + ) -> snd_seq_queue_timer_type_t; +} +extern "C" { + pub fn snd_seq_queue_timer_get_id(info: *const snd_seq_queue_timer_t) -> *const snd_timer_id_t; +} +extern "C" { + pub fn snd_seq_queue_timer_get_resolution( + info: *const snd_seq_queue_timer_t, + ) -> ::std::os::raw::c_uint; +} +extern "C" { + pub fn snd_seq_queue_timer_set_type( + info: *mut snd_seq_queue_timer_t, + type_: snd_seq_queue_timer_type_t, + ); +} +extern "C" { + pub fn snd_seq_queue_timer_set_id(info: *mut snd_seq_queue_timer_t, id: *const snd_timer_id_t); +} +extern "C" { + pub fn snd_seq_queue_timer_set_resolution( + info: *mut snd_seq_queue_timer_t, + resolution: ::std::os::raw::c_uint, + ); +} +extern "C" { + pub fn snd_seq_get_queue_timer( + handle: *mut snd_seq_t, + q: ::std::os::raw::c_int, + timer: *mut snd_seq_queue_timer_t, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_seq_set_queue_timer( + handle: *mut snd_seq_t, + q: ::std::os::raw::c_int, + timer: *mut snd_seq_queue_timer_t, + ) -> ::std::os::raw::c_int; +} +extern "C" { + #[doc = " \\defgroup SeqEvent Sequencer Event API"] + #[doc = " Sequencer Event API"] + #[doc = " \\ingroup Sequencer"] + #[doc = " \\{"] + pub fn snd_seq_free_event(ev: *mut snd_seq_event_t) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_seq_event_length(ev: *mut snd_seq_event_t) -> isize; +} +extern "C" { + pub fn snd_seq_event_output( + handle: *mut snd_seq_t, + ev: *mut snd_seq_event_t, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_seq_event_output_buffer( + handle: *mut snd_seq_t, + ev: *mut snd_seq_event_t, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_seq_event_output_direct( + handle: *mut snd_seq_t, + ev: *mut snd_seq_event_t, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_seq_event_input( + handle: *mut snd_seq_t, + ev: *mut *mut snd_seq_event_t, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_seq_event_input_pending( + seq: *mut snd_seq_t, + fetch_sequencer: ::std::os::raw::c_int, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_seq_drain_output(handle: *mut snd_seq_t) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_seq_event_output_pending(seq: *mut snd_seq_t) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_seq_extract_output( + handle: *mut snd_seq_t, + ev: *mut *mut snd_seq_event_t, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_seq_drop_output(handle: *mut snd_seq_t) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_seq_drop_output_buffer(handle: *mut snd_seq_t) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_seq_drop_input(handle: *mut snd_seq_t) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_seq_drop_input_buffer(handle: *mut snd_seq_t) -> ::std::os::raw::c_int; +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct _snd_seq_remove_events { + _unused: [u8; 0], +} +#[doc = " event removal conditionals"] +pub type snd_seq_remove_events_t = _snd_seq_remove_events; +extern "C" { + pub fn snd_seq_remove_events_sizeof() -> usize; +} +extern "C" { + pub fn snd_seq_remove_events_malloc( + ptr: *mut *mut snd_seq_remove_events_t, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_seq_remove_events_free(ptr: *mut snd_seq_remove_events_t); +} +extern "C" { + pub fn snd_seq_remove_events_copy( + dst: *mut snd_seq_remove_events_t, + src: *const snd_seq_remove_events_t, + ); +} +extern "C" { + pub fn snd_seq_remove_events_get_condition( + info: *const snd_seq_remove_events_t, + ) -> ::std::os::raw::c_uint; +} +extern "C" { + pub fn snd_seq_remove_events_get_queue( + info: *const snd_seq_remove_events_t, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_seq_remove_events_get_time( + info: *const snd_seq_remove_events_t, + ) -> *const snd_seq_timestamp_t; +} +extern "C" { + pub fn snd_seq_remove_events_get_dest( + info: *const snd_seq_remove_events_t, + ) -> *const snd_seq_addr_t; +} +extern "C" { + pub fn snd_seq_remove_events_get_channel( + info: *const snd_seq_remove_events_t, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_seq_remove_events_get_event_type( + info: *const snd_seq_remove_events_t, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_seq_remove_events_get_tag( + info: *const snd_seq_remove_events_t, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_seq_remove_events_set_condition( + info: *mut snd_seq_remove_events_t, + flags: ::std::os::raw::c_uint, + ); +} +extern "C" { + pub fn snd_seq_remove_events_set_queue( + info: *mut snd_seq_remove_events_t, + queue: ::std::os::raw::c_int, + ); +} +extern "C" { + pub fn snd_seq_remove_events_set_time( + info: *mut snd_seq_remove_events_t, + time: *const snd_seq_timestamp_t, + ); +} +extern "C" { + pub fn snd_seq_remove_events_set_dest( + info: *mut snd_seq_remove_events_t, + addr: *const snd_seq_addr_t, + ); +} +extern "C" { + pub fn snd_seq_remove_events_set_channel( + info: *mut snd_seq_remove_events_t, + channel: ::std::os::raw::c_int, + ); +} +extern "C" { + pub fn snd_seq_remove_events_set_event_type( + info: *mut snd_seq_remove_events_t, + type_: ::std::os::raw::c_int, + ); +} +extern "C" { + pub fn snd_seq_remove_events_set_tag( + info: *mut snd_seq_remove_events_t, + tag: ::std::os::raw::c_int, + ); +} +extern "C" { + pub fn snd_seq_remove_events( + handle: *mut snd_seq_t, + info: *mut snd_seq_remove_events_t, + ) -> ::std::os::raw::c_int; +} +extern "C" { + #[doc = " \\defgroup SeqMisc Sequencer Miscellaneous"] + #[doc = " Sequencer Miscellaneous"] + #[doc = " \\ingroup Sequencer"] + #[doc = " \\{"] + pub fn snd_seq_set_bit(nr: ::std::os::raw::c_int, array: *mut ::std::os::raw::c_void); +} +extern "C" { + pub fn snd_seq_unset_bit(nr: ::std::os::raw::c_int, array: *mut ::std::os::raw::c_void); +} +extern "C" { + pub fn snd_seq_change_bit( + nr: ::std::os::raw::c_int, + array: *mut ::std::os::raw::c_void, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_seq_get_bit( + nr: ::std::os::raw::c_int, + array: *mut ::std::os::raw::c_void, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_seq_control_queue( + seq: *mut snd_seq_t, + q: ::std::os::raw::c_int, + type_: ::std::os::raw::c_int, + value: ::std::os::raw::c_int, + ev: *mut snd_seq_event_t, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_seq_create_simple_port( + seq: *mut snd_seq_t, + name: *const ::std::os::raw::c_char, + caps: ::std::os::raw::c_uint, + type_: ::std::os::raw::c_uint, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_seq_delete_simple_port( + seq: *mut snd_seq_t, + port: ::std::os::raw::c_int, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_seq_connect_from( + seq: *mut snd_seq_t, + my_port: ::std::os::raw::c_int, + src_client: ::std::os::raw::c_int, + src_port: ::std::os::raw::c_int, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_seq_connect_to( + seq: *mut snd_seq_t, + my_port: ::std::os::raw::c_int, + dest_client: ::std::os::raw::c_int, + dest_port: ::std::os::raw::c_int, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_seq_disconnect_from( + seq: *mut snd_seq_t, + my_port: ::std::os::raw::c_int, + src_client: ::std::os::raw::c_int, + src_port: ::std::os::raw::c_int, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_seq_disconnect_to( + seq: *mut snd_seq_t, + my_port: ::std::os::raw::c_int, + dest_client: ::std::os::raw::c_int, + dest_port: ::std::os::raw::c_int, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_seq_set_client_name( + seq: *mut snd_seq_t, + name: *const ::std::os::raw::c_char, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_seq_set_client_event_filter( + seq: *mut snd_seq_t, + event_type: ::std::os::raw::c_int, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_seq_set_client_pool_output( + seq: *mut snd_seq_t, + size: usize, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_seq_set_client_pool_output_room( + seq: *mut snd_seq_t, + size: usize, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_seq_set_client_pool_input(seq: *mut snd_seq_t, size: usize) + -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_seq_sync_output_queue(seq: *mut snd_seq_t) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_seq_parse_address( + seq: *mut snd_seq_t, + addr: *mut snd_seq_addr_t, + str: *const ::std::os::raw::c_char, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_seq_reset_pool_output(seq: *mut snd_seq_t) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_seq_reset_pool_input(seq: *mut snd_seq_t) -> ::std::os::raw::c_int; +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct snd_midi_event { + _unused: [u8; 0], +} +#[doc = " container for sequencer midi event parsers"] +pub type snd_midi_event_t = snd_midi_event; +extern "C" { + pub fn snd_midi_event_new( + bufsize: usize, + rdev: *mut *mut snd_midi_event_t, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_midi_event_resize_buffer( + dev: *mut snd_midi_event_t, + bufsize: usize, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_midi_event_free(dev: *mut snd_midi_event_t); +} +extern "C" { + pub fn snd_midi_event_init(dev: *mut snd_midi_event_t); +} +extern "C" { + pub fn snd_midi_event_reset_encode(dev: *mut snd_midi_event_t); +} +extern "C" { + pub fn snd_midi_event_reset_decode(dev: *mut snd_midi_event_t); +} +extern "C" { + pub fn snd_midi_event_no_status(dev: *mut snd_midi_event_t, on: ::std::os::raw::c_int); +} +extern "C" { + pub fn snd_midi_event_encode( + dev: *mut snd_midi_event_t, + buf: *const ::std::os::raw::c_uchar, + count: ::std::os::raw::c_long, + ev: *mut snd_seq_event_t, + ) -> ::std::os::raw::c_long; +} +extern "C" { + pub fn snd_midi_event_encode_byte( + dev: *mut snd_midi_event_t, + c: ::std::os::raw::c_int, + ev: *mut snd_seq_event_t, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn snd_midi_event_decode( + dev: *mut snd_midi_event_t, + buf: *mut ::std::os::raw::c_uchar, + count: ::std::os::raw::c_long, + ev: *const snd_seq_event_t, + ) -> ::std::os::raw::c_long; +} diff --git a/third_party/rust/alsa-sys/src/lib.rs b/third_party/rust/alsa-sys/src/lib.rs new file mode 100644 index 0000000000..2d5df0e09c --- /dev/null +++ b/third_party/rust/alsa-sys/src/lib.rs @@ -0,0 +1,40 @@ +#![allow(non_camel_case_types)] + +use libc::{FILE, pid_t, timeval, timespec, pollfd}; + +pub const SND_PCM_NONBLOCK: ::std::os::raw::c_int = 0x1; +pub const SND_PCM_ASYNC: ::std::os::raw::c_int = 0x2; + +pub const SND_SEQ_OPEN_OUTPUT: i32 = 1; +pub const SND_SEQ_OPEN_INPUT: i32 = 2; +pub const SND_SEQ_OPEN_DUPLEX: i32 = SND_SEQ_OPEN_OUTPUT | SND_SEQ_OPEN_INPUT; +pub const SND_SEQ_NONBLOCK: i32 = 0x0001; +pub const SND_SEQ_ADDRESS_BROADCAST: u8 = 255; +pub const SND_SEQ_ADDRESS_SUBSCRIBERS: u8 = 254; +pub const SND_SEQ_ADDRESS_UNKNOWN: u8 = 253; +pub const SND_SEQ_QUEUE_DIRECT: u8 = 253; +pub const SND_SEQ_TIME_MODE_MASK: u8 = 1<<1; +pub const SND_SEQ_TIME_STAMP_MASK: u8 = 1<<0; +pub const SND_SEQ_TIME_MODE_REL: u8 = 1<<1; +pub const SND_SEQ_TIME_STAMP_REAL: u8 = 1<<0; +pub const SND_SEQ_TIME_STAMP_TICK: u8 = 0<<0; +pub const SND_SEQ_TIME_MODE_ABS: u8 = 0<<1; +pub const SND_SEQ_CLIENT_SYSTEM: u8 = 0; +pub const SND_SEQ_PORT_SYSTEM_TIMER: u8 = 0; +pub const SND_SEQ_PORT_SYSTEM_ANNOUNCE: u8 = 1; +pub const SND_SEQ_PRIORITY_HIGH: u8 = 1<<4; +pub const SND_SEQ_EVENT_LENGTH_FIXED: u8 = 0<<2; +pub const SND_SEQ_EVENT_LENGTH_MASK: u8 = 3<<2; +pub const SND_SEQ_EVENT_LENGTH_VARIABLE: u8 = 1<<2; +pub const SND_SEQ_EVENT_LENGTH_VARUSR: u8 = 2<<2; + +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct __va_list_tag { + pub gp_offset: ::std::os::raw::c_uint, + pub fp_offset: ::std::os::raw::c_uint, + pub overflow_arg_area: *mut ::std::os::raw::c_void, + pub reg_save_area: *mut ::std::os::raw::c_void, +} + +include!("generated.rs"); |