/* automatically generated by rust-bindgen 0.72.1 */

#[repr(C)]
#[derive(Copy, Clone, Debug, Default, Eq, Hash, Ord, PartialEq, PartialOrd)]
pub struct __BindgenBitfieldUnit<Storage> {
    storage: Storage,
}
impl<Storage> __BindgenBitfieldUnit<Storage> {
    #[inline]
    pub const fn new(storage: Storage) -> Self {
        Self { storage }
    }
}
impl<Storage> __BindgenBitfieldUnit<Storage>
where
    Storage: AsRef<[u8]> + AsMut<[u8]>,
{
    #[inline]
    fn extract_bit(byte: u8, index: usize) -> bool {
        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 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];
        Self::extract_bit(byte, index)
    }
    #[inline]
    pub unsafe fn raw_get_bit(this: *const Self, index: usize) -> bool {
        debug_assert!(index / 8 < core::mem::size_of::<Storage>());
        let byte_index = index / 8;
        let byte = unsafe {
            *(core::ptr::addr_of!((*this).storage) as *const u8).offset(byte_index as isize)
        };
        Self::extract_bit(byte, index)
    }
    #[inline]
    fn change_bit(byte: u8, index: usize, val: bool) -> u8 {
        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 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];
        *byte = Self::change_bit(*byte, index, val);
    }
    #[inline]
    pub unsafe fn raw_set_bit(this: *mut Self, index: usize, val: bool) {
        debug_assert!(index / 8 < core::mem::size_of::<Storage>());
        let byte_index = index / 8;
        let byte = unsafe {
            (core::ptr::addr_of_mut!((*this).storage) as *mut u8).offset(byte_index as isize)
        };
        unsafe { *byte = Self::change_bit(*byte, index, val) };
    }
    #[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 unsafe fn raw_get(this: *const Self, bit_offset: usize, bit_width: u8) -> u64 {
        debug_assert!(bit_width <= 64);
        debug_assert!(bit_offset / 8 < core::mem::size_of::<Storage>());
        debug_assert!((bit_offset + (bit_width as usize)) / 8 <= core::mem::size_of::<Storage>());
        let mut val = 0;
        for i in 0..(bit_width as usize) {
            if unsafe { Self::raw_get_bit(this, 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);
        }
    }
    #[inline]
    pub unsafe fn raw_set(this: *mut Self, bit_offset: usize, bit_width: u8, val: u64) {
        debug_assert!(bit_width <= 64);
        debug_assert!(bit_offset / 8 < core::mem::size_of::<Storage>());
        debug_assert!((bit_offset + (bit_width as usize)) / 8 <= core::mem::size_of::<Storage>());
        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
            };
            unsafe { Self::raw_set_bit(this, index + bit_offset, val_bit_is_set) };
        }
    }
}
#[repr(C)]
#[derive(Default)]
pub struct __IncompleteArrayField<T>(::core::marker::PhantomData<T>, [T; 0]);
impl<T> __IncompleteArrayField<T> {
    #[inline]
    pub const fn new() -> Self {
        __IncompleteArrayField(::core::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] {
        ::core::slice::from_raw_parts(self.as_ptr(), len)
    }
    #[inline]
    pub unsafe fn as_mut_slice(&mut self, len: usize) -> &mut [T] {
        ::core::slice::from_raw_parts_mut(self.as_mut_ptr(), len)
    }
}
impl<T> ::core::fmt::Debug for __IncompleteArrayField<T> {
    fn fmt(&self, fmt: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        fmt.write_str("__IncompleteArrayField")
    }
}
pub const SND_LIB_MAJOR: u32 = 1;
pub const SND_LIB_MINOR: u32 = 2;
pub const SND_LIB_SUBMINOR: u32 = 15;
pub const SND_LIB_EXTRAVER: u32 = 1000000;
pub const SND_LIB_VERSION_STR: &[u8; 9] = b"1.2.15.3\0";
pub const SND_ERROR_BEGIN: u32 = 500000;
pub const SND_ERROR_INCOMPATIBLE_VERSION: u32 = 500000;
pub const SND_LOG_ERROR: u32 = 1;
pub const SND_LOG_WARN: u32 = 2;
pub const SND_LOG_INFO: u32 = 3;
pub const SND_LOG_DEBUG: u32 = 4;
pub const SND_LOG_TRACE: u32 = 5;
pub const SND_LOG_LAST: u32 = 5;
pub const SND_ILOG_CORE: u32 = 1;
pub const SND_ILOG_CONFIG: u32 = 2;
pub const SND_ILOG_CONTROL: u32 = 3;
pub const SND_ILOG_HWDEP: u32 = 4;
pub const SND_ILOG_TIMER: u32 = 5;
pub const SND_ILOG_RAWMIDI: u32 = 6;
pub const SND_ILOG_PCM: u32 = 7;
pub const SND_ILOG_MIXER: u32 = 8;
pub const SND_ILOG_SEQUENCER: u32 = 9;
pub const SND_ILOG_UCM: u32 = 10;
pub const SND_ILOG_TOPOLOGY: u32 = 11;
pub const SND_ILOG_ASERVER: u32 = 12;
pub const SND_ILOG_LAST: u32 = 12;
pub const SND_PCM_NONBLOCK: u32 = 1;
pub const SND_PCM_ASYNC: u32 = 2;
pub const SND_PCM_EINTR: u32 = 128;
pub const SND_PCM_ABORT: u32 = 32768;
pub const SND_PCM_NO_AUTO_RESAMPLE: u32 = 65536;
pub const SND_PCM_NO_AUTO_CHANNELS: u32 = 131072;
pub const SND_PCM_NO_AUTO_FORMAT: u32 = 262144;
pub const SND_PCM_NO_SOFTVOL: u32 = 524288;
pub const SND_PCM_HW_PARAMS_SYNC_SIZE: u32 = 16;
pub const SND_PCM_WAIT_INFINITE: i32 = -1;
pub const SND_PCM_WAIT_IO: i32 = -10001;
pub const SND_PCM_WAIT_DRAIN: i32 = -10002;
pub const SND_CHMAP_API_VERSION: u32 = 65537;
pub const SND_CHMAP_POSITION_MASK: u32 = 65535;
pub const SND_CHMAP_PHASE_INVERSE: u32 = 65536;
pub const SND_CHMAP_DRIVER_SPEC: u32 = 131072;
pub const SND_RAWMIDI_APPEND: u32 = 1;
pub const SND_RAWMIDI_NONBLOCK: u32 = 2;
pub const SND_RAWMIDI_SYNC: u32 = 4;
pub const SND_RAWMIDI_INFO_UMP: u32 = 8;
pub const SND_RAWMIDI_INFO_STREAM_INACTIVE: u32 = 16;
pub const SND_UMP_MAX_GROUPS: u32 = 16;
pub const SND_UMP_MAX_BLOCKS: u32 = 32;
pub const SND_UMP_EP_INFO_STATIC_BLOCKS: u32 = 1;
pub const SND_UMP_EP_INFO_PROTO_MIDI_MASK: u32 = 768;
pub const SND_UMP_EP_INFO_PROTO_MIDI1: u32 = 256;
pub const SND_UMP_EP_INFO_PROTO_MIDI2: u32 = 512;
pub const SND_UMP_EP_INFO_PROTO_JRTS_MASK: u32 = 3;
pub const SND_UMP_EP_INFO_PROTO_JRTS_TX: u32 = 1;
pub const SND_UMP_EP_INFO_PROTO_JRTS_RX: u32 = 2;
pub const SND_UMP_EP_INFO_DEFAULT_VERSION: u32 = 257;
pub const SND_UMP_BLOCK_IS_MIDI1: u32 = 1;
pub const SND_UMP_BLOCK_IS_LOWSPEED: u32 = 2;
pub const SND_UMP_BLOCK_INFO_DEFAULT_MIDI_CI_VERSION: u32 = 1;
pub const SND_TIMER_GLOBAL_SYSTEM: u32 = 0;
pub const SND_TIMER_GLOBAL_RTC: u32 = 1;
pub const SND_TIMER_GLOBAL_HPET: u32 = 2;
pub const SND_TIMER_GLOBAL_HRTIMER: u32 = 3;
pub const SND_TIMER_OPEN_NONBLOCK: u32 = 1;
pub const SND_TIMER_OPEN_TREAD: u32 = 2;
pub const SND_HWDEP_OPEN_READ: u32 = 0;
pub const SND_HWDEP_OPEN_WRITE: u32 = 1;
pub const SND_HWDEP_OPEN_DUPLEX: u32 = 2;
pub const SND_HWDEP_OPEN_NONBLOCK: u32 = 2048;
pub const SND_CTL_EVENT_MASK_REMOVE: i32 = -1;
pub const SND_CTL_EVENT_MASK_VALUE: u32 = 1;
pub const SND_CTL_EVENT_MASK_INFO: u32 = 2;
pub const SND_CTL_EVENT_MASK_ADD: u32 = 4;
pub const SND_CTL_EVENT_MASK_TLV: u32 = 8;
pub const SND_CTL_NAME_NONE: &[u8; 1] = b"\0";
pub const SND_CTL_NAME_PLAYBACK: &[u8; 10] = b"Playback \0";
pub const SND_CTL_NAME_CAPTURE: &[u8; 9] = b"Capture \0";
pub const SND_CTL_NAME_IEC958_NONE: &[u8; 1] = b"\0";
pub const SND_CTL_NAME_IEC958_SWITCH: &[u8; 7] = b"Switch\0";
pub const SND_CTL_NAME_IEC958_VOLUME: &[u8; 7] = b"Volume\0";
pub const SND_CTL_NAME_IEC958_DEFAULT: &[u8; 8] = b"Default\0";
pub const SND_CTL_NAME_IEC958_MASK: &[u8; 5] = b"Mask\0";
pub const SND_CTL_NAME_IEC958_CON_MASK: &[u8; 9] = b"Con Mask\0";
pub const SND_CTL_NAME_IEC958_PRO_MASK: &[u8; 9] = b"Pro Mask\0";
pub const SND_CTL_NAME_IEC958_PCM_STREAM: &[u8; 11] = b"PCM Stream\0";
pub const SND_CTL_POWER_MASK: u32 = 65280;
pub const SND_CTL_POWER_D0: u32 = 0;
pub const SND_CTL_POWER_D1: u32 = 256;
pub const SND_CTL_POWER_D2: u32 = 512;
pub const SND_CTL_POWER_D3: u32 = 768;
pub const SND_CTL_POWER_D3hot: u32 = 768;
pub const SND_CTL_POWER_D3cold: u32 = 769;
pub const SND_CTL_TLVT_CONTAINER: u32 = 0;
pub const SND_CTL_TLVT_DB_SCALE: u32 = 1;
pub const SND_CTL_TLVT_DB_LINEAR: u32 = 2;
pub const SND_CTL_TLVT_DB_RANGE: u32 = 3;
pub const SND_CTL_TLVT_DB_MINMAX: u32 = 4;
pub const SND_CTL_TLVT_DB_MINMAX_MUTE: u32 = 5;
pub const SND_CTL_TLV_DB_GAIN_MUTE: i32 = -9999999;
pub const SND_CTL_TLVT_CHMAP_FIXED: u32 = 257;
pub const SND_CTL_TLVT_CHMAP_VAR: u32 = 258;
pub const SND_CTL_TLVT_CHMAP_PAIRED: u32 = 259;
pub const SND_CTL_NONBLOCK: u32 = 1;
pub const SND_CTL_ASYNC: u32 = 2;
pub const SND_CTL_READONLY: u32 = 4;
pub const SND_CTL_EINTR: u32 = 128;
pub const SND_SCTL_NOFREE: u32 = 1;
pub const SND_SEQ_TIME_STAMP_TICK: u32 = 0;
pub const SND_SEQ_TIME_STAMP_REAL: u32 = 1;
pub const SND_SEQ_TIME_STAMP_MASK: u32 = 1;
pub const SND_SEQ_TIME_MODE_ABS: u32 = 0;
pub const SND_SEQ_TIME_MODE_REL: u32 = 2;
pub const SND_SEQ_TIME_MODE_MASK: u32 = 2;
pub const SND_SEQ_EVENT_LENGTH_FIXED: u32 = 0;
pub const SND_SEQ_EVENT_LENGTH_VARIABLE: u32 = 4;
pub const SND_SEQ_EVENT_LENGTH_VARUSR: u32 = 8;
pub const SND_SEQ_EVENT_LENGTH_MASK: u32 = 12;
pub const SND_SEQ_PRIORITY_NORMAL: u32 = 0;
pub const SND_SEQ_PRIORITY_HIGH: u32 = 16;
pub const SND_SEQ_PRIORITY_MASK: u32 = 16;
pub const SND_SEQ_EVENT_UMP: u32 = 32;
pub const SND_SEQ_OPEN_OUTPUT: u32 = 1;
pub const SND_SEQ_OPEN_INPUT: u32 = 2;
pub const SND_SEQ_OPEN_DUPLEX: u32 = 3;
pub const SND_SEQ_NONBLOCK: u32 = 1;
pub const SND_SEQ_ADDRESS_UNKNOWN: u32 = 253;
pub const SND_SEQ_ADDRESS_SUBSCRIBERS: u32 = 254;
pub const SND_SEQ_ADDRESS_BROADCAST: u32 = 255;
pub const SND_SEQ_CLIENT_SYSTEM: u32 = 0;
pub const SND_SEQ_PORT_SYSTEM_TIMER: u32 = 0;
pub const SND_SEQ_PORT_SYSTEM_ANNOUNCE: u32 = 1;
pub const SND_SEQ_PORT_CAP_READ: u32 = 1;
pub const SND_SEQ_PORT_CAP_WRITE: u32 = 2;
pub const SND_SEQ_PORT_CAP_SYNC_READ: u32 = 4;
pub const SND_SEQ_PORT_CAP_SYNC_WRITE: u32 = 8;
pub const SND_SEQ_PORT_CAP_DUPLEX: u32 = 16;
pub const SND_SEQ_PORT_CAP_SUBS_READ: u32 = 32;
pub const SND_SEQ_PORT_CAP_SUBS_WRITE: u32 = 64;
pub const SND_SEQ_PORT_CAP_NO_EXPORT: u32 = 128;
pub const SND_SEQ_PORT_CAP_INACTIVE: u32 = 256;
pub const SND_SEQ_PORT_CAP_UMP_ENDPOINT: u32 = 512;
pub const SND_SEQ_PORT_DIR_UNKNOWN: u32 = 0;
pub const SND_SEQ_PORT_DIR_INPUT: u32 = 1;
pub const SND_SEQ_PORT_DIR_OUTPUT: u32 = 2;
pub const SND_SEQ_PORT_DIR_BIDIRECTION: u32 = 3;
pub const SND_SEQ_PORT_TYPE_SPECIFIC: u32 = 1;
pub const SND_SEQ_PORT_TYPE_MIDI_GENERIC: u32 = 2;
pub const SND_SEQ_PORT_TYPE_MIDI_GM: u32 = 4;
pub const SND_SEQ_PORT_TYPE_MIDI_GS: u32 = 8;
pub const SND_SEQ_PORT_TYPE_MIDI_XG: u32 = 16;
pub const SND_SEQ_PORT_TYPE_MIDI_MT32: u32 = 32;
pub const SND_SEQ_PORT_TYPE_MIDI_GM2: u32 = 64;
pub const SND_SEQ_PORT_TYPE_MIDI_UMP: u32 = 128;
pub const SND_SEQ_PORT_TYPE_SYNTH: u32 = 1024;
pub const SND_SEQ_PORT_TYPE_DIRECT_SAMPLE: u32 = 2048;
pub const SND_SEQ_PORT_TYPE_SAMPLE: u32 = 4096;
pub const SND_SEQ_PORT_TYPE_HARDWARE: u32 = 65536;
pub const SND_SEQ_PORT_TYPE_SOFTWARE: u32 = 131072;
pub const SND_SEQ_PORT_TYPE_SYNTHESIZER: u32 = 262144;
pub const SND_SEQ_PORT_TYPE_PORT: u32 = 524288;
pub const SND_SEQ_PORT_TYPE_APPLICATION: u32 = 1048576;
pub const SND_SEQ_QUEUE_DIRECT: u32 = 253;
pub const SND_SEQ_REMOVE_INPUT: u32 = 1;
pub const SND_SEQ_REMOVE_OUTPUT: u32 = 2;
pub const SND_SEQ_REMOVE_DEST: u32 = 4;
pub const SND_SEQ_REMOVE_DEST_CHANNEL: u32 = 8;
pub const SND_SEQ_REMOVE_TIME_BEFORE: u32 = 16;
pub const SND_SEQ_REMOVE_TIME_AFTER: u32 = 32;
pub const SND_SEQ_REMOVE_TIME_TICK: u32 = 64;
pub const SND_SEQ_REMOVE_EVENT_TYPE: u32 = 128;
pub const SND_SEQ_REMOVE_IGNORE_OFF: u32 = 256;
pub const SND_SEQ_REMOVE_TAG_MATCH: u32 = 512;
pub type __gnuc_va_list = __builtin_va_list;
pub type va_list = __gnuc_va_list;
unsafe extern "C" {
    pub fn snd_asoundlib_version() -> *const ::core::ffi::c_char;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct snd_dlsym_link {
    pub next: *mut snd_dlsym_link,
    pub dlsym_name: *const ::core::ffi::c_char,
    pub dlsym_ptr: *const ::core::ffi::c_void,
}
unsafe extern "C" {
    pub fn snd_dlpath(
        path: *mut ::core::ffi::c_char,
        path_len: usize,
        name: *const ::core::ffi::c_char,
    ) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_dlopen(
        file: *const ::core::ffi::c_char,
        mode: ::core::ffi::c_int,
        errbuf: *mut ::core::ffi::c_char,
        errbuflen: usize,
    ) -> *mut ::core::ffi::c_void;
}
unsafe extern "C" {
    pub fn snd_dlsym(
        handle: *mut ::core::ffi::c_void,
        name: *const ::core::ffi::c_char,
        version: *const ::core::ffi::c_char,
    ) -> *mut ::core::ffi::c_void;
}
unsafe extern "C" {
    pub fn snd_dlclose(handle: *mut ::core::ffi::c_void) -> ::core::ffi::c_int;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _snd_async_handler {
    _unused: [u8; 0],
}
pub type snd_async_handler_t = _snd_async_handler;
pub type snd_async_callback_t =
    ::core::option::Option<unsafe extern "C" fn(handler: *mut snd_async_handler_t)>;
unsafe extern "C" {
    pub fn snd_async_add_handler(
        handler: *mut *mut snd_async_handler_t,
        fd: ::core::ffi::c_int,
        callback: snd_async_callback_t,
        private_data: *mut ::core::ffi::c_void,
    ) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_async_del_handler(handler: *mut snd_async_handler_t) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_async_handler_get_fd(handler: *mut snd_async_handler_t) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_async_handler_get_signo(handler: *mut snd_async_handler_t) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_async_handler_get_callback_private(
        handler: *mut snd_async_handler_t,
    ) -> *mut ::core::ffi::c_void;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct snd_shm_area {
    _unused: [u8; 0],
}
unsafe extern "C" {
    pub fn snd_shm_area_create(
        shmid: ::core::ffi::c_int,
        ptr: *mut ::core::ffi::c_void,
    ) -> *mut snd_shm_area;
}
unsafe extern "C" {
    pub fn snd_shm_area_share(area: *mut snd_shm_area) -> *mut snd_shm_area;
}
unsafe extern "C" {
    pub fn snd_shm_area_destroy(area: *mut snd_shm_area) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_user_file(
        file: *const ::core::ffi::c_char,
        result: *mut *mut ::core::ffi::c_char,
    ) -> ::core::ffi::c_int;
}
pub type snd_timestamp_t = timeval;
pub type snd_htimestamp_t = timespec;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _snd_input {
    _unused: [u8; 0],
}
pub type snd_input_t = _snd_input;
pub const SND_INPUT_STDIO: _snd_input_type = 0;
pub const SND_INPUT_BUFFER: _snd_input_type = 1;
pub type _snd_input_type = ::core::ffi::c_uint;
pub use self::_snd_input_type as snd_input_type_t;
unsafe extern "C" {
    pub fn snd_input_stdio_open(
        inputp: *mut *mut snd_input_t,
        file: *const ::core::ffi::c_char,
        mode: *const ::core::ffi::c_char,
    ) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_input_stdio_attach(
        inputp: *mut *mut snd_input_t,
        fp: *mut FILE,
        _close: ::core::ffi::c_int,
    ) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_input_buffer_open(
        inputp: *mut *mut snd_input_t,
        buffer: *const ::core::ffi::c_char,
        size: isize,
    ) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_input_close(input: *mut snd_input_t) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_input_scanf(
        input: *mut snd_input_t,
        format: *const ::core::ffi::c_char,
        ...
    ) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_input_gets(
        input: *mut snd_input_t,
        str_: *mut ::core::ffi::c_char,
        size: usize,
    ) -> *mut ::core::ffi::c_char;
}
unsafe extern "C" {
    pub fn snd_input_getc(input: *mut snd_input_t) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_input_ungetc(input: *mut snd_input_t, c: ::core::ffi::c_int) -> ::core::ffi::c_int;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _snd_output {
    _unused: [u8; 0],
}
pub type snd_output_t = _snd_output;
pub const SND_OUTPUT_STDIO: _snd_output_type = 0;
pub const SND_OUTPUT_BUFFER: _snd_output_type = 1;
pub type _snd_output_type = ::core::ffi::c_uint;
pub use self::_snd_output_type as snd_output_type_t;
unsafe extern "C" {
    pub fn snd_output_stdio_open(
        outputp: *mut *mut snd_output_t,
        file: *const ::core::ffi::c_char,
        mode: *const ::core::ffi::c_char,
    ) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_output_stdio_attach(
        outputp: *mut *mut snd_output_t,
        fp: *mut FILE,
        _close: ::core::ffi::c_int,
    ) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_output_buffer_open(outputp: *mut *mut snd_output_t) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_output_buffer_string(
        output: *mut snd_output_t,
        buf: *mut *mut ::core::ffi::c_char,
    ) -> usize;
}
unsafe extern "C" {
    pub fn snd_output_buffer_steal(
        output: *mut snd_output_t,
        buf: *mut *mut ::core::ffi::c_char,
    ) -> usize;
}
unsafe extern "C" {
    pub fn snd_output_close(output: *mut snd_output_t) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_output_printf(
        output: *mut snd_output_t,
        format: *const ::core::ffi::c_char,
        ...
    ) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_output_vprintf(
        output: *mut snd_output_t,
        format: *const ::core::ffi::c_char,
        args: *mut __va_list_tag,
    ) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_output_puts(
        output: *mut snd_output_t,
        str_: *const ::core::ffi::c_char,
    ) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_output_putc(output: *mut snd_output_t, c: ::core::ffi::c_int) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_output_flush(output: *mut snd_output_t) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_strerror(errnum: ::core::ffi::c_int) -> *const ::core::ffi::c_char;
}
pub type snd_lib_log_handler_t = ::core::option::Option<
    unsafe extern "C" fn(
        prio: ::core::ffi::c_int,
        interface: ::core::ffi::c_int,
        file: *const ::core::ffi::c_char,
        line: ::core::ffi::c_int,
        function: *const ::core::ffi::c_char,
        errcode: ::core::ffi::c_int,
        fmt: *const ::core::ffi::c_char,
        arg: *mut __va_list_tag,
    ),
>;
unsafe extern "C" {
    pub fn snd_lib_log_filter(
        prio: ::core::ffi::c_int,
        interface: ::core::ffi::c_int,
        configstr: *const ::core::ffi::c_char,
    ) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_lib_log(
        prio: ::core::ffi::c_int,
        interface: ::core::ffi::c_int,
        file: *const ::core::ffi::c_char,
        line: ::core::ffi::c_int,
        function: *const ::core::ffi::c_char,
        errcode: ::core::ffi::c_int,
        fmt: *const ::core::ffi::c_char,
        ...
    );
}
unsafe extern "C" {
    pub fn snd_lib_check(
        interface: ::core::ffi::c_int,
        file: *const ::core::ffi::c_char,
        line: ::core::ffi::c_int,
        function: *const ::core::ffi::c_char,
        errcode: ::core::ffi::c_int,
        fmt: *const ::core::ffi::c_char,
        ...
    );
}
unsafe extern "C" {
    pub fn snd_lib_log_set_handler(handler: snd_lib_log_handler_t) -> snd_lib_log_handler_t;
}
unsafe extern "C" {
    pub fn snd_lib_log_set_local(handler: snd_lib_log_handler_t) -> snd_lib_log_handler_t;
}
unsafe extern "C" {
    pub fn snd_lib_log_priority(prio: ::core::ffi::c_int) -> *const ::core::ffi::c_char;
}
unsafe extern "C" {
    pub fn snd_lib_log_interface(interface: ::core::ffi::c_int) -> *const ::core::ffi::c_char;
}
pub type snd_lib_error_handler_t = ::core::option::Option<
    unsafe extern "C" fn(
        file: *const ::core::ffi::c_char,
        line: ::core::ffi::c_int,
        function: *const ::core::ffi::c_char,
        errcode: ::core::ffi::c_int,
        fmt: *const ::core::ffi::c_char,
        ...
    ),
>;
unsafe extern "C" {
    pub fn snd_lib_error_set_handler(handler: snd_lib_error_handler_t) -> ::core::ffi::c_int;
}
pub type snd_local_error_handler_t = ::core::option::Option<
    unsafe extern "C" fn(
        file: *const ::core::ffi::c_char,
        line: ::core::ffi::c_int,
        func: *const ::core::ffi::c_char,
        errcode: ::core::ffi::c_int,
        fmt: *const ::core::ffi::c_char,
        arg: *mut __va_list_tag,
    ),
>;
unsafe extern "C" {
    pub fn snd_lib_error_set_local(func: snd_local_error_handler_t) -> snd_local_error_handler_t;
}
pub const SND_CONFIG_TYPE_INTEGER: _snd_config_type = 0;
pub const SND_CONFIG_TYPE_INTEGER64: _snd_config_type = 1;
pub const SND_CONFIG_TYPE_REAL: _snd_config_type = 2;
pub const SND_CONFIG_TYPE_STRING: _snd_config_type = 3;
pub const SND_CONFIG_TYPE_POINTER: _snd_config_type = 4;
pub const SND_CONFIG_TYPE_COMPOUND: _snd_config_type = 1024;
pub type _snd_config_type = ::core::ffi::c_uint;
pub use self::_snd_config_type as snd_config_type_t;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _snd_config {
    _unused: [u8; 0],
}
pub type snd_config_t = _snd_config;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _snd_config_iterator {
    _unused: [u8; 0],
}
pub type snd_config_iterator_t = *mut _snd_config_iterator;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _snd_config_update {
    _unused: [u8; 0],
}
pub type snd_config_update_t = _snd_config_update;
unsafe extern "C" {
    pub fn snd_config_topdir() -> *const ::core::ffi::c_char;
}
unsafe extern "C" {
    pub fn snd_config_top(config: *mut *mut snd_config_t) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_config_load(config: *mut snd_config_t, in_: *mut snd_input_t) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_config_load_string(
        config: *mut *mut snd_config_t,
        s: *const ::core::ffi::c_char,
        size: usize,
    ) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_config_load_override(
        config: *mut snd_config_t,
        in_: *mut snd_input_t,
    ) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_config_save(config: *mut snd_config_t, out: *mut snd_output_t)
    -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_config_update() -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_config_update_r(
        top: *mut *mut snd_config_t,
        update: *mut *mut snd_config_update_t,
        path: *const ::core::ffi::c_char,
    ) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_config_update_free(update: *mut snd_config_update_t) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_config_update_free_global() -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_config_update_ref(top: *mut *mut snd_config_t) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_config_ref(top: *mut snd_config_t);
}
unsafe extern "C" {
    pub fn snd_config_unref(top: *mut snd_config_t);
}
unsafe extern "C" {
    pub fn snd_config_search(
        config: *mut snd_config_t,
        key: *const ::core::ffi::c_char,
        result: *mut *mut snd_config_t,
    ) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_config_searchv(
        config: *mut snd_config_t,
        result: *mut *mut snd_config_t,
        ...
    ) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_config_search_definition(
        config: *mut snd_config_t,
        base: *const ::core::ffi::c_char,
        key: *const ::core::ffi::c_char,
        result: *mut *mut snd_config_t,
    ) -> ::core::ffi::c_int;
}
pub type snd_config_expand_fcn_t = ::core::option::Option<
    unsafe extern "C" fn(
        dst: *mut *mut snd_config_t,
        s: *const ::core::ffi::c_char,
        private_data: *mut ::core::ffi::c_void,
    ) -> ::core::ffi::c_int,
>;
unsafe extern "C" {
    pub fn snd_config_expand_custom(
        config: *mut snd_config_t,
        root: *mut snd_config_t,
        fcn: snd_config_expand_fcn_t,
        private_data: *mut ::core::ffi::c_void,
        result: *mut *mut snd_config_t,
    ) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_config_expand(
        config: *mut snd_config_t,
        root: *mut snd_config_t,
        args: *const ::core::ffi::c_char,
        private_data: *mut snd_config_t,
        result: *mut *mut snd_config_t,
    ) -> ::core::ffi::c_int;
}
unsafe 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,
    ) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_config_evaluate_string(
        dst: *mut *mut snd_config_t,
        s: *const ::core::ffi::c_char,
        fcn: snd_config_expand_fcn_t,
        private_data: *mut ::core::ffi::c_void,
    ) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_config_add(
        config: *mut snd_config_t,
        child: *mut snd_config_t,
    ) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_config_add_before(
        before: *mut snd_config_t,
        child: *mut snd_config_t,
    ) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_config_add_after(
        after: *mut snd_config_t,
        child: *mut snd_config_t,
    ) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_config_remove(config: *mut snd_config_t) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_config_delete(config: *mut snd_config_t) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_config_delete_compound_members(config: *const snd_config_t) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_config_copy(
        dst: *mut *mut snd_config_t,
        src: *mut snd_config_t,
    ) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_config_substitute(
        dst: *mut snd_config_t,
        src: *mut snd_config_t,
    ) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_config_merge(
        dst: *mut snd_config_t,
        src: *mut snd_config_t,
        override_: ::core::ffi::c_int,
    ) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_config_make(
        config: *mut *mut snd_config_t,
        key: *const ::core::ffi::c_char,
        type_: snd_config_type_t,
    ) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_config_make_integer(
        config: *mut *mut snd_config_t,
        key: *const ::core::ffi::c_char,
    ) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_config_make_integer64(
        config: *mut *mut snd_config_t,
        key: *const ::core::ffi::c_char,
    ) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_config_make_real(
        config: *mut *mut snd_config_t,
        key: *const ::core::ffi::c_char,
    ) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_config_make_string(
        config: *mut *mut snd_config_t,
        key: *const ::core::ffi::c_char,
    ) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_config_make_pointer(
        config: *mut *mut snd_config_t,
        key: *const ::core::ffi::c_char,
    ) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_config_make_compound(
        config: *mut *mut snd_config_t,
        key: *const ::core::ffi::c_char,
        join: ::core::ffi::c_int,
    ) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_config_make_path(
        config: *mut *mut snd_config_t,
        root: *mut snd_config_t,
        key: *const ::core::ffi::c_char,
        join: ::core::ffi::c_int,
        override_: ::core::ffi::c_int,
    ) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_config_imake_integer(
        config: *mut *mut snd_config_t,
        key: *const ::core::ffi::c_char,
        value: ::core::ffi::c_long,
    ) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_config_imake_integer64(
        config: *mut *mut snd_config_t,
        key: *const ::core::ffi::c_char,
        value: ::core::ffi::c_longlong,
    ) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_config_imake_real(
        config: *mut *mut snd_config_t,
        key: *const ::core::ffi::c_char,
        value: f64,
    ) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_config_imake_string(
        config: *mut *mut snd_config_t,
        key: *const ::core::ffi::c_char,
        ascii: *const ::core::ffi::c_char,
    ) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_config_imake_safe_string(
        config: *mut *mut snd_config_t,
        key: *const ::core::ffi::c_char,
        ascii: *const ::core::ffi::c_char,
    ) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_config_imake_pointer(
        config: *mut *mut snd_config_t,
        key: *const ::core::ffi::c_char,
        ptr: *const ::core::ffi::c_void,
    ) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_config_get_type(config: *const snd_config_t) -> snd_config_type_t;
}
unsafe extern "C" {
    pub fn snd_config_is_array(config: *const snd_config_t) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_config_is_empty(config: *const snd_config_t) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_config_set_id(
        config: *mut snd_config_t,
        id: *const ::core::ffi::c_char,
    ) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_config_set_integer(
        config: *mut snd_config_t,
        value: ::core::ffi::c_long,
    ) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_config_set_integer64(
        config: *mut snd_config_t,
        value: ::core::ffi::c_longlong,
    ) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_config_set_real(config: *mut snd_config_t, value: f64) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_config_set_string(
        config: *mut snd_config_t,
        value: *const ::core::ffi::c_char,
    ) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_config_set_ascii(
        config: *mut snd_config_t,
        ascii: *const ::core::ffi::c_char,
    ) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_config_set_pointer(
        config: *mut snd_config_t,
        ptr: *const ::core::ffi::c_void,
    ) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_config_get_id(
        config: *const snd_config_t,
        value: *mut *const ::core::ffi::c_char,
    ) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_config_get_integer(
        config: *const snd_config_t,
        value: *mut ::core::ffi::c_long,
    ) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_config_get_integer64(
        config: *const snd_config_t,
        value: *mut ::core::ffi::c_longlong,
    ) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_config_get_real(config: *const snd_config_t, value: *mut f64) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_config_get_ireal(config: *const snd_config_t, value: *mut f64)
    -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_config_get_string(
        config: *const snd_config_t,
        value: *mut *const ::core::ffi::c_char,
    ) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_config_get_ascii(
        config: *const snd_config_t,
        value: *mut *mut ::core::ffi::c_char,
    ) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_config_get_pointer(
        config: *const snd_config_t,
        value: *mut *const ::core::ffi::c_void,
    ) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_config_test_id(
        config: *const snd_config_t,
        id: *const ::core::ffi::c_char,
    ) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_config_iterator_first(node: *const snd_config_t) -> snd_config_iterator_t;
}
unsafe extern "C" {
    pub fn snd_config_iterator_next(iterator: snd_config_iterator_t) -> snd_config_iterator_t;
}
unsafe extern "C" {
    pub fn snd_config_iterator_end(node: *const snd_config_t) -> snd_config_iterator_t;
}
unsafe extern "C" {
    pub fn snd_config_iterator_entry(iterator: snd_config_iterator_t) -> *mut snd_config_t;
}
unsafe extern "C" {
    pub fn snd_config_get_bool_ascii(ascii: *const ::core::ffi::c_char) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_config_get_bool(conf: *const snd_config_t) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_config_get_card(conf: *const snd_config_t) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_config_get_ctl_iface_ascii(ascii: *const ::core::ffi::c_char) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_config_get_ctl_iface(conf: *const snd_config_t) -> ::core::ffi::c_int;
}
pub type snd_devname_t = snd_devname;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct snd_devname {
    pub name: *mut ::core::ffi::c_char,
    pub comment: *mut ::core::ffi::c_char,
    pub next: *mut snd_devname_t,
}
unsafe extern "C" {
    pub fn snd_names_list(
        iface: *const ::core::ffi::c_char,
        list: *mut *mut snd_devname_t,
    ) -> ::core::ffi::c_int;
}
unsafe 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],
}
pub type snd_pcm_info_t = _snd_pcm_info;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _snd_pcm_hw_params {
    _unused: [u8; 0],
}
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],
}
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],
}
pub type snd_pcm_status_t = _snd_pcm_status;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _snd_pcm_access_mask {
    _unused: [u8; 0],
}
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],
}
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],
}
pub type snd_pcm_subformat_mask_t = _snd_pcm_subformat_mask;
pub const SND_PCM_CLASS_GENERIC: _snd_pcm_class = 0;
pub const SND_PCM_CLASS_MULTI: _snd_pcm_class = 1;
pub const SND_PCM_CLASS_MODEM: _snd_pcm_class = 2;
pub const SND_PCM_CLASS_DIGITIZER: _snd_pcm_class = 3;
pub const SND_PCM_CLASS_LAST: _snd_pcm_class = 3;
pub type _snd_pcm_class = ::core::ffi::c_uint;
pub use self::_snd_pcm_class as snd_pcm_class_t;
pub const SND_PCM_SUBCLASS_GENERIC_MIX: _snd_pcm_subclass = 0;
pub const SND_PCM_SUBCLASS_MULTI_MIX: _snd_pcm_subclass = 1;
pub const SND_PCM_SUBCLASS_LAST: _snd_pcm_subclass = 1;
pub type _snd_pcm_subclass = ::core::ffi::c_uint;
pub use self::_snd_pcm_subclass as snd_pcm_subclass_t;
pub const SND_PCM_STREAM_PLAYBACK: _snd_pcm_stream = 0;
pub const SND_PCM_STREAM_CAPTURE: _snd_pcm_stream = 1;
pub const SND_PCM_STREAM_LAST: _snd_pcm_stream = 1;
pub type _snd_pcm_stream = ::core::ffi::c_uint;
pub use self::_snd_pcm_stream as snd_pcm_stream_t;
pub const SND_PCM_ACCESS_MMAP_INTERLEAVED: _snd_pcm_access = 0;
pub const SND_PCM_ACCESS_MMAP_NONINTERLEAVED: _snd_pcm_access = 1;
pub const SND_PCM_ACCESS_MMAP_COMPLEX: _snd_pcm_access = 2;
pub const SND_PCM_ACCESS_RW_INTERLEAVED: _snd_pcm_access = 3;
pub const SND_PCM_ACCESS_RW_NONINTERLEAVED: _snd_pcm_access = 4;
pub const SND_PCM_ACCESS_LAST: _snd_pcm_access = 4;
pub type _snd_pcm_access = ::core::ffi::c_uint;
pub use self::_snd_pcm_access as snd_pcm_access_t;
pub const SND_PCM_FORMAT_UNKNOWN: _snd_pcm_format = -1;
pub const SND_PCM_FORMAT_S8: _snd_pcm_format = 0;
pub const SND_PCM_FORMAT_U8: _snd_pcm_format = 1;
pub const SND_PCM_FORMAT_S16_LE: _snd_pcm_format = 2;
pub const SND_PCM_FORMAT_S16_BE: _snd_pcm_format = 3;
pub const SND_PCM_FORMAT_U16_LE: _snd_pcm_format = 4;
pub const SND_PCM_FORMAT_U16_BE: _snd_pcm_format = 5;
pub const SND_PCM_FORMAT_S24_LE: _snd_pcm_format = 6;
pub const SND_PCM_FORMAT_S24_BE: _snd_pcm_format = 7;
pub const SND_PCM_FORMAT_U24_LE: _snd_pcm_format = 8;
pub const SND_PCM_FORMAT_U24_BE: _snd_pcm_format = 9;
pub const SND_PCM_FORMAT_S32_LE: _snd_pcm_format = 10;
pub const SND_PCM_FORMAT_S32_BE: _snd_pcm_format = 11;
pub const SND_PCM_FORMAT_U32_LE: _snd_pcm_format = 12;
pub const SND_PCM_FORMAT_U32_BE: _snd_pcm_format = 13;
pub const SND_PCM_FORMAT_FLOAT_LE: _snd_pcm_format = 14;
pub const SND_PCM_FORMAT_FLOAT_BE: _snd_pcm_format = 15;
pub const SND_PCM_FORMAT_FLOAT64_LE: _snd_pcm_format = 16;
pub const SND_PCM_FORMAT_FLOAT64_BE: _snd_pcm_format = 17;
pub const SND_PCM_FORMAT_IEC958_SUBFRAME_LE: _snd_pcm_format = 18;
pub const SND_PCM_FORMAT_IEC958_SUBFRAME_BE: _snd_pcm_format = 19;
pub const SND_PCM_FORMAT_MU_LAW: _snd_pcm_format = 20;
pub const SND_PCM_FORMAT_A_LAW: _snd_pcm_format = 21;
pub const SND_PCM_FORMAT_IMA_ADPCM: _snd_pcm_format = 22;
pub const SND_PCM_FORMAT_MPEG: _snd_pcm_format = 23;
pub const SND_PCM_FORMAT_GSM: _snd_pcm_format = 24;
pub const SND_PCM_FORMAT_S20_LE: _snd_pcm_format = 25;
pub const SND_PCM_FORMAT_S20_BE: _snd_pcm_format = 26;
pub const SND_PCM_FORMAT_U20_LE: _snd_pcm_format = 27;
pub const SND_PCM_FORMAT_U20_BE: _snd_pcm_format = 28;
pub const SND_PCM_FORMAT_SPECIAL: _snd_pcm_format = 31;
pub const SND_PCM_FORMAT_S24_3LE: _snd_pcm_format = 32;
pub const SND_PCM_FORMAT_S24_3BE: _snd_pcm_format = 33;
pub const SND_PCM_FORMAT_U24_3LE: _snd_pcm_format = 34;
pub const SND_PCM_FORMAT_U24_3BE: _snd_pcm_format = 35;
pub const SND_PCM_FORMAT_S20_3LE: _snd_pcm_format = 36;
pub const SND_PCM_FORMAT_S20_3BE: _snd_pcm_format = 37;
pub const SND_PCM_FORMAT_U20_3LE: _snd_pcm_format = 38;
pub const SND_PCM_FORMAT_U20_3BE: _snd_pcm_format = 39;
pub const SND_PCM_FORMAT_S18_3LE: _snd_pcm_format = 40;
pub const SND_PCM_FORMAT_S18_3BE: _snd_pcm_format = 41;
pub const SND_PCM_FORMAT_U18_3LE: _snd_pcm_format = 42;
pub const SND_PCM_FORMAT_U18_3BE: _snd_pcm_format = 43;
pub const SND_PCM_FORMAT_G723_24: _snd_pcm_format = 44;
pub const SND_PCM_FORMAT_G723_24_1B: _snd_pcm_format = 45;
pub const SND_PCM_FORMAT_G723_40: _snd_pcm_format = 46;
pub const SND_PCM_FORMAT_G723_40_1B: _snd_pcm_format = 47;
pub const SND_PCM_FORMAT_DSD_U8: _snd_pcm_format = 48;
pub const SND_PCM_FORMAT_DSD_U16_LE: _snd_pcm_format = 49;
pub const SND_PCM_FORMAT_DSD_U32_LE: _snd_pcm_format = 50;
pub const SND_PCM_FORMAT_DSD_U16_BE: _snd_pcm_format = 51;
pub const SND_PCM_FORMAT_DSD_U32_BE: _snd_pcm_format = 52;
pub const SND_PCM_FORMAT_LAST: _snd_pcm_format = 52;
pub const SND_PCM_FORMAT_S16: _snd_pcm_format = 2;
pub const SND_PCM_FORMAT_U16: _snd_pcm_format = 4;
pub const SND_PCM_FORMAT_S24: _snd_pcm_format = 6;
pub const SND_PCM_FORMAT_U24: _snd_pcm_format = 8;
pub const SND_PCM_FORMAT_S32: _snd_pcm_format = 10;
pub const SND_PCM_FORMAT_U32: _snd_pcm_format = 12;
pub const SND_PCM_FORMAT_FLOAT: _snd_pcm_format = 14;
pub const SND_PCM_FORMAT_FLOAT64: _snd_pcm_format = 16;
pub const SND_PCM_FORMAT_IEC958_SUBFRAME: _snd_pcm_format = 18;
pub const SND_PCM_FORMAT_S20: _snd_pcm_format = 25;
pub const SND_PCM_FORMAT_U20: _snd_pcm_format = 27;
pub type _snd_pcm_format = ::core::ffi::c_int;
pub use self::_snd_pcm_format as snd_pcm_format_t;
pub const SND_PCM_SUBFORMAT_UNKNOWN: _snd_pcm_subformat = -1;
pub const SND_PCM_SUBFORMAT_STD: _snd_pcm_subformat = 0;
pub const SND_PCM_SUBFORMAT_MSBITS_MAX: _snd_pcm_subformat = 1;
pub const SND_PCM_SUBFORMAT_MSBITS_20: _snd_pcm_subformat = 2;
pub const SND_PCM_SUBFORMAT_MSBITS_24: _snd_pcm_subformat = 3;
pub const SND_PCM_SUBFORMAT_LAST: _snd_pcm_subformat = 3;
pub type _snd_pcm_subformat = ::core::ffi::c_int;
pub use self::_snd_pcm_subformat as snd_pcm_subformat_t;
pub const SND_PCM_STATE_OPEN: _snd_pcm_state = 0;
pub const SND_PCM_STATE_SETUP: _snd_pcm_state = 1;
pub const SND_PCM_STATE_PREPARED: _snd_pcm_state = 2;
pub const SND_PCM_STATE_RUNNING: _snd_pcm_state = 3;
pub const SND_PCM_STATE_XRUN: _snd_pcm_state = 4;
pub const SND_PCM_STATE_DRAINING: _snd_pcm_state = 5;
pub const SND_PCM_STATE_PAUSED: _snd_pcm_state = 6;
pub const SND_PCM_STATE_SUSPENDED: _snd_pcm_state = 7;
pub const SND_PCM_STATE_DISCONNECTED: _snd_pcm_state = 8;
pub const SND_PCM_STATE_LAST: _snd_pcm_state = 8;
pub const SND_PCM_STATE_PRIVATE1: _snd_pcm_state = 1024;
pub type _snd_pcm_state = ::core::ffi::c_uint;
pub use self::_snd_pcm_state as snd_pcm_state_t;
pub const SND_PCM_START_DATA: _snd_pcm_start = 0;
pub const SND_PCM_START_EXPLICIT: _snd_pcm_start = 1;
pub const SND_PCM_START_LAST: _snd_pcm_start = 1;
pub type _snd_pcm_start = ::core::ffi::c_uint;
pub use self::_snd_pcm_start as snd_pcm_start_t;
pub const SND_PCM_XRUN_NONE: _snd_pcm_xrun = 0;
pub const SND_PCM_XRUN_STOP: _snd_pcm_xrun = 1;
pub const SND_PCM_XRUN_LAST: _snd_pcm_xrun = 1;
pub type _snd_pcm_xrun = ::core::ffi::c_uint;
pub use self::_snd_pcm_xrun as snd_pcm_xrun_t;
pub const SND_PCM_TSTAMP_NONE: _snd_pcm_tstamp = 0;
pub const SND_PCM_TSTAMP_ENABLE: _snd_pcm_tstamp = 1;
pub const SND_PCM_TSTAMP_MMAP: _snd_pcm_tstamp = 1;
pub const SND_PCM_TSTAMP_LAST: _snd_pcm_tstamp = 1;
pub type _snd_pcm_tstamp = ::core::ffi::c_uint;
pub use self::_snd_pcm_tstamp as snd_pcm_tstamp_t;
pub const SND_PCM_TSTAMP_TYPE_GETTIMEOFDAY: _snd_pcm_tstamp_type = 0;
pub const SND_PCM_TSTAMP_TYPE_MONOTONIC: _snd_pcm_tstamp_type = 1;
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 = ::core::ffi::c_uint;
pub use self::_snd_pcm_tstamp_type as snd_pcm_tstamp_type_t;
pub const SND_PCM_AUDIO_TSTAMP_TYPE_COMPAT: _snd_pcm_audio_tstamp_type = 0;
pub const SND_PCM_AUDIO_TSTAMP_TYPE_DEFAULT: _snd_pcm_audio_tstamp_type = 1;
pub const SND_PCM_AUDIO_TSTAMP_TYPE_LINK: _snd_pcm_audio_tstamp_type = 2;
pub const SND_PCM_AUDIO_TSTAMP_TYPE_LINK_ABSOLUTE: _snd_pcm_audio_tstamp_type = 3;
pub const SND_PCM_AUDIO_TSTAMP_TYPE_LINK_ESTIMATED: _snd_pcm_audio_tstamp_type = 4;
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 = ::core::ffi::c_uint;
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_align_1: [u8; 0],
    pub _bitfield_1: __BindgenBitfieldUnit<[u8; 1usize]>,
    pub __bindgen_padding_0: [u8; 3usize],
}
impl _snd_pcm_audio_tstamp_config {
    #[inline]
    pub fn type_requested(&self) -> ::core::ffi::c_uint {
        unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 4u8) as u32) }
    }
    #[inline]
    pub fn set_type_requested(&mut self, val: ::core::ffi::c_uint) {
        unsafe {
            let val: u32 = ::core::mem::transmute(val);
            self._bitfield_1.set(0usize, 4u8, val as u64)
        }
    }
    #[inline]
    pub unsafe fn type_requested_raw(this: *const Self) -> ::core::ffi::c_uint {
        unsafe {
            ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get(
                ::core::ptr::addr_of!((*this)._bitfield_1),
                0usize,
                4u8,
            ) as u32)
        }
    }
    #[inline]
    pub unsafe fn set_type_requested_raw(this: *mut Self, val: ::core::ffi::c_uint) {
        unsafe {
            let val: u32 = ::core::mem::transmute(val);
            <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set(
                ::core::ptr::addr_of_mut!((*this)._bitfield_1),
                0usize,
                4u8,
                val as u64,
            )
        }
    }
    #[inline]
    pub fn report_delay(&self) -> ::core::ffi::c_uint {
        unsafe { ::core::mem::transmute(self._bitfield_1.get(4usize, 1u8) as u32) }
    }
    #[inline]
    pub fn set_report_delay(&mut self, val: ::core::ffi::c_uint) {
        unsafe {
            let val: u32 = ::core::mem::transmute(val);
            self._bitfield_1.set(4usize, 1u8, val as u64)
        }
    }
    #[inline]
    pub unsafe fn report_delay_raw(this: *const Self) -> ::core::ffi::c_uint {
        unsafe {
            ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get(
                ::core::ptr::addr_of!((*this)._bitfield_1),
                4usize,
                1u8,
            ) as u32)
        }
    }
    #[inline]
    pub unsafe fn set_report_delay_raw(this: *mut Self, val: ::core::ffi::c_uint) {
        unsafe {
            let val: u32 = ::core::mem::transmute(val);
            <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set(
                ::core::ptr::addr_of_mut!((*this)._bitfield_1),
                4usize,
                1u8,
                val as u64,
            )
        }
    }
    #[inline]
    pub fn new_bitfield_1(
        type_requested: ::core::ffi::c_uint,
        report_delay: ::core::ffi::c_uint,
    ) -> __BindgenBitfieldUnit<[u8; 1usize]> {
        let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 1usize]> = Default::default();
        __bindgen_bitfield_unit.set(0usize, 4u8, {
            let type_requested: u32 = unsafe { ::core::mem::transmute(type_requested) };
            type_requested as u64
        });
        __bindgen_bitfield_unit.set(4usize, 1u8, {
            let report_delay: u32 = unsafe { ::core::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_align_1: [u8; 0],
    pub _bitfield_1: __BindgenBitfieldUnit<[u8; 1usize]>,
    pub accuracy: ::core::ffi::c_uint,
}
impl _snd_pcm_audio_tstamp_report {
    #[inline]
    pub fn valid(&self) -> ::core::ffi::c_uint {
        unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u32) }
    }
    #[inline]
    pub fn set_valid(&mut self, val: ::core::ffi::c_uint) {
        unsafe {
            let val: u32 = ::core::mem::transmute(val);
            self._bitfield_1.set(0usize, 1u8, val as u64)
        }
    }
    #[inline]
    pub unsafe fn valid_raw(this: *const Self) -> ::core::ffi::c_uint {
        unsafe {
            ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get(
                ::core::ptr::addr_of!((*this)._bitfield_1),
                0usize,
                1u8,
            ) as u32)
        }
    }
    #[inline]
    pub unsafe fn set_valid_raw(this: *mut Self, val: ::core::ffi::c_uint) {
        unsafe {
            let val: u32 = ::core::mem::transmute(val);
            <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set(
                ::core::ptr::addr_of_mut!((*this)._bitfield_1),
                0usize,
                1u8,
                val as u64,
            )
        }
    }
    #[inline]
    pub fn actual_type(&self) -> ::core::ffi::c_uint {
        unsafe { ::core::mem::transmute(self._bitfield_1.get(1usize, 4u8) as u32) }
    }
    #[inline]
    pub fn set_actual_type(&mut self, val: ::core::ffi::c_uint) {
        unsafe {
            let val: u32 = ::core::mem::transmute(val);
            self._bitfield_1.set(1usize, 4u8, val as u64)
        }
    }
    #[inline]
    pub unsafe fn actual_type_raw(this: *const Self) -> ::core::ffi::c_uint {
        unsafe {
            ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get(
                ::core::ptr::addr_of!((*this)._bitfield_1),
                1usize,
                4u8,
            ) as u32)
        }
    }
    #[inline]
    pub unsafe fn set_actual_type_raw(this: *mut Self, val: ::core::ffi::c_uint) {
        unsafe {
            let val: u32 = ::core::mem::transmute(val);
            <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set(
                ::core::ptr::addr_of_mut!((*this)._bitfield_1),
                1usize,
                4u8,
                val as u64,
            )
        }
    }
    #[inline]
    pub fn accuracy_report(&self) -> ::core::ffi::c_uint {
        unsafe { ::core::mem::transmute(self._bitfield_1.get(5usize, 1u8) as u32) }
    }
    #[inline]
    pub fn set_accuracy_report(&mut self, val: ::core::ffi::c_uint) {
        unsafe {
            let val: u32 = ::core::mem::transmute(val);
            self._bitfield_1.set(5usize, 1u8, val as u64)
        }
    }
    #[inline]
    pub unsafe fn accuracy_report_raw(this: *const Self) -> ::core::ffi::c_uint {
        unsafe {
            ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get(
                ::core::ptr::addr_of!((*this)._bitfield_1),
                5usize,
                1u8,
            ) as u32)
        }
    }
    #[inline]
    pub unsafe fn set_accuracy_report_raw(this: *mut Self, val: ::core::ffi::c_uint) {
        unsafe {
            let val: u32 = ::core::mem::transmute(val);
            <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set(
                ::core::ptr::addr_of_mut!((*this)._bitfield_1),
                5usize,
                1u8,
                val as u64,
            )
        }
    }
    #[inline]
    pub fn new_bitfield_1(
        valid: ::core::ffi::c_uint,
        actual_type: ::core::ffi::c_uint,
        accuracy_report: ::core::ffi::c_uint,
    ) -> __BindgenBitfieldUnit<[u8; 1usize]> {
        let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 1usize]> = Default::default();
        __bindgen_bitfield_unit.set(0usize, 1u8, {
            let valid: u32 = unsafe { ::core::mem::transmute(valid) };
            valid as u64
        });
        __bindgen_bitfield_unit.set(1usize, 4u8, {
            let actual_type: u32 = unsafe { ::core::mem::transmute(actual_type) };
            actual_type as u64
        });
        __bindgen_bitfield_unit.set(5usize, 1u8, {
            let accuracy_report: u32 = unsafe { ::core::mem::transmute(accuracy_report) };
            accuracy_report as u64
        });
        __bindgen_bitfield_unit
    }
}
pub type snd_pcm_audio_tstamp_report_t = _snd_pcm_audio_tstamp_report;
pub type snd_pcm_uframes_t = ::core::ffi::c_ulong;
pub type snd_pcm_sframes_t = ::core::ffi::c_long;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _snd_pcm {
    _unused: [u8; 0],
}
pub type snd_pcm_t = _snd_pcm;
pub const SND_PCM_TYPE_HW: _snd_pcm_type = 0;
pub const SND_PCM_TYPE_HOOKS: _snd_pcm_type = 1;
pub const SND_PCM_TYPE_MULTI: _snd_pcm_type = 2;
pub const SND_PCM_TYPE_FILE: _snd_pcm_type = 3;
pub const SND_PCM_TYPE_NULL: _snd_pcm_type = 4;
pub const SND_PCM_TYPE_SHM: _snd_pcm_type = 5;
pub const SND_PCM_TYPE_INET: _snd_pcm_type = 6;
pub const SND_PCM_TYPE_COPY: _snd_pcm_type = 7;
pub const SND_PCM_TYPE_LINEAR: _snd_pcm_type = 8;
pub const SND_PCM_TYPE_ALAW: _snd_pcm_type = 9;
pub const SND_PCM_TYPE_MULAW: _snd_pcm_type = 10;
pub const SND_PCM_TYPE_ADPCM: _snd_pcm_type = 11;
pub const SND_PCM_TYPE_RATE: _snd_pcm_type = 12;
pub const SND_PCM_TYPE_ROUTE: _snd_pcm_type = 13;
pub const SND_PCM_TYPE_PLUG: _snd_pcm_type = 14;
pub const SND_PCM_TYPE_SHARE: _snd_pcm_type = 15;
pub const SND_PCM_TYPE_METER: _snd_pcm_type = 16;
pub const SND_PCM_TYPE_MIX: _snd_pcm_type = 17;
pub const SND_PCM_TYPE_DROUTE: _snd_pcm_type = 18;
pub const SND_PCM_TYPE_LBSERVER: _snd_pcm_type = 19;
pub const SND_PCM_TYPE_LINEAR_FLOAT: _snd_pcm_type = 20;
pub const SND_PCM_TYPE_LADSPA: _snd_pcm_type = 21;
pub const SND_PCM_TYPE_DMIX: _snd_pcm_type = 22;
pub const SND_PCM_TYPE_JACK: _snd_pcm_type = 23;
pub const SND_PCM_TYPE_DSNOOP: _snd_pcm_type = 24;
pub const SND_PCM_TYPE_DSHARE: _snd_pcm_type = 25;
pub const SND_PCM_TYPE_IEC958: _snd_pcm_type = 26;
pub const SND_PCM_TYPE_SOFTVOL: _snd_pcm_type = 27;
pub const SND_PCM_TYPE_IOPLUG: _snd_pcm_type = 28;
pub const SND_PCM_TYPE_EXTPLUG: _snd_pcm_type = 29;
pub const SND_PCM_TYPE_MMAP_EMUL: _snd_pcm_type = 30;
pub const SND_PCM_TYPE_LAST: _snd_pcm_type = 30;
pub type _snd_pcm_type = ::core::ffi::c_uint;
pub use self::_snd_pcm_type as snd_pcm_type_t;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _snd_pcm_channel_area {
    pub addr: *mut ::core::ffi::c_void,
    pub first: ::core::ffi::c_uint,
    pub step: ::core::ffi::c_uint,
}
pub type snd_pcm_channel_area_t = _snd_pcm_channel_area;
#[repr(C)]
#[derive(Copy, Clone)]
pub union _snd_pcm_sync_id {
    pub id: [::core::ffi::c_uchar; 16usize],
    pub id16: [::core::ffi::c_ushort; 8usize],
    pub id32: [::core::ffi::c_uint; 4usize],
}
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],
}
pub type snd_pcm_scope_t = _snd_pcm_scope;
unsafe extern "C" {
    pub fn snd_pcm_open(
        pcm: *mut *mut snd_pcm_t,
        name: *const ::core::ffi::c_char,
        stream: snd_pcm_stream_t,
        mode: ::core::ffi::c_int,
    ) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_pcm_open_lconf(
        pcm: *mut *mut snd_pcm_t,
        name: *const ::core::ffi::c_char,
        stream: snd_pcm_stream_t,
        mode: ::core::ffi::c_int,
        lconf: *mut snd_config_t,
    ) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_pcm_open_fallback(
        pcm: *mut *mut snd_pcm_t,
        root: *mut snd_config_t,
        name: *const ::core::ffi::c_char,
        orig_name: *const ::core::ffi::c_char,
        stream: snd_pcm_stream_t,
        mode: ::core::ffi::c_int,
    ) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_pcm_close(pcm: *mut snd_pcm_t) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_pcm_name(pcm: *mut snd_pcm_t) -> *const ::core::ffi::c_char;
}
unsafe extern "C" {
    pub fn snd_pcm_type(pcm: *mut snd_pcm_t) -> snd_pcm_type_t;
}
unsafe extern "C" {
    pub fn snd_pcm_stream(pcm: *mut snd_pcm_t) -> snd_pcm_stream_t;
}
unsafe extern "C" {
    pub fn snd_pcm_poll_descriptors_count(pcm: *mut snd_pcm_t) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_pcm_poll_descriptors(
        pcm: *mut snd_pcm_t,
        pfds: *mut pollfd,
        space: ::core::ffi::c_uint,
    ) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_pcm_poll_descriptors_revents(
        pcm: *mut snd_pcm_t,
        pfds: *mut pollfd,
        nfds: ::core::ffi::c_uint,
        revents: *mut ::core::ffi::c_ushort,
    ) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_pcm_nonblock(
        pcm: *mut snd_pcm_t,
        nonblock: ::core::ffi::c_int,
    ) -> ::core::ffi::c_int;
}
unsafe 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 ::core::ffi::c_void,
    ) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_async_handler_get_pcm(handler: *mut snd_async_handler_t) -> *mut snd_pcm_t;
}
unsafe extern "C" {
    pub fn snd_pcm_info(pcm: *mut snd_pcm_t, info: *mut snd_pcm_info_t) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_pcm_hw_params_current(
        pcm: *mut snd_pcm_t,
        params: *mut snd_pcm_hw_params_t,
    ) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_pcm_hw_params(
        pcm: *mut snd_pcm_t,
        params: *mut snd_pcm_hw_params_t,
    ) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_pcm_hw_free(pcm: *mut snd_pcm_t) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_pcm_sw_params_current(
        pcm: *mut snd_pcm_t,
        params: *mut snd_pcm_sw_params_t,
    ) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_pcm_sw_params(
        pcm: *mut snd_pcm_t,
        params: *mut snd_pcm_sw_params_t,
    ) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_pcm_prepare(pcm: *mut snd_pcm_t) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_pcm_reset(pcm: *mut snd_pcm_t) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_pcm_status(pcm: *mut snd_pcm_t, status: *mut snd_pcm_status_t)
    -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_pcm_start(pcm: *mut snd_pcm_t) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_pcm_drop(pcm: *mut snd_pcm_t) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_pcm_drain(pcm: *mut snd_pcm_t) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_pcm_pause(pcm: *mut snd_pcm_t, enable: ::core::ffi::c_int) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_pcm_state(pcm: *mut snd_pcm_t) -> snd_pcm_state_t;
}
unsafe extern "C" {
    pub fn snd_pcm_hwsync(pcm: *mut snd_pcm_t) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_pcm_delay(pcm: *mut snd_pcm_t, delayp: *mut snd_pcm_sframes_t)
    -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_pcm_resume(pcm: *mut snd_pcm_t) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_pcm_htimestamp(
        pcm: *mut snd_pcm_t,
        avail: *mut snd_pcm_uframes_t,
        tstamp: *mut snd_htimestamp_t,
    ) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_pcm_avail(pcm: *mut snd_pcm_t) -> snd_pcm_sframes_t;
}
unsafe extern "C" {
    pub fn snd_pcm_avail_update(pcm: *mut snd_pcm_t) -> snd_pcm_sframes_t;
}
unsafe 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,
    ) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_pcm_rewindable(pcm: *mut snd_pcm_t) -> snd_pcm_sframes_t;
}
unsafe extern "C" {
    pub fn snd_pcm_rewind(pcm: *mut snd_pcm_t, frames: snd_pcm_uframes_t) -> snd_pcm_sframes_t;
}
unsafe extern "C" {
    pub fn snd_pcm_forwardable(pcm: *mut snd_pcm_t) -> snd_pcm_sframes_t;
}
unsafe extern "C" {
    pub fn snd_pcm_forward(pcm: *mut snd_pcm_t, frames: snd_pcm_uframes_t) -> snd_pcm_sframes_t;
}
unsafe extern "C" {
    pub fn snd_pcm_writei(
        pcm: *mut snd_pcm_t,
        buffer: *const ::core::ffi::c_void,
        size: snd_pcm_uframes_t,
    ) -> snd_pcm_sframes_t;
}
unsafe extern "C" {
    pub fn snd_pcm_readi(
        pcm: *mut snd_pcm_t,
        buffer: *mut ::core::ffi::c_void,
        size: snd_pcm_uframes_t,
    ) -> snd_pcm_sframes_t;
}
unsafe extern "C" {
    pub fn snd_pcm_writen(
        pcm: *mut snd_pcm_t,
        bufs: *mut *mut ::core::ffi::c_void,
        size: snd_pcm_uframes_t,
    ) -> snd_pcm_sframes_t;
}
unsafe extern "C" {
    pub fn snd_pcm_readn(
        pcm: *mut snd_pcm_t,
        bufs: *mut *mut ::core::ffi::c_void,
        size: snd_pcm_uframes_t,
    ) -> snd_pcm_sframes_t;
}
unsafe extern "C" {
    pub fn snd_pcm_wait(pcm: *mut snd_pcm_t, timeout: ::core::ffi::c_int) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_pcm_link(pcm1: *mut snd_pcm_t, pcm2: *mut snd_pcm_t) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_pcm_unlink(pcm: *mut snd_pcm_t) -> ::core::ffi::c_int;
}
pub const SND_CHMAP_TYPE_NONE: snd_pcm_chmap_type = 0;
pub const SND_CHMAP_TYPE_FIXED: snd_pcm_chmap_type = 1;
pub const SND_CHMAP_TYPE_VAR: snd_pcm_chmap_type = 2;
pub const SND_CHMAP_TYPE_PAIRED: snd_pcm_chmap_type = 3;
pub const SND_CHMAP_TYPE_LAST: snd_pcm_chmap_type = 3;
pub type snd_pcm_chmap_type = ::core::ffi::c_uint;
pub const SND_CHMAP_UNKNOWN: snd_pcm_chmap_position = 0;
pub const SND_CHMAP_NA: snd_pcm_chmap_position = 1;
pub const SND_CHMAP_MONO: snd_pcm_chmap_position = 2;
pub const SND_CHMAP_FL: snd_pcm_chmap_position = 3;
pub const SND_CHMAP_FR: snd_pcm_chmap_position = 4;
pub const SND_CHMAP_RL: snd_pcm_chmap_position = 5;
pub const SND_CHMAP_RR: snd_pcm_chmap_position = 6;
pub const SND_CHMAP_FC: snd_pcm_chmap_position = 7;
pub const SND_CHMAP_LFE: snd_pcm_chmap_position = 8;
pub const SND_CHMAP_SL: snd_pcm_chmap_position = 9;
pub const SND_CHMAP_SR: snd_pcm_chmap_position = 10;
pub const SND_CHMAP_RC: snd_pcm_chmap_position = 11;
pub const SND_CHMAP_FLC: snd_pcm_chmap_position = 12;
pub const SND_CHMAP_FRC: snd_pcm_chmap_position = 13;
pub const SND_CHMAP_RLC: snd_pcm_chmap_position = 14;
pub const SND_CHMAP_RRC: snd_pcm_chmap_position = 15;
pub const SND_CHMAP_FLW: snd_pcm_chmap_position = 16;
pub const SND_CHMAP_FRW: snd_pcm_chmap_position = 17;
pub const SND_CHMAP_FLH: snd_pcm_chmap_position = 18;
pub const SND_CHMAP_FCH: snd_pcm_chmap_position = 19;
pub const SND_CHMAP_FRH: snd_pcm_chmap_position = 20;
pub const SND_CHMAP_TC: snd_pcm_chmap_position = 21;
pub const SND_CHMAP_TFL: snd_pcm_chmap_position = 22;
pub const SND_CHMAP_TFR: snd_pcm_chmap_position = 23;
pub const SND_CHMAP_TFC: snd_pcm_chmap_position = 24;
pub const SND_CHMAP_TRL: snd_pcm_chmap_position = 25;
pub const SND_CHMAP_TRR: snd_pcm_chmap_position = 26;
pub const SND_CHMAP_TRC: snd_pcm_chmap_position = 27;
pub const SND_CHMAP_TFLC: snd_pcm_chmap_position = 28;
pub const SND_CHMAP_TFRC: snd_pcm_chmap_position = 29;
pub const SND_CHMAP_TSL: snd_pcm_chmap_position = 30;
pub const SND_CHMAP_TSR: snd_pcm_chmap_position = 31;
pub const SND_CHMAP_LLFE: snd_pcm_chmap_position = 32;
pub const SND_CHMAP_RLFE: snd_pcm_chmap_position = 33;
pub const SND_CHMAP_BC: snd_pcm_chmap_position = 34;
pub const SND_CHMAP_BLC: snd_pcm_chmap_position = 35;
pub const SND_CHMAP_BRC: snd_pcm_chmap_position = 36;
pub const SND_CHMAP_LAST: snd_pcm_chmap_position = 36;
pub type snd_pcm_chmap_position = ::core::ffi::c_uint;
#[repr(C)]
#[derive(Debug)]
pub struct snd_pcm_chmap {
    pub channels: ::core::ffi::c_uint,
    pub pos: __IncompleteArrayField<::core::ffi::c_uint>,
}
pub type snd_pcm_chmap_t = snd_pcm_chmap;
#[repr(C)]
#[derive(Debug)]
pub struct snd_pcm_chmap_query {
    pub type_: snd_pcm_chmap_type,
    pub map: snd_pcm_chmap_t,
}
pub type snd_pcm_chmap_query_t = snd_pcm_chmap_query;
unsafe extern "C" {
    pub fn snd_pcm_query_chmaps(pcm: *mut snd_pcm_t) -> *mut *mut snd_pcm_chmap_query_t;
}
unsafe extern "C" {
    pub fn snd_pcm_query_chmaps_from_hw(
        card: ::core::ffi::c_int,
        dev: ::core::ffi::c_int,
        subdev: ::core::ffi::c_int,
        stream: snd_pcm_stream_t,
    ) -> *mut *mut snd_pcm_chmap_query_t;
}
unsafe extern "C" {
    pub fn snd_pcm_free_chmaps(maps: *mut *mut snd_pcm_chmap_query_t);
}
unsafe extern "C" {
    pub fn snd_pcm_get_chmap(pcm: *mut snd_pcm_t) -> *mut snd_pcm_chmap_t;
}
unsafe extern "C" {
    pub fn snd_pcm_set_chmap(
        pcm: *mut snd_pcm_t,
        map: *const snd_pcm_chmap_t,
    ) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_pcm_chmap_type_name(val: snd_pcm_chmap_type) -> *const ::core::ffi::c_char;
}
unsafe extern "C" {
    pub fn snd_pcm_chmap_name(val: snd_pcm_chmap_position) -> *const ::core::ffi::c_char;
}
unsafe extern "C" {
    pub fn snd_pcm_chmap_long_name(val: snd_pcm_chmap_position) -> *const ::core::ffi::c_char;
}
unsafe extern "C" {
    pub fn snd_pcm_chmap_print(
        map: *const snd_pcm_chmap_t,
        maxlen: usize,
        buf: *mut ::core::ffi::c_char,
    ) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_pcm_chmap_from_string(str_: *const ::core::ffi::c_char) -> ::core::ffi::c_uint;
}
unsafe extern "C" {
    pub fn snd_pcm_chmap_parse_string(str_: *const ::core::ffi::c_char) -> *mut snd_pcm_chmap_t;
}
unsafe extern "C" {
    pub fn snd_pcm_recover(
        pcm: *mut snd_pcm_t,
        err: ::core::ffi::c_int,
        silent: ::core::ffi::c_int,
    ) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_pcm_set_params(
        pcm: *mut snd_pcm_t,
        format: snd_pcm_format_t,
        access: snd_pcm_access_t,
        channels: ::core::ffi::c_uint,
        rate: ::core::ffi::c_uint,
        soft_resample: ::core::ffi::c_int,
        latency: ::core::ffi::c_uint,
    ) -> ::core::ffi::c_int;
}
unsafe 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,
    ) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_pcm_info_sizeof() -> usize;
}
unsafe extern "C" {
    pub fn snd_pcm_info_malloc(ptr: *mut *mut snd_pcm_info_t) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_pcm_info_free(obj: *mut snd_pcm_info_t);
}
unsafe extern "C" {
    pub fn snd_pcm_info_copy(dst: *mut snd_pcm_info_t, src: *const snd_pcm_info_t);
}
unsafe extern "C" {
    pub fn snd_pcm_info_get_device(obj: *const snd_pcm_info_t) -> ::core::ffi::c_uint;
}
unsafe extern "C" {
    pub fn snd_pcm_info_get_subdevice(obj: *const snd_pcm_info_t) -> ::core::ffi::c_uint;
}
unsafe extern "C" {
    pub fn snd_pcm_info_get_stream(obj: *const snd_pcm_info_t) -> snd_pcm_stream_t;
}
unsafe extern "C" {
    pub fn snd_pcm_info_get_card(obj: *const snd_pcm_info_t) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_pcm_info_get_id(obj: *const snd_pcm_info_t) -> *const ::core::ffi::c_char;
}
unsafe extern "C" {
    pub fn snd_pcm_info_get_name(obj: *const snd_pcm_info_t) -> *const ::core::ffi::c_char;
}
unsafe extern "C" {
    pub fn snd_pcm_info_get_subdevice_name(
        obj: *const snd_pcm_info_t,
    ) -> *const ::core::ffi::c_char;
}
unsafe extern "C" {
    pub fn snd_pcm_info_get_class(obj: *const snd_pcm_info_t) -> snd_pcm_class_t;
}
unsafe extern "C" {
    pub fn snd_pcm_info_get_subclass(obj: *const snd_pcm_info_t) -> snd_pcm_subclass_t;
}
unsafe extern "C" {
    pub fn snd_pcm_info_get_subdevices_count(obj: *const snd_pcm_info_t) -> ::core::ffi::c_uint;
}
unsafe extern "C" {
    pub fn snd_pcm_info_get_subdevices_avail(obj: *const snd_pcm_info_t) -> ::core::ffi::c_uint;
}
unsafe extern "C" {
    pub fn snd_pcm_info_get_sync(obj: *const snd_pcm_info_t) -> snd_pcm_sync_id_t;
}
unsafe extern "C" {
    pub fn snd_pcm_info_set_device(obj: *mut snd_pcm_info_t, val: ::core::ffi::c_uint);
}
unsafe extern "C" {
    pub fn snd_pcm_info_set_subdevice(obj: *mut snd_pcm_info_t, val: ::core::ffi::c_uint);
}
unsafe extern "C" {
    pub fn snd_pcm_info_set_stream(obj: *mut snd_pcm_info_t, val: snd_pcm_stream_t);
}
unsafe extern "C" {
    pub fn snd_pcm_hw_params_any(
        pcm: *mut snd_pcm_t,
        params: *mut snd_pcm_hw_params_t,
    ) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_pcm_hw_params_can_mmap_sample_resolution(
        params: *const snd_pcm_hw_params_t,
    ) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_pcm_hw_params_is_double(params: *const snd_pcm_hw_params_t) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_pcm_hw_params_is_batch(params: *const snd_pcm_hw_params_t) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_pcm_hw_params_is_block_transfer(
        params: *const snd_pcm_hw_params_t,
    ) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_pcm_hw_params_is_monotonic(params: *const snd_pcm_hw_params_t)
    -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_pcm_hw_params_can_overrange(
        params: *const snd_pcm_hw_params_t,
    ) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_pcm_hw_params_can_pause(params: *const snd_pcm_hw_params_t) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_pcm_hw_params_can_resume(params: *const snd_pcm_hw_params_t) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_pcm_hw_params_is_half_duplex(
        params: *const snd_pcm_hw_params_t,
    ) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_pcm_hw_params_is_joint_duplex(
        params: *const snd_pcm_hw_params_t,
    ) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_pcm_hw_params_can_sync_start(
        params: *const snd_pcm_hw_params_t,
    ) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_pcm_hw_params_can_disable_period_wakeup(
        params: *const snd_pcm_hw_params_t,
    ) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_pcm_hw_params_is_perfect_drain(
        params: *const snd_pcm_hw_params_t,
    ) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_pcm_hw_params_supports_audio_wallclock_ts(
        params: *const snd_pcm_hw_params_t,
    ) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_pcm_hw_params_supports_audio_ts_type(
        params: *const snd_pcm_hw_params_t,
        type_: ::core::ffi::c_int,
    ) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_pcm_hw_params_get_rate_numden(
        params: *const snd_pcm_hw_params_t,
        rate_num: *mut ::core::ffi::c_uint,
        rate_den: *mut ::core::ffi::c_uint,
    ) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_pcm_hw_params_get_sbits(params: *const snd_pcm_hw_params_t) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_pcm_hw_params_get_fifo_size(
        params: *const snd_pcm_hw_params_t,
    ) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_pcm_hw_params_get_sync(
        params: *const snd_pcm_hw_params_t,
    ) -> *const ::core::ffi::c_uchar;
}
unsafe extern "C" {
    pub fn snd_pcm_hw_params_sizeof() -> usize;
}
unsafe extern "C" {
    pub fn snd_pcm_hw_params_malloc(ptr: *mut *mut snd_pcm_hw_params_t) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_pcm_hw_params_free(obj: *mut snd_pcm_hw_params_t);
}
unsafe extern "C" {
    pub fn snd_pcm_hw_params_copy(dst: *mut snd_pcm_hw_params_t, src: *const snd_pcm_hw_params_t);
}
unsafe extern "C" {
    pub fn snd_pcm_hw_params_get_access(
        params: *const snd_pcm_hw_params_t,
        _access: *mut snd_pcm_access_t,
    ) -> ::core::ffi::c_int;
}
unsafe 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,
    ) -> ::core::ffi::c_int;
}
unsafe 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,
    ) -> ::core::ffi::c_int;
}
unsafe 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,
    ) -> ::core::ffi::c_int;
}
unsafe 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,
    ) -> ::core::ffi::c_int;
}
unsafe 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,
    ) -> ::core::ffi::c_int;
}
unsafe 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,
    ) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_pcm_hw_params_get_format(
        params: *const snd_pcm_hw_params_t,
        val: *mut snd_pcm_format_t,
    ) -> ::core::ffi::c_int;
}
unsafe 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,
    ) -> ::core::ffi::c_int;
}
unsafe 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,
    ) -> ::core::ffi::c_int;
}
unsafe 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,
    ) -> ::core::ffi::c_int;
}
unsafe 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,
    ) -> ::core::ffi::c_int;
}
unsafe 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,
    ) -> ::core::ffi::c_int;
}
unsafe 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,
    );
}
unsafe extern "C" {
    pub fn snd_pcm_hw_params_get_subformat(
        params: *const snd_pcm_hw_params_t,
        subformat: *mut snd_pcm_subformat_t,
    ) -> ::core::ffi::c_int;
}
unsafe 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,
    ) -> ::core::ffi::c_int;
}
unsafe 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,
    ) -> ::core::ffi::c_int;
}
unsafe 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,
    ) -> ::core::ffi::c_int;
}
unsafe 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,
    ) -> ::core::ffi::c_int;
}
unsafe 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,
    ) -> ::core::ffi::c_int;
}
unsafe 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,
    );
}
unsafe extern "C" {
    pub fn snd_pcm_hw_params_get_channels(
        params: *const snd_pcm_hw_params_t,
        val: *mut ::core::ffi::c_uint,
    ) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_pcm_hw_params_get_channels_min(
        params: *const snd_pcm_hw_params_t,
        val: *mut ::core::ffi::c_uint,
    ) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_pcm_hw_params_get_channels_max(
        params: *const snd_pcm_hw_params_t,
        val: *mut ::core::ffi::c_uint,
    ) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_pcm_hw_params_test_channels(
        pcm: *mut snd_pcm_t,
        params: *mut snd_pcm_hw_params_t,
        val: ::core::ffi::c_uint,
    ) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_pcm_hw_params_set_channels(
        pcm: *mut snd_pcm_t,
        params: *mut snd_pcm_hw_params_t,
        val: ::core::ffi::c_uint,
    ) -> ::core::ffi::c_int;
}
unsafe 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 ::core::ffi::c_uint,
    ) -> ::core::ffi::c_int;
}
unsafe 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 ::core::ffi::c_uint,
    ) -> ::core::ffi::c_int;
}
unsafe 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 ::core::ffi::c_uint,
        max: *mut ::core::ffi::c_uint,
    ) -> ::core::ffi::c_int;
}
unsafe 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 ::core::ffi::c_uint,
    ) -> ::core::ffi::c_int;
}
unsafe 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 ::core::ffi::c_uint,
    ) -> ::core::ffi::c_int;
}
unsafe 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 ::core::ffi::c_uint,
    ) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_pcm_hw_params_get_rate(
        params: *const snd_pcm_hw_params_t,
        val: *mut ::core::ffi::c_uint,
        dir: *mut ::core::ffi::c_int,
    ) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_pcm_hw_params_get_rate_min(
        params: *const snd_pcm_hw_params_t,
        val: *mut ::core::ffi::c_uint,
        dir: *mut ::core::ffi::c_int,
    ) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_pcm_hw_params_get_rate_max(
        params: *const snd_pcm_hw_params_t,
        val: *mut ::core::ffi::c_uint,
        dir: *mut ::core::ffi::c_int,
    ) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_pcm_hw_params_test_rate(
        pcm: *mut snd_pcm_t,
        params: *mut snd_pcm_hw_params_t,
        val: ::core::ffi::c_uint,
        dir: ::core::ffi::c_int,
    ) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_pcm_hw_params_set_rate(
        pcm: *mut snd_pcm_t,
        params: *mut snd_pcm_hw_params_t,
        val: ::core::ffi::c_uint,
        dir: ::core::ffi::c_int,
    ) -> ::core::ffi::c_int;
}
unsafe 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 ::core::ffi::c_uint,
        dir: *mut ::core::ffi::c_int,
    ) -> ::core::ffi::c_int;
}
unsafe 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 ::core::ffi::c_uint,
        dir: *mut ::core::ffi::c_int,
    ) -> ::core::ffi::c_int;
}
unsafe 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 ::core::ffi::c_uint,
        mindir: *mut ::core::ffi::c_int,
        max: *mut ::core::ffi::c_uint,
        maxdir: *mut ::core::ffi::c_int,
    ) -> ::core::ffi::c_int;
}
unsafe 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 ::core::ffi::c_uint,
        dir: *mut ::core::ffi::c_int,
    ) -> ::core::ffi::c_int;
}
unsafe 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 ::core::ffi::c_uint,
        dir: *mut ::core::ffi::c_int,
    ) -> ::core::ffi::c_int;
}
unsafe 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 ::core::ffi::c_uint,
        dir: *mut ::core::ffi::c_int,
    ) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_pcm_hw_params_set_rate_resample(
        pcm: *mut snd_pcm_t,
        params: *mut snd_pcm_hw_params_t,
        val: ::core::ffi::c_uint,
    ) -> ::core::ffi::c_int;
}
unsafe 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 ::core::ffi::c_uint,
    ) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_pcm_hw_params_set_export_buffer(
        pcm: *mut snd_pcm_t,
        params: *mut snd_pcm_hw_params_t,
        val: ::core::ffi::c_uint,
    ) -> ::core::ffi::c_int;
}
unsafe 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 ::core::ffi::c_uint,
    ) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_pcm_hw_params_set_period_wakeup(
        pcm: *mut snd_pcm_t,
        params: *mut snd_pcm_hw_params_t,
        val: ::core::ffi::c_uint,
    ) -> ::core::ffi::c_int;
}
unsafe 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 ::core::ffi::c_uint,
    ) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_pcm_hw_params_set_drain_silence(
        pcm: *mut snd_pcm_t,
        params: *mut snd_pcm_hw_params_t,
        val: ::core::ffi::c_uint,
    ) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_pcm_hw_params_get_drain_silence(
        pcm: *mut snd_pcm_t,
        params: *mut snd_pcm_hw_params_t,
        val: *mut ::core::ffi::c_uint,
    ) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_pcm_hw_params_get_period_time(
        params: *const snd_pcm_hw_params_t,
        val: *mut ::core::ffi::c_uint,
        dir: *mut ::core::ffi::c_int,
    ) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_pcm_hw_params_get_period_time_min(
        params: *const snd_pcm_hw_params_t,
        val: *mut ::core::ffi::c_uint,
        dir: *mut ::core::ffi::c_int,
    ) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_pcm_hw_params_get_period_time_max(
        params: *const snd_pcm_hw_params_t,
        val: *mut ::core::ffi::c_uint,
        dir: *mut ::core::ffi::c_int,
    ) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_pcm_hw_params_test_period_time(
        pcm: *mut snd_pcm_t,
        params: *mut snd_pcm_hw_params_t,
        val: ::core::ffi::c_uint,
        dir: ::core::ffi::c_int,
    ) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_pcm_hw_params_set_period_time(
        pcm: *mut snd_pcm_t,
        params: *mut snd_pcm_hw_params_t,
        val: ::core::ffi::c_uint,
        dir: ::core::ffi::c_int,
    ) -> ::core::ffi::c_int;
}
unsafe 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 ::core::ffi::c_uint,
        dir: *mut ::core::ffi::c_int,
    ) -> ::core::ffi::c_int;
}
unsafe 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 ::core::ffi::c_uint,
        dir: *mut ::core::ffi::c_int,
    ) -> ::core::ffi::c_int;
}
unsafe 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 ::core::ffi::c_uint,
        mindir: *mut ::core::ffi::c_int,
        max: *mut ::core::ffi::c_uint,
        maxdir: *mut ::core::ffi::c_int,
    ) -> ::core::ffi::c_int;
}
unsafe 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 ::core::ffi::c_uint,
        dir: *mut ::core::ffi::c_int,
    ) -> ::core::ffi::c_int;
}
unsafe 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 ::core::ffi::c_uint,
        dir: *mut ::core::ffi::c_int,
    ) -> ::core::ffi::c_int;
}
unsafe 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 ::core::ffi::c_uint,
        dir: *mut ::core::ffi::c_int,
    ) -> ::core::ffi::c_int;
}
unsafe 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 ::core::ffi::c_int,
    ) -> ::core::ffi::c_int;
}
unsafe 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 ::core::ffi::c_int,
    ) -> ::core::ffi::c_int;
}
unsafe 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 ::core::ffi::c_int,
    ) -> ::core::ffi::c_int;
}
unsafe 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: ::core::ffi::c_int,
    ) -> ::core::ffi::c_int;
}
unsafe 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: ::core::ffi::c_int,
    ) -> ::core::ffi::c_int;
}
unsafe 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 ::core::ffi::c_int,
    ) -> ::core::ffi::c_int;
}
unsafe 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 ::core::ffi::c_int,
    ) -> ::core::ffi::c_int;
}
unsafe 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 ::core::ffi::c_int,
        max: *mut snd_pcm_uframes_t,
        maxdir: *mut ::core::ffi::c_int,
    ) -> ::core::ffi::c_int;
}
unsafe 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 ::core::ffi::c_int,
    ) -> ::core::ffi::c_int;
}
unsafe 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 ::core::ffi::c_int,
    ) -> ::core::ffi::c_int;
}
unsafe 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 ::core::ffi::c_int,
    ) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_pcm_hw_params_set_period_size_integer(
        pcm: *mut snd_pcm_t,
        params: *mut snd_pcm_hw_params_t,
    ) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_pcm_hw_params_get_periods(
        params: *const snd_pcm_hw_params_t,
        val: *mut ::core::ffi::c_uint,
        dir: *mut ::core::ffi::c_int,
    ) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_pcm_hw_params_get_periods_min(
        params: *const snd_pcm_hw_params_t,
        val: *mut ::core::ffi::c_uint,
        dir: *mut ::core::ffi::c_int,
    ) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_pcm_hw_params_get_periods_max(
        params: *const snd_pcm_hw_params_t,
        val: *mut ::core::ffi::c_uint,
        dir: *mut ::core::ffi::c_int,
    ) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_pcm_hw_params_test_periods(
        pcm: *mut snd_pcm_t,
        params: *mut snd_pcm_hw_params_t,
        val: ::core::ffi::c_uint,
        dir: ::core::ffi::c_int,
    ) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_pcm_hw_params_set_periods(
        pcm: *mut snd_pcm_t,
        params: *mut snd_pcm_hw_params_t,
        val: ::core::ffi::c_uint,
        dir: ::core::ffi::c_int,
    ) -> ::core::ffi::c_int;
}
unsafe 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 ::core::ffi::c_uint,
        dir: *mut ::core::ffi::c_int,
    ) -> ::core::ffi::c_int;
}
unsafe 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 ::core::ffi::c_uint,
        dir: *mut ::core::ffi::c_int,
    ) -> ::core::ffi::c_int;
}
unsafe 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 ::core::ffi::c_uint,
        mindir: *mut ::core::ffi::c_int,
        max: *mut ::core::ffi::c_uint,
        maxdir: *mut ::core::ffi::c_int,
    ) -> ::core::ffi::c_int;
}
unsafe 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 ::core::ffi::c_uint,
        dir: *mut ::core::ffi::c_int,
    ) -> ::core::ffi::c_int;
}
unsafe 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 ::core::ffi::c_uint,
        dir: *mut ::core::ffi::c_int,
    ) -> ::core::ffi::c_int;
}
unsafe 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 ::core::ffi::c_uint,
        dir: *mut ::core::ffi::c_int,
    ) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_pcm_hw_params_set_periods_integer(
        pcm: *mut snd_pcm_t,
        params: *mut snd_pcm_hw_params_t,
    ) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_pcm_hw_params_get_buffer_time(
        params: *const snd_pcm_hw_params_t,
        val: *mut ::core::ffi::c_uint,
        dir: *mut ::core::ffi::c_int,
    ) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_pcm_hw_params_get_buffer_time_min(
        params: *const snd_pcm_hw_params_t,
        val: *mut ::core::ffi::c_uint,
        dir: *mut ::core::ffi::c_int,
    ) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_pcm_hw_params_get_buffer_time_max(
        params: *const snd_pcm_hw_params_t,
        val: *mut ::core::ffi::c_uint,
        dir: *mut ::core::ffi::c_int,
    ) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_pcm_hw_params_test_buffer_time(
        pcm: *mut snd_pcm_t,
        params: *mut snd_pcm_hw_params_t,
        val: ::core::ffi::c_uint,
        dir: ::core::ffi::c_int,
    ) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_pcm_hw_params_set_buffer_time(
        pcm: *mut snd_pcm_t,
        params: *mut snd_pcm_hw_params_t,
        val: ::core::ffi::c_uint,
        dir: ::core::ffi::c_int,
    ) -> ::core::ffi::c_int;
}
unsafe 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 ::core::ffi::c_uint,
        dir: *mut ::core::ffi::c_int,
    ) -> ::core::ffi::c_int;
}
unsafe 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 ::core::ffi::c_uint,
        dir: *mut ::core::ffi::c_int,
    ) -> ::core::ffi::c_int;
}
unsafe 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 ::core::ffi::c_uint,
        mindir: *mut ::core::ffi::c_int,
        max: *mut ::core::ffi::c_uint,
        maxdir: *mut ::core::ffi::c_int,
    ) -> ::core::ffi::c_int;
}
unsafe 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 ::core::ffi::c_uint,
        dir: *mut ::core::ffi::c_int,
    ) -> ::core::ffi::c_int;
}
unsafe 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 ::core::ffi::c_uint,
        dir: *mut ::core::ffi::c_int,
    ) -> ::core::ffi::c_int;
}
unsafe 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 ::core::ffi::c_uint,
        dir: *mut ::core::ffi::c_int,
    ) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_pcm_hw_params_get_buffer_size(
        params: *const snd_pcm_hw_params_t,
        val: *mut snd_pcm_uframes_t,
    ) -> ::core::ffi::c_int;
}
unsafe 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,
    ) -> ::core::ffi::c_int;
}
unsafe 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,
    ) -> ::core::ffi::c_int;
}
unsafe 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,
    ) -> ::core::ffi::c_int;
}
unsafe 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,
    ) -> ::core::ffi::c_int;
}
unsafe 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,
    ) -> ::core::ffi::c_int;
}
unsafe 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,
    ) -> ::core::ffi::c_int;
}
unsafe 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,
    ) -> ::core::ffi::c_int;
}
unsafe 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,
    ) -> ::core::ffi::c_int;
}
unsafe 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,
    ) -> ::core::ffi::c_int;
}
unsafe 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,
    ) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_pcm_hw_params_get_min_align(
        params: *const snd_pcm_hw_params_t,
        val: *mut snd_pcm_uframes_t,
    ) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_pcm_sw_params_sizeof() -> usize;
}
unsafe extern "C" {
    pub fn snd_pcm_sw_params_malloc(ptr: *mut *mut snd_pcm_sw_params_t) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_pcm_sw_params_free(obj: *mut snd_pcm_sw_params_t);
}
unsafe extern "C" {
    pub fn snd_pcm_sw_params_copy(dst: *mut snd_pcm_sw_params_t, src: *const snd_pcm_sw_params_t);
}
unsafe extern "C" {
    pub fn snd_pcm_sw_params_get_boundary(
        params: *const snd_pcm_sw_params_t,
        val: *mut snd_pcm_uframes_t,
    ) -> ::core::ffi::c_int;
}
unsafe 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,
    ) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_pcm_sw_params_get_tstamp_mode(
        params: *const snd_pcm_sw_params_t,
        val: *mut snd_pcm_tstamp_t,
    ) -> ::core::ffi::c_int;
}
unsafe 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,
    ) -> ::core::ffi::c_int;
}
unsafe 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,
    ) -> ::core::ffi::c_int;
}
unsafe 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,
    ) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_pcm_sw_params_get_avail_min(
        params: *const snd_pcm_sw_params_t,
        val: *mut snd_pcm_uframes_t,
    ) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_pcm_sw_params_set_period_event(
        pcm: *mut snd_pcm_t,
        params: *mut snd_pcm_sw_params_t,
        val: ::core::ffi::c_int,
    ) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_pcm_sw_params_get_period_event(
        params: *const snd_pcm_sw_params_t,
        val: *mut ::core::ffi::c_int,
    ) -> ::core::ffi::c_int;
}
unsafe 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,
    ) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_pcm_sw_params_get_start_threshold(
        paramsm: *const snd_pcm_sw_params_t,
        val: *mut snd_pcm_uframes_t,
    ) -> ::core::ffi::c_int;
}
unsafe 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,
    ) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_pcm_sw_params_get_stop_threshold(
        params: *const snd_pcm_sw_params_t,
        val: *mut snd_pcm_uframes_t,
    ) -> ::core::ffi::c_int;
}
unsafe 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,
    ) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_pcm_sw_params_get_silence_threshold(
        params: *const snd_pcm_sw_params_t,
        val: *mut snd_pcm_uframes_t,
    ) -> ::core::ffi::c_int;
}
unsafe 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,
    ) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_pcm_sw_params_get_silence_size(
        params: *const snd_pcm_sw_params_t,
        val: *mut snd_pcm_uframes_t,
    ) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_pcm_access_mask_sizeof() -> usize;
}
unsafe extern "C" {
    pub fn snd_pcm_access_mask_malloc(ptr: *mut *mut snd_pcm_access_mask_t) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_pcm_access_mask_free(obj: *mut snd_pcm_access_mask_t);
}
unsafe extern "C" {
    pub fn snd_pcm_access_mask_copy(
        dst: *mut snd_pcm_access_mask_t,
        src: *const snd_pcm_access_mask_t,
    );
}
unsafe extern "C" {
    pub fn snd_pcm_access_mask_none(mask: *mut snd_pcm_access_mask_t);
}
unsafe extern "C" {
    pub fn snd_pcm_access_mask_any(mask: *mut snd_pcm_access_mask_t);
}
unsafe extern "C" {
    pub fn snd_pcm_access_mask_test(
        mask: *const snd_pcm_access_mask_t,
        val: snd_pcm_access_t,
    ) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_pcm_access_mask_empty(mask: *const snd_pcm_access_mask_t) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_pcm_access_mask_set(mask: *mut snd_pcm_access_mask_t, val: snd_pcm_access_t);
}
unsafe extern "C" {
    pub fn snd_pcm_access_mask_reset(mask: *mut snd_pcm_access_mask_t, val: snd_pcm_access_t);
}
unsafe extern "C" {
    pub fn snd_pcm_format_mask_sizeof() -> usize;
}
unsafe extern "C" {
    pub fn snd_pcm_format_mask_malloc(ptr: *mut *mut snd_pcm_format_mask_t) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_pcm_format_mask_free(obj: *mut snd_pcm_format_mask_t);
}
unsafe extern "C" {
    pub fn snd_pcm_format_mask_copy(
        dst: *mut snd_pcm_format_mask_t,
        src: *const snd_pcm_format_mask_t,
    );
}
unsafe extern "C" {
    pub fn snd_pcm_format_mask_none(mask: *mut snd_pcm_format_mask_t);
}
unsafe extern "C" {
    pub fn snd_pcm_format_mask_any(mask: *mut snd_pcm_format_mask_t);
}
unsafe extern "C" {
    pub fn snd_pcm_format_mask_test(
        mask: *const snd_pcm_format_mask_t,
        val: snd_pcm_format_t,
    ) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_pcm_format_mask_empty(mask: *const snd_pcm_format_mask_t) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_pcm_format_mask_set(mask: *mut snd_pcm_format_mask_t, val: snd_pcm_format_t);
}
unsafe extern "C" {
    pub fn snd_pcm_format_mask_reset(mask: *mut snd_pcm_format_mask_t, val: snd_pcm_format_t);
}
unsafe extern "C" {
    pub fn snd_pcm_subformat_mask_sizeof() -> usize;
}
unsafe extern "C" {
    pub fn snd_pcm_subformat_mask_malloc(
        ptr: *mut *mut snd_pcm_subformat_mask_t,
    ) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_pcm_subformat_mask_free(obj: *mut snd_pcm_subformat_mask_t);
}
unsafe extern "C" {
    pub fn snd_pcm_subformat_mask_copy(
        dst: *mut snd_pcm_subformat_mask_t,
        src: *const snd_pcm_subformat_mask_t,
    );
}
unsafe extern "C" {
    pub fn snd_pcm_subformat_mask_none(mask: *mut snd_pcm_subformat_mask_t);
}
unsafe extern "C" {
    pub fn snd_pcm_subformat_mask_any(mask: *mut snd_pcm_subformat_mask_t);
}
unsafe extern "C" {
    pub fn snd_pcm_subformat_mask_test(
        mask: *const snd_pcm_subformat_mask_t,
        val: snd_pcm_subformat_t,
    ) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_pcm_subformat_mask_empty(
        mask: *const snd_pcm_subformat_mask_t,
    ) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_pcm_subformat_mask_set(
        mask: *mut snd_pcm_subformat_mask_t,
        val: snd_pcm_subformat_t,
    );
}
unsafe extern "C" {
    pub fn snd_pcm_subformat_mask_reset(
        mask: *mut snd_pcm_subformat_mask_t,
        val: snd_pcm_subformat_t,
    );
}
unsafe extern "C" {
    pub fn snd_pcm_status_sizeof() -> usize;
}
unsafe extern "C" {
    pub fn snd_pcm_status_malloc(ptr: *mut *mut snd_pcm_status_t) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_pcm_status_free(obj: *mut snd_pcm_status_t);
}
unsafe extern "C" {
    pub fn snd_pcm_status_copy(dst: *mut snd_pcm_status_t, src: *const snd_pcm_status_t);
}
unsafe extern "C" {
    pub fn snd_pcm_status_get_state(obj: *const snd_pcm_status_t) -> snd_pcm_state_t;
}
unsafe extern "C" {
    pub fn snd_pcm_status_get_trigger_tstamp(
        obj: *const snd_pcm_status_t,
        ptr: *mut snd_timestamp_t,
    );
}
unsafe extern "C" {
    pub fn snd_pcm_status_get_trigger_htstamp(
        obj: *const snd_pcm_status_t,
        ptr: *mut snd_htimestamp_t,
    );
}
unsafe extern "C" {
    pub fn snd_pcm_status_get_tstamp(obj: *const snd_pcm_status_t, ptr: *mut snd_timestamp_t);
}
unsafe extern "C" {
    pub fn snd_pcm_status_get_htstamp(obj: *const snd_pcm_status_t, ptr: *mut snd_htimestamp_t);
}
unsafe extern "C" {
    pub fn snd_pcm_status_get_audio_htstamp(
        obj: *const snd_pcm_status_t,
        ptr: *mut snd_htimestamp_t,
    );
}
unsafe extern "C" {
    pub fn snd_pcm_status_get_driver_htstamp(
        obj: *const snd_pcm_status_t,
        ptr: *mut snd_htimestamp_t,
    );
}
unsafe 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,
    );
}
unsafe 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,
    );
}
unsafe extern "C" {
    pub fn snd_pcm_status_get_delay(obj: *const snd_pcm_status_t) -> snd_pcm_sframes_t;
}
unsafe extern "C" {
    pub fn snd_pcm_status_get_avail(obj: *const snd_pcm_status_t) -> snd_pcm_uframes_t;
}
unsafe extern "C" {
    pub fn snd_pcm_status_get_avail_max(obj: *const snd_pcm_status_t) -> snd_pcm_uframes_t;
}
unsafe extern "C" {
    pub fn snd_pcm_status_get_overrange(obj: *const snd_pcm_status_t) -> snd_pcm_uframes_t;
}
unsafe extern "C" {
    pub fn snd_pcm_type_name(type_: snd_pcm_type_t) -> *const ::core::ffi::c_char;
}
unsafe extern "C" {
    pub fn snd_pcm_stream_name(stream: snd_pcm_stream_t) -> *const ::core::ffi::c_char;
}
unsafe extern "C" {
    pub fn snd_pcm_access_name(_access: snd_pcm_access_t) -> *const ::core::ffi::c_char;
}
unsafe extern "C" {
    pub fn snd_pcm_format_name(format: snd_pcm_format_t) -> *const ::core::ffi::c_char;
}
unsafe extern "C" {
    pub fn snd_pcm_format_description(format: snd_pcm_format_t) -> *const ::core::ffi::c_char;
}
unsafe extern "C" {
    pub fn snd_pcm_subformat_name(subformat: snd_pcm_subformat_t) -> *const ::core::ffi::c_char;
}
unsafe extern "C" {
    pub fn snd_pcm_subformat_description(
        subformat: snd_pcm_subformat_t,
    ) -> *const ::core::ffi::c_char;
}
unsafe extern "C" {
    pub fn snd_pcm_subformat_value(name: *const ::core::ffi::c_char) -> snd_pcm_subformat_t;
}
unsafe extern "C" {
    pub fn snd_pcm_format_value(name: *const ::core::ffi::c_char) -> snd_pcm_format_t;
}
unsafe extern "C" {
    pub fn snd_pcm_tstamp_mode_name(mode: snd_pcm_tstamp_t) -> *const ::core::ffi::c_char;
}
unsafe extern "C" {
    pub fn snd_pcm_state_name(state: snd_pcm_state_t) -> *const ::core::ffi::c_char;
}
unsafe extern "C" {
    pub fn snd_pcm_dump(pcm: *mut snd_pcm_t, out: *mut snd_output_t) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_pcm_dump_hw_setup(pcm: *mut snd_pcm_t, out: *mut snd_output_t)
    -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_pcm_dump_sw_setup(pcm: *mut snd_pcm_t, out: *mut snd_output_t)
    -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_pcm_dump_setup(pcm: *mut snd_pcm_t, out: *mut snd_output_t) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_pcm_hw_params_dump(
        params: *mut snd_pcm_hw_params_t,
        out: *mut snd_output_t,
    ) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_pcm_sw_params_dump(
        params: *mut snd_pcm_sw_params_t,
        out: *mut snd_output_t,
    ) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_pcm_status_dump(
        status: *mut snd_pcm_status_t,
        out: *mut snd_output_t,
    ) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    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,
    ) -> ::core::ffi::c_int;
}
unsafe 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;
}
unsafe extern "C" {
    pub fn snd_pcm_mmap_writei(
        pcm: *mut snd_pcm_t,
        buffer: *const ::core::ffi::c_void,
        size: snd_pcm_uframes_t,
    ) -> snd_pcm_sframes_t;
}
unsafe extern "C" {
    pub fn snd_pcm_mmap_readi(
        pcm: *mut snd_pcm_t,
        buffer: *mut ::core::ffi::c_void,
        size: snd_pcm_uframes_t,
    ) -> snd_pcm_sframes_t;
}
unsafe extern "C" {
    pub fn snd_pcm_mmap_writen(
        pcm: *mut snd_pcm_t,
        bufs: *mut *mut ::core::ffi::c_void,
        size: snd_pcm_uframes_t,
    ) -> snd_pcm_sframes_t;
}
unsafe extern "C" {
    pub fn snd_pcm_mmap_readn(
        pcm: *mut snd_pcm_t,
        bufs: *mut *mut ::core::ffi::c_void,
        size: snd_pcm_uframes_t,
    ) -> snd_pcm_sframes_t;
}
unsafe extern "C" {
    pub fn snd_pcm_format_signed(format: snd_pcm_format_t) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_pcm_format_unsigned(format: snd_pcm_format_t) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_pcm_format_linear(format: snd_pcm_format_t) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_pcm_format_float(format: snd_pcm_format_t) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_pcm_format_little_endian(format: snd_pcm_format_t) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_pcm_format_big_endian(format: snd_pcm_format_t) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_pcm_format_cpu_endian(format: snd_pcm_format_t) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_pcm_format_width(format: snd_pcm_format_t) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_pcm_format_physical_width(format: snd_pcm_format_t) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_pcm_build_linear_format(
        width: ::core::ffi::c_int,
        pwidth: ::core::ffi::c_int,
        unsignd: ::core::ffi::c_int,
        big_endian: ::core::ffi::c_int,
    ) -> snd_pcm_format_t;
}
unsafe extern "C" {
    pub fn snd_pcm_format_size(format: snd_pcm_format_t, samples: usize) -> isize;
}
unsafe extern "C" {
    pub fn snd_pcm_format_silence(format: snd_pcm_format_t) -> u8;
}
unsafe extern "C" {
    pub fn snd_pcm_format_silence_16(format: snd_pcm_format_t) -> u16;
}
unsafe extern "C" {
    pub fn snd_pcm_format_silence_32(format: snd_pcm_format_t) -> u32;
}
unsafe extern "C" {
    pub fn snd_pcm_format_silence_64(format: snd_pcm_format_t) -> u64;
}
unsafe extern "C" {
    pub fn snd_pcm_format_set_silence(
        format: snd_pcm_format_t,
        buf: *mut ::core::ffi::c_void,
        samples: ::core::ffi::c_uint,
    ) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_pcm_bytes_to_frames(pcm: *mut snd_pcm_t, bytes: isize) -> snd_pcm_sframes_t;
}
unsafe extern "C" {
    pub fn snd_pcm_frames_to_bytes(pcm: *mut snd_pcm_t, frames: snd_pcm_sframes_t) -> isize;
}
unsafe extern "C" {
    pub fn snd_pcm_bytes_to_samples(pcm: *mut snd_pcm_t, bytes: isize) -> ::core::ffi::c_long;
}
unsafe extern "C" {
    pub fn snd_pcm_samples_to_bytes(pcm: *mut snd_pcm_t, samples: ::core::ffi::c_long) -> isize;
}
unsafe extern "C" {
    pub fn snd_pcm_area_silence(
        dst_channel: *const snd_pcm_channel_area_t,
        dst_offset: snd_pcm_uframes_t,
        samples: ::core::ffi::c_uint,
        format: snd_pcm_format_t,
    ) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_pcm_areas_silence(
        dst_channels: *const snd_pcm_channel_area_t,
        dst_offset: snd_pcm_uframes_t,
        channels: ::core::ffi::c_uint,
        frames: snd_pcm_uframes_t,
        format: snd_pcm_format_t,
    ) -> ::core::ffi::c_int;
}
unsafe 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: ::core::ffi::c_uint,
        format: snd_pcm_format_t,
    ) -> ::core::ffi::c_int;
}
unsafe 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: ::core::ffi::c_uint,
        frames: snd_pcm_uframes_t,
        format: snd_pcm_format_t,
    ) -> ::core::ffi::c_int;
}
unsafe 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: ::core::ffi::c_uint,
        frames: snd_pcm_uframes_t,
        format: snd_pcm_format_t,
    ) -> ::core::ffi::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;
pub type _snd_pcm_hook_type = ::core::ffi::c_uint;
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],
}
pub type snd_pcm_hook_t = _snd_pcm_hook;
pub type snd_pcm_hook_func_t =
    ::core::option::Option<unsafe extern "C" fn(hook: *mut snd_pcm_hook_t) -> ::core::ffi::c_int>;
unsafe extern "C" {
    pub fn snd_pcm_hook_get_pcm(hook: *mut snd_pcm_hook_t) -> *mut snd_pcm_t;
}
unsafe extern "C" {
    pub fn snd_pcm_hook_get_private(hook: *mut snd_pcm_hook_t) -> *mut ::core::ffi::c_void;
}
unsafe extern "C" {
    pub fn snd_pcm_hook_set_private(
        hook: *mut snd_pcm_hook_t,
        private_data: *mut ::core::ffi::c_void,
    );
}
unsafe 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 ::core::ffi::c_void,
    ) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_pcm_hook_remove(hook: *mut snd_pcm_hook_t) -> ::core::ffi::c_int;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _snd_pcm_scope_ops {
    pub enable: ::core::option::Option<
        unsafe extern "C" fn(scope: *mut snd_pcm_scope_t) -> ::core::ffi::c_int,
    >,
    pub disable: ::core::option::Option<unsafe extern "C" fn(scope: *mut snd_pcm_scope_t)>,
    pub start: ::core::option::Option<unsafe extern "C" fn(scope: *mut snd_pcm_scope_t)>,
    pub stop: ::core::option::Option<unsafe extern "C" fn(scope: *mut snd_pcm_scope_t)>,
    pub update: ::core::option::Option<unsafe extern "C" fn(scope: *mut snd_pcm_scope_t)>,
    pub reset: ::core::option::Option<unsafe extern "C" fn(scope: *mut snd_pcm_scope_t)>,
    pub close: ::core::option::Option<unsafe extern "C" fn(scope: *mut snd_pcm_scope_t)>,
}
pub type snd_pcm_scope_ops_t = _snd_pcm_scope_ops;
unsafe extern "C" {
    pub fn snd_pcm_meter_get_bufsize(pcm: *mut snd_pcm_t) -> snd_pcm_uframes_t;
}
unsafe extern "C" {
    pub fn snd_pcm_meter_get_channels(pcm: *mut snd_pcm_t) -> ::core::ffi::c_uint;
}
unsafe extern "C" {
    pub fn snd_pcm_meter_get_rate(pcm: *mut snd_pcm_t) -> ::core::ffi::c_uint;
}
unsafe extern "C" {
    pub fn snd_pcm_meter_get_now(pcm: *mut snd_pcm_t) -> snd_pcm_uframes_t;
}
unsafe extern "C" {
    pub fn snd_pcm_meter_get_boundary(pcm: *mut snd_pcm_t) -> snd_pcm_uframes_t;
}
unsafe extern "C" {
    pub fn snd_pcm_meter_add_scope(
        pcm: *mut snd_pcm_t,
        scope: *mut snd_pcm_scope_t,
    ) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_pcm_meter_search_scope(
        pcm: *mut snd_pcm_t,
        name: *const ::core::ffi::c_char,
    ) -> *mut snd_pcm_scope_t;
}
unsafe extern "C" {
    pub fn snd_pcm_scope_malloc(ptr: *mut *mut snd_pcm_scope_t) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_pcm_scope_set_ops(scope: *mut snd_pcm_scope_t, val: *const snd_pcm_scope_ops_t);
}
unsafe extern "C" {
    pub fn snd_pcm_scope_set_name(scope: *mut snd_pcm_scope_t, val: *const ::core::ffi::c_char);
}
unsafe extern "C" {
    pub fn snd_pcm_scope_get_name(scope: *mut snd_pcm_scope_t) -> *const ::core::ffi::c_char;
}
unsafe extern "C" {
    pub fn snd_pcm_scope_get_callback_private(
        scope: *mut snd_pcm_scope_t,
    ) -> *mut ::core::ffi::c_void;
}
unsafe extern "C" {
    pub fn snd_pcm_scope_set_callback_private(
        scope: *mut snd_pcm_scope_t,
        val: *mut ::core::ffi::c_void,
    );
}
unsafe extern "C" {
    pub fn snd_pcm_scope_s16_open(
        pcm: *mut snd_pcm_t,
        name: *const ::core::ffi::c_char,
        scopep: *mut *mut snd_pcm_scope_t,
    ) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_pcm_scope_s16_get_channel_buffer(
        scope: *mut snd_pcm_scope_t,
        channel: ::core::ffi::c_uint,
    ) -> *mut i16;
}
pub const SND_SPCM_LATENCY_STANDARD: _snd_spcm_latency = 0;
pub const SND_SPCM_LATENCY_MEDIUM: _snd_spcm_latency = 1;
pub const SND_SPCM_LATENCY_REALTIME: _snd_spcm_latency = 2;
pub type _snd_spcm_latency = ::core::ffi::c_uint;
pub use self::_snd_spcm_latency as snd_spcm_latency_t;
pub const SND_SPCM_XRUN_IGNORE: _snd_spcm_xrun_type = 0;
pub const SND_SPCM_XRUN_STOP: _snd_spcm_xrun_type = 1;
pub type _snd_spcm_xrun_type = ::core::ffi::c_uint;
pub use self::_snd_spcm_xrun_type as snd_spcm_xrun_type_t;
pub const SND_SPCM_DUPLEX_LIBERAL: _snd_spcm_duplex_type = 0;
pub const SND_SPCM_DUPLEX_PEDANTIC: _snd_spcm_duplex_type = 1;
pub type _snd_spcm_duplex_type = ::core::ffi::c_uint;
pub use self::_snd_spcm_duplex_type as snd_spcm_duplex_type_t;
unsafe extern "C" {
    pub fn snd_spcm_init(
        pcm: *mut snd_pcm_t,
        rate: ::core::ffi::c_uint,
        channels: ::core::ffi::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,
    ) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_spcm_init_duplex(
        playback_pcm: *mut snd_pcm_t,
        capture_pcm: *mut snd_pcm_t,
        rate: ::core::ffi::c_uint,
        channels: ::core::ffi::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,
    ) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_spcm_init_get_params(
        pcm: *mut snd_pcm_t,
        rate: *mut ::core::ffi::c_uint,
        buffer_size: *mut snd_pcm_uframes_t,
        period_size: *mut snd_pcm_uframes_t,
    ) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_pcm_start_mode_name(mode: snd_pcm_start_t) -> *const ::core::ffi::c_char;
}
unsafe extern "C" {
    pub fn snd_pcm_xrun_mode_name(mode: snd_pcm_xrun_t) -> *const ::core::ffi::c_char;
}
unsafe 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,
    ) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_pcm_sw_params_get_start_mode(params: *const snd_pcm_sw_params_t) -> snd_pcm_start_t;
}
unsafe 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,
    ) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_pcm_sw_params_get_xrun_mode(params: *const snd_pcm_sw_params_t) -> snd_pcm_xrun_t;
}
unsafe 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,
    ) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_pcm_sw_params_get_xfer_align(
        params: *const snd_pcm_sw_params_t,
        val: *mut snd_pcm_uframes_t,
    ) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_pcm_sw_params_set_sleep_min(
        pcm: *mut snd_pcm_t,
        params: *mut snd_pcm_sw_params_t,
        val: ::core::ffi::c_uint,
    ) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_pcm_sw_params_get_sleep_min(
        params: *const snd_pcm_sw_params_t,
        val: *mut ::core::ffi::c_uint,
    ) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_pcm_hw_params_get_tick_time(
        params: *const snd_pcm_hw_params_t,
        val: *mut ::core::ffi::c_uint,
        dir: *mut ::core::ffi::c_int,
    ) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_pcm_hw_params_get_tick_time_min(
        params: *const snd_pcm_hw_params_t,
        val: *mut ::core::ffi::c_uint,
        dir: *mut ::core::ffi::c_int,
    ) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_pcm_hw_params_get_tick_time_max(
        params: *const snd_pcm_hw_params_t,
        val: *mut ::core::ffi::c_uint,
        dir: *mut ::core::ffi::c_int,
    ) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_pcm_hw_params_test_tick_time(
        pcm: *mut snd_pcm_t,
        params: *mut snd_pcm_hw_params_t,
        val: ::core::ffi::c_uint,
        dir: ::core::ffi::c_int,
    ) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_pcm_hw_params_set_tick_time(
        pcm: *mut snd_pcm_t,
        params: *mut snd_pcm_hw_params_t,
        val: ::core::ffi::c_uint,
        dir: ::core::ffi::c_int,
    ) -> ::core::ffi::c_int;
}
unsafe 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 ::core::ffi::c_uint,
        dir: *mut ::core::ffi::c_int,
    ) -> ::core::ffi::c_int;
}
unsafe 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 ::core::ffi::c_uint,
        dir: *mut ::core::ffi::c_int,
    ) -> ::core::ffi::c_int;
}
unsafe 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 ::core::ffi::c_uint,
        mindir: *mut ::core::ffi::c_int,
        max: *mut ::core::ffi::c_uint,
        maxdir: *mut ::core::ffi::c_int,
    ) -> ::core::ffi::c_int;
}
unsafe 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 ::core::ffi::c_uint,
        dir: *mut ::core::ffi::c_int,
    ) -> ::core::ffi::c_int;
}
unsafe 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 ::core::ffi::c_uint,
        dir: *mut ::core::ffi::c_int,
    ) -> ::core::ffi::c_int;
}
unsafe 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 ::core::ffi::c_uint,
        dir: *mut ::core::ffi::c_int,
    ) -> ::core::ffi::c_int;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _snd_rawmidi_info {
    _unused: [u8; 0],
}
pub type snd_rawmidi_info_t = _snd_rawmidi_info;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _snd_rawmidi_params {
    _unused: [u8; 0],
}
pub type snd_rawmidi_params_t = _snd_rawmidi_params;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _snd_rawmidi_status {
    _unused: [u8; 0],
}
pub type snd_rawmidi_status_t = _snd_rawmidi_status;
pub const SND_RAWMIDI_STREAM_OUTPUT: _snd_rawmidi_stream = 0;
pub const SND_RAWMIDI_STREAM_INPUT: _snd_rawmidi_stream = 1;
pub const SND_RAWMIDI_STREAM_LAST: _snd_rawmidi_stream = 1;
pub type _snd_rawmidi_stream = ::core::ffi::c_uint;
pub use self::_snd_rawmidi_stream as snd_rawmidi_stream_t;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _snd_rawmidi {
    _unused: [u8; 0],
}
pub type snd_rawmidi_t = _snd_rawmidi;
pub const SND_RAWMIDI_TYPE_HW: _snd_rawmidi_type = 0;
pub const SND_RAWMIDI_TYPE_SHM: _snd_rawmidi_type = 1;
pub const SND_RAWMIDI_TYPE_INET: _snd_rawmidi_type = 2;
pub const SND_RAWMIDI_TYPE_VIRTUAL: _snd_rawmidi_type = 3;
pub type _snd_rawmidi_type = ::core::ffi::c_uint;
pub use self::_snd_rawmidi_type as snd_rawmidi_type_t;
pub const SND_RAWMIDI_CLOCK_NONE: _snd_rawmidi_clock = 0;
pub const SND_RAWMIDI_CLOCK_REALTIME: _snd_rawmidi_clock = 1;
pub const SND_RAWMIDI_CLOCK_MONOTONIC: _snd_rawmidi_clock = 2;
pub const SND_RAWMIDI_CLOCK_MONOTONIC_RAW: _snd_rawmidi_clock = 3;
pub type _snd_rawmidi_clock = ::core::ffi::c_uint;
pub use self::_snd_rawmidi_clock as snd_rawmidi_clock_t;
pub const SND_RAWMIDI_READ_STANDARD: _snd_rawmidi_read_mode = 0;
pub const SND_RAWMIDI_READ_TSTAMP: _snd_rawmidi_read_mode = 1;
pub type _snd_rawmidi_read_mode = ::core::ffi::c_uint;
pub use self::_snd_rawmidi_read_mode as snd_rawmidi_read_mode_t;
unsafe extern "C" {
    pub fn snd_rawmidi_open(
        in_rmidi: *mut *mut snd_rawmidi_t,
        out_rmidi: *mut *mut snd_rawmidi_t,
        name: *const ::core::ffi::c_char,
        mode: ::core::ffi::c_int,
    ) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_rawmidi_open_lconf(
        in_rmidi: *mut *mut snd_rawmidi_t,
        out_rmidi: *mut *mut snd_rawmidi_t,
        name: *const ::core::ffi::c_char,
        mode: ::core::ffi::c_int,
        lconf: *mut snd_config_t,
    ) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_rawmidi_close(rmidi: *mut snd_rawmidi_t) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_rawmidi_poll_descriptors_count(rmidi: *mut snd_rawmidi_t) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_rawmidi_poll_descriptors(
        rmidi: *mut snd_rawmidi_t,
        pfds: *mut pollfd,
        space: ::core::ffi::c_uint,
    ) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_rawmidi_poll_descriptors_revents(
        rawmidi: *mut snd_rawmidi_t,
        pfds: *mut pollfd,
        nfds: ::core::ffi::c_uint,
        revent: *mut ::core::ffi::c_ushort,
    ) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_rawmidi_nonblock(
        rmidi: *mut snd_rawmidi_t,
        nonblock: ::core::ffi::c_int,
    ) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_rawmidi_info_sizeof() -> usize;
}
unsafe extern "C" {
    pub fn snd_rawmidi_info_malloc(ptr: *mut *mut snd_rawmidi_info_t) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_rawmidi_info_free(obj: *mut snd_rawmidi_info_t);
}
unsafe extern "C" {
    pub fn snd_rawmidi_info_copy(dst: *mut snd_rawmidi_info_t, src: *const snd_rawmidi_info_t);
}
unsafe extern "C" {
    pub fn snd_rawmidi_info_get_device(obj: *const snd_rawmidi_info_t) -> ::core::ffi::c_uint;
}
unsafe extern "C" {
    pub fn snd_rawmidi_info_get_subdevice(obj: *const snd_rawmidi_info_t) -> ::core::ffi::c_uint;
}
unsafe extern "C" {
    pub fn snd_rawmidi_info_get_stream(obj: *const snd_rawmidi_info_t) -> snd_rawmidi_stream_t;
}
unsafe extern "C" {
    pub fn snd_rawmidi_info_get_card(obj: *const snd_rawmidi_info_t) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_rawmidi_info_get_flags(obj: *const snd_rawmidi_info_t) -> ::core::ffi::c_uint;
}
unsafe extern "C" {
    pub fn snd_rawmidi_info_get_id(obj: *const snd_rawmidi_info_t) -> *const ::core::ffi::c_char;
}
unsafe extern "C" {
    pub fn snd_rawmidi_info_get_name(obj: *const snd_rawmidi_info_t) -> *const ::core::ffi::c_char;
}
unsafe extern "C" {
    pub fn snd_rawmidi_info_get_subdevice_name(
        obj: *const snd_rawmidi_info_t,
    ) -> *const ::core::ffi::c_char;
}
unsafe extern "C" {
    pub fn snd_rawmidi_info_get_subdevices_count(
        obj: *const snd_rawmidi_info_t,
    ) -> ::core::ffi::c_uint;
}
unsafe extern "C" {
    pub fn snd_rawmidi_info_get_subdevices_avail(
        obj: *const snd_rawmidi_info_t,
    ) -> ::core::ffi::c_uint;
}
unsafe extern "C" {
    pub fn snd_rawmidi_info_get_tied_device(obj: *const snd_rawmidi_info_t) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_rawmidi_info_set_device(obj: *mut snd_rawmidi_info_t, val: ::core::ffi::c_uint);
}
unsafe extern "C" {
    pub fn snd_rawmidi_info_set_subdevice(obj: *mut snd_rawmidi_info_t, val: ::core::ffi::c_uint);
}
unsafe extern "C" {
    pub fn snd_rawmidi_info_set_stream(obj: *mut snd_rawmidi_info_t, val: snd_rawmidi_stream_t);
}
unsafe extern "C" {
    pub fn snd_rawmidi_info(
        rmidi: *mut snd_rawmidi_t,
        info: *mut snd_rawmidi_info_t,
    ) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_rawmidi_params_sizeof() -> usize;
}
unsafe extern "C" {
    pub fn snd_rawmidi_params_malloc(ptr: *mut *mut snd_rawmidi_params_t) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_rawmidi_params_free(obj: *mut snd_rawmidi_params_t);
}
unsafe extern "C" {
    pub fn snd_rawmidi_params_copy(
        dst: *mut snd_rawmidi_params_t,
        src: *const snd_rawmidi_params_t,
    );
}
unsafe extern "C" {
    pub fn snd_rawmidi_params_set_buffer_size(
        rmidi: *mut snd_rawmidi_t,
        params: *mut snd_rawmidi_params_t,
        val: usize,
    ) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_rawmidi_params_get_buffer_size(params: *const snd_rawmidi_params_t) -> usize;
}
unsafe extern "C" {
    pub fn snd_rawmidi_params_set_avail_min(
        rmidi: *mut snd_rawmidi_t,
        params: *mut snd_rawmidi_params_t,
        val: usize,
    ) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_rawmidi_params_get_avail_min(params: *const snd_rawmidi_params_t) -> usize;
}
unsafe extern "C" {
    pub fn snd_rawmidi_params_set_no_active_sensing(
        rmidi: *mut snd_rawmidi_t,
        params: *mut snd_rawmidi_params_t,
        val: ::core::ffi::c_int,
    ) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_rawmidi_params_get_no_active_sensing(
        params: *const snd_rawmidi_params_t,
    ) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_rawmidi_params_set_read_mode(
        rawmidi: *const snd_rawmidi_t,
        params: *mut snd_rawmidi_params_t,
        val: snd_rawmidi_read_mode_t,
    ) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_rawmidi_params_get_read_mode(
        params: *const snd_rawmidi_params_t,
    ) -> snd_rawmidi_read_mode_t;
}
unsafe extern "C" {
    pub fn snd_rawmidi_params_set_clock_type(
        rawmidi: *const snd_rawmidi_t,
        params: *mut snd_rawmidi_params_t,
        val: snd_rawmidi_clock_t,
    ) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_rawmidi_params_get_clock_type(
        params: *const snd_rawmidi_params_t,
    ) -> snd_rawmidi_clock_t;
}
unsafe extern "C" {
    pub fn snd_rawmidi_params(
        rmidi: *mut snd_rawmidi_t,
        params: *mut snd_rawmidi_params_t,
    ) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_rawmidi_params_current(
        rmidi: *mut snd_rawmidi_t,
        params: *mut snd_rawmidi_params_t,
    ) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_rawmidi_status_sizeof() -> usize;
}
unsafe extern "C" {
    pub fn snd_rawmidi_status_malloc(ptr: *mut *mut snd_rawmidi_status_t) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_rawmidi_status_free(obj: *mut snd_rawmidi_status_t);
}
unsafe extern "C" {
    pub fn snd_rawmidi_status_copy(
        dst: *mut snd_rawmidi_status_t,
        src: *const snd_rawmidi_status_t,
    );
}
unsafe extern "C" {
    pub fn snd_rawmidi_status_get_tstamp(
        obj: *const snd_rawmidi_status_t,
        ptr: *mut snd_htimestamp_t,
    );
}
unsafe extern "C" {
    pub fn snd_rawmidi_status_get_avail(obj: *const snd_rawmidi_status_t) -> usize;
}
unsafe extern "C" {
    pub fn snd_rawmidi_status_get_xruns(obj: *const snd_rawmidi_status_t) -> usize;
}
unsafe extern "C" {
    pub fn snd_rawmidi_status(
        rmidi: *mut snd_rawmidi_t,
        status: *mut snd_rawmidi_status_t,
    ) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_rawmidi_drain(rmidi: *mut snd_rawmidi_t) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_rawmidi_drop(rmidi: *mut snd_rawmidi_t) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_rawmidi_write(
        rmidi: *mut snd_rawmidi_t,
        buffer: *const ::core::ffi::c_void,
        size: usize,
    ) -> isize;
}
unsafe extern "C" {
    pub fn snd_rawmidi_read(
        rmidi: *mut snd_rawmidi_t,
        buffer: *mut ::core::ffi::c_void,
        size: usize,
    ) -> isize;
}
unsafe extern "C" {
    pub fn snd_rawmidi_tread(
        rmidi: *mut snd_rawmidi_t,
        tstamp: *mut timespec,
        buffer: *mut ::core::ffi::c_void,
        size: usize,
    ) -> isize;
}
unsafe extern "C" {
    pub fn snd_rawmidi_name(rmidi: *mut snd_rawmidi_t) -> *const ::core::ffi::c_char;
}
unsafe extern "C" {
    pub fn snd_rawmidi_type(rmidi: *mut snd_rawmidi_t) -> snd_rawmidi_type_t;
}
unsafe 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_ump {
    _unused: [u8; 0],
}
pub type snd_ump_t = _snd_ump;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct snd_ump_endpoint_info {
    _unused: [u8; 0],
}
pub type snd_ump_endpoint_info_t = snd_ump_endpoint_info;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct snd_ump_block_info {
    _unused: [u8; 0],
}
pub type snd_ump_block_info_t = snd_ump_block_info;
unsafe extern "C" {
    pub fn snd_ump_open(
        inputp: *mut *mut snd_ump_t,
        outputp: *mut *mut snd_ump_t,
        name: *const ::core::ffi::c_char,
        mode: ::core::ffi::c_int,
    ) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_ump_close(ump: *mut snd_ump_t) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_ump_rawmidi(ump: *mut snd_ump_t) -> *mut snd_rawmidi_t;
}
unsafe extern "C" {
    pub fn snd_ump_name(ump: *mut snd_ump_t) -> *const ::core::ffi::c_char;
}
unsafe extern "C" {
    pub fn snd_ump_poll_descriptors_count(ump: *mut snd_ump_t) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_ump_poll_descriptors(
        ump: *mut snd_ump_t,
        pfds: *mut pollfd,
        space: ::core::ffi::c_uint,
    ) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_ump_poll_descriptors_revents(
        ump: *mut snd_ump_t,
        pfds: *mut pollfd,
        nfds: ::core::ffi::c_uint,
        revents: *mut ::core::ffi::c_ushort,
    ) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_ump_nonblock(
        ump: *mut snd_ump_t,
        nonblock: ::core::ffi::c_int,
    ) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_ump_rawmidi_info(
        ump: *mut snd_ump_t,
        info: *mut snd_rawmidi_info_t,
    ) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_ump_rawmidi_params(
        ump: *mut snd_ump_t,
        params: *mut snd_rawmidi_params_t,
    ) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_ump_rawmidi_params_current(
        ump: *mut snd_ump_t,
        params: *mut snd_rawmidi_params_t,
    ) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_ump_rawmidi_status(
        ump: *mut snd_ump_t,
        status: *mut snd_rawmidi_status_t,
    ) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_ump_drop(ump: *mut snd_ump_t) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_ump_drain(ump: *mut snd_ump_t) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_ump_write(
        ump: *mut snd_ump_t,
        buffer: *const ::core::ffi::c_void,
        size: usize,
    ) -> isize;
}
unsafe extern "C" {
    pub fn snd_ump_read(
        ump: *mut snd_ump_t,
        buffer: *mut ::core::ffi::c_void,
        size: usize,
    ) -> isize;
}
unsafe extern "C" {
    pub fn snd_ump_tread(
        ump: *mut snd_ump_t,
        tstamp: *mut timespec,
        buffer: *mut ::core::ffi::c_void,
        size: usize,
    ) -> isize;
}
pub const SND_UMP_DIR_INPUT: _snd_ump_direction = 1;
pub const SND_UMP_DIR_OUTPUT: _snd_ump_direction = 2;
pub const SND_UMP_DIR_BIDIRECTION: _snd_ump_direction = 3;
pub type _snd_ump_direction = ::core::ffi::c_uint;
unsafe extern "C" {
    pub fn snd_ump_endpoint_info_sizeof() -> usize;
}
unsafe extern "C" {
    pub fn snd_ump_endpoint_info_malloc(
        info: *mut *mut snd_ump_endpoint_info_t,
    ) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_ump_endpoint_info_free(info: *mut snd_ump_endpoint_info_t);
}
unsafe extern "C" {
    pub fn snd_ump_endpoint_info_clear(info: *mut snd_ump_endpoint_info_t);
}
unsafe extern "C" {
    pub fn snd_ump_endpoint_info_copy(
        dst: *mut snd_ump_endpoint_info_t,
        src: *const snd_ump_endpoint_info_t,
    );
}
unsafe extern "C" {
    pub fn snd_ump_endpoint_info_get_card(
        info: *const snd_ump_endpoint_info_t,
    ) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_ump_endpoint_info_get_device(
        info: *const snd_ump_endpoint_info_t,
    ) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_ump_endpoint_info_get_flags(
        info: *const snd_ump_endpoint_info_t,
    ) -> ::core::ffi::c_uint;
}
unsafe extern "C" {
    pub fn snd_ump_endpoint_info_get_protocol_caps(
        info: *const snd_ump_endpoint_info_t,
    ) -> ::core::ffi::c_uint;
}
unsafe extern "C" {
    pub fn snd_ump_endpoint_info_get_protocol(
        info: *const snd_ump_endpoint_info_t,
    ) -> ::core::ffi::c_uint;
}
unsafe extern "C" {
    pub fn snd_ump_endpoint_info_get_num_blocks(
        info: *const snd_ump_endpoint_info_t,
    ) -> ::core::ffi::c_uint;
}
unsafe extern "C" {
    pub fn snd_ump_endpoint_info_get_version(
        info: *const snd_ump_endpoint_info_t,
    ) -> ::core::ffi::c_uint;
}
unsafe extern "C" {
    pub fn snd_ump_endpoint_info_get_manufacturer_id(
        info: *const snd_ump_endpoint_info_t,
    ) -> ::core::ffi::c_uint;
}
unsafe extern "C" {
    pub fn snd_ump_endpoint_info_get_family_id(
        info: *const snd_ump_endpoint_info_t,
    ) -> ::core::ffi::c_uint;
}
unsafe extern "C" {
    pub fn snd_ump_endpoint_info_get_model_id(
        info: *const snd_ump_endpoint_info_t,
    ) -> ::core::ffi::c_uint;
}
unsafe extern "C" {
    pub fn snd_ump_endpoint_info_get_sw_revision(
        info: *const snd_ump_endpoint_info_t,
    ) -> *const ::core::ffi::c_uchar;
}
unsafe extern "C" {
    pub fn snd_ump_endpoint_info_get_name(
        info: *const snd_ump_endpoint_info_t,
    ) -> *const ::core::ffi::c_char;
}
unsafe extern "C" {
    pub fn snd_ump_endpoint_info_get_product_id(
        info: *const snd_ump_endpoint_info_t,
    ) -> *const ::core::ffi::c_char;
}
unsafe extern "C" {
    pub fn snd_ump_endpoint_info(
        ump: *mut snd_ump_t,
        info: *mut snd_ump_endpoint_info_t,
    ) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_ump_endpoint_info_set_card(
        info: *mut snd_ump_endpoint_info_t,
        card: ::core::ffi::c_uint,
    );
}
unsafe extern "C" {
    pub fn snd_ump_endpoint_info_set_device(
        info: *mut snd_ump_endpoint_info_t,
        device: ::core::ffi::c_uint,
    );
}
unsafe extern "C" {
    pub fn snd_ump_endpoint_info_set_flags(
        info: *mut snd_ump_endpoint_info_t,
        flags: ::core::ffi::c_uint,
    );
}
unsafe extern "C" {
    pub fn snd_ump_endpoint_info_set_protocol_caps(
        info: *mut snd_ump_endpoint_info_t,
        caps: ::core::ffi::c_uint,
    );
}
unsafe extern "C" {
    pub fn snd_ump_endpoint_info_set_protocol(
        info: *mut snd_ump_endpoint_info_t,
        protocols: ::core::ffi::c_uint,
    );
}
unsafe extern "C" {
    pub fn snd_ump_endpoint_info_set_num_blocks(
        info: *mut snd_ump_endpoint_info_t,
        num_blocks: ::core::ffi::c_uint,
    );
}
unsafe extern "C" {
    pub fn snd_ump_endpoint_info_set_version(
        info: *mut snd_ump_endpoint_info_t,
        version: ::core::ffi::c_uint,
    );
}
unsafe extern "C" {
    pub fn snd_ump_endpoint_info_set_manufacturer_id(
        info: *mut snd_ump_endpoint_info_t,
        id: ::core::ffi::c_uint,
    );
}
unsafe extern "C" {
    pub fn snd_ump_endpoint_info_set_family_id(
        info: *mut snd_ump_endpoint_info_t,
        id: ::core::ffi::c_uint,
    );
}
unsafe extern "C" {
    pub fn snd_ump_endpoint_info_set_model_id(
        info: *mut snd_ump_endpoint_info_t,
        id: ::core::ffi::c_uint,
    );
}
unsafe extern "C" {
    pub fn snd_ump_endpoint_info_set_sw_revision(
        info: *mut snd_ump_endpoint_info_t,
        id: *const ::core::ffi::c_uchar,
    );
}
unsafe extern "C" {
    pub fn snd_ump_endpoint_info_set_name(
        info: *mut snd_ump_endpoint_info_t,
        name: *const ::core::ffi::c_char,
    );
}
unsafe extern "C" {
    pub fn snd_ump_endpoint_info_set_product_id(
        info: *mut snd_ump_endpoint_info_t,
        id: *const ::core::ffi::c_char,
    );
}
pub const SND_UMP_BLOCK_UI_HINT_UNKNOWN: _snd_ump_block_ui_hint = 0;
pub const SND_UMP_BLOCK_UI_HINT_RECEIVER: _snd_ump_block_ui_hint = 1;
pub const SND_UMP_BLOCK_UI_HINT_SENDER: _snd_ump_block_ui_hint = 2;
pub const SND_UMP_BLOCK_UI_HINT_BOTH: _snd_ump_block_ui_hint = 3;
pub type _snd_ump_block_ui_hint = ::core::ffi::c_uint;
unsafe extern "C" {
    pub fn snd_ump_block_info_sizeof() -> usize;
}
unsafe extern "C" {
    pub fn snd_ump_block_info_malloc(info: *mut *mut snd_ump_block_info_t) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_ump_block_info_free(info: *mut snd_ump_block_info_t);
}
unsafe extern "C" {
    pub fn snd_ump_block_info_clear(info: *mut snd_ump_block_info_t);
}
unsafe extern "C" {
    pub fn snd_ump_block_info_copy(
        dst: *mut snd_ump_block_info_t,
        src: *const snd_ump_block_info_t,
    );
}
unsafe extern "C" {
    pub fn snd_ump_block_info_get_card(info: *const snd_ump_block_info_t) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_ump_block_info_get_device(info: *const snd_ump_block_info_t) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_ump_block_info_get_block_id(
        info: *const snd_ump_block_info_t,
    ) -> ::core::ffi::c_uint;
}
unsafe extern "C" {
    pub fn snd_ump_block_info_get_active(info: *const snd_ump_block_info_t) -> ::core::ffi::c_uint;
}
unsafe extern "C" {
    pub fn snd_ump_block_info_get_flags(info: *const snd_ump_block_info_t) -> ::core::ffi::c_uint;
}
unsafe extern "C" {
    pub fn snd_ump_block_info_get_direction(
        info: *const snd_ump_block_info_t,
    ) -> ::core::ffi::c_uint;
}
unsafe extern "C" {
    pub fn snd_ump_block_info_get_first_group(
        info: *const snd_ump_block_info_t,
    ) -> ::core::ffi::c_uint;
}
unsafe extern "C" {
    pub fn snd_ump_block_info_get_num_groups(
        info: *const snd_ump_block_info_t,
    ) -> ::core::ffi::c_uint;
}
unsafe extern "C" {
    pub fn snd_ump_block_info_get_midi_ci_version(
        info: *const snd_ump_block_info_t,
    ) -> ::core::ffi::c_uint;
}
unsafe extern "C" {
    pub fn snd_ump_block_info_get_sysex8_streams(
        info: *const snd_ump_block_info_t,
    ) -> ::core::ffi::c_uint;
}
unsafe extern "C" {
    pub fn snd_ump_block_info_get_ui_hint(info: *const snd_ump_block_info_t)
    -> ::core::ffi::c_uint;
}
unsafe extern "C" {
    pub fn snd_ump_block_info_get_name(
        info: *const snd_ump_block_info_t,
    ) -> *const ::core::ffi::c_char;
}
unsafe extern "C" {
    pub fn snd_ump_block_info(
        ump: *mut snd_ump_t,
        info: *mut snd_ump_block_info_t,
    ) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_ump_block_info_set_card(info: *mut snd_ump_block_info_t, card: ::core::ffi::c_uint);
}
unsafe extern "C" {
    pub fn snd_ump_block_info_set_device(
        info: *mut snd_ump_block_info_t,
        device: ::core::ffi::c_uint,
    );
}
unsafe extern "C" {
    pub fn snd_ump_block_info_set_block_id(
        info: *mut snd_ump_block_info_t,
        id: ::core::ffi::c_uint,
    );
}
unsafe extern "C" {
    pub fn snd_ump_block_info_set_active(
        info: *mut snd_ump_block_info_t,
        active: ::core::ffi::c_uint,
    );
}
unsafe extern "C" {
    pub fn snd_ump_block_info_set_flags(
        info: *mut snd_ump_block_info_t,
        flags: ::core::ffi::c_uint,
    );
}
unsafe extern "C" {
    pub fn snd_ump_block_info_set_direction(
        info: *mut snd_ump_block_info_t,
        direction: ::core::ffi::c_uint,
    );
}
unsafe extern "C" {
    pub fn snd_ump_block_info_set_first_group(
        info: *mut snd_ump_block_info_t,
        first_group: ::core::ffi::c_uint,
    );
}
unsafe extern "C" {
    pub fn snd_ump_block_info_set_num_groups(
        info: *mut snd_ump_block_info_t,
        num_groups: ::core::ffi::c_uint,
    );
}
unsafe extern "C" {
    pub fn snd_ump_block_info_set_midi_ci_version(
        info: *mut snd_ump_block_info_t,
        version: ::core::ffi::c_uint,
    );
}
unsafe extern "C" {
    pub fn snd_ump_block_info_set_sysex8_streams(
        info: *mut snd_ump_block_info_t,
        streams: ::core::ffi::c_uint,
    );
}
unsafe extern "C" {
    pub fn snd_ump_block_info_set_ui_hint(
        info: *mut snd_ump_block_info_t,
        hint: ::core::ffi::c_uint,
    );
}
unsafe extern "C" {
    pub fn snd_ump_block_info_set_name(
        info: *mut snd_ump_block_info_t,
        name: *const ::core::ffi::c_char,
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _snd_timer_id {
    _unused: [u8; 0],
}
pub type snd_timer_id_t = _snd_timer_id;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _snd_timer_ginfo {
    _unused: [u8; 0],
}
pub type snd_timer_ginfo_t = _snd_timer_ginfo;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _snd_timer_gparams {
    _unused: [u8; 0],
}
pub type snd_timer_gparams_t = _snd_timer_gparams;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _snd_timer_gstatus {
    _unused: [u8; 0],
}
pub type snd_timer_gstatus_t = _snd_timer_gstatus;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _snd_timer_info {
    _unused: [u8; 0],
}
pub type snd_timer_info_t = _snd_timer_info;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _snd_timer_params {
    _unused: [u8; 0],
}
pub type snd_timer_params_t = _snd_timer_params;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _snd_timer_status {
    _unused: [u8; 0],
}
pub type snd_timer_status_t = _snd_timer_status;
pub const SND_TIMER_CLASS_NONE: _snd_timer_class = -1;
pub const SND_TIMER_CLASS_SLAVE: _snd_timer_class = 0;
pub const SND_TIMER_CLASS_GLOBAL: _snd_timer_class = 1;
pub const SND_TIMER_CLASS_CARD: _snd_timer_class = 2;
pub const SND_TIMER_CLASS_PCM: _snd_timer_class = 3;
pub const SND_TIMER_CLASS_LAST: _snd_timer_class = 3;
pub type _snd_timer_class = ::core::ffi::c_int;
pub use self::_snd_timer_class as snd_timer_class_t;
pub const SND_TIMER_SCLASS_NONE: _snd_timer_slave_class = 0;
pub const SND_TIMER_SCLASS_APPLICATION: _snd_timer_slave_class = 1;
pub const SND_TIMER_SCLASS_SEQUENCER: _snd_timer_slave_class = 2;
pub const SND_TIMER_SCLASS_OSS_SEQUENCER: _snd_timer_slave_class = 3;
pub const SND_TIMER_SCLASS_LAST: _snd_timer_slave_class = 3;
pub type _snd_timer_slave_class = ::core::ffi::c_uint;
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;
pub type _snd_timer_event = ::core::ffi::c_uint;
pub use self::_snd_timer_event as snd_timer_event_t;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _snd_timer_read {
    pub resolution: ::core::ffi::c_uint,
    pub ticks: ::core::ffi::c_uint,
}
pub type snd_timer_read_t = _snd_timer_read;
#[repr(C)]
pub struct _snd_timer_tread {
    pub event: snd_timer_event_t,
    pub tstamp: snd_htimestamp_t,
    pub val: ::core::ffi::c_uint,
}
pub type snd_timer_tread_t = _snd_timer_tread;
pub const SND_TIMER_TYPE_HW: _snd_timer_type = 0;
pub const SND_TIMER_TYPE_SHM: _snd_timer_type = 1;
pub const SND_TIMER_TYPE_INET: _snd_timer_type = 2;
pub type _snd_timer_type = ::core::ffi::c_uint;
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],
}
pub type snd_timer_query_t = _snd_timer_query;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _snd_timer {
    _unused: [u8; 0],
}
pub type snd_timer_t = _snd_timer;
unsafe extern "C" {
    pub fn snd_timer_query_open(
        handle: *mut *mut snd_timer_query_t,
        name: *const ::core::ffi::c_char,
        mode: ::core::ffi::c_int,
    ) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_timer_query_open_lconf(
        handle: *mut *mut snd_timer_query_t,
        name: *const ::core::ffi::c_char,
        mode: ::core::ffi::c_int,
        lconf: *mut snd_config_t,
    ) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_timer_query_close(handle: *mut snd_timer_query_t) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_timer_query_next_device(
        handle: *mut snd_timer_query_t,
        tid: *mut snd_timer_id_t,
    ) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_timer_query_info(
        handle: *mut snd_timer_query_t,
        info: *mut snd_timer_ginfo_t,
    ) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_timer_query_params(
        handle: *mut snd_timer_query_t,
        params: *mut snd_timer_gparams_t,
    ) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_timer_query_status(
        handle: *mut snd_timer_query_t,
        status: *mut snd_timer_gstatus_t,
    ) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_timer_open(
        handle: *mut *mut snd_timer_t,
        name: *const ::core::ffi::c_char,
        mode: ::core::ffi::c_int,
    ) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_timer_open_lconf(
        handle: *mut *mut snd_timer_t,
        name: *const ::core::ffi::c_char,
        mode: ::core::ffi::c_int,
        lconf: *mut snd_config_t,
    ) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_timer_close(handle: *mut snd_timer_t) -> ::core::ffi::c_int;
}
unsafe 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 ::core::ffi::c_void,
    ) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_async_handler_get_timer(handler: *mut snd_async_handler_t) -> *mut snd_timer_t;
}
unsafe extern "C" {
    pub fn snd_timer_poll_descriptors_count(handle: *mut snd_timer_t) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_timer_poll_descriptors(
        handle: *mut snd_timer_t,
        pfds: *mut pollfd,
        space: ::core::ffi::c_uint,
    ) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_timer_poll_descriptors_revents(
        timer: *mut snd_timer_t,
        pfds: *mut pollfd,
        nfds: ::core::ffi::c_uint,
        revents: *mut ::core::ffi::c_ushort,
    ) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_timer_info(
        handle: *mut snd_timer_t,
        timer: *mut snd_timer_info_t,
    ) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_timer_params(
        handle: *mut snd_timer_t,
        params: *mut snd_timer_params_t,
    ) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_timer_status(
        handle: *mut snd_timer_t,
        status: *mut snd_timer_status_t,
    ) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_timer_start(handle: *mut snd_timer_t) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_timer_stop(handle: *mut snd_timer_t) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_timer_continue(handle: *mut snd_timer_t) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_timer_read(
        handle: *mut snd_timer_t,
        buffer: *mut ::core::ffi::c_void,
        size: usize,
    ) -> isize;
}
unsafe extern "C" {
    pub fn snd_timer_id_sizeof() -> usize;
}
unsafe extern "C" {
    pub fn snd_timer_id_malloc(ptr: *mut *mut snd_timer_id_t) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_timer_id_free(obj: *mut snd_timer_id_t);
}
unsafe extern "C" {
    pub fn snd_timer_id_copy(dst: *mut snd_timer_id_t, src: *const snd_timer_id_t);
}
unsafe extern "C" {
    pub fn snd_timer_id_set_class(id: *mut snd_timer_id_t, dev_class: ::core::ffi::c_int);
}
unsafe extern "C" {
    pub fn snd_timer_id_get_class(id: *mut snd_timer_id_t) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_timer_id_set_sclass(id: *mut snd_timer_id_t, dev_sclass: ::core::ffi::c_int);
}
unsafe extern "C" {
    pub fn snd_timer_id_get_sclass(id: *mut snd_timer_id_t) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_timer_id_set_card(id: *mut snd_timer_id_t, card: ::core::ffi::c_int);
}
unsafe extern "C" {
    pub fn snd_timer_id_get_card(id: *mut snd_timer_id_t) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_timer_id_set_device(id: *mut snd_timer_id_t, device: ::core::ffi::c_int);
}
unsafe extern "C" {
    pub fn snd_timer_id_get_device(id: *mut snd_timer_id_t) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_timer_id_set_subdevice(id: *mut snd_timer_id_t, subdevice: ::core::ffi::c_int);
}
unsafe extern "C" {
    pub fn snd_timer_id_get_subdevice(id: *mut snd_timer_id_t) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_timer_ginfo_sizeof() -> usize;
}
unsafe extern "C" {
    pub fn snd_timer_ginfo_malloc(ptr: *mut *mut snd_timer_ginfo_t) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_timer_ginfo_free(obj: *mut snd_timer_ginfo_t);
}
unsafe extern "C" {
    pub fn snd_timer_ginfo_copy(dst: *mut snd_timer_ginfo_t, src: *const snd_timer_ginfo_t);
}
unsafe extern "C" {
    pub fn snd_timer_ginfo_set_tid(
        obj: *mut snd_timer_ginfo_t,
        tid: *mut snd_timer_id_t,
    ) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_timer_ginfo_get_tid(obj: *mut snd_timer_ginfo_t) -> *mut snd_timer_id_t;
}
unsafe extern "C" {
    pub fn snd_timer_ginfo_get_flags(obj: *mut snd_timer_ginfo_t) -> ::core::ffi::c_uint;
}
unsafe extern "C" {
    pub fn snd_timer_ginfo_get_card(obj: *mut snd_timer_ginfo_t) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_timer_ginfo_get_id(obj: *mut snd_timer_ginfo_t) -> *mut ::core::ffi::c_char;
}
unsafe extern "C" {
    pub fn snd_timer_ginfo_get_name(obj: *mut snd_timer_ginfo_t) -> *mut ::core::ffi::c_char;
}
unsafe extern "C" {
    pub fn snd_timer_ginfo_get_resolution(obj: *mut snd_timer_ginfo_t) -> ::core::ffi::c_ulong;
}
unsafe extern "C" {
    pub fn snd_timer_ginfo_get_resolution_min(obj: *mut snd_timer_ginfo_t) -> ::core::ffi::c_ulong;
}
unsafe extern "C" {
    pub fn snd_timer_ginfo_get_resolution_max(obj: *mut snd_timer_ginfo_t) -> ::core::ffi::c_ulong;
}
unsafe extern "C" {
    pub fn snd_timer_ginfo_get_clients(obj: *mut snd_timer_ginfo_t) -> ::core::ffi::c_uint;
}
unsafe extern "C" {
    pub fn snd_timer_info_sizeof() -> usize;
}
unsafe extern "C" {
    pub fn snd_timer_info_malloc(ptr: *mut *mut snd_timer_info_t) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_timer_info_free(obj: *mut snd_timer_info_t);
}
unsafe extern "C" {
    pub fn snd_timer_info_copy(dst: *mut snd_timer_info_t, src: *const snd_timer_info_t);
}
unsafe extern "C" {
    pub fn snd_timer_info_is_slave(info: *mut snd_timer_info_t) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_timer_info_get_card(info: *mut snd_timer_info_t) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_timer_info_get_id(info: *mut snd_timer_info_t) -> *const ::core::ffi::c_char;
}
unsafe extern "C" {
    pub fn snd_timer_info_get_name(info: *mut snd_timer_info_t) -> *const ::core::ffi::c_char;
}
unsafe extern "C" {
    pub fn snd_timer_info_get_resolution(info: *mut snd_timer_info_t) -> ::core::ffi::c_long;
}
unsafe extern "C" {
    pub fn snd_timer_params_sizeof() -> usize;
}
unsafe extern "C" {
    pub fn snd_timer_params_malloc(ptr: *mut *mut snd_timer_params_t) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_timer_params_free(obj: *mut snd_timer_params_t);
}
unsafe extern "C" {
    pub fn snd_timer_params_copy(dst: *mut snd_timer_params_t, src: *const snd_timer_params_t);
}
unsafe extern "C" {
    pub fn snd_timer_params_set_auto_start(
        params: *mut snd_timer_params_t,
        auto_start: ::core::ffi::c_int,
    ) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_timer_params_get_auto_start(params: *mut snd_timer_params_t) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_timer_params_set_exclusive(
        params: *mut snd_timer_params_t,
        exclusive: ::core::ffi::c_int,
    ) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_timer_params_get_exclusive(params: *mut snd_timer_params_t) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_timer_params_set_early_event(
        params: *mut snd_timer_params_t,
        early_event: ::core::ffi::c_int,
    ) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_timer_params_get_early_event(params: *mut snd_timer_params_t) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_timer_params_set_ticks(params: *mut snd_timer_params_t, ticks: ::core::ffi::c_long);
}
unsafe extern "C" {
    pub fn snd_timer_params_get_ticks(params: *mut snd_timer_params_t) -> ::core::ffi::c_long;
}
unsafe extern "C" {
    pub fn snd_timer_params_set_queue_size(
        params: *mut snd_timer_params_t,
        queue_size: ::core::ffi::c_long,
    );
}
unsafe extern "C" {
    pub fn snd_timer_params_get_queue_size(params: *mut snd_timer_params_t) -> ::core::ffi::c_long;
}
unsafe extern "C" {
    pub fn snd_timer_params_set_filter(
        params: *mut snd_timer_params_t,
        filter: ::core::ffi::c_uint,
    );
}
unsafe extern "C" {
    pub fn snd_timer_params_get_filter(params: *mut snd_timer_params_t) -> ::core::ffi::c_uint;
}
unsafe extern "C" {
    pub fn snd_timer_status_sizeof() -> usize;
}
unsafe extern "C" {
    pub fn snd_timer_status_malloc(ptr: *mut *mut snd_timer_status_t) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_timer_status_free(obj: *mut snd_timer_status_t);
}
unsafe extern "C" {
    pub fn snd_timer_status_copy(dst: *mut snd_timer_status_t, src: *const snd_timer_status_t);
}
unsafe extern "C" {
    pub fn snd_timer_status_get_timestamp(status: *mut snd_timer_status_t) -> snd_htimestamp_t;
}
unsafe extern "C" {
    pub fn snd_timer_status_get_resolution(status: *mut snd_timer_status_t) -> ::core::ffi::c_long;
}
unsafe extern "C" {
    pub fn snd_timer_status_get_lost(status: *mut snd_timer_status_t) -> ::core::ffi::c_long;
}
unsafe extern "C" {
    pub fn snd_timer_status_get_overrun(status: *mut snd_timer_status_t) -> ::core::ffi::c_long;
}
unsafe extern "C" {
    pub fn snd_timer_status_get_queue(status: *mut snd_timer_status_t) -> ::core::ffi::c_long;
}
unsafe extern "C" {
    pub fn snd_timer_info_get_ticks(info: *mut snd_timer_info_t) -> ::core::ffi::c_long;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _snd_hwdep_info {
    _unused: [u8; 0],
}
pub type snd_hwdep_info_t = _snd_hwdep_info;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _snd_hwdep_dsp_status {
    _unused: [u8; 0],
}
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],
}
pub type snd_hwdep_dsp_image_t = _snd_hwdep_dsp_image;
pub const SND_HWDEP_IFACE_OPL2: _snd_hwdep_iface = 0;
pub const SND_HWDEP_IFACE_OPL3: _snd_hwdep_iface = 1;
pub const SND_HWDEP_IFACE_OPL4: _snd_hwdep_iface = 2;
pub const SND_HWDEP_IFACE_SB16CSP: _snd_hwdep_iface = 3;
pub const SND_HWDEP_IFACE_EMU10K1: _snd_hwdep_iface = 4;
pub const SND_HWDEP_IFACE_YSS225: _snd_hwdep_iface = 5;
pub const SND_HWDEP_IFACE_ICS2115: _snd_hwdep_iface = 6;
pub const SND_HWDEP_IFACE_SSCAPE: _snd_hwdep_iface = 7;
pub const SND_HWDEP_IFACE_VX: _snd_hwdep_iface = 8;
pub const SND_HWDEP_IFACE_MIXART: _snd_hwdep_iface = 9;
pub const SND_HWDEP_IFACE_USX2Y: _snd_hwdep_iface = 10;
pub const SND_HWDEP_IFACE_EMUX_WAVETABLE: _snd_hwdep_iface = 11;
pub const SND_HWDEP_IFACE_BLUETOOTH: _snd_hwdep_iface = 12;
pub const SND_HWDEP_IFACE_USX2Y_PCM: _snd_hwdep_iface = 13;
pub const SND_HWDEP_IFACE_PCXHR: _snd_hwdep_iface = 14;
pub const SND_HWDEP_IFACE_SB_RC: _snd_hwdep_iface = 15;
pub const SND_HWDEP_IFACE_HDA: _snd_hwdep_iface = 16;
pub const SND_HWDEP_IFACE_USB_STREAM: _snd_hwdep_iface = 17;
pub const SND_HWDEP_IFACE_FW_DICE: _snd_hwdep_iface = 18;
pub const SND_HWDEP_IFACE_FW_FIREWORKS: _snd_hwdep_iface = 19;
pub const SND_HWDEP_IFACE_FW_BEBOB: _snd_hwdep_iface = 20;
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;
pub const SND_HWDEP_IFACE_LAST: _snd_hwdep_iface = 26;
pub type _snd_hwdep_iface = ::core::ffi::c_uint;
pub use self::_snd_hwdep_iface as snd_hwdep_iface_t;
pub const SND_HWDEP_TYPE_HW: _snd_hwdep_type = 0;
pub const SND_HWDEP_TYPE_SHM: _snd_hwdep_type = 1;
pub const SND_HWDEP_TYPE_INET: _snd_hwdep_type = 2;
pub type _snd_hwdep_type = ::core::ffi::c_uint;
pub use self::_snd_hwdep_type as snd_hwdep_type_t;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _snd_hwdep {
    _unused: [u8; 0],
}
pub type snd_hwdep_t = _snd_hwdep;
unsafe extern "C" {
    pub fn snd_hwdep_open(
        hwdep: *mut *mut snd_hwdep_t,
        name: *const ::core::ffi::c_char,
        mode: ::core::ffi::c_int,
    ) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_hwdep_close(hwdep: *mut snd_hwdep_t) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_hwdep_poll_descriptors(
        hwdep: *mut snd_hwdep_t,
        pfds: *mut pollfd,
        space: ::core::ffi::c_uint,
    ) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_hwdep_poll_descriptors_count(hwdep: *mut snd_hwdep_t) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_hwdep_poll_descriptors_revents(
        hwdep: *mut snd_hwdep_t,
        pfds: *mut pollfd,
        nfds: ::core::ffi::c_uint,
        revents: *mut ::core::ffi::c_ushort,
    ) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_hwdep_nonblock(
        hwdep: *mut snd_hwdep_t,
        nonblock: ::core::ffi::c_int,
    ) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_hwdep_info(
        hwdep: *mut snd_hwdep_t,
        info: *mut snd_hwdep_info_t,
    ) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_hwdep_dsp_status(
        hwdep: *mut snd_hwdep_t,
        status: *mut snd_hwdep_dsp_status_t,
    ) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_hwdep_dsp_load(
        hwdep: *mut snd_hwdep_t,
        block: *mut snd_hwdep_dsp_image_t,
    ) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_hwdep_ioctl(
        hwdep: *mut snd_hwdep_t,
        request: ::core::ffi::c_uint,
        arg: *mut ::core::ffi::c_void,
    ) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_hwdep_write(
        hwdep: *mut snd_hwdep_t,
        buffer: *const ::core::ffi::c_void,
        size: usize,
    ) -> isize;
}
unsafe extern "C" {
    pub fn snd_hwdep_read(
        hwdep: *mut snd_hwdep_t,
        buffer: *mut ::core::ffi::c_void,
        size: usize,
    ) -> isize;
}
unsafe extern "C" {
    pub fn snd_hwdep_info_sizeof() -> usize;
}
unsafe extern "C" {
    pub fn snd_hwdep_info_malloc(ptr: *mut *mut snd_hwdep_info_t) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_hwdep_info_free(obj: *mut snd_hwdep_info_t);
}
unsafe extern "C" {
    pub fn snd_hwdep_info_copy(dst: *mut snd_hwdep_info_t, src: *const snd_hwdep_info_t);
}
unsafe extern "C" {
    pub fn snd_hwdep_info_get_device(obj: *const snd_hwdep_info_t) -> ::core::ffi::c_uint;
}
unsafe extern "C" {
    pub fn snd_hwdep_info_get_card(obj: *const snd_hwdep_info_t) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_hwdep_info_get_id(obj: *const snd_hwdep_info_t) -> *const ::core::ffi::c_char;
}
unsafe extern "C" {
    pub fn snd_hwdep_info_get_name(obj: *const snd_hwdep_info_t) -> *const ::core::ffi::c_char;
}
unsafe extern "C" {
    pub fn snd_hwdep_info_get_iface(obj: *const snd_hwdep_info_t) -> snd_hwdep_iface_t;
}
unsafe extern "C" {
    pub fn snd_hwdep_info_set_device(obj: *mut snd_hwdep_info_t, val: ::core::ffi::c_uint);
}
unsafe extern "C" {
    pub fn snd_hwdep_dsp_status_sizeof() -> usize;
}
unsafe extern "C" {
    pub fn snd_hwdep_dsp_status_malloc(ptr: *mut *mut snd_hwdep_dsp_status_t)
    -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_hwdep_dsp_status_free(obj: *mut snd_hwdep_dsp_status_t);
}
unsafe extern "C" {
    pub fn snd_hwdep_dsp_status_copy(
        dst: *mut snd_hwdep_dsp_status_t,
        src: *const snd_hwdep_dsp_status_t,
    );
}
unsafe extern "C" {
    pub fn snd_hwdep_dsp_status_get_version(
        obj: *const snd_hwdep_dsp_status_t,
    ) -> ::core::ffi::c_uint;
}
unsafe extern "C" {
    pub fn snd_hwdep_dsp_status_get_id(
        obj: *const snd_hwdep_dsp_status_t,
    ) -> *const ::core::ffi::c_char;
}
unsafe extern "C" {
    pub fn snd_hwdep_dsp_status_get_num_dsps(
        obj: *const snd_hwdep_dsp_status_t,
    ) -> ::core::ffi::c_uint;
}
unsafe extern "C" {
    pub fn snd_hwdep_dsp_status_get_dsp_loaded(
        obj: *const snd_hwdep_dsp_status_t,
    ) -> ::core::ffi::c_uint;
}
unsafe extern "C" {
    pub fn snd_hwdep_dsp_status_get_chip_ready(
        obj: *const snd_hwdep_dsp_status_t,
    ) -> ::core::ffi::c_uint;
}
unsafe extern "C" {
    pub fn snd_hwdep_dsp_image_sizeof() -> usize;
}
unsafe extern "C" {
    pub fn snd_hwdep_dsp_image_malloc(ptr: *mut *mut snd_hwdep_dsp_image_t) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_hwdep_dsp_image_free(obj: *mut snd_hwdep_dsp_image_t);
}
unsafe extern "C" {
    pub fn snd_hwdep_dsp_image_copy(
        dst: *mut snd_hwdep_dsp_image_t,
        src: *const snd_hwdep_dsp_image_t,
    );
}
unsafe extern "C" {
    pub fn snd_hwdep_dsp_image_get_index(obj: *const snd_hwdep_dsp_image_t) -> ::core::ffi::c_uint;
}
unsafe extern "C" {
    pub fn snd_hwdep_dsp_image_get_name(
        obj: *const snd_hwdep_dsp_image_t,
    ) -> *const ::core::ffi::c_char;
}
unsafe extern "C" {
    pub fn snd_hwdep_dsp_image_get_image(
        obj: *const snd_hwdep_dsp_image_t,
    ) -> *const ::core::ffi::c_void;
}
unsafe extern "C" {
    pub fn snd_hwdep_dsp_image_get_length(obj: *const snd_hwdep_dsp_image_t) -> usize;
}
unsafe extern "C" {
    pub fn snd_hwdep_dsp_image_set_index(
        obj: *mut snd_hwdep_dsp_image_t,
        _index: ::core::ffi::c_uint,
    );
}
unsafe extern "C" {
    pub fn snd_hwdep_dsp_image_set_name(
        obj: *mut snd_hwdep_dsp_image_t,
        name: *const ::core::ffi::c_char,
    );
}
unsafe extern "C" {
    pub fn snd_hwdep_dsp_image_set_image(
        obj: *mut snd_hwdep_dsp_image_t,
        buffer: *mut ::core::ffi::c_void,
    );
}
unsafe extern "C" {
    pub fn snd_hwdep_dsp_image_set_length(obj: *mut snd_hwdep_dsp_image_t, length: usize);
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct snd_aes_iec958 {
    pub status: [::core::ffi::c_uchar; 24usize],
    pub subcode: [::core::ffi::c_uchar; 147usize],
    pub pad: ::core::ffi::c_uchar,
    pub dig_subframe: [::core::ffi::c_uchar; 4usize],
}
pub type snd_aes_iec958_t = snd_aes_iec958;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _snd_ctl_card_info {
    _unused: [u8; 0],
}
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],
}
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],
}
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],
}
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],
}
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],
}
pub type snd_ctl_event_t = _snd_ctl_event;
pub const SND_CTL_ELEM_TYPE_NONE: _snd_ctl_elem_type = 0;
pub const SND_CTL_ELEM_TYPE_BOOLEAN: _snd_ctl_elem_type = 1;
pub const SND_CTL_ELEM_TYPE_INTEGER: _snd_ctl_elem_type = 2;
pub const SND_CTL_ELEM_TYPE_ENUMERATED: _snd_ctl_elem_type = 3;
pub const SND_CTL_ELEM_TYPE_BYTES: _snd_ctl_elem_type = 4;
pub const SND_CTL_ELEM_TYPE_IEC958: _snd_ctl_elem_type = 5;
pub const SND_CTL_ELEM_TYPE_INTEGER64: _snd_ctl_elem_type = 6;
pub const SND_CTL_ELEM_TYPE_LAST: _snd_ctl_elem_type = 6;
pub type _snd_ctl_elem_type = ::core::ffi::c_uint;
pub use self::_snd_ctl_elem_type as snd_ctl_elem_type_t;
pub const SND_CTL_ELEM_IFACE_CARD: _snd_ctl_elem_iface = 0;
pub const SND_CTL_ELEM_IFACE_HWDEP: _snd_ctl_elem_iface = 1;
pub const SND_CTL_ELEM_IFACE_MIXER: _snd_ctl_elem_iface = 2;
pub const SND_CTL_ELEM_IFACE_PCM: _snd_ctl_elem_iface = 3;
pub const SND_CTL_ELEM_IFACE_RAWMIDI: _snd_ctl_elem_iface = 4;
pub const SND_CTL_ELEM_IFACE_TIMER: _snd_ctl_elem_iface = 5;
pub const SND_CTL_ELEM_IFACE_SEQUENCER: _snd_ctl_elem_iface = 6;
pub const SND_CTL_ELEM_IFACE_LAST: _snd_ctl_elem_iface = 6;
pub type _snd_ctl_elem_iface = ::core::ffi::c_uint;
pub use self::_snd_ctl_elem_iface as snd_ctl_elem_iface_t;
pub const SND_CTL_EVENT_ELEM: _snd_ctl_event_type = 0;
pub const SND_CTL_EVENT_LAST: _snd_ctl_event_type = 0;
pub type _snd_ctl_event_type = ::core::ffi::c_uint;
pub use self::_snd_ctl_event_type as snd_ctl_event_type_t;
pub const SND_CTL_TYPE_HW: _snd_ctl_type = 0;
pub const SND_CTL_TYPE_SHM: _snd_ctl_type = 1;
pub const SND_CTL_TYPE_INET: _snd_ctl_type = 2;
pub const SND_CTL_TYPE_EXT: _snd_ctl_type = 3;
pub const SND_CTL_TYPE_REMAP: _snd_ctl_type = 4;
pub type _snd_ctl_type = ::core::ffi::c_uint;
pub use self::_snd_ctl_type as snd_ctl_type_t;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _snd_ctl {
    _unused: [u8; 0],
}
pub type snd_ctl_t = _snd_ctl;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _snd_sctl {
    _unused: [u8; 0],
}
pub type snd_sctl_t = _snd_sctl;
unsafe extern "C" {
    pub fn snd_card_load(card: ::core::ffi::c_int) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_card_next(card: *mut ::core::ffi::c_int) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_card_get_index(name: *const ::core::ffi::c_char) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_card_get_name(
        card: ::core::ffi::c_int,
        name: *mut *mut ::core::ffi::c_char,
    ) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_card_get_longname(
        card: ::core::ffi::c_int,
        name: *mut *mut ::core::ffi::c_char,
    ) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_ctl_open(
        ctl: *mut *mut snd_ctl_t,
        name: *const ::core::ffi::c_char,
        mode: ::core::ffi::c_int,
    ) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_ctl_open_lconf(
        ctl: *mut *mut snd_ctl_t,
        name: *const ::core::ffi::c_char,
        mode: ::core::ffi::c_int,
        lconf: *mut snd_config_t,
    ) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_ctl_open_fallback(
        ctl: *mut *mut snd_ctl_t,
        root: *mut snd_config_t,
        name: *const ::core::ffi::c_char,
        orig_name: *const ::core::ffi::c_char,
        mode: ::core::ffi::c_int,
    ) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_ctl_close(ctl: *mut snd_ctl_t) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_ctl_nonblock(
        ctl: *mut snd_ctl_t,
        nonblock: ::core::ffi::c_int,
    ) -> ::core::ffi::c_int;
}
unsafe 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 ::core::ffi::c_void,
    ) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_async_handler_get_ctl(handler: *mut snd_async_handler_t) -> *mut snd_ctl_t;
}
unsafe extern "C" {
    pub fn snd_ctl_poll_descriptors_count(ctl: *mut snd_ctl_t) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_ctl_poll_descriptors(
        ctl: *mut snd_ctl_t,
        pfds: *mut pollfd,
        space: ::core::ffi::c_uint,
    ) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_ctl_poll_descriptors_revents(
        ctl: *mut snd_ctl_t,
        pfds: *mut pollfd,
        nfds: ::core::ffi::c_uint,
        revents: *mut ::core::ffi::c_ushort,
    ) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_ctl_subscribe_events(
        ctl: *mut snd_ctl_t,
        subscribe: ::core::ffi::c_int,
    ) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_ctl_card_info(
        ctl: *mut snd_ctl_t,
        info: *mut snd_ctl_card_info_t,
    ) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_ctl_elem_list(
        ctl: *mut snd_ctl_t,
        list: *mut snd_ctl_elem_list_t,
    ) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_ctl_elem_info(
        ctl: *mut snd_ctl_t,
        info: *mut snd_ctl_elem_info_t,
    ) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_ctl_elem_read(
        ctl: *mut snd_ctl_t,
        data: *mut snd_ctl_elem_value_t,
    ) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_ctl_elem_write(
        ctl: *mut snd_ctl_t,
        data: *mut snd_ctl_elem_value_t,
    ) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_ctl_elem_lock(ctl: *mut snd_ctl_t, id: *mut snd_ctl_elem_id_t)
    -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_ctl_elem_unlock(
        ctl: *mut snd_ctl_t,
        id: *mut snd_ctl_elem_id_t,
    ) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_ctl_elem_tlv_read(
        ctl: *mut snd_ctl_t,
        id: *const snd_ctl_elem_id_t,
        tlv: *mut ::core::ffi::c_uint,
        tlv_size: ::core::ffi::c_uint,
    ) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_ctl_elem_tlv_write(
        ctl: *mut snd_ctl_t,
        id: *const snd_ctl_elem_id_t,
        tlv: *const ::core::ffi::c_uint,
    ) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_ctl_elem_tlv_command(
        ctl: *mut snd_ctl_t,
        id: *const snd_ctl_elem_id_t,
        tlv: *const ::core::ffi::c_uint,
    ) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_ctl_hwdep_next_device(
        ctl: *mut snd_ctl_t,
        device: *mut ::core::ffi::c_int,
    ) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_ctl_hwdep_info(
        ctl: *mut snd_ctl_t,
        info: *mut snd_hwdep_info_t,
    ) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_ctl_pcm_next_device(
        ctl: *mut snd_ctl_t,
        device: *mut ::core::ffi::c_int,
    ) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_ctl_pcm_info(ctl: *mut snd_ctl_t, info: *mut snd_pcm_info_t) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_ctl_pcm_prefer_subdevice(
        ctl: *mut snd_ctl_t,
        subdev: ::core::ffi::c_int,
    ) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_ctl_rawmidi_next_device(
        ctl: *mut snd_ctl_t,
        device: *mut ::core::ffi::c_int,
    ) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_ctl_rawmidi_info(
        ctl: *mut snd_ctl_t,
        info: *mut snd_rawmidi_info_t,
    ) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_ctl_rawmidi_prefer_subdevice(
        ctl: *mut snd_ctl_t,
        subdev: ::core::ffi::c_int,
    ) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_ctl_ump_next_device(
        ctl: *mut snd_ctl_t,
        device: *mut ::core::ffi::c_int,
    ) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_ctl_ump_endpoint_info(
        ctl: *mut snd_ctl_t,
        info: *mut snd_ump_endpoint_info_t,
    ) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_ctl_ump_block_info(
        ctl: *mut snd_ctl_t,
        info: *mut snd_ump_block_info_t,
    ) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_ctl_set_power_state(
        ctl: *mut snd_ctl_t,
        state: ::core::ffi::c_uint,
    ) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_ctl_get_power_state(
        ctl: *mut snd_ctl_t,
        state: *mut ::core::ffi::c_uint,
    ) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_ctl_read(ctl: *mut snd_ctl_t, event: *mut snd_ctl_event_t) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_ctl_wait(ctl: *mut snd_ctl_t, timeout: ::core::ffi::c_int) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_ctl_name(ctl: *mut snd_ctl_t) -> *const ::core::ffi::c_char;
}
unsafe extern "C" {
    pub fn snd_ctl_type(ctl: *mut snd_ctl_t) -> snd_ctl_type_t;
}
unsafe extern "C" {
    pub fn snd_ctl_elem_type_name(type_: snd_ctl_elem_type_t) -> *const ::core::ffi::c_char;
}
unsafe extern "C" {
    pub fn snd_ctl_elem_iface_name(iface: snd_ctl_elem_iface_t) -> *const ::core::ffi::c_char;
}
unsafe extern "C" {
    pub fn snd_ctl_event_type_name(type_: snd_ctl_event_type_t) -> *const ::core::ffi::c_char;
}
unsafe extern "C" {
    pub fn snd_ctl_event_elem_get_mask(obj: *const snd_ctl_event_t) -> ::core::ffi::c_uint;
}
unsafe extern "C" {
    pub fn snd_ctl_event_elem_get_numid(obj: *const snd_ctl_event_t) -> ::core::ffi::c_uint;
}
unsafe extern "C" {
    pub fn snd_ctl_event_elem_get_id(obj: *const snd_ctl_event_t, ptr: *mut snd_ctl_elem_id_t);
}
unsafe extern "C" {
    pub fn snd_ctl_event_elem_get_interface(obj: *const snd_ctl_event_t) -> snd_ctl_elem_iface_t;
}
unsafe extern "C" {
    pub fn snd_ctl_event_elem_get_device(obj: *const snd_ctl_event_t) -> ::core::ffi::c_uint;
}
unsafe extern "C" {
    pub fn snd_ctl_event_elem_get_subdevice(obj: *const snd_ctl_event_t) -> ::core::ffi::c_uint;
}
unsafe extern "C" {
    pub fn snd_ctl_event_elem_get_name(obj: *const snd_ctl_event_t) -> *const ::core::ffi::c_char;
}
unsafe extern "C" {
    pub fn snd_ctl_event_elem_get_index(obj: *const snd_ctl_event_t) -> ::core::ffi::c_uint;
}
unsafe extern "C" {
    pub fn snd_ctl_elem_list_alloc_space(
        obj: *mut snd_ctl_elem_list_t,
        entries: ::core::ffi::c_uint,
    ) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_ctl_elem_list_free_space(obj: *mut snd_ctl_elem_list_t);
}
unsafe extern "C" {
    pub fn snd_ctl_ascii_elem_id_get(id: *mut snd_ctl_elem_id_t) -> *mut ::core::ffi::c_char;
}
unsafe extern "C" {
    pub fn snd_ctl_ascii_elem_id_parse(
        dst: *mut snd_ctl_elem_id_t,
        str_: *const ::core::ffi::c_char,
    ) -> ::core::ffi::c_int;
}
unsafe 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 ::core::ffi::c_char,
    ) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_ctl_elem_id_sizeof() -> usize;
}
unsafe extern "C" {
    pub fn snd_ctl_elem_id_malloc(ptr: *mut *mut snd_ctl_elem_id_t) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_ctl_elem_id_free(obj: *mut snd_ctl_elem_id_t);
}
unsafe extern "C" {
    pub fn snd_ctl_elem_id_clear(obj: *mut snd_ctl_elem_id_t);
}
unsafe extern "C" {
    pub fn snd_ctl_elem_id_copy(dst: *mut snd_ctl_elem_id_t, src: *const snd_ctl_elem_id_t);
}
unsafe extern "C" {
    pub fn snd_ctl_elem_id_compare_numid(
        id1: *const snd_ctl_elem_id_t,
        id2: *const snd_ctl_elem_id_t,
    ) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_ctl_elem_id_compare_set(
        id1: *const snd_ctl_elem_id_t,
        id2: *const snd_ctl_elem_id_t,
    ) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_ctl_elem_id_get_numid(obj: *const snd_ctl_elem_id_t) -> ::core::ffi::c_uint;
}
unsafe extern "C" {
    pub fn snd_ctl_elem_id_get_interface(obj: *const snd_ctl_elem_id_t) -> snd_ctl_elem_iface_t;
}
unsafe extern "C" {
    pub fn snd_ctl_elem_id_get_device(obj: *const snd_ctl_elem_id_t) -> ::core::ffi::c_uint;
}
unsafe extern "C" {
    pub fn snd_ctl_elem_id_get_subdevice(obj: *const snd_ctl_elem_id_t) -> ::core::ffi::c_uint;
}
unsafe extern "C" {
    pub fn snd_ctl_elem_id_get_name(obj: *const snd_ctl_elem_id_t) -> *const ::core::ffi::c_char;
}
unsafe extern "C" {
    pub fn snd_ctl_elem_id_get_index(obj: *const snd_ctl_elem_id_t) -> ::core::ffi::c_uint;
}
unsafe extern "C" {
    pub fn snd_ctl_elem_id_set_numid(obj: *mut snd_ctl_elem_id_t, val: ::core::ffi::c_uint);
}
unsafe extern "C" {
    pub fn snd_ctl_elem_id_set_interface(obj: *mut snd_ctl_elem_id_t, val: snd_ctl_elem_iface_t);
}
unsafe extern "C" {
    pub fn snd_ctl_elem_id_set_device(obj: *mut snd_ctl_elem_id_t, val: ::core::ffi::c_uint);
}
unsafe extern "C" {
    pub fn snd_ctl_elem_id_set_subdevice(obj: *mut snd_ctl_elem_id_t, val: ::core::ffi::c_uint);
}
unsafe extern "C" {
    pub fn snd_ctl_elem_id_set_name(obj: *mut snd_ctl_elem_id_t, val: *const ::core::ffi::c_char);
}
unsafe extern "C" {
    pub fn snd_ctl_elem_id_set_index(obj: *mut snd_ctl_elem_id_t, val: ::core::ffi::c_uint);
}
unsafe extern "C" {
    pub fn snd_ctl_card_info_sizeof() -> usize;
}
unsafe extern "C" {
    pub fn snd_ctl_card_info_malloc(ptr: *mut *mut snd_ctl_card_info_t) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_ctl_card_info_free(obj: *mut snd_ctl_card_info_t);
}
unsafe extern "C" {
    pub fn snd_ctl_card_info_clear(obj: *mut snd_ctl_card_info_t);
}
unsafe extern "C" {
    pub fn snd_ctl_card_info_copy(dst: *mut snd_ctl_card_info_t, src: *const snd_ctl_card_info_t);
}
unsafe extern "C" {
    pub fn snd_ctl_card_info_get_card(obj: *const snd_ctl_card_info_t) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_ctl_card_info_get_id(obj: *const snd_ctl_card_info_t) -> *const ::core::ffi::c_char;
}
unsafe extern "C" {
    pub fn snd_ctl_card_info_get_driver(
        obj: *const snd_ctl_card_info_t,
    ) -> *const ::core::ffi::c_char;
}
unsafe extern "C" {
    pub fn snd_ctl_card_info_get_name(
        obj: *const snd_ctl_card_info_t,
    ) -> *const ::core::ffi::c_char;
}
unsafe extern "C" {
    pub fn snd_ctl_card_info_get_longname(
        obj: *const snd_ctl_card_info_t,
    ) -> *const ::core::ffi::c_char;
}
unsafe extern "C" {
    pub fn snd_ctl_card_info_get_mixername(
        obj: *const snd_ctl_card_info_t,
    ) -> *const ::core::ffi::c_char;
}
unsafe extern "C" {
    pub fn snd_ctl_card_info_get_components(
        obj: *const snd_ctl_card_info_t,
    ) -> *const ::core::ffi::c_char;
}
unsafe extern "C" {
    pub fn snd_ctl_event_sizeof() -> usize;
}
unsafe extern "C" {
    pub fn snd_ctl_event_malloc(ptr: *mut *mut snd_ctl_event_t) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_ctl_event_free(obj: *mut snd_ctl_event_t);
}
unsafe extern "C" {
    pub fn snd_ctl_event_clear(obj: *mut snd_ctl_event_t);
}
unsafe extern "C" {
    pub fn snd_ctl_event_copy(dst: *mut snd_ctl_event_t, src: *const snd_ctl_event_t);
}
unsafe extern "C" {
    pub fn snd_ctl_event_get_type(obj: *const snd_ctl_event_t) -> snd_ctl_event_type_t;
}
unsafe extern "C" {
    pub fn snd_ctl_elem_list_sizeof() -> usize;
}
unsafe extern "C" {
    pub fn snd_ctl_elem_list_malloc(ptr: *mut *mut snd_ctl_elem_list_t) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_ctl_elem_list_free(obj: *mut snd_ctl_elem_list_t);
}
unsafe extern "C" {
    pub fn snd_ctl_elem_list_clear(obj: *mut snd_ctl_elem_list_t);
}
unsafe extern "C" {
    pub fn snd_ctl_elem_list_copy(dst: *mut snd_ctl_elem_list_t, src: *const snd_ctl_elem_list_t);
}
unsafe extern "C" {
    pub fn snd_ctl_elem_list_set_offset(obj: *mut snd_ctl_elem_list_t, val: ::core::ffi::c_uint);
}
unsafe extern "C" {
    pub fn snd_ctl_elem_list_get_used(obj: *const snd_ctl_elem_list_t) -> ::core::ffi::c_uint;
}
unsafe extern "C" {
    pub fn snd_ctl_elem_list_get_count(obj: *const snd_ctl_elem_list_t) -> ::core::ffi::c_uint;
}
unsafe extern "C" {
    pub fn snd_ctl_elem_list_get_id(
        obj: *const snd_ctl_elem_list_t,
        idx: ::core::ffi::c_uint,
        ptr: *mut snd_ctl_elem_id_t,
    );
}
unsafe extern "C" {
    pub fn snd_ctl_elem_list_get_numid(
        obj: *const snd_ctl_elem_list_t,
        idx: ::core::ffi::c_uint,
    ) -> ::core::ffi::c_uint;
}
unsafe extern "C" {
    pub fn snd_ctl_elem_list_get_interface(
        obj: *const snd_ctl_elem_list_t,
        idx: ::core::ffi::c_uint,
    ) -> snd_ctl_elem_iface_t;
}
unsafe extern "C" {
    pub fn snd_ctl_elem_list_get_device(
        obj: *const snd_ctl_elem_list_t,
        idx: ::core::ffi::c_uint,
    ) -> ::core::ffi::c_uint;
}
unsafe extern "C" {
    pub fn snd_ctl_elem_list_get_subdevice(
        obj: *const snd_ctl_elem_list_t,
        idx: ::core::ffi::c_uint,
    ) -> ::core::ffi::c_uint;
}
unsafe extern "C" {
    pub fn snd_ctl_elem_list_get_name(
        obj: *const snd_ctl_elem_list_t,
        idx: ::core::ffi::c_uint,
    ) -> *const ::core::ffi::c_char;
}
unsafe extern "C" {
    pub fn snd_ctl_elem_list_get_index(
        obj: *const snd_ctl_elem_list_t,
        idx: ::core::ffi::c_uint,
    ) -> ::core::ffi::c_uint;
}
unsafe extern "C" {
    pub fn snd_ctl_elem_info_sizeof() -> usize;
}
unsafe extern "C" {
    pub fn snd_ctl_elem_info_malloc(ptr: *mut *mut snd_ctl_elem_info_t) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_ctl_elem_info_free(obj: *mut snd_ctl_elem_info_t);
}
unsafe extern "C" {
    pub fn snd_ctl_elem_info_clear(obj: *mut snd_ctl_elem_info_t);
}
unsafe extern "C" {
    pub fn snd_ctl_elem_info_copy(dst: *mut snd_ctl_elem_info_t, src: *const snd_ctl_elem_info_t);
}
unsafe extern "C" {
    pub fn snd_ctl_elem_info_get_type(obj: *const snd_ctl_elem_info_t) -> snd_ctl_elem_type_t;
}
unsafe extern "C" {
    pub fn snd_ctl_elem_info_is_readable(obj: *const snd_ctl_elem_info_t) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_ctl_elem_info_is_writable(obj: *const snd_ctl_elem_info_t) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_ctl_elem_info_is_volatile(obj: *const snd_ctl_elem_info_t) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_ctl_elem_info_is_inactive(obj: *const snd_ctl_elem_info_t) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_ctl_elem_info_is_locked(obj: *const snd_ctl_elem_info_t) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_ctl_elem_info_is_tlv_readable(obj: *const snd_ctl_elem_info_t)
    -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_ctl_elem_info_is_tlv_writable(obj: *const snd_ctl_elem_info_t)
    -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_ctl_elem_info_is_tlv_commandable(
        obj: *const snd_ctl_elem_info_t,
    ) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_ctl_elem_info_is_owner(obj: *const snd_ctl_elem_info_t) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_ctl_elem_info_is_user(obj: *const snd_ctl_elem_info_t) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_ctl_elem_info_get_owner(obj: *const snd_ctl_elem_info_t) -> pid_t;
}
unsafe extern "C" {
    pub fn snd_ctl_elem_info_get_count(obj: *const snd_ctl_elem_info_t) -> ::core::ffi::c_uint;
}
unsafe extern "C" {
    pub fn snd_ctl_elem_info_get_min(obj: *const snd_ctl_elem_info_t) -> ::core::ffi::c_long;
}
unsafe extern "C" {
    pub fn snd_ctl_elem_info_get_max(obj: *const snd_ctl_elem_info_t) -> ::core::ffi::c_long;
}
unsafe extern "C" {
    pub fn snd_ctl_elem_info_get_step(obj: *const snd_ctl_elem_info_t) -> ::core::ffi::c_long;
}
unsafe extern "C" {
    pub fn snd_ctl_elem_info_get_min64(obj: *const snd_ctl_elem_info_t) -> ::core::ffi::c_longlong;
}
unsafe extern "C" {
    pub fn snd_ctl_elem_info_get_max64(obj: *const snd_ctl_elem_info_t) -> ::core::ffi::c_longlong;
}
unsafe extern "C" {
    pub fn snd_ctl_elem_info_get_step64(obj: *const snd_ctl_elem_info_t)
    -> ::core::ffi::c_longlong;
}
unsafe extern "C" {
    pub fn snd_ctl_elem_info_get_items(obj: *const snd_ctl_elem_info_t) -> ::core::ffi::c_uint;
}
unsafe extern "C" {
    pub fn snd_ctl_elem_info_set_item(obj: *mut snd_ctl_elem_info_t, val: ::core::ffi::c_uint);
}
unsafe extern "C" {
    pub fn snd_ctl_elem_info_get_item_name(
        obj: *const snd_ctl_elem_info_t,
    ) -> *const ::core::ffi::c_char;
}
unsafe extern "C" {
    pub fn snd_ctl_elem_info_get_dimensions(obj: *const snd_ctl_elem_info_t) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_ctl_elem_info_get_dimension(
        obj: *const snd_ctl_elem_info_t,
        idx: ::core::ffi::c_uint,
    ) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_ctl_elem_info_set_dimension(
        info: *mut snd_ctl_elem_info_t,
        dimension: *const ::core::ffi::c_int,
    ) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_ctl_elem_info_get_id(obj: *const snd_ctl_elem_info_t, ptr: *mut snd_ctl_elem_id_t);
}
unsafe extern "C" {
    pub fn snd_ctl_elem_info_get_numid(obj: *const snd_ctl_elem_info_t) -> ::core::ffi::c_uint;
}
unsafe extern "C" {
    pub fn snd_ctl_elem_info_get_interface(obj: *const snd_ctl_elem_info_t)
    -> snd_ctl_elem_iface_t;
}
unsafe extern "C" {
    pub fn snd_ctl_elem_info_get_device(obj: *const snd_ctl_elem_info_t) -> ::core::ffi::c_uint;
}
unsafe extern "C" {
    pub fn snd_ctl_elem_info_get_subdevice(obj: *const snd_ctl_elem_info_t) -> ::core::ffi::c_uint;
}
unsafe extern "C" {
    pub fn snd_ctl_elem_info_get_name(
        obj: *const snd_ctl_elem_info_t,
    ) -> *const ::core::ffi::c_char;
}
unsafe extern "C" {
    pub fn snd_ctl_elem_info_get_index(obj: *const snd_ctl_elem_info_t) -> ::core::ffi::c_uint;
}
unsafe extern "C" {
    pub fn snd_ctl_elem_info_set_id(obj: *mut snd_ctl_elem_info_t, ptr: *const snd_ctl_elem_id_t);
}
unsafe extern "C" {
    pub fn snd_ctl_elem_info_set_numid(obj: *mut snd_ctl_elem_info_t, val: ::core::ffi::c_uint);
}
unsafe extern "C" {
    pub fn snd_ctl_elem_info_set_interface(
        obj: *mut snd_ctl_elem_info_t,
        val: snd_ctl_elem_iface_t,
    );
}
unsafe extern "C" {
    pub fn snd_ctl_elem_info_set_device(obj: *mut snd_ctl_elem_info_t, val: ::core::ffi::c_uint);
}
unsafe extern "C" {
    pub fn snd_ctl_elem_info_set_subdevice(obj: *mut snd_ctl_elem_info_t, val: ::core::ffi::c_uint);
}
unsafe extern "C" {
    pub fn snd_ctl_elem_info_set_name(
        obj: *mut snd_ctl_elem_info_t,
        val: *const ::core::ffi::c_char,
    );
}
unsafe extern "C" {
    pub fn snd_ctl_elem_info_set_index(obj: *mut snd_ctl_elem_info_t, val: ::core::ffi::c_uint);
}
unsafe extern "C" {
    pub fn snd_ctl_elem_info_set_read_write(
        obj: *mut snd_ctl_elem_info_t,
        rval: ::core::ffi::c_int,
        wval: ::core::ffi::c_int,
    );
}
unsafe extern "C" {
    pub fn snd_ctl_elem_info_set_tlv_read_write(
        obj: *mut snd_ctl_elem_info_t,
        rval: ::core::ffi::c_int,
        wval: ::core::ffi::c_int,
    );
}
unsafe extern "C" {
    pub fn snd_ctl_elem_info_set_inactive(obj: *mut snd_ctl_elem_info_t, val: ::core::ffi::c_int);
}
unsafe extern "C" {
    pub fn snd_ctl_add_integer_elem_set(
        ctl: *mut snd_ctl_t,
        info: *mut snd_ctl_elem_info_t,
        element_count: ::core::ffi::c_uint,
        member_count: ::core::ffi::c_uint,
        min: ::core::ffi::c_long,
        max: ::core::ffi::c_long,
        step: ::core::ffi::c_long,
    ) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_ctl_add_integer64_elem_set(
        ctl: *mut snd_ctl_t,
        info: *mut snd_ctl_elem_info_t,
        element_count: ::core::ffi::c_uint,
        member_count: ::core::ffi::c_uint,
        min: ::core::ffi::c_longlong,
        max: ::core::ffi::c_longlong,
        step: ::core::ffi::c_longlong,
    ) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_ctl_add_boolean_elem_set(
        ctl: *mut snd_ctl_t,
        info: *mut snd_ctl_elem_info_t,
        element_count: ::core::ffi::c_uint,
        member_count: ::core::ffi::c_uint,
    ) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_ctl_add_enumerated_elem_set(
        ctl: *mut snd_ctl_t,
        info: *mut snd_ctl_elem_info_t,
        element_count: ::core::ffi::c_uint,
        member_count: ::core::ffi::c_uint,
        items: ::core::ffi::c_uint,
        labels: *const *const ::core::ffi::c_char,
    ) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_ctl_add_bytes_elem_set(
        ctl: *mut snd_ctl_t,
        info: *mut snd_ctl_elem_info_t,
        element_count: ::core::ffi::c_uint,
        member_count: ::core::ffi::c_uint,
    ) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_ctl_elem_add_integer(
        ctl: *mut snd_ctl_t,
        id: *const snd_ctl_elem_id_t,
        count: ::core::ffi::c_uint,
        imin: ::core::ffi::c_long,
        imax: ::core::ffi::c_long,
        istep: ::core::ffi::c_long,
    ) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_ctl_elem_add_integer64(
        ctl: *mut snd_ctl_t,
        id: *const snd_ctl_elem_id_t,
        count: ::core::ffi::c_uint,
        imin: ::core::ffi::c_longlong,
        imax: ::core::ffi::c_longlong,
        istep: ::core::ffi::c_longlong,
    ) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_ctl_elem_add_boolean(
        ctl: *mut snd_ctl_t,
        id: *const snd_ctl_elem_id_t,
        count: ::core::ffi::c_uint,
    ) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_ctl_elem_add_enumerated(
        ctl: *mut snd_ctl_t,
        id: *const snd_ctl_elem_id_t,
        count: ::core::ffi::c_uint,
        items: ::core::ffi::c_uint,
        names: *const *const ::core::ffi::c_char,
    ) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_ctl_elem_add_iec958(
        ctl: *mut snd_ctl_t,
        id: *const snd_ctl_elem_id_t,
    ) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_ctl_elem_remove(
        ctl: *mut snd_ctl_t,
        id: *mut snd_ctl_elem_id_t,
    ) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_ctl_elem_value_sizeof() -> usize;
}
unsafe extern "C" {
    pub fn snd_ctl_elem_value_malloc(ptr: *mut *mut snd_ctl_elem_value_t) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_ctl_elem_value_free(obj: *mut snd_ctl_elem_value_t);
}
unsafe extern "C" {
    pub fn snd_ctl_elem_value_clear(obj: *mut snd_ctl_elem_value_t);
}
unsafe extern "C" {
    pub fn snd_ctl_elem_value_copy(
        dst: *mut snd_ctl_elem_value_t,
        src: *const snd_ctl_elem_value_t,
    );
}
unsafe extern "C" {
    pub fn snd_ctl_elem_value_compare(
        left: *mut snd_ctl_elem_value_t,
        right: *const snd_ctl_elem_value_t,
    ) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_ctl_elem_value_get_id(obj: *const snd_ctl_elem_value_t, ptr: *mut snd_ctl_elem_id_t);
}
unsafe extern "C" {
    pub fn snd_ctl_elem_value_get_numid(obj: *const snd_ctl_elem_value_t) -> ::core::ffi::c_uint;
}
unsafe extern "C" {
    pub fn snd_ctl_elem_value_get_interface(
        obj: *const snd_ctl_elem_value_t,
    ) -> snd_ctl_elem_iface_t;
}
unsafe extern "C" {
    pub fn snd_ctl_elem_value_get_device(obj: *const snd_ctl_elem_value_t) -> ::core::ffi::c_uint;
}
unsafe extern "C" {
    pub fn snd_ctl_elem_value_get_subdevice(
        obj: *const snd_ctl_elem_value_t,
    ) -> ::core::ffi::c_uint;
}
unsafe extern "C" {
    pub fn snd_ctl_elem_value_get_name(
        obj: *const snd_ctl_elem_value_t,
    ) -> *const ::core::ffi::c_char;
}
unsafe extern "C" {
    pub fn snd_ctl_elem_value_get_index(obj: *const snd_ctl_elem_value_t) -> ::core::ffi::c_uint;
}
unsafe extern "C" {
    pub fn snd_ctl_elem_value_set_id(obj: *mut snd_ctl_elem_value_t, ptr: *const snd_ctl_elem_id_t);
}
unsafe extern "C" {
    pub fn snd_ctl_elem_value_set_numid(obj: *mut snd_ctl_elem_value_t, val: ::core::ffi::c_uint);
}
unsafe extern "C" {
    pub fn snd_ctl_elem_value_set_interface(
        obj: *mut snd_ctl_elem_value_t,
        val: snd_ctl_elem_iface_t,
    );
}
unsafe extern "C" {
    pub fn snd_ctl_elem_value_set_device(obj: *mut snd_ctl_elem_value_t, val: ::core::ffi::c_uint);
}
unsafe extern "C" {
    pub fn snd_ctl_elem_value_set_subdevice(
        obj: *mut snd_ctl_elem_value_t,
        val: ::core::ffi::c_uint,
    );
}
unsafe extern "C" {
    pub fn snd_ctl_elem_value_set_name(
        obj: *mut snd_ctl_elem_value_t,
        val: *const ::core::ffi::c_char,
    );
}
unsafe extern "C" {
    pub fn snd_ctl_elem_value_set_index(obj: *mut snd_ctl_elem_value_t, val: ::core::ffi::c_uint);
}
unsafe extern "C" {
    pub fn snd_ctl_elem_value_get_boolean(
        obj: *const snd_ctl_elem_value_t,
        idx: ::core::ffi::c_uint,
    ) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_ctl_elem_value_get_integer(
        obj: *const snd_ctl_elem_value_t,
        idx: ::core::ffi::c_uint,
    ) -> ::core::ffi::c_long;
}
unsafe extern "C" {
    pub fn snd_ctl_elem_value_get_integer64(
        obj: *const snd_ctl_elem_value_t,
        idx: ::core::ffi::c_uint,
    ) -> ::core::ffi::c_longlong;
}
unsafe extern "C" {
    pub fn snd_ctl_elem_value_get_enumerated(
        obj: *const snd_ctl_elem_value_t,
        idx: ::core::ffi::c_uint,
    ) -> ::core::ffi::c_uint;
}
unsafe extern "C" {
    pub fn snd_ctl_elem_value_get_byte(
        obj: *const snd_ctl_elem_value_t,
        idx: ::core::ffi::c_uint,
    ) -> ::core::ffi::c_uchar;
}
unsafe extern "C" {
    pub fn snd_ctl_elem_value_set_boolean(
        obj: *mut snd_ctl_elem_value_t,
        idx: ::core::ffi::c_uint,
        val: ::core::ffi::c_long,
    );
}
unsafe extern "C" {
    pub fn snd_ctl_elem_value_set_integer(
        obj: *mut snd_ctl_elem_value_t,
        idx: ::core::ffi::c_uint,
        val: ::core::ffi::c_long,
    );
}
unsafe extern "C" {
    pub fn snd_ctl_elem_value_set_integer64(
        obj: *mut snd_ctl_elem_value_t,
        idx: ::core::ffi::c_uint,
        val: ::core::ffi::c_longlong,
    );
}
unsafe extern "C" {
    pub fn snd_ctl_elem_value_set_enumerated(
        obj: *mut snd_ctl_elem_value_t,
        idx: ::core::ffi::c_uint,
        val: ::core::ffi::c_uint,
    );
}
unsafe extern "C" {
    pub fn snd_ctl_elem_value_set_byte(
        obj: *mut snd_ctl_elem_value_t,
        idx: ::core::ffi::c_uint,
        val: ::core::ffi::c_uchar,
    );
}
unsafe extern "C" {
    pub fn snd_ctl_elem_set_bytes(
        obj: *mut snd_ctl_elem_value_t,
        data: *mut ::core::ffi::c_void,
        size: usize,
    );
}
unsafe extern "C" {
    pub fn snd_ctl_elem_value_get_bytes(
        obj: *const snd_ctl_elem_value_t,
    ) -> *const ::core::ffi::c_void;
}
unsafe extern "C" {
    pub fn snd_ctl_elem_value_get_iec958(
        obj: *const snd_ctl_elem_value_t,
        ptr: *mut snd_aes_iec958_t,
    );
}
unsafe extern "C" {
    pub fn snd_ctl_elem_value_set_iec958(
        obj: *mut snd_ctl_elem_value_t,
        ptr: *const snd_aes_iec958_t,
    );
}
unsafe extern "C" {
    pub fn snd_tlv_parse_dB_info(
        tlv: *mut ::core::ffi::c_uint,
        tlv_size: ::core::ffi::c_uint,
        db_tlvp: *mut *mut ::core::ffi::c_uint,
    ) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_tlv_get_dB_range(
        tlv: *mut ::core::ffi::c_uint,
        rangemin: ::core::ffi::c_long,
        rangemax: ::core::ffi::c_long,
        min: *mut ::core::ffi::c_long,
        max: *mut ::core::ffi::c_long,
    ) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_tlv_convert_to_dB(
        tlv: *mut ::core::ffi::c_uint,
        rangemin: ::core::ffi::c_long,
        rangemax: ::core::ffi::c_long,
        volume: ::core::ffi::c_long,
        db_gain: *mut ::core::ffi::c_long,
    ) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_tlv_convert_from_dB(
        tlv: *mut ::core::ffi::c_uint,
        rangemin: ::core::ffi::c_long,
        rangemax: ::core::ffi::c_long,
        db_gain: ::core::ffi::c_long,
        value: *mut ::core::ffi::c_long,
        xdir: ::core::ffi::c_int,
    ) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_ctl_get_dB_range(
        ctl: *mut snd_ctl_t,
        id: *const snd_ctl_elem_id_t,
        min: *mut ::core::ffi::c_long,
        max: *mut ::core::ffi::c_long,
    ) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_ctl_convert_to_dB(
        ctl: *mut snd_ctl_t,
        id: *const snd_ctl_elem_id_t,
        volume: ::core::ffi::c_long,
        db_gain: *mut ::core::ffi::c_long,
    ) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_ctl_convert_from_dB(
        ctl: *mut snd_ctl_t,
        id: *const snd_ctl_elem_id_t,
        db_gain: ::core::ffi::c_long,
        value: *mut ::core::ffi::c_long,
        xdir: ::core::ffi::c_int,
    ) -> ::core::ffi::c_int;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _snd_hctl_elem {
    _unused: [u8; 0],
}
pub type snd_hctl_elem_t = _snd_hctl_elem;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _snd_hctl {
    _unused: [u8; 0],
}
pub type snd_hctl_t = _snd_hctl;
pub type snd_hctl_compare_t = ::core::option::Option<
    unsafe extern "C" fn(
        e1: *const snd_hctl_elem_t,
        e2: *const snd_hctl_elem_t,
    ) -> ::core::ffi::c_int,
>;
unsafe extern "C" {
    pub fn snd_hctl_compare_fast(
        c1: *const snd_hctl_elem_t,
        c2: *const snd_hctl_elem_t,
    ) -> ::core::ffi::c_int;
}
pub type snd_hctl_callback_t = ::core::option::Option<
    unsafe extern "C" fn(
        hctl: *mut snd_hctl_t,
        mask: ::core::ffi::c_uint,
        elem: *mut snd_hctl_elem_t,
    ) -> ::core::ffi::c_int,
>;
pub type snd_hctl_elem_callback_t = ::core::option::Option<
    unsafe extern "C" fn(
        elem: *mut snd_hctl_elem_t,
        mask: ::core::ffi::c_uint,
    ) -> ::core::ffi::c_int,
>;
unsafe extern "C" {
    pub fn snd_hctl_open(
        hctl: *mut *mut snd_hctl_t,
        name: *const ::core::ffi::c_char,
        mode: ::core::ffi::c_int,
    ) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_hctl_open_ctl(
        hctlp: *mut *mut snd_hctl_t,
        ctl: *mut snd_ctl_t,
    ) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_hctl_close(hctl: *mut snd_hctl_t) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_hctl_nonblock(
        hctl: *mut snd_hctl_t,
        nonblock: ::core::ffi::c_int,
    ) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_hctl_poll_descriptors_count(hctl: *mut snd_hctl_t) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_hctl_poll_descriptors(
        hctl: *mut snd_hctl_t,
        pfds: *mut pollfd,
        space: ::core::ffi::c_uint,
    ) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_hctl_poll_descriptors_revents(
        ctl: *mut snd_hctl_t,
        pfds: *mut pollfd,
        nfds: ::core::ffi::c_uint,
        revents: *mut ::core::ffi::c_ushort,
    ) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_hctl_get_count(hctl: *mut snd_hctl_t) -> ::core::ffi::c_uint;
}
unsafe extern "C" {
    pub fn snd_hctl_set_compare(
        hctl: *mut snd_hctl_t,
        hsort: snd_hctl_compare_t,
    ) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_hctl_first_elem(hctl: *mut snd_hctl_t) -> *mut snd_hctl_elem_t;
}
unsafe extern "C" {
    pub fn snd_hctl_last_elem(hctl: *mut snd_hctl_t) -> *mut snd_hctl_elem_t;
}
unsafe 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;
}
unsafe extern "C" {
    pub fn snd_hctl_set_callback(hctl: *mut snd_hctl_t, callback: snd_hctl_callback_t);
}
unsafe extern "C" {
    pub fn snd_hctl_set_callback_private(hctl: *mut snd_hctl_t, data: *mut ::core::ffi::c_void);
}
unsafe extern "C" {
    pub fn snd_hctl_get_callback_private(hctl: *mut snd_hctl_t) -> *mut ::core::ffi::c_void;
}
unsafe extern "C" {
    pub fn snd_hctl_load(hctl: *mut snd_hctl_t) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_hctl_free(hctl: *mut snd_hctl_t) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_hctl_handle_events(hctl: *mut snd_hctl_t) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_hctl_name(hctl: *mut snd_hctl_t) -> *const ::core::ffi::c_char;
}
unsafe extern "C" {
    pub fn snd_hctl_wait(hctl: *mut snd_hctl_t, timeout: ::core::ffi::c_int) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_hctl_ctl(hctl: *mut snd_hctl_t) -> *mut snd_ctl_t;
}
unsafe extern "C" {
    pub fn snd_hctl_elem_next(elem: *mut snd_hctl_elem_t) -> *mut snd_hctl_elem_t;
}
unsafe extern "C" {
    pub fn snd_hctl_elem_prev(elem: *mut snd_hctl_elem_t) -> *mut snd_hctl_elem_t;
}
unsafe extern "C" {
    pub fn snd_hctl_elem_info(
        elem: *mut snd_hctl_elem_t,
        info: *mut snd_ctl_elem_info_t,
    ) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_hctl_elem_read(
        elem: *mut snd_hctl_elem_t,
        value: *mut snd_ctl_elem_value_t,
    ) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_hctl_elem_write(
        elem: *mut snd_hctl_elem_t,
        value: *mut snd_ctl_elem_value_t,
    ) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_hctl_elem_tlv_read(
        elem: *mut snd_hctl_elem_t,
        tlv: *mut ::core::ffi::c_uint,
        tlv_size: ::core::ffi::c_uint,
    ) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_hctl_elem_tlv_write(
        elem: *mut snd_hctl_elem_t,
        tlv: *const ::core::ffi::c_uint,
    ) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_hctl_elem_tlv_command(
        elem: *mut snd_hctl_elem_t,
        tlv: *const ::core::ffi::c_uint,
    ) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_hctl_elem_get_hctl(elem: *mut snd_hctl_elem_t) -> *mut snd_hctl_t;
}
unsafe extern "C" {
    pub fn snd_hctl_elem_get_id(obj: *const snd_hctl_elem_t, ptr: *mut snd_ctl_elem_id_t);
}
unsafe extern "C" {
    pub fn snd_hctl_elem_get_numid(obj: *const snd_hctl_elem_t) -> ::core::ffi::c_uint;
}
unsafe extern "C" {
    pub fn snd_hctl_elem_get_interface(obj: *const snd_hctl_elem_t) -> snd_ctl_elem_iface_t;
}
unsafe extern "C" {
    pub fn snd_hctl_elem_get_device(obj: *const snd_hctl_elem_t) -> ::core::ffi::c_uint;
}
unsafe extern "C" {
    pub fn snd_hctl_elem_get_subdevice(obj: *const snd_hctl_elem_t) -> ::core::ffi::c_uint;
}
unsafe extern "C" {
    pub fn snd_hctl_elem_get_name(obj: *const snd_hctl_elem_t) -> *const ::core::ffi::c_char;
}
unsafe extern "C" {
    pub fn snd_hctl_elem_get_index(obj: *const snd_hctl_elem_t) -> ::core::ffi::c_uint;
}
unsafe extern "C" {
    pub fn snd_hctl_elem_set_callback(obj: *mut snd_hctl_elem_t, val: snd_hctl_elem_callback_t);
}
unsafe extern "C" {
    pub fn snd_hctl_elem_get_callback_private(
        obj: *const snd_hctl_elem_t,
    ) -> *mut ::core::ffi::c_void;
}
unsafe extern "C" {
    pub fn snd_hctl_elem_set_callback_private(
        obj: *mut snd_hctl_elem_t,
        val: *mut ::core::ffi::c_void,
    );
}
unsafe extern "C" {
    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: ::core::ffi::c_int,
    ) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_sctl_free(handle: *mut snd_sctl_t) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_sctl_install(handle: *mut snd_sctl_t) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_sctl_remove(handle: *mut snd_sctl_t) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_device_name_hint(
        card: ::core::ffi::c_int,
        iface: *const ::core::ffi::c_char,
        hints: *mut *mut *mut ::core::ffi::c_void,
    ) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_device_name_free_hint(hints: *mut *mut ::core::ffi::c_void) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_device_name_get_hint(
        hint: *const ::core::ffi::c_void,
        id: *const ::core::ffi::c_char,
    ) -> *mut ::core::ffi::c_char;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _snd_mixer {
    _unused: [u8; 0],
}
pub type snd_mixer_t = _snd_mixer;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _snd_mixer_class {
    _unused: [u8; 0],
}
pub type snd_mixer_class_t = _snd_mixer_class;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _snd_mixer_elem {
    _unused: [u8; 0],
}
pub type snd_mixer_elem_t = _snd_mixer_elem;
pub type snd_mixer_callback_t = ::core::option::Option<
    unsafe extern "C" fn(
        ctl: *mut snd_mixer_t,
        mask: ::core::ffi::c_uint,
        elem: *mut snd_mixer_elem_t,
    ) -> ::core::ffi::c_int,
>;
pub type snd_mixer_elem_callback_t = ::core::option::Option<
    unsafe extern "C" fn(
        elem: *mut snd_mixer_elem_t,
        mask: ::core::ffi::c_uint,
    ) -> ::core::ffi::c_int,
>;
pub type snd_mixer_compare_t = ::core::option::Option<
    unsafe extern "C" fn(
        e1: *const snd_mixer_elem_t,
        e2: *const snd_mixer_elem_t,
    ) -> ::core::ffi::c_int,
>;
pub type snd_mixer_event_t = ::core::option::Option<
    unsafe extern "C" fn(
        class_: *mut snd_mixer_class_t,
        mask: ::core::ffi::c_uint,
        helem: *mut snd_hctl_elem_t,
        melem: *mut snd_mixer_elem_t,
    ) -> ::core::ffi::c_int,
>;
pub const SND_MIXER_ELEM_SIMPLE: _snd_mixer_elem_type = 0;
pub const SND_MIXER_ELEM_LAST: _snd_mixer_elem_type = 0;
pub type _snd_mixer_elem_type = ::core::ffi::c_uint;
pub use self::_snd_mixer_elem_type as snd_mixer_elem_type_t;
unsafe extern "C" {
    pub fn snd_mixer_open(
        mixer: *mut *mut snd_mixer_t,
        mode: ::core::ffi::c_int,
    ) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_mixer_close(mixer: *mut snd_mixer_t) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_mixer_first_elem(mixer: *mut snd_mixer_t) -> *mut snd_mixer_elem_t;
}
unsafe extern "C" {
    pub fn snd_mixer_last_elem(mixer: *mut snd_mixer_t) -> *mut snd_mixer_elem_t;
}
unsafe extern "C" {
    pub fn snd_mixer_handle_events(mixer: *mut snd_mixer_t) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_mixer_attach(
        mixer: *mut snd_mixer_t,
        name: *const ::core::ffi::c_char,
    ) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_mixer_attach_hctl(
        mixer: *mut snd_mixer_t,
        hctl: *mut snd_hctl_t,
    ) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_mixer_detach(
        mixer: *mut snd_mixer_t,
        name: *const ::core::ffi::c_char,
    ) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_mixer_detach_hctl(
        mixer: *mut snd_mixer_t,
        hctl: *mut snd_hctl_t,
    ) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_mixer_get_hctl(
        mixer: *mut snd_mixer_t,
        name: *const ::core::ffi::c_char,
        hctl: *mut *mut snd_hctl_t,
    ) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_mixer_poll_descriptors_count(mixer: *mut snd_mixer_t) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_mixer_poll_descriptors(
        mixer: *mut snd_mixer_t,
        pfds: *mut pollfd,
        space: ::core::ffi::c_uint,
    ) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_mixer_poll_descriptors_revents(
        mixer: *mut snd_mixer_t,
        pfds: *mut pollfd,
        nfds: ::core::ffi::c_uint,
        revents: *mut ::core::ffi::c_ushort,
    ) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_mixer_load(mixer: *mut snd_mixer_t) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_mixer_free(mixer: *mut snd_mixer_t);
}
unsafe extern "C" {
    pub fn snd_mixer_wait(
        mixer: *mut snd_mixer_t,
        timeout: ::core::ffi::c_int,
    ) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_mixer_set_compare(
        mixer: *mut snd_mixer_t,
        msort: snd_mixer_compare_t,
    ) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_mixer_set_callback(obj: *mut snd_mixer_t, val: snd_mixer_callback_t);
}
unsafe extern "C" {
    pub fn snd_mixer_get_callback_private(obj: *const snd_mixer_t) -> *mut ::core::ffi::c_void;
}
unsafe extern "C" {
    pub fn snd_mixer_set_callback_private(obj: *mut snd_mixer_t, val: *mut ::core::ffi::c_void);
}
unsafe extern "C" {
    pub fn snd_mixer_get_count(obj: *const snd_mixer_t) -> ::core::ffi::c_uint;
}
unsafe extern "C" {
    pub fn snd_mixer_class_unregister(clss: *mut snd_mixer_class_t) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_mixer_elem_next(elem: *mut snd_mixer_elem_t) -> *mut snd_mixer_elem_t;
}
unsafe extern "C" {
    pub fn snd_mixer_elem_prev(elem: *mut snd_mixer_elem_t) -> *mut snd_mixer_elem_t;
}
unsafe extern "C" {
    pub fn snd_mixer_elem_set_callback(obj: *mut snd_mixer_elem_t, val: snd_mixer_elem_callback_t);
}
unsafe extern "C" {
    pub fn snd_mixer_elem_get_callback_private(
        obj: *const snd_mixer_elem_t,
    ) -> *mut ::core::ffi::c_void;
}
unsafe extern "C" {
    pub fn snd_mixer_elem_set_callback_private(
        obj: *mut snd_mixer_elem_t,
        val: *mut ::core::ffi::c_void,
    );
}
unsafe extern "C" {
    pub fn snd_mixer_elem_get_type(obj: *const snd_mixer_elem_t) -> snd_mixer_elem_type_t;
}
unsafe extern "C" {
    pub fn snd_mixer_class_register(
        class_: *mut snd_mixer_class_t,
        mixer: *mut snd_mixer_t,
    ) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_mixer_elem_new(
        elem: *mut *mut snd_mixer_elem_t,
        type_: snd_mixer_elem_type_t,
        compare_weight: ::core::ffi::c_int,
        private_data: *mut ::core::ffi::c_void,
        private_free: ::core::option::Option<unsafe extern "C" fn(elem: *mut snd_mixer_elem_t)>,
    ) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_mixer_elem_add(
        elem: *mut snd_mixer_elem_t,
        class_: *mut snd_mixer_class_t,
    ) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_mixer_elem_remove(elem: *mut snd_mixer_elem_t) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_mixer_elem_free(elem: *mut snd_mixer_elem_t);
}
unsafe extern "C" {
    pub fn snd_mixer_elem_info(elem: *mut snd_mixer_elem_t) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_mixer_elem_value(elem: *mut snd_mixer_elem_t) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_mixer_elem_attach(
        melem: *mut snd_mixer_elem_t,
        helem: *mut snd_hctl_elem_t,
    ) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_mixer_elem_detach(
        melem: *mut snd_mixer_elem_t,
        helem: *mut snd_hctl_elem_t,
    ) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_mixer_elem_empty(melem: *mut snd_mixer_elem_t) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_mixer_elem_get_private(melem: *const snd_mixer_elem_t) -> *mut ::core::ffi::c_void;
}
unsafe extern "C" {
    pub fn snd_mixer_class_sizeof() -> usize;
}
unsafe extern "C" {
    pub fn snd_mixer_class_malloc(ptr: *mut *mut snd_mixer_class_t) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_mixer_class_free(obj: *mut snd_mixer_class_t);
}
unsafe extern "C" {
    pub fn snd_mixer_class_copy(dst: *mut snd_mixer_class_t, src: *const snd_mixer_class_t);
}
unsafe extern "C" {
    pub fn snd_mixer_class_get_mixer(class_: *const snd_mixer_class_t) -> *mut snd_mixer_t;
}
unsafe extern "C" {
    pub fn snd_mixer_class_get_event(class_: *const snd_mixer_class_t) -> snd_mixer_event_t;
}
unsafe extern "C" {
    pub fn snd_mixer_class_get_private(
        class_: *const snd_mixer_class_t,
    ) -> *mut ::core::ffi::c_void;
}
unsafe extern "C" {
    pub fn snd_mixer_class_get_compare(class_: *const snd_mixer_class_t) -> snd_mixer_compare_t;
}
unsafe extern "C" {
    pub fn snd_mixer_class_set_event(
        class_: *mut snd_mixer_class_t,
        event: snd_mixer_event_t,
    ) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_mixer_class_set_private(
        class_: *mut snd_mixer_class_t,
        private_data: *mut ::core::ffi::c_void,
    ) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_mixer_class_set_private_free(
        class_: *mut snd_mixer_class_t,
        private_free: ::core::option::Option<unsafe extern "C" fn(arg1: *mut snd_mixer_class_t)>,
    ) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_mixer_class_set_compare(
        class_: *mut snd_mixer_class_t,
        compare: snd_mixer_compare_t,
    ) -> ::core::ffi::c_int;
}
pub const SND_MIXER_SCHN_UNKNOWN: _snd_mixer_selem_channel_id = -1;
pub const SND_MIXER_SCHN_FRONT_LEFT: _snd_mixer_selem_channel_id = 0;
pub const SND_MIXER_SCHN_FRONT_RIGHT: _snd_mixer_selem_channel_id = 1;
pub const SND_MIXER_SCHN_REAR_LEFT: _snd_mixer_selem_channel_id = 2;
pub const SND_MIXER_SCHN_REAR_RIGHT: _snd_mixer_selem_channel_id = 3;
pub const SND_MIXER_SCHN_FRONT_CENTER: _snd_mixer_selem_channel_id = 4;
pub const SND_MIXER_SCHN_WOOFER: _snd_mixer_selem_channel_id = 5;
pub const SND_MIXER_SCHN_SIDE_LEFT: _snd_mixer_selem_channel_id = 6;
pub const SND_MIXER_SCHN_SIDE_RIGHT: _snd_mixer_selem_channel_id = 7;
pub const SND_MIXER_SCHN_REAR_CENTER: _snd_mixer_selem_channel_id = 8;
pub const SND_MIXER_SCHN_LAST: _snd_mixer_selem_channel_id = 31;
pub const SND_MIXER_SCHN_MONO: _snd_mixer_selem_channel_id = 0;
pub type _snd_mixer_selem_channel_id = ::core::ffi::c_int;
pub use self::_snd_mixer_selem_channel_id as snd_mixer_selem_channel_id_t;
pub const SND_MIXER_SABSTRACT_NONE: snd_mixer_selem_regopt_abstract = 0;
pub const SND_MIXER_SABSTRACT_BASIC: snd_mixer_selem_regopt_abstract = 1;
pub type snd_mixer_selem_regopt_abstract = ::core::ffi::c_uint;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct snd_mixer_selem_regopt {
    pub ver: ::core::ffi::c_int,
    pub abstract_: snd_mixer_selem_regopt_abstract,
    pub device: *const ::core::ffi::c_char,
    pub playback_pcm: *mut snd_pcm_t,
    pub capture_pcm: *mut snd_pcm_t,
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _snd_mixer_selem_id {
    _unused: [u8; 0],
}
pub type snd_mixer_selem_id_t = _snd_mixer_selem_id;
unsafe extern "C" {
    pub fn snd_mixer_selem_channel_name(
        channel: snd_mixer_selem_channel_id_t,
    ) -> *const ::core::ffi::c_char;
}
unsafe 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,
    ) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_mixer_selem_get_id(element: *mut snd_mixer_elem_t, id: *mut snd_mixer_selem_id_t);
}
unsafe extern "C" {
    pub fn snd_mixer_selem_get_name(elem: *mut snd_mixer_elem_t) -> *const ::core::ffi::c_char;
}
unsafe extern "C" {
    pub fn snd_mixer_selem_get_index(elem: *mut snd_mixer_elem_t) -> ::core::ffi::c_uint;
}
unsafe 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;
}
unsafe extern "C" {
    pub fn snd_mixer_selem_is_active(elem: *mut snd_mixer_elem_t) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_mixer_selem_is_playback_mono(elem: *mut snd_mixer_elem_t) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_mixer_selem_has_playback_channel(
        obj: *mut snd_mixer_elem_t,
        channel: snd_mixer_selem_channel_id_t,
    ) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_mixer_selem_is_capture_mono(elem: *mut snd_mixer_elem_t) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_mixer_selem_has_capture_channel(
        obj: *mut snd_mixer_elem_t,
        channel: snd_mixer_selem_channel_id_t,
    ) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_mixer_selem_get_capture_group(elem: *mut snd_mixer_elem_t) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_mixer_selem_has_common_volume(elem: *mut snd_mixer_elem_t) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_mixer_selem_has_playback_volume(elem: *mut snd_mixer_elem_t) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_mixer_selem_has_playback_volume_joined(
        elem: *mut snd_mixer_elem_t,
    ) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_mixer_selem_has_capture_volume(elem: *mut snd_mixer_elem_t) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_mixer_selem_has_capture_volume_joined(
        elem: *mut snd_mixer_elem_t,
    ) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_mixer_selem_has_common_switch(elem: *mut snd_mixer_elem_t) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_mixer_selem_has_playback_switch(elem: *mut snd_mixer_elem_t) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_mixer_selem_has_playback_switch_joined(
        elem: *mut snd_mixer_elem_t,
    ) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_mixer_selem_has_capture_switch(elem: *mut snd_mixer_elem_t) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_mixer_selem_has_capture_switch_joined(
        elem: *mut snd_mixer_elem_t,
    ) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_mixer_selem_has_capture_switch_exclusive(
        elem: *mut snd_mixer_elem_t,
    ) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_mixer_selem_ask_playback_vol_dB(
        elem: *mut snd_mixer_elem_t,
        value: ::core::ffi::c_long,
        dBvalue: *mut ::core::ffi::c_long,
    ) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_mixer_selem_ask_capture_vol_dB(
        elem: *mut snd_mixer_elem_t,
        value: ::core::ffi::c_long,
        dBvalue: *mut ::core::ffi::c_long,
    ) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_mixer_selem_ask_playback_dB_vol(
        elem: *mut snd_mixer_elem_t,
        dBvalue: ::core::ffi::c_long,
        dir: ::core::ffi::c_int,
        value: *mut ::core::ffi::c_long,
    ) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_mixer_selem_ask_capture_dB_vol(
        elem: *mut snd_mixer_elem_t,
        dBvalue: ::core::ffi::c_long,
        dir: ::core::ffi::c_int,
        value: *mut ::core::ffi::c_long,
    ) -> ::core::ffi::c_int;
}
unsafe 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 ::core::ffi::c_long,
    ) -> ::core::ffi::c_int;
}
unsafe 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 ::core::ffi::c_long,
    ) -> ::core::ffi::c_int;
}
unsafe 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 ::core::ffi::c_long,
    ) -> ::core::ffi::c_int;
}
unsafe 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 ::core::ffi::c_long,
    ) -> ::core::ffi::c_int;
}
unsafe 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 ::core::ffi::c_int,
    ) -> ::core::ffi::c_int;
}
unsafe 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 ::core::ffi::c_int,
    ) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_mixer_selem_set_playback_volume(
        elem: *mut snd_mixer_elem_t,
        channel: snd_mixer_selem_channel_id_t,
        value: ::core::ffi::c_long,
    ) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_mixer_selem_set_capture_volume(
        elem: *mut snd_mixer_elem_t,
        channel: snd_mixer_selem_channel_id_t,
        value: ::core::ffi::c_long,
    ) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_mixer_selem_set_playback_dB(
        elem: *mut snd_mixer_elem_t,
        channel: snd_mixer_selem_channel_id_t,
        value: ::core::ffi::c_long,
        dir: ::core::ffi::c_int,
    ) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_mixer_selem_set_capture_dB(
        elem: *mut snd_mixer_elem_t,
        channel: snd_mixer_selem_channel_id_t,
        value: ::core::ffi::c_long,
        dir: ::core::ffi::c_int,
    ) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_mixer_selem_set_playback_volume_all(
        elem: *mut snd_mixer_elem_t,
        value: ::core::ffi::c_long,
    ) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_mixer_selem_set_capture_volume_all(
        elem: *mut snd_mixer_elem_t,
        value: ::core::ffi::c_long,
    ) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_mixer_selem_set_playback_dB_all(
        elem: *mut snd_mixer_elem_t,
        value: ::core::ffi::c_long,
        dir: ::core::ffi::c_int,
    ) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_mixer_selem_set_capture_dB_all(
        elem: *mut snd_mixer_elem_t,
        value: ::core::ffi::c_long,
        dir: ::core::ffi::c_int,
    ) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_mixer_selem_set_playback_switch(
        elem: *mut snd_mixer_elem_t,
        channel: snd_mixer_selem_channel_id_t,
        value: ::core::ffi::c_int,
    ) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_mixer_selem_set_capture_switch(
        elem: *mut snd_mixer_elem_t,
        channel: snd_mixer_selem_channel_id_t,
        value: ::core::ffi::c_int,
    ) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_mixer_selem_set_playback_switch_all(
        elem: *mut snd_mixer_elem_t,
        value: ::core::ffi::c_int,
    ) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_mixer_selem_set_capture_switch_all(
        elem: *mut snd_mixer_elem_t,
        value: ::core::ffi::c_int,
    ) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_mixer_selem_get_playback_volume_range(
        elem: *mut snd_mixer_elem_t,
        min: *mut ::core::ffi::c_long,
        max: *mut ::core::ffi::c_long,
    ) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_mixer_selem_get_playback_dB_range(
        elem: *mut snd_mixer_elem_t,
        min: *mut ::core::ffi::c_long,
        max: *mut ::core::ffi::c_long,
    ) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_mixer_selem_set_playback_volume_range(
        elem: *mut snd_mixer_elem_t,
        min: ::core::ffi::c_long,
        max: ::core::ffi::c_long,
    ) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_mixer_selem_get_capture_volume_range(
        elem: *mut snd_mixer_elem_t,
        min: *mut ::core::ffi::c_long,
        max: *mut ::core::ffi::c_long,
    ) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_mixer_selem_get_capture_dB_range(
        elem: *mut snd_mixer_elem_t,
        min: *mut ::core::ffi::c_long,
        max: *mut ::core::ffi::c_long,
    ) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_mixer_selem_set_capture_volume_range(
        elem: *mut snd_mixer_elem_t,
        min: ::core::ffi::c_long,
        max: ::core::ffi::c_long,
    ) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_mixer_selem_is_enumerated(elem: *mut snd_mixer_elem_t) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_mixer_selem_is_enum_playback(elem: *mut snd_mixer_elem_t) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_mixer_selem_is_enum_capture(elem: *mut snd_mixer_elem_t) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_mixer_selem_get_enum_items(elem: *mut snd_mixer_elem_t) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_mixer_selem_get_enum_item_name(
        elem: *mut snd_mixer_elem_t,
        idx: ::core::ffi::c_uint,
        maxlen: usize,
        str_: *mut ::core::ffi::c_char,
    ) -> ::core::ffi::c_int;
}
unsafe 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 ::core::ffi::c_uint,
    ) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_mixer_selem_set_enum_item(
        elem: *mut snd_mixer_elem_t,
        channel: snd_mixer_selem_channel_id_t,
        idx: ::core::ffi::c_uint,
    ) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_mixer_selem_id_sizeof() -> usize;
}
unsafe extern "C" {
    pub fn snd_mixer_selem_id_malloc(ptr: *mut *mut snd_mixer_selem_id_t) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_mixer_selem_id_free(obj: *mut snd_mixer_selem_id_t);
}
unsafe extern "C" {
    pub fn snd_mixer_selem_id_copy(
        dst: *mut snd_mixer_selem_id_t,
        src: *const snd_mixer_selem_id_t,
    );
}
unsafe extern "C" {
    pub fn snd_mixer_selem_id_get_name(
        obj: *const snd_mixer_selem_id_t,
    ) -> *const ::core::ffi::c_char;
}
unsafe extern "C" {
    pub fn snd_mixer_selem_id_get_index(obj: *const snd_mixer_selem_id_t) -> ::core::ffi::c_uint;
}
unsafe extern "C" {
    pub fn snd_mixer_selem_id_set_name(
        obj: *mut snd_mixer_selem_id_t,
        val: *const ::core::ffi::c_char,
    );
}
unsafe extern "C" {
    pub fn snd_mixer_selem_id_set_index(obj: *mut snd_mixer_selem_id_t, val: ::core::ffi::c_uint);
}
unsafe extern "C" {
    pub fn snd_mixer_selem_id_parse(
        dst: *mut snd_mixer_selem_id_t,
        str_: *const ::core::ffi::c_char,
    ) -> ::core::ffi::c_int;
}
#[repr(C, packed)]
#[derive(Debug, Copy, Clone)]
pub struct _snd_ump_msg_hdr {
    pub byte2: u8,
    pub byte1: u8,
    pub _bitfield_align_1: [u8; 0],
    pub _bitfield_1: __BindgenBitfieldUnit<[u8; 2usize]>,
}
impl _snd_ump_msg_hdr {
    #[inline]
    pub fn channel(&self) -> u8 {
        unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 4u8) as u8) }
    }
    #[inline]
    pub fn set_channel(&mut self, val: u8) {
        unsafe {
            let val: u8 = ::core::mem::transmute(val);
            self._bitfield_1.set(0usize, 4u8, val as u64)
        }
    }
    #[inline]
    pub unsafe fn channel_raw(this: *const Self) -> u8 {
        unsafe {
            ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(
                ::core::ptr::addr_of!((*this)._bitfield_1),
                0usize,
                4u8,
            ) as u8)
        }
    }
    #[inline]
    pub unsafe fn set_channel_raw(this: *mut Self, val: u8) {
        unsafe {
            let val: u8 = ::core::mem::transmute(val);
            <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(
                ::core::ptr::addr_of_mut!((*this)._bitfield_1),
                0usize,
                4u8,
                val as u64,
            )
        }
    }
    #[inline]
    pub fn status(&self) -> u8 {
        unsafe { ::core::mem::transmute(self._bitfield_1.get(4usize, 4u8) as u8) }
    }
    #[inline]
    pub fn set_status(&mut self, val: u8) {
        unsafe {
            let val: u8 = ::core::mem::transmute(val);
            self._bitfield_1.set(4usize, 4u8, val as u64)
        }
    }
    #[inline]
    pub unsafe fn status_raw(this: *const Self) -> u8 {
        unsafe {
            ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(
                ::core::ptr::addr_of!((*this)._bitfield_1),
                4usize,
                4u8,
            ) as u8)
        }
    }
    #[inline]
    pub unsafe fn set_status_raw(this: *mut Self, val: u8) {
        unsafe {
            let val: u8 = ::core::mem::transmute(val);
            <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(
                ::core::ptr::addr_of_mut!((*this)._bitfield_1),
                4usize,
                4u8,
                val as u64,
            )
        }
    }
    #[inline]
    pub fn group(&self) -> u8 {
        unsafe { ::core::mem::transmute(self._bitfield_1.get(8usize, 4u8) as u8) }
    }
    #[inline]
    pub fn set_group(&mut self, val: u8) {
        unsafe {
            let val: u8 = ::core::mem::transmute(val);
            self._bitfield_1.set(8usize, 4u8, val as u64)
        }
    }
    #[inline]
    pub unsafe fn group_raw(this: *const Self) -> u8 {
        unsafe {
            ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(
                ::core::ptr::addr_of!((*this)._bitfield_1),
                8usize,
                4u8,
            ) as u8)
        }
    }
    #[inline]
    pub unsafe fn set_group_raw(this: *mut Self, val: u8) {
        unsafe {
            let val: u8 = ::core::mem::transmute(val);
            <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(
                ::core::ptr::addr_of_mut!((*this)._bitfield_1),
                8usize,
                4u8,
                val as u64,
            )
        }
    }
    #[inline]
    pub fn type_(&self) -> u8 {
        unsafe { ::core::mem::transmute(self._bitfield_1.get(12usize, 4u8) as u8) }
    }
    #[inline]
    pub fn set_type(&mut self, val: u8) {
        unsafe {
            let val: u8 = ::core::mem::transmute(val);
            self._bitfield_1.set(12usize, 4u8, val as u64)
        }
    }
    #[inline]
    pub unsafe fn type__raw(this: *const Self) -> u8 {
        unsafe {
            ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(
                ::core::ptr::addr_of!((*this)._bitfield_1),
                12usize,
                4u8,
            ) as u8)
        }
    }
    #[inline]
    pub unsafe fn set_type_raw(this: *mut Self, val: u8) {
        unsafe {
            let val: u8 = ::core::mem::transmute(val);
            <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(
                ::core::ptr::addr_of_mut!((*this)._bitfield_1),
                12usize,
                4u8,
                val as u64,
            )
        }
    }
    #[inline]
    pub fn new_bitfield_1(
        channel: u8,
        status: u8,
        group: u8,
        type_: u8,
    ) -> __BindgenBitfieldUnit<[u8; 2usize]> {
        let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 2usize]> = Default::default();
        __bindgen_bitfield_unit.set(0usize, 4u8, {
            let channel: u8 = unsafe { ::core::mem::transmute(channel) };
            channel as u64
        });
        __bindgen_bitfield_unit.set(4usize, 4u8, {
            let status: u8 = unsafe { ::core::mem::transmute(status) };
            status as u64
        });
        __bindgen_bitfield_unit.set(8usize, 4u8, {
            let group: u8 = unsafe { ::core::mem::transmute(group) };
            group as u64
        });
        __bindgen_bitfield_unit.set(12usize, 4u8, {
            let type_: u8 = unsafe { ::core::mem::transmute(type_) };
            type_ as u64
        });
        __bindgen_bitfield_unit
    }
}
pub type snd_ump_msg_hdr_t = _snd_ump_msg_hdr;
#[repr(C, packed)]
#[derive(Debug, Copy, Clone)]
pub struct _snd_ump_msg_midi1_note {
    pub velocity: u8,
    pub note: u8,
    pub _bitfield_align_1: [u8; 0],
    pub _bitfield_1: __BindgenBitfieldUnit<[u8; 2usize]>,
}
impl _snd_ump_msg_midi1_note {
    #[inline]
    pub fn channel(&self) -> u8 {
        unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 4u8) as u8) }
    }
    #[inline]
    pub fn set_channel(&mut self, val: u8) {
        unsafe {
            let val: u8 = ::core::mem::transmute(val);
            self._bitfield_1.set(0usize, 4u8, val as u64)
        }
    }
    #[inline]
    pub unsafe fn channel_raw(this: *const Self) -> u8 {
        unsafe {
            ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(
                ::core::ptr::addr_of!((*this)._bitfield_1),
                0usize,
                4u8,
            ) as u8)
        }
    }
    #[inline]
    pub unsafe fn set_channel_raw(this: *mut Self, val: u8) {
        unsafe {
            let val: u8 = ::core::mem::transmute(val);
            <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(
                ::core::ptr::addr_of_mut!((*this)._bitfield_1),
                0usize,
                4u8,
                val as u64,
            )
        }
    }
    #[inline]
    pub fn status(&self) -> u8 {
        unsafe { ::core::mem::transmute(self._bitfield_1.get(4usize, 4u8) as u8) }
    }
    #[inline]
    pub fn set_status(&mut self, val: u8) {
        unsafe {
            let val: u8 = ::core::mem::transmute(val);
            self._bitfield_1.set(4usize, 4u8, val as u64)
        }
    }
    #[inline]
    pub unsafe fn status_raw(this: *const Self) -> u8 {
        unsafe {
            ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(
                ::core::ptr::addr_of!((*this)._bitfield_1),
                4usize,
                4u8,
            ) as u8)
        }
    }
    #[inline]
    pub unsafe fn set_status_raw(this: *mut Self, val: u8) {
        unsafe {
            let val: u8 = ::core::mem::transmute(val);
            <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(
                ::core::ptr::addr_of_mut!((*this)._bitfield_1),
                4usize,
                4u8,
                val as u64,
            )
        }
    }
    #[inline]
    pub fn group(&self) -> u8 {
        unsafe { ::core::mem::transmute(self._bitfield_1.get(8usize, 4u8) as u8) }
    }
    #[inline]
    pub fn set_group(&mut self, val: u8) {
        unsafe {
            let val: u8 = ::core::mem::transmute(val);
            self._bitfield_1.set(8usize, 4u8, val as u64)
        }
    }
    #[inline]
    pub unsafe fn group_raw(this: *const Self) -> u8 {
        unsafe {
            ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(
                ::core::ptr::addr_of!((*this)._bitfield_1),
                8usize,
                4u8,
            ) as u8)
        }
    }
    #[inline]
    pub unsafe fn set_group_raw(this: *mut Self, val: u8) {
        unsafe {
            let val: u8 = ::core::mem::transmute(val);
            <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(
                ::core::ptr::addr_of_mut!((*this)._bitfield_1),
                8usize,
                4u8,
                val as u64,
            )
        }
    }
    #[inline]
    pub fn type_(&self) -> u8 {
        unsafe { ::core::mem::transmute(self._bitfield_1.get(12usize, 4u8) as u8) }
    }
    #[inline]
    pub fn set_type(&mut self, val: u8) {
        unsafe {
            let val: u8 = ::core::mem::transmute(val);
            self._bitfield_1.set(12usize, 4u8, val as u64)
        }
    }
    #[inline]
    pub unsafe fn type__raw(this: *const Self) -> u8 {
        unsafe {
            ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(
                ::core::ptr::addr_of!((*this)._bitfield_1),
                12usize,
                4u8,
            ) as u8)
        }
    }
    #[inline]
    pub unsafe fn set_type_raw(this: *mut Self, val: u8) {
        unsafe {
            let val: u8 = ::core::mem::transmute(val);
            <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(
                ::core::ptr::addr_of_mut!((*this)._bitfield_1),
                12usize,
                4u8,
                val as u64,
            )
        }
    }
    #[inline]
    pub fn new_bitfield_1(
        channel: u8,
        status: u8,
        group: u8,
        type_: u8,
    ) -> __BindgenBitfieldUnit<[u8; 2usize]> {
        let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 2usize]> = Default::default();
        __bindgen_bitfield_unit.set(0usize, 4u8, {
            let channel: u8 = unsafe { ::core::mem::transmute(channel) };
            channel as u64
        });
        __bindgen_bitfield_unit.set(4usize, 4u8, {
            let status: u8 = unsafe { ::core::mem::transmute(status) };
            status as u64
        });
        __bindgen_bitfield_unit.set(8usize, 4u8, {
            let group: u8 = unsafe { ::core::mem::transmute(group) };
            group as u64
        });
        __bindgen_bitfield_unit.set(12usize, 4u8, {
            let type_: u8 = unsafe { ::core::mem::transmute(type_) };
            type_ as u64
        });
        __bindgen_bitfield_unit
    }
}
pub type snd_ump_msg_midi1_note_t = _snd_ump_msg_midi1_note;
#[repr(C, packed)]
#[derive(Debug, Copy, Clone)]
pub struct _snd_ump_msg_midi1_paf {
    pub data: u8,
    pub note: u8,
    pub _bitfield_align_1: [u8; 0],
    pub _bitfield_1: __BindgenBitfieldUnit<[u8; 2usize]>,
}
impl _snd_ump_msg_midi1_paf {
    #[inline]
    pub fn channel(&self) -> u8 {
        unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 4u8) as u8) }
    }
    #[inline]
    pub fn set_channel(&mut self, val: u8) {
        unsafe {
            let val: u8 = ::core::mem::transmute(val);
            self._bitfield_1.set(0usize, 4u8, val as u64)
        }
    }
    #[inline]
    pub unsafe fn channel_raw(this: *const Self) -> u8 {
        unsafe {
            ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(
                ::core::ptr::addr_of!((*this)._bitfield_1),
                0usize,
                4u8,
            ) as u8)
        }
    }
    #[inline]
    pub unsafe fn set_channel_raw(this: *mut Self, val: u8) {
        unsafe {
            let val: u8 = ::core::mem::transmute(val);
            <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(
                ::core::ptr::addr_of_mut!((*this)._bitfield_1),
                0usize,
                4u8,
                val as u64,
            )
        }
    }
    #[inline]
    pub fn status(&self) -> u8 {
        unsafe { ::core::mem::transmute(self._bitfield_1.get(4usize, 4u8) as u8) }
    }
    #[inline]
    pub fn set_status(&mut self, val: u8) {
        unsafe {
            let val: u8 = ::core::mem::transmute(val);
            self._bitfield_1.set(4usize, 4u8, val as u64)
        }
    }
    #[inline]
    pub unsafe fn status_raw(this: *const Self) -> u8 {
        unsafe {
            ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(
                ::core::ptr::addr_of!((*this)._bitfield_1),
                4usize,
                4u8,
            ) as u8)
        }
    }
    #[inline]
    pub unsafe fn set_status_raw(this: *mut Self, val: u8) {
        unsafe {
            let val: u8 = ::core::mem::transmute(val);
            <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(
                ::core::ptr::addr_of_mut!((*this)._bitfield_1),
                4usize,
                4u8,
                val as u64,
            )
        }
    }
    #[inline]
    pub fn group(&self) -> u8 {
        unsafe { ::core::mem::transmute(self._bitfield_1.get(8usize, 4u8) as u8) }
    }
    #[inline]
    pub fn set_group(&mut self, val: u8) {
        unsafe {
            let val: u8 = ::core::mem::transmute(val);
            self._bitfield_1.set(8usize, 4u8, val as u64)
        }
    }
    #[inline]
    pub unsafe fn group_raw(this: *const Self) -> u8 {
        unsafe {
            ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(
                ::core::ptr::addr_of!((*this)._bitfield_1),
                8usize,
                4u8,
            ) as u8)
        }
    }
    #[inline]
    pub unsafe fn set_group_raw(this: *mut Self, val: u8) {
        unsafe {
            let val: u8 = ::core::mem::transmute(val);
            <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(
                ::core::ptr::addr_of_mut!((*this)._bitfield_1),
                8usize,
                4u8,
                val as u64,
            )
        }
    }
    #[inline]
    pub fn type_(&self) -> u8 {
        unsafe { ::core::mem::transmute(self._bitfield_1.get(12usize, 4u8) as u8) }
    }
    #[inline]
    pub fn set_type(&mut self, val: u8) {
        unsafe {
            let val: u8 = ::core::mem::transmute(val);
            self._bitfield_1.set(12usize, 4u8, val as u64)
        }
    }
    #[inline]
    pub unsafe fn type__raw(this: *const Self) -> u8 {
        unsafe {
            ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(
                ::core::ptr::addr_of!((*this)._bitfield_1),
                12usize,
                4u8,
            ) as u8)
        }
    }
    #[inline]
    pub unsafe fn set_type_raw(this: *mut Self, val: u8) {
        unsafe {
            let val: u8 = ::core::mem::transmute(val);
            <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(
                ::core::ptr::addr_of_mut!((*this)._bitfield_1),
                12usize,
                4u8,
                val as u64,
            )
        }
    }
    #[inline]
    pub fn new_bitfield_1(
        channel: u8,
        status: u8,
        group: u8,
        type_: u8,
    ) -> __BindgenBitfieldUnit<[u8; 2usize]> {
        let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 2usize]> = Default::default();
        __bindgen_bitfield_unit.set(0usize, 4u8, {
            let channel: u8 = unsafe { ::core::mem::transmute(channel) };
            channel as u64
        });
        __bindgen_bitfield_unit.set(4usize, 4u8, {
            let status: u8 = unsafe { ::core::mem::transmute(status) };
            status as u64
        });
        __bindgen_bitfield_unit.set(8usize, 4u8, {
            let group: u8 = unsafe { ::core::mem::transmute(group) };
            group as u64
        });
        __bindgen_bitfield_unit.set(12usize, 4u8, {
            let type_: u8 = unsafe { ::core::mem::transmute(type_) };
            type_ as u64
        });
        __bindgen_bitfield_unit
    }
}
pub type snd_ump_msg_midi1_paf_t = _snd_ump_msg_midi1_paf;
#[repr(C, packed)]
#[derive(Debug, Copy, Clone)]
pub struct _snd_ump_msg_midi1_cc {
    pub data: u8,
    pub index: u8,
    pub _bitfield_align_1: [u8; 0],
    pub _bitfield_1: __BindgenBitfieldUnit<[u8; 2usize]>,
}
impl _snd_ump_msg_midi1_cc {
    #[inline]
    pub fn channel(&self) -> u8 {
        unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 4u8) as u8) }
    }
    #[inline]
    pub fn set_channel(&mut self, val: u8) {
        unsafe {
            let val: u8 = ::core::mem::transmute(val);
            self._bitfield_1.set(0usize, 4u8, val as u64)
        }
    }
    #[inline]
    pub unsafe fn channel_raw(this: *const Self) -> u8 {
        unsafe {
            ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(
                ::core::ptr::addr_of!((*this)._bitfield_1),
                0usize,
                4u8,
            ) as u8)
        }
    }
    #[inline]
    pub unsafe fn set_channel_raw(this: *mut Self, val: u8) {
        unsafe {
            let val: u8 = ::core::mem::transmute(val);
            <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(
                ::core::ptr::addr_of_mut!((*this)._bitfield_1),
                0usize,
                4u8,
                val as u64,
            )
        }
    }
    #[inline]
    pub fn status(&self) -> u8 {
        unsafe { ::core::mem::transmute(self._bitfield_1.get(4usize, 4u8) as u8) }
    }
    #[inline]
    pub fn set_status(&mut self, val: u8) {
        unsafe {
            let val: u8 = ::core::mem::transmute(val);
            self._bitfield_1.set(4usize, 4u8, val as u64)
        }
    }
    #[inline]
    pub unsafe fn status_raw(this: *const Self) -> u8 {
        unsafe {
            ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(
                ::core::ptr::addr_of!((*this)._bitfield_1),
                4usize,
                4u8,
            ) as u8)
        }
    }
    #[inline]
    pub unsafe fn set_status_raw(this: *mut Self, val: u8) {
        unsafe {
            let val: u8 = ::core::mem::transmute(val);
            <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(
                ::core::ptr::addr_of_mut!((*this)._bitfield_1),
                4usize,
                4u8,
                val as u64,
            )
        }
    }
    #[inline]
    pub fn group(&self) -> u8 {
        unsafe { ::core::mem::transmute(self._bitfield_1.get(8usize, 4u8) as u8) }
    }
    #[inline]
    pub fn set_group(&mut self, val: u8) {
        unsafe {
            let val: u8 = ::core::mem::transmute(val);
            self._bitfield_1.set(8usize, 4u8, val as u64)
        }
    }
    #[inline]
    pub unsafe fn group_raw(this: *const Self) -> u8 {
        unsafe {
            ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(
                ::core::ptr::addr_of!((*this)._bitfield_1),
                8usize,
                4u8,
            ) as u8)
        }
    }
    #[inline]
    pub unsafe fn set_group_raw(this: *mut Self, val: u8) {
        unsafe {
            let val: u8 = ::core::mem::transmute(val);
            <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(
                ::core::ptr::addr_of_mut!((*this)._bitfield_1),
                8usize,
                4u8,
                val as u64,
            )
        }
    }
    #[inline]
    pub fn type_(&self) -> u8 {
        unsafe { ::core::mem::transmute(self._bitfield_1.get(12usize, 4u8) as u8) }
    }
    #[inline]
    pub fn set_type(&mut self, val: u8) {
        unsafe {
            let val: u8 = ::core::mem::transmute(val);
            self._bitfield_1.set(12usize, 4u8, val as u64)
        }
    }
    #[inline]
    pub unsafe fn type__raw(this: *const Self) -> u8 {
        unsafe {
            ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(
                ::core::ptr::addr_of!((*this)._bitfield_1),
                12usize,
                4u8,
            ) as u8)
        }
    }
    #[inline]
    pub unsafe fn set_type_raw(this: *mut Self, val: u8) {
        unsafe {
            let val: u8 = ::core::mem::transmute(val);
            <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(
                ::core::ptr::addr_of_mut!((*this)._bitfield_1),
                12usize,
                4u8,
                val as u64,
            )
        }
    }
    #[inline]
    pub fn new_bitfield_1(
        channel: u8,
        status: u8,
        group: u8,
        type_: u8,
    ) -> __BindgenBitfieldUnit<[u8; 2usize]> {
        let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 2usize]> = Default::default();
        __bindgen_bitfield_unit.set(0usize, 4u8, {
            let channel: u8 = unsafe { ::core::mem::transmute(channel) };
            channel as u64
        });
        __bindgen_bitfield_unit.set(4usize, 4u8, {
            let status: u8 = unsafe { ::core::mem::transmute(status) };
            status as u64
        });
        __bindgen_bitfield_unit.set(8usize, 4u8, {
            let group: u8 = unsafe { ::core::mem::transmute(group) };
            group as u64
        });
        __bindgen_bitfield_unit.set(12usize, 4u8, {
            let type_: u8 = unsafe { ::core::mem::transmute(type_) };
            type_ as u64
        });
        __bindgen_bitfield_unit
    }
}
pub type snd_ump_msg_midi1_cc_t = _snd_ump_msg_midi1_cc;
#[repr(C, packed)]
#[derive(Debug, Copy, Clone)]
pub struct _snd_ump_msg_midi1_program {
    pub reserved: u8,
    pub program: u8,
    pub _bitfield_align_1: [u8; 0],
    pub _bitfield_1: __BindgenBitfieldUnit<[u8; 2usize]>,
}
impl _snd_ump_msg_midi1_program {
    #[inline]
    pub fn channel(&self) -> u8 {
        unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 4u8) as u8) }
    }
    #[inline]
    pub fn set_channel(&mut self, val: u8) {
        unsafe {
            let val: u8 = ::core::mem::transmute(val);
            self._bitfield_1.set(0usize, 4u8, val as u64)
        }
    }
    #[inline]
    pub unsafe fn channel_raw(this: *const Self) -> u8 {
        unsafe {
            ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(
                ::core::ptr::addr_of!((*this)._bitfield_1),
                0usize,
                4u8,
            ) as u8)
        }
    }
    #[inline]
    pub unsafe fn set_channel_raw(this: *mut Self, val: u8) {
        unsafe {
            let val: u8 = ::core::mem::transmute(val);
            <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(
                ::core::ptr::addr_of_mut!((*this)._bitfield_1),
                0usize,
                4u8,
                val as u64,
            )
        }
    }
    #[inline]
    pub fn status(&self) -> u8 {
        unsafe { ::core::mem::transmute(self._bitfield_1.get(4usize, 4u8) as u8) }
    }
    #[inline]
    pub fn set_status(&mut self, val: u8) {
        unsafe {
            let val: u8 = ::core::mem::transmute(val);
            self._bitfield_1.set(4usize, 4u8, val as u64)
        }
    }
    #[inline]
    pub unsafe fn status_raw(this: *const Self) -> u8 {
        unsafe {
            ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(
                ::core::ptr::addr_of!((*this)._bitfield_1),
                4usize,
                4u8,
            ) as u8)
        }
    }
    #[inline]
    pub unsafe fn set_status_raw(this: *mut Self, val: u8) {
        unsafe {
            let val: u8 = ::core::mem::transmute(val);
            <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(
                ::core::ptr::addr_of_mut!((*this)._bitfield_1),
                4usize,
                4u8,
                val as u64,
            )
        }
    }
    #[inline]
    pub fn group(&self) -> u8 {
        unsafe { ::core::mem::transmute(self._bitfield_1.get(8usize, 4u8) as u8) }
    }
    #[inline]
    pub fn set_group(&mut self, val: u8) {
        unsafe {
            let val: u8 = ::core::mem::transmute(val);
            self._bitfield_1.set(8usize, 4u8, val as u64)
        }
    }
    #[inline]
    pub unsafe fn group_raw(this: *const Self) -> u8 {
        unsafe {
            ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(
                ::core::ptr::addr_of!((*this)._bitfield_1),
                8usize,
                4u8,
            ) as u8)
        }
    }
    #[inline]
    pub unsafe fn set_group_raw(this: *mut Self, val: u8) {
        unsafe {
            let val: u8 = ::core::mem::transmute(val);
            <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(
                ::core::ptr::addr_of_mut!((*this)._bitfield_1),
                8usize,
                4u8,
                val as u64,
            )
        }
    }
    #[inline]
    pub fn type_(&self) -> u8 {
        unsafe { ::core::mem::transmute(self._bitfield_1.get(12usize, 4u8) as u8) }
    }
    #[inline]
    pub fn set_type(&mut self, val: u8) {
        unsafe {
            let val: u8 = ::core::mem::transmute(val);
            self._bitfield_1.set(12usize, 4u8, val as u64)
        }
    }
    #[inline]
    pub unsafe fn type__raw(this: *const Self) -> u8 {
        unsafe {
            ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(
                ::core::ptr::addr_of!((*this)._bitfield_1),
                12usize,
                4u8,
            ) as u8)
        }
    }
    #[inline]
    pub unsafe fn set_type_raw(this: *mut Self, val: u8) {
        unsafe {
            let val: u8 = ::core::mem::transmute(val);
            <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(
                ::core::ptr::addr_of_mut!((*this)._bitfield_1),
                12usize,
                4u8,
                val as u64,
            )
        }
    }
    #[inline]
    pub fn new_bitfield_1(
        channel: u8,
        status: u8,
        group: u8,
        type_: u8,
    ) -> __BindgenBitfieldUnit<[u8; 2usize]> {
        let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 2usize]> = Default::default();
        __bindgen_bitfield_unit.set(0usize, 4u8, {
            let channel: u8 = unsafe { ::core::mem::transmute(channel) };
            channel as u64
        });
        __bindgen_bitfield_unit.set(4usize, 4u8, {
            let status: u8 = unsafe { ::core::mem::transmute(status) };
            status as u64
        });
        __bindgen_bitfield_unit.set(8usize, 4u8, {
            let group: u8 = unsafe { ::core::mem::transmute(group) };
            group as u64
        });
        __bindgen_bitfield_unit.set(12usize, 4u8, {
            let type_: u8 = unsafe { ::core::mem::transmute(type_) };
            type_ as u64
        });
        __bindgen_bitfield_unit
    }
}
pub type snd_ump_msg_midi1_program_t = _snd_ump_msg_midi1_program;
#[repr(C, packed)]
#[derive(Debug, Copy, Clone)]
pub struct _snd_ump_msg_midi1_caf {
    pub reserved: u8,
    pub data: u8,
    pub _bitfield_align_1: [u8; 0],
    pub _bitfield_1: __BindgenBitfieldUnit<[u8; 2usize]>,
}
impl _snd_ump_msg_midi1_caf {
    #[inline]
    pub fn channel(&self) -> u8 {
        unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 4u8) as u8) }
    }
    #[inline]
    pub fn set_channel(&mut self, val: u8) {
        unsafe {
            let val: u8 = ::core::mem::transmute(val);
            self._bitfield_1.set(0usize, 4u8, val as u64)
        }
    }
    #[inline]
    pub unsafe fn channel_raw(this: *const Self) -> u8 {
        unsafe {
            ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(
                ::core::ptr::addr_of!((*this)._bitfield_1),
                0usize,
                4u8,
            ) as u8)
        }
    }
    #[inline]
    pub unsafe fn set_channel_raw(this: *mut Self, val: u8) {
        unsafe {
            let val: u8 = ::core::mem::transmute(val);
            <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(
                ::core::ptr::addr_of_mut!((*this)._bitfield_1),
                0usize,
                4u8,
                val as u64,
            )
        }
    }
    #[inline]
    pub fn status(&self) -> u8 {
        unsafe { ::core::mem::transmute(self._bitfield_1.get(4usize, 4u8) as u8) }
    }
    #[inline]
    pub fn set_status(&mut self, val: u8) {
        unsafe {
            let val: u8 = ::core::mem::transmute(val);
            self._bitfield_1.set(4usize, 4u8, val as u64)
        }
    }
    #[inline]
    pub unsafe fn status_raw(this: *const Self) -> u8 {
        unsafe {
            ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(
                ::core::ptr::addr_of!((*this)._bitfield_1),
                4usize,
                4u8,
            ) as u8)
        }
    }
    #[inline]
    pub unsafe fn set_status_raw(this: *mut Self, val: u8) {
        unsafe {
            let val: u8 = ::core::mem::transmute(val);
            <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(
                ::core::ptr::addr_of_mut!((*this)._bitfield_1),
                4usize,
                4u8,
                val as u64,
            )
        }
    }
    #[inline]
    pub fn group(&self) -> u8 {
        unsafe { ::core::mem::transmute(self._bitfield_1.get(8usize, 4u8) as u8) }
    }
    #[inline]
    pub fn set_group(&mut self, val: u8) {
        unsafe {
            let val: u8 = ::core::mem::transmute(val);
            self._bitfield_1.set(8usize, 4u8, val as u64)
        }
    }
    #[inline]
    pub unsafe fn group_raw(this: *const Self) -> u8 {
        unsafe {
            ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(
                ::core::ptr::addr_of!((*this)._bitfield_1),
                8usize,
                4u8,
            ) as u8)
        }
    }
    #[inline]
    pub unsafe fn set_group_raw(this: *mut Self, val: u8) {
        unsafe {
            let val: u8 = ::core::mem::transmute(val);
            <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(
                ::core::ptr::addr_of_mut!((*this)._bitfield_1),
                8usize,
                4u8,
                val as u64,
            )
        }
    }
    #[inline]
    pub fn type_(&self) -> u8 {
        unsafe { ::core::mem::transmute(self._bitfield_1.get(12usize, 4u8) as u8) }
    }
    #[inline]
    pub fn set_type(&mut self, val: u8) {
        unsafe {
            let val: u8 = ::core::mem::transmute(val);
            self._bitfield_1.set(12usize, 4u8, val as u64)
        }
    }
    #[inline]
    pub unsafe fn type__raw(this: *const Self) -> u8 {
        unsafe {
            ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(
                ::core::ptr::addr_of!((*this)._bitfield_1),
                12usize,
                4u8,
            ) as u8)
        }
    }
    #[inline]
    pub unsafe fn set_type_raw(this: *mut Self, val: u8) {
        unsafe {
            let val: u8 = ::core::mem::transmute(val);
            <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(
                ::core::ptr::addr_of_mut!((*this)._bitfield_1),
                12usize,
                4u8,
                val as u64,
            )
        }
    }
    #[inline]
    pub fn new_bitfield_1(
        channel: u8,
        status: u8,
        group: u8,
        type_: u8,
    ) -> __BindgenBitfieldUnit<[u8; 2usize]> {
        let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 2usize]> = Default::default();
        __bindgen_bitfield_unit.set(0usize, 4u8, {
            let channel: u8 = unsafe { ::core::mem::transmute(channel) };
            channel as u64
        });
        __bindgen_bitfield_unit.set(4usize, 4u8, {
            let status: u8 = unsafe { ::core::mem::transmute(status) };
            status as u64
        });
        __bindgen_bitfield_unit.set(8usize, 4u8, {
            let group: u8 = unsafe { ::core::mem::transmute(group) };
            group as u64
        });
        __bindgen_bitfield_unit.set(12usize, 4u8, {
            let type_: u8 = unsafe { ::core::mem::transmute(type_) };
            type_ as u64
        });
        __bindgen_bitfield_unit
    }
}
pub type snd_ump_msg_midi1_caf_t = _snd_ump_msg_midi1_caf;
#[repr(C, packed)]
#[derive(Debug, Copy, Clone)]
pub struct _snd_ump_msg_midi1_pitchbend {
    pub data_msb: u8,
    pub data_lsb: u8,
    pub _bitfield_align_1: [u8; 0],
    pub _bitfield_1: __BindgenBitfieldUnit<[u8; 2usize]>,
}
impl _snd_ump_msg_midi1_pitchbend {
    #[inline]
    pub fn channel(&self) -> u8 {
        unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 4u8) as u8) }
    }
    #[inline]
    pub fn set_channel(&mut self, val: u8) {
        unsafe {
            let val: u8 = ::core::mem::transmute(val);
            self._bitfield_1.set(0usize, 4u8, val as u64)
        }
    }
    #[inline]
    pub unsafe fn channel_raw(this: *const Self) -> u8 {
        unsafe {
            ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(
                ::core::ptr::addr_of!((*this)._bitfield_1),
                0usize,
                4u8,
            ) as u8)
        }
    }
    #[inline]
    pub unsafe fn set_channel_raw(this: *mut Self, val: u8) {
        unsafe {
            let val: u8 = ::core::mem::transmute(val);
            <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(
                ::core::ptr::addr_of_mut!((*this)._bitfield_1),
                0usize,
                4u8,
                val as u64,
            )
        }
    }
    #[inline]
    pub fn status(&self) -> u8 {
        unsafe { ::core::mem::transmute(self._bitfield_1.get(4usize, 4u8) as u8) }
    }
    #[inline]
    pub fn set_status(&mut self, val: u8) {
        unsafe {
            let val: u8 = ::core::mem::transmute(val);
            self._bitfield_1.set(4usize, 4u8, val as u64)
        }
    }
    #[inline]
    pub unsafe fn status_raw(this: *const Self) -> u8 {
        unsafe {
            ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(
                ::core::ptr::addr_of!((*this)._bitfield_1),
                4usize,
                4u8,
            ) as u8)
        }
    }
    #[inline]
    pub unsafe fn set_status_raw(this: *mut Self, val: u8) {
        unsafe {
            let val: u8 = ::core::mem::transmute(val);
            <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(
                ::core::ptr::addr_of_mut!((*this)._bitfield_1),
                4usize,
                4u8,
                val as u64,
            )
        }
    }
    #[inline]
    pub fn group(&self) -> u8 {
        unsafe { ::core::mem::transmute(self._bitfield_1.get(8usize, 4u8) as u8) }
    }
    #[inline]
    pub fn set_group(&mut self, val: u8) {
        unsafe {
            let val: u8 = ::core::mem::transmute(val);
            self._bitfield_1.set(8usize, 4u8, val as u64)
        }
    }
    #[inline]
    pub unsafe fn group_raw(this: *const Self) -> u8 {
        unsafe {
            ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(
                ::core::ptr::addr_of!((*this)._bitfield_1),
                8usize,
                4u8,
            ) as u8)
        }
    }
    #[inline]
    pub unsafe fn set_group_raw(this: *mut Self, val: u8) {
        unsafe {
            let val: u8 = ::core::mem::transmute(val);
            <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(
                ::core::ptr::addr_of_mut!((*this)._bitfield_1),
                8usize,
                4u8,
                val as u64,
            )
        }
    }
    #[inline]
    pub fn type_(&self) -> u8 {
        unsafe { ::core::mem::transmute(self._bitfield_1.get(12usize, 4u8) as u8) }
    }
    #[inline]
    pub fn set_type(&mut self, val: u8) {
        unsafe {
            let val: u8 = ::core::mem::transmute(val);
            self._bitfield_1.set(12usize, 4u8, val as u64)
        }
    }
    #[inline]
    pub unsafe fn type__raw(this: *const Self) -> u8 {
        unsafe {
            ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(
                ::core::ptr::addr_of!((*this)._bitfield_1),
                12usize,
                4u8,
            ) as u8)
        }
    }
    #[inline]
    pub unsafe fn set_type_raw(this: *mut Self, val: u8) {
        unsafe {
            let val: u8 = ::core::mem::transmute(val);
            <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(
                ::core::ptr::addr_of_mut!((*this)._bitfield_1),
                12usize,
                4u8,
                val as u64,
            )
        }
    }
    #[inline]
    pub fn new_bitfield_1(
        channel: u8,
        status: u8,
        group: u8,
        type_: u8,
    ) -> __BindgenBitfieldUnit<[u8; 2usize]> {
        let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 2usize]> = Default::default();
        __bindgen_bitfield_unit.set(0usize, 4u8, {
            let channel: u8 = unsafe { ::core::mem::transmute(channel) };
            channel as u64
        });
        __bindgen_bitfield_unit.set(4usize, 4u8, {
            let status: u8 = unsafe { ::core::mem::transmute(status) };
            status as u64
        });
        __bindgen_bitfield_unit.set(8usize, 4u8, {
            let group: u8 = unsafe { ::core::mem::transmute(group) };
            group as u64
        });
        __bindgen_bitfield_unit.set(12usize, 4u8, {
            let type_: u8 = unsafe { ::core::mem::transmute(type_) };
            type_ as u64
        });
        __bindgen_bitfield_unit
    }
}
pub type snd_ump_msg_midi1_pitchbend_t = _snd_ump_msg_midi1_pitchbend;
#[repr(C, packed)]
#[derive(Debug, Copy, Clone)]
pub struct snd_ump_msg_system {
    pub parm2: u8,
    pub parm1: u8,
    pub status: u8,
    pub _bitfield_align_1: [u8; 0],
    pub _bitfield_1: __BindgenBitfieldUnit<[u8; 1usize]>,
}
impl snd_ump_msg_system {
    #[inline]
    pub fn group(&self) -> u8 {
        unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 4u8) as u8) }
    }
    #[inline]
    pub fn set_group(&mut self, val: u8) {
        unsafe {
            let val: u8 = ::core::mem::transmute(val);
            self._bitfield_1.set(0usize, 4u8, val as u64)
        }
    }
    #[inline]
    pub unsafe fn group_raw(this: *const Self) -> u8 {
        unsafe {
            ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get(
                ::core::ptr::addr_of!((*this)._bitfield_1),
                0usize,
                4u8,
            ) as u8)
        }
    }
    #[inline]
    pub unsafe fn set_group_raw(this: *mut Self, val: u8) {
        unsafe {
            let val: u8 = ::core::mem::transmute(val);
            <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set(
                ::core::ptr::addr_of_mut!((*this)._bitfield_1),
                0usize,
                4u8,
                val as u64,
            )
        }
    }
    #[inline]
    pub fn type_(&self) -> u8 {
        unsafe { ::core::mem::transmute(self._bitfield_1.get(4usize, 4u8) as u8) }
    }
    #[inline]
    pub fn set_type(&mut self, val: u8) {
        unsafe {
            let val: u8 = ::core::mem::transmute(val);
            self._bitfield_1.set(4usize, 4u8, val as u64)
        }
    }
    #[inline]
    pub unsafe fn type__raw(this: *const Self) -> u8 {
        unsafe {
            ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get(
                ::core::ptr::addr_of!((*this)._bitfield_1),
                4usize,
                4u8,
            ) as u8)
        }
    }
    #[inline]
    pub unsafe fn set_type_raw(this: *mut Self, val: u8) {
        unsafe {
            let val: u8 = ::core::mem::transmute(val);
            <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set(
                ::core::ptr::addr_of_mut!((*this)._bitfield_1),
                4usize,
                4u8,
                val as u64,
            )
        }
    }
    #[inline]
    pub fn new_bitfield_1(group: u8, type_: u8) -> __BindgenBitfieldUnit<[u8; 1usize]> {
        let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 1usize]> = Default::default();
        __bindgen_bitfield_unit.set(0usize, 4u8, {
            let group: u8 = unsafe { ::core::mem::transmute(group) };
            group as u64
        });
        __bindgen_bitfield_unit.set(4usize, 4u8, {
            let type_: u8 = unsafe { ::core::mem::transmute(type_) };
            type_ as u64
        });
        __bindgen_bitfield_unit
    }
}
pub type snd_ump_msg_system_t = snd_ump_msg_system;
#[repr(C)]
#[derive(Copy, Clone)]
pub union _snd_ump_msg_midi1 {
    pub note_on: snd_ump_msg_midi1_note_t,
    pub note_off: snd_ump_msg_midi1_note_t,
    pub poly_pressure: snd_ump_msg_midi1_paf_t,
    pub control_change: snd_ump_msg_midi1_cc_t,
    pub program_change: snd_ump_msg_midi1_program_t,
    pub channel_pressure: snd_ump_msg_midi1_caf_t,
    pub pitchbend: snd_ump_msg_midi1_pitchbend_t,
    pub system: snd_ump_msg_system_t,
    pub hdr: snd_ump_msg_hdr_t,
    pub raw: u32,
}
pub type snd_ump_msg_midi1_t = _snd_ump_msg_midi1;
pub const SND_UMP_MIDI2_NOTE_ATTR_NO_DATA: _bindgen_ty_4 = 0;
pub const SND_UMP_MIDI2_NOTE_ATTR_MANUFACTURER: _bindgen_ty_4 = 1;
pub const SND_UMP_MIDI2_NOTE_ATTR_PROFILE: _bindgen_ty_4 = 2;
pub const SND_UMP_MIDI2_NOTE_ATTR_PITCH79: _bindgen_ty_4 = 3;
pub type _bindgen_ty_4 = ::core::ffi::c_uint;
#[repr(C, packed)]
#[derive(Debug, Copy, Clone)]
pub struct _snd_ump_msg_midi2_note {
    pub attr_type: u8,
    pub note: u8,
    pub _bitfield_align_1: [u8; 0],
    pub _bitfield_1: __BindgenBitfieldUnit<[u8; 2usize]>,
    pub attr_data: u16,
    pub velocity: u16,
}
impl _snd_ump_msg_midi2_note {
    #[inline]
    pub fn channel(&self) -> u8 {
        unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 4u8) as u8) }
    }
    #[inline]
    pub fn set_channel(&mut self, val: u8) {
        unsafe {
            let val: u8 = ::core::mem::transmute(val);
            self._bitfield_1.set(0usize, 4u8, val as u64)
        }
    }
    #[inline]
    pub unsafe fn channel_raw(this: *const Self) -> u8 {
        unsafe {
            ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(
                ::core::ptr::addr_of!((*this)._bitfield_1),
                0usize,
                4u8,
            ) as u8)
        }
    }
    #[inline]
    pub unsafe fn set_channel_raw(this: *mut Self, val: u8) {
        unsafe {
            let val: u8 = ::core::mem::transmute(val);
            <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(
                ::core::ptr::addr_of_mut!((*this)._bitfield_1),
                0usize,
                4u8,
                val as u64,
            )
        }
    }
    #[inline]
    pub fn status(&self) -> u8 {
        unsafe { ::core::mem::transmute(self._bitfield_1.get(4usize, 4u8) as u8) }
    }
    #[inline]
    pub fn set_status(&mut self, val: u8) {
        unsafe {
            let val: u8 = ::core::mem::transmute(val);
            self._bitfield_1.set(4usize, 4u8, val as u64)
        }
    }
    #[inline]
    pub unsafe fn status_raw(this: *const Self) -> u8 {
        unsafe {
            ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(
                ::core::ptr::addr_of!((*this)._bitfield_1),
                4usize,
                4u8,
            ) as u8)
        }
    }
    #[inline]
    pub unsafe fn set_status_raw(this: *mut Self, val: u8) {
        unsafe {
            let val: u8 = ::core::mem::transmute(val);
            <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(
                ::core::ptr::addr_of_mut!((*this)._bitfield_1),
                4usize,
                4u8,
                val as u64,
            )
        }
    }
    #[inline]
    pub fn group(&self) -> u8 {
        unsafe { ::core::mem::transmute(self._bitfield_1.get(8usize, 4u8) as u8) }
    }
    #[inline]
    pub fn set_group(&mut self, val: u8) {
        unsafe {
            let val: u8 = ::core::mem::transmute(val);
            self._bitfield_1.set(8usize, 4u8, val as u64)
        }
    }
    #[inline]
    pub unsafe fn group_raw(this: *const Self) -> u8 {
        unsafe {
            ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(
                ::core::ptr::addr_of!((*this)._bitfield_1),
                8usize,
                4u8,
            ) as u8)
        }
    }
    #[inline]
    pub unsafe fn set_group_raw(this: *mut Self, val: u8) {
        unsafe {
            let val: u8 = ::core::mem::transmute(val);
            <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(
                ::core::ptr::addr_of_mut!((*this)._bitfield_1),
                8usize,
                4u8,
                val as u64,
            )
        }
    }
    #[inline]
    pub fn type_(&self) -> u8 {
        unsafe { ::core::mem::transmute(self._bitfield_1.get(12usize, 4u8) as u8) }
    }
    #[inline]
    pub fn set_type(&mut self, val: u8) {
        unsafe {
            let val: u8 = ::core::mem::transmute(val);
            self._bitfield_1.set(12usize, 4u8, val as u64)
        }
    }
    #[inline]
    pub unsafe fn type__raw(this: *const Self) -> u8 {
        unsafe {
            ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(
                ::core::ptr::addr_of!((*this)._bitfield_1),
                12usize,
                4u8,
            ) as u8)
        }
    }
    #[inline]
    pub unsafe fn set_type_raw(this: *mut Self, val: u8) {
        unsafe {
            let val: u8 = ::core::mem::transmute(val);
            <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(
                ::core::ptr::addr_of_mut!((*this)._bitfield_1),
                12usize,
                4u8,
                val as u64,
            )
        }
    }
    #[inline]
    pub fn new_bitfield_1(
        channel: u8,
        status: u8,
        group: u8,
        type_: u8,
    ) -> __BindgenBitfieldUnit<[u8; 2usize]> {
        let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 2usize]> = Default::default();
        __bindgen_bitfield_unit.set(0usize, 4u8, {
            let channel: u8 = unsafe { ::core::mem::transmute(channel) };
            channel as u64
        });
        __bindgen_bitfield_unit.set(4usize, 4u8, {
            let status: u8 = unsafe { ::core::mem::transmute(status) };
            status as u64
        });
        __bindgen_bitfield_unit.set(8usize, 4u8, {
            let group: u8 = unsafe { ::core::mem::transmute(group) };
            group as u64
        });
        __bindgen_bitfield_unit.set(12usize, 4u8, {
            let type_: u8 = unsafe { ::core::mem::transmute(type_) };
            type_ as u64
        });
        __bindgen_bitfield_unit
    }
}
pub type snd_ump_msg_midi2_note_t = _snd_ump_msg_midi2_note;
#[repr(C, packed)]
#[derive(Debug, Copy, Clone)]
pub struct _snd_ump_msg_midi2_paf {
    pub reserved: u8,
    pub note: u8,
    pub _bitfield_align_1: [u8; 0],
    pub _bitfield_1: __BindgenBitfieldUnit<[u8; 2usize]>,
    pub data: u32,
}
impl _snd_ump_msg_midi2_paf {
    #[inline]
    pub fn channel(&self) -> u8 {
        unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 4u8) as u8) }
    }
    #[inline]
    pub fn set_channel(&mut self, val: u8) {
        unsafe {
            let val: u8 = ::core::mem::transmute(val);
            self._bitfield_1.set(0usize, 4u8, val as u64)
        }
    }
    #[inline]
    pub unsafe fn channel_raw(this: *const Self) -> u8 {
        unsafe {
            ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(
                ::core::ptr::addr_of!((*this)._bitfield_1),
                0usize,
                4u8,
            ) as u8)
        }
    }
    #[inline]
    pub unsafe fn set_channel_raw(this: *mut Self, val: u8) {
        unsafe {
            let val: u8 = ::core::mem::transmute(val);
            <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(
                ::core::ptr::addr_of_mut!((*this)._bitfield_1),
                0usize,
                4u8,
                val as u64,
            )
        }
    }
    #[inline]
    pub fn status(&self) -> u8 {
        unsafe { ::core::mem::transmute(self._bitfield_1.get(4usize, 4u8) as u8) }
    }
    #[inline]
    pub fn set_status(&mut self, val: u8) {
        unsafe {
            let val: u8 = ::core::mem::transmute(val);
            self._bitfield_1.set(4usize, 4u8, val as u64)
        }
    }
    #[inline]
    pub unsafe fn status_raw(this: *const Self) -> u8 {
        unsafe {
            ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(
                ::core::ptr::addr_of!((*this)._bitfield_1),
                4usize,
                4u8,
            ) as u8)
        }
    }
    #[inline]
    pub unsafe fn set_status_raw(this: *mut Self, val: u8) {
        unsafe {
            let val: u8 = ::core::mem::transmute(val);
            <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(
                ::core::ptr::addr_of_mut!((*this)._bitfield_1),
                4usize,
                4u8,
                val as u64,
            )
        }
    }
    #[inline]
    pub fn group(&self) -> u8 {
        unsafe { ::core::mem::transmute(self._bitfield_1.get(8usize, 4u8) as u8) }
    }
    #[inline]
    pub fn set_group(&mut self, val: u8) {
        unsafe {
            let val: u8 = ::core::mem::transmute(val);
            self._bitfield_1.set(8usize, 4u8, val as u64)
        }
    }
    #[inline]
    pub unsafe fn group_raw(this: *const Self) -> u8 {
        unsafe {
            ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(
                ::core::ptr::addr_of!((*this)._bitfield_1),
                8usize,
                4u8,
            ) as u8)
        }
    }
    #[inline]
    pub unsafe fn set_group_raw(this: *mut Self, val: u8) {
        unsafe {
            let val: u8 = ::core::mem::transmute(val);
            <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(
                ::core::ptr::addr_of_mut!((*this)._bitfield_1),
                8usize,
                4u8,
                val as u64,
            )
        }
    }
    #[inline]
    pub fn type_(&self) -> u8 {
        unsafe { ::core::mem::transmute(self._bitfield_1.get(12usize, 4u8) as u8) }
    }
    #[inline]
    pub fn set_type(&mut self, val: u8) {
        unsafe {
            let val: u8 = ::core::mem::transmute(val);
            self._bitfield_1.set(12usize, 4u8, val as u64)
        }
    }
    #[inline]
    pub unsafe fn type__raw(this: *const Self) -> u8 {
        unsafe {
            ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(
                ::core::ptr::addr_of!((*this)._bitfield_1),
                12usize,
                4u8,
            ) as u8)
        }
    }
    #[inline]
    pub unsafe fn set_type_raw(this: *mut Self, val: u8) {
        unsafe {
            let val: u8 = ::core::mem::transmute(val);
            <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(
                ::core::ptr::addr_of_mut!((*this)._bitfield_1),
                12usize,
                4u8,
                val as u64,
            )
        }
    }
    #[inline]
    pub fn new_bitfield_1(
        channel: u8,
        status: u8,
        group: u8,
        type_: u8,
    ) -> __BindgenBitfieldUnit<[u8; 2usize]> {
        let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 2usize]> = Default::default();
        __bindgen_bitfield_unit.set(0usize, 4u8, {
            let channel: u8 = unsafe { ::core::mem::transmute(channel) };
            channel as u64
        });
        __bindgen_bitfield_unit.set(4usize, 4u8, {
            let status: u8 = unsafe { ::core::mem::transmute(status) };
            status as u64
        });
        __bindgen_bitfield_unit.set(8usize, 4u8, {
            let group: u8 = unsafe { ::core::mem::transmute(group) };
            group as u64
        });
        __bindgen_bitfield_unit.set(12usize, 4u8, {
            let type_: u8 = unsafe { ::core::mem::transmute(type_) };
            type_ as u64
        });
        __bindgen_bitfield_unit
    }
}
pub type snd_ump_msg_midi2_paf_t = _snd_ump_msg_midi2_paf;
#[repr(C, packed)]
#[derive(Debug, Copy, Clone)]
pub struct _snd_ump_msg_midi2_per_note_cc {
    pub index: u8,
    pub note: u8,
    pub _bitfield_align_1: [u8; 0],
    pub _bitfield_1: __BindgenBitfieldUnit<[u8; 2usize]>,
    pub data: u32,
}
impl _snd_ump_msg_midi2_per_note_cc {
    #[inline]
    pub fn channel(&self) -> u8 {
        unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 4u8) as u8) }
    }
    #[inline]
    pub fn set_channel(&mut self, val: u8) {
        unsafe {
            let val: u8 = ::core::mem::transmute(val);
            self._bitfield_1.set(0usize, 4u8, val as u64)
        }
    }
    #[inline]
    pub unsafe fn channel_raw(this: *const Self) -> u8 {
        unsafe {
            ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(
                ::core::ptr::addr_of!((*this)._bitfield_1),
                0usize,
                4u8,
            ) as u8)
        }
    }
    #[inline]
    pub unsafe fn set_channel_raw(this: *mut Self, val: u8) {
        unsafe {
            let val: u8 = ::core::mem::transmute(val);
            <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(
                ::core::ptr::addr_of_mut!((*this)._bitfield_1),
                0usize,
                4u8,
                val as u64,
            )
        }
    }
    #[inline]
    pub fn status(&self) -> u8 {
        unsafe { ::core::mem::transmute(self._bitfield_1.get(4usize, 4u8) as u8) }
    }
    #[inline]
    pub fn set_status(&mut self, val: u8) {
        unsafe {
            let val: u8 = ::core::mem::transmute(val);
            self._bitfield_1.set(4usize, 4u8, val as u64)
        }
    }
    #[inline]
    pub unsafe fn status_raw(this: *const Self) -> u8 {
        unsafe {
            ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(
                ::core::ptr::addr_of!((*this)._bitfield_1),
                4usize,
                4u8,
            ) as u8)
        }
    }
    #[inline]
    pub unsafe fn set_status_raw(this: *mut Self, val: u8) {
        unsafe {
            let val: u8 = ::core::mem::transmute(val);
            <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(
                ::core::ptr::addr_of_mut!((*this)._bitfield_1),
                4usize,
                4u8,
                val as u64,
            )
        }
    }
    #[inline]
    pub fn group(&self) -> u8 {
        unsafe { ::core::mem::transmute(self._bitfield_1.get(8usize, 4u8) as u8) }
    }
    #[inline]
    pub fn set_group(&mut self, val: u8) {
        unsafe {
            let val: u8 = ::core::mem::transmute(val);
            self._bitfield_1.set(8usize, 4u8, val as u64)
        }
    }
    #[inline]
    pub unsafe fn group_raw(this: *const Self) -> u8 {
        unsafe {
            ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(
                ::core::ptr::addr_of!((*this)._bitfield_1),
                8usize,
                4u8,
            ) as u8)
        }
    }
    #[inline]
    pub unsafe fn set_group_raw(this: *mut Self, val: u8) {
        unsafe {
            let val: u8 = ::core::mem::transmute(val);
            <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(
                ::core::ptr::addr_of_mut!((*this)._bitfield_1),
                8usize,
                4u8,
                val as u64,
            )
        }
    }
    #[inline]
    pub fn type_(&self) -> u8 {
        unsafe { ::core::mem::transmute(self._bitfield_1.get(12usize, 4u8) as u8) }
    }
    #[inline]
    pub fn set_type(&mut self, val: u8) {
        unsafe {
            let val: u8 = ::core::mem::transmute(val);
            self._bitfield_1.set(12usize, 4u8, val as u64)
        }
    }
    #[inline]
    pub unsafe fn type__raw(this: *const Self) -> u8 {
        unsafe {
            ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(
                ::core::ptr::addr_of!((*this)._bitfield_1),
                12usize,
                4u8,
            ) as u8)
        }
    }
    #[inline]
    pub unsafe fn set_type_raw(this: *mut Self, val: u8) {
        unsafe {
            let val: u8 = ::core::mem::transmute(val);
            <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(
                ::core::ptr::addr_of_mut!((*this)._bitfield_1),
                12usize,
                4u8,
                val as u64,
            )
        }
    }
    #[inline]
    pub fn new_bitfield_1(
        channel: u8,
        status: u8,
        group: u8,
        type_: u8,
    ) -> __BindgenBitfieldUnit<[u8; 2usize]> {
        let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 2usize]> = Default::default();
        __bindgen_bitfield_unit.set(0usize, 4u8, {
            let channel: u8 = unsafe { ::core::mem::transmute(channel) };
            channel as u64
        });
        __bindgen_bitfield_unit.set(4usize, 4u8, {
            let status: u8 = unsafe { ::core::mem::transmute(status) };
            status as u64
        });
        __bindgen_bitfield_unit.set(8usize, 4u8, {
            let group: u8 = unsafe { ::core::mem::transmute(group) };
            group as u64
        });
        __bindgen_bitfield_unit.set(12usize, 4u8, {
            let type_: u8 = unsafe { ::core::mem::transmute(type_) };
            type_ as u64
        });
        __bindgen_bitfield_unit
    }
}
pub type snd_ump_msg_midi2_per_note_cc_t = _snd_ump_msg_midi2_per_note_cc;
pub const SND_UMP_MIDI2_PNMGMT_RESET_CONTROLLERS: _bindgen_ty_5 = 1;
pub const SND_UMP_MIDI2_PNMGMT_DETACH_CONTROLLERS: _bindgen_ty_5 = 2;
pub type _bindgen_ty_5 = ::core::ffi::c_uint;
#[repr(C, packed)]
#[derive(Debug, Copy, Clone)]
pub struct _snd_ump_msg_midi2_per_note_mgmt {
    pub flags: u8,
    pub note: u8,
    pub _bitfield_align_1: [u8; 0],
    pub _bitfield_1: __BindgenBitfieldUnit<[u8; 2usize]>,
    pub reserved: u32,
}
impl _snd_ump_msg_midi2_per_note_mgmt {
    #[inline]
    pub fn channel(&self) -> u8 {
        unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 4u8) as u8) }
    }
    #[inline]
    pub fn set_channel(&mut self, val: u8) {
        unsafe {
            let val: u8 = ::core::mem::transmute(val);
            self._bitfield_1.set(0usize, 4u8, val as u64)
        }
    }
    #[inline]
    pub unsafe fn channel_raw(this: *const Self) -> u8 {
        unsafe {
            ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(
                ::core::ptr::addr_of!((*this)._bitfield_1),
                0usize,
                4u8,
            ) as u8)
        }
    }
    #[inline]
    pub unsafe fn set_channel_raw(this: *mut Self, val: u8) {
        unsafe {
            let val: u8 = ::core::mem::transmute(val);
            <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(
                ::core::ptr::addr_of_mut!((*this)._bitfield_1),
                0usize,
                4u8,
                val as u64,
            )
        }
    }
    #[inline]
    pub fn status(&self) -> u8 {
        unsafe { ::core::mem::transmute(self._bitfield_1.get(4usize, 4u8) as u8) }
    }
    #[inline]
    pub fn set_status(&mut self, val: u8) {
        unsafe {
            let val: u8 = ::core::mem::transmute(val);
            self._bitfield_1.set(4usize, 4u8, val as u64)
        }
    }
    #[inline]
    pub unsafe fn status_raw(this: *const Self) -> u8 {
        unsafe {
            ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(
                ::core::ptr::addr_of!((*this)._bitfield_1),
                4usize,
                4u8,
            ) as u8)
        }
    }
    #[inline]
    pub unsafe fn set_status_raw(this: *mut Self, val: u8) {
        unsafe {
            let val: u8 = ::core::mem::transmute(val);
            <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(
                ::core::ptr::addr_of_mut!((*this)._bitfield_1),
                4usize,
                4u8,
                val as u64,
            )
        }
    }
    #[inline]
    pub fn group(&self) -> u8 {
        unsafe { ::core::mem::transmute(self._bitfield_1.get(8usize, 4u8) as u8) }
    }
    #[inline]
    pub fn set_group(&mut self, val: u8) {
        unsafe {
            let val: u8 = ::core::mem::transmute(val);
            self._bitfield_1.set(8usize, 4u8, val as u64)
        }
    }
    #[inline]
    pub unsafe fn group_raw(this: *const Self) -> u8 {
        unsafe {
            ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(
                ::core::ptr::addr_of!((*this)._bitfield_1),
                8usize,
                4u8,
            ) as u8)
        }
    }
    #[inline]
    pub unsafe fn set_group_raw(this: *mut Self, val: u8) {
        unsafe {
            let val: u8 = ::core::mem::transmute(val);
            <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(
                ::core::ptr::addr_of_mut!((*this)._bitfield_1),
                8usize,
                4u8,
                val as u64,
            )
        }
    }
    #[inline]
    pub fn type_(&self) -> u8 {
        unsafe { ::core::mem::transmute(self._bitfield_1.get(12usize, 4u8) as u8) }
    }
    #[inline]
    pub fn set_type(&mut self, val: u8) {
        unsafe {
            let val: u8 = ::core::mem::transmute(val);
            self._bitfield_1.set(12usize, 4u8, val as u64)
        }
    }
    #[inline]
    pub unsafe fn type__raw(this: *const Self) -> u8 {
        unsafe {
            ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(
                ::core::ptr::addr_of!((*this)._bitfield_1),
                12usize,
                4u8,
            ) as u8)
        }
    }
    #[inline]
    pub unsafe fn set_type_raw(this: *mut Self, val: u8) {
        unsafe {
            let val: u8 = ::core::mem::transmute(val);
            <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(
                ::core::ptr::addr_of_mut!((*this)._bitfield_1),
                12usize,
                4u8,
                val as u64,
            )
        }
    }
    #[inline]
    pub fn new_bitfield_1(
        channel: u8,
        status: u8,
        group: u8,
        type_: u8,
    ) -> __BindgenBitfieldUnit<[u8; 2usize]> {
        let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 2usize]> = Default::default();
        __bindgen_bitfield_unit.set(0usize, 4u8, {
            let channel: u8 = unsafe { ::core::mem::transmute(channel) };
            channel as u64
        });
        __bindgen_bitfield_unit.set(4usize, 4u8, {
            let status: u8 = unsafe { ::core::mem::transmute(status) };
            status as u64
        });
        __bindgen_bitfield_unit.set(8usize, 4u8, {
            let group: u8 = unsafe { ::core::mem::transmute(group) };
            group as u64
        });
        __bindgen_bitfield_unit.set(12usize, 4u8, {
            let type_: u8 = unsafe { ::core::mem::transmute(type_) };
            type_ as u64
        });
        __bindgen_bitfield_unit
    }
}
pub type snd_ump_msg_midi2_per_note_mgmt_t = _snd_ump_msg_midi2_per_note_mgmt;
#[repr(C, packed)]
#[derive(Debug, Copy, Clone)]
pub struct _snd_ump_msg_midi2_cc {
    pub reserved: u8,
    pub index: u8,
    pub _bitfield_align_1: [u8; 0],
    pub _bitfield_1: __BindgenBitfieldUnit<[u8; 2usize]>,
    pub data: u32,
}
impl _snd_ump_msg_midi2_cc {
    #[inline]
    pub fn channel(&self) -> u8 {
        unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 4u8) as u8) }
    }
    #[inline]
    pub fn set_channel(&mut self, val: u8) {
        unsafe {
            let val: u8 = ::core::mem::transmute(val);
            self._bitfield_1.set(0usize, 4u8, val as u64)
        }
    }
    #[inline]
    pub unsafe fn channel_raw(this: *const Self) -> u8 {
        unsafe {
            ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(
                ::core::ptr::addr_of!((*this)._bitfield_1),
                0usize,
                4u8,
            ) as u8)
        }
    }
    #[inline]
    pub unsafe fn set_channel_raw(this: *mut Self, val: u8) {
        unsafe {
            let val: u8 = ::core::mem::transmute(val);
            <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(
                ::core::ptr::addr_of_mut!((*this)._bitfield_1),
                0usize,
                4u8,
                val as u64,
            )
        }
    }
    #[inline]
    pub fn status(&self) -> u8 {
        unsafe { ::core::mem::transmute(self._bitfield_1.get(4usize, 4u8) as u8) }
    }
    #[inline]
    pub fn set_status(&mut self, val: u8) {
        unsafe {
            let val: u8 = ::core::mem::transmute(val);
            self._bitfield_1.set(4usize, 4u8, val as u64)
        }
    }
    #[inline]
    pub unsafe fn status_raw(this: *const Self) -> u8 {
        unsafe {
            ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(
                ::core::ptr::addr_of!((*this)._bitfield_1),
                4usize,
                4u8,
            ) as u8)
        }
    }
    #[inline]
    pub unsafe fn set_status_raw(this: *mut Self, val: u8) {
        unsafe {
            let val: u8 = ::core::mem::transmute(val);
            <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(
                ::core::ptr::addr_of_mut!((*this)._bitfield_1),
                4usize,
                4u8,
                val as u64,
            )
        }
    }
    #[inline]
    pub fn group(&self) -> u8 {
        unsafe { ::core::mem::transmute(self._bitfield_1.get(8usize, 4u8) as u8) }
    }
    #[inline]
    pub fn set_group(&mut self, val: u8) {
        unsafe {
            let val: u8 = ::core::mem::transmute(val);
            self._bitfield_1.set(8usize, 4u8, val as u64)
        }
    }
    #[inline]
    pub unsafe fn group_raw(this: *const Self) -> u8 {
        unsafe {
            ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(
                ::core::ptr::addr_of!((*this)._bitfield_1),
                8usize,
                4u8,
            ) as u8)
        }
    }
    #[inline]
    pub unsafe fn set_group_raw(this: *mut Self, val: u8) {
        unsafe {
            let val: u8 = ::core::mem::transmute(val);
            <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(
                ::core::ptr::addr_of_mut!((*this)._bitfield_1),
                8usize,
                4u8,
                val as u64,
            )
        }
    }
    #[inline]
    pub fn type_(&self) -> u8 {
        unsafe { ::core::mem::transmute(self._bitfield_1.get(12usize, 4u8) as u8) }
    }
    #[inline]
    pub fn set_type(&mut self, val: u8) {
        unsafe {
            let val: u8 = ::core::mem::transmute(val);
            self._bitfield_1.set(12usize, 4u8, val as u64)
        }
    }
    #[inline]
    pub unsafe fn type__raw(this: *const Self) -> u8 {
        unsafe {
            ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(
                ::core::ptr::addr_of!((*this)._bitfield_1),
                12usize,
                4u8,
            ) as u8)
        }
    }
    #[inline]
    pub unsafe fn set_type_raw(this: *mut Self, val: u8) {
        unsafe {
            let val: u8 = ::core::mem::transmute(val);
            <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(
                ::core::ptr::addr_of_mut!((*this)._bitfield_1),
                12usize,
                4u8,
                val as u64,
            )
        }
    }
    #[inline]
    pub fn new_bitfield_1(
        channel: u8,
        status: u8,
        group: u8,
        type_: u8,
    ) -> __BindgenBitfieldUnit<[u8; 2usize]> {
        let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 2usize]> = Default::default();
        __bindgen_bitfield_unit.set(0usize, 4u8, {
            let channel: u8 = unsafe { ::core::mem::transmute(channel) };
            channel as u64
        });
        __bindgen_bitfield_unit.set(4usize, 4u8, {
            let status: u8 = unsafe { ::core::mem::transmute(status) };
            status as u64
        });
        __bindgen_bitfield_unit.set(8usize, 4u8, {
            let group: u8 = unsafe { ::core::mem::transmute(group) };
            group as u64
        });
        __bindgen_bitfield_unit.set(12usize, 4u8, {
            let type_: u8 = unsafe { ::core::mem::transmute(type_) };
            type_ as u64
        });
        __bindgen_bitfield_unit
    }
}
pub type snd_ump_msg_midi2_cc_t = _snd_ump_msg_midi2_cc;
#[repr(C, packed)]
#[derive(Debug, Copy, Clone)]
pub struct _snd_ump_msg_midi2_rpn {
    pub index: u8,
    pub bank: u8,
    pub _bitfield_align_1: [u8; 0],
    pub _bitfield_1: __BindgenBitfieldUnit<[u8; 2usize]>,
    pub data: u32,
}
impl _snd_ump_msg_midi2_rpn {
    #[inline]
    pub fn channel(&self) -> u8 {
        unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 4u8) as u8) }
    }
    #[inline]
    pub fn set_channel(&mut self, val: u8) {
        unsafe {
            let val: u8 = ::core::mem::transmute(val);
            self._bitfield_1.set(0usize, 4u8, val as u64)
        }
    }
    #[inline]
    pub unsafe fn channel_raw(this: *const Self) -> u8 {
        unsafe {
            ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(
                ::core::ptr::addr_of!((*this)._bitfield_1),
                0usize,
                4u8,
            ) as u8)
        }
    }
    #[inline]
    pub unsafe fn set_channel_raw(this: *mut Self, val: u8) {
        unsafe {
            let val: u8 = ::core::mem::transmute(val);
            <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(
                ::core::ptr::addr_of_mut!((*this)._bitfield_1),
                0usize,
                4u8,
                val as u64,
            )
        }
    }
    #[inline]
    pub fn status(&self) -> u8 {
        unsafe { ::core::mem::transmute(self._bitfield_1.get(4usize, 4u8) as u8) }
    }
    #[inline]
    pub fn set_status(&mut self, val: u8) {
        unsafe {
            let val: u8 = ::core::mem::transmute(val);
            self._bitfield_1.set(4usize, 4u8, val as u64)
        }
    }
    #[inline]
    pub unsafe fn status_raw(this: *const Self) -> u8 {
        unsafe {
            ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(
                ::core::ptr::addr_of!((*this)._bitfield_1),
                4usize,
                4u8,
            ) as u8)
        }
    }
    #[inline]
    pub unsafe fn set_status_raw(this: *mut Self, val: u8) {
        unsafe {
            let val: u8 = ::core::mem::transmute(val);
            <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(
                ::core::ptr::addr_of_mut!((*this)._bitfield_1),
                4usize,
                4u8,
                val as u64,
            )
        }
    }
    #[inline]
    pub fn group(&self) -> u8 {
        unsafe { ::core::mem::transmute(self._bitfield_1.get(8usize, 4u8) as u8) }
    }
    #[inline]
    pub fn set_group(&mut self, val: u8) {
        unsafe {
            let val: u8 = ::core::mem::transmute(val);
            self._bitfield_1.set(8usize, 4u8, val as u64)
        }
    }
    #[inline]
    pub unsafe fn group_raw(this: *const Self) -> u8 {
        unsafe {
            ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(
                ::core::ptr::addr_of!((*this)._bitfield_1),
                8usize,
                4u8,
            ) as u8)
        }
    }
    #[inline]
    pub unsafe fn set_group_raw(this: *mut Self, val: u8) {
        unsafe {
            let val: u8 = ::core::mem::transmute(val);
            <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(
                ::core::ptr::addr_of_mut!((*this)._bitfield_1),
                8usize,
                4u8,
                val as u64,
            )
        }
    }
    #[inline]
    pub fn type_(&self) -> u8 {
        unsafe { ::core::mem::transmute(self._bitfield_1.get(12usize, 4u8) as u8) }
    }
    #[inline]
    pub fn set_type(&mut self, val: u8) {
        unsafe {
            let val: u8 = ::core::mem::transmute(val);
            self._bitfield_1.set(12usize, 4u8, val as u64)
        }
    }
    #[inline]
    pub unsafe fn type__raw(this: *const Self) -> u8 {
        unsafe {
            ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(
                ::core::ptr::addr_of!((*this)._bitfield_1),
                12usize,
                4u8,
            ) as u8)
        }
    }
    #[inline]
    pub unsafe fn set_type_raw(this: *mut Self, val: u8) {
        unsafe {
            let val: u8 = ::core::mem::transmute(val);
            <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(
                ::core::ptr::addr_of_mut!((*this)._bitfield_1),
                12usize,
                4u8,
                val as u64,
            )
        }
    }
    #[inline]
    pub fn new_bitfield_1(
        channel: u8,
        status: u8,
        group: u8,
        type_: u8,
    ) -> __BindgenBitfieldUnit<[u8; 2usize]> {
        let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 2usize]> = Default::default();
        __bindgen_bitfield_unit.set(0usize, 4u8, {
            let channel: u8 = unsafe { ::core::mem::transmute(channel) };
            channel as u64
        });
        __bindgen_bitfield_unit.set(4usize, 4u8, {
            let status: u8 = unsafe { ::core::mem::transmute(status) };
            status as u64
        });
        __bindgen_bitfield_unit.set(8usize, 4u8, {
            let group: u8 = unsafe { ::core::mem::transmute(group) };
            group as u64
        });
        __bindgen_bitfield_unit.set(12usize, 4u8, {
            let type_: u8 = unsafe { ::core::mem::transmute(type_) };
            type_ as u64
        });
        __bindgen_bitfield_unit
    }
}
pub type snd_ump_msg_midi2_rpn_t = _snd_ump_msg_midi2_rpn;
#[repr(C, packed)]
#[derive(Debug, Copy, Clone)]
pub struct _snd_ump_msg_midi2_program {
    pub _bitfield_align_1: [u8; 0],
    pub _bitfield_1: __BindgenBitfieldUnit<[u8; 4usize]>,
    pub bank_lsb: u8,
    pub bank_msb: u8,
    pub reserved2: u8,
    pub program: u8,
}
impl _snd_ump_msg_midi2_program {
    #[inline]
    pub fn bank_valid(&self) -> u16 {
        unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u16) }
    }
    #[inline]
    pub fn set_bank_valid(&mut self, val: u16) {
        unsafe {
            let val: u16 = ::core::mem::transmute(val);
            self._bitfield_1.set(0usize, 1u8, val as u64)
        }
    }
    #[inline]
    pub unsafe fn bank_valid_raw(this: *const Self) -> u16 {
        unsafe {
            ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(
                ::core::ptr::addr_of!((*this)._bitfield_1),
                0usize,
                1u8,
            ) as u16)
        }
    }
    #[inline]
    pub unsafe fn set_bank_valid_raw(this: *mut Self, val: u16) {
        unsafe {
            let val: u16 = ::core::mem::transmute(val);
            <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(
                ::core::ptr::addr_of_mut!((*this)._bitfield_1),
                0usize,
                1u8,
                val as u64,
            )
        }
    }
    #[inline]
    pub fn reserved(&self) -> u16 {
        unsafe { ::core::mem::transmute(self._bitfield_1.get(1usize, 15u8) as u16) }
    }
    #[inline]
    pub fn set_reserved(&mut self, val: u16) {
        unsafe {
            let val: u16 = ::core::mem::transmute(val);
            self._bitfield_1.set(1usize, 15u8, val as u64)
        }
    }
    #[inline]
    pub unsafe fn reserved_raw(this: *const Self) -> u16 {
        unsafe {
            ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(
                ::core::ptr::addr_of!((*this)._bitfield_1),
                1usize,
                15u8,
            ) as u16)
        }
    }
    #[inline]
    pub unsafe fn set_reserved_raw(this: *mut Self, val: u16) {
        unsafe {
            let val: u16 = ::core::mem::transmute(val);
            <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(
                ::core::ptr::addr_of_mut!((*this)._bitfield_1),
                1usize,
                15u8,
                val as u64,
            )
        }
    }
    #[inline]
    pub fn channel(&self) -> u8 {
        unsafe { ::core::mem::transmute(self._bitfield_1.get(16usize, 4u8) as u8) }
    }
    #[inline]
    pub fn set_channel(&mut self, val: u8) {
        unsafe {
            let val: u8 = ::core::mem::transmute(val);
            self._bitfield_1.set(16usize, 4u8, val as u64)
        }
    }
    #[inline]
    pub unsafe fn channel_raw(this: *const Self) -> u8 {
        unsafe {
            ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(
                ::core::ptr::addr_of!((*this)._bitfield_1),
                16usize,
                4u8,
            ) as u8)
        }
    }
    #[inline]
    pub unsafe fn set_channel_raw(this: *mut Self, val: u8) {
        unsafe {
            let val: u8 = ::core::mem::transmute(val);
            <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(
                ::core::ptr::addr_of_mut!((*this)._bitfield_1),
                16usize,
                4u8,
                val as u64,
            )
        }
    }
    #[inline]
    pub fn status(&self) -> u8 {
        unsafe { ::core::mem::transmute(self._bitfield_1.get(20usize, 4u8) as u8) }
    }
    #[inline]
    pub fn set_status(&mut self, val: u8) {
        unsafe {
            let val: u8 = ::core::mem::transmute(val);
            self._bitfield_1.set(20usize, 4u8, val as u64)
        }
    }
    #[inline]
    pub unsafe fn status_raw(this: *const Self) -> u8 {
        unsafe {
            ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(
                ::core::ptr::addr_of!((*this)._bitfield_1),
                20usize,
                4u8,
            ) as u8)
        }
    }
    #[inline]
    pub unsafe fn set_status_raw(this: *mut Self, val: u8) {
        unsafe {
            let val: u8 = ::core::mem::transmute(val);
            <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(
                ::core::ptr::addr_of_mut!((*this)._bitfield_1),
                20usize,
                4u8,
                val as u64,
            )
        }
    }
    #[inline]
    pub fn group(&self) -> u8 {
        unsafe { ::core::mem::transmute(self._bitfield_1.get(24usize, 4u8) as u8) }
    }
    #[inline]
    pub fn set_group(&mut self, val: u8) {
        unsafe {
            let val: u8 = ::core::mem::transmute(val);
            self._bitfield_1.set(24usize, 4u8, val as u64)
        }
    }
    #[inline]
    pub unsafe fn group_raw(this: *const Self) -> u8 {
        unsafe {
            ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(
                ::core::ptr::addr_of!((*this)._bitfield_1),
                24usize,
                4u8,
            ) as u8)
        }
    }
    #[inline]
    pub unsafe fn set_group_raw(this: *mut Self, val: u8) {
        unsafe {
            let val: u8 = ::core::mem::transmute(val);
            <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(
                ::core::ptr::addr_of_mut!((*this)._bitfield_1),
                24usize,
                4u8,
                val as u64,
            )
        }
    }
    #[inline]
    pub fn type_(&self) -> u8 {
        unsafe { ::core::mem::transmute(self._bitfield_1.get(28usize, 4u8) as u8) }
    }
    #[inline]
    pub fn set_type(&mut self, val: u8) {
        unsafe {
            let val: u8 = ::core::mem::transmute(val);
            self._bitfield_1.set(28usize, 4u8, val as u64)
        }
    }
    #[inline]
    pub unsafe fn type__raw(this: *const Self) -> u8 {
        unsafe {
            ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(
                ::core::ptr::addr_of!((*this)._bitfield_1),
                28usize,
                4u8,
            ) as u8)
        }
    }
    #[inline]
    pub unsafe fn set_type_raw(this: *mut Self, val: u8) {
        unsafe {
            let val: u8 = ::core::mem::transmute(val);
            <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(
                ::core::ptr::addr_of_mut!((*this)._bitfield_1),
                28usize,
                4u8,
                val as u64,
            )
        }
    }
    #[inline]
    pub fn new_bitfield_1(
        bank_valid: u16,
        reserved: u16,
        channel: u8,
        status: u8,
        group: u8,
        type_: u8,
    ) -> __BindgenBitfieldUnit<[u8; 4usize]> {
        let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 4usize]> = Default::default();
        __bindgen_bitfield_unit.set(0usize, 1u8, {
            let bank_valid: u16 = unsafe { ::core::mem::transmute(bank_valid) };
            bank_valid as u64
        });
        __bindgen_bitfield_unit.set(1usize, 15u8, {
            let reserved: u16 = unsafe { ::core::mem::transmute(reserved) };
            reserved as u64
        });
        __bindgen_bitfield_unit.set(16usize, 4u8, {
            let channel: u8 = unsafe { ::core::mem::transmute(channel) };
            channel as u64
        });
        __bindgen_bitfield_unit.set(20usize, 4u8, {
            let status: u8 = unsafe { ::core::mem::transmute(status) };
            status as u64
        });
        __bindgen_bitfield_unit.set(24usize, 4u8, {
            let group: u8 = unsafe { ::core::mem::transmute(group) };
            group as u64
        });
        __bindgen_bitfield_unit.set(28usize, 4u8, {
            let type_: u8 = unsafe { ::core::mem::transmute(type_) };
            type_ as u64
        });
        __bindgen_bitfield_unit
    }
}
pub type snd_ump_msg_midi2_program_t = _snd_ump_msg_midi2_program;
#[repr(C, packed)]
#[derive(Debug, Copy, Clone)]
pub struct _snd_ump_msg_midi2_caf {
    pub reserved: u16,
    pub _bitfield_align_1: [u8; 0],
    pub _bitfield_1: __BindgenBitfieldUnit<[u8; 2usize]>,
    pub data: u32,
}
impl _snd_ump_msg_midi2_caf {
    #[inline]
    pub fn channel(&self) -> u8 {
        unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 4u8) as u8) }
    }
    #[inline]
    pub fn set_channel(&mut self, val: u8) {
        unsafe {
            let val: u8 = ::core::mem::transmute(val);
            self._bitfield_1.set(0usize, 4u8, val as u64)
        }
    }
    #[inline]
    pub unsafe fn channel_raw(this: *const Self) -> u8 {
        unsafe {
            ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(
                ::core::ptr::addr_of!((*this)._bitfield_1),
                0usize,
                4u8,
            ) as u8)
        }
    }
    #[inline]
    pub unsafe fn set_channel_raw(this: *mut Self, val: u8) {
        unsafe {
            let val: u8 = ::core::mem::transmute(val);
            <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(
                ::core::ptr::addr_of_mut!((*this)._bitfield_1),
                0usize,
                4u8,
                val as u64,
            )
        }
    }
    #[inline]
    pub fn status(&self) -> u8 {
        unsafe { ::core::mem::transmute(self._bitfield_1.get(4usize, 4u8) as u8) }
    }
    #[inline]
    pub fn set_status(&mut self, val: u8) {
        unsafe {
            let val: u8 = ::core::mem::transmute(val);
            self._bitfield_1.set(4usize, 4u8, val as u64)
        }
    }
    #[inline]
    pub unsafe fn status_raw(this: *const Self) -> u8 {
        unsafe {
            ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(
                ::core::ptr::addr_of!((*this)._bitfield_1),
                4usize,
                4u8,
            ) as u8)
        }
    }
    #[inline]
    pub unsafe fn set_status_raw(this: *mut Self, val: u8) {
        unsafe {
            let val: u8 = ::core::mem::transmute(val);
            <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(
                ::core::ptr::addr_of_mut!((*this)._bitfield_1),
                4usize,
                4u8,
                val as u64,
            )
        }
    }
    #[inline]
    pub fn group(&self) -> u8 {
        unsafe { ::core::mem::transmute(self._bitfield_1.get(8usize, 4u8) as u8) }
    }
    #[inline]
    pub fn set_group(&mut self, val: u8) {
        unsafe {
            let val: u8 = ::core::mem::transmute(val);
            self._bitfield_1.set(8usize, 4u8, val as u64)
        }
    }
    #[inline]
    pub unsafe fn group_raw(this: *const Self) -> u8 {
        unsafe {
            ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(
                ::core::ptr::addr_of!((*this)._bitfield_1),
                8usize,
                4u8,
            ) as u8)
        }
    }
    #[inline]
    pub unsafe fn set_group_raw(this: *mut Self, val: u8) {
        unsafe {
            let val: u8 = ::core::mem::transmute(val);
            <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(
                ::core::ptr::addr_of_mut!((*this)._bitfield_1),
                8usize,
                4u8,
                val as u64,
            )
        }
    }
    #[inline]
    pub fn type_(&self) -> u8 {
        unsafe { ::core::mem::transmute(self._bitfield_1.get(12usize, 4u8) as u8) }
    }
    #[inline]
    pub fn set_type(&mut self, val: u8) {
        unsafe {
            let val: u8 = ::core::mem::transmute(val);
            self._bitfield_1.set(12usize, 4u8, val as u64)
        }
    }
    #[inline]
    pub unsafe fn type__raw(this: *const Self) -> u8 {
        unsafe {
            ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(
                ::core::ptr::addr_of!((*this)._bitfield_1),
                12usize,
                4u8,
            ) as u8)
        }
    }
    #[inline]
    pub unsafe fn set_type_raw(this: *mut Self, val: u8) {
        unsafe {
            let val: u8 = ::core::mem::transmute(val);
            <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(
                ::core::ptr::addr_of_mut!((*this)._bitfield_1),
                12usize,
                4u8,
                val as u64,
            )
        }
    }
    #[inline]
    pub fn new_bitfield_1(
        channel: u8,
        status: u8,
        group: u8,
        type_: u8,
    ) -> __BindgenBitfieldUnit<[u8; 2usize]> {
        let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 2usize]> = Default::default();
        __bindgen_bitfield_unit.set(0usize, 4u8, {
            let channel: u8 = unsafe { ::core::mem::transmute(channel) };
            channel as u64
        });
        __bindgen_bitfield_unit.set(4usize, 4u8, {
            let status: u8 = unsafe { ::core::mem::transmute(status) };
            status as u64
        });
        __bindgen_bitfield_unit.set(8usize, 4u8, {
            let group: u8 = unsafe { ::core::mem::transmute(group) };
            group as u64
        });
        __bindgen_bitfield_unit.set(12usize, 4u8, {
            let type_: u8 = unsafe { ::core::mem::transmute(type_) };
            type_ as u64
        });
        __bindgen_bitfield_unit
    }
}
pub type snd_ump_msg_midi2_caf_t = _snd_ump_msg_midi2_caf;
#[repr(C, packed)]
#[derive(Debug, Copy, Clone)]
pub struct _snd_ump_msg_midi2_pitchbend {
    pub reserved: u16,
    pub _bitfield_align_1: [u8; 0],
    pub _bitfield_1: __BindgenBitfieldUnit<[u8; 2usize]>,
    pub data: u32,
}
impl _snd_ump_msg_midi2_pitchbend {
    #[inline]
    pub fn channel(&self) -> u8 {
        unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 4u8) as u8) }
    }
    #[inline]
    pub fn set_channel(&mut self, val: u8) {
        unsafe {
            let val: u8 = ::core::mem::transmute(val);
            self._bitfield_1.set(0usize, 4u8, val as u64)
        }
    }
    #[inline]
    pub unsafe fn channel_raw(this: *const Self) -> u8 {
        unsafe {
            ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(
                ::core::ptr::addr_of!((*this)._bitfield_1),
                0usize,
                4u8,
            ) as u8)
        }
    }
    #[inline]
    pub unsafe fn set_channel_raw(this: *mut Self, val: u8) {
        unsafe {
            let val: u8 = ::core::mem::transmute(val);
            <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(
                ::core::ptr::addr_of_mut!((*this)._bitfield_1),
                0usize,
                4u8,
                val as u64,
            )
        }
    }
    #[inline]
    pub fn status(&self) -> u8 {
        unsafe { ::core::mem::transmute(self._bitfield_1.get(4usize, 4u8) as u8) }
    }
    #[inline]
    pub fn set_status(&mut self, val: u8) {
        unsafe {
            let val: u8 = ::core::mem::transmute(val);
            self._bitfield_1.set(4usize, 4u8, val as u64)
        }
    }
    #[inline]
    pub unsafe fn status_raw(this: *const Self) -> u8 {
        unsafe {
            ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(
                ::core::ptr::addr_of!((*this)._bitfield_1),
                4usize,
                4u8,
            ) as u8)
        }
    }
    #[inline]
    pub unsafe fn set_status_raw(this: *mut Self, val: u8) {
        unsafe {
            let val: u8 = ::core::mem::transmute(val);
            <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(
                ::core::ptr::addr_of_mut!((*this)._bitfield_1),
                4usize,
                4u8,
                val as u64,
            )
        }
    }
    #[inline]
    pub fn group(&self) -> u8 {
        unsafe { ::core::mem::transmute(self._bitfield_1.get(8usize, 4u8) as u8) }
    }
    #[inline]
    pub fn set_group(&mut self, val: u8) {
        unsafe {
            let val: u8 = ::core::mem::transmute(val);
            self._bitfield_1.set(8usize, 4u8, val as u64)
        }
    }
    #[inline]
    pub unsafe fn group_raw(this: *const Self) -> u8 {
        unsafe {
            ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(
                ::core::ptr::addr_of!((*this)._bitfield_1),
                8usize,
                4u8,
            ) as u8)
        }
    }
    #[inline]
    pub unsafe fn set_group_raw(this: *mut Self, val: u8) {
        unsafe {
            let val: u8 = ::core::mem::transmute(val);
            <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(
                ::core::ptr::addr_of_mut!((*this)._bitfield_1),
                8usize,
                4u8,
                val as u64,
            )
        }
    }
    #[inline]
    pub fn type_(&self) -> u8 {
        unsafe { ::core::mem::transmute(self._bitfield_1.get(12usize, 4u8) as u8) }
    }
    #[inline]
    pub fn set_type(&mut self, val: u8) {
        unsafe {
            let val: u8 = ::core::mem::transmute(val);
            self._bitfield_1.set(12usize, 4u8, val as u64)
        }
    }
    #[inline]
    pub unsafe fn type__raw(this: *const Self) -> u8 {
        unsafe {
            ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(
                ::core::ptr::addr_of!((*this)._bitfield_1),
                12usize,
                4u8,
            ) as u8)
        }
    }
    #[inline]
    pub unsafe fn set_type_raw(this: *mut Self, val: u8) {
        unsafe {
            let val: u8 = ::core::mem::transmute(val);
            <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(
                ::core::ptr::addr_of_mut!((*this)._bitfield_1),
                12usize,
                4u8,
                val as u64,
            )
        }
    }
    #[inline]
    pub fn new_bitfield_1(
        channel: u8,
        status: u8,
        group: u8,
        type_: u8,
    ) -> __BindgenBitfieldUnit<[u8; 2usize]> {
        let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 2usize]> = Default::default();
        __bindgen_bitfield_unit.set(0usize, 4u8, {
            let channel: u8 = unsafe { ::core::mem::transmute(channel) };
            channel as u64
        });
        __bindgen_bitfield_unit.set(4usize, 4u8, {
            let status: u8 = unsafe { ::core::mem::transmute(status) };
            status as u64
        });
        __bindgen_bitfield_unit.set(8usize, 4u8, {
            let group: u8 = unsafe { ::core::mem::transmute(group) };
            group as u64
        });
        __bindgen_bitfield_unit.set(12usize, 4u8, {
            let type_: u8 = unsafe { ::core::mem::transmute(type_) };
            type_ as u64
        });
        __bindgen_bitfield_unit
    }
}
pub type snd_ump_msg_midi2_pitchbend_t = _snd_ump_msg_midi2_pitchbend;
#[repr(C, packed)]
#[derive(Debug, Copy, Clone)]
pub struct _snd_ump_msg_midi2_per_note_pitchbend {
    pub reserved: u8,
    pub note: u8,
    pub _bitfield_align_1: [u8; 0],
    pub _bitfield_1: __BindgenBitfieldUnit<[u8; 2usize]>,
    pub data: u32,
}
impl _snd_ump_msg_midi2_per_note_pitchbend {
    #[inline]
    pub fn channel(&self) -> u8 {
        unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 4u8) as u8) }
    }
    #[inline]
    pub fn set_channel(&mut self, val: u8) {
        unsafe {
            let val: u8 = ::core::mem::transmute(val);
            self._bitfield_1.set(0usize, 4u8, val as u64)
        }
    }
    #[inline]
    pub unsafe fn channel_raw(this: *const Self) -> u8 {
        unsafe {
            ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(
                ::core::ptr::addr_of!((*this)._bitfield_1),
                0usize,
                4u8,
            ) as u8)
        }
    }
    #[inline]
    pub unsafe fn set_channel_raw(this: *mut Self, val: u8) {
        unsafe {
            let val: u8 = ::core::mem::transmute(val);
            <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(
                ::core::ptr::addr_of_mut!((*this)._bitfield_1),
                0usize,
                4u8,
                val as u64,
            )
        }
    }
    #[inline]
    pub fn status(&self) -> u8 {
        unsafe { ::core::mem::transmute(self._bitfield_1.get(4usize, 4u8) as u8) }
    }
    #[inline]
    pub fn set_status(&mut self, val: u8) {
        unsafe {
            let val: u8 = ::core::mem::transmute(val);
            self._bitfield_1.set(4usize, 4u8, val as u64)
        }
    }
    #[inline]
    pub unsafe fn status_raw(this: *const Self) -> u8 {
        unsafe {
            ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(
                ::core::ptr::addr_of!((*this)._bitfield_1),
                4usize,
                4u8,
            ) as u8)
        }
    }
    #[inline]
    pub unsafe fn set_status_raw(this: *mut Self, val: u8) {
        unsafe {
            let val: u8 = ::core::mem::transmute(val);
            <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(
                ::core::ptr::addr_of_mut!((*this)._bitfield_1),
                4usize,
                4u8,
                val as u64,
            )
        }
    }
    #[inline]
    pub fn group(&self) -> u8 {
        unsafe { ::core::mem::transmute(self._bitfield_1.get(8usize, 4u8) as u8) }
    }
    #[inline]
    pub fn set_group(&mut self, val: u8) {
        unsafe {
            let val: u8 = ::core::mem::transmute(val);
            self._bitfield_1.set(8usize, 4u8, val as u64)
        }
    }
    #[inline]
    pub unsafe fn group_raw(this: *const Self) -> u8 {
        unsafe {
            ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(
                ::core::ptr::addr_of!((*this)._bitfield_1),
                8usize,
                4u8,
            ) as u8)
        }
    }
    #[inline]
    pub unsafe fn set_group_raw(this: *mut Self, val: u8) {
        unsafe {
            let val: u8 = ::core::mem::transmute(val);
            <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(
                ::core::ptr::addr_of_mut!((*this)._bitfield_1),
                8usize,
                4u8,
                val as u64,
            )
        }
    }
    #[inline]
    pub fn type_(&self) -> u8 {
        unsafe { ::core::mem::transmute(self._bitfield_1.get(12usize, 4u8) as u8) }
    }
    #[inline]
    pub fn set_type(&mut self, val: u8) {
        unsafe {
            let val: u8 = ::core::mem::transmute(val);
            self._bitfield_1.set(12usize, 4u8, val as u64)
        }
    }
    #[inline]
    pub unsafe fn type__raw(this: *const Self) -> u8 {
        unsafe {
            ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(
                ::core::ptr::addr_of!((*this)._bitfield_1),
                12usize,
                4u8,
            ) as u8)
        }
    }
    #[inline]
    pub unsafe fn set_type_raw(this: *mut Self, val: u8) {
        unsafe {
            let val: u8 = ::core::mem::transmute(val);
            <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(
                ::core::ptr::addr_of_mut!((*this)._bitfield_1),
                12usize,
                4u8,
                val as u64,
            )
        }
    }
    #[inline]
    pub fn new_bitfield_1(
        channel: u8,
        status: u8,
        group: u8,
        type_: u8,
    ) -> __BindgenBitfieldUnit<[u8; 2usize]> {
        let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 2usize]> = Default::default();
        __bindgen_bitfield_unit.set(0usize, 4u8, {
            let channel: u8 = unsafe { ::core::mem::transmute(channel) };
            channel as u64
        });
        __bindgen_bitfield_unit.set(4usize, 4u8, {
            let status: u8 = unsafe { ::core::mem::transmute(status) };
            status as u64
        });
        __bindgen_bitfield_unit.set(8usize, 4u8, {
            let group: u8 = unsafe { ::core::mem::transmute(group) };
            group as u64
        });
        __bindgen_bitfield_unit.set(12usize, 4u8, {
            let type_: u8 = unsafe { ::core::mem::transmute(type_) };
            type_ as u64
        });
        __bindgen_bitfield_unit
    }
}
pub type snd_ump_msg_midi2_per_note_pitchbend_t = _snd_ump_msg_midi2_per_note_pitchbend;
#[repr(C)]
#[derive(Copy, Clone)]
pub union _snd_ump_msg_midi2 {
    pub note_on: snd_ump_msg_midi2_note_t,
    pub note_off: snd_ump_msg_midi2_note_t,
    pub poly_pressure: snd_ump_msg_midi2_paf_t,
    pub per_note_acc: snd_ump_msg_midi2_per_note_cc_t,
    pub per_note_rcc: snd_ump_msg_midi2_per_note_cc_t,
    pub per_note_mgmt: snd_ump_msg_midi2_per_note_mgmt_t,
    pub control_change: snd_ump_msg_midi2_cc_t,
    pub rpn: snd_ump_msg_midi2_rpn_t,
    pub nrpn: snd_ump_msg_midi2_rpn_t,
    pub relative_rpn: snd_ump_msg_midi2_rpn_t,
    pub relative_nrpn: snd_ump_msg_midi2_rpn_t,
    pub program_change: snd_ump_msg_midi2_program_t,
    pub channel_pressure: snd_ump_msg_midi2_caf_t,
    pub pitchbend: snd_ump_msg_midi2_pitchbend_t,
    pub per_note_pitchbend: snd_ump_msg_midi2_per_note_pitchbend_t,
    pub hdr: snd_ump_msg_hdr_t,
    pub raw: [u32; 2usize],
}
pub type snd_ump_msg_midi2_t = _snd_ump_msg_midi2;
#[repr(C, packed)]
#[derive(Debug, Copy, Clone)]
pub struct _snd_ump_msg_stream_gen {
    pub data1: u16,
    pub _bitfield_align_1: [u8; 0],
    pub _bitfield_1: __BindgenBitfieldUnit<[u8; 2usize]>,
    pub data2: u32,
    pub data3: u32,
    pub data4: u32,
}
impl _snd_ump_msg_stream_gen {
    #[inline]
    pub fn status(&self) -> u16 {
        unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 10u8) as u16) }
    }
    #[inline]
    pub fn set_status(&mut self, val: u16) {
        unsafe {
            let val: u16 = ::core::mem::transmute(val);
            self._bitfield_1.set(0usize, 10u8, val as u64)
        }
    }
    #[inline]
    pub unsafe fn status_raw(this: *const Self) -> u16 {
        unsafe {
            ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(
                ::core::ptr::addr_of!((*this)._bitfield_1),
                0usize,
                10u8,
            ) as u16)
        }
    }
    #[inline]
    pub unsafe fn set_status_raw(this: *mut Self, val: u16) {
        unsafe {
            let val: u16 = ::core::mem::transmute(val);
            <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(
                ::core::ptr::addr_of_mut!((*this)._bitfield_1),
                0usize,
                10u8,
                val as u64,
            )
        }
    }
    #[inline]
    pub fn format(&self) -> u16 {
        unsafe { ::core::mem::transmute(self._bitfield_1.get(10usize, 2u8) as u16) }
    }
    #[inline]
    pub fn set_format(&mut self, val: u16) {
        unsafe {
            let val: u16 = ::core::mem::transmute(val);
            self._bitfield_1.set(10usize, 2u8, val as u64)
        }
    }
    #[inline]
    pub unsafe fn format_raw(this: *const Self) -> u16 {
        unsafe {
            ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(
                ::core::ptr::addr_of!((*this)._bitfield_1),
                10usize,
                2u8,
            ) as u16)
        }
    }
    #[inline]
    pub unsafe fn set_format_raw(this: *mut Self, val: u16) {
        unsafe {
            let val: u16 = ::core::mem::transmute(val);
            <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(
                ::core::ptr::addr_of_mut!((*this)._bitfield_1),
                10usize,
                2u8,
                val as u64,
            )
        }
    }
    #[inline]
    pub fn type_(&self) -> u16 {
        unsafe { ::core::mem::transmute(self._bitfield_1.get(12usize, 4u8) as u16) }
    }
    #[inline]
    pub fn set_type(&mut self, val: u16) {
        unsafe {
            let val: u16 = ::core::mem::transmute(val);
            self._bitfield_1.set(12usize, 4u8, val as u64)
        }
    }
    #[inline]
    pub unsafe fn type__raw(this: *const Self) -> u16 {
        unsafe {
            ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(
                ::core::ptr::addr_of!((*this)._bitfield_1),
                12usize,
                4u8,
            ) as u16)
        }
    }
    #[inline]
    pub unsafe fn set_type_raw(this: *mut Self, val: u16) {
        unsafe {
            let val: u16 = ::core::mem::transmute(val);
            <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(
                ::core::ptr::addr_of_mut!((*this)._bitfield_1),
                12usize,
                4u8,
                val as u64,
            )
        }
    }
    #[inline]
    pub fn new_bitfield_1(
        status: u16,
        format: u16,
        type_: u16,
    ) -> __BindgenBitfieldUnit<[u8; 2usize]> {
        let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 2usize]> = Default::default();
        __bindgen_bitfield_unit.set(0usize, 10u8, {
            let status: u16 = unsafe { ::core::mem::transmute(status) };
            status as u64
        });
        __bindgen_bitfield_unit.set(10usize, 2u8, {
            let format: u16 = unsafe { ::core::mem::transmute(format) };
            format as u64
        });
        __bindgen_bitfield_unit.set(12usize, 4u8, {
            let type_: u16 = unsafe { ::core::mem::transmute(type_) };
            type_ as u64
        });
        __bindgen_bitfield_unit
    }
}
pub type snd_ump_msg_stream_gen_t = _snd_ump_msg_stream_gen;
#[repr(C)]
#[derive(Copy, Clone)]
pub union _snd_ump_msg_stream {
    pub gen_: snd_ump_msg_stream_gen_t,
    pub hdr: snd_ump_msg_hdr_t,
    pub raw: [u32; 4usize],
}
pub type snd_ump_msg_stream_t = _snd_ump_msg_stream;
#[repr(C, packed)]
#[derive(Debug, Copy, Clone)]
pub struct _snd_ump_msg_flex_data_meta {
    pub status: u8,
    pub status_bank: u8,
    pub _bitfield_align_1: [u8; 0],
    pub _bitfield_1: __BindgenBitfieldUnit<[u8; 2usize]>,
    pub data: [u32; 3usize],
}
impl _snd_ump_msg_flex_data_meta {
    #[inline]
    pub fn channel(&self) -> u8 {
        unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 4u8) as u8) }
    }
    #[inline]
    pub fn set_channel(&mut self, val: u8) {
        unsafe {
            let val: u8 = ::core::mem::transmute(val);
            self._bitfield_1.set(0usize, 4u8, val as u64)
        }
    }
    #[inline]
    pub unsafe fn channel_raw(this: *const Self) -> u8 {
        unsafe {
            ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(
                ::core::ptr::addr_of!((*this)._bitfield_1),
                0usize,
                4u8,
            ) as u8)
        }
    }
    #[inline]
    pub unsafe fn set_channel_raw(this: *mut Self, val: u8) {
        unsafe {
            let val: u8 = ::core::mem::transmute(val);
            <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(
                ::core::ptr::addr_of_mut!((*this)._bitfield_1),
                0usize,
                4u8,
                val as u64,
            )
        }
    }
    #[inline]
    pub fn addrs(&self) -> u8 {
        unsafe { ::core::mem::transmute(self._bitfield_1.get(4usize, 2u8) as u8) }
    }
    #[inline]
    pub fn set_addrs(&mut self, val: u8) {
        unsafe {
            let val: u8 = ::core::mem::transmute(val);
            self._bitfield_1.set(4usize, 2u8, val as u64)
        }
    }
    #[inline]
    pub unsafe fn addrs_raw(this: *const Self) -> u8 {
        unsafe {
            ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(
                ::core::ptr::addr_of!((*this)._bitfield_1),
                4usize,
                2u8,
            ) as u8)
        }
    }
    #[inline]
    pub unsafe fn set_addrs_raw(this: *mut Self, val: u8) {
        unsafe {
            let val: u8 = ::core::mem::transmute(val);
            <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(
                ::core::ptr::addr_of_mut!((*this)._bitfield_1),
                4usize,
                2u8,
                val as u64,
            )
        }
    }
    #[inline]
    pub fn format(&self) -> u8 {
        unsafe { ::core::mem::transmute(self._bitfield_1.get(6usize, 2u8) as u8) }
    }
    #[inline]
    pub fn set_format(&mut self, val: u8) {
        unsafe {
            let val: u8 = ::core::mem::transmute(val);
            self._bitfield_1.set(6usize, 2u8, val as u64)
        }
    }
    #[inline]
    pub unsafe fn format_raw(this: *const Self) -> u8 {
        unsafe {
            ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(
                ::core::ptr::addr_of!((*this)._bitfield_1),
                6usize,
                2u8,
            ) as u8)
        }
    }
    #[inline]
    pub unsafe fn set_format_raw(this: *mut Self, val: u8) {
        unsafe {
            let val: u8 = ::core::mem::transmute(val);
            <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(
                ::core::ptr::addr_of_mut!((*this)._bitfield_1),
                6usize,
                2u8,
                val as u64,
            )
        }
    }
    #[inline]
    pub fn group(&self) -> u8 {
        unsafe { ::core::mem::transmute(self._bitfield_1.get(8usize, 4u8) as u8) }
    }
    #[inline]
    pub fn set_group(&mut self, val: u8) {
        unsafe {
            let val: u8 = ::core::mem::transmute(val);
            self._bitfield_1.set(8usize, 4u8, val as u64)
        }
    }
    #[inline]
    pub unsafe fn group_raw(this: *const Self) -> u8 {
        unsafe {
            ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(
                ::core::ptr::addr_of!((*this)._bitfield_1),
                8usize,
                4u8,
            ) as u8)
        }
    }
    #[inline]
    pub unsafe fn set_group_raw(this: *mut Self, val: u8) {
        unsafe {
            let val: u8 = ::core::mem::transmute(val);
            <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(
                ::core::ptr::addr_of_mut!((*this)._bitfield_1),
                8usize,
                4u8,
                val as u64,
            )
        }
    }
    #[inline]
    pub fn type_(&self) -> u8 {
        unsafe { ::core::mem::transmute(self._bitfield_1.get(12usize, 4u8) as u8) }
    }
    #[inline]
    pub fn set_type(&mut self, val: u8) {
        unsafe {
            let val: u8 = ::core::mem::transmute(val);
            self._bitfield_1.set(12usize, 4u8, val as u64)
        }
    }
    #[inline]
    pub unsafe fn type__raw(this: *const Self) -> u8 {
        unsafe {
            ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(
                ::core::ptr::addr_of!((*this)._bitfield_1),
                12usize,
                4u8,
            ) as u8)
        }
    }
    #[inline]
    pub unsafe fn set_type_raw(this: *mut Self, val: u8) {
        unsafe {
            let val: u8 = ::core::mem::transmute(val);
            <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(
                ::core::ptr::addr_of_mut!((*this)._bitfield_1),
                12usize,
                4u8,
                val as u64,
            )
        }
    }
    #[inline]
    pub fn new_bitfield_1(
        channel: u8,
        addrs: u8,
        format: u8,
        group: u8,
        type_: u8,
    ) -> __BindgenBitfieldUnit<[u8; 2usize]> {
        let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 2usize]> = Default::default();
        __bindgen_bitfield_unit.set(0usize, 4u8, {
            let channel: u8 = unsafe { ::core::mem::transmute(channel) };
            channel as u64
        });
        __bindgen_bitfield_unit.set(4usize, 2u8, {
            let addrs: u8 = unsafe { ::core::mem::transmute(addrs) };
            addrs as u64
        });
        __bindgen_bitfield_unit.set(6usize, 2u8, {
            let format: u8 = unsafe { ::core::mem::transmute(format) };
            format as u64
        });
        __bindgen_bitfield_unit.set(8usize, 4u8, {
            let group: u8 = unsafe { ::core::mem::transmute(group) };
            group as u64
        });
        __bindgen_bitfield_unit.set(12usize, 4u8, {
            let type_: u8 = unsafe { ::core::mem::transmute(type_) };
            type_ as u64
        });
        __bindgen_bitfield_unit
    }
}
pub type snd_ump_msg_flex_data_meta_t = _snd_ump_msg_flex_data_meta;
#[repr(C, packed)]
#[derive(Debug, Copy, Clone)]
pub struct _snd_ump_msg_set_tempo {
    pub status: u8,
    pub status_bank: u8,
    pub _bitfield_align_1: [u8; 0],
    pub _bitfield_1: __BindgenBitfieldUnit<[u8; 2usize]>,
    pub tempo: u32,
    pub reserved: [u32; 2usize],
}
impl _snd_ump_msg_set_tempo {
    #[inline]
    pub fn channel(&self) -> u8 {
        unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 4u8) as u8) }
    }
    #[inline]
    pub fn set_channel(&mut self, val: u8) {
        unsafe {
            let val: u8 = ::core::mem::transmute(val);
            self._bitfield_1.set(0usize, 4u8, val as u64)
        }
    }
    #[inline]
    pub unsafe fn channel_raw(this: *const Self) -> u8 {
        unsafe {
            ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(
                ::core::ptr::addr_of!((*this)._bitfield_1),
                0usize,
                4u8,
            ) as u8)
        }
    }
    #[inline]
    pub unsafe fn set_channel_raw(this: *mut Self, val: u8) {
        unsafe {
            let val: u8 = ::core::mem::transmute(val);
            <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(
                ::core::ptr::addr_of_mut!((*this)._bitfield_1),
                0usize,
                4u8,
                val as u64,
            )
        }
    }
    #[inline]
    pub fn addrs(&self) -> u8 {
        unsafe { ::core::mem::transmute(self._bitfield_1.get(4usize, 2u8) as u8) }
    }
    #[inline]
    pub fn set_addrs(&mut self, val: u8) {
        unsafe {
            let val: u8 = ::core::mem::transmute(val);
            self._bitfield_1.set(4usize, 2u8, val as u64)
        }
    }
    #[inline]
    pub unsafe fn addrs_raw(this: *const Self) -> u8 {
        unsafe {
            ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(
                ::core::ptr::addr_of!((*this)._bitfield_1),
                4usize,
                2u8,
            ) as u8)
        }
    }
    #[inline]
    pub unsafe fn set_addrs_raw(this: *mut Self, val: u8) {
        unsafe {
            let val: u8 = ::core::mem::transmute(val);
            <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(
                ::core::ptr::addr_of_mut!((*this)._bitfield_1),
                4usize,
                2u8,
                val as u64,
            )
        }
    }
    #[inline]
    pub fn format(&self) -> u8 {
        unsafe { ::core::mem::transmute(self._bitfield_1.get(6usize, 2u8) as u8) }
    }
    #[inline]
    pub fn set_format(&mut self, val: u8) {
        unsafe {
            let val: u8 = ::core::mem::transmute(val);
            self._bitfield_1.set(6usize, 2u8, val as u64)
        }
    }
    #[inline]
    pub unsafe fn format_raw(this: *const Self) -> u8 {
        unsafe {
            ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(
                ::core::ptr::addr_of!((*this)._bitfield_1),
                6usize,
                2u8,
            ) as u8)
        }
    }
    #[inline]
    pub unsafe fn set_format_raw(this: *mut Self, val: u8) {
        unsafe {
            let val: u8 = ::core::mem::transmute(val);
            <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(
                ::core::ptr::addr_of_mut!((*this)._bitfield_1),
                6usize,
                2u8,
                val as u64,
            )
        }
    }
    #[inline]
    pub fn group(&self) -> u8 {
        unsafe { ::core::mem::transmute(self._bitfield_1.get(8usize, 4u8) as u8) }
    }
    #[inline]
    pub fn set_group(&mut self, val: u8) {
        unsafe {
            let val: u8 = ::core::mem::transmute(val);
            self._bitfield_1.set(8usize, 4u8, val as u64)
        }
    }
    #[inline]
    pub unsafe fn group_raw(this: *const Self) -> u8 {
        unsafe {
            ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(
                ::core::ptr::addr_of!((*this)._bitfield_1),
                8usize,
                4u8,
            ) as u8)
        }
    }
    #[inline]
    pub unsafe fn set_group_raw(this: *mut Self, val: u8) {
        unsafe {
            let val: u8 = ::core::mem::transmute(val);
            <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(
                ::core::ptr::addr_of_mut!((*this)._bitfield_1),
                8usize,
                4u8,
                val as u64,
            )
        }
    }
    #[inline]
    pub fn type_(&self) -> u8 {
        unsafe { ::core::mem::transmute(self._bitfield_1.get(12usize, 4u8) as u8) }
    }
    #[inline]
    pub fn set_type(&mut self, val: u8) {
        unsafe {
            let val: u8 = ::core::mem::transmute(val);
            self._bitfield_1.set(12usize, 4u8, val as u64)
        }
    }
    #[inline]
    pub unsafe fn type__raw(this: *const Self) -> u8 {
        unsafe {
            ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(
                ::core::ptr::addr_of!((*this)._bitfield_1),
                12usize,
                4u8,
            ) as u8)
        }
    }
    #[inline]
    pub unsafe fn set_type_raw(this: *mut Self, val: u8) {
        unsafe {
            let val: u8 = ::core::mem::transmute(val);
            <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(
                ::core::ptr::addr_of_mut!((*this)._bitfield_1),
                12usize,
                4u8,
                val as u64,
            )
        }
    }
    #[inline]
    pub fn new_bitfield_1(
        channel: u8,
        addrs: u8,
        format: u8,
        group: u8,
        type_: u8,
    ) -> __BindgenBitfieldUnit<[u8; 2usize]> {
        let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 2usize]> = Default::default();
        __bindgen_bitfield_unit.set(0usize, 4u8, {
            let channel: u8 = unsafe { ::core::mem::transmute(channel) };
            channel as u64
        });
        __bindgen_bitfield_unit.set(4usize, 2u8, {
            let addrs: u8 = unsafe { ::core::mem::transmute(addrs) };
            addrs as u64
        });
        __bindgen_bitfield_unit.set(6usize, 2u8, {
            let format: u8 = unsafe { ::core::mem::transmute(format) };
            format as u64
        });
        __bindgen_bitfield_unit.set(8usize, 4u8, {
            let group: u8 = unsafe { ::core::mem::transmute(group) };
            group as u64
        });
        __bindgen_bitfield_unit.set(12usize, 4u8, {
            let type_: u8 = unsafe { ::core::mem::transmute(type_) };
            type_ as u64
        });
        __bindgen_bitfield_unit
    }
}
pub type snd_ump_msg_set_tempo_t = _snd_ump_msg_set_tempo;
#[repr(C, packed)]
#[derive(Debug, Copy, Clone)]
pub struct _snd_ump_msg_set_time_sig {
    pub status: u8,
    pub status_bank: u8,
    pub _bitfield_align_1: [u8; 0],
    pub _bitfield_1: __BindgenBitfieldUnit<[u8; 2usize]>,
    pub reserved1: u8,
    pub num_notes: u8,
    pub denominator: u8,
    pub numerator: u8,
    pub reserved: [u32; 2usize],
}
impl _snd_ump_msg_set_time_sig {
    #[inline]
    pub fn channel(&self) -> u8 {
        unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 4u8) as u8) }
    }
    #[inline]
    pub fn set_channel(&mut self, val: u8) {
        unsafe {
            let val: u8 = ::core::mem::transmute(val);
            self._bitfield_1.set(0usize, 4u8, val as u64)
        }
    }
    #[inline]
    pub unsafe fn channel_raw(this: *const Self) -> u8 {
        unsafe {
            ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(
                ::core::ptr::addr_of!((*this)._bitfield_1),
                0usize,
                4u8,
            ) as u8)
        }
    }
    #[inline]
    pub unsafe fn set_channel_raw(this: *mut Self, val: u8) {
        unsafe {
            let val: u8 = ::core::mem::transmute(val);
            <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(
                ::core::ptr::addr_of_mut!((*this)._bitfield_1),
                0usize,
                4u8,
                val as u64,
            )
        }
    }
    #[inline]
    pub fn addrs(&self) -> u8 {
        unsafe { ::core::mem::transmute(self._bitfield_1.get(4usize, 2u8) as u8) }
    }
    #[inline]
    pub fn set_addrs(&mut self, val: u8) {
        unsafe {
            let val: u8 = ::core::mem::transmute(val);
            self._bitfield_1.set(4usize, 2u8, val as u64)
        }
    }
    #[inline]
    pub unsafe fn addrs_raw(this: *const Self) -> u8 {
        unsafe {
            ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(
                ::core::ptr::addr_of!((*this)._bitfield_1),
                4usize,
                2u8,
            ) as u8)
        }
    }
    #[inline]
    pub unsafe fn set_addrs_raw(this: *mut Self, val: u8) {
        unsafe {
            let val: u8 = ::core::mem::transmute(val);
            <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(
                ::core::ptr::addr_of_mut!((*this)._bitfield_1),
                4usize,
                2u8,
                val as u64,
            )
        }
    }
    #[inline]
    pub fn format(&self) -> u8 {
        unsafe { ::core::mem::transmute(self._bitfield_1.get(6usize, 2u8) as u8) }
    }
    #[inline]
    pub fn set_format(&mut self, val: u8) {
        unsafe {
            let val: u8 = ::core::mem::transmute(val);
            self._bitfield_1.set(6usize, 2u8, val as u64)
        }
    }
    #[inline]
    pub unsafe fn format_raw(this: *const Self) -> u8 {
        unsafe {
            ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(
                ::core::ptr::addr_of!((*this)._bitfield_1),
                6usize,
                2u8,
            ) as u8)
        }
    }
    #[inline]
    pub unsafe fn set_format_raw(this: *mut Self, val: u8) {
        unsafe {
            let val: u8 = ::core::mem::transmute(val);
            <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(
                ::core::ptr::addr_of_mut!((*this)._bitfield_1),
                6usize,
                2u8,
                val as u64,
            )
        }
    }
    #[inline]
    pub fn group(&self) -> u8 {
        unsafe { ::core::mem::transmute(self._bitfield_1.get(8usize, 4u8) as u8) }
    }
    #[inline]
    pub fn set_group(&mut self, val: u8) {
        unsafe {
            let val: u8 = ::core::mem::transmute(val);
            self._bitfield_1.set(8usize, 4u8, val as u64)
        }
    }
    #[inline]
    pub unsafe fn group_raw(this: *const Self) -> u8 {
        unsafe {
            ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(
                ::core::ptr::addr_of!((*this)._bitfield_1),
                8usize,
                4u8,
            ) as u8)
        }
    }
    #[inline]
    pub unsafe fn set_group_raw(this: *mut Self, val: u8) {
        unsafe {
            let val: u8 = ::core::mem::transmute(val);
            <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(
                ::core::ptr::addr_of_mut!((*this)._bitfield_1),
                8usize,
                4u8,
                val as u64,
            )
        }
    }
    #[inline]
    pub fn type_(&self) -> u8 {
        unsafe { ::core::mem::transmute(self._bitfield_1.get(12usize, 4u8) as u8) }
    }
    #[inline]
    pub fn set_type(&mut self, val: u8) {
        unsafe {
            let val: u8 = ::core::mem::transmute(val);
            self._bitfield_1.set(12usize, 4u8, val as u64)
        }
    }
    #[inline]
    pub unsafe fn type__raw(this: *const Self) -> u8 {
        unsafe {
            ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(
                ::core::ptr::addr_of!((*this)._bitfield_1),
                12usize,
                4u8,
            ) as u8)
        }
    }
    #[inline]
    pub unsafe fn set_type_raw(this: *mut Self, val: u8) {
        unsafe {
            let val: u8 = ::core::mem::transmute(val);
            <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(
                ::core::ptr::addr_of_mut!((*this)._bitfield_1),
                12usize,
                4u8,
                val as u64,
            )
        }
    }
    #[inline]
    pub fn new_bitfield_1(
        channel: u8,
        addrs: u8,
        format: u8,
        group: u8,
        type_: u8,
    ) -> __BindgenBitfieldUnit<[u8; 2usize]> {
        let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 2usize]> = Default::default();
        __bindgen_bitfield_unit.set(0usize, 4u8, {
            let channel: u8 = unsafe { ::core::mem::transmute(channel) };
            channel as u64
        });
        __bindgen_bitfield_unit.set(4usize, 2u8, {
            let addrs: u8 = unsafe { ::core::mem::transmute(addrs) };
            addrs as u64
        });
        __bindgen_bitfield_unit.set(6usize, 2u8, {
            let format: u8 = unsafe { ::core::mem::transmute(format) };
            format as u64
        });
        __bindgen_bitfield_unit.set(8usize, 4u8, {
            let group: u8 = unsafe { ::core::mem::transmute(group) };
            group as u64
        });
        __bindgen_bitfield_unit.set(12usize, 4u8, {
            let type_: u8 = unsafe { ::core::mem::transmute(type_) };
            type_ as u64
        });
        __bindgen_bitfield_unit
    }
}
pub type snd_ump_msg_set_time_sig_t = _snd_ump_msg_set_time_sig;
#[repr(C, packed)]
#[derive(Debug, Copy, Clone)]
pub struct _snd_ump_msg_set_metronome {
    pub status: u8,
    pub status_bank: u8,
    pub _bitfield_align_1: [u8; 0],
    pub _bitfield_1: __BindgenBitfieldUnit<[u8; 2usize]>,
    pub bar_accent_3: u8,
    pub bar_accent_2: u8,
    pub bar_accent_1: u8,
    pub clocks_primary: u8,
    pub reserved1: u16,
    pub subdivision_2: u8,
    pub subdivision_1: u8,
    pub reserved2: u32,
}
impl _snd_ump_msg_set_metronome {
    #[inline]
    pub fn channel(&self) -> u8 {
        unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 4u8) as u8) }
    }
    #[inline]
    pub fn set_channel(&mut self, val: u8) {
        unsafe {
            let val: u8 = ::core::mem::transmute(val);
            self._bitfield_1.set(0usize, 4u8, val as u64)
        }
    }
    #[inline]
    pub unsafe fn channel_raw(this: *const Self) -> u8 {
        unsafe {
            ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(
                ::core::ptr::addr_of!((*this)._bitfield_1),
                0usize,
                4u8,
            ) as u8)
        }
    }
    #[inline]
    pub unsafe fn set_channel_raw(this: *mut Self, val: u8) {
        unsafe {
            let val: u8 = ::core::mem::transmute(val);
            <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(
                ::core::ptr::addr_of_mut!((*this)._bitfield_1),
                0usize,
                4u8,
                val as u64,
            )
        }
    }
    #[inline]
    pub fn addrs(&self) -> u8 {
        unsafe { ::core::mem::transmute(self._bitfield_1.get(4usize, 2u8) as u8) }
    }
    #[inline]
    pub fn set_addrs(&mut self, val: u8) {
        unsafe {
            let val: u8 = ::core::mem::transmute(val);
            self._bitfield_1.set(4usize, 2u8, val as u64)
        }
    }
    #[inline]
    pub unsafe fn addrs_raw(this: *const Self) -> u8 {
        unsafe {
            ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(
                ::core::ptr::addr_of!((*this)._bitfield_1),
                4usize,
                2u8,
            ) as u8)
        }
    }
    #[inline]
    pub unsafe fn set_addrs_raw(this: *mut Self, val: u8) {
        unsafe {
            let val: u8 = ::core::mem::transmute(val);
            <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(
                ::core::ptr::addr_of_mut!((*this)._bitfield_1),
                4usize,
                2u8,
                val as u64,
            )
        }
    }
    #[inline]
    pub fn format(&self) -> u8 {
        unsafe { ::core::mem::transmute(self._bitfield_1.get(6usize, 2u8) as u8) }
    }
    #[inline]
    pub fn set_format(&mut self, val: u8) {
        unsafe {
            let val: u8 = ::core::mem::transmute(val);
            self._bitfield_1.set(6usize, 2u8, val as u64)
        }
    }
    #[inline]
    pub unsafe fn format_raw(this: *const Self) -> u8 {
        unsafe {
            ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(
                ::core::ptr::addr_of!((*this)._bitfield_1),
                6usize,
                2u8,
            ) as u8)
        }
    }
    #[inline]
    pub unsafe fn set_format_raw(this: *mut Self, val: u8) {
        unsafe {
            let val: u8 = ::core::mem::transmute(val);
            <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(
                ::core::ptr::addr_of_mut!((*this)._bitfield_1),
                6usize,
                2u8,
                val as u64,
            )
        }
    }
    #[inline]
    pub fn group(&self) -> u8 {
        unsafe { ::core::mem::transmute(self._bitfield_1.get(8usize, 4u8) as u8) }
    }
    #[inline]
    pub fn set_group(&mut self, val: u8) {
        unsafe {
            let val: u8 = ::core::mem::transmute(val);
            self._bitfield_1.set(8usize, 4u8, val as u64)
        }
    }
    #[inline]
    pub unsafe fn group_raw(this: *const Self) -> u8 {
        unsafe {
            ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(
                ::core::ptr::addr_of!((*this)._bitfield_1),
                8usize,
                4u8,
            ) as u8)
        }
    }
    #[inline]
    pub unsafe fn set_group_raw(this: *mut Self, val: u8) {
        unsafe {
            let val: u8 = ::core::mem::transmute(val);
            <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(
                ::core::ptr::addr_of_mut!((*this)._bitfield_1),
                8usize,
                4u8,
                val as u64,
            )
        }
    }
    #[inline]
    pub fn type_(&self) -> u8 {
        unsafe { ::core::mem::transmute(self._bitfield_1.get(12usize, 4u8) as u8) }
    }
    #[inline]
    pub fn set_type(&mut self, val: u8) {
        unsafe {
            let val: u8 = ::core::mem::transmute(val);
            self._bitfield_1.set(12usize, 4u8, val as u64)
        }
    }
    #[inline]
    pub unsafe fn type__raw(this: *const Self) -> u8 {
        unsafe {
            ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(
                ::core::ptr::addr_of!((*this)._bitfield_1),
                12usize,
                4u8,
            ) as u8)
        }
    }
    #[inline]
    pub unsafe fn set_type_raw(this: *mut Self, val: u8) {
        unsafe {
            let val: u8 = ::core::mem::transmute(val);
            <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(
                ::core::ptr::addr_of_mut!((*this)._bitfield_1),
                12usize,
                4u8,
                val as u64,
            )
        }
    }
    #[inline]
    pub fn new_bitfield_1(
        channel: u8,
        addrs: u8,
        format: u8,
        group: u8,
        type_: u8,
    ) -> __BindgenBitfieldUnit<[u8; 2usize]> {
        let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 2usize]> = Default::default();
        __bindgen_bitfield_unit.set(0usize, 4u8, {
            let channel: u8 = unsafe { ::core::mem::transmute(channel) };
            channel as u64
        });
        __bindgen_bitfield_unit.set(4usize, 2u8, {
            let addrs: u8 = unsafe { ::core::mem::transmute(addrs) };
            addrs as u64
        });
        __bindgen_bitfield_unit.set(6usize, 2u8, {
            let format: u8 = unsafe { ::core::mem::transmute(format) };
            format as u64
        });
        __bindgen_bitfield_unit.set(8usize, 4u8, {
            let group: u8 = unsafe { ::core::mem::transmute(group) };
            group as u64
        });
        __bindgen_bitfield_unit.set(12usize, 4u8, {
            let type_: u8 = unsafe { ::core::mem::transmute(type_) };
            type_ as u64
        });
        __bindgen_bitfield_unit
    }
}
pub type snd_ump_msg_set_metronome_t = _snd_ump_msg_set_metronome;
#[repr(C, packed)]
#[derive(Debug, Copy, Clone)]
pub struct _snd_ump_msg_set_key_sig {
    pub status: u8,
    pub status_bank: u8,
    pub _bitfield_align_1: [u8; 0],
    pub _bitfield_1: __BindgenBitfieldUnit<[u8; 2usize]>,
    pub reserved1: [u8; 3usize],
    pub _bitfield_align_2: [u8; 0],
    pub _bitfield_2: __BindgenBitfieldUnit<[u8; 1usize]>,
    pub reserved2: [u32; 2usize],
}
impl _snd_ump_msg_set_key_sig {
    #[inline]
    pub fn channel(&self) -> u8 {
        unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 4u8) as u8) }
    }
    #[inline]
    pub fn set_channel(&mut self, val: u8) {
        unsafe {
            let val: u8 = ::core::mem::transmute(val);
            self._bitfield_1.set(0usize, 4u8, val as u64)
        }
    }
    #[inline]
    pub unsafe fn channel_raw(this: *const Self) -> u8 {
        unsafe {
            ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(
                ::core::ptr::addr_of!((*this)._bitfield_1),
                0usize,
                4u8,
            ) as u8)
        }
    }
    #[inline]
    pub unsafe fn set_channel_raw(this: *mut Self, val: u8) {
        unsafe {
            let val: u8 = ::core::mem::transmute(val);
            <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(
                ::core::ptr::addr_of_mut!((*this)._bitfield_1),
                0usize,
                4u8,
                val as u64,
            )
        }
    }
    #[inline]
    pub fn addrs(&self) -> u8 {
        unsafe { ::core::mem::transmute(self._bitfield_1.get(4usize, 2u8) as u8) }
    }
    #[inline]
    pub fn set_addrs(&mut self, val: u8) {
        unsafe {
            let val: u8 = ::core::mem::transmute(val);
            self._bitfield_1.set(4usize, 2u8, val as u64)
        }
    }
    #[inline]
    pub unsafe fn addrs_raw(this: *const Self) -> u8 {
        unsafe {
            ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(
                ::core::ptr::addr_of!((*this)._bitfield_1),
                4usize,
                2u8,
            ) as u8)
        }
    }
    #[inline]
    pub unsafe fn set_addrs_raw(this: *mut Self, val: u8) {
        unsafe {
            let val: u8 = ::core::mem::transmute(val);
            <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(
                ::core::ptr::addr_of_mut!((*this)._bitfield_1),
                4usize,
                2u8,
                val as u64,
            )
        }
    }
    #[inline]
    pub fn format(&self) -> u8 {
        unsafe { ::core::mem::transmute(self._bitfield_1.get(6usize, 2u8) as u8) }
    }
    #[inline]
    pub fn set_format(&mut self, val: u8) {
        unsafe {
            let val: u8 = ::core::mem::transmute(val);
            self._bitfield_1.set(6usize, 2u8, val as u64)
        }
    }
    #[inline]
    pub unsafe fn format_raw(this: *const Self) -> u8 {
        unsafe {
            ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(
                ::core::ptr::addr_of!((*this)._bitfield_1),
                6usize,
                2u8,
            ) as u8)
        }
    }
    #[inline]
    pub unsafe fn set_format_raw(this: *mut Self, val: u8) {
        unsafe {
            let val: u8 = ::core::mem::transmute(val);
            <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(
                ::core::ptr::addr_of_mut!((*this)._bitfield_1),
                6usize,
                2u8,
                val as u64,
            )
        }
    }
    #[inline]
    pub fn group(&self) -> u8 {
        unsafe { ::core::mem::transmute(self._bitfield_1.get(8usize, 4u8) as u8) }
    }
    #[inline]
    pub fn set_group(&mut self, val: u8) {
        unsafe {
            let val: u8 = ::core::mem::transmute(val);
            self._bitfield_1.set(8usize, 4u8, val as u64)
        }
    }
    #[inline]
    pub unsafe fn group_raw(this: *const Self) -> u8 {
        unsafe {
            ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(
                ::core::ptr::addr_of!((*this)._bitfield_1),
                8usize,
                4u8,
            ) as u8)
        }
    }
    #[inline]
    pub unsafe fn set_group_raw(this: *mut Self, val: u8) {
        unsafe {
            let val: u8 = ::core::mem::transmute(val);
            <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(
                ::core::ptr::addr_of_mut!((*this)._bitfield_1),
                8usize,
                4u8,
                val as u64,
            )
        }
    }
    #[inline]
    pub fn type_(&self) -> u8 {
        unsafe { ::core::mem::transmute(self._bitfield_1.get(12usize, 4u8) as u8) }
    }
    #[inline]
    pub fn set_type(&mut self, val: u8) {
        unsafe {
            let val: u8 = ::core::mem::transmute(val);
            self._bitfield_1.set(12usize, 4u8, val as u64)
        }
    }
    #[inline]
    pub unsafe fn type__raw(this: *const Self) -> u8 {
        unsafe {
            ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(
                ::core::ptr::addr_of!((*this)._bitfield_1),
                12usize,
                4u8,
            ) as u8)
        }
    }
    #[inline]
    pub unsafe fn set_type_raw(this: *mut Self, val: u8) {
        unsafe {
            let val: u8 = ::core::mem::transmute(val);
            <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(
                ::core::ptr::addr_of_mut!((*this)._bitfield_1),
                12usize,
                4u8,
                val as u64,
            )
        }
    }
    #[inline]
    pub fn new_bitfield_1(
        channel: u8,
        addrs: u8,
        format: u8,
        group: u8,
        type_: u8,
    ) -> __BindgenBitfieldUnit<[u8; 2usize]> {
        let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 2usize]> = Default::default();
        __bindgen_bitfield_unit.set(0usize, 4u8, {
            let channel: u8 = unsafe { ::core::mem::transmute(channel) };
            channel as u64
        });
        __bindgen_bitfield_unit.set(4usize, 2u8, {
            let addrs: u8 = unsafe { ::core::mem::transmute(addrs) };
            addrs as u64
        });
        __bindgen_bitfield_unit.set(6usize, 2u8, {
            let format: u8 = unsafe { ::core::mem::transmute(format) };
            format as u64
        });
        __bindgen_bitfield_unit.set(8usize, 4u8, {
            let group: u8 = unsafe { ::core::mem::transmute(group) };
            group as u64
        });
        __bindgen_bitfield_unit.set(12usize, 4u8, {
            let type_: u8 = unsafe { ::core::mem::transmute(type_) };
            type_ as u64
        });
        __bindgen_bitfield_unit
    }
    #[inline]
    pub fn tonic_note(&self) -> u8 {
        unsafe { ::core::mem::transmute(self._bitfield_2.get(0usize, 4u8) as u8) }
    }
    #[inline]
    pub fn set_tonic_note(&mut self, val: u8) {
        unsafe {
            let val: u8 = ::core::mem::transmute(val);
            self._bitfield_2.set(0usize, 4u8, val as u64)
        }
    }
    #[inline]
    pub unsafe fn tonic_note_raw(this: *const Self) -> u8 {
        unsafe {
            ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get(
                ::core::ptr::addr_of!((*this)._bitfield_2),
                0usize,
                4u8,
            ) as u8)
        }
    }
    #[inline]
    pub unsafe fn set_tonic_note_raw(this: *mut Self, val: u8) {
        unsafe {
            let val: u8 = ::core::mem::transmute(val);
            <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set(
                ::core::ptr::addr_of_mut!((*this)._bitfield_2),
                0usize,
                4u8,
                val as u64,
            )
        }
    }
    #[inline]
    pub fn sharps_flats(&self) -> u8 {
        unsafe { ::core::mem::transmute(self._bitfield_2.get(4usize, 4u8) as u8) }
    }
    #[inline]
    pub fn set_sharps_flats(&mut self, val: u8) {
        unsafe {
            let val: u8 = ::core::mem::transmute(val);
            self._bitfield_2.set(4usize, 4u8, val as u64)
        }
    }
    #[inline]
    pub unsafe fn sharps_flats_raw(this: *const Self) -> u8 {
        unsafe {
            ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get(
                ::core::ptr::addr_of!((*this)._bitfield_2),
                4usize,
                4u8,
            ) as u8)
        }
    }
    #[inline]
    pub unsafe fn set_sharps_flats_raw(this: *mut Self, val: u8) {
        unsafe {
            let val: u8 = ::core::mem::transmute(val);
            <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set(
                ::core::ptr::addr_of_mut!((*this)._bitfield_2),
                4usize,
                4u8,
                val as u64,
            )
        }
    }
    #[inline]
    pub fn new_bitfield_2(tonic_note: u8, sharps_flats: u8) -> __BindgenBitfieldUnit<[u8; 1usize]> {
        let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 1usize]> = Default::default();
        __bindgen_bitfield_unit.set(0usize, 4u8, {
            let tonic_note: u8 = unsafe { ::core::mem::transmute(tonic_note) };
            tonic_note as u64
        });
        __bindgen_bitfield_unit.set(4usize, 4u8, {
            let sharps_flats: u8 = unsafe { ::core::mem::transmute(sharps_flats) };
            sharps_flats as u64
        });
        __bindgen_bitfield_unit
    }
}
pub type snd_ump_msg_set_key_sig_t = _snd_ump_msg_set_key_sig;
#[repr(C, packed)]
#[derive(Debug, Copy, Clone)]
pub struct _snd_ump_msg_set_chord_name {
    pub status: u8,
    pub status_bank: u8,
    pub _bitfield_align_1: [u8; 0],
    pub _bitfield_1: __BindgenBitfieldUnit<[u8; 4usize]>,
    pub chord_type: u8,
    pub _bitfield_align_2: [u8; 0],
    pub _bitfield_2: __BindgenBitfieldUnit<[u8; 1usize]>,
    pub reserved: u16,
    pub _bitfield_align_3: [u8; 0],
    pub _bitfield_3: __BindgenBitfieldUnit<[u8; 4usize]>,
    pub bass_type: u8,
    pub _bitfield_align_4: [u8; 0],
    pub _bitfield_4: __BindgenBitfieldUnit<[u8; 1usize]>,
}
impl _snd_ump_msg_set_chord_name {
    #[inline]
    pub fn channel(&self) -> u8 {
        unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 4u8) as u8) }
    }
    #[inline]
    pub fn set_channel(&mut self, val: u8) {
        unsafe {
            let val: u8 = ::core::mem::transmute(val);
            self._bitfield_1.set(0usize, 4u8, val as u64)
        }
    }
    #[inline]
    pub unsafe fn channel_raw(this: *const Self) -> u8 {
        unsafe {
            ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(
                ::core::ptr::addr_of!((*this)._bitfield_1),
                0usize,
                4u8,
            ) as u8)
        }
    }
    #[inline]
    pub unsafe fn set_channel_raw(this: *mut Self, val: u8) {
        unsafe {
            let val: u8 = ::core::mem::transmute(val);
            <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(
                ::core::ptr::addr_of_mut!((*this)._bitfield_1),
                0usize,
                4u8,
                val as u64,
            )
        }
    }
    #[inline]
    pub fn addrs(&self) -> u8 {
        unsafe { ::core::mem::transmute(self._bitfield_1.get(4usize, 2u8) as u8) }
    }
    #[inline]
    pub fn set_addrs(&mut self, val: u8) {
        unsafe {
            let val: u8 = ::core::mem::transmute(val);
            self._bitfield_1.set(4usize, 2u8, val as u64)
        }
    }
    #[inline]
    pub unsafe fn addrs_raw(this: *const Self) -> u8 {
        unsafe {
            ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(
                ::core::ptr::addr_of!((*this)._bitfield_1),
                4usize,
                2u8,
            ) as u8)
        }
    }
    #[inline]
    pub unsafe fn set_addrs_raw(this: *mut Self, val: u8) {
        unsafe {
            let val: u8 = ::core::mem::transmute(val);
            <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(
                ::core::ptr::addr_of_mut!((*this)._bitfield_1),
                4usize,
                2u8,
                val as u64,
            )
        }
    }
    #[inline]
    pub fn format(&self) -> u8 {
        unsafe { ::core::mem::transmute(self._bitfield_1.get(6usize, 2u8) as u8) }
    }
    #[inline]
    pub fn set_format(&mut self, val: u8) {
        unsafe {
            let val: u8 = ::core::mem::transmute(val);
            self._bitfield_1.set(6usize, 2u8, val as u64)
        }
    }
    #[inline]
    pub unsafe fn format_raw(this: *const Self) -> u8 {
        unsafe {
            ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(
                ::core::ptr::addr_of!((*this)._bitfield_1),
                6usize,
                2u8,
            ) as u8)
        }
    }
    #[inline]
    pub unsafe fn set_format_raw(this: *mut Self, val: u8) {
        unsafe {
            let val: u8 = ::core::mem::transmute(val);
            <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(
                ::core::ptr::addr_of_mut!((*this)._bitfield_1),
                6usize,
                2u8,
                val as u64,
            )
        }
    }
    #[inline]
    pub fn group(&self) -> u8 {
        unsafe { ::core::mem::transmute(self._bitfield_1.get(8usize, 4u8) as u8) }
    }
    #[inline]
    pub fn set_group(&mut self, val: u8) {
        unsafe {
            let val: u8 = ::core::mem::transmute(val);
            self._bitfield_1.set(8usize, 4u8, val as u64)
        }
    }
    #[inline]
    pub unsafe fn group_raw(this: *const Self) -> u8 {
        unsafe {
            ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(
                ::core::ptr::addr_of!((*this)._bitfield_1),
                8usize,
                4u8,
            ) as u8)
        }
    }
    #[inline]
    pub unsafe fn set_group_raw(this: *mut Self, val: u8) {
        unsafe {
            let val: u8 = ::core::mem::transmute(val);
            <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(
                ::core::ptr::addr_of_mut!((*this)._bitfield_1),
                8usize,
                4u8,
                val as u64,
            )
        }
    }
    #[inline]
    pub fn type_(&self) -> u8 {
        unsafe { ::core::mem::transmute(self._bitfield_1.get(12usize, 4u8) as u8) }
    }
    #[inline]
    pub fn set_type(&mut self, val: u8) {
        unsafe {
            let val: u8 = ::core::mem::transmute(val);
            self._bitfield_1.set(12usize, 4u8, val as u64)
        }
    }
    #[inline]
    pub unsafe fn type__raw(this: *const Self) -> u8 {
        unsafe {
            ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(
                ::core::ptr::addr_of!((*this)._bitfield_1),
                12usize,
                4u8,
            ) as u8)
        }
    }
    #[inline]
    pub unsafe fn set_type_raw(this: *mut Self, val: u8) {
        unsafe {
            let val: u8 = ::core::mem::transmute(val);
            <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(
                ::core::ptr::addr_of_mut!((*this)._bitfield_1),
                12usize,
                4u8,
                val as u64,
            )
        }
    }
    #[inline]
    pub fn alter2_degree(&self) -> u8 {
        unsafe { ::core::mem::transmute(self._bitfield_1.get(16usize, 4u8) as u8) }
    }
    #[inline]
    pub fn set_alter2_degree(&mut self, val: u8) {
        unsafe {
            let val: u8 = ::core::mem::transmute(val);
            self._bitfield_1.set(16usize, 4u8, val as u64)
        }
    }
    #[inline]
    pub unsafe fn alter2_degree_raw(this: *const Self) -> u8 {
        unsafe {
            ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(
                ::core::ptr::addr_of!((*this)._bitfield_1),
                16usize,
                4u8,
            ) as u8)
        }
    }
    #[inline]
    pub unsafe fn set_alter2_degree_raw(this: *mut Self, val: u8) {
        unsafe {
            let val: u8 = ::core::mem::transmute(val);
            <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(
                ::core::ptr::addr_of_mut!((*this)._bitfield_1),
                16usize,
                4u8,
                val as u64,
            )
        }
    }
    #[inline]
    pub fn alter2_type(&self) -> u8 {
        unsafe { ::core::mem::transmute(self._bitfield_1.get(20usize, 4u8) as u8) }
    }
    #[inline]
    pub fn set_alter2_type(&mut self, val: u8) {
        unsafe {
            let val: u8 = ::core::mem::transmute(val);
            self._bitfield_1.set(20usize, 4u8, val as u64)
        }
    }
    #[inline]
    pub unsafe fn alter2_type_raw(this: *const Self) -> u8 {
        unsafe {
            ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(
                ::core::ptr::addr_of!((*this)._bitfield_1),
                20usize,
                4u8,
            ) as u8)
        }
    }
    #[inline]
    pub unsafe fn set_alter2_type_raw(this: *mut Self, val: u8) {
        unsafe {
            let val: u8 = ::core::mem::transmute(val);
            <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(
                ::core::ptr::addr_of_mut!((*this)._bitfield_1),
                20usize,
                4u8,
                val as u64,
            )
        }
    }
    #[inline]
    pub fn alter1_degree(&self) -> u8 {
        unsafe { ::core::mem::transmute(self._bitfield_1.get(24usize, 4u8) as u8) }
    }
    #[inline]
    pub fn set_alter1_degree(&mut self, val: u8) {
        unsafe {
            let val: u8 = ::core::mem::transmute(val);
            self._bitfield_1.set(24usize, 4u8, val as u64)
        }
    }
    #[inline]
    pub unsafe fn alter1_degree_raw(this: *const Self) -> u8 {
        unsafe {
            ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(
                ::core::ptr::addr_of!((*this)._bitfield_1),
                24usize,
                4u8,
            ) as u8)
        }
    }
    #[inline]
    pub unsafe fn set_alter1_degree_raw(this: *mut Self, val: u8) {
        unsafe {
            let val: u8 = ::core::mem::transmute(val);
            <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(
                ::core::ptr::addr_of_mut!((*this)._bitfield_1),
                24usize,
                4u8,
                val as u64,
            )
        }
    }
    #[inline]
    pub fn alter1_type(&self) -> u8 {
        unsafe { ::core::mem::transmute(self._bitfield_1.get(28usize, 4u8) as u8) }
    }
    #[inline]
    pub fn set_alter1_type(&mut self, val: u8) {
        unsafe {
            let val: u8 = ::core::mem::transmute(val);
            self._bitfield_1.set(28usize, 4u8, val as u64)
        }
    }
    #[inline]
    pub unsafe fn alter1_type_raw(this: *const Self) -> u8 {
        unsafe {
            ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(
                ::core::ptr::addr_of!((*this)._bitfield_1),
                28usize,
                4u8,
            ) as u8)
        }
    }
    #[inline]
    pub unsafe fn set_alter1_type_raw(this: *mut Self, val: u8) {
        unsafe {
            let val: u8 = ::core::mem::transmute(val);
            <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(
                ::core::ptr::addr_of_mut!((*this)._bitfield_1),
                28usize,
                4u8,
                val as u64,
            )
        }
    }
    #[inline]
    pub fn new_bitfield_1(
        channel: u8,
        addrs: u8,
        format: u8,
        group: u8,
        type_: u8,
        alter2_degree: u8,
        alter2_type: u8,
        alter1_degree: u8,
        alter1_type: u8,
    ) -> __BindgenBitfieldUnit<[u8; 4usize]> {
        let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 4usize]> = Default::default();
        __bindgen_bitfield_unit.set(0usize, 4u8, {
            let channel: u8 = unsafe { ::core::mem::transmute(channel) };
            channel as u64
        });
        __bindgen_bitfield_unit.set(4usize, 2u8, {
            let addrs: u8 = unsafe { ::core::mem::transmute(addrs) };
            addrs as u64
        });
        __bindgen_bitfield_unit.set(6usize, 2u8, {
            let format: u8 = unsafe { ::core::mem::transmute(format) };
            format as u64
        });
        __bindgen_bitfield_unit.set(8usize, 4u8, {
            let group: u8 = unsafe { ::core::mem::transmute(group) };
            group as u64
        });
        __bindgen_bitfield_unit.set(12usize, 4u8, {
            let type_: u8 = unsafe { ::core::mem::transmute(type_) };
            type_ as u64
        });
        __bindgen_bitfield_unit.set(16usize, 4u8, {
            let alter2_degree: u8 = unsafe { ::core::mem::transmute(alter2_degree) };
            alter2_degree as u64
        });
        __bindgen_bitfield_unit.set(20usize, 4u8, {
            let alter2_type: u8 = unsafe { ::core::mem::transmute(alter2_type) };
            alter2_type as u64
        });
        __bindgen_bitfield_unit.set(24usize, 4u8, {
            let alter1_degree: u8 = unsafe { ::core::mem::transmute(alter1_degree) };
            alter1_degree as u64
        });
        __bindgen_bitfield_unit.set(28usize, 4u8, {
            let alter1_type: u8 = unsafe { ::core::mem::transmute(alter1_type) };
            alter1_type as u64
        });
        __bindgen_bitfield_unit
    }
    #[inline]
    pub fn chord_tonic(&self) -> u8 {
        unsafe { ::core::mem::transmute(self._bitfield_2.get(0usize, 4u8) as u8) }
    }
    #[inline]
    pub fn set_chord_tonic(&mut self, val: u8) {
        unsafe {
            let val: u8 = ::core::mem::transmute(val);
            self._bitfield_2.set(0usize, 4u8, val as u64)
        }
    }
    #[inline]
    pub unsafe fn chord_tonic_raw(this: *const Self) -> u8 {
        unsafe {
            ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get(
                ::core::ptr::addr_of!((*this)._bitfield_2),
                0usize,
                4u8,
            ) as u8)
        }
    }
    #[inline]
    pub unsafe fn set_chord_tonic_raw(this: *mut Self, val: u8) {
        unsafe {
            let val: u8 = ::core::mem::transmute(val);
            <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set(
                ::core::ptr::addr_of_mut!((*this)._bitfield_2),
                0usize,
                4u8,
                val as u64,
            )
        }
    }
    #[inline]
    pub fn tonic_sharp(&self) -> u8 {
        unsafe { ::core::mem::transmute(self._bitfield_2.get(4usize, 4u8) as u8) }
    }
    #[inline]
    pub fn set_tonic_sharp(&mut self, val: u8) {
        unsafe {
            let val: u8 = ::core::mem::transmute(val);
            self._bitfield_2.set(4usize, 4u8, val as u64)
        }
    }
    #[inline]
    pub unsafe fn tonic_sharp_raw(this: *const Self) -> u8 {
        unsafe {
            ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get(
                ::core::ptr::addr_of!((*this)._bitfield_2),
                4usize,
                4u8,
            ) as u8)
        }
    }
    #[inline]
    pub unsafe fn set_tonic_sharp_raw(this: *mut Self, val: u8) {
        unsafe {
            let val: u8 = ::core::mem::transmute(val);
            <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set(
                ::core::ptr::addr_of_mut!((*this)._bitfield_2),
                4usize,
                4u8,
                val as u64,
            )
        }
    }
    #[inline]
    pub fn new_bitfield_2(chord_tonic: u8, tonic_sharp: u8) -> __BindgenBitfieldUnit<[u8; 1usize]> {
        let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 1usize]> = Default::default();
        __bindgen_bitfield_unit.set(0usize, 4u8, {
            let chord_tonic: u8 = unsafe { ::core::mem::transmute(chord_tonic) };
            chord_tonic as u64
        });
        __bindgen_bitfield_unit.set(4usize, 4u8, {
            let tonic_sharp: u8 = unsafe { ::core::mem::transmute(tonic_sharp) };
            tonic_sharp as u64
        });
        __bindgen_bitfield_unit
    }
    #[inline]
    pub fn alter4_degree(&self) -> u8 {
        unsafe { ::core::mem::transmute(self._bitfield_3.get(0usize, 4u8) as u8) }
    }
    #[inline]
    pub fn set_alter4_degree(&mut self, val: u8) {
        unsafe {
            let val: u8 = ::core::mem::transmute(val);
            self._bitfield_3.set(0usize, 4u8, val as u64)
        }
    }
    #[inline]
    pub unsafe fn alter4_degree_raw(this: *const Self) -> u8 {
        unsafe {
            ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(
                ::core::ptr::addr_of!((*this)._bitfield_3),
                0usize,
                4u8,
            ) as u8)
        }
    }
    #[inline]
    pub unsafe fn set_alter4_degree_raw(this: *mut Self, val: u8) {
        unsafe {
            let val: u8 = ::core::mem::transmute(val);
            <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(
                ::core::ptr::addr_of_mut!((*this)._bitfield_3),
                0usize,
                4u8,
                val as u64,
            )
        }
    }
    #[inline]
    pub fn alter4_type(&self) -> u8 {
        unsafe { ::core::mem::transmute(self._bitfield_3.get(4usize, 4u8) as u8) }
    }
    #[inline]
    pub fn set_alter4_type(&mut self, val: u8) {
        unsafe {
            let val: u8 = ::core::mem::transmute(val);
            self._bitfield_3.set(4usize, 4u8, val as u64)
        }
    }
    #[inline]
    pub unsafe fn alter4_type_raw(this: *const Self) -> u8 {
        unsafe {
            ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(
                ::core::ptr::addr_of!((*this)._bitfield_3),
                4usize,
                4u8,
            ) as u8)
        }
    }
    #[inline]
    pub unsafe fn set_alter4_type_raw(this: *mut Self, val: u8) {
        unsafe {
            let val: u8 = ::core::mem::transmute(val);
            <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(
                ::core::ptr::addr_of_mut!((*this)._bitfield_3),
                4usize,
                4u8,
                val as u64,
            )
        }
    }
    #[inline]
    pub fn alter3_degree(&self) -> u8 {
        unsafe { ::core::mem::transmute(self._bitfield_3.get(8usize, 4u8) as u8) }
    }
    #[inline]
    pub fn set_alter3_degree(&mut self, val: u8) {
        unsafe {
            let val: u8 = ::core::mem::transmute(val);
            self._bitfield_3.set(8usize, 4u8, val as u64)
        }
    }
    #[inline]
    pub unsafe fn alter3_degree_raw(this: *const Self) -> u8 {
        unsafe {
            ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(
                ::core::ptr::addr_of!((*this)._bitfield_3),
                8usize,
                4u8,
            ) as u8)
        }
    }
    #[inline]
    pub unsafe fn set_alter3_degree_raw(this: *mut Self, val: u8) {
        unsafe {
            let val: u8 = ::core::mem::transmute(val);
            <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(
                ::core::ptr::addr_of_mut!((*this)._bitfield_3),
                8usize,
                4u8,
                val as u64,
            )
        }
    }
    #[inline]
    pub fn alter3_type(&self) -> u8 {
        unsafe { ::core::mem::transmute(self._bitfield_3.get(12usize, 4u8) as u8) }
    }
    #[inline]
    pub fn set_alter3_type(&mut self, val: u8) {
        unsafe {
            let val: u8 = ::core::mem::transmute(val);
            self._bitfield_3.set(12usize, 4u8, val as u64)
        }
    }
    #[inline]
    pub unsafe fn alter3_type_raw(this: *const Self) -> u8 {
        unsafe {
            ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(
                ::core::ptr::addr_of!((*this)._bitfield_3),
                12usize,
                4u8,
            ) as u8)
        }
    }
    #[inline]
    pub unsafe fn set_alter3_type_raw(this: *mut Self, val: u8) {
        unsafe {
            let val: u8 = ::core::mem::transmute(val);
            <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(
                ::core::ptr::addr_of_mut!((*this)._bitfield_3),
                12usize,
                4u8,
                val as u64,
            )
        }
    }
    #[inline]
    pub fn bass_alter2_degree(&self) -> u8 {
        unsafe { ::core::mem::transmute(self._bitfield_3.get(16usize, 4u8) as u8) }
    }
    #[inline]
    pub fn set_bass_alter2_degree(&mut self, val: u8) {
        unsafe {
            let val: u8 = ::core::mem::transmute(val);
            self._bitfield_3.set(16usize, 4u8, val as u64)
        }
    }
    #[inline]
    pub unsafe fn bass_alter2_degree_raw(this: *const Self) -> u8 {
        unsafe {
            ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(
                ::core::ptr::addr_of!((*this)._bitfield_3),
                16usize,
                4u8,
            ) as u8)
        }
    }
    #[inline]
    pub unsafe fn set_bass_alter2_degree_raw(this: *mut Self, val: u8) {
        unsafe {
            let val: u8 = ::core::mem::transmute(val);
            <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(
                ::core::ptr::addr_of_mut!((*this)._bitfield_3),
                16usize,
                4u8,
                val as u64,
            )
        }
    }
    #[inline]
    pub fn bass_alter2_type(&self) -> u8 {
        unsafe { ::core::mem::transmute(self._bitfield_3.get(20usize, 4u8) as u8) }
    }
    #[inline]
    pub fn set_bass_alter2_type(&mut self, val: u8) {
        unsafe {
            let val: u8 = ::core::mem::transmute(val);
            self._bitfield_3.set(20usize, 4u8, val as u64)
        }
    }
    #[inline]
    pub unsafe fn bass_alter2_type_raw(this: *const Self) -> u8 {
        unsafe {
            ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(
                ::core::ptr::addr_of!((*this)._bitfield_3),
                20usize,
                4u8,
            ) as u8)
        }
    }
    #[inline]
    pub unsafe fn set_bass_alter2_type_raw(this: *mut Self, val: u8) {
        unsafe {
            let val: u8 = ::core::mem::transmute(val);
            <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(
                ::core::ptr::addr_of_mut!((*this)._bitfield_3),
                20usize,
                4u8,
                val as u64,
            )
        }
    }
    #[inline]
    pub fn bass_alter1_degree(&self) -> u8 {
        unsafe { ::core::mem::transmute(self._bitfield_3.get(24usize, 4u8) as u8) }
    }
    #[inline]
    pub fn set_bass_alter1_degree(&mut self, val: u8) {
        unsafe {
            let val: u8 = ::core::mem::transmute(val);
            self._bitfield_3.set(24usize, 4u8, val as u64)
        }
    }
    #[inline]
    pub unsafe fn bass_alter1_degree_raw(this: *const Self) -> u8 {
        unsafe {
            ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(
                ::core::ptr::addr_of!((*this)._bitfield_3),
                24usize,
                4u8,
            ) as u8)
        }
    }
    #[inline]
    pub unsafe fn set_bass_alter1_degree_raw(this: *mut Self, val: u8) {
        unsafe {
            let val: u8 = ::core::mem::transmute(val);
            <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(
                ::core::ptr::addr_of_mut!((*this)._bitfield_3),
                24usize,
                4u8,
                val as u64,
            )
        }
    }
    #[inline]
    pub fn bass_alter1_type(&self) -> u8 {
        unsafe { ::core::mem::transmute(self._bitfield_3.get(28usize, 4u8) as u8) }
    }
    #[inline]
    pub fn set_bass_alter1_type(&mut self, val: u8) {
        unsafe {
            let val: u8 = ::core::mem::transmute(val);
            self._bitfield_3.set(28usize, 4u8, val as u64)
        }
    }
    #[inline]
    pub unsafe fn bass_alter1_type_raw(this: *const Self) -> u8 {
        unsafe {
            ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(
                ::core::ptr::addr_of!((*this)._bitfield_3),
                28usize,
                4u8,
            ) as u8)
        }
    }
    #[inline]
    pub unsafe fn set_bass_alter1_type_raw(this: *mut Self, val: u8) {
        unsafe {
            let val: u8 = ::core::mem::transmute(val);
            <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(
                ::core::ptr::addr_of_mut!((*this)._bitfield_3),
                28usize,
                4u8,
                val as u64,
            )
        }
    }
    #[inline]
    pub fn new_bitfield_3(
        alter4_degree: u8,
        alter4_type: u8,
        alter3_degree: u8,
        alter3_type: u8,
        bass_alter2_degree: u8,
        bass_alter2_type: u8,
        bass_alter1_degree: u8,
        bass_alter1_type: u8,
    ) -> __BindgenBitfieldUnit<[u8; 4usize]> {
        let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 4usize]> = Default::default();
        __bindgen_bitfield_unit.set(0usize, 4u8, {
            let alter4_degree: u8 = unsafe { ::core::mem::transmute(alter4_degree) };
            alter4_degree as u64
        });
        __bindgen_bitfield_unit.set(4usize, 4u8, {
            let alter4_type: u8 = unsafe { ::core::mem::transmute(alter4_type) };
            alter4_type as u64
        });
        __bindgen_bitfield_unit.set(8usize, 4u8, {
            let alter3_degree: u8 = unsafe { ::core::mem::transmute(alter3_degree) };
            alter3_degree as u64
        });
        __bindgen_bitfield_unit.set(12usize, 4u8, {
            let alter3_type: u8 = unsafe { ::core::mem::transmute(alter3_type) };
            alter3_type as u64
        });
        __bindgen_bitfield_unit.set(16usize, 4u8, {
            let bass_alter2_degree: u8 = unsafe { ::core::mem::transmute(bass_alter2_degree) };
            bass_alter2_degree as u64
        });
        __bindgen_bitfield_unit.set(20usize, 4u8, {
            let bass_alter2_type: u8 = unsafe { ::core::mem::transmute(bass_alter2_type) };
            bass_alter2_type as u64
        });
        __bindgen_bitfield_unit.set(24usize, 4u8, {
            let bass_alter1_degree: u8 = unsafe { ::core::mem::transmute(bass_alter1_degree) };
            bass_alter1_degree as u64
        });
        __bindgen_bitfield_unit.set(28usize, 4u8, {
            let bass_alter1_type: u8 = unsafe { ::core::mem::transmute(bass_alter1_type) };
            bass_alter1_type as u64
        });
        __bindgen_bitfield_unit
    }
    #[inline]
    pub fn bass_note(&self) -> u8 {
        unsafe { ::core::mem::transmute(self._bitfield_4.get(0usize, 4u8) as u8) }
    }
    #[inline]
    pub fn set_bass_note(&mut self, val: u8) {
        unsafe {
            let val: u8 = ::core::mem::transmute(val);
            self._bitfield_4.set(0usize, 4u8, val as u64)
        }
    }
    #[inline]
    pub unsafe fn bass_note_raw(this: *const Self) -> u8 {
        unsafe {
            ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get(
                ::core::ptr::addr_of!((*this)._bitfield_4),
                0usize,
                4u8,
            ) as u8)
        }
    }
    #[inline]
    pub unsafe fn set_bass_note_raw(this: *mut Self, val: u8) {
        unsafe {
            let val: u8 = ::core::mem::transmute(val);
            <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set(
                ::core::ptr::addr_of_mut!((*this)._bitfield_4),
                0usize,
                4u8,
                val as u64,
            )
        }
    }
    #[inline]
    pub fn bass_sharp(&self) -> u8 {
        unsafe { ::core::mem::transmute(self._bitfield_4.get(4usize, 4u8) as u8) }
    }
    #[inline]
    pub fn set_bass_sharp(&mut self, val: u8) {
        unsafe {
            let val: u8 = ::core::mem::transmute(val);
            self._bitfield_4.set(4usize, 4u8, val as u64)
        }
    }
    #[inline]
    pub unsafe fn bass_sharp_raw(this: *const Self) -> u8 {
        unsafe {
            ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get(
                ::core::ptr::addr_of!((*this)._bitfield_4),
                4usize,
                4u8,
            ) as u8)
        }
    }
    #[inline]
    pub unsafe fn set_bass_sharp_raw(this: *mut Self, val: u8) {
        unsafe {
            let val: u8 = ::core::mem::transmute(val);
            <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set(
                ::core::ptr::addr_of_mut!((*this)._bitfield_4),
                4usize,
                4u8,
                val as u64,
            )
        }
    }
    #[inline]
    pub fn new_bitfield_4(bass_note: u8, bass_sharp: u8) -> __BindgenBitfieldUnit<[u8; 1usize]> {
        let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 1usize]> = Default::default();
        __bindgen_bitfield_unit.set(0usize, 4u8, {
            let bass_note: u8 = unsafe { ::core::mem::transmute(bass_note) };
            bass_note as u64
        });
        __bindgen_bitfield_unit.set(4usize, 4u8, {
            let bass_sharp: u8 = unsafe { ::core::mem::transmute(bass_sharp) };
            bass_sharp as u64
        });
        __bindgen_bitfield_unit
    }
}
pub type snd_ump_msg_set_chord_name_t = _snd_ump_msg_set_chord_name;
#[repr(C)]
#[derive(Copy, Clone)]
pub union _snd_ump_msg_flex_data {
    pub meta: snd_ump_msg_flex_data_meta_t,
    pub text: snd_ump_msg_flex_data_meta_t,
    pub set_tempo: snd_ump_msg_set_tempo_t,
    pub set_time_sig: snd_ump_msg_set_time_sig_t,
    pub set_metronome: snd_ump_msg_set_metronome_t,
    pub set_key_sig: snd_ump_msg_set_key_sig_t,
    pub set_chord_name: snd_ump_msg_set_chord_name_t,
    pub hdr: snd_ump_msg_hdr_t,
    pub raw: [u32; 4usize],
}
pub type snd_ump_msg_flex_data_t = _snd_ump_msg_flex_data;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _snd_ump_msg_mixed_data_header {
    pub bytes: u16,
    pub _bitfield_align_1: [u8; 0],
    pub _bitfield_1: __BindgenBitfieldUnit<[u8; 2usize]>,
    pub chunk: u16,
    pub chunks: u16,
    pub device: u16,
    pub manufacturer: u16,
    pub sub_id_2: u16,
    pub sub_id_1: u16,
}
impl _snd_ump_msg_mixed_data_header {
    #[inline]
    pub fn mds_id(&self) -> u8 {
        unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 4u8) as u8) }
    }
    #[inline]
    pub fn set_mds_id(&mut self, val: u8) {
        unsafe {
            let val: u8 = ::core::mem::transmute(val);
            self._bitfield_1.set(0usize, 4u8, val as u64)
        }
    }
    #[inline]
    pub unsafe fn mds_id_raw(this: *const Self) -> u8 {
        unsafe {
            ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(
                ::core::ptr::addr_of!((*this)._bitfield_1),
                0usize,
                4u8,
            ) as u8)
        }
    }
    #[inline]
    pub unsafe fn set_mds_id_raw(this: *mut Self, val: u8) {
        unsafe {
            let val: u8 = ::core::mem::transmute(val);
            <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(
                ::core::ptr::addr_of_mut!((*this)._bitfield_1),
                0usize,
                4u8,
                val as u64,
            )
        }
    }
    #[inline]
    pub fn status(&self) -> u8 {
        unsafe { ::core::mem::transmute(self._bitfield_1.get(4usize, 4u8) as u8) }
    }
    #[inline]
    pub fn set_status(&mut self, val: u8) {
        unsafe {
            let val: u8 = ::core::mem::transmute(val);
            self._bitfield_1.set(4usize, 4u8, val as u64)
        }
    }
    #[inline]
    pub unsafe fn status_raw(this: *const Self) -> u8 {
        unsafe {
            ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(
                ::core::ptr::addr_of!((*this)._bitfield_1),
                4usize,
                4u8,
            ) as u8)
        }
    }
    #[inline]
    pub unsafe fn set_status_raw(this: *mut Self, val: u8) {
        unsafe {
            let val: u8 = ::core::mem::transmute(val);
            <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(
                ::core::ptr::addr_of_mut!((*this)._bitfield_1),
                4usize,
                4u8,
                val as u64,
            )
        }
    }
    #[inline]
    pub fn group(&self) -> u8 {
        unsafe { ::core::mem::transmute(self._bitfield_1.get(8usize, 4u8) as u8) }
    }
    #[inline]
    pub fn set_group(&mut self, val: u8) {
        unsafe {
            let val: u8 = ::core::mem::transmute(val);
            self._bitfield_1.set(8usize, 4u8, val as u64)
        }
    }
    #[inline]
    pub unsafe fn group_raw(this: *const Self) -> u8 {
        unsafe {
            ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(
                ::core::ptr::addr_of!((*this)._bitfield_1),
                8usize,
                4u8,
            ) as u8)
        }
    }
    #[inline]
    pub unsafe fn set_group_raw(this: *mut Self, val: u8) {
        unsafe {
            let val: u8 = ::core::mem::transmute(val);
            <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(
                ::core::ptr::addr_of_mut!((*this)._bitfield_1),
                8usize,
                4u8,
                val as u64,
            )
        }
    }
    #[inline]
    pub fn type_(&self) -> u8 {
        unsafe { ::core::mem::transmute(self._bitfield_1.get(12usize, 4u8) as u8) }
    }
    #[inline]
    pub fn set_type(&mut self, val: u8) {
        unsafe {
            let val: u8 = ::core::mem::transmute(val);
            self._bitfield_1.set(12usize, 4u8, val as u64)
        }
    }
    #[inline]
    pub unsafe fn type__raw(this: *const Self) -> u8 {
        unsafe {
            ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(
                ::core::ptr::addr_of!((*this)._bitfield_1),
                12usize,
                4u8,
            ) as u8)
        }
    }
    #[inline]
    pub unsafe fn set_type_raw(this: *mut Self, val: u8) {
        unsafe {
            let val: u8 = ::core::mem::transmute(val);
            <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(
                ::core::ptr::addr_of_mut!((*this)._bitfield_1),
                12usize,
                4u8,
                val as u64,
            )
        }
    }
    #[inline]
    pub fn new_bitfield_1(
        mds_id: u8,
        status: u8,
        group: u8,
        type_: u8,
    ) -> __BindgenBitfieldUnit<[u8; 2usize]> {
        let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 2usize]> = Default::default();
        __bindgen_bitfield_unit.set(0usize, 4u8, {
            let mds_id: u8 = unsafe { ::core::mem::transmute(mds_id) };
            mds_id as u64
        });
        __bindgen_bitfield_unit.set(4usize, 4u8, {
            let status: u8 = unsafe { ::core::mem::transmute(status) };
            status as u64
        });
        __bindgen_bitfield_unit.set(8usize, 4u8, {
            let group: u8 = unsafe { ::core::mem::transmute(group) };
            group as u64
        });
        __bindgen_bitfield_unit.set(12usize, 4u8, {
            let type_: u8 = unsafe { ::core::mem::transmute(type_) };
            type_ as u64
        });
        __bindgen_bitfield_unit
    }
}
pub type snd_ump_msg_mixed_data_header_t = _snd_ump_msg_mixed_data_header;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _snd_ump_msg_mixed_data_payload {
    pub payload1: u16,
    pub _bitfield_align_1: [u8; 0],
    pub _bitfield_1: __BindgenBitfieldUnit<[u8; 2usize]>,
    pub payloads: [u32; 3usize],
}
impl _snd_ump_msg_mixed_data_payload {
    #[inline]
    pub fn mds_id(&self) -> u8 {
        unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 4u8) as u8) }
    }
    #[inline]
    pub fn set_mds_id(&mut self, val: u8) {
        unsafe {
            let val: u8 = ::core::mem::transmute(val);
            self._bitfield_1.set(0usize, 4u8, val as u64)
        }
    }
    #[inline]
    pub unsafe fn mds_id_raw(this: *const Self) -> u8 {
        unsafe {
            ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(
                ::core::ptr::addr_of!((*this)._bitfield_1),
                0usize,
                4u8,
            ) as u8)
        }
    }
    #[inline]
    pub unsafe fn set_mds_id_raw(this: *mut Self, val: u8) {
        unsafe {
            let val: u8 = ::core::mem::transmute(val);
            <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(
                ::core::ptr::addr_of_mut!((*this)._bitfield_1),
                0usize,
                4u8,
                val as u64,
            )
        }
    }
    #[inline]
    pub fn status(&self) -> u8 {
        unsafe { ::core::mem::transmute(self._bitfield_1.get(4usize, 4u8) as u8) }
    }
    #[inline]
    pub fn set_status(&mut self, val: u8) {
        unsafe {
            let val: u8 = ::core::mem::transmute(val);
            self._bitfield_1.set(4usize, 4u8, val as u64)
        }
    }
    #[inline]
    pub unsafe fn status_raw(this: *const Self) -> u8 {
        unsafe {
            ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(
                ::core::ptr::addr_of!((*this)._bitfield_1),
                4usize,
                4u8,
            ) as u8)
        }
    }
    #[inline]
    pub unsafe fn set_status_raw(this: *mut Self, val: u8) {
        unsafe {
            let val: u8 = ::core::mem::transmute(val);
            <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(
                ::core::ptr::addr_of_mut!((*this)._bitfield_1),
                4usize,
                4u8,
                val as u64,
            )
        }
    }
    #[inline]
    pub fn group(&self) -> u8 {
        unsafe { ::core::mem::transmute(self._bitfield_1.get(8usize, 4u8) as u8) }
    }
    #[inline]
    pub fn set_group(&mut self, val: u8) {
        unsafe {
            let val: u8 = ::core::mem::transmute(val);
            self._bitfield_1.set(8usize, 4u8, val as u64)
        }
    }
    #[inline]
    pub unsafe fn group_raw(this: *const Self) -> u8 {
        unsafe {
            ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(
                ::core::ptr::addr_of!((*this)._bitfield_1),
                8usize,
                4u8,
            ) as u8)
        }
    }
    #[inline]
    pub unsafe fn set_group_raw(this: *mut Self, val: u8) {
        unsafe {
            let val: u8 = ::core::mem::transmute(val);
            <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(
                ::core::ptr::addr_of_mut!((*this)._bitfield_1),
                8usize,
                4u8,
                val as u64,
            )
        }
    }
    #[inline]
    pub fn type_(&self) -> u8 {
        unsafe { ::core::mem::transmute(self._bitfield_1.get(12usize, 4u8) as u8) }
    }
    #[inline]
    pub fn set_type(&mut self, val: u8) {
        unsafe {
            let val: u8 = ::core::mem::transmute(val);
            self._bitfield_1.set(12usize, 4u8, val as u64)
        }
    }
    #[inline]
    pub unsafe fn type__raw(this: *const Self) -> u8 {
        unsafe {
            ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(
                ::core::ptr::addr_of!((*this)._bitfield_1),
                12usize,
                4u8,
            ) as u8)
        }
    }
    #[inline]
    pub unsafe fn set_type_raw(this: *mut Self, val: u8) {
        unsafe {
            let val: u8 = ::core::mem::transmute(val);
            <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(
                ::core::ptr::addr_of_mut!((*this)._bitfield_1),
                12usize,
                4u8,
                val as u64,
            )
        }
    }
    #[inline]
    pub fn new_bitfield_1(
        mds_id: u8,
        status: u8,
        group: u8,
        type_: u8,
    ) -> __BindgenBitfieldUnit<[u8; 2usize]> {
        let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 2usize]> = Default::default();
        __bindgen_bitfield_unit.set(0usize, 4u8, {
            let mds_id: u8 = unsafe { ::core::mem::transmute(mds_id) };
            mds_id as u64
        });
        __bindgen_bitfield_unit.set(4usize, 4u8, {
            let status: u8 = unsafe { ::core::mem::transmute(status) };
            status as u64
        });
        __bindgen_bitfield_unit.set(8usize, 4u8, {
            let group: u8 = unsafe { ::core::mem::transmute(group) };
            group as u64
        });
        __bindgen_bitfield_unit.set(12usize, 4u8, {
            let type_: u8 = unsafe { ::core::mem::transmute(type_) };
            type_ as u64
        });
        __bindgen_bitfield_unit
    }
}
pub type snd_ump_msg_mixed_data_payload_t = _snd_ump_msg_mixed_data_payload;
#[repr(C)]
#[derive(Copy, Clone)]
pub union _snd_ump_msg_mixed_data {
    pub header: snd_ump_msg_mixed_data_header_t,
    pub payload: snd_ump_msg_mixed_data_payload_t,
    pub raw: [u32; 4usize],
}
pub type snd_ump_msg_mixed_data_t = _snd_ump_msg_mixed_data;
#[repr(C, packed)]
#[derive(Debug, Copy, Clone)]
pub struct _snd_ump_msg_jr_clock {
    pub time: u16,
    pub _bitfield_align_1: [u8; 0],
    pub _bitfield_1: __BindgenBitfieldUnit<[u8; 2usize]>,
}
impl _snd_ump_msg_jr_clock {
    #[inline]
    pub fn reserved(&self) -> u8 {
        unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 4u8) as u8) }
    }
    #[inline]
    pub fn set_reserved(&mut self, val: u8) {
        unsafe {
            let val: u8 = ::core::mem::transmute(val);
            self._bitfield_1.set(0usize, 4u8, val as u64)
        }
    }
    #[inline]
    pub unsafe fn reserved_raw(this: *const Self) -> u8 {
        unsafe {
            ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(
                ::core::ptr::addr_of!((*this)._bitfield_1),
                0usize,
                4u8,
            ) as u8)
        }
    }
    #[inline]
    pub unsafe fn set_reserved_raw(this: *mut Self, val: u8) {
        unsafe {
            let val: u8 = ::core::mem::transmute(val);
            <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(
                ::core::ptr::addr_of_mut!((*this)._bitfield_1),
                0usize,
                4u8,
                val as u64,
            )
        }
    }
    #[inline]
    pub fn status(&self) -> u8 {
        unsafe { ::core::mem::transmute(self._bitfield_1.get(4usize, 4u8) as u8) }
    }
    #[inline]
    pub fn set_status(&mut self, val: u8) {
        unsafe {
            let val: u8 = ::core::mem::transmute(val);
            self._bitfield_1.set(4usize, 4u8, val as u64)
        }
    }
    #[inline]
    pub unsafe fn status_raw(this: *const Self) -> u8 {
        unsafe {
            ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(
                ::core::ptr::addr_of!((*this)._bitfield_1),
                4usize,
                4u8,
            ) as u8)
        }
    }
    #[inline]
    pub unsafe fn set_status_raw(this: *mut Self, val: u8) {
        unsafe {
            let val: u8 = ::core::mem::transmute(val);
            <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(
                ::core::ptr::addr_of_mut!((*this)._bitfield_1),
                4usize,
                4u8,
                val as u64,
            )
        }
    }
    #[inline]
    pub fn group(&self) -> u8 {
        unsafe { ::core::mem::transmute(self._bitfield_1.get(8usize, 4u8) as u8) }
    }
    #[inline]
    pub fn set_group(&mut self, val: u8) {
        unsafe {
            let val: u8 = ::core::mem::transmute(val);
            self._bitfield_1.set(8usize, 4u8, val as u64)
        }
    }
    #[inline]
    pub unsafe fn group_raw(this: *const Self) -> u8 {
        unsafe {
            ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(
                ::core::ptr::addr_of!((*this)._bitfield_1),
                8usize,
                4u8,
            ) as u8)
        }
    }
    #[inline]
    pub unsafe fn set_group_raw(this: *mut Self, val: u8) {
        unsafe {
            let val: u8 = ::core::mem::transmute(val);
            <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(
                ::core::ptr::addr_of_mut!((*this)._bitfield_1),
                8usize,
                4u8,
                val as u64,
            )
        }
    }
    #[inline]
    pub fn type_(&self) -> u8 {
        unsafe { ::core::mem::transmute(self._bitfield_1.get(12usize, 4u8) as u8) }
    }
    #[inline]
    pub fn set_type(&mut self, val: u8) {
        unsafe {
            let val: u8 = ::core::mem::transmute(val);
            self._bitfield_1.set(12usize, 4u8, val as u64)
        }
    }
    #[inline]
    pub unsafe fn type__raw(this: *const Self) -> u8 {
        unsafe {
            ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(
                ::core::ptr::addr_of!((*this)._bitfield_1),
                12usize,
                4u8,
            ) as u8)
        }
    }
    #[inline]
    pub unsafe fn set_type_raw(this: *mut Self, val: u8) {
        unsafe {
            let val: u8 = ::core::mem::transmute(val);
            <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(
                ::core::ptr::addr_of_mut!((*this)._bitfield_1),
                12usize,
                4u8,
                val as u64,
            )
        }
    }
    #[inline]
    pub fn new_bitfield_1(
        reserved: u8,
        status: u8,
        group: u8,
        type_: u8,
    ) -> __BindgenBitfieldUnit<[u8; 2usize]> {
        let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 2usize]> = Default::default();
        __bindgen_bitfield_unit.set(0usize, 4u8, {
            let reserved: u8 = unsafe { ::core::mem::transmute(reserved) };
            reserved as u64
        });
        __bindgen_bitfield_unit.set(4usize, 4u8, {
            let status: u8 = unsafe { ::core::mem::transmute(status) };
            status as u64
        });
        __bindgen_bitfield_unit.set(8usize, 4u8, {
            let group: u8 = unsafe { ::core::mem::transmute(group) };
            group as u64
        });
        __bindgen_bitfield_unit.set(12usize, 4u8, {
            let type_: u8 = unsafe { ::core::mem::transmute(type_) };
            type_ as u64
        });
        __bindgen_bitfield_unit
    }
}
pub type snd_ump_msg_jr_clock_t = _snd_ump_msg_jr_clock;
#[repr(C, packed)]
#[derive(Debug, Copy, Clone)]
pub struct _snd_ump_msg_dctpq {
    pub ticks: u16,
    pub _bitfield_align_1: [u8; 0],
    pub _bitfield_1: __BindgenBitfieldUnit<[u8; 2usize]>,
}
impl _snd_ump_msg_dctpq {
    #[inline]
    pub fn reserved(&self) -> u8 {
        unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 4u8) as u8) }
    }
    #[inline]
    pub fn set_reserved(&mut self, val: u8) {
        unsafe {
            let val: u8 = ::core::mem::transmute(val);
            self._bitfield_1.set(0usize, 4u8, val as u64)
        }
    }
    #[inline]
    pub unsafe fn reserved_raw(this: *const Self) -> u8 {
        unsafe {
            ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(
                ::core::ptr::addr_of!((*this)._bitfield_1),
                0usize,
                4u8,
            ) as u8)
        }
    }
    #[inline]
    pub unsafe fn set_reserved_raw(this: *mut Self, val: u8) {
        unsafe {
            let val: u8 = ::core::mem::transmute(val);
            <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(
                ::core::ptr::addr_of_mut!((*this)._bitfield_1),
                0usize,
                4u8,
                val as u64,
            )
        }
    }
    #[inline]
    pub fn status(&self) -> u8 {
        unsafe { ::core::mem::transmute(self._bitfield_1.get(4usize, 4u8) as u8) }
    }
    #[inline]
    pub fn set_status(&mut self, val: u8) {
        unsafe {
            let val: u8 = ::core::mem::transmute(val);
            self._bitfield_1.set(4usize, 4u8, val as u64)
        }
    }
    #[inline]
    pub unsafe fn status_raw(this: *const Self) -> u8 {
        unsafe {
            ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(
                ::core::ptr::addr_of!((*this)._bitfield_1),
                4usize,
                4u8,
            ) as u8)
        }
    }
    #[inline]
    pub unsafe fn set_status_raw(this: *mut Self, val: u8) {
        unsafe {
            let val: u8 = ::core::mem::transmute(val);
            <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(
                ::core::ptr::addr_of_mut!((*this)._bitfield_1),
                4usize,
                4u8,
                val as u64,
            )
        }
    }
    #[inline]
    pub fn group(&self) -> u8 {
        unsafe { ::core::mem::transmute(self._bitfield_1.get(8usize, 4u8) as u8) }
    }
    #[inline]
    pub fn set_group(&mut self, val: u8) {
        unsafe {
            let val: u8 = ::core::mem::transmute(val);
            self._bitfield_1.set(8usize, 4u8, val as u64)
        }
    }
    #[inline]
    pub unsafe fn group_raw(this: *const Self) -> u8 {
        unsafe {
            ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(
                ::core::ptr::addr_of!((*this)._bitfield_1),
                8usize,
                4u8,
            ) as u8)
        }
    }
    #[inline]
    pub unsafe fn set_group_raw(this: *mut Self, val: u8) {
        unsafe {
            let val: u8 = ::core::mem::transmute(val);
            <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(
                ::core::ptr::addr_of_mut!((*this)._bitfield_1),
                8usize,
                4u8,
                val as u64,
            )
        }
    }
    #[inline]
    pub fn type_(&self) -> u8 {
        unsafe { ::core::mem::transmute(self._bitfield_1.get(12usize, 4u8) as u8) }
    }
    #[inline]
    pub fn set_type(&mut self, val: u8) {
        unsafe {
            let val: u8 = ::core::mem::transmute(val);
            self._bitfield_1.set(12usize, 4u8, val as u64)
        }
    }
    #[inline]
    pub unsafe fn type__raw(this: *const Self) -> u8 {
        unsafe {
            ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(
                ::core::ptr::addr_of!((*this)._bitfield_1),
                12usize,
                4u8,
            ) as u8)
        }
    }
    #[inline]
    pub unsafe fn set_type_raw(this: *mut Self, val: u8) {
        unsafe {
            let val: u8 = ::core::mem::transmute(val);
            <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(
                ::core::ptr::addr_of_mut!((*this)._bitfield_1),
                12usize,
                4u8,
                val as u64,
            )
        }
    }
    #[inline]
    pub fn new_bitfield_1(
        reserved: u8,
        status: u8,
        group: u8,
        type_: u8,
    ) -> __BindgenBitfieldUnit<[u8; 2usize]> {
        let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 2usize]> = Default::default();
        __bindgen_bitfield_unit.set(0usize, 4u8, {
            let reserved: u8 = unsafe { ::core::mem::transmute(reserved) };
            reserved as u64
        });
        __bindgen_bitfield_unit.set(4usize, 4u8, {
            let status: u8 = unsafe { ::core::mem::transmute(status) };
            status as u64
        });
        __bindgen_bitfield_unit.set(8usize, 4u8, {
            let group: u8 = unsafe { ::core::mem::transmute(group) };
            group as u64
        });
        __bindgen_bitfield_unit.set(12usize, 4u8, {
            let type_: u8 = unsafe { ::core::mem::transmute(type_) };
            type_ as u64
        });
        __bindgen_bitfield_unit
    }
}
pub type snd_ump_msg_dctpq_t = _snd_ump_msg_dctpq;
#[repr(C, packed)]
#[derive(Debug, Copy, Clone)]
pub struct _snd_ump_msg_dc {
    pub _bitfield_align_1: [u8; 0],
    pub _bitfield_1: __BindgenBitfieldUnit<[u8; 4usize]>,
}
impl _snd_ump_msg_dc {
    #[inline]
    pub fn ticks(&self) -> u32 {
        unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 20u8) as u32) }
    }
    #[inline]
    pub fn set_ticks(&mut self, val: u32) {
        unsafe {
            let val: u32 = ::core::mem::transmute(val);
            self._bitfield_1.set(0usize, 20u8, val as u64)
        }
    }
    #[inline]
    pub unsafe fn ticks_raw(this: *const Self) -> u32 {
        unsafe {
            ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(
                ::core::ptr::addr_of!((*this)._bitfield_1),
                0usize,
                20u8,
            ) as u32)
        }
    }
    #[inline]
    pub unsafe fn set_ticks_raw(this: *mut Self, val: u32) {
        unsafe {
            let val: u32 = ::core::mem::transmute(val);
            <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(
                ::core::ptr::addr_of_mut!((*this)._bitfield_1),
                0usize,
                20u8,
                val as u64,
            )
        }
    }
    #[inline]
    pub fn status(&self) -> u32 {
        unsafe { ::core::mem::transmute(self._bitfield_1.get(20usize, 4u8) as u32) }
    }
    #[inline]
    pub fn set_status(&mut self, val: u32) {
        unsafe {
            let val: u32 = ::core::mem::transmute(val);
            self._bitfield_1.set(20usize, 4u8, val as u64)
        }
    }
    #[inline]
    pub unsafe fn status_raw(this: *const Self) -> u32 {
        unsafe {
            ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(
                ::core::ptr::addr_of!((*this)._bitfield_1),
                20usize,
                4u8,
            ) as u32)
        }
    }
    #[inline]
    pub unsafe fn set_status_raw(this: *mut Self, val: u32) {
        unsafe {
            let val: u32 = ::core::mem::transmute(val);
            <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(
                ::core::ptr::addr_of_mut!((*this)._bitfield_1),
                20usize,
                4u8,
                val as u64,
            )
        }
    }
    #[inline]
    pub fn group(&self) -> u32 {
        unsafe { ::core::mem::transmute(self._bitfield_1.get(24usize, 4u8) as u32) }
    }
    #[inline]
    pub fn set_group(&mut self, val: u32) {
        unsafe {
            let val: u32 = ::core::mem::transmute(val);
            self._bitfield_1.set(24usize, 4u8, val as u64)
        }
    }
    #[inline]
    pub unsafe fn group_raw(this: *const Self) -> u32 {
        unsafe {
            ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(
                ::core::ptr::addr_of!((*this)._bitfield_1),
                24usize,
                4u8,
            ) as u32)
        }
    }
    #[inline]
    pub unsafe fn set_group_raw(this: *mut Self, val: u32) {
        unsafe {
            let val: u32 = ::core::mem::transmute(val);
            <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(
                ::core::ptr::addr_of_mut!((*this)._bitfield_1),
                24usize,
                4u8,
                val as u64,
            )
        }
    }
    #[inline]
    pub fn type_(&self) -> u32 {
        unsafe { ::core::mem::transmute(self._bitfield_1.get(28usize, 4u8) as u32) }
    }
    #[inline]
    pub fn set_type(&mut self, val: u32) {
        unsafe {
            let val: u32 = ::core::mem::transmute(val);
            self._bitfield_1.set(28usize, 4u8, val as u64)
        }
    }
    #[inline]
    pub unsafe fn type__raw(this: *const Self) -> u32 {
        unsafe {
            ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(
                ::core::ptr::addr_of!((*this)._bitfield_1),
                28usize,
                4u8,
            ) as u32)
        }
    }
    #[inline]
    pub unsafe fn set_type_raw(this: *mut Self, val: u32) {
        unsafe {
            let val: u32 = ::core::mem::transmute(val);
            <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(
                ::core::ptr::addr_of_mut!((*this)._bitfield_1),
                28usize,
                4u8,
                val as u64,
            )
        }
    }
    #[inline]
    pub fn new_bitfield_1(
        ticks: u32,
        status: u32,
        group: u32,
        type_: u32,
    ) -> __BindgenBitfieldUnit<[u8; 4usize]> {
        let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 4usize]> = Default::default();
        __bindgen_bitfield_unit.set(0usize, 20u8, {
            let ticks: u32 = unsafe { ::core::mem::transmute(ticks) };
            ticks as u64
        });
        __bindgen_bitfield_unit.set(20usize, 4u8, {
            let status: u32 = unsafe { ::core::mem::transmute(status) };
            status as u64
        });
        __bindgen_bitfield_unit.set(24usize, 4u8, {
            let group: u32 = unsafe { ::core::mem::transmute(group) };
            group as u64
        });
        __bindgen_bitfield_unit.set(28usize, 4u8, {
            let type_: u32 = unsafe { ::core::mem::transmute(type_) };
            type_ as u64
        });
        __bindgen_bitfield_unit
    }
}
pub type snd_ump_msg_dc_t = _snd_ump_msg_dc;
#[repr(C)]
#[derive(Copy, Clone)]
pub union _snd_ump_msg_utility {
    pub jr_clock: snd_ump_msg_jr_clock_t,
    pub dctpq: snd_ump_msg_dctpq_t,
    pub dc: snd_ump_msg_dc_t,
    pub hdr: snd_ump_msg_hdr_t,
    pub raw: u32,
}
pub type snd_ump_msg_utility_t = _snd_ump_msg_utility;
pub const SND_UMP_MSG_TYPE_UTILITY: _bindgen_ty_6 = 0;
pub const SND_UMP_MSG_TYPE_SYSTEM: _bindgen_ty_6 = 1;
pub const SND_UMP_MSG_TYPE_MIDI1_CHANNEL_VOICE: _bindgen_ty_6 = 2;
pub const SND_UMP_MSG_TYPE_DATA: _bindgen_ty_6 = 3;
pub const SND_UMP_MSG_TYPE_MIDI2_CHANNEL_VOICE: _bindgen_ty_6 = 4;
pub const SND_UMP_MSG_TYPE_EXTENDED_DATA: _bindgen_ty_6 = 5;
pub const SND_UMP_MSG_TYPE_FLEX_DATA: _bindgen_ty_6 = 13;
pub const SND_UMP_MSG_TYPE_STREAM: _bindgen_ty_6 = 15;
pub type _bindgen_ty_6 = ::core::ffi::c_uint;
pub const SND_UMP_MSG_PER_NOTE_RCC: _bindgen_ty_7 = 0;
pub const SND_UMP_MSG_PER_NOTE_ACC: _bindgen_ty_7 = 1;
pub const SND_UMP_MSG_RPN: _bindgen_ty_7 = 2;
pub const SND_UMP_MSG_NRPN: _bindgen_ty_7 = 3;
pub const SND_UMP_MSG_RELATIVE_RPN: _bindgen_ty_7 = 4;
pub const SND_UMP_MSG_RELATIVE_NRPN: _bindgen_ty_7 = 5;
pub const SND_UMP_MSG_PER_NOTE_PITCHBEND: _bindgen_ty_7 = 6;
pub const SND_UMP_MSG_NOTE_OFF: _bindgen_ty_7 = 8;
pub const SND_UMP_MSG_NOTE_ON: _bindgen_ty_7 = 9;
pub const SND_UMP_MSG_POLY_PRESSURE: _bindgen_ty_7 = 10;
pub const SND_UMP_MSG_CONTROL_CHANGE: _bindgen_ty_7 = 11;
pub const SND_UMP_MSG_PROGRAM_CHANGE: _bindgen_ty_7 = 12;
pub const SND_UMP_MSG_CHANNEL_PRESSURE: _bindgen_ty_7 = 13;
pub const SND_UMP_MSG_PITCHBEND: _bindgen_ty_7 = 14;
pub const SND_UMP_MSG_PER_NOTE_MGMT: _bindgen_ty_7 = 15;
pub type _bindgen_ty_7 = ::core::ffi::c_uint;
pub const SND_UMP_MSG_REALTIME: _bindgen_ty_8 = 240;
pub const SND_UMP_MSG_SYSEX_START: _bindgen_ty_8 = 240;
pub const SND_UMP_MSG_MIDI_TIME_CODE: _bindgen_ty_8 = 241;
pub const SND_UMP_MSG_SONG_POSITION: _bindgen_ty_8 = 242;
pub const SND_UMP_MSG_SONG_SELECT: _bindgen_ty_8 = 243;
pub const SND_UMP_MSG_TUNE_REQUEST: _bindgen_ty_8 = 246;
pub const SND_UMP_MSG_SYSEX_END: _bindgen_ty_8 = 247;
pub const SND_UMP_MSG_TIMING_CLOCK: _bindgen_ty_8 = 248;
pub const SND_UMP_MSG_START: _bindgen_ty_8 = 250;
pub const SND_UMP_MSG_CONTINUE: _bindgen_ty_8 = 251;
pub const SND_UMP_MSG_STOP: _bindgen_ty_8 = 252;
pub const SND_UMP_MSG_ACTIVE_SENSING: _bindgen_ty_8 = 254;
pub const SND_UMP_MSG_RESET: _bindgen_ty_8 = 255;
pub type _bindgen_ty_8 = ::core::ffi::c_uint;
pub const SND_UMP_SYSEX_STATUS_SINGLE: _bindgen_ty_9 = 0;
pub const SND_UMP_SYSEX_STATUS_START: _bindgen_ty_9 = 1;
pub const SND_UMP_SYSEX_STATUS_CONTINUE: _bindgen_ty_9 = 2;
pub const SND_UMP_SYSEX_STATUS_END: _bindgen_ty_9 = 3;
pub type _bindgen_ty_9 = ::core::ffi::c_uint;
pub const SND_UMP_MIXED_DATA_SET_STATUS_HEADER: _bindgen_ty_10 = 8;
pub const SND_UMP_MIXED_DATA_SET_STATUS_PAYLOAD: _bindgen_ty_10 = 9;
pub type _bindgen_ty_10 = ::core::ffi::c_uint;
pub const SND_UMP_UTILITY_MSG_STATUS_NOOP: _bindgen_ty_11 = 0;
pub const SND_UMP_UTILITY_MSG_STATUS_JR_CLOCK: _bindgen_ty_11 = 1;
pub const SND_UMP_UTILITY_MSG_STATUS_JR_TSTAMP: _bindgen_ty_11 = 2;
pub const SND_UMP_UTILITY_MSG_STATUS_DCTPQ: _bindgen_ty_11 = 3;
pub const SND_UMP_UTILITY_MSG_STATUS_DC: _bindgen_ty_11 = 4;
pub type _bindgen_ty_11 = ::core::ffi::c_uint;
pub const SND_UMP_STREAM_MSG_STATUS_EP_DISCOVERY: _bindgen_ty_12 = 0;
pub const SND_UMP_STREAM_MSG_STATUS_EP_INFO: _bindgen_ty_12 = 1;
pub const SND_UMP_STREAM_MSG_STATUS_DEVICE_INFO: _bindgen_ty_12 = 2;
pub const SND_UMP_STREAM_MSG_STATUS_EP_NAME: _bindgen_ty_12 = 3;
pub const SND_UMP_STREAM_MSG_STATUS_PRODUCT_ID: _bindgen_ty_12 = 4;
pub const SND_UMP_STREAM_MSG_STATUS_STREAM_CFG_REQUEST: _bindgen_ty_12 = 5;
pub const SND_UMP_STREAM_MSG_STATUS_STREAM_CFG: _bindgen_ty_12 = 6;
pub const SND_UMP_STREAM_MSG_STATUS_FB_DISCOVERY: _bindgen_ty_12 = 16;
pub const SND_UMP_STREAM_MSG_STATUS_FB_INFO: _bindgen_ty_12 = 17;
pub const SND_UMP_STREAM_MSG_STATUS_FB_NAME: _bindgen_ty_12 = 18;
pub const SND_UMP_STREAM_MSG_STATUS_START_CLIP: _bindgen_ty_12 = 32;
pub const SND_UMP_STREAM_MSG_STATUS_END_CLIP: _bindgen_ty_12 = 33;
pub type _bindgen_ty_12 = ::core::ffi::c_uint;
pub const SND_UMP_STREAM_MSG_REQUEST_EP_INFO: _bindgen_ty_13 = 1;
pub const SND_UMP_STREAM_MSG_REQUEST_DEVICE_INFO: _bindgen_ty_13 = 2;
pub const SND_UMP_STREAM_MSG_REQUEST_EP_NAME: _bindgen_ty_13 = 4;
pub const SND_UMP_STREAM_MSG_REQUEST_PRODUCT_ID: _bindgen_ty_13 = 8;
pub const SND_UMP_STREAM_MSG_REQUEST_STREAM_CFG: _bindgen_ty_13 = 16;
pub type _bindgen_ty_13 = ::core::ffi::c_uint;
pub const SND_UMP_STREAM_MSG_REQUEST_FB_INFO: _bindgen_ty_14 = 1;
pub const SND_UMP_STREAM_MSG_REQUEST_FB_NAME: _bindgen_ty_14 = 2;
pub type _bindgen_ty_14 = ::core::ffi::c_uint;
pub const SND_UMP_STREAM_MSG_EP_INFO_CAP_TXJR: _bindgen_ty_15 = 1;
pub const SND_UMP_STREAM_MSG_EP_INFO_CAP_RXJR: _bindgen_ty_15 = 2;
pub const SND_UMP_STREAM_MSG_EP_INFO_CAP_MIDI1: _bindgen_ty_15 = 256;
pub const SND_UMP_STREAM_MSG_EP_INFO_CAP_MIDI2: _bindgen_ty_15 = 512;
pub type _bindgen_ty_15 = ::core::ffi::c_uint;
pub const SND_UMP_STREAM_MSG_FORMAT_SINGLE: _bindgen_ty_16 = 0;
pub const SND_UMP_STREAM_MSG_FORMAT_START: _bindgen_ty_16 = 1;
pub const SND_UMP_STREAM_MSG_FORMAT_CONTINUE: _bindgen_ty_16 = 2;
pub const SND_UMP_STREAM_MSG_FORMAT_END: _bindgen_ty_16 = 3;
pub type _bindgen_ty_16 = ::core::ffi::c_uint;
pub const SND_UMP_FLEX_DATA_MSG_FORMAT_SINGLE: _bindgen_ty_17 = 0;
pub const SND_UMP_FLEX_DATA_MSG_FORMAT_START: _bindgen_ty_17 = 1;
pub const SND_UMP_FLEX_DATA_MSG_FORMAT_CONTINUE: _bindgen_ty_17 = 2;
pub const SND_UMP_FLEX_DATA_MSG_FORMAT_END: _bindgen_ty_17 = 3;
pub type _bindgen_ty_17 = ::core::ffi::c_uint;
pub const SND_UMP_FLEX_DATA_MSG_ADDR_CHANNEL: _bindgen_ty_18 = 0;
pub const SND_UMP_FLEX_DATA_MSG_ADDR_GROUP: _bindgen_ty_18 = 1;
pub type _bindgen_ty_18 = ::core::ffi::c_uint;
pub const SND_UMP_FLEX_DATA_MSG_BANK_SETUP: _bindgen_ty_19 = 0;
pub const SND_UMP_FLEX_DATA_MSG_BANK_METADATA: _bindgen_ty_19 = 1;
pub const SND_UMP_FLEX_DATA_MSG_BANK_PERF_TEXT: _bindgen_ty_19 = 2;
pub type _bindgen_ty_19 = ::core::ffi::c_uint;
pub const SND_UMP_FLEX_DATA_MSG_STATUS_SET_TEMPO: _bindgen_ty_20 = 0;
pub const SND_UMP_FLEX_DATA_MSG_STATUS_SET_TIME_SIGNATURE: _bindgen_ty_20 = 1;
pub const SND_UMP_FLEX_DATA_MSG_STATUS_SET_METRONOME: _bindgen_ty_20 = 2;
pub const SND_UMP_FLEX_DATA_MSG_STATUS_SET_KEY_SIGNATURE: _bindgen_ty_20 = 5;
pub const SND_UMP_FLEX_DATA_MSG_STATUS_SET_CHORD_NAME: _bindgen_ty_20 = 6;
pub type _bindgen_ty_20 = ::core::ffi::c_uint;
pub const SND_UMP_FLEX_DATA_MSG_STATUS_PROJECT_NAME: _bindgen_ty_21 = 1;
pub const SND_UMP_FLEX_DATA_MSG_STATUS_SONG_NAME: _bindgen_ty_21 = 2;
pub const SND_UMP_FLEX_DATA_MSG_STATUS_MIDI_CLIP_NAME: _bindgen_ty_21 = 3;
pub const SND_UMP_FLEX_DATA_MSG_STATUS_COPYRIGHT_NOTICE: _bindgen_ty_21 = 4;
pub const SND_UMP_FLEX_DATA_MSG_STATUS_COMPOSER_NAME: _bindgen_ty_21 = 5;
pub const SND_UMP_FLEX_DATA_MSG_STATUS_LYRICIST_NAME: _bindgen_ty_21 = 6;
pub const SND_UMP_FLEX_DATA_MSG_STATUS_ARRANGER_NAME: _bindgen_ty_21 = 7;
pub const SND_UMP_FLEX_DATA_MSG_STATUS_PUBLISHER_NAME: _bindgen_ty_21 = 8;
pub const SND_UMP_FLEX_DATA_MSG_STATUS_PRIMARY_PERFORMER: _bindgen_ty_21 = 9;
pub const SND_UMP_FLEX_DATA_MSG_STATUS_ACCOMPANY_PERFORMAER: _bindgen_ty_21 = 10;
pub const SND_UMP_FLEX_DATA_MSG_STATUS_RECORDING_DATE: _bindgen_ty_21 = 11;
pub const SND_UMP_FLEX_DATA_MSG_STATUS_RECORDING_LOCATION: _bindgen_ty_21 = 12;
pub type _bindgen_ty_21 = ::core::ffi::c_uint;
pub const SND_UMP_FLEX_DATA_MSG_STATUS_LYRICS: _bindgen_ty_22 = 1;
pub const SND_UMP_FLEX_DATA_MSG_STATUS_LYRICS_LANGUAGE: _bindgen_ty_22 = 2;
pub const SND_UMP_FLEX_DATA_MSG_STATUS_RUBY: _bindgen_ty_22 = 3;
pub const SND_UMP_FLEX_DATA_MSG_STATUS_RUBY_LANGUAGE: _bindgen_ty_22 = 4;
pub type _bindgen_ty_22 = ::core::ffi::c_uint;
unsafe extern "C" {
    pub fn snd_ump_msg_sysex_expand(
        ump: *const u32,
        buf: *mut u8,
        maxlen: usize,
        filled: *mut usize,
    ) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_ump_packet_length(type_: ::core::ffi::c_uint) -> ::core::ffi::c_int;
}
pub type snd_seq_event_type_t = ::core::ffi::c_uchar;
pub const SND_SEQ_EVENT_SYSTEM: snd_seq_event_type = 0;
pub const SND_SEQ_EVENT_RESULT: snd_seq_event_type = 1;
pub const SND_SEQ_EVENT_NOTE: snd_seq_event_type = 5;
pub const SND_SEQ_EVENT_NOTEON: snd_seq_event_type = 6;
pub const SND_SEQ_EVENT_NOTEOFF: snd_seq_event_type = 7;
pub const SND_SEQ_EVENT_KEYPRESS: snd_seq_event_type = 8;
pub const SND_SEQ_EVENT_CONTROLLER: snd_seq_event_type = 10;
pub const SND_SEQ_EVENT_PGMCHANGE: snd_seq_event_type = 11;
pub const SND_SEQ_EVENT_CHANPRESS: snd_seq_event_type = 12;
pub const SND_SEQ_EVENT_PITCHBEND: snd_seq_event_type = 13;
pub const SND_SEQ_EVENT_CONTROL14: snd_seq_event_type = 14;
pub const SND_SEQ_EVENT_NONREGPARAM: snd_seq_event_type = 15;
pub const SND_SEQ_EVENT_REGPARAM: snd_seq_event_type = 16;
pub const SND_SEQ_EVENT_SONGPOS: snd_seq_event_type = 20;
pub const SND_SEQ_EVENT_SONGSEL: snd_seq_event_type = 21;
pub const SND_SEQ_EVENT_QFRAME: snd_seq_event_type = 22;
pub const SND_SEQ_EVENT_TIMESIGN: snd_seq_event_type = 23;
pub const SND_SEQ_EVENT_KEYSIGN: snd_seq_event_type = 24;
pub const SND_SEQ_EVENT_START: snd_seq_event_type = 30;
pub const SND_SEQ_EVENT_CONTINUE: snd_seq_event_type = 31;
pub const SND_SEQ_EVENT_STOP: snd_seq_event_type = 32;
pub const SND_SEQ_EVENT_SETPOS_TICK: snd_seq_event_type = 33;
pub const SND_SEQ_EVENT_SETPOS_TIME: snd_seq_event_type = 34;
pub const SND_SEQ_EVENT_TEMPO: snd_seq_event_type = 35;
pub const SND_SEQ_EVENT_CLOCK: snd_seq_event_type = 36;
pub const SND_SEQ_EVENT_TICK: snd_seq_event_type = 37;
pub const SND_SEQ_EVENT_QUEUE_SKEW: snd_seq_event_type = 38;
pub const SND_SEQ_EVENT_SYNC_POS: snd_seq_event_type = 39;
pub const SND_SEQ_EVENT_TUNE_REQUEST: snd_seq_event_type = 40;
pub const SND_SEQ_EVENT_RESET: snd_seq_event_type = 41;
pub const SND_SEQ_EVENT_SENSING: snd_seq_event_type = 42;
pub const SND_SEQ_EVENT_ECHO: snd_seq_event_type = 50;
pub const SND_SEQ_EVENT_OSS: snd_seq_event_type = 51;
pub const SND_SEQ_EVENT_CLIENT_START: snd_seq_event_type = 60;
pub const SND_SEQ_EVENT_CLIENT_EXIT: snd_seq_event_type = 61;
pub const SND_SEQ_EVENT_CLIENT_CHANGE: snd_seq_event_type = 62;
pub const SND_SEQ_EVENT_PORT_START: snd_seq_event_type = 63;
pub const SND_SEQ_EVENT_PORT_EXIT: snd_seq_event_type = 64;
pub const SND_SEQ_EVENT_PORT_CHANGE: snd_seq_event_type = 65;
pub const SND_SEQ_EVENT_PORT_SUBSCRIBED: snd_seq_event_type = 66;
pub const SND_SEQ_EVENT_PORT_UNSUBSCRIBED: snd_seq_event_type = 67;
pub const SND_SEQ_EVENT_UMP_EP_CHANGE: snd_seq_event_type = 68;
pub const SND_SEQ_EVENT_UMP_BLOCK_CHANGE: snd_seq_event_type = 69;
pub const SND_SEQ_EVENT_USR0: snd_seq_event_type = 90;
pub const SND_SEQ_EVENT_USR1: snd_seq_event_type = 91;
pub const SND_SEQ_EVENT_USR2: snd_seq_event_type = 92;
pub const SND_SEQ_EVENT_USR3: snd_seq_event_type = 93;
pub const SND_SEQ_EVENT_USR4: snd_seq_event_type = 94;
pub const SND_SEQ_EVENT_USR5: snd_seq_event_type = 95;
pub const SND_SEQ_EVENT_USR6: snd_seq_event_type = 96;
pub const SND_SEQ_EVENT_USR7: snd_seq_event_type = 97;
pub const SND_SEQ_EVENT_USR8: snd_seq_event_type = 98;
pub const SND_SEQ_EVENT_USR9: snd_seq_event_type = 99;
pub const SND_SEQ_EVENT_SYSEX: snd_seq_event_type = 130;
pub const SND_SEQ_EVENT_BOUNCE: snd_seq_event_type = 131;
pub const SND_SEQ_EVENT_USR_VAR0: snd_seq_event_type = 135;
pub const SND_SEQ_EVENT_USR_VAR1: snd_seq_event_type = 136;
pub const SND_SEQ_EVENT_USR_VAR2: snd_seq_event_type = 137;
pub const SND_SEQ_EVENT_USR_VAR3: snd_seq_event_type = 138;
pub const SND_SEQ_EVENT_USR_VAR4: snd_seq_event_type = 139;
pub const SND_SEQ_EVENT_NONE: snd_seq_event_type = 255;
pub type snd_seq_event_type = ::core::ffi::c_uint;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct snd_seq_addr {
    pub client: ::core::ffi::c_uchar,
    pub port: ::core::ffi::c_uchar,
}
pub type snd_seq_addr_t = snd_seq_addr;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct snd_seq_connect {
    pub sender: snd_seq_addr_t,
    pub dest: snd_seq_addr_t,
}
pub type snd_seq_connect_t = snd_seq_connect;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct snd_seq_real_time {
    pub tv_sec: ::core::ffi::c_uint,
    pub tv_nsec: ::core::ffi::c_uint,
}
pub type snd_seq_real_time_t = snd_seq_real_time;
pub type snd_seq_tick_time_t = ::core::ffi::c_uint;
#[repr(C)]
#[derive(Copy, Clone)]
pub union snd_seq_timestamp {
    pub tick: snd_seq_tick_time_t,
    pub time: snd_seq_real_time,
}
pub type snd_seq_timestamp_t = snd_seq_timestamp;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct snd_seq_ev_note {
    pub channel: ::core::ffi::c_uchar,
    pub note: ::core::ffi::c_uchar,
    pub velocity: ::core::ffi::c_uchar,
    pub off_velocity: ::core::ffi::c_uchar,
    pub duration: ::core::ffi::c_uint,
}
pub type snd_seq_ev_note_t = snd_seq_ev_note;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct snd_seq_ev_ctrl {
    pub channel: ::core::ffi::c_uchar,
    pub unused: [::core::ffi::c_uchar; 3usize],
    pub param: ::core::ffi::c_uint,
    pub value: ::core::ffi::c_int,
}
pub type snd_seq_ev_ctrl_t = snd_seq_ev_ctrl;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct snd_seq_ev_raw8 {
    pub d: [::core::ffi::c_uchar; 12usize],
}
pub type snd_seq_ev_raw8_t = snd_seq_ev_raw8;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct snd_seq_ev_raw32 {
    pub d: [::core::ffi::c_uint; 3usize],
}
pub type snd_seq_ev_raw32_t = snd_seq_ev_raw32;
#[repr(C, packed)]
#[derive(Debug, Copy, Clone)]
pub struct snd_seq_ev_ext {
    pub len: ::core::ffi::c_uint,
    pub ptr: *mut ::core::ffi::c_void,
}
pub type snd_seq_ev_ext_t = snd_seq_ev_ext;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct snd_seq_result {
    pub event: ::core::ffi::c_int,
    pub result: ::core::ffi::c_int,
}
pub type snd_seq_result_t = snd_seq_result;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct snd_seq_queue_skew {
    pub value: ::core::ffi::c_uint,
    pub base: ::core::ffi::c_uint,
}
pub type snd_seq_queue_skew_t = snd_seq_queue_skew;
#[repr(C)]
#[derive(Copy, Clone)]
pub struct snd_seq_ev_queue_control {
    pub queue: ::core::ffi::c_uchar,
    pub unused: [::core::ffi::c_uchar; 3usize],
    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 {
    pub value: ::core::ffi::c_int,
    pub time: snd_seq_timestamp_t,
    pub position: ::core::ffi::c_uint,
    pub skew: snd_seq_queue_skew_t,
    pub d32: [::core::ffi::c_uint; 2usize],
    pub d8: [::core::ffi::c_uchar; 8usize],
}
pub type snd_seq_ev_queue_control_t = snd_seq_ev_queue_control;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct snd_seq_ev_ump_notify {
    pub client: ::core::ffi::c_uchar,
    pub block: ::core::ffi::c_uchar,
}
pub type snd_seq_ev_ump_notify_t = snd_seq_ev_ump_notify;
#[repr(C)]
#[derive(Copy, Clone)]
pub union snd_seq_event_data {
    pub note: snd_seq_ev_note_t,
    pub control: snd_seq_ev_ctrl_t,
    pub raw8: snd_seq_ev_raw8_t,
    pub raw32: snd_seq_ev_raw32_t,
    pub ext: snd_seq_ev_ext_t,
    pub queue: snd_seq_ev_queue_control_t,
    pub time: snd_seq_timestamp_t,
    pub addr: snd_seq_addr_t,
    pub connect: snd_seq_connect_t,
    pub result: snd_seq_result_t,
    pub ump_notify: snd_seq_ev_ump_notify_t,
}
pub type snd_seq_event_data_t = snd_seq_event_data;
#[repr(C)]
#[derive(Copy, Clone)]
pub struct snd_seq_event {
    pub type_: snd_seq_event_type_t,
    pub flags: ::core::ffi::c_uchar,
    pub tag: ::core::ffi::c_uchar,
    pub queue: ::core::ffi::c_uchar,
    pub time: snd_seq_timestamp_t,
    pub source: snd_seq_addr_t,
    pub dest: snd_seq_addr_t,
    pub data: snd_seq_event_data_t,
}
pub type snd_seq_event_t = snd_seq_event;
#[repr(C)]
#[derive(Copy, Clone)]
pub struct snd_seq_ump_event {
    pub type_: snd_seq_event_type_t,
    pub flags: ::core::ffi::c_uchar,
    pub tag: ::core::ffi::c_uchar,
    pub queue: ::core::ffi::c_uchar,
    pub time: snd_seq_timestamp_t,
    pub source: snd_seq_addr_t,
    pub dest: snd_seq_addr_t,
    pub __bindgen_anon_1: snd_seq_ump_event__bindgen_ty_1,
}
#[repr(C)]
#[derive(Copy, Clone)]
pub union snd_seq_ump_event__bindgen_ty_1 {
    pub data: snd_seq_event_data_t,
    pub ump: [::core::ffi::c_uint; 4usize],
}
pub type snd_seq_ump_event_t = snd_seq_ump_event;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _snd_seq {
    _unused: [u8; 0],
}
pub type snd_seq_t = _snd_seq;
pub const SND_SEQ_TYPE_HW: _snd_seq_type = 0;
pub const SND_SEQ_TYPE_SHM: _snd_seq_type = 1;
pub const SND_SEQ_TYPE_INET: _snd_seq_type = 2;
pub type _snd_seq_type = ::core::ffi::c_uint;
pub use self::_snd_seq_type as snd_seq_type_t;
unsafe extern "C" {
    pub fn snd_seq_open(
        handle: *mut *mut snd_seq_t,
        name: *const ::core::ffi::c_char,
        streams: ::core::ffi::c_int,
        mode: ::core::ffi::c_int,
    ) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_seq_open_lconf(
        handle: *mut *mut snd_seq_t,
        name: *const ::core::ffi::c_char,
        streams: ::core::ffi::c_int,
        mode: ::core::ffi::c_int,
        lconf: *mut snd_config_t,
    ) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_seq_name(seq: *mut snd_seq_t) -> *const ::core::ffi::c_char;
}
unsafe extern "C" {
    pub fn snd_seq_type(seq: *mut snd_seq_t) -> snd_seq_type_t;
}
unsafe extern "C" {
    pub fn snd_seq_close(handle: *mut snd_seq_t) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_seq_poll_descriptors_count(
        handle: *mut snd_seq_t,
        events: ::core::ffi::c_short,
    ) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_seq_poll_descriptors(
        handle: *mut snd_seq_t,
        pfds: *mut pollfd,
        space: ::core::ffi::c_uint,
        events: ::core::ffi::c_short,
    ) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_seq_poll_descriptors_revents(
        seq: *mut snd_seq_t,
        pfds: *mut pollfd,
        nfds: ::core::ffi::c_uint,
        revents: *mut ::core::ffi::c_ushort,
    ) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_seq_nonblock(
        handle: *mut snd_seq_t,
        nonblock: ::core::ffi::c_int,
    ) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_seq_client_id(handle: *mut snd_seq_t) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_seq_get_output_buffer_size(handle: *mut snd_seq_t) -> usize;
}
unsafe extern "C" {
    pub fn snd_seq_get_input_buffer_size(handle: *mut snd_seq_t) -> usize;
}
unsafe extern "C" {
    pub fn snd_seq_set_output_buffer_size(
        handle: *mut snd_seq_t,
        size: usize,
    ) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_seq_set_input_buffer_size(handle: *mut snd_seq_t, size: usize)
    -> ::core::ffi::c_int;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _snd_seq_system_info {
    _unused: [u8; 0],
}
pub type snd_seq_system_info_t = _snd_seq_system_info;
unsafe extern "C" {
    pub fn snd_seq_system_info_sizeof() -> usize;
}
unsafe extern "C" {
    pub fn snd_seq_system_info_malloc(ptr: *mut *mut snd_seq_system_info_t) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_seq_system_info_free(ptr: *mut snd_seq_system_info_t);
}
unsafe extern "C" {
    pub fn snd_seq_system_info_copy(
        dst: *mut snd_seq_system_info_t,
        src: *const snd_seq_system_info_t,
    );
}
unsafe extern "C" {
    pub fn snd_seq_system_info_get_queues(info: *const snd_seq_system_info_t)
    -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_seq_system_info_get_clients(
        info: *const snd_seq_system_info_t,
    ) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_seq_system_info_get_ports(info: *const snd_seq_system_info_t) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_seq_system_info_get_channels(
        info: *const snd_seq_system_info_t,
    ) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_seq_system_info_get_cur_clients(
        info: *const snd_seq_system_info_t,
    ) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_seq_system_info_get_cur_queues(
        info: *const snd_seq_system_info_t,
    ) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_seq_system_info(
        handle: *mut snd_seq_t,
        info: *mut snd_seq_system_info_t,
    ) -> ::core::ffi::c_int;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _snd_seq_client_info {
    _unused: [u8; 0],
}
pub type snd_seq_client_info_t = _snd_seq_client_info;
pub const SND_SEQ_USER_CLIENT: snd_seq_client_type = 1;
pub const SND_SEQ_KERNEL_CLIENT: snd_seq_client_type = 2;
pub type snd_seq_client_type = ::core::ffi::c_uint;
pub use self::snd_seq_client_type as snd_seq_client_type_t;
pub const SND_SEQ_CLIENT_LEGACY_MIDI: _bindgen_ty_23 = 0;
pub const SND_SEQ_CLIENT_UMP_MIDI_1_0: _bindgen_ty_23 = 1;
pub const SND_SEQ_CLIENT_UMP_MIDI_2_0: _bindgen_ty_23 = 2;
pub type _bindgen_ty_23 = ::core::ffi::c_uint;
unsafe extern "C" {
    pub fn snd_seq_client_info_sizeof() -> usize;
}
unsafe extern "C" {
    pub fn snd_seq_client_info_malloc(ptr: *mut *mut snd_seq_client_info_t) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_seq_client_info_free(ptr: *mut snd_seq_client_info_t);
}
unsafe extern "C" {
    pub fn snd_seq_client_info_copy(
        dst: *mut snd_seq_client_info_t,
        src: *const snd_seq_client_info_t,
    );
}
unsafe extern "C" {
    pub fn snd_seq_client_info_get_client(info: *const snd_seq_client_info_t)
    -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_seq_client_info_get_type(
        info: *const snd_seq_client_info_t,
    ) -> snd_seq_client_type_t;
}
unsafe extern "C" {
    pub fn snd_seq_client_info_get_name(
        info: *mut snd_seq_client_info_t,
    ) -> *const ::core::ffi::c_char;
}
unsafe extern "C" {
    pub fn snd_seq_client_info_get_broadcast_filter(
        info: *const snd_seq_client_info_t,
    ) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_seq_client_info_get_error_bounce(
        info: *const snd_seq_client_info_t,
    ) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_seq_client_info_get_card(info: *const snd_seq_client_info_t) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_seq_client_info_get_pid(info: *const snd_seq_client_info_t) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_seq_client_info_get_event_filter(
        info: *const snd_seq_client_info_t,
    ) -> *const ::core::ffi::c_uchar;
}
unsafe extern "C" {
    pub fn snd_seq_client_info_get_num_ports(
        info: *const snd_seq_client_info_t,
    ) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_seq_client_info_get_event_lost(
        info: *const snd_seq_client_info_t,
    ) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_seq_client_info_get_midi_version(
        info: *const snd_seq_client_info_t,
    ) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_seq_client_info_get_ump_group_enabled(
        info: *const snd_seq_client_info_t,
        group: ::core::ffi::c_int,
    ) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_seq_client_info_get_ump_groupless_enabled(
        info: *const snd_seq_client_info_t,
    ) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_seq_client_info_get_ump_conversion(
        info: *const snd_seq_client_info_t,
    ) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_seq_client_info_set_client(
        info: *mut snd_seq_client_info_t,
        client: ::core::ffi::c_int,
    );
}
unsafe extern "C" {
    pub fn snd_seq_client_info_set_name(
        info: *mut snd_seq_client_info_t,
        name: *const ::core::ffi::c_char,
    );
}
unsafe extern "C" {
    pub fn snd_seq_client_info_set_broadcast_filter(
        info: *mut snd_seq_client_info_t,
        val: ::core::ffi::c_int,
    );
}
unsafe extern "C" {
    pub fn snd_seq_client_info_set_error_bounce(
        info: *mut snd_seq_client_info_t,
        val: ::core::ffi::c_int,
    );
}
unsafe extern "C" {
    pub fn snd_seq_client_info_set_event_filter(
        info: *mut snd_seq_client_info_t,
        filter: *mut ::core::ffi::c_uchar,
    );
}
unsafe extern "C" {
    pub fn snd_seq_client_info_set_midi_version(
        info: *mut snd_seq_client_info_t,
        midi_version: ::core::ffi::c_int,
    );
}
unsafe extern "C" {
    pub fn snd_seq_client_info_set_ump_group_enabled(
        info: *mut snd_seq_client_info_t,
        group: ::core::ffi::c_int,
        enable: ::core::ffi::c_int,
    );
}
unsafe extern "C" {
    pub fn snd_seq_client_info_set_ump_groupless_enabled(
        info: *mut snd_seq_client_info_t,
        enable: ::core::ffi::c_int,
    );
}
unsafe extern "C" {
    pub fn snd_seq_client_info_set_ump_conversion(
        info: *mut snd_seq_client_info_t,
        enable: ::core::ffi::c_int,
    );
}
unsafe extern "C" {
    pub fn snd_seq_client_info_event_filter_clear(info: *mut snd_seq_client_info_t);
}
unsafe extern "C" {
    pub fn snd_seq_client_info_event_filter_add(
        info: *mut snd_seq_client_info_t,
        event_type: ::core::ffi::c_int,
    );
}
unsafe extern "C" {
    pub fn snd_seq_client_info_event_filter_del(
        info: *mut snd_seq_client_info_t,
        event_type: ::core::ffi::c_int,
    );
}
unsafe extern "C" {
    pub fn snd_seq_client_info_event_filter_check(
        info: *mut snd_seq_client_info_t,
        event_type: ::core::ffi::c_int,
    ) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_seq_get_client_info(
        handle: *mut snd_seq_t,
        info: *mut snd_seq_client_info_t,
    ) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_seq_get_any_client_info(
        handle: *mut snd_seq_t,
        client: ::core::ffi::c_int,
        info: *mut snd_seq_client_info_t,
    ) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_seq_set_client_info(
        handle: *mut snd_seq_t,
        info: *mut snd_seq_client_info_t,
    ) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_seq_query_next_client(
        handle: *mut snd_seq_t,
        info: *mut snd_seq_client_info_t,
    ) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_seq_get_ump_endpoint_info(
        seq: *mut snd_seq_t,
        client: ::core::ffi::c_int,
        info: *mut ::core::ffi::c_void,
    ) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_seq_get_ump_block_info(
        seq: *mut snd_seq_t,
        client: ::core::ffi::c_int,
        blk: ::core::ffi::c_int,
        info: *mut ::core::ffi::c_void,
    ) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_seq_set_ump_endpoint_info(
        seq: *mut snd_seq_t,
        info: *const ::core::ffi::c_void,
    ) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_seq_set_ump_block_info(
        seq: *mut snd_seq_t,
        blk: ::core::ffi::c_int,
        info: *const ::core::ffi::c_void,
    ) -> ::core::ffi::c_int;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _snd_seq_client_pool {
    _unused: [u8; 0],
}
pub type snd_seq_client_pool_t = _snd_seq_client_pool;
unsafe extern "C" {
    pub fn snd_seq_client_pool_sizeof() -> usize;
}
unsafe extern "C" {
    pub fn snd_seq_client_pool_malloc(ptr: *mut *mut snd_seq_client_pool_t) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_seq_client_pool_free(ptr: *mut snd_seq_client_pool_t);
}
unsafe extern "C" {
    pub fn snd_seq_client_pool_copy(
        dst: *mut snd_seq_client_pool_t,
        src: *const snd_seq_client_pool_t,
    );
}
unsafe extern "C" {
    pub fn snd_seq_client_pool_get_client(info: *const snd_seq_client_pool_t)
    -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_seq_client_pool_get_output_pool(info: *const snd_seq_client_pool_t) -> usize;
}
unsafe extern "C" {
    pub fn snd_seq_client_pool_get_input_pool(info: *const snd_seq_client_pool_t) -> usize;
}
unsafe extern "C" {
    pub fn snd_seq_client_pool_get_output_room(info: *const snd_seq_client_pool_t) -> usize;
}
unsafe extern "C" {
    pub fn snd_seq_client_pool_get_output_free(info: *const snd_seq_client_pool_t) -> usize;
}
unsafe extern "C" {
    pub fn snd_seq_client_pool_get_input_free(info: *const snd_seq_client_pool_t) -> usize;
}
unsafe extern "C" {
    pub fn snd_seq_client_pool_set_output_pool(info: *mut snd_seq_client_pool_t, size: usize);
}
unsafe extern "C" {
    pub fn snd_seq_client_pool_set_input_pool(info: *mut snd_seq_client_pool_t, size: usize);
}
unsafe extern "C" {
    pub fn snd_seq_client_pool_set_output_room(info: *mut snd_seq_client_pool_t, size: usize);
}
unsafe extern "C" {
    pub fn snd_seq_get_client_pool(
        handle: *mut snd_seq_t,
        info: *mut snd_seq_client_pool_t,
    ) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_seq_set_client_pool(
        handle: *mut snd_seq_t,
        info: *mut snd_seq_client_pool_t,
    ) -> ::core::ffi::c_int;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _snd_seq_port_info {
    _unused: [u8; 0],
}
pub type snd_seq_port_info_t = _snd_seq_port_info;
unsafe extern "C" {
    pub fn snd_seq_port_info_sizeof() -> usize;
}
unsafe extern "C" {
    pub fn snd_seq_port_info_malloc(ptr: *mut *mut snd_seq_port_info_t) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_seq_port_info_free(ptr: *mut snd_seq_port_info_t);
}
unsafe extern "C" {
    pub fn snd_seq_port_info_copy(dst: *mut snd_seq_port_info_t, src: *const snd_seq_port_info_t);
}
unsafe extern "C" {
    pub fn snd_seq_port_info_get_client(info: *const snd_seq_port_info_t) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_seq_port_info_get_port(info: *const snd_seq_port_info_t) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_seq_port_info_get_addr(info: *const snd_seq_port_info_t) -> *const snd_seq_addr_t;
}
unsafe extern "C" {
    pub fn snd_seq_port_info_get_name(
        info: *const snd_seq_port_info_t,
    ) -> *const ::core::ffi::c_char;
}
unsafe extern "C" {
    pub fn snd_seq_port_info_get_capability(
        info: *const snd_seq_port_info_t,
    ) -> ::core::ffi::c_uint;
}
unsafe extern "C" {
    pub fn snd_seq_port_info_get_type(info: *const snd_seq_port_info_t) -> ::core::ffi::c_uint;
}
unsafe extern "C" {
    pub fn snd_seq_port_info_get_midi_channels(
        info: *const snd_seq_port_info_t,
    ) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_seq_port_info_get_midi_voices(
        info: *const snd_seq_port_info_t,
    ) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_seq_port_info_get_synth_voices(
        info: *const snd_seq_port_info_t,
    ) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_seq_port_info_get_read_use(info: *const snd_seq_port_info_t) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_seq_port_info_get_write_use(info: *const snd_seq_port_info_t) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_seq_port_info_get_port_specified(
        info: *const snd_seq_port_info_t,
    ) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_seq_port_info_get_timestamping(
        info: *const snd_seq_port_info_t,
    ) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_seq_port_info_get_timestamp_real(
        info: *const snd_seq_port_info_t,
    ) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_seq_port_info_get_timestamp_queue(
        info: *const snd_seq_port_info_t,
    ) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_seq_port_info_get_direction(info: *const snd_seq_port_info_t) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_seq_port_info_get_ump_group(info: *const snd_seq_port_info_t) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_seq_port_info_get_ump_is_midi1(
        info: *const snd_seq_port_info_t,
    ) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_seq_port_info_set_client(info: *mut snd_seq_port_info_t, client: ::core::ffi::c_int);
}
unsafe extern "C" {
    pub fn snd_seq_port_info_set_port(info: *mut snd_seq_port_info_t, port: ::core::ffi::c_int);
}
unsafe extern "C" {
    pub fn snd_seq_port_info_set_addr(info: *mut snd_seq_port_info_t, addr: *const snd_seq_addr_t);
}
unsafe extern "C" {
    pub fn snd_seq_port_info_set_name(
        info: *mut snd_seq_port_info_t,
        name: *const ::core::ffi::c_char,
    );
}
unsafe extern "C" {
    pub fn snd_seq_port_info_set_capability(
        info: *mut snd_seq_port_info_t,
        capability: ::core::ffi::c_uint,
    );
}
unsafe extern "C" {
    pub fn snd_seq_port_info_set_type(info: *mut snd_seq_port_info_t, type_: ::core::ffi::c_uint);
}
unsafe extern "C" {
    pub fn snd_seq_port_info_set_midi_channels(
        info: *mut snd_seq_port_info_t,
        channels: ::core::ffi::c_int,
    );
}
unsafe extern "C" {
    pub fn snd_seq_port_info_set_midi_voices(
        info: *mut snd_seq_port_info_t,
        voices: ::core::ffi::c_int,
    );
}
unsafe extern "C" {
    pub fn snd_seq_port_info_set_synth_voices(
        info: *mut snd_seq_port_info_t,
        voices: ::core::ffi::c_int,
    );
}
unsafe extern "C" {
    pub fn snd_seq_port_info_set_port_specified(
        info: *mut snd_seq_port_info_t,
        val: ::core::ffi::c_int,
    );
}
unsafe extern "C" {
    pub fn snd_seq_port_info_set_timestamping(
        info: *mut snd_seq_port_info_t,
        enable: ::core::ffi::c_int,
    );
}
unsafe extern "C" {
    pub fn snd_seq_port_info_set_timestamp_real(
        info: *mut snd_seq_port_info_t,
        realtime: ::core::ffi::c_int,
    );
}
unsafe extern "C" {
    pub fn snd_seq_port_info_set_timestamp_queue(
        info: *mut snd_seq_port_info_t,
        queue: ::core::ffi::c_int,
    );
}
unsafe extern "C" {
    pub fn snd_seq_port_info_set_direction(
        info: *mut snd_seq_port_info_t,
        direction: ::core::ffi::c_int,
    );
}
unsafe extern "C" {
    pub fn snd_seq_port_info_set_ump_group(
        info: *mut snd_seq_port_info_t,
        ump_group: ::core::ffi::c_int,
    );
}
unsafe extern "C" {
    pub fn snd_seq_port_info_set_ump_is_midi1(
        info: *mut snd_seq_port_info_t,
        is_midi1: ::core::ffi::c_int,
    );
}
unsafe extern "C" {
    pub fn snd_seq_create_port(
        handle: *mut snd_seq_t,
        info: *mut snd_seq_port_info_t,
    ) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_seq_delete_port(
        handle: *mut snd_seq_t,
        port: ::core::ffi::c_int,
    ) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_seq_get_port_info(
        handle: *mut snd_seq_t,
        port: ::core::ffi::c_int,
        info: *mut snd_seq_port_info_t,
    ) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_seq_get_any_port_info(
        handle: *mut snd_seq_t,
        client: ::core::ffi::c_int,
        port: ::core::ffi::c_int,
        info: *mut snd_seq_port_info_t,
    ) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_seq_set_port_info(
        handle: *mut snd_seq_t,
        port: ::core::ffi::c_int,
        info: *mut snd_seq_port_info_t,
    ) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_seq_query_next_port(
        handle: *mut snd_seq_t,
        info: *mut snd_seq_port_info_t,
    ) -> ::core::ffi::c_int;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _snd_seq_port_subscribe {
    _unused: [u8; 0],
}
pub type snd_seq_port_subscribe_t = _snd_seq_port_subscribe;
unsafe extern "C" {
    pub fn snd_seq_port_subscribe_sizeof() -> usize;
}
unsafe extern "C" {
    pub fn snd_seq_port_subscribe_malloc(
        ptr: *mut *mut snd_seq_port_subscribe_t,
    ) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_seq_port_subscribe_free(ptr: *mut snd_seq_port_subscribe_t);
}
unsafe extern "C" {
    pub fn snd_seq_port_subscribe_copy(
        dst: *mut snd_seq_port_subscribe_t,
        src: *const snd_seq_port_subscribe_t,
    );
}
unsafe extern "C" {
    pub fn snd_seq_port_subscribe_get_sender(
        info: *const snd_seq_port_subscribe_t,
    ) -> *const snd_seq_addr_t;
}
unsafe extern "C" {
    pub fn snd_seq_port_subscribe_get_dest(
        info: *const snd_seq_port_subscribe_t,
    ) -> *const snd_seq_addr_t;
}
unsafe extern "C" {
    pub fn snd_seq_port_subscribe_get_queue(
        info: *const snd_seq_port_subscribe_t,
    ) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_seq_port_subscribe_get_exclusive(
        info: *const snd_seq_port_subscribe_t,
    ) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_seq_port_subscribe_get_time_update(
        info: *const snd_seq_port_subscribe_t,
    ) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_seq_port_subscribe_get_time_real(
        info: *const snd_seq_port_subscribe_t,
    ) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_seq_port_subscribe_set_sender(
        info: *mut snd_seq_port_subscribe_t,
        addr: *const snd_seq_addr_t,
    );
}
unsafe extern "C" {
    pub fn snd_seq_port_subscribe_set_dest(
        info: *mut snd_seq_port_subscribe_t,
        addr: *const snd_seq_addr_t,
    );
}
unsafe extern "C" {
    pub fn snd_seq_port_subscribe_set_queue(
        info: *mut snd_seq_port_subscribe_t,
        q: ::core::ffi::c_int,
    );
}
unsafe extern "C" {
    pub fn snd_seq_port_subscribe_set_exclusive(
        info: *mut snd_seq_port_subscribe_t,
        val: ::core::ffi::c_int,
    );
}
unsafe extern "C" {
    pub fn snd_seq_port_subscribe_set_time_update(
        info: *mut snd_seq_port_subscribe_t,
        val: ::core::ffi::c_int,
    );
}
unsafe extern "C" {
    pub fn snd_seq_port_subscribe_set_time_real(
        info: *mut snd_seq_port_subscribe_t,
        val: ::core::ffi::c_int,
    );
}
unsafe extern "C" {
    pub fn snd_seq_get_port_subscription(
        handle: *mut snd_seq_t,
        sub: *mut snd_seq_port_subscribe_t,
    ) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_seq_subscribe_port(
        handle: *mut snd_seq_t,
        sub: *mut snd_seq_port_subscribe_t,
    ) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_seq_unsubscribe_port(
        handle: *mut snd_seq_t,
        sub: *mut snd_seq_port_subscribe_t,
    ) -> ::core::ffi::c_int;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _snd_seq_query_subscribe {
    _unused: [u8; 0],
}
pub type snd_seq_query_subscribe_t = _snd_seq_query_subscribe;
pub const SND_SEQ_QUERY_SUBS_READ: snd_seq_query_subs_type_t = 0;
pub const SND_SEQ_QUERY_SUBS_WRITE: snd_seq_query_subs_type_t = 1;
pub type snd_seq_query_subs_type_t = ::core::ffi::c_uint;
unsafe extern "C" {
    pub fn snd_seq_query_subscribe_sizeof() -> usize;
}
unsafe extern "C" {
    pub fn snd_seq_query_subscribe_malloc(
        ptr: *mut *mut snd_seq_query_subscribe_t,
    ) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_seq_query_subscribe_free(ptr: *mut snd_seq_query_subscribe_t);
}
unsafe extern "C" {
    pub fn snd_seq_query_subscribe_copy(
        dst: *mut snd_seq_query_subscribe_t,
        src: *const snd_seq_query_subscribe_t,
    );
}
unsafe extern "C" {
    pub fn snd_seq_query_subscribe_get_client(
        info: *const snd_seq_query_subscribe_t,
    ) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_seq_query_subscribe_get_port(
        info: *const snd_seq_query_subscribe_t,
    ) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_seq_query_subscribe_get_root(
        info: *const snd_seq_query_subscribe_t,
    ) -> *const snd_seq_addr_t;
}
unsafe extern "C" {
    pub fn snd_seq_query_subscribe_get_type(
        info: *const snd_seq_query_subscribe_t,
    ) -> snd_seq_query_subs_type_t;
}
unsafe extern "C" {
    pub fn snd_seq_query_subscribe_get_index(
        info: *const snd_seq_query_subscribe_t,
    ) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_seq_query_subscribe_get_num_subs(
        info: *const snd_seq_query_subscribe_t,
    ) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_seq_query_subscribe_get_addr(
        info: *const snd_seq_query_subscribe_t,
    ) -> *const snd_seq_addr_t;
}
unsafe extern "C" {
    pub fn snd_seq_query_subscribe_get_queue(
        info: *const snd_seq_query_subscribe_t,
    ) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_seq_query_subscribe_get_exclusive(
        info: *const snd_seq_query_subscribe_t,
    ) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_seq_query_subscribe_get_time_update(
        info: *const snd_seq_query_subscribe_t,
    ) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_seq_query_subscribe_get_time_real(
        info: *const snd_seq_query_subscribe_t,
    ) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_seq_query_subscribe_set_client(
        info: *mut snd_seq_query_subscribe_t,
        client: ::core::ffi::c_int,
    );
}
unsafe extern "C" {
    pub fn snd_seq_query_subscribe_set_port(
        info: *mut snd_seq_query_subscribe_t,
        port: ::core::ffi::c_int,
    );
}
unsafe extern "C" {
    pub fn snd_seq_query_subscribe_set_root(
        info: *mut snd_seq_query_subscribe_t,
        addr: *const snd_seq_addr_t,
    );
}
unsafe extern "C" {
    pub fn snd_seq_query_subscribe_set_type(
        info: *mut snd_seq_query_subscribe_t,
        type_: snd_seq_query_subs_type_t,
    );
}
unsafe extern "C" {
    pub fn snd_seq_query_subscribe_set_index(
        info: *mut snd_seq_query_subscribe_t,
        _index: ::core::ffi::c_int,
    );
}
unsafe extern "C" {
    pub fn snd_seq_query_port_subscribers(
        seq: *mut snd_seq_t,
        subs: *mut snd_seq_query_subscribe_t,
    ) -> ::core::ffi::c_int;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _snd_seq_queue_info {
    _unused: [u8; 0],
}
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],
}
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],
}
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],
}
pub type snd_seq_queue_timer_t = _snd_seq_queue_timer;
unsafe extern "C" {
    pub fn snd_seq_queue_info_sizeof() -> usize;
}
unsafe extern "C" {
    pub fn snd_seq_queue_info_malloc(ptr: *mut *mut snd_seq_queue_info_t) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_seq_queue_info_free(ptr: *mut snd_seq_queue_info_t);
}
unsafe extern "C" {
    pub fn snd_seq_queue_info_copy(
        dst: *mut snd_seq_queue_info_t,
        src: *const snd_seq_queue_info_t,
    );
}
unsafe extern "C" {
    pub fn snd_seq_queue_info_get_queue(info: *const snd_seq_queue_info_t) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_seq_queue_info_get_name(
        info: *const snd_seq_queue_info_t,
    ) -> *const ::core::ffi::c_char;
}
unsafe extern "C" {
    pub fn snd_seq_queue_info_get_owner(info: *const snd_seq_queue_info_t) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_seq_queue_info_get_locked(info: *const snd_seq_queue_info_t) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_seq_queue_info_get_flags(info: *const snd_seq_queue_info_t) -> ::core::ffi::c_uint;
}
unsafe extern "C" {
    pub fn snd_seq_queue_info_set_name(
        info: *mut snd_seq_queue_info_t,
        name: *const ::core::ffi::c_char,
    );
}
unsafe extern "C" {
    pub fn snd_seq_queue_info_set_owner(info: *mut snd_seq_queue_info_t, owner: ::core::ffi::c_int);
}
unsafe extern "C" {
    pub fn snd_seq_queue_info_set_locked(
        info: *mut snd_seq_queue_info_t,
        locked: ::core::ffi::c_int,
    );
}
unsafe extern "C" {
    pub fn snd_seq_queue_info_set_flags(
        info: *mut snd_seq_queue_info_t,
        flags: ::core::ffi::c_uint,
    );
}
unsafe extern "C" {
    pub fn snd_seq_create_queue(
        seq: *mut snd_seq_t,
        info: *mut snd_seq_queue_info_t,
    ) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_seq_alloc_named_queue(
        seq: *mut snd_seq_t,
        name: *const ::core::ffi::c_char,
    ) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_seq_alloc_queue(handle: *mut snd_seq_t) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_seq_free_queue(handle: *mut snd_seq_t, q: ::core::ffi::c_int) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_seq_get_queue_info(
        seq: *mut snd_seq_t,
        q: ::core::ffi::c_int,
        info: *mut snd_seq_queue_info_t,
    ) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_seq_set_queue_info(
        seq: *mut snd_seq_t,
        q: ::core::ffi::c_int,
        info: *mut snd_seq_queue_info_t,
    ) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_seq_query_named_queue(
        seq: *mut snd_seq_t,
        name: *const ::core::ffi::c_char,
    ) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_seq_get_queue_usage(
        handle: *mut snd_seq_t,
        q: ::core::ffi::c_int,
    ) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_seq_set_queue_usage(
        handle: *mut snd_seq_t,
        q: ::core::ffi::c_int,
        used: ::core::ffi::c_int,
    ) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_seq_queue_status_sizeof() -> usize;
}
unsafe extern "C" {
    pub fn snd_seq_queue_status_malloc(ptr: *mut *mut snd_seq_queue_status_t)
    -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_seq_queue_status_free(ptr: *mut snd_seq_queue_status_t);
}
unsafe extern "C" {
    pub fn snd_seq_queue_status_copy(
        dst: *mut snd_seq_queue_status_t,
        src: *const snd_seq_queue_status_t,
    );
}
unsafe extern "C" {
    pub fn snd_seq_queue_status_get_queue(
        info: *const snd_seq_queue_status_t,
    ) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_seq_queue_status_get_events(
        info: *const snd_seq_queue_status_t,
    ) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_seq_queue_status_get_tick_time(
        info: *const snd_seq_queue_status_t,
    ) -> snd_seq_tick_time_t;
}
unsafe extern "C" {
    pub fn snd_seq_queue_status_get_real_time(
        info: *const snd_seq_queue_status_t,
    ) -> *const snd_seq_real_time_t;
}
unsafe extern "C" {
    pub fn snd_seq_queue_status_get_status(
        info: *const snd_seq_queue_status_t,
    ) -> ::core::ffi::c_uint;
}
unsafe extern "C" {
    pub fn snd_seq_get_queue_status(
        handle: *mut snd_seq_t,
        q: ::core::ffi::c_int,
        status: *mut snd_seq_queue_status_t,
    ) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_seq_queue_tempo_sizeof() -> usize;
}
unsafe extern "C" {
    pub fn snd_seq_queue_tempo_malloc(ptr: *mut *mut snd_seq_queue_tempo_t) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_seq_queue_tempo_free(ptr: *mut snd_seq_queue_tempo_t);
}
unsafe extern "C" {
    pub fn snd_seq_queue_tempo_copy(
        dst: *mut snd_seq_queue_tempo_t,
        src: *const snd_seq_queue_tempo_t,
    );
}
unsafe extern "C" {
    pub fn snd_seq_queue_tempo_get_queue(info: *const snd_seq_queue_tempo_t) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_seq_queue_tempo_get_tempo(info: *const snd_seq_queue_tempo_t)
    -> ::core::ffi::c_uint;
}
unsafe extern "C" {
    pub fn snd_seq_queue_tempo_get_ppq(info: *const snd_seq_queue_tempo_t) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_seq_queue_tempo_get_skew(info: *const snd_seq_queue_tempo_t) -> ::core::ffi::c_uint;
}
unsafe extern "C" {
    pub fn snd_seq_queue_tempo_get_skew_base(
        info: *const snd_seq_queue_tempo_t,
    ) -> ::core::ffi::c_uint;
}
unsafe extern "C" {
    pub fn snd_seq_queue_tempo_get_tempo_base(
        info: *const snd_seq_queue_tempo_t,
    ) -> ::core::ffi::c_uint;
}
unsafe extern "C" {
    pub fn snd_seq_queue_tempo_set_tempo(
        info: *mut snd_seq_queue_tempo_t,
        tempo: ::core::ffi::c_uint,
    );
}
unsafe extern "C" {
    pub fn snd_seq_queue_tempo_set_ppq(info: *mut snd_seq_queue_tempo_t, ppq: ::core::ffi::c_int);
}
unsafe extern "C" {
    pub fn snd_seq_queue_tempo_set_skew(
        info: *mut snd_seq_queue_tempo_t,
        skew: ::core::ffi::c_uint,
    );
}
unsafe extern "C" {
    pub fn snd_seq_queue_tempo_set_skew_base(
        info: *mut snd_seq_queue_tempo_t,
        base: ::core::ffi::c_uint,
    );
}
unsafe extern "C" {
    pub fn snd_seq_queue_tempo_set_tempo_base(
        info: *mut snd_seq_queue_tempo_t,
        tempo_base: ::core::ffi::c_uint,
    );
}
unsafe extern "C" {
    pub fn snd_seq_get_queue_tempo(
        handle: *mut snd_seq_t,
        q: ::core::ffi::c_int,
        tempo: *mut snd_seq_queue_tempo_t,
    ) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_seq_set_queue_tempo(
        handle: *mut snd_seq_t,
        q: ::core::ffi::c_int,
        tempo: *mut snd_seq_queue_tempo_t,
    ) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_seq_has_queue_tempo_base(handle: *mut snd_seq_t) -> ::core::ffi::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;
pub type snd_seq_queue_timer_type_t = ::core::ffi::c_uint;
unsafe extern "C" {
    pub fn snd_seq_queue_timer_sizeof() -> usize;
}
unsafe extern "C" {
    pub fn snd_seq_queue_timer_malloc(ptr: *mut *mut snd_seq_queue_timer_t) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_seq_queue_timer_free(ptr: *mut snd_seq_queue_timer_t);
}
unsafe extern "C" {
    pub fn snd_seq_queue_timer_copy(
        dst: *mut snd_seq_queue_timer_t,
        src: *const snd_seq_queue_timer_t,
    );
}
unsafe extern "C" {
    pub fn snd_seq_queue_timer_get_queue(info: *const snd_seq_queue_timer_t) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_seq_queue_timer_get_type(
        info: *const snd_seq_queue_timer_t,
    ) -> snd_seq_queue_timer_type_t;
}
unsafe extern "C" {
    pub fn snd_seq_queue_timer_get_id(info: *const snd_seq_queue_timer_t) -> *const snd_timer_id_t;
}
unsafe extern "C" {
    pub fn snd_seq_queue_timer_get_resolution(
        info: *const snd_seq_queue_timer_t,
    ) -> ::core::ffi::c_uint;
}
unsafe extern "C" {
    pub fn snd_seq_queue_timer_set_type(
        info: *mut snd_seq_queue_timer_t,
        type_: snd_seq_queue_timer_type_t,
    );
}
unsafe extern "C" {
    pub fn snd_seq_queue_timer_set_id(info: *mut snd_seq_queue_timer_t, id: *const snd_timer_id_t);
}
unsafe extern "C" {
    pub fn snd_seq_queue_timer_set_resolution(
        info: *mut snd_seq_queue_timer_t,
        resolution: ::core::ffi::c_uint,
    );
}
unsafe extern "C" {
    pub fn snd_seq_get_queue_timer(
        handle: *mut snd_seq_t,
        q: ::core::ffi::c_int,
        timer: *mut snd_seq_queue_timer_t,
    ) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_seq_set_queue_timer(
        handle: *mut snd_seq_t,
        q: ::core::ffi::c_int,
        timer: *mut snd_seq_queue_timer_t,
    ) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_seq_free_event(ev: *mut snd_seq_event_t) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_seq_event_length(ev: *mut snd_seq_event_t) -> isize;
}
unsafe extern "C" {
    pub fn snd_seq_event_output(
        handle: *mut snd_seq_t,
        ev: *mut snd_seq_event_t,
    ) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_seq_event_output_buffer(
        handle: *mut snd_seq_t,
        ev: *mut snd_seq_event_t,
    ) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_seq_event_output_direct(
        handle: *mut snd_seq_t,
        ev: *mut snd_seq_event_t,
    ) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_seq_event_input(
        handle: *mut snd_seq_t,
        ev: *mut *mut snd_seq_event_t,
    ) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_seq_event_input_pending(
        seq: *mut snd_seq_t,
        fetch_sequencer: ::core::ffi::c_int,
    ) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_seq_drain_output(handle: *mut snd_seq_t) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_seq_event_output_pending(seq: *mut snd_seq_t) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_seq_extract_output(
        handle: *mut snd_seq_t,
        ev: *mut *mut snd_seq_event_t,
    ) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_seq_drop_output(handle: *mut snd_seq_t) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_seq_drop_output_buffer(handle: *mut snd_seq_t) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_seq_drop_input(handle: *mut snd_seq_t) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_seq_drop_input_buffer(handle: *mut snd_seq_t) -> ::core::ffi::c_int;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _snd_seq_remove_events {
    _unused: [u8; 0],
}
pub type snd_seq_remove_events_t = _snd_seq_remove_events;
unsafe extern "C" {
    pub fn snd_seq_remove_events_sizeof() -> usize;
}
unsafe extern "C" {
    pub fn snd_seq_remove_events_malloc(
        ptr: *mut *mut snd_seq_remove_events_t,
    ) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_seq_remove_events_free(ptr: *mut snd_seq_remove_events_t);
}
unsafe extern "C" {
    pub fn snd_seq_remove_events_copy(
        dst: *mut snd_seq_remove_events_t,
        src: *const snd_seq_remove_events_t,
    );
}
unsafe extern "C" {
    pub fn snd_seq_remove_events_get_condition(
        info: *const snd_seq_remove_events_t,
    ) -> ::core::ffi::c_uint;
}
unsafe extern "C" {
    pub fn snd_seq_remove_events_get_queue(
        info: *const snd_seq_remove_events_t,
    ) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_seq_remove_events_get_time(
        info: *const snd_seq_remove_events_t,
    ) -> *const snd_seq_timestamp_t;
}
unsafe extern "C" {
    pub fn snd_seq_remove_events_get_dest(
        info: *const snd_seq_remove_events_t,
    ) -> *const snd_seq_addr_t;
}
unsafe extern "C" {
    pub fn snd_seq_remove_events_get_channel(
        info: *const snd_seq_remove_events_t,
    ) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_seq_remove_events_get_event_type(
        info: *const snd_seq_remove_events_t,
    ) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_seq_remove_events_get_tag(
        info: *const snd_seq_remove_events_t,
    ) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_seq_remove_events_set_condition(
        info: *mut snd_seq_remove_events_t,
        flags: ::core::ffi::c_uint,
    );
}
unsafe extern "C" {
    pub fn snd_seq_remove_events_set_queue(
        info: *mut snd_seq_remove_events_t,
        queue: ::core::ffi::c_int,
    );
}
unsafe extern "C" {
    pub fn snd_seq_remove_events_set_time(
        info: *mut snd_seq_remove_events_t,
        time: *const snd_seq_timestamp_t,
    );
}
unsafe extern "C" {
    pub fn snd_seq_remove_events_set_dest(
        info: *mut snd_seq_remove_events_t,
        addr: *const snd_seq_addr_t,
    );
}
unsafe extern "C" {
    pub fn snd_seq_remove_events_set_channel(
        info: *mut snd_seq_remove_events_t,
        channel: ::core::ffi::c_int,
    );
}
unsafe extern "C" {
    pub fn snd_seq_remove_events_set_event_type(
        info: *mut snd_seq_remove_events_t,
        type_: ::core::ffi::c_int,
    );
}
unsafe extern "C" {
    pub fn snd_seq_remove_events_set_tag(
        info: *mut snd_seq_remove_events_t,
        tag: ::core::ffi::c_int,
    );
}
unsafe extern "C" {
    pub fn snd_seq_remove_events(
        handle: *mut snd_seq_t,
        info: *mut snd_seq_remove_events_t,
    ) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_seq_ump_event_output(
        seq: *mut snd_seq_t,
        ev: *mut snd_seq_ump_event_t,
    ) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_seq_ump_event_output_buffer(
        seq: *mut snd_seq_t,
        ev: *mut snd_seq_ump_event_t,
    ) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_seq_ump_extract_output(
        seq: *mut snd_seq_t,
        ev_res: *mut *mut snd_seq_ump_event_t,
    ) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_seq_ump_event_output_direct(
        seq: *mut snd_seq_t,
        ev: *mut snd_seq_ump_event_t,
    ) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_seq_ump_event_input(
        seq: *mut snd_seq_t,
        ev: *mut *mut snd_seq_ump_event_t,
    ) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_seq_set_bit(nr: ::core::ffi::c_int, array: *mut ::core::ffi::c_void);
}
unsafe extern "C" {
    pub fn snd_seq_unset_bit(nr: ::core::ffi::c_int, array: *mut ::core::ffi::c_void);
}
unsafe extern "C" {
    pub fn snd_seq_change_bit(
        nr: ::core::ffi::c_int,
        array: *mut ::core::ffi::c_void,
    ) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_seq_get_bit(
        nr: ::core::ffi::c_int,
        array: *mut ::core::ffi::c_void,
    ) -> ::core::ffi::c_int;
}
pub const SND_SEQ_EVFLG_RESULT: _bindgen_ty_24 = 0;
pub const SND_SEQ_EVFLG_NOTE: _bindgen_ty_24 = 1;
pub const SND_SEQ_EVFLG_CONTROL: _bindgen_ty_24 = 2;
pub const SND_SEQ_EVFLG_QUEUE: _bindgen_ty_24 = 3;
pub const SND_SEQ_EVFLG_SYSTEM: _bindgen_ty_24 = 4;
pub const SND_SEQ_EVFLG_MESSAGE: _bindgen_ty_24 = 5;
pub const SND_SEQ_EVFLG_CONNECTION: _bindgen_ty_24 = 6;
pub const SND_SEQ_EVFLG_SAMPLE: _bindgen_ty_24 = 7;
pub const SND_SEQ_EVFLG_USERS: _bindgen_ty_24 = 8;
pub const SND_SEQ_EVFLG_INSTR: _bindgen_ty_24 = 9;
pub const SND_SEQ_EVFLG_QUOTE: _bindgen_ty_24 = 10;
pub const SND_SEQ_EVFLG_NONE: _bindgen_ty_24 = 11;
pub const SND_SEQ_EVFLG_RAW: _bindgen_ty_24 = 12;
pub const SND_SEQ_EVFLG_FIXED: _bindgen_ty_24 = 13;
pub const SND_SEQ_EVFLG_VARIABLE: _bindgen_ty_24 = 14;
pub const SND_SEQ_EVFLG_VARUSR: _bindgen_ty_24 = 15;
pub type _bindgen_ty_24 = ::core::ffi::c_uint;
pub const SND_SEQ_EVFLG_NOTE_ONEARG: _bindgen_ty_25 = 0;
pub const SND_SEQ_EVFLG_NOTE_TWOARG: _bindgen_ty_25 = 1;
pub type _bindgen_ty_25 = ::core::ffi::c_uint;
pub const SND_SEQ_EVFLG_QUEUE_NOARG: _bindgen_ty_26 = 0;
pub const SND_SEQ_EVFLG_QUEUE_TICK: _bindgen_ty_26 = 1;
pub const SND_SEQ_EVFLG_QUEUE_TIME: _bindgen_ty_26 = 2;
pub const SND_SEQ_EVFLG_QUEUE_VALUE: _bindgen_ty_26 = 3;
pub type _bindgen_ty_26 = ::core::ffi::c_uint;
unsafe extern "C" {
    pub fn snd_seq_control_queue(
        seq: *mut snd_seq_t,
        q: ::core::ffi::c_int,
        type_: ::core::ffi::c_int,
        value: ::core::ffi::c_int,
        ev: *mut snd_seq_event_t,
    ) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_seq_create_simple_port(
        seq: *mut snd_seq_t,
        name: *const ::core::ffi::c_char,
        caps: ::core::ffi::c_uint,
        type_: ::core::ffi::c_uint,
    ) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_seq_delete_simple_port(
        seq: *mut snd_seq_t,
        port: ::core::ffi::c_int,
    ) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_seq_connect_from(
        seq: *mut snd_seq_t,
        my_port: ::core::ffi::c_int,
        src_client: ::core::ffi::c_int,
        src_port: ::core::ffi::c_int,
    ) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_seq_connect_to(
        seq: *mut snd_seq_t,
        my_port: ::core::ffi::c_int,
        dest_client: ::core::ffi::c_int,
        dest_port: ::core::ffi::c_int,
    ) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_seq_disconnect_from(
        seq: *mut snd_seq_t,
        my_port: ::core::ffi::c_int,
        src_client: ::core::ffi::c_int,
        src_port: ::core::ffi::c_int,
    ) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_seq_disconnect_to(
        seq: *mut snd_seq_t,
        my_port: ::core::ffi::c_int,
        dest_client: ::core::ffi::c_int,
        dest_port: ::core::ffi::c_int,
    ) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_seq_set_client_name(
        seq: *mut snd_seq_t,
        name: *const ::core::ffi::c_char,
    ) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_seq_set_client_event_filter(
        seq: *mut snd_seq_t,
        event_type: ::core::ffi::c_int,
    ) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_seq_set_client_midi_version(
        seq: *mut snd_seq_t,
        midi_version: ::core::ffi::c_int,
    ) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_seq_set_client_ump_conversion(
        seq: *mut snd_seq_t,
        enable: ::core::ffi::c_int,
    ) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_seq_set_client_pool_output(seq: *mut snd_seq_t, size: usize) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_seq_set_client_pool_output_room(
        seq: *mut snd_seq_t,
        size: usize,
    ) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_seq_set_client_pool_input(seq: *mut snd_seq_t, size: usize) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_seq_sync_output_queue(seq: *mut snd_seq_t) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_seq_parse_address(
        seq: *mut snd_seq_t,
        addr: *mut snd_seq_addr_t,
        str_: *const ::core::ffi::c_char,
    ) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_seq_reset_pool_output(seq: *mut snd_seq_t) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_seq_reset_pool_input(seq: *mut snd_seq_t) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_seq_create_ump_endpoint(
        seq: *mut snd_seq_t,
        info: *const snd_ump_endpoint_info_t,
        num_groups: ::core::ffi::c_uint,
    ) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_seq_create_ump_block(
        seq: *mut snd_seq_t,
        blkid: ::core::ffi::c_int,
        info: *const snd_ump_block_info_t,
    ) -> ::core::ffi::c_int;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct snd_midi_event {
    _unused: [u8; 0],
}
pub type snd_midi_event_t = snd_midi_event;
unsafe extern "C" {
    pub fn snd_midi_event_new(
        bufsize: usize,
        rdev: *mut *mut snd_midi_event_t,
    ) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_midi_event_resize_buffer(
        dev: *mut snd_midi_event_t,
        bufsize: usize,
    ) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_midi_event_free(dev: *mut snd_midi_event_t);
}
unsafe extern "C" {
    pub fn snd_midi_event_init(dev: *mut snd_midi_event_t);
}
unsafe extern "C" {
    pub fn snd_midi_event_reset_encode(dev: *mut snd_midi_event_t);
}
unsafe extern "C" {
    pub fn snd_midi_event_reset_decode(dev: *mut snd_midi_event_t);
}
unsafe extern "C" {
    pub fn snd_midi_event_no_status(dev: *mut snd_midi_event_t, on: ::core::ffi::c_int);
}
unsafe extern "C" {
    pub fn snd_midi_event_encode(
        dev: *mut snd_midi_event_t,
        buf: *const ::core::ffi::c_uchar,
        count: ::core::ffi::c_long,
        ev: *mut snd_seq_event_t,
    ) -> ::core::ffi::c_long;
}
unsafe extern "C" {
    pub fn snd_midi_event_encode_byte(
        dev: *mut snd_midi_event_t,
        c: ::core::ffi::c_int,
        ev: *mut snd_seq_event_t,
    ) -> ::core::ffi::c_int;
}
unsafe extern "C" {
    pub fn snd_midi_event_decode(
        dev: *mut snd_midi_event_t,
        buf: *mut ::core::ffi::c_uchar,
        count: ::core::ffi::c_long,
        ev: *const snd_seq_event_t,
    ) -> ::core::ffi::c_long;
}
pub type __builtin_va_list = [__va_list_tag; 1usize];
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct __va_list_tag {
    pub gp_offset: ::core::ffi::c_uint,
    pub fp_offset: ::core::ffi::c_uint,
    pub overflow_arg_area: *mut ::core::ffi::c_void,
    pub reg_save_area: *mut ::core::ffi::c_void,
}
