Skip to main content

alsa_sys/
generated.rs

1/* automatically generated by rust-bindgen 0.72.1 */
2
3#[repr(C)]
4#[derive(Copy, Clone, Debug, Default, Eq, Hash, Ord, PartialEq, PartialOrd)]
5pub struct __BindgenBitfieldUnit<Storage> {
6    storage: Storage,
7}
8impl<Storage> __BindgenBitfieldUnit<Storage> {
9    #[inline]
10    pub const fn new(storage: Storage) -> Self {
11        Self { storage }
12    }
13}
14impl<Storage> __BindgenBitfieldUnit<Storage>
15where
16    Storage: AsRef<[u8]> + AsMut<[u8]>,
17{
18    #[inline]
19    fn extract_bit(byte: u8, index: usize) -> bool {
20        let bit_index = if cfg!(target_endian = "big") {
21            7 - (index % 8)
22        } else {
23            index % 8
24        };
25        let mask = 1 << bit_index;
26        byte & mask == mask
27    }
28    #[inline]
29    pub fn get_bit(&self, index: usize) -> bool {
30        debug_assert!(index / 8 < self.storage.as_ref().len());
31        let byte_index = index / 8;
32        let byte = self.storage.as_ref()[byte_index];
33        Self::extract_bit(byte, index)
34    }
35    #[inline]
36    pub unsafe fn raw_get_bit(this: *const Self, index: usize) -> bool {
37        debug_assert!(index / 8 < core::mem::size_of::<Storage>());
38        let byte_index = index / 8;
39        let byte = unsafe {
40            *(core::ptr::addr_of!((*this).storage) as *const u8).offset(byte_index as isize)
41        };
42        Self::extract_bit(byte, index)
43    }
44    #[inline]
45    fn change_bit(byte: u8, index: usize, val: bool) -> u8 {
46        let bit_index = if cfg!(target_endian = "big") {
47            7 - (index % 8)
48        } else {
49            index % 8
50        };
51        let mask = 1 << bit_index;
52        if val { byte | mask } else { byte & !mask }
53    }
54    #[inline]
55    pub fn set_bit(&mut self, index: usize, val: bool) {
56        debug_assert!(index / 8 < self.storage.as_ref().len());
57        let byte_index = index / 8;
58        let byte = &mut self.storage.as_mut()[byte_index];
59        *byte = Self::change_bit(*byte, index, val);
60    }
61    #[inline]
62    pub unsafe fn raw_set_bit(this: *mut Self, index: usize, val: bool) {
63        debug_assert!(index / 8 < core::mem::size_of::<Storage>());
64        let byte_index = index / 8;
65        let byte = unsafe {
66            (core::ptr::addr_of_mut!((*this).storage) as *mut u8).offset(byte_index as isize)
67        };
68        unsafe { *byte = Self::change_bit(*byte, index, val) };
69    }
70    #[inline]
71    pub fn get(&self, bit_offset: usize, bit_width: u8) -> u64 {
72        debug_assert!(bit_width <= 64);
73        debug_assert!(bit_offset / 8 < self.storage.as_ref().len());
74        debug_assert!((bit_offset + (bit_width as usize)) / 8 <= self.storage.as_ref().len());
75        let mut val = 0;
76        for i in 0..(bit_width as usize) {
77            if self.get_bit(i + bit_offset) {
78                let index = if cfg!(target_endian = "big") {
79                    bit_width as usize - 1 - i
80                } else {
81                    i
82                };
83                val |= 1 << index;
84            }
85        }
86        val
87    }
88    #[inline]
89    pub unsafe fn raw_get(this: *const Self, bit_offset: usize, bit_width: u8) -> u64 {
90        debug_assert!(bit_width <= 64);
91        debug_assert!(bit_offset / 8 < core::mem::size_of::<Storage>());
92        debug_assert!((bit_offset + (bit_width as usize)) / 8 <= core::mem::size_of::<Storage>());
93        let mut val = 0;
94        for i in 0..(bit_width as usize) {
95            if unsafe { Self::raw_get_bit(this, i + bit_offset) } {
96                let index = if cfg!(target_endian = "big") {
97                    bit_width as usize - 1 - i
98                } else {
99                    i
100                };
101                val |= 1 << index;
102            }
103        }
104        val
105    }
106    #[inline]
107    pub fn set(&mut self, bit_offset: usize, bit_width: u8, val: u64) {
108        debug_assert!(bit_width <= 64);
109        debug_assert!(bit_offset / 8 < self.storage.as_ref().len());
110        debug_assert!((bit_offset + (bit_width as usize)) / 8 <= self.storage.as_ref().len());
111        for i in 0..(bit_width as usize) {
112            let mask = 1 << i;
113            let val_bit_is_set = val & mask == mask;
114            let index = if cfg!(target_endian = "big") {
115                bit_width as usize - 1 - i
116            } else {
117                i
118            };
119            self.set_bit(index + bit_offset, val_bit_is_set);
120        }
121    }
122    #[inline]
123    pub unsafe fn raw_set(this: *mut Self, bit_offset: usize, bit_width: u8, val: u64) {
124        debug_assert!(bit_width <= 64);
125        debug_assert!(bit_offset / 8 < core::mem::size_of::<Storage>());
126        debug_assert!((bit_offset + (bit_width as usize)) / 8 <= core::mem::size_of::<Storage>());
127        for i in 0..(bit_width as usize) {
128            let mask = 1 << i;
129            let val_bit_is_set = val & mask == mask;
130            let index = if cfg!(target_endian = "big") {
131                bit_width as usize - 1 - i
132            } else {
133                i
134            };
135            unsafe { Self::raw_set_bit(this, index + bit_offset, val_bit_is_set) };
136        }
137    }
138}
139#[repr(C)]
140#[derive(Default)]
141pub struct __IncompleteArrayField<T>(::core::marker::PhantomData<T>, [T; 0]);
142impl<T> __IncompleteArrayField<T> {
143    #[inline]
144    pub const fn new() -> Self {
145        __IncompleteArrayField(::core::marker::PhantomData, [])
146    }
147    #[inline]
148    pub fn as_ptr(&self) -> *const T {
149        self as *const _ as *const T
150    }
151    #[inline]
152    pub fn as_mut_ptr(&mut self) -> *mut T {
153        self as *mut _ as *mut T
154    }
155    #[inline]
156    pub unsafe fn as_slice(&self, len: usize) -> &[T] {
157        ::core::slice::from_raw_parts(self.as_ptr(), len)
158    }
159    #[inline]
160    pub unsafe fn as_mut_slice(&mut self, len: usize) -> &mut [T] {
161        ::core::slice::from_raw_parts_mut(self.as_mut_ptr(), len)
162    }
163}
164impl<T> ::core::fmt::Debug for __IncompleteArrayField<T> {
165    fn fmt(&self, fmt: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
166        fmt.write_str("__IncompleteArrayField")
167    }
168}
169pub const SND_LIB_MAJOR: u32 = 1;
170pub const SND_LIB_MINOR: u32 = 2;
171pub const SND_LIB_SUBMINOR: u32 = 15;
172pub const SND_LIB_EXTRAVER: u32 = 1000000;
173pub const SND_LIB_VERSION_STR: &[u8; 9] = b"1.2.15.3\0";
174pub const SND_ERROR_BEGIN: u32 = 500000;
175pub const SND_ERROR_INCOMPATIBLE_VERSION: u32 = 500000;
176pub const SND_LOG_ERROR: u32 = 1;
177pub const SND_LOG_WARN: u32 = 2;
178pub const SND_LOG_INFO: u32 = 3;
179pub const SND_LOG_DEBUG: u32 = 4;
180pub const SND_LOG_TRACE: u32 = 5;
181pub const SND_LOG_LAST: u32 = 5;
182pub const SND_ILOG_CORE: u32 = 1;
183pub const SND_ILOG_CONFIG: u32 = 2;
184pub const SND_ILOG_CONTROL: u32 = 3;
185pub const SND_ILOG_HWDEP: u32 = 4;
186pub const SND_ILOG_TIMER: u32 = 5;
187pub const SND_ILOG_RAWMIDI: u32 = 6;
188pub const SND_ILOG_PCM: u32 = 7;
189pub const SND_ILOG_MIXER: u32 = 8;
190pub const SND_ILOG_SEQUENCER: u32 = 9;
191pub const SND_ILOG_UCM: u32 = 10;
192pub const SND_ILOG_TOPOLOGY: u32 = 11;
193pub const SND_ILOG_ASERVER: u32 = 12;
194pub const SND_ILOG_LAST: u32 = 12;
195pub const SND_PCM_NONBLOCK: u32 = 1;
196pub const SND_PCM_ASYNC: u32 = 2;
197pub const SND_PCM_EINTR: u32 = 128;
198pub const SND_PCM_ABORT: u32 = 32768;
199pub const SND_PCM_NO_AUTO_RESAMPLE: u32 = 65536;
200pub const SND_PCM_NO_AUTO_CHANNELS: u32 = 131072;
201pub const SND_PCM_NO_AUTO_FORMAT: u32 = 262144;
202pub const SND_PCM_NO_SOFTVOL: u32 = 524288;
203pub const SND_PCM_HW_PARAMS_SYNC_SIZE: u32 = 16;
204pub const SND_PCM_WAIT_INFINITE: i32 = -1;
205pub const SND_PCM_WAIT_IO: i32 = -10001;
206pub const SND_PCM_WAIT_DRAIN: i32 = -10002;
207pub const SND_CHMAP_API_VERSION: u32 = 65537;
208pub const SND_CHMAP_POSITION_MASK: u32 = 65535;
209pub const SND_CHMAP_PHASE_INVERSE: u32 = 65536;
210pub const SND_CHMAP_DRIVER_SPEC: u32 = 131072;
211pub const SND_RAWMIDI_APPEND: u32 = 1;
212pub const SND_RAWMIDI_NONBLOCK: u32 = 2;
213pub const SND_RAWMIDI_SYNC: u32 = 4;
214pub const SND_RAWMIDI_INFO_UMP: u32 = 8;
215pub const SND_RAWMIDI_INFO_STREAM_INACTIVE: u32 = 16;
216pub const SND_UMP_MAX_GROUPS: u32 = 16;
217pub const SND_UMP_MAX_BLOCKS: u32 = 32;
218pub const SND_UMP_EP_INFO_STATIC_BLOCKS: u32 = 1;
219pub const SND_UMP_EP_INFO_PROTO_MIDI_MASK: u32 = 768;
220pub const SND_UMP_EP_INFO_PROTO_MIDI1: u32 = 256;
221pub const SND_UMP_EP_INFO_PROTO_MIDI2: u32 = 512;
222pub const SND_UMP_EP_INFO_PROTO_JRTS_MASK: u32 = 3;
223pub const SND_UMP_EP_INFO_PROTO_JRTS_TX: u32 = 1;
224pub const SND_UMP_EP_INFO_PROTO_JRTS_RX: u32 = 2;
225pub const SND_UMP_EP_INFO_DEFAULT_VERSION: u32 = 257;
226pub const SND_UMP_BLOCK_IS_MIDI1: u32 = 1;
227pub const SND_UMP_BLOCK_IS_LOWSPEED: u32 = 2;
228pub const SND_UMP_BLOCK_INFO_DEFAULT_MIDI_CI_VERSION: u32 = 1;
229pub const SND_TIMER_GLOBAL_SYSTEM: u32 = 0;
230pub const SND_TIMER_GLOBAL_RTC: u32 = 1;
231pub const SND_TIMER_GLOBAL_HPET: u32 = 2;
232pub const SND_TIMER_GLOBAL_HRTIMER: u32 = 3;
233pub const SND_TIMER_OPEN_NONBLOCK: u32 = 1;
234pub const SND_TIMER_OPEN_TREAD: u32 = 2;
235pub const SND_HWDEP_OPEN_READ: u32 = 0;
236pub const SND_HWDEP_OPEN_WRITE: u32 = 1;
237pub const SND_HWDEP_OPEN_DUPLEX: u32 = 2;
238pub const SND_HWDEP_OPEN_NONBLOCK: u32 = 2048;
239pub const SND_CTL_EVENT_MASK_REMOVE: i32 = -1;
240pub const SND_CTL_EVENT_MASK_VALUE: u32 = 1;
241pub const SND_CTL_EVENT_MASK_INFO: u32 = 2;
242pub const SND_CTL_EVENT_MASK_ADD: u32 = 4;
243pub const SND_CTL_EVENT_MASK_TLV: u32 = 8;
244pub const SND_CTL_NAME_NONE: &[u8; 1] = b"\0";
245pub const SND_CTL_NAME_PLAYBACK: &[u8; 10] = b"Playback \0";
246pub const SND_CTL_NAME_CAPTURE: &[u8; 9] = b"Capture \0";
247pub const SND_CTL_NAME_IEC958_NONE: &[u8; 1] = b"\0";
248pub const SND_CTL_NAME_IEC958_SWITCH: &[u8; 7] = b"Switch\0";
249pub const SND_CTL_NAME_IEC958_VOLUME: &[u8; 7] = b"Volume\0";
250pub const SND_CTL_NAME_IEC958_DEFAULT: &[u8; 8] = b"Default\0";
251pub const SND_CTL_NAME_IEC958_MASK: &[u8; 5] = b"Mask\0";
252pub const SND_CTL_NAME_IEC958_CON_MASK: &[u8; 9] = b"Con Mask\0";
253pub const SND_CTL_NAME_IEC958_PRO_MASK: &[u8; 9] = b"Pro Mask\0";
254pub const SND_CTL_NAME_IEC958_PCM_STREAM: &[u8; 11] = b"PCM Stream\0";
255pub const SND_CTL_POWER_MASK: u32 = 65280;
256pub const SND_CTL_POWER_D0: u32 = 0;
257pub const SND_CTL_POWER_D1: u32 = 256;
258pub const SND_CTL_POWER_D2: u32 = 512;
259pub const SND_CTL_POWER_D3: u32 = 768;
260pub const SND_CTL_POWER_D3hot: u32 = 768;
261pub const SND_CTL_POWER_D3cold: u32 = 769;
262pub const SND_CTL_TLVT_CONTAINER: u32 = 0;
263pub const SND_CTL_TLVT_DB_SCALE: u32 = 1;
264pub const SND_CTL_TLVT_DB_LINEAR: u32 = 2;
265pub const SND_CTL_TLVT_DB_RANGE: u32 = 3;
266pub const SND_CTL_TLVT_DB_MINMAX: u32 = 4;
267pub const SND_CTL_TLVT_DB_MINMAX_MUTE: u32 = 5;
268pub const SND_CTL_TLV_DB_GAIN_MUTE: i32 = -9999999;
269pub const SND_CTL_TLVT_CHMAP_FIXED: u32 = 257;
270pub const SND_CTL_TLVT_CHMAP_VAR: u32 = 258;
271pub const SND_CTL_TLVT_CHMAP_PAIRED: u32 = 259;
272pub const SND_CTL_NONBLOCK: u32 = 1;
273pub const SND_CTL_ASYNC: u32 = 2;
274pub const SND_CTL_READONLY: u32 = 4;
275pub const SND_CTL_EINTR: u32 = 128;
276pub const SND_SCTL_NOFREE: u32 = 1;
277pub const SND_SEQ_TIME_STAMP_TICK: u32 = 0;
278pub const SND_SEQ_TIME_STAMP_REAL: u32 = 1;
279pub const SND_SEQ_TIME_STAMP_MASK: u32 = 1;
280pub const SND_SEQ_TIME_MODE_ABS: u32 = 0;
281pub const SND_SEQ_TIME_MODE_REL: u32 = 2;
282pub const SND_SEQ_TIME_MODE_MASK: u32 = 2;
283pub const SND_SEQ_EVENT_LENGTH_FIXED: u32 = 0;
284pub const SND_SEQ_EVENT_LENGTH_VARIABLE: u32 = 4;
285pub const SND_SEQ_EVENT_LENGTH_VARUSR: u32 = 8;
286pub const SND_SEQ_EVENT_LENGTH_MASK: u32 = 12;
287pub const SND_SEQ_PRIORITY_NORMAL: u32 = 0;
288pub const SND_SEQ_PRIORITY_HIGH: u32 = 16;
289pub const SND_SEQ_PRIORITY_MASK: u32 = 16;
290pub const SND_SEQ_EVENT_UMP: u32 = 32;
291pub const SND_SEQ_OPEN_OUTPUT: u32 = 1;
292pub const SND_SEQ_OPEN_INPUT: u32 = 2;
293pub const SND_SEQ_OPEN_DUPLEX: u32 = 3;
294pub const SND_SEQ_NONBLOCK: u32 = 1;
295pub const SND_SEQ_ADDRESS_UNKNOWN: u32 = 253;
296pub const SND_SEQ_ADDRESS_SUBSCRIBERS: u32 = 254;
297pub const SND_SEQ_ADDRESS_BROADCAST: u32 = 255;
298pub const SND_SEQ_CLIENT_SYSTEM: u32 = 0;
299pub const SND_SEQ_PORT_SYSTEM_TIMER: u32 = 0;
300pub const SND_SEQ_PORT_SYSTEM_ANNOUNCE: u32 = 1;
301pub const SND_SEQ_PORT_CAP_READ: u32 = 1;
302pub const SND_SEQ_PORT_CAP_WRITE: u32 = 2;
303pub const SND_SEQ_PORT_CAP_SYNC_READ: u32 = 4;
304pub const SND_SEQ_PORT_CAP_SYNC_WRITE: u32 = 8;
305pub const SND_SEQ_PORT_CAP_DUPLEX: u32 = 16;
306pub const SND_SEQ_PORT_CAP_SUBS_READ: u32 = 32;
307pub const SND_SEQ_PORT_CAP_SUBS_WRITE: u32 = 64;
308pub const SND_SEQ_PORT_CAP_NO_EXPORT: u32 = 128;
309pub const SND_SEQ_PORT_CAP_INACTIVE: u32 = 256;
310pub const SND_SEQ_PORT_CAP_UMP_ENDPOINT: u32 = 512;
311pub const SND_SEQ_PORT_DIR_UNKNOWN: u32 = 0;
312pub const SND_SEQ_PORT_DIR_INPUT: u32 = 1;
313pub const SND_SEQ_PORT_DIR_OUTPUT: u32 = 2;
314pub const SND_SEQ_PORT_DIR_BIDIRECTION: u32 = 3;
315pub const SND_SEQ_PORT_TYPE_SPECIFIC: u32 = 1;
316pub const SND_SEQ_PORT_TYPE_MIDI_GENERIC: u32 = 2;
317pub const SND_SEQ_PORT_TYPE_MIDI_GM: u32 = 4;
318pub const SND_SEQ_PORT_TYPE_MIDI_GS: u32 = 8;
319pub const SND_SEQ_PORT_TYPE_MIDI_XG: u32 = 16;
320pub const SND_SEQ_PORT_TYPE_MIDI_MT32: u32 = 32;
321pub const SND_SEQ_PORT_TYPE_MIDI_GM2: u32 = 64;
322pub const SND_SEQ_PORT_TYPE_MIDI_UMP: u32 = 128;
323pub const SND_SEQ_PORT_TYPE_SYNTH: u32 = 1024;
324pub const SND_SEQ_PORT_TYPE_DIRECT_SAMPLE: u32 = 2048;
325pub const SND_SEQ_PORT_TYPE_SAMPLE: u32 = 4096;
326pub const SND_SEQ_PORT_TYPE_HARDWARE: u32 = 65536;
327pub const SND_SEQ_PORT_TYPE_SOFTWARE: u32 = 131072;
328pub const SND_SEQ_PORT_TYPE_SYNTHESIZER: u32 = 262144;
329pub const SND_SEQ_PORT_TYPE_PORT: u32 = 524288;
330pub const SND_SEQ_PORT_TYPE_APPLICATION: u32 = 1048576;
331pub const SND_SEQ_QUEUE_DIRECT: u32 = 253;
332pub const SND_SEQ_REMOVE_INPUT: u32 = 1;
333pub const SND_SEQ_REMOVE_OUTPUT: u32 = 2;
334pub const SND_SEQ_REMOVE_DEST: u32 = 4;
335pub const SND_SEQ_REMOVE_DEST_CHANNEL: u32 = 8;
336pub const SND_SEQ_REMOVE_TIME_BEFORE: u32 = 16;
337pub const SND_SEQ_REMOVE_TIME_AFTER: u32 = 32;
338pub const SND_SEQ_REMOVE_TIME_TICK: u32 = 64;
339pub const SND_SEQ_REMOVE_EVENT_TYPE: u32 = 128;
340pub const SND_SEQ_REMOVE_IGNORE_OFF: u32 = 256;
341pub const SND_SEQ_REMOVE_TAG_MATCH: u32 = 512;
342pub type __gnuc_va_list = __builtin_va_list;
343pub type va_list = __gnuc_va_list;
344unsafe extern "C" {
345    pub fn snd_asoundlib_version() -> *const ::core::ffi::c_char;
346}
347#[repr(C)]
348#[derive(Debug, Copy, Clone)]
349pub struct snd_dlsym_link {
350    pub next: *mut snd_dlsym_link,
351    pub dlsym_name: *const ::core::ffi::c_char,
352    pub dlsym_ptr: *const ::core::ffi::c_void,
353}
354unsafe extern "C" {
355    pub fn snd_dlpath(
356        path: *mut ::core::ffi::c_char,
357        path_len: usize,
358        name: *const ::core::ffi::c_char,
359    ) -> ::core::ffi::c_int;
360}
361unsafe extern "C" {
362    pub fn snd_dlopen(
363        file: *const ::core::ffi::c_char,
364        mode: ::core::ffi::c_int,
365        errbuf: *mut ::core::ffi::c_char,
366        errbuflen: usize,
367    ) -> *mut ::core::ffi::c_void;
368}
369unsafe extern "C" {
370    pub fn snd_dlsym(
371        handle: *mut ::core::ffi::c_void,
372        name: *const ::core::ffi::c_char,
373        version: *const ::core::ffi::c_char,
374    ) -> *mut ::core::ffi::c_void;
375}
376unsafe extern "C" {
377    pub fn snd_dlclose(handle: *mut ::core::ffi::c_void) -> ::core::ffi::c_int;
378}
379#[repr(C)]
380#[derive(Debug, Copy, Clone)]
381pub struct _snd_async_handler {
382    _unused: [u8; 0],
383}
384pub type snd_async_handler_t = _snd_async_handler;
385pub type snd_async_callback_t =
386    ::core::option::Option<unsafe extern "C" fn(handler: *mut snd_async_handler_t)>;
387unsafe extern "C" {
388    pub fn snd_async_add_handler(
389        handler: *mut *mut snd_async_handler_t,
390        fd: ::core::ffi::c_int,
391        callback: snd_async_callback_t,
392        private_data: *mut ::core::ffi::c_void,
393    ) -> ::core::ffi::c_int;
394}
395unsafe extern "C" {
396    pub fn snd_async_del_handler(handler: *mut snd_async_handler_t) -> ::core::ffi::c_int;
397}
398unsafe extern "C" {
399    pub fn snd_async_handler_get_fd(handler: *mut snd_async_handler_t) -> ::core::ffi::c_int;
400}
401unsafe extern "C" {
402    pub fn snd_async_handler_get_signo(handler: *mut snd_async_handler_t) -> ::core::ffi::c_int;
403}
404unsafe extern "C" {
405    pub fn snd_async_handler_get_callback_private(
406        handler: *mut snd_async_handler_t,
407    ) -> *mut ::core::ffi::c_void;
408}
409#[repr(C)]
410#[derive(Debug, Copy, Clone)]
411pub struct snd_shm_area {
412    _unused: [u8; 0],
413}
414unsafe extern "C" {
415    pub fn snd_shm_area_create(
416        shmid: ::core::ffi::c_int,
417        ptr: *mut ::core::ffi::c_void,
418    ) -> *mut snd_shm_area;
419}
420unsafe extern "C" {
421    pub fn snd_shm_area_share(area: *mut snd_shm_area) -> *mut snd_shm_area;
422}
423unsafe extern "C" {
424    pub fn snd_shm_area_destroy(area: *mut snd_shm_area) -> ::core::ffi::c_int;
425}
426unsafe extern "C" {
427    pub fn snd_user_file(
428        file: *const ::core::ffi::c_char,
429        result: *mut *mut ::core::ffi::c_char,
430    ) -> ::core::ffi::c_int;
431}
432pub type snd_timestamp_t = timeval;
433pub type snd_htimestamp_t = timespec;
434#[repr(C)]
435#[derive(Debug, Copy, Clone)]
436pub struct _snd_input {
437    _unused: [u8; 0],
438}
439pub type snd_input_t = _snd_input;
440pub const SND_INPUT_STDIO: _snd_input_type = 0;
441pub const SND_INPUT_BUFFER: _snd_input_type = 1;
442pub type _snd_input_type = ::core::ffi::c_uint;
443pub use self::_snd_input_type as snd_input_type_t;
444unsafe extern "C" {
445    pub fn snd_input_stdio_open(
446        inputp: *mut *mut snd_input_t,
447        file: *const ::core::ffi::c_char,
448        mode: *const ::core::ffi::c_char,
449    ) -> ::core::ffi::c_int;
450}
451unsafe extern "C" {
452    pub fn snd_input_stdio_attach(
453        inputp: *mut *mut snd_input_t,
454        fp: *mut FILE,
455        _close: ::core::ffi::c_int,
456    ) -> ::core::ffi::c_int;
457}
458unsafe extern "C" {
459    pub fn snd_input_buffer_open(
460        inputp: *mut *mut snd_input_t,
461        buffer: *const ::core::ffi::c_char,
462        size: isize,
463    ) -> ::core::ffi::c_int;
464}
465unsafe extern "C" {
466    pub fn snd_input_close(input: *mut snd_input_t) -> ::core::ffi::c_int;
467}
468unsafe extern "C" {
469    pub fn snd_input_scanf(
470        input: *mut snd_input_t,
471        format: *const ::core::ffi::c_char,
472        ...
473    ) -> ::core::ffi::c_int;
474}
475unsafe extern "C" {
476    pub fn snd_input_gets(
477        input: *mut snd_input_t,
478        str_: *mut ::core::ffi::c_char,
479        size: usize,
480    ) -> *mut ::core::ffi::c_char;
481}
482unsafe extern "C" {
483    pub fn snd_input_getc(input: *mut snd_input_t) -> ::core::ffi::c_int;
484}
485unsafe extern "C" {
486    pub fn snd_input_ungetc(input: *mut snd_input_t, c: ::core::ffi::c_int) -> ::core::ffi::c_int;
487}
488#[repr(C)]
489#[derive(Debug, Copy, Clone)]
490pub struct _snd_output {
491    _unused: [u8; 0],
492}
493pub type snd_output_t = _snd_output;
494pub const SND_OUTPUT_STDIO: _snd_output_type = 0;
495pub const SND_OUTPUT_BUFFER: _snd_output_type = 1;
496pub type _snd_output_type = ::core::ffi::c_uint;
497pub use self::_snd_output_type as snd_output_type_t;
498unsafe extern "C" {
499    pub fn snd_output_stdio_open(
500        outputp: *mut *mut snd_output_t,
501        file: *const ::core::ffi::c_char,
502        mode: *const ::core::ffi::c_char,
503    ) -> ::core::ffi::c_int;
504}
505unsafe extern "C" {
506    pub fn snd_output_stdio_attach(
507        outputp: *mut *mut snd_output_t,
508        fp: *mut FILE,
509        _close: ::core::ffi::c_int,
510    ) -> ::core::ffi::c_int;
511}
512unsafe extern "C" {
513    pub fn snd_output_buffer_open(outputp: *mut *mut snd_output_t) -> ::core::ffi::c_int;
514}
515unsafe extern "C" {
516    pub fn snd_output_buffer_string(
517        output: *mut snd_output_t,
518        buf: *mut *mut ::core::ffi::c_char,
519    ) -> usize;
520}
521unsafe extern "C" {
522    pub fn snd_output_buffer_steal(
523        output: *mut snd_output_t,
524        buf: *mut *mut ::core::ffi::c_char,
525    ) -> usize;
526}
527unsafe extern "C" {
528    pub fn snd_output_close(output: *mut snd_output_t) -> ::core::ffi::c_int;
529}
530unsafe extern "C" {
531    pub fn snd_output_printf(
532        output: *mut snd_output_t,
533        format: *const ::core::ffi::c_char,
534        ...
535    ) -> ::core::ffi::c_int;
536}
537unsafe extern "C" {
538    pub fn snd_output_vprintf(
539        output: *mut snd_output_t,
540        format: *const ::core::ffi::c_char,
541        args: *mut __va_list_tag,
542    ) -> ::core::ffi::c_int;
543}
544unsafe extern "C" {
545    pub fn snd_output_puts(
546        output: *mut snd_output_t,
547        str_: *const ::core::ffi::c_char,
548    ) -> ::core::ffi::c_int;
549}
550unsafe extern "C" {
551    pub fn snd_output_putc(output: *mut snd_output_t, c: ::core::ffi::c_int) -> ::core::ffi::c_int;
552}
553unsafe extern "C" {
554    pub fn snd_output_flush(output: *mut snd_output_t) -> ::core::ffi::c_int;
555}
556unsafe extern "C" {
557    pub fn snd_strerror(errnum: ::core::ffi::c_int) -> *const ::core::ffi::c_char;
558}
559pub type snd_lib_log_handler_t = ::core::option::Option<
560    unsafe extern "C" fn(
561        prio: ::core::ffi::c_int,
562        interface: ::core::ffi::c_int,
563        file: *const ::core::ffi::c_char,
564        line: ::core::ffi::c_int,
565        function: *const ::core::ffi::c_char,
566        errcode: ::core::ffi::c_int,
567        fmt: *const ::core::ffi::c_char,
568        arg: *mut __va_list_tag,
569    ),
570>;
571unsafe extern "C" {
572    pub fn snd_lib_log_filter(
573        prio: ::core::ffi::c_int,
574        interface: ::core::ffi::c_int,
575        configstr: *const ::core::ffi::c_char,
576    ) -> ::core::ffi::c_int;
577}
578unsafe extern "C" {
579    pub fn snd_lib_log(
580        prio: ::core::ffi::c_int,
581        interface: ::core::ffi::c_int,
582        file: *const ::core::ffi::c_char,
583        line: ::core::ffi::c_int,
584        function: *const ::core::ffi::c_char,
585        errcode: ::core::ffi::c_int,
586        fmt: *const ::core::ffi::c_char,
587        ...
588    );
589}
590unsafe extern "C" {
591    pub fn snd_lib_check(
592        interface: ::core::ffi::c_int,
593        file: *const ::core::ffi::c_char,
594        line: ::core::ffi::c_int,
595        function: *const ::core::ffi::c_char,
596        errcode: ::core::ffi::c_int,
597        fmt: *const ::core::ffi::c_char,
598        ...
599    );
600}
601unsafe extern "C" {
602    pub fn snd_lib_log_set_handler(handler: snd_lib_log_handler_t) -> snd_lib_log_handler_t;
603}
604unsafe extern "C" {
605    pub fn snd_lib_log_set_local(handler: snd_lib_log_handler_t) -> snd_lib_log_handler_t;
606}
607unsafe extern "C" {
608    pub fn snd_lib_log_priority(prio: ::core::ffi::c_int) -> *const ::core::ffi::c_char;
609}
610unsafe extern "C" {
611    pub fn snd_lib_log_interface(interface: ::core::ffi::c_int) -> *const ::core::ffi::c_char;
612}
613pub type snd_lib_error_handler_t = ::core::option::Option<
614    unsafe extern "C" fn(
615        file: *const ::core::ffi::c_char,
616        line: ::core::ffi::c_int,
617        function: *const ::core::ffi::c_char,
618        errcode: ::core::ffi::c_int,
619        fmt: *const ::core::ffi::c_char,
620        ...
621    ),
622>;
623unsafe extern "C" {
624    pub fn snd_lib_error_set_handler(handler: snd_lib_error_handler_t) -> ::core::ffi::c_int;
625}
626pub type snd_local_error_handler_t = ::core::option::Option<
627    unsafe extern "C" fn(
628        file: *const ::core::ffi::c_char,
629        line: ::core::ffi::c_int,
630        func: *const ::core::ffi::c_char,
631        errcode: ::core::ffi::c_int,
632        fmt: *const ::core::ffi::c_char,
633        arg: *mut __va_list_tag,
634    ),
635>;
636unsafe extern "C" {
637    pub fn snd_lib_error_set_local(func: snd_local_error_handler_t) -> snd_local_error_handler_t;
638}
639pub const SND_CONFIG_TYPE_INTEGER: _snd_config_type = 0;
640pub const SND_CONFIG_TYPE_INTEGER64: _snd_config_type = 1;
641pub const SND_CONFIG_TYPE_REAL: _snd_config_type = 2;
642pub const SND_CONFIG_TYPE_STRING: _snd_config_type = 3;
643pub const SND_CONFIG_TYPE_POINTER: _snd_config_type = 4;
644pub const SND_CONFIG_TYPE_COMPOUND: _snd_config_type = 1024;
645pub type _snd_config_type = ::core::ffi::c_uint;
646pub use self::_snd_config_type as snd_config_type_t;
647#[repr(C)]
648#[derive(Debug, Copy, Clone)]
649pub struct _snd_config {
650    _unused: [u8; 0],
651}
652pub type snd_config_t = _snd_config;
653#[repr(C)]
654#[derive(Debug, Copy, Clone)]
655pub struct _snd_config_iterator {
656    _unused: [u8; 0],
657}
658pub type snd_config_iterator_t = *mut _snd_config_iterator;
659#[repr(C)]
660#[derive(Debug, Copy, Clone)]
661pub struct _snd_config_update {
662    _unused: [u8; 0],
663}
664pub type snd_config_update_t = _snd_config_update;
665unsafe extern "C" {
666    pub fn snd_config_topdir() -> *const ::core::ffi::c_char;
667}
668unsafe extern "C" {
669    pub fn snd_config_top(config: *mut *mut snd_config_t) -> ::core::ffi::c_int;
670}
671unsafe extern "C" {
672    pub fn snd_config_load(config: *mut snd_config_t, in_: *mut snd_input_t) -> ::core::ffi::c_int;
673}
674unsafe extern "C" {
675    pub fn snd_config_load_string(
676        config: *mut *mut snd_config_t,
677        s: *const ::core::ffi::c_char,
678        size: usize,
679    ) -> ::core::ffi::c_int;
680}
681unsafe extern "C" {
682    pub fn snd_config_load_override(
683        config: *mut snd_config_t,
684        in_: *mut snd_input_t,
685    ) -> ::core::ffi::c_int;
686}
687unsafe extern "C" {
688    pub fn snd_config_save(config: *mut snd_config_t, out: *mut snd_output_t)
689    -> ::core::ffi::c_int;
690}
691unsafe extern "C" {
692    pub fn snd_config_update() -> ::core::ffi::c_int;
693}
694unsafe extern "C" {
695    pub fn snd_config_update_r(
696        top: *mut *mut snd_config_t,
697        update: *mut *mut snd_config_update_t,
698        path: *const ::core::ffi::c_char,
699    ) -> ::core::ffi::c_int;
700}
701unsafe extern "C" {
702    pub fn snd_config_update_free(update: *mut snd_config_update_t) -> ::core::ffi::c_int;
703}
704unsafe extern "C" {
705    pub fn snd_config_update_free_global() -> ::core::ffi::c_int;
706}
707unsafe extern "C" {
708    pub fn snd_config_update_ref(top: *mut *mut snd_config_t) -> ::core::ffi::c_int;
709}
710unsafe extern "C" {
711    pub fn snd_config_ref(top: *mut snd_config_t);
712}
713unsafe extern "C" {
714    pub fn snd_config_unref(top: *mut snd_config_t);
715}
716unsafe extern "C" {
717    pub fn snd_config_search(
718        config: *mut snd_config_t,
719        key: *const ::core::ffi::c_char,
720        result: *mut *mut snd_config_t,
721    ) -> ::core::ffi::c_int;
722}
723unsafe extern "C" {
724    pub fn snd_config_searchv(
725        config: *mut snd_config_t,
726        result: *mut *mut snd_config_t,
727        ...
728    ) -> ::core::ffi::c_int;
729}
730unsafe extern "C" {
731    pub fn snd_config_search_definition(
732        config: *mut snd_config_t,
733        base: *const ::core::ffi::c_char,
734        key: *const ::core::ffi::c_char,
735        result: *mut *mut snd_config_t,
736    ) -> ::core::ffi::c_int;
737}
738pub type snd_config_expand_fcn_t = ::core::option::Option<
739    unsafe extern "C" fn(
740        dst: *mut *mut snd_config_t,
741        s: *const ::core::ffi::c_char,
742        private_data: *mut ::core::ffi::c_void,
743    ) -> ::core::ffi::c_int,
744>;
745unsafe extern "C" {
746    pub fn snd_config_expand_custom(
747        config: *mut snd_config_t,
748        root: *mut snd_config_t,
749        fcn: snd_config_expand_fcn_t,
750        private_data: *mut ::core::ffi::c_void,
751        result: *mut *mut snd_config_t,
752    ) -> ::core::ffi::c_int;
753}
754unsafe extern "C" {
755    pub fn snd_config_expand(
756        config: *mut snd_config_t,
757        root: *mut snd_config_t,
758        args: *const ::core::ffi::c_char,
759        private_data: *mut snd_config_t,
760        result: *mut *mut snd_config_t,
761    ) -> ::core::ffi::c_int;
762}
763unsafe extern "C" {
764    pub fn snd_config_evaluate(
765        config: *mut snd_config_t,
766        root: *mut snd_config_t,
767        private_data: *mut snd_config_t,
768        result: *mut *mut snd_config_t,
769    ) -> ::core::ffi::c_int;
770}
771unsafe extern "C" {
772    pub fn snd_config_evaluate_string(
773        dst: *mut *mut snd_config_t,
774        s: *const ::core::ffi::c_char,
775        fcn: snd_config_expand_fcn_t,
776        private_data: *mut ::core::ffi::c_void,
777    ) -> ::core::ffi::c_int;
778}
779unsafe extern "C" {
780    pub fn snd_config_add(
781        config: *mut snd_config_t,
782        child: *mut snd_config_t,
783    ) -> ::core::ffi::c_int;
784}
785unsafe extern "C" {
786    pub fn snd_config_add_before(
787        before: *mut snd_config_t,
788        child: *mut snd_config_t,
789    ) -> ::core::ffi::c_int;
790}
791unsafe extern "C" {
792    pub fn snd_config_add_after(
793        after: *mut snd_config_t,
794        child: *mut snd_config_t,
795    ) -> ::core::ffi::c_int;
796}
797unsafe extern "C" {
798    pub fn snd_config_remove(config: *mut snd_config_t) -> ::core::ffi::c_int;
799}
800unsafe extern "C" {
801    pub fn snd_config_delete(config: *mut snd_config_t) -> ::core::ffi::c_int;
802}
803unsafe extern "C" {
804    pub fn snd_config_delete_compound_members(config: *const snd_config_t) -> ::core::ffi::c_int;
805}
806unsafe extern "C" {
807    pub fn snd_config_copy(
808        dst: *mut *mut snd_config_t,
809        src: *mut snd_config_t,
810    ) -> ::core::ffi::c_int;
811}
812unsafe extern "C" {
813    pub fn snd_config_substitute(
814        dst: *mut snd_config_t,
815        src: *mut snd_config_t,
816    ) -> ::core::ffi::c_int;
817}
818unsafe extern "C" {
819    pub fn snd_config_merge(
820        dst: *mut snd_config_t,
821        src: *mut snd_config_t,
822        override_: ::core::ffi::c_int,
823    ) -> ::core::ffi::c_int;
824}
825unsafe extern "C" {
826    pub fn snd_config_make(
827        config: *mut *mut snd_config_t,
828        key: *const ::core::ffi::c_char,
829        type_: snd_config_type_t,
830    ) -> ::core::ffi::c_int;
831}
832unsafe extern "C" {
833    pub fn snd_config_make_integer(
834        config: *mut *mut snd_config_t,
835        key: *const ::core::ffi::c_char,
836    ) -> ::core::ffi::c_int;
837}
838unsafe extern "C" {
839    pub fn snd_config_make_integer64(
840        config: *mut *mut snd_config_t,
841        key: *const ::core::ffi::c_char,
842    ) -> ::core::ffi::c_int;
843}
844unsafe extern "C" {
845    pub fn snd_config_make_real(
846        config: *mut *mut snd_config_t,
847        key: *const ::core::ffi::c_char,
848    ) -> ::core::ffi::c_int;
849}
850unsafe extern "C" {
851    pub fn snd_config_make_string(
852        config: *mut *mut snd_config_t,
853        key: *const ::core::ffi::c_char,
854    ) -> ::core::ffi::c_int;
855}
856unsafe extern "C" {
857    pub fn snd_config_make_pointer(
858        config: *mut *mut snd_config_t,
859        key: *const ::core::ffi::c_char,
860    ) -> ::core::ffi::c_int;
861}
862unsafe extern "C" {
863    pub fn snd_config_make_compound(
864        config: *mut *mut snd_config_t,
865        key: *const ::core::ffi::c_char,
866        join: ::core::ffi::c_int,
867    ) -> ::core::ffi::c_int;
868}
869unsafe extern "C" {
870    pub fn snd_config_make_path(
871        config: *mut *mut snd_config_t,
872        root: *mut snd_config_t,
873        key: *const ::core::ffi::c_char,
874        join: ::core::ffi::c_int,
875        override_: ::core::ffi::c_int,
876    ) -> ::core::ffi::c_int;
877}
878unsafe extern "C" {
879    pub fn snd_config_imake_integer(
880        config: *mut *mut snd_config_t,
881        key: *const ::core::ffi::c_char,
882        value: ::core::ffi::c_long,
883    ) -> ::core::ffi::c_int;
884}
885unsafe extern "C" {
886    pub fn snd_config_imake_integer64(
887        config: *mut *mut snd_config_t,
888        key: *const ::core::ffi::c_char,
889        value: ::core::ffi::c_longlong,
890    ) -> ::core::ffi::c_int;
891}
892unsafe extern "C" {
893    pub fn snd_config_imake_real(
894        config: *mut *mut snd_config_t,
895        key: *const ::core::ffi::c_char,
896        value: f64,
897    ) -> ::core::ffi::c_int;
898}
899unsafe extern "C" {
900    pub fn snd_config_imake_string(
901        config: *mut *mut snd_config_t,
902        key: *const ::core::ffi::c_char,
903        ascii: *const ::core::ffi::c_char,
904    ) -> ::core::ffi::c_int;
905}
906unsafe extern "C" {
907    pub fn snd_config_imake_safe_string(
908        config: *mut *mut snd_config_t,
909        key: *const ::core::ffi::c_char,
910        ascii: *const ::core::ffi::c_char,
911    ) -> ::core::ffi::c_int;
912}
913unsafe extern "C" {
914    pub fn snd_config_imake_pointer(
915        config: *mut *mut snd_config_t,
916        key: *const ::core::ffi::c_char,
917        ptr: *const ::core::ffi::c_void,
918    ) -> ::core::ffi::c_int;
919}
920unsafe extern "C" {
921    pub fn snd_config_get_type(config: *const snd_config_t) -> snd_config_type_t;
922}
923unsafe extern "C" {
924    pub fn snd_config_is_array(config: *const snd_config_t) -> ::core::ffi::c_int;
925}
926unsafe extern "C" {
927    pub fn snd_config_is_empty(config: *const snd_config_t) -> ::core::ffi::c_int;
928}
929unsafe extern "C" {
930    pub fn snd_config_set_id(
931        config: *mut snd_config_t,
932        id: *const ::core::ffi::c_char,
933    ) -> ::core::ffi::c_int;
934}
935unsafe extern "C" {
936    pub fn snd_config_set_integer(
937        config: *mut snd_config_t,
938        value: ::core::ffi::c_long,
939    ) -> ::core::ffi::c_int;
940}
941unsafe extern "C" {
942    pub fn snd_config_set_integer64(
943        config: *mut snd_config_t,
944        value: ::core::ffi::c_longlong,
945    ) -> ::core::ffi::c_int;
946}
947unsafe extern "C" {
948    pub fn snd_config_set_real(config: *mut snd_config_t, value: f64) -> ::core::ffi::c_int;
949}
950unsafe extern "C" {
951    pub fn snd_config_set_string(
952        config: *mut snd_config_t,
953        value: *const ::core::ffi::c_char,
954    ) -> ::core::ffi::c_int;
955}
956unsafe extern "C" {
957    pub fn snd_config_set_ascii(
958        config: *mut snd_config_t,
959        ascii: *const ::core::ffi::c_char,
960    ) -> ::core::ffi::c_int;
961}
962unsafe extern "C" {
963    pub fn snd_config_set_pointer(
964        config: *mut snd_config_t,
965        ptr: *const ::core::ffi::c_void,
966    ) -> ::core::ffi::c_int;
967}
968unsafe extern "C" {
969    pub fn snd_config_get_id(
970        config: *const snd_config_t,
971        value: *mut *const ::core::ffi::c_char,
972    ) -> ::core::ffi::c_int;
973}
974unsafe extern "C" {
975    pub fn snd_config_get_integer(
976        config: *const snd_config_t,
977        value: *mut ::core::ffi::c_long,
978    ) -> ::core::ffi::c_int;
979}
980unsafe extern "C" {
981    pub fn snd_config_get_integer64(
982        config: *const snd_config_t,
983        value: *mut ::core::ffi::c_longlong,
984    ) -> ::core::ffi::c_int;
985}
986unsafe extern "C" {
987    pub fn snd_config_get_real(config: *const snd_config_t, value: *mut f64) -> ::core::ffi::c_int;
988}
989unsafe extern "C" {
990    pub fn snd_config_get_ireal(config: *const snd_config_t, value: *mut f64)
991    -> ::core::ffi::c_int;
992}
993unsafe extern "C" {
994    pub fn snd_config_get_string(
995        config: *const snd_config_t,
996        value: *mut *const ::core::ffi::c_char,
997    ) -> ::core::ffi::c_int;
998}
999unsafe extern "C" {
1000    pub fn snd_config_get_ascii(
1001        config: *const snd_config_t,
1002        value: *mut *mut ::core::ffi::c_char,
1003    ) -> ::core::ffi::c_int;
1004}
1005unsafe extern "C" {
1006    pub fn snd_config_get_pointer(
1007        config: *const snd_config_t,
1008        value: *mut *const ::core::ffi::c_void,
1009    ) -> ::core::ffi::c_int;
1010}
1011unsafe extern "C" {
1012    pub fn snd_config_test_id(
1013        config: *const snd_config_t,
1014        id: *const ::core::ffi::c_char,
1015    ) -> ::core::ffi::c_int;
1016}
1017unsafe extern "C" {
1018    pub fn snd_config_iterator_first(node: *const snd_config_t) -> snd_config_iterator_t;
1019}
1020unsafe extern "C" {
1021    pub fn snd_config_iterator_next(iterator: snd_config_iterator_t) -> snd_config_iterator_t;
1022}
1023unsafe extern "C" {
1024    pub fn snd_config_iterator_end(node: *const snd_config_t) -> snd_config_iterator_t;
1025}
1026unsafe extern "C" {
1027    pub fn snd_config_iterator_entry(iterator: snd_config_iterator_t) -> *mut snd_config_t;
1028}
1029unsafe extern "C" {
1030    pub fn snd_config_get_bool_ascii(ascii: *const ::core::ffi::c_char) -> ::core::ffi::c_int;
1031}
1032unsafe extern "C" {
1033    pub fn snd_config_get_bool(conf: *const snd_config_t) -> ::core::ffi::c_int;
1034}
1035unsafe extern "C" {
1036    pub fn snd_config_get_card(conf: *const snd_config_t) -> ::core::ffi::c_int;
1037}
1038unsafe extern "C" {
1039    pub fn snd_config_get_ctl_iface_ascii(ascii: *const ::core::ffi::c_char) -> ::core::ffi::c_int;
1040}
1041unsafe extern "C" {
1042    pub fn snd_config_get_ctl_iface(conf: *const snd_config_t) -> ::core::ffi::c_int;
1043}
1044pub type snd_devname_t = snd_devname;
1045#[repr(C)]
1046#[derive(Debug, Copy, Clone)]
1047pub struct snd_devname {
1048    pub name: *mut ::core::ffi::c_char,
1049    pub comment: *mut ::core::ffi::c_char,
1050    pub next: *mut snd_devname_t,
1051}
1052unsafe extern "C" {
1053    pub fn snd_names_list(
1054        iface: *const ::core::ffi::c_char,
1055        list: *mut *mut snd_devname_t,
1056    ) -> ::core::ffi::c_int;
1057}
1058unsafe extern "C" {
1059    pub fn snd_names_list_free(list: *mut snd_devname_t);
1060}
1061#[repr(C)]
1062#[derive(Debug, Copy, Clone)]
1063pub struct _snd_pcm_info {
1064    _unused: [u8; 0],
1065}
1066pub type snd_pcm_info_t = _snd_pcm_info;
1067#[repr(C)]
1068#[derive(Debug, Copy, Clone)]
1069pub struct _snd_pcm_hw_params {
1070    _unused: [u8; 0],
1071}
1072pub type snd_pcm_hw_params_t = _snd_pcm_hw_params;
1073#[repr(C)]
1074#[derive(Debug, Copy, Clone)]
1075pub struct _snd_pcm_sw_params {
1076    _unused: [u8; 0],
1077}
1078pub type snd_pcm_sw_params_t = _snd_pcm_sw_params;
1079#[repr(C)]
1080#[derive(Debug, Copy, Clone)]
1081pub struct _snd_pcm_status {
1082    _unused: [u8; 0],
1083}
1084pub type snd_pcm_status_t = _snd_pcm_status;
1085#[repr(C)]
1086#[derive(Debug, Copy, Clone)]
1087pub struct _snd_pcm_access_mask {
1088    _unused: [u8; 0],
1089}
1090pub type snd_pcm_access_mask_t = _snd_pcm_access_mask;
1091#[repr(C)]
1092#[derive(Debug, Copy, Clone)]
1093pub struct _snd_pcm_format_mask {
1094    _unused: [u8; 0],
1095}
1096pub type snd_pcm_format_mask_t = _snd_pcm_format_mask;
1097#[repr(C)]
1098#[derive(Debug, Copy, Clone)]
1099pub struct _snd_pcm_subformat_mask {
1100    _unused: [u8; 0],
1101}
1102pub type snd_pcm_subformat_mask_t = _snd_pcm_subformat_mask;
1103pub const SND_PCM_CLASS_GENERIC: _snd_pcm_class = 0;
1104pub const SND_PCM_CLASS_MULTI: _snd_pcm_class = 1;
1105pub const SND_PCM_CLASS_MODEM: _snd_pcm_class = 2;
1106pub const SND_PCM_CLASS_DIGITIZER: _snd_pcm_class = 3;
1107pub const SND_PCM_CLASS_LAST: _snd_pcm_class = 3;
1108pub type _snd_pcm_class = ::core::ffi::c_uint;
1109pub use self::_snd_pcm_class as snd_pcm_class_t;
1110pub const SND_PCM_SUBCLASS_GENERIC_MIX: _snd_pcm_subclass = 0;
1111pub const SND_PCM_SUBCLASS_MULTI_MIX: _snd_pcm_subclass = 1;
1112pub const SND_PCM_SUBCLASS_LAST: _snd_pcm_subclass = 1;
1113pub type _snd_pcm_subclass = ::core::ffi::c_uint;
1114pub use self::_snd_pcm_subclass as snd_pcm_subclass_t;
1115pub const SND_PCM_STREAM_PLAYBACK: _snd_pcm_stream = 0;
1116pub const SND_PCM_STREAM_CAPTURE: _snd_pcm_stream = 1;
1117pub const SND_PCM_STREAM_LAST: _snd_pcm_stream = 1;
1118pub type _snd_pcm_stream = ::core::ffi::c_uint;
1119pub use self::_snd_pcm_stream as snd_pcm_stream_t;
1120pub const SND_PCM_ACCESS_MMAP_INTERLEAVED: _snd_pcm_access = 0;
1121pub const SND_PCM_ACCESS_MMAP_NONINTERLEAVED: _snd_pcm_access = 1;
1122pub const SND_PCM_ACCESS_MMAP_COMPLEX: _snd_pcm_access = 2;
1123pub const SND_PCM_ACCESS_RW_INTERLEAVED: _snd_pcm_access = 3;
1124pub const SND_PCM_ACCESS_RW_NONINTERLEAVED: _snd_pcm_access = 4;
1125pub const SND_PCM_ACCESS_LAST: _snd_pcm_access = 4;
1126pub type _snd_pcm_access = ::core::ffi::c_uint;
1127pub use self::_snd_pcm_access as snd_pcm_access_t;
1128pub const SND_PCM_FORMAT_UNKNOWN: _snd_pcm_format = -1;
1129pub const SND_PCM_FORMAT_S8: _snd_pcm_format = 0;
1130pub const SND_PCM_FORMAT_U8: _snd_pcm_format = 1;
1131pub const SND_PCM_FORMAT_S16_LE: _snd_pcm_format = 2;
1132pub const SND_PCM_FORMAT_S16_BE: _snd_pcm_format = 3;
1133pub const SND_PCM_FORMAT_U16_LE: _snd_pcm_format = 4;
1134pub const SND_PCM_FORMAT_U16_BE: _snd_pcm_format = 5;
1135pub const SND_PCM_FORMAT_S24_LE: _snd_pcm_format = 6;
1136pub const SND_PCM_FORMAT_S24_BE: _snd_pcm_format = 7;
1137pub const SND_PCM_FORMAT_U24_LE: _snd_pcm_format = 8;
1138pub const SND_PCM_FORMAT_U24_BE: _snd_pcm_format = 9;
1139pub const SND_PCM_FORMAT_S32_LE: _snd_pcm_format = 10;
1140pub const SND_PCM_FORMAT_S32_BE: _snd_pcm_format = 11;
1141pub const SND_PCM_FORMAT_U32_LE: _snd_pcm_format = 12;
1142pub const SND_PCM_FORMAT_U32_BE: _snd_pcm_format = 13;
1143pub const SND_PCM_FORMAT_FLOAT_LE: _snd_pcm_format = 14;
1144pub const SND_PCM_FORMAT_FLOAT_BE: _snd_pcm_format = 15;
1145pub const SND_PCM_FORMAT_FLOAT64_LE: _snd_pcm_format = 16;
1146pub const SND_PCM_FORMAT_FLOAT64_BE: _snd_pcm_format = 17;
1147pub const SND_PCM_FORMAT_IEC958_SUBFRAME_LE: _snd_pcm_format = 18;
1148pub const SND_PCM_FORMAT_IEC958_SUBFRAME_BE: _snd_pcm_format = 19;
1149pub const SND_PCM_FORMAT_MU_LAW: _snd_pcm_format = 20;
1150pub const SND_PCM_FORMAT_A_LAW: _snd_pcm_format = 21;
1151pub const SND_PCM_FORMAT_IMA_ADPCM: _snd_pcm_format = 22;
1152pub const SND_PCM_FORMAT_MPEG: _snd_pcm_format = 23;
1153pub const SND_PCM_FORMAT_GSM: _snd_pcm_format = 24;
1154pub const SND_PCM_FORMAT_S20_LE: _snd_pcm_format = 25;
1155pub const SND_PCM_FORMAT_S20_BE: _snd_pcm_format = 26;
1156pub const SND_PCM_FORMAT_U20_LE: _snd_pcm_format = 27;
1157pub const SND_PCM_FORMAT_U20_BE: _snd_pcm_format = 28;
1158pub const SND_PCM_FORMAT_SPECIAL: _snd_pcm_format = 31;
1159pub const SND_PCM_FORMAT_S24_3LE: _snd_pcm_format = 32;
1160pub const SND_PCM_FORMAT_S24_3BE: _snd_pcm_format = 33;
1161pub const SND_PCM_FORMAT_U24_3LE: _snd_pcm_format = 34;
1162pub const SND_PCM_FORMAT_U24_3BE: _snd_pcm_format = 35;
1163pub const SND_PCM_FORMAT_S20_3LE: _snd_pcm_format = 36;
1164pub const SND_PCM_FORMAT_S20_3BE: _snd_pcm_format = 37;
1165pub const SND_PCM_FORMAT_U20_3LE: _snd_pcm_format = 38;
1166pub const SND_PCM_FORMAT_U20_3BE: _snd_pcm_format = 39;
1167pub const SND_PCM_FORMAT_S18_3LE: _snd_pcm_format = 40;
1168pub const SND_PCM_FORMAT_S18_3BE: _snd_pcm_format = 41;
1169pub const SND_PCM_FORMAT_U18_3LE: _snd_pcm_format = 42;
1170pub const SND_PCM_FORMAT_U18_3BE: _snd_pcm_format = 43;
1171pub const SND_PCM_FORMAT_G723_24: _snd_pcm_format = 44;
1172pub const SND_PCM_FORMAT_G723_24_1B: _snd_pcm_format = 45;
1173pub const SND_PCM_FORMAT_G723_40: _snd_pcm_format = 46;
1174pub const SND_PCM_FORMAT_G723_40_1B: _snd_pcm_format = 47;
1175pub const SND_PCM_FORMAT_DSD_U8: _snd_pcm_format = 48;
1176pub const SND_PCM_FORMAT_DSD_U16_LE: _snd_pcm_format = 49;
1177pub const SND_PCM_FORMAT_DSD_U32_LE: _snd_pcm_format = 50;
1178pub const SND_PCM_FORMAT_DSD_U16_BE: _snd_pcm_format = 51;
1179pub const SND_PCM_FORMAT_DSD_U32_BE: _snd_pcm_format = 52;
1180pub const SND_PCM_FORMAT_LAST: _snd_pcm_format = 52;
1181pub const SND_PCM_FORMAT_S16: _snd_pcm_format = 2;
1182pub const SND_PCM_FORMAT_U16: _snd_pcm_format = 4;
1183pub const SND_PCM_FORMAT_S24: _snd_pcm_format = 6;
1184pub const SND_PCM_FORMAT_U24: _snd_pcm_format = 8;
1185pub const SND_PCM_FORMAT_S32: _snd_pcm_format = 10;
1186pub const SND_PCM_FORMAT_U32: _snd_pcm_format = 12;
1187pub const SND_PCM_FORMAT_FLOAT: _snd_pcm_format = 14;
1188pub const SND_PCM_FORMAT_FLOAT64: _snd_pcm_format = 16;
1189pub const SND_PCM_FORMAT_IEC958_SUBFRAME: _snd_pcm_format = 18;
1190pub const SND_PCM_FORMAT_S20: _snd_pcm_format = 25;
1191pub const SND_PCM_FORMAT_U20: _snd_pcm_format = 27;
1192pub type _snd_pcm_format = ::core::ffi::c_int;
1193pub use self::_snd_pcm_format as snd_pcm_format_t;
1194pub const SND_PCM_SUBFORMAT_UNKNOWN: _snd_pcm_subformat = -1;
1195pub const SND_PCM_SUBFORMAT_STD: _snd_pcm_subformat = 0;
1196pub const SND_PCM_SUBFORMAT_MSBITS_MAX: _snd_pcm_subformat = 1;
1197pub const SND_PCM_SUBFORMAT_MSBITS_20: _snd_pcm_subformat = 2;
1198pub const SND_PCM_SUBFORMAT_MSBITS_24: _snd_pcm_subformat = 3;
1199pub const SND_PCM_SUBFORMAT_LAST: _snd_pcm_subformat = 3;
1200pub type _snd_pcm_subformat = ::core::ffi::c_int;
1201pub use self::_snd_pcm_subformat as snd_pcm_subformat_t;
1202pub const SND_PCM_STATE_OPEN: _snd_pcm_state = 0;
1203pub const SND_PCM_STATE_SETUP: _snd_pcm_state = 1;
1204pub const SND_PCM_STATE_PREPARED: _snd_pcm_state = 2;
1205pub const SND_PCM_STATE_RUNNING: _snd_pcm_state = 3;
1206pub const SND_PCM_STATE_XRUN: _snd_pcm_state = 4;
1207pub const SND_PCM_STATE_DRAINING: _snd_pcm_state = 5;
1208pub const SND_PCM_STATE_PAUSED: _snd_pcm_state = 6;
1209pub const SND_PCM_STATE_SUSPENDED: _snd_pcm_state = 7;
1210pub const SND_PCM_STATE_DISCONNECTED: _snd_pcm_state = 8;
1211pub const SND_PCM_STATE_LAST: _snd_pcm_state = 8;
1212pub const SND_PCM_STATE_PRIVATE1: _snd_pcm_state = 1024;
1213pub type _snd_pcm_state = ::core::ffi::c_uint;
1214pub use self::_snd_pcm_state as snd_pcm_state_t;
1215pub const SND_PCM_START_DATA: _snd_pcm_start = 0;
1216pub const SND_PCM_START_EXPLICIT: _snd_pcm_start = 1;
1217pub const SND_PCM_START_LAST: _snd_pcm_start = 1;
1218pub type _snd_pcm_start = ::core::ffi::c_uint;
1219pub use self::_snd_pcm_start as snd_pcm_start_t;
1220pub const SND_PCM_XRUN_NONE: _snd_pcm_xrun = 0;
1221pub const SND_PCM_XRUN_STOP: _snd_pcm_xrun = 1;
1222pub const SND_PCM_XRUN_LAST: _snd_pcm_xrun = 1;
1223pub type _snd_pcm_xrun = ::core::ffi::c_uint;
1224pub use self::_snd_pcm_xrun as snd_pcm_xrun_t;
1225pub const SND_PCM_TSTAMP_NONE: _snd_pcm_tstamp = 0;
1226pub const SND_PCM_TSTAMP_ENABLE: _snd_pcm_tstamp = 1;
1227pub const SND_PCM_TSTAMP_MMAP: _snd_pcm_tstamp = 1;
1228pub const SND_PCM_TSTAMP_LAST: _snd_pcm_tstamp = 1;
1229pub type _snd_pcm_tstamp = ::core::ffi::c_uint;
1230pub use self::_snd_pcm_tstamp as snd_pcm_tstamp_t;
1231pub const SND_PCM_TSTAMP_TYPE_GETTIMEOFDAY: _snd_pcm_tstamp_type = 0;
1232pub const SND_PCM_TSTAMP_TYPE_MONOTONIC: _snd_pcm_tstamp_type = 1;
1233pub const SND_PCM_TSTAMP_TYPE_MONOTONIC_RAW: _snd_pcm_tstamp_type = 2;
1234pub const SND_PCM_TSTAMP_TYPE_LAST: _snd_pcm_tstamp_type = 2;
1235pub type _snd_pcm_tstamp_type = ::core::ffi::c_uint;
1236pub use self::_snd_pcm_tstamp_type as snd_pcm_tstamp_type_t;
1237pub const SND_PCM_AUDIO_TSTAMP_TYPE_COMPAT: _snd_pcm_audio_tstamp_type = 0;
1238pub const SND_PCM_AUDIO_TSTAMP_TYPE_DEFAULT: _snd_pcm_audio_tstamp_type = 1;
1239pub const SND_PCM_AUDIO_TSTAMP_TYPE_LINK: _snd_pcm_audio_tstamp_type = 2;
1240pub const SND_PCM_AUDIO_TSTAMP_TYPE_LINK_ABSOLUTE: _snd_pcm_audio_tstamp_type = 3;
1241pub const SND_PCM_AUDIO_TSTAMP_TYPE_LINK_ESTIMATED: _snd_pcm_audio_tstamp_type = 4;
1242pub const SND_PCM_AUDIO_TSTAMP_TYPE_LINK_SYNCHRONIZED: _snd_pcm_audio_tstamp_type = 5;
1243pub const SND_PCM_AUDIO_TSTAMP_TYPE_LAST: _snd_pcm_audio_tstamp_type = 5;
1244pub type _snd_pcm_audio_tstamp_type = ::core::ffi::c_uint;
1245pub use self::_snd_pcm_audio_tstamp_type as snd_pcm_audio_tstamp_type_t;
1246#[repr(C)]
1247#[repr(align(4))]
1248#[derive(Debug, Copy, Clone)]
1249pub struct _snd_pcm_audio_tstamp_config {
1250    pub _bitfield_align_1: [u8; 0],
1251    pub _bitfield_1: __BindgenBitfieldUnit<[u8; 1usize]>,
1252    pub __bindgen_padding_0: [u8; 3usize],
1253}
1254impl _snd_pcm_audio_tstamp_config {
1255    #[inline]
1256    pub fn type_requested(&self) -> ::core::ffi::c_uint {
1257        unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 4u8) as u32) }
1258    }
1259    #[inline]
1260    pub fn set_type_requested(&mut self, val: ::core::ffi::c_uint) {
1261        unsafe {
1262            let val: u32 = ::core::mem::transmute(val);
1263            self._bitfield_1.set(0usize, 4u8, val as u64)
1264        }
1265    }
1266    #[inline]
1267    pub unsafe fn type_requested_raw(this: *const Self) -> ::core::ffi::c_uint {
1268        unsafe {
1269            ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get(
1270                ::core::ptr::addr_of!((*this)._bitfield_1),
1271                0usize,
1272                4u8,
1273            ) as u32)
1274        }
1275    }
1276    #[inline]
1277    pub unsafe fn set_type_requested_raw(this: *mut Self, val: ::core::ffi::c_uint) {
1278        unsafe {
1279            let val: u32 = ::core::mem::transmute(val);
1280            <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set(
1281                ::core::ptr::addr_of_mut!((*this)._bitfield_1),
1282                0usize,
1283                4u8,
1284                val as u64,
1285            )
1286        }
1287    }
1288    #[inline]
1289    pub fn report_delay(&self) -> ::core::ffi::c_uint {
1290        unsafe { ::core::mem::transmute(self._bitfield_1.get(4usize, 1u8) as u32) }
1291    }
1292    #[inline]
1293    pub fn set_report_delay(&mut self, val: ::core::ffi::c_uint) {
1294        unsafe {
1295            let val: u32 = ::core::mem::transmute(val);
1296            self._bitfield_1.set(4usize, 1u8, val as u64)
1297        }
1298    }
1299    #[inline]
1300    pub unsafe fn report_delay_raw(this: *const Self) -> ::core::ffi::c_uint {
1301        unsafe {
1302            ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get(
1303                ::core::ptr::addr_of!((*this)._bitfield_1),
1304                4usize,
1305                1u8,
1306            ) as u32)
1307        }
1308    }
1309    #[inline]
1310    pub unsafe fn set_report_delay_raw(this: *mut Self, val: ::core::ffi::c_uint) {
1311        unsafe {
1312            let val: u32 = ::core::mem::transmute(val);
1313            <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set(
1314                ::core::ptr::addr_of_mut!((*this)._bitfield_1),
1315                4usize,
1316                1u8,
1317                val as u64,
1318            )
1319        }
1320    }
1321    #[inline]
1322    pub fn new_bitfield_1(
1323        type_requested: ::core::ffi::c_uint,
1324        report_delay: ::core::ffi::c_uint,
1325    ) -> __BindgenBitfieldUnit<[u8; 1usize]> {
1326        let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 1usize]> = Default::default();
1327        __bindgen_bitfield_unit.set(0usize, 4u8, {
1328            let type_requested: u32 = unsafe { ::core::mem::transmute(type_requested) };
1329            type_requested as u64
1330        });
1331        __bindgen_bitfield_unit.set(4usize, 1u8, {
1332            let report_delay: u32 = unsafe { ::core::mem::transmute(report_delay) };
1333            report_delay as u64
1334        });
1335        __bindgen_bitfield_unit
1336    }
1337}
1338pub type snd_pcm_audio_tstamp_config_t = _snd_pcm_audio_tstamp_config;
1339#[repr(C)]
1340#[derive(Debug, Copy, Clone)]
1341pub struct _snd_pcm_audio_tstamp_report {
1342    pub _bitfield_align_1: [u8; 0],
1343    pub _bitfield_1: __BindgenBitfieldUnit<[u8; 1usize]>,
1344    pub accuracy: ::core::ffi::c_uint,
1345}
1346impl _snd_pcm_audio_tstamp_report {
1347    #[inline]
1348    pub fn valid(&self) -> ::core::ffi::c_uint {
1349        unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u32) }
1350    }
1351    #[inline]
1352    pub fn set_valid(&mut self, val: ::core::ffi::c_uint) {
1353        unsafe {
1354            let val: u32 = ::core::mem::transmute(val);
1355            self._bitfield_1.set(0usize, 1u8, val as u64)
1356        }
1357    }
1358    #[inline]
1359    pub unsafe fn valid_raw(this: *const Self) -> ::core::ffi::c_uint {
1360        unsafe {
1361            ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get(
1362                ::core::ptr::addr_of!((*this)._bitfield_1),
1363                0usize,
1364                1u8,
1365            ) as u32)
1366        }
1367    }
1368    #[inline]
1369    pub unsafe fn set_valid_raw(this: *mut Self, val: ::core::ffi::c_uint) {
1370        unsafe {
1371            let val: u32 = ::core::mem::transmute(val);
1372            <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set(
1373                ::core::ptr::addr_of_mut!((*this)._bitfield_1),
1374                0usize,
1375                1u8,
1376                val as u64,
1377            )
1378        }
1379    }
1380    #[inline]
1381    pub fn actual_type(&self) -> ::core::ffi::c_uint {
1382        unsafe { ::core::mem::transmute(self._bitfield_1.get(1usize, 4u8) as u32) }
1383    }
1384    #[inline]
1385    pub fn set_actual_type(&mut self, val: ::core::ffi::c_uint) {
1386        unsafe {
1387            let val: u32 = ::core::mem::transmute(val);
1388            self._bitfield_1.set(1usize, 4u8, val as u64)
1389        }
1390    }
1391    #[inline]
1392    pub unsafe fn actual_type_raw(this: *const Self) -> ::core::ffi::c_uint {
1393        unsafe {
1394            ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get(
1395                ::core::ptr::addr_of!((*this)._bitfield_1),
1396                1usize,
1397                4u8,
1398            ) as u32)
1399        }
1400    }
1401    #[inline]
1402    pub unsafe fn set_actual_type_raw(this: *mut Self, val: ::core::ffi::c_uint) {
1403        unsafe {
1404            let val: u32 = ::core::mem::transmute(val);
1405            <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set(
1406                ::core::ptr::addr_of_mut!((*this)._bitfield_1),
1407                1usize,
1408                4u8,
1409                val as u64,
1410            )
1411        }
1412    }
1413    #[inline]
1414    pub fn accuracy_report(&self) -> ::core::ffi::c_uint {
1415        unsafe { ::core::mem::transmute(self._bitfield_1.get(5usize, 1u8) as u32) }
1416    }
1417    #[inline]
1418    pub fn set_accuracy_report(&mut self, val: ::core::ffi::c_uint) {
1419        unsafe {
1420            let val: u32 = ::core::mem::transmute(val);
1421            self._bitfield_1.set(5usize, 1u8, val as u64)
1422        }
1423    }
1424    #[inline]
1425    pub unsafe fn accuracy_report_raw(this: *const Self) -> ::core::ffi::c_uint {
1426        unsafe {
1427            ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get(
1428                ::core::ptr::addr_of!((*this)._bitfield_1),
1429                5usize,
1430                1u8,
1431            ) as u32)
1432        }
1433    }
1434    #[inline]
1435    pub unsafe fn set_accuracy_report_raw(this: *mut Self, val: ::core::ffi::c_uint) {
1436        unsafe {
1437            let val: u32 = ::core::mem::transmute(val);
1438            <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set(
1439                ::core::ptr::addr_of_mut!((*this)._bitfield_1),
1440                5usize,
1441                1u8,
1442                val as u64,
1443            )
1444        }
1445    }
1446    #[inline]
1447    pub fn new_bitfield_1(
1448        valid: ::core::ffi::c_uint,
1449        actual_type: ::core::ffi::c_uint,
1450        accuracy_report: ::core::ffi::c_uint,
1451    ) -> __BindgenBitfieldUnit<[u8; 1usize]> {
1452        let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 1usize]> = Default::default();
1453        __bindgen_bitfield_unit.set(0usize, 1u8, {
1454            let valid: u32 = unsafe { ::core::mem::transmute(valid) };
1455            valid as u64
1456        });
1457        __bindgen_bitfield_unit.set(1usize, 4u8, {
1458            let actual_type: u32 = unsafe { ::core::mem::transmute(actual_type) };
1459            actual_type as u64
1460        });
1461        __bindgen_bitfield_unit.set(5usize, 1u8, {
1462            let accuracy_report: u32 = unsafe { ::core::mem::transmute(accuracy_report) };
1463            accuracy_report as u64
1464        });
1465        __bindgen_bitfield_unit
1466    }
1467}
1468pub type snd_pcm_audio_tstamp_report_t = _snd_pcm_audio_tstamp_report;
1469pub type snd_pcm_uframes_t = ::core::ffi::c_ulong;
1470pub type snd_pcm_sframes_t = ::core::ffi::c_long;
1471#[repr(C)]
1472#[derive(Debug, Copy, Clone)]
1473pub struct _snd_pcm {
1474    _unused: [u8; 0],
1475}
1476pub type snd_pcm_t = _snd_pcm;
1477pub const SND_PCM_TYPE_HW: _snd_pcm_type = 0;
1478pub const SND_PCM_TYPE_HOOKS: _snd_pcm_type = 1;
1479pub const SND_PCM_TYPE_MULTI: _snd_pcm_type = 2;
1480pub const SND_PCM_TYPE_FILE: _snd_pcm_type = 3;
1481pub const SND_PCM_TYPE_NULL: _snd_pcm_type = 4;
1482pub const SND_PCM_TYPE_SHM: _snd_pcm_type = 5;
1483pub const SND_PCM_TYPE_INET: _snd_pcm_type = 6;
1484pub const SND_PCM_TYPE_COPY: _snd_pcm_type = 7;
1485pub const SND_PCM_TYPE_LINEAR: _snd_pcm_type = 8;
1486pub const SND_PCM_TYPE_ALAW: _snd_pcm_type = 9;
1487pub const SND_PCM_TYPE_MULAW: _snd_pcm_type = 10;
1488pub const SND_PCM_TYPE_ADPCM: _snd_pcm_type = 11;
1489pub const SND_PCM_TYPE_RATE: _snd_pcm_type = 12;
1490pub const SND_PCM_TYPE_ROUTE: _snd_pcm_type = 13;
1491pub const SND_PCM_TYPE_PLUG: _snd_pcm_type = 14;
1492pub const SND_PCM_TYPE_SHARE: _snd_pcm_type = 15;
1493pub const SND_PCM_TYPE_METER: _snd_pcm_type = 16;
1494pub const SND_PCM_TYPE_MIX: _snd_pcm_type = 17;
1495pub const SND_PCM_TYPE_DROUTE: _snd_pcm_type = 18;
1496pub const SND_PCM_TYPE_LBSERVER: _snd_pcm_type = 19;
1497pub const SND_PCM_TYPE_LINEAR_FLOAT: _snd_pcm_type = 20;
1498pub const SND_PCM_TYPE_LADSPA: _snd_pcm_type = 21;
1499pub const SND_PCM_TYPE_DMIX: _snd_pcm_type = 22;
1500pub const SND_PCM_TYPE_JACK: _snd_pcm_type = 23;
1501pub const SND_PCM_TYPE_DSNOOP: _snd_pcm_type = 24;
1502pub const SND_PCM_TYPE_DSHARE: _snd_pcm_type = 25;
1503pub const SND_PCM_TYPE_IEC958: _snd_pcm_type = 26;
1504pub const SND_PCM_TYPE_SOFTVOL: _snd_pcm_type = 27;
1505pub const SND_PCM_TYPE_IOPLUG: _snd_pcm_type = 28;
1506pub const SND_PCM_TYPE_EXTPLUG: _snd_pcm_type = 29;
1507pub const SND_PCM_TYPE_MMAP_EMUL: _snd_pcm_type = 30;
1508pub const SND_PCM_TYPE_LAST: _snd_pcm_type = 30;
1509pub type _snd_pcm_type = ::core::ffi::c_uint;
1510pub use self::_snd_pcm_type as snd_pcm_type_t;
1511#[repr(C)]
1512#[derive(Debug, Copy, Clone)]
1513pub struct _snd_pcm_channel_area {
1514    pub addr: *mut ::core::ffi::c_void,
1515    pub first: ::core::ffi::c_uint,
1516    pub step: ::core::ffi::c_uint,
1517}
1518pub type snd_pcm_channel_area_t = _snd_pcm_channel_area;
1519#[repr(C)]
1520#[derive(Copy, Clone)]
1521pub union _snd_pcm_sync_id {
1522    pub id: [::core::ffi::c_uchar; 16usize],
1523    pub id16: [::core::ffi::c_ushort; 8usize],
1524    pub id32: [::core::ffi::c_uint; 4usize],
1525}
1526pub type snd_pcm_sync_id_t = _snd_pcm_sync_id;
1527#[repr(C)]
1528#[derive(Debug, Copy, Clone)]
1529pub struct _snd_pcm_scope {
1530    _unused: [u8; 0],
1531}
1532pub type snd_pcm_scope_t = _snd_pcm_scope;
1533unsafe extern "C" {
1534    pub fn snd_pcm_open(
1535        pcm: *mut *mut snd_pcm_t,
1536        name: *const ::core::ffi::c_char,
1537        stream: snd_pcm_stream_t,
1538        mode: ::core::ffi::c_int,
1539    ) -> ::core::ffi::c_int;
1540}
1541unsafe extern "C" {
1542    pub fn snd_pcm_open_lconf(
1543        pcm: *mut *mut snd_pcm_t,
1544        name: *const ::core::ffi::c_char,
1545        stream: snd_pcm_stream_t,
1546        mode: ::core::ffi::c_int,
1547        lconf: *mut snd_config_t,
1548    ) -> ::core::ffi::c_int;
1549}
1550unsafe extern "C" {
1551    pub fn snd_pcm_open_fallback(
1552        pcm: *mut *mut snd_pcm_t,
1553        root: *mut snd_config_t,
1554        name: *const ::core::ffi::c_char,
1555        orig_name: *const ::core::ffi::c_char,
1556        stream: snd_pcm_stream_t,
1557        mode: ::core::ffi::c_int,
1558    ) -> ::core::ffi::c_int;
1559}
1560unsafe extern "C" {
1561    pub fn snd_pcm_close(pcm: *mut snd_pcm_t) -> ::core::ffi::c_int;
1562}
1563unsafe extern "C" {
1564    pub fn snd_pcm_name(pcm: *mut snd_pcm_t) -> *const ::core::ffi::c_char;
1565}
1566unsafe extern "C" {
1567    pub fn snd_pcm_type(pcm: *mut snd_pcm_t) -> snd_pcm_type_t;
1568}
1569unsafe extern "C" {
1570    pub fn snd_pcm_stream(pcm: *mut snd_pcm_t) -> snd_pcm_stream_t;
1571}
1572unsafe extern "C" {
1573    pub fn snd_pcm_poll_descriptors_count(pcm: *mut snd_pcm_t) -> ::core::ffi::c_int;
1574}
1575unsafe extern "C" {
1576    pub fn snd_pcm_poll_descriptors(
1577        pcm: *mut snd_pcm_t,
1578        pfds: *mut pollfd,
1579        space: ::core::ffi::c_uint,
1580    ) -> ::core::ffi::c_int;
1581}
1582unsafe extern "C" {
1583    pub fn snd_pcm_poll_descriptors_revents(
1584        pcm: *mut snd_pcm_t,
1585        pfds: *mut pollfd,
1586        nfds: ::core::ffi::c_uint,
1587        revents: *mut ::core::ffi::c_ushort,
1588    ) -> ::core::ffi::c_int;
1589}
1590unsafe extern "C" {
1591    pub fn snd_pcm_nonblock(
1592        pcm: *mut snd_pcm_t,
1593        nonblock: ::core::ffi::c_int,
1594    ) -> ::core::ffi::c_int;
1595}
1596unsafe extern "C" {
1597    pub fn snd_async_add_pcm_handler(
1598        handler: *mut *mut snd_async_handler_t,
1599        pcm: *mut snd_pcm_t,
1600        callback: snd_async_callback_t,
1601        private_data: *mut ::core::ffi::c_void,
1602    ) -> ::core::ffi::c_int;
1603}
1604unsafe extern "C" {
1605    pub fn snd_async_handler_get_pcm(handler: *mut snd_async_handler_t) -> *mut snd_pcm_t;
1606}
1607unsafe extern "C" {
1608    pub fn snd_pcm_info(pcm: *mut snd_pcm_t, info: *mut snd_pcm_info_t) -> ::core::ffi::c_int;
1609}
1610unsafe extern "C" {
1611    pub fn snd_pcm_hw_params_current(
1612        pcm: *mut snd_pcm_t,
1613        params: *mut snd_pcm_hw_params_t,
1614    ) -> ::core::ffi::c_int;
1615}
1616unsafe extern "C" {
1617    pub fn snd_pcm_hw_params(
1618        pcm: *mut snd_pcm_t,
1619        params: *mut snd_pcm_hw_params_t,
1620    ) -> ::core::ffi::c_int;
1621}
1622unsafe extern "C" {
1623    pub fn snd_pcm_hw_free(pcm: *mut snd_pcm_t) -> ::core::ffi::c_int;
1624}
1625unsafe extern "C" {
1626    pub fn snd_pcm_sw_params_current(
1627        pcm: *mut snd_pcm_t,
1628        params: *mut snd_pcm_sw_params_t,
1629    ) -> ::core::ffi::c_int;
1630}
1631unsafe extern "C" {
1632    pub fn snd_pcm_sw_params(
1633        pcm: *mut snd_pcm_t,
1634        params: *mut snd_pcm_sw_params_t,
1635    ) -> ::core::ffi::c_int;
1636}
1637unsafe extern "C" {
1638    pub fn snd_pcm_prepare(pcm: *mut snd_pcm_t) -> ::core::ffi::c_int;
1639}
1640unsafe extern "C" {
1641    pub fn snd_pcm_reset(pcm: *mut snd_pcm_t) -> ::core::ffi::c_int;
1642}
1643unsafe extern "C" {
1644    pub fn snd_pcm_status(pcm: *mut snd_pcm_t, status: *mut snd_pcm_status_t)
1645    -> ::core::ffi::c_int;
1646}
1647unsafe extern "C" {
1648    pub fn snd_pcm_start(pcm: *mut snd_pcm_t) -> ::core::ffi::c_int;
1649}
1650unsafe extern "C" {
1651    pub fn snd_pcm_drop(pcm: *mut snd_pcm_t) -> ::core::ffi::c_int;
1652}
1653unsafe extern "C" {
1654    pub fn snd_pcm_drain(pcm: *mut snd_pcm_t) -> ::core::ffi::c_int;
1655}
1656unsafe extern "C" {
1657    pub fn snd_pcm_pause(pcm: *mut snd_pcm_t, enable: ::core::ffi::c_int) -> ::core::ffi::c_int;
1658}
1659unsafe extern "C" {
1660    pub fn snd_pcm_state(pcm: *mut snd_pcm_t) -> snd_pcm_state_t;
1661}
1662unsafe extern "C" {
1663    pub fn snd_pcm_hwsync(pcm: *mut snd_pcm_t) -> ::core::ffi::c_int;
1664}
1665unsafe extern "C" {
1666    pub fn snd_pcm_delay(pcm: *mut snd_pcm_t, delayp: *mut snd_pcm_sframes_t)
1667    -> ::core::ffi::c_int;
1668}
1669unsafe extern "C" {
1670    pub fn snd_pcm_resume(pcm: *mut snd_pcm_t) -> ::core::ffi::c_int;
1671}
1672unsafe extern "C" {
1673    pub fn snd_pcm_htimestamp(
1674        pcm: *mut snd_pcm_t,
1675        avail: *mut snd_pcm_uframes_t,
1676        tstamp: *mut snd_htimestamp_t,
1677    ) -> ::core::ffi::c_int;
1678}
1679unsafe extern "C" {
1680    pub fn snd_pcm_avail(pcm: *mut snd_pcm_t) -> snd_pcm_sframes_t;
1681}
1682unsafe extern "C" {
1683    pub fn snd_pcm_avail_update(pcm: *mut snd_pcm_t) -> snd_pcm_sframes_t;
1684}
1685unsafe extern "C" {
1686    pub fn snd_pcm_avail_delay(
1687        pcm: *mut snd_pcm_t,
1688        availp: *mut snd_pcm_sframes_t,
1689        delayp: *mut snd_pcm_sframes_t,
1690    ) -> ::core::ffi::c_int;
1691}
1692unsafe extern "C" {
1693    pub fn snd_pcm_rewindable(pcm: *mut snd_pcm_t) -> snd_pcm_sframes_t;
1694}
1695unsafe extern "C" {
1696    pub fn snd_pcm_rewind(pcm: *mut snd_pcm_t, frames: snd_pcm_uframes_t) -> snd_pcm_sframes_t;
1697}
1698unsafe extern "C" {
1699    pub fn snd_pcm_forwardable(pcm: *mut snd_pcm_t) -> snd_pcm_sframes_t;
1700}
1701unsafe extern "C" {
1702    pub fn snd_pcm_forward(pcm: *mut snd_pcm_t, frames: snd_pcm_uframes_t) -> snd_pcm_sframes_t;
1703}
1704unsafe extern "C" {
1705    pub fn snd_pcm_writei(
1706        pcm: *mut snd_pcm_t,
1707        buffer: *const ::core::ffi::c_void,
1708        size: snd_pcm_uframes_t,
1709    ) -> snd_pcm_sframes_t;
1710}
1711unsafe extern "C" {
1712    pub fn snd_pcm_readi(
1713        pcm: *mut snd_pcm_t,
1714        buffer: *mut ::core::ffi::c_void,
1715        size: snd_pcm_uframes_t,
1716    ) -> snd_pcm_sframes_t;
1717}
1718unsafe extern "C" {
1719    pub fn snd_pcm_writen(
1720        pcm: *mut snd_pcm_t,
1721        bufs: *mut *mut ::core::ffi::c_void,
1722        size: snd_pcm_uframes_t,
1723    ) -> snd_pcm_sframes_t;
1724}
1725unsafe extern "C" {
1726    pub fn snd_pcm_readn(
1727        pcm: *mut snd_pcm_t,
1728        bufs: *mut *mut ::core::ffi::c_void,
1729        size: snd_pcm_uframes_t,
1730    ) -> snd_pcm_sframes_t;
1731}
1732unsafe extern "C" {
1733    pub fn snd_pcm_wait(pcm: *mut snd_pcm_t, timeout: ::core::ffi::c_int) -> ::core::ffi::c_int;
1734}
1735unsafe extern "C" {
1736    pub fn snd_pcm_link(pcm1: *mut snd_pcm_t, pcm2: *mut snd_pcm_t) -> ::core::ffi::c_int;
1737}
1738unsafe extern "C" {
1739    pub fn snd_pcm_unlink(pcm: *mut snd_pcm_t) -> ::core::ffi::c_int;
1740}
1741pub const SND_CHMAP_TYPE_NONE: snd_pcm_chmap_type = 0;
1742pub const SND_CHMAP_TYPE_FIXED: snd_pcm_chmap_type = 1;
1743pub const SND_CHMAP_TYPE_VAR: snd_pcm_chmap_type = 2;
1744pub const SND_CHMAP_TYPE_PAIRED: snd_pcm_chmap_type = 3;
1745pub const SND_CHMAP_TYPE_LAST: snd_pcm_chmap_type = 3;
1746pub type snd_pcm_chmap_type = ::core::ffi::c_uint;
1747pub const SND_CHMAP_UNKNOWN: snd_pcm_chmap_position = 0;
1748pub const SND_CHMAP_NA: snd_pcm_chmap_position = 1;
1749pub const SND_CHMAP_MONO: snd_pcm_chmap_position = 2;
1750pub const SND_CHMAP_FL: snd_pcm_chmap_position = 3;
1751pub const SND_CHMAP_FR: snd_pcm_chmap_position = 4;
1752pub const SND_CHMAP_RL: snd_pcm_chmap_position = 5;
1753pub const SND_CHMAP_RR: snd_pcm_chmap_position = 6;
1754pub const SND_CHMAP_FC: snd_pcm_chmap_position = 7;
1755pub const SND_CHMAP_LFE: snd_pcm_chmap_position = 8;
1756pub const SND_CHMAP_SL: snd_pcm_chmap_position = 9;
1757pub const SND_CHMAP_SR: snd_pcm_chmap_position = 10;
1758pub const SND_CHMAP_RC: snd_pcm_chmap_position = 11;
1759pub const SND_CHMAP_FLC: snd_pcm_chmap_position = 12;
1760pub const SND_CHMAP_FRC: snd_pcm_chmap_position = 13;
1761pub const SND_CHMAP_RLC: snd_pcm_chmap_position = 14;
1762pub const SND_CHMAP_RRC: snd_pcm_chmap_position = 15;
1763pub const SND_CHMAP_FLW: snd_pcm_chmap_position = 16;
1764pub const SND_CHMAP_FRW: snd_pcm_chmap_position = 17;
1765pub const SND_CHMAP_FLH: snd_pcm_chmap_position = 18;
1766pub const SND_CHMAP_FCH: snd_pcm_chmap_position = 19;
1767pub const SND_CHMAP_FRH: snd_pcm_chmap_position = 20;
1768pub const SND_CHMAP_TC: snd_pcm_chmap_position = 21;
1769pub const SND_CHMAP_TFL: snd_pcm_chmap_position = 22;
1770pub const SND_CHMAP_TFR: snd_pcm_chmap_position = 23;
1771pub const SND_CHMAP_TFC: snd_pcm_chmap_position = 24;
1772pub const SND_CHMAP_TRL: snd_pcm_chmap_position = 25;
1773pub const SND_CHMAP_TRR: snd_pcm_chmap_position = 26;
1774pub const SND_CHMAP_TRC: snd_pcm_chmap_position = 27;
1775pub const SND_CHMAP_TFLC: snd_pcm_chmap_position = 28;
1776pub const SND_CHMAP_TFRC: snd_pcm_chmap_position = 29;
1777pub const SND_CHMAP_TSL: snd_pcm_chmap_position = 30;
1778pub const SND_CHMAP_TSR: snd_pcm_chmap_position = 31;
1779pub const SND_CHMAP_LLFE: snd_pcm_chmap_position = 32;
1780pub const SND_CHMAP_RLFE: snd_pcm_chmap_position = 33;
1781pub const SND_CHMAP_BC: snd_pcm_chmap_position = 34;
1782pub const SND_CHMAP_BLC: snd_pcm_chmap_position = 35;
1783pub const SND_CHMAP_BRC: snd_pcm_chmap_position = 36;
1784pub const SND_CHMAP_LAST: snd_pcm_chmap_position = 36;
1785pub type snd_pcm_chmap_position = ::core::ffi::c_uint;
1786#[repr(C)]
1787#[derive(Debug)]
1788pub struct snd_pcm_chmap {
1789    pub channels: ::core::ffi::c_uint,
1790    pub pos: __IncompleteArrayField<::core::ffi::c_uint>,
1791}
1792pub type snd_pcm_chmap_t = snd_pcm_chmap;
1793#[repr(C)]
1794#[derive(Debug)]
1795pub struct snd_pcm_chmap_query {
1796    pub type_: snd_pcm_chmap_type,
1797    pub map: snd_pcm_chmap_t,
1798}
1799pub type snd_pcm_chmap_query_t = snd_pcm_chmap_query;
1800unsafe extern "C" {
1801    pub fn snd_pcm_query_chmaps(pcm: *mut snd_pcm_t) -> *mut *mut snd_pcm_chmap_query_t;
1802}
1803unsafe extern "C" {
1804    pub fn snd_pcm_query_chmaps_from_hw(
1805        card: ::core::ffi::c_int,
1806        dev: ::core::ffi::c_int,
1807        subdev: ::core::ffi::c_int,
1808        stream: snd_pcm_stream_t,
1809    ) -> *mut *mut snd_pcm_chmap_query_t;
1810}
1811unsafe extern "C" {
1812    pub fn snd_pcm_free_chmaps(maps: *mut *mut snd_pcm_chmap_query_t);
1813}
1814unsafe extern "C" {
1815    pub fn snd_pcm_get_chmap(pcm: *mut snd_pcm_t) -> *mut snd_pcm_chmap_t;
1816}
1817unsafe extern "C" {
1818    pub fn snd_pcm_set_chmap(
1819        pcm: *mut snd_pcm_t,
1820        map: *const snd_pcm_chmap_t,
1821    ) -> ::core::ffi::c_int;
1822}
1823unsafe extern "C" {
1824    pub fn snd_pcm_chmap_type_name(val: snd_pcm_chmap_type) -> *const ::core::ffi::c_char;
1825}
1826unsafe extern "C" {
1827    pub fn snd_pcm_chmap_name(val: snd_pcm_chmap_position) -> *const ::core::ffi::c_char;
1828}
1829unsafe extern "C" {
1830    pub fn snd_pcm_chmap_long_name(val: snd_pcm_chmap_position) -> *const ::core::ffi::c_char;
1831}
1832unsafe extern "C" {
1833    pub fn snd_pcm_chmap_print(
1834        map: *const snd_pcm_chmap_t,
1835        maxlen: usize,
1836        buf: *mut ::core::ffi::c_char,
1837    ) -> ::core::ffi::c_int;
1838}
1839unsafe extern "C" {
1840    pub fn snd_pcm_chmap_from_string(str_: *const ::core::ffi::c_char) -> ::core::ffi::c_uint;
1841}
1842unsafe extern "C" {
1843    pub fn snd_pcm_chmap_parse_string(str_: *const ::core::ffi::c_char) -> *mut snd_pcm_chmap_t;
1844}
1845unsafe extern "C" {
1846    pub fn snd_pcm_recover(
1847        pcm: *mut snd_pcm_t,
1848        err: ::core::ffi::c_int,
1849        silent: ::core::ffi::c_int,
1850    ) -> ::core::ffi::c_int;
1851}
1852unsafe extern "C" {
1853    pub fn snd_pcm_set_params(
1854        pcm: *mut snd_pcm_t,
1855        format: snd_pcm_format_t,
1856        access: snd_pcm_access_t,
1857        channels: ::core::ffi::c_uint,
1858        rate: ::core::ffi::c_uint,
1859        soft_resample: ::core::ffi::c_int,
1860        latency: ::core::ffi::c_uint,
1861    ) -> ::core::ffi::c_int;
1862}
1863unsafe extern "C" {
1864    pub fn snd_pcm_get_params(
1865        pcm: *mut snd_pcm_t,
1866        buffer_size: *mut snd_pcm_uframes_t,
1867        period_size: *mut snd_pcm_uframes_t,
1868    ) -> ::core::ffi::c_int;
1869}
1870unsafe extern "C" {
1871    pub fn snd_pcm_info_sizeof() -> usize;
1872}
1873unsafe extern "C" {
1874    pub fn snd_pcm_info_malloc(ptr: *mut *mut snd_pcm_info_t) -> ::core::ffi::c_int;
1875}
1876unsafe extern "C" {
1877    pub fn snd_pcm_info_free(obj: *mut snd_pcm_info_t);
1878}
1879unsafe extern "C" {
1880    pub fn snd_pcm_info_copy(dst: *mut snd_pcm_info_t, src: *const snd_pcm_info_t);
1881}
1882unsafe extern "C" {
1883    pub fn snd_pcm_info_get_device(obj: *const snd_pcm_info_t) -> ::core::ffi::c_uint;
1884}
1885unsafe extern "C" {
1886    pub fn snd_pcm_info_get_subdevice(obj: *const snd_pcm_info_t) -> ::core::ffi::c_uint;
1887}
1888unsafe extern "C" {
1889    pub fn snd_pcm_info_get_stream(obj: *const snd_pcm_info_t) -> snd_pcm_stream_t;
1890}
1891unsafe extern "C" {
1892    pub fn snd_pcm_info_get_card(obj: *const snd_pcm_info_t) -> ::core::ffi::c_int;
1893}
1894unsafe extern "C" {
1895    pub fn snd_pcm_info_get_id(obj: *const snd_pcm_info_t) -> *const ::core::ffi::c_char;
1896}
1897unsafe extern "C" {
1898    pub fn snd_pcm_info_get_name(obj: *const snd_pcm_info_t) -> *const ::core::ffi::c_char;
1899}
1900unsafe extern "C" {
1901    pub fn snd_pcm_info_get_subdevice_name(
1902        obj: *const snd_pcm_info_t,
1903    ) -> *const ::core::ffi::c_char;
1904}
1905unsafe extern "C" {
1906    pub fn snd_pcm_info_get_class(obj: *const snd_pcm_info_t) -> snd_pcm_class_t;
1907}
1908unsafe extern "C" {
1909    pub fn snd_pcm_info_get_subclass(obj: *const snd_pcm_info_t) -> snd_pcm_subclass_t;
1910}
1911unsafe extern "C" {
1912    pub fn snd_pcm_info_get_subdevices_count(obj: *const snd_pcm_info_t) -> ::core::ffi::c_uint;
1913}
1914unsafe extern "C" {
1915    pub fn snd_pcm_info_get_subdevices_avail(obj: *const snd_pcm_info_t) -> ::core::ffi::c_uint;
1916}
1917unsafe extern "C" {
1918    pub fn snd_pcm_info_get_sync(obj: *const snd_pcm_info_t) -> snd_pcm_sync_id_t;
1919}
1920unsafe extern "C" {
1921    pub fn snd_pcm_info_set_device(obj: *mut snd_pcm_info_t, val: ::core::ffi::c_uint);
1922}
1923unsafe extern "C" {
1924    pub fn snd_pcm_info_set_subdevice(obj: *mut snd_pcm_info_t, val: ::core::ffi::c_uint);
1925}
1926unsafe extern "C" {
1927    pub fn snd_pcm_info_set_stream(obj: *mut snd_pcm_info_t, val: snd_pcm_stream_t);
1928}
1929unsafe extern "C" {
1930    pub fn snd_pcm_hw_params_any(
1931        pcm: *mut snd_pcm_t,
1932        params: *mut snd_pcm_hw_params_t,
1933    ) -> ::core::ffi::c_int;
1934}
1935unsafe extern "C" {
1936    pub fn snd_pcm_hw_params_can_mmap_sample_resolution(
1937        params: *const snd_pcm_hw_params_t,
1938    ) -> ::core::ffi::c_int;
1939}
1940unsafe extern "C" {
1941    pub fn snd_pcm_hw_params_is_double(params: *const snd_pcm_hw_params_t) -> ::core::ffi::c_int;
1942}
1943unsafe extern "C" {
1944    pub fn snd_pcm_hw_params_is_batch(params: *const snd_pcm_hw_params_t) -> ::core::ffi::c_int;
1945}
1946unsafe extern "C" {
1947    pub fn snd_pcm_hw_params_is_block_transfer(
1948        params: *const snd_pcm_hw_params_t,
1949    ) -> ::core::ffi::c_int;
1950}
1951unsafe extern "C" {
1952    pub fn snd_pcm_hw_params_is_monotonic(params: *const snd_pcm_hw_params_t)
1953    -> ::core::ffi::c_int;
1954}
1955unsafe extern "C" {
1956    pub fn snd_pcm_hw_params_can_overrange(
1957        params: *const snd_pcm_hw_params_t,
1958    ) -> ::core::ffi::c_int;
1959}
1960unsafe extern "C" {
1961    pub fn snd_pcm_hw_params_can_pause(params: *const snd_pcm_hw_params_t) -> ::core::ffi::c_int;
1962}
1963unsafe extern "C" {
1964    pub fn snd_pcm_hw_params_can_resume(params: *const snd_pcm_hw_params_t) -> ::core::ffi::c_int;
1965}
1966unsafe extern "C" {
1967    pub fn snd_pcm_hw_params_is_half_duplex(
1968        params: *const snd_pcm_hw_params_t,
1969    ) -> ::core::ffi::c_int;
1970}
1971unsafe extern "C" {
1972    pub fn snd_pcm_hw_params_is_joint_duplex(
1973        params: *const snd_pcm_hw_params_t,
1974    ) -> ::core::ffi::c_int;
1975}
1976unsafe extern "C" {
1977    pub fn snd_pcm_hw_params_can_sync_start(
1978        params: *const snd_pcm_hw_params_t,
1979    ) -> ::core::ffi::c_int;
1980}
1981unsafe extern "C" {
1982    pub fn snd_pcm_hw_params_can_disable_period_wakeup(
1983        params: *const snd_pcm_hw_params_t,
1984    ) -> ::core::ffi::c_int;
1985}
1986unsafe extern "C" {
1987    pub fn snd_pcm_hw_params_is_perfect_drain(
1988        params: *const snd_pcm_hw_params_t,
1989    ) -> ::core::ffi::c_int;
1990}
1991unsafe extern "C" {
1992    pub fn snd_pcm_hw_params_supports_audio_wallclock_ts(
1993        params: *const snd_pcm_hw_params_t,
1994    ) -> ::core::ffi::c_int;
1995}
1996unsafe extern "C" {
1997    pub fn snd_pcm_hw_params_supports_audio_ts_type(
1998        params: *const snd_pcm_hw_params_t,
1999        type_: ::core::ffi::c_int,
2000    ) -> ::core::ffi::c_int;
2001}
2002unsafe extern "C" {
2003    pub fn snd_pcm_hw_params_get_rate_numden(
2004        params: *const snd_pcm_hw_params_t,
2005        rate_num: *mut ::core::ffi::c_uint,
2006        rate_den: *mut ::core::ffi::c_uint,
2007    ) -> ::core::ffi::c_int;
2008}
2009unsafe extern "C" {
2010    pub fn snd_pcm_hw_params_get_sbits(params: *const snd_pcm_hw_params_t) -> ::core::ffi::c_int;
2011}
2012unsafe extern "C" {
2013    pub fn snd_pcm_hw_params_get_fifo_size(
2014        params: *const snd_pcm_hw_params_t,
2015    ) -> ::core::ffi::c_int;
2016}
2017unsafe extern "C" {
2018    pub fn snd_pcm_hw_params_get_sync(
2019        params: *const snd_pcm_hw_params_t,
2020    ) -> *const ::core::ffi::c_uchar;
2021}
2022unsafe extern "C" {
2023    pub fn snd_pcm_hw_params_sizeof() -> usize;
2024}
2025unsafe extern "C" {
2026    pub fn snd_pcm_hw_params_malloc(ptr: *mut *mut snd_pcm_hw_params_t) -> ::core::ffi::c_int;
2027}
2028unsafe extern "C" {
2029    pub fn snd_pcm_hw_params_free(obj: *mut snd_pcm_hw_params_t);
2030}
2031unsafe extern "C" {
2032    pub fn snd_pcm_hw_params_copy(dst: *mut snd_pcm_hw_params_t, src: *const snd_pcm_hw_params_t);
2033}
2034unsafe extern "C" {
2035    pub fn snd_pcm_hw_params_get_access(
2036        params: *const snd_pcm_hw_params_t,
2037        _access: *mut snd_pcm_access_t,
2038    ) -> ::core::ffi::c_int;
2039}
2040unsafe extern "C" {
2041    pub fn snd_pcm_hw_params_test_access(
2042        pcm: *mut snd_pcm_t,
2043        params: *mut snd_pcm_hw_params_t,
2044        _access: snd_pcm_access_t,
2045    ) -> ::core::ffi::c_int;
2046}
2047unsafe extern "C" {
2048    pub fn snd_pcm_hw_params_set_access(
2049        pcm: *mut snd_pcm_t,
2050        params: *mut snd_pcm_hw_params_t,
2051        _access: snd_pcm_access_t,
2052    ) -> ::core::ffi::c_int;
2053}
2054unsafe extern "C" {
2055    pub fn snd_pcm_hw_params_set_access_first(
2056        pcm: *mut snd_pcm_t,
2057        params: *mut snd_pcm_hw_params_t,
2058        _access: *mut snd_pcm_access_t,
2059    ) -> ::core::ffi::c_int;
2060}
2061unsafe extern "C" {
2062    pub fn snd_pcm_hw_params_set_access_last(
2063        pcm: *mut snd_pcm_t,
2064        params: *mut snd_pcm_hw_params_t,
2065        _access: *mut snd_pcm_access_t,
2066    ) -> ::core::ffi::c_int;
2067}
2068unsafe extern "C" {
2069    pub fn snd_pcm_hw_params_set_access_mask(
2070        pcm: *mut snd_pcm_t,
2071        params: *mut snd_pcm_hw_params_t,
2072        mask: *mut snd_pcm_access_mask_t,
2073    ) -> ::core::ffi::c_int;
2074}
2075unsafe extern "C" {
2076    pub fn snd_pcm_hw_params_get_access_mask(
2077        params: *mut snd_pcm_hw_params_t,
2078        mask: *mut snd_pcm_access_mask_t,
2079    ) -> ::core::ffi::c_int;
2080}
2081unsafe extern "C" {
2082    pub fn snd_pcm_hw_params_get_format(
2083        params: *const snd_pcm_hw_params_t,
2084        val: *mut snd_pcm_format_t,
2085    ) -> ::core::ffi::c_int;
2086}
2087unsafe extern "C" {
2088    pub fn snd_pcm_hw_params_test_format(
2089        pcm: *mut snd_pcm_t,
2090        params: *mut snd_pcm_hw_params_t,
2091        val: snd_pcm_format_t,
2092    ) -> ::core::ffi::c_int;
2093}
2094unsafe extern "C" {
2095    pub fn snd_pcm_hw_params_set_format(
2096        pcm: *mut snd_pcm_t,
2097        params: *mut snd_pcm_hw_params_t,
2098        val: snd_pcm_format_t,
2099    ) -> ::core::ffi::c_int;
2100}
2101unsafe extern "C" {
2102    pub fn snd_pcm_hw_params_set_format_first(
2103        pcm: *mut snd_pcm_t,
2104        params: *mut snd_pcm_hw_params_t,
2105        format: *mut snd_pcm_format_t,
2106    ) -> ::core::ffi::c_int;
2107}
2108unsafe extern "C" {
2109    pub fn snd_pcm_hw_params_set_format_last(
2110        pcm: *mut snd_pcm_t,
2111        params: *mut snd_pcm_hw_params_t,
2112        format: *mut snd_pcm_format_t,
2113    ) -> ::core::ffi::c_int;
2114}
2115unsafe extern "C" {
2116    pub fn snd_pcm_hw_params_set_format_mask(
2117        pcm: *mut snd_pcm_t,
2118        params: *mut snd_pcm_hw_params_t,
2119        mask: *mut snd_pcm_format_mask_t,
2120    ) -> ::core::ffi::c_int;
2121}
2122unsafe extern "C" {
2123    pub fn snd_pcm_hw_params_get_format_mask(
2124        params: *mut snd_pcm_hw_params_t,
2125        mask: *mut snd_pcm_format_mask_t,
2126    );
2127}
2128unsafe extern "C" {
2129    pub fn snd_pcm_hw_params_get_subformat(
2130        params: *const snd_pcm_hw_params_t,
2131        subformat: *mut snd_pcm_subformat_t,
2132    ) -> ::core::ffi::c_int;
2133}
2134unsafe extern "C" {
2135    pub fn snd_pcm_hw_params_test_subformat(
2136        pcm: *mut snd_pcm_t,
2137        params: *mut snd_pcm_hw_params_t,
2138        subformat: snd_pcm_subformat_t,
2139    ) -> ::core::ffi::c_int;
2140}
2141unsafe extern "C" {
2142    pub fn snd_pcm_hw_params_set_subformat(
2143        pcm: *mut snd_pcm_t,
2144        params: *mut snd_pcm_hw_params_t,
2145        subformat: snd_pcm_subformat_t,
2146    ) -> ::core::ffi::c_int;
2147}
2148unsafe extern "C" {
2149    pub fn snd_pcm_hw_params_set_subformat_first(
2150        pcm: *mut snd_pcm_t,
2151        params: *mut snd_pcm_hw_params_t,
2152        subformat: *mut snd_pcm_subformat_t,
2153    ) -> ::core::ffi::c_int;
2154}
2155unsafe extern "C" {
2156    pub fn snd_pcm_hw_params_set_subformat_last(
2157        pcm: *mut snd_pcm_t,
2158        params: *mut snd_pcm_hw_params_t,
2159        subformat: *mut snd_pcm_subformat_t,
2160    ) -> ::core::ffi::c_int;
2161}
2162unsafe extern "C" {
2163    pub fn snd_pcm_hw_params_set_subformat_mask(
2164        pcm: *mut snd_pcm_t,
2165        params: *mut snd_pcm_hw_params_t,
2166        mask: *mut snd_pcm_subformat_mask_t,
2167    ) -> ::core::ffi::c_int;
2168}
2169unsafe extern "C" {
2170    pub fn snd_pcm_hw_params_get_subformat_mask(
2171        params: *mut snd_pcm_hw_params_t,
2172        mask: *mut snd_pcm_subformat_mask_t,
2173    );
2174}
2175unsafe extern "C" {
2176    pub fn snd_pcm_hw_params_get_channels(
2177        params: *const snd_pcm_hw_params_t,
2178        val: *mut ::core::ffi::c_uint,
2179    ) -> ::core::ffi::c_int;
2180}
2181unsafe extern "C" {
2182    pub fn snd_pcm_hw_params_get_channels_min(
2183        params: *const snd_pcm_hw_params_t,
2184        val: *mut ::core::ffi::c_uint,
2185    ) -> ::core::ffi::c_int;
2186}
2187unsafe extern "C" {
2188    pub fn snd_pcm_hw_params_get_channels_max(
2189        params: *const snd_pcm_hw_params_t,
2190        val: *mut ::core::ffi::c_uint,
2191    ) -> ::core::ffi::c_int;
2192}
2193unsafe extern "C" {
2194    pub fn snd_pcm_hw_params_test_channels(
2195        pcm: *mut snd_pcm_t,
2196        params: *mut snd_pcm_hw_params_t,
2197        val: ::core::ffi::c_uint,
2198    ) -> ::core::ffi::c_int;
2199}
2200unsafe extern "C" {
2201    pub fn snd_pcm_hw_params_set_channels(
2202        pcm: *mut snd_pcm_t,
2203        params: *mut snd_pcm_hw_params_t,
2204        val: ::core::ffi::c_uint,
2205    ) -> ::core::ffi::c_int;
2206}
2207unsafe extern "C" {
2208    pub fn snd_pcm_hw_params_set_channels_min(
2209        pcm: *mut snd_pcm_t,
2210        params: *mut snd_pcm_hw_params_t,
2211        val: *mut ::core::ffi::c_uint,
2212    ) -> ::core::ffi::c_int;
2213}
2214unsafe extern "C" {
2215    pub fn snd_pcm_hw_params_set_channels_max(
2216        pcm: *mut snd_pcm_t,
2217        params: *mut snd_pcm_hw_params_t,
2218        val: *mut ::core::ffi::c_uint,
2219    ) -> ::core::ffi::c_int;
2220}
2221unsafe extern "C" {
2222    pub fn snd_pcm_hw_params_set_channels_minmax(
2223        pcm: *mut snd_pcm_t,
2224        params: *mut snd_pcm_hw_params_t,
2225        min: *mut ::core::ffi::c_uint,
2226        max: *mut ::core::ffi::c_uint,
2227    ) -> ::core::ffi::c_int;
2228}
2229unsafe extern "C" {
2230    pub fn snd_pcm_hw_params_set_channels_near(
2231        pcm: *mut snd_pcm_t,
2232        params: *mut snd_pcm_hw_params_t,
2233        val: *mut ::core::ffi::c_uint,
2234    ) -> ::core::ffi::c_int;
2235}
2236unsafe extern "C" {
2237    pub fn snd_pcm_hw_params_set_channels_first(
2238        pcm: *mut snd_pcm_t,
2239        params: *mut snd_pcm_hw_params_t,
2240        val: *mut ::core::ffi::c_uint,
2241    ) -> ::core::ffi::c_int;
2242}
2243unsafe extern "C" {
2244    pub fn snd_pcm_hw_params_set_channels_last(
2245        pcm: *mut snd_pcm_t,
2246        params: *mut snd_pcm_hw_params_t,
2247        val: *mut ::core::ffi::c_uint,
2248    ) -> ::core::ffi::c_int;
2249}
2250unsafe extern "C" {
2251    pub fn snd_pcm_hw_params_get_rate(
2252        params: *const snd_pcm_hw_params_t,
2253        val: *mut ::core::ffi::c_uint,
2254        dir: *mut ::core::ffi::c_int,
2255    ) -> ::core::ffi::c_int;
2256}
2257unsafe extern "C" {
2258    pub fn snd_pcm_hw_params_get_rate_min(
2259        params: *const snd_pcm_hw_params_t,
2260        val: *mut ::core::ffi::c_uint,
2261        dir: *mut ::core::ffi::c_int,
2262    ) -> ::core::ffi::c_int;
2263}
2264unsafe extern "C" {
2265    pub fn snd_pcm_hw_params_get_rate_max(
2266        params: *const snd_pcm_hw_params_t,
2267        val: *mut ::core::ffi::c_uint,
2268        dir: *mut ::core::ffi::c_int,
2269    ) -> ::core::ffi::c_int;
2270}
2271unsafe extern "C" {
2272    pub fn snd_pcm_hw_params_test_rate(
2273        pcm: *mut snd_pcm_t,
2274        params: *mut snd_pcm_hw_params_t,
2275        val: ::core::ffi::c_uint,
2276        dir: ::core::ffi::c_int,
2277    ) -> ::core::ffi::c_int;
2278}
2279unsafe extern "C" {
2280    pub fn snd_pcm_hw_params_set_rate(
2281        pcm: *mut snd_pcm_t,
2282        params: *mut snd_pcm_hw_params_t,
2283        val: ::core::ffi::c_uint,
2284        dir: ::core::ffi::c_int,
2285    ) -> ::core::ffi::c_int;
2286}
2287unsafe extern "C" {
2288    pub fn snd_pcm_hw_params_set_rate_min(
2289        pcm: *mut snd_pcm_t,
2290        params: *mut snd_pcm_hw_params_t,
2291        val: *mut ::core::ffi::c_uint,
2292        dir: *mut ::core::ffi::c_int,
2293    ) -> ::core::ffi::c_int;
2294}
2295unsafe extern "C" {
2296    pub fn snd_pcm_hw_params_set_rate_max(
2297        pcm: *mut snd_pcm_t,
2298        params: *mut snd_pcm_hw_params_t,
2299        val: *mut ::core::ffi::c_uint,
2300        dir: *mut ::core::ffi::c_int,
2301    ) -> ::core::ffi::c_int;
2302}
2303unsafe extern "C" {
2304    pub fn snd_pcm_hw_params_set_rate_minmax(
2305        pcm: *mut snd_pcm_t,
2306        params: *mut snd_pcm_hw_params_t,
2307        min: *mut ::core::ffi::c_uint,
2308        mindir: *mut ::core::ffi::c_int,
2309        max: *mut ::core::ffi::c_uint,
2310        maxdir: *mut ::core::ffi::c_int,
2311    ) -> ::core::ffi::c_int;
2312}
2313unsafe extern "C" {
2314    pub fn snd_pcm_hw_params_set_rate_near(
2315        pcm: *mut snd_pcm_t,
2316        params: *mut snd_pcm_hw_params_t,
2317        val: *mut ::core::ffi::c_uint,
2318        dir: *mut ::core::ffi::c_int,
2319    ) -> ::core::ffi::c_int;
2320}
2321unsafe extern "C" {
2322    pub fn snd_pcm_hw_params_set_rate_first(
2323        pcm: *mut snd_pcm_t,
2324        params: *mut snd_pcm_hw_params_t,
2325        val: *mut ::core::ffi::c_uint,
2326        dir: *mut ::core::ffi::c_int,
2327    ) -> ::core::ffi::c_int;
2328}
2329unsafe extern "C" {
2330    pub fn snd_pcm_hw_params_set_rate_last(
2331        pcm: *mut snd_pcm_t,
2332        params: *mut snd_pcm_hw_params_t,
2333        val: *mut ::core::ffi::c_uint,
2334        dir: *mut ::core::ffi::c_int,
2335    ) -> ::core::ffi::c_int;
2336}
2337unsafe extern "C" {
2338    pub fn snd_pcm_hw_params_set_rate_resample(
2339        pcm: *mut snd_pcm_t,
2340        params: *mut snd_pcm_hw_params_t,
2341        val: ::core::ffi::c_uint,
2342    ) -> ::core::ffi::c_int;
2343}
2344unsafe extern "C" {
2345    pub fn snd_pcm_hw_params_get_rate_resample(
2346        pcm: *mut snd_pcm_t,
2347        params: *mut snd_pcm_hw_params_t,
2348        val: *mut ::core::ffi::c_uint,
2349    ) -> ::core::ffi::c_int;
2350}
2351unsafe extern "C" {
2352    pub fn snd_pcm_hw_params_set_export_buffer(
2353        pcm: *mut snd_pcm_t,
2354        params: *mut snd_pcm_hw_params_t,
2355        val: ::core::ffi::c_uint,
2356    ) -> ::core::ffi::c_int;
2357}
2358unsafe extern "C" {
2359    pub fn snd_pcm_hw_params_get_export_buffer(
2360        pcm: *mut snd_pcm_t,
2361        params: *mut snd_pcm_hw_params_t,
2362        val: *mut ::core::ffi::c_uint,
2363    ) -> ::core::ffi::c_int;
2364}
2365unsafe extern "C" {
2366    pub fn snd_pcm_hw_params_set_period_wakeup(
2367        pcm: *mut snd_pcm_t,
2368        params: *mut snd_pcm_hw_params_t,
2369        val: ::core::ffi::c_uint,
2370    ) -> ::core::ffi::c_int;
2371}
2372unsafe extern "C" {
2373    pub fn snd_pcm_hw_params_get_period_wakeup(
2374        pcm: *mut snd_pcm_t,
2375        params: *mut snd_pcm_hw_params_t,
2376        val: *mut ::core::ffi::c_uint,
2377    ) -> ::core::ffi::c_int;
2378}
2379unsafe extern "C" {
2380    pub fn snd_pcm_hw_params_set_drain_silence(
2381        pcm: *mut snd_pcm_t,
2382        params: *mut snd_pcm_hw_params_t,
2383        val: ::core::ffi::c_uint,
2384    ) -> ::core::ffi::c_int;
2385}
2386unsafe extern "C" {
2387    pub fn snd_pcm_hw_params_get_drain_silence(
2388        pcm: *mut snd_pcm_t,
2389        params: *mut snd_pcm_hw_params_t,
2390        val: *mut ::core::ffi::c_uint,
2391    ) -> ::core::ffi::c_int;
2392}
2393unsafe extern "C" {
2394    pub fn snd_pcm_hw_params_get_period_time(
2395        params: *const snd_pcm_hw_params_t,
2396        val: *mut ::core::ffi::c_uint,
2397        dir: *mut ::core::ffi::c_int,
2398    ) -> ::core::ffi::c_int;
2399}
2400unsafe extern "C" {
2401    pub fn snd_pcm_hw_params_get_period_time_min(
2402        params: *const snd_pcm_hw_params_t,
2403        val: *mut ::core::ffi::c_uint,
2404        dir: *mut ::core::ffi::c_int,
2405    ) -> ::core::ffi::c_int;
2406}
2407unsafe extern "C" {
2408    pub fn snd_pcm_hw_params_get_period_time_max(
2409        params: *const snd_pcm_hw_params_t,
2410        val: *mut ::core::ffi::c_uint,
2411        dir: *mut ::core::ffi::c_int,
2412    ) -> ::core::ffi::c_int;
2413}
2414unsafe extern "C" {
2415    pub fn snd_pcm_hw_params_test_period_time(
2416        pcm: *mut snd_pcm_t,
2417        params: *mut snd_pcm_hw_params_t,
2418        val: ::core::ffi::c_uint,
2419        dir: ::core::ffi::c_int,
2420    ) -> ::core::ffi::c_int;
2421}
2422unsafe extern "C" {
2423    pub fn snd_pcm_hw_params_set_period_time(
2424        pcm: *mut snd_pcm_t,
2425        params: *mut snd_pcm_hw_params_t,
2426        val: ::core::ffi::c_uint,
2427        dir: ::core::ffi::c_int,
2428    ) -> ::core::ffi::c_int;
2429}
2430unsafe extern "C" {
2431    pub fn snd_pcm_hw_params_set_period_time_min(
2432        pcm: *mut snd_pcm_t,
2433        params: *mut snd_pcm_hw_params_t,
2434        val: *mut ::core::ffi::c_uint,
2435        dir: *mut ::core::ffi::c_int,
2436    ) -> ::core::ffi::c_int;
2437}
2438unsafe extern "C" {
2439    pub fn snd_pcm_hw_params_set_period_time_max(
2440        pcm: *mut snd_pcm_t,
2441        params: *mut snd_pcm_hw_params_t,
2442        val: *mut ::core::ffi::c_uint,
2443        dir: *mut ::core::ffi::c_int,
2444    ) -> ::core::ffi::c_int;
2445}
2446unsafe extern "C" {
2447    pub fn snd_pcm_hw_params_set_period_time_minmax(
2448        pcm: *mut snd_pcm_t,
2449        params: *mut snd_pcm_hw_params_t,
2450        min: *mut ::core::ffi::c_uint,
2451        mindir: *mut ::core::ffi::c_int,
2452        max: *mut ::core::ffi::c_uint,
2453        maxdir: *mut ::core::ffi::c_int,
2454    ) -> ::core::ffi::c_int;
2455}
2456unsafe extern "C" {
2457    pub fn snd_pcm_hw_params_set_period_time_near(
2458        pcm: *mut snd_pcm_t,
2459        params: *mut snd_pcm_hw_params_t,
2460        val: *mut ::core::ffi::c_uint,
2461        dir: *mut ::core::ffi::c_int,
2462    ) -> ::core::ffi::c_int;
2463}
2464unsafe extern "C" {
2465    pub fn snd_pcm_hw_params_set_period_time_first(
2466        pcm: *mut snd_pcm_t,
2467        params: *mut snd_pcm_hw_params_t,
2468        val: *mut ::core::ffi::c_uint,
2469        dir: *mut ::core::ffi::c_int,
2470    ) -> ::core::ffi::c_int;
2471}
2472unsafe extern "C" {
2473    pub fn snd_pcm_hw_params_set_period_time_last(
2474        pcm: *mut snd_pcm_t,
2475        params: *mut snd_pcm_hw_params_t,
2476        val: *mut ::core::ffi::c_uint,
2477        dir: *mut ::core::ffi::c_int,
2478    ) -> ::core::ffi::c_int;
2479}
2480unsafe extern "C" {
2481    pub fn snd_pcm_hw_params_get_period_size(
2482        params: *const snd_pcm_hw_params_t,
2483        frames: *mut snd_pcm_uframes_t,
2484        dir: *mut ::core::ffi::c_int,
2485    ) -> ::core::ffi::c_int;
2486}
2487unsafe extern "C" {
2488    pub fn snd_pcm_hw_params_get_period_size_min(
2489        params: *const snd_pcm_hw_params_t,
2490        frames: *mut snd_pcm_uframes_t,
2491        dir: *mut ::core::ffi::c_int,
2492    ) -> ::core::ffi::c_int;
2493}
2494unsafe extern "C" {
2495    pub fn snd_pcm_hw_params_get_period_size_max(
2496        params: *const snd_pcm_hw_params_t,
2497        frames: *mut snd_pcm_uframes_t,
2498        dir: *mut ::core::ffi::c_int,
2499    ) -> ::core::ffi::c_int;
2500}
2501unsafe extern "C" {
2502    pub fn snd_pcm_hw_params_test_period_size(
2503        pcm: *mut snd_pcm_t,
2504        params: *mut snd_pcm_hw_params_t,
2505        val: snd_pcm_uframes_t,
2506        dir: ::core::ffi::c_int,
2507    ) -> ::core::ffi::c_int;
2508}
2509unsafe extern "C" {
2510    pub fn snd_pcm_hw_params_set_period_size(
2511        pcm: *mut snd_pcm_t,
2512        params: *mut snd_pcm_hw_params_t,
2513        val: snd_pcm_uframes_t,
2514        dir: ::core::ffi::c_int,
2515    ) -> ::core::ffi::c_int;
2516}
2517unsafe extern "C" {
2518    pub fn snd_pcm_hw_params_set_period_size_min(
2519        pcm: *mut snd_pcm_t,
2520        params: *mut snd_pcm_hw_params_t,
2521        val: *mut snd_pcm_uframes_t,
2522        dir: *mut ::core::ffi::c_int,
2523    ) -> ::core::ffi::c_int;
2524}
2525unsafe extern "C" {
2526    pub fn snd_pcm_hw_params_set_period_size_max(
2527        pcm: *mut snd_pcm_t,
2528        params: *mut snd_pcm_hw_params_t,
2529        val: *mut snd_pcm_uframes_t,
2530        dir: *mut ::core::ffi::c_int,
2531    ) -> ::core::ffi::c_int;
2532}
2533unsafe extern "C" {
2534    pub fn snd_pcm_hw_params_set_period_size_minmax(
2535        pcm: *mut snd_pcm_t,
2536        params: *mut snd_pcm_hw_params_t,
2537        min: *mut snd_pcm_uframes_t,
2538        mindir: *mut ::core::ffi::c_int,
2539        max: *mut snd_pcm_uframes_t,
2540        maxdir: *mut ::core::ffi::c_int,
2541    ) -> ::core::ffi::c_int;
2542}
2543unsafe extern "C" {
2544    pub fn snd_pcm_hw_params_set_period_size_near(
2545        pcm: *mut snd_pcm_t,
2546        params: *mut snd_pcm_hw_params_t,
2547        val: *mut snd_pcm_uframes_t,
2548        dir: *mut ::core::ffi::c_int,
2549    ) -> ::core::ffi::c_int;
2550}
2551unsafe extern "C" {
2552    pub fn snd_pcm_hw_params_set_period_size_first(
2553        pcm: *mut snd_pcm_t,
2554        params: *mut snd_pcm_hw_params_t,
2555        val: *mut snd_pcm_uframes_t,
2556        dir: *mut ::core::ffi::c_int,
2557    ) -> ::core::ffi::c_int;
2558}
2559unsafe extern "C" {
2560    pub fn snd_pcm_hw_params_set_period_size_last(
2561        pcm: *mut snd_pcm_t,
2562        params: *mut snd_pcm_hw_params_t,
2563        val: *mut snd_pcm_uframes_t,
2564        dir: *mut ::core::ffi::c_int,
2565    ) -> ::core::ffi::c_int;
2566}
2567unsafe extern "C" {
2568    pub fn snd_pcm_hw_params_set_period_size_integer(
2569        pcm: *mut snd_pcm_t,
2570        params: *mut snd_pcm_hw_params_t,
2571    ) -> ::core::ffi::c_int;
2572}
2573unsafe extern "C" {
2574    pub fn snd_pcm_hw_params_get_periods(
2575        params: *const snd_pcm_hw_params_t,
2576        val: *mut ::core::ffi::c_uint,
2577        dir: *mut ::core::ffi::c_int,
2578    ) -> ::core::ffi::c_int;
2579}
2580unsafe extern "C" {
2581    pub fn snd_pcm_hw_params_get_periods_min(
2582        params: *const snd_pcm_hw_params_t,
2583        val: *mut ::core::ffi::c_uint,
2584        dir: *mut ::core::ffi::c_int,
2585    ) -> ::core::ffi::c_int;
2586}
2587unsafe extern "C" {
2588    pub fn snd_pcm_hw_params_get_periods_max(
2589        params: *const snd_pcm_hw_params_t,
2590        val: *mut ::core::ffi::c_uint,
2591        dir: *mut ::core::ffi::c_int,
2592    ) -> ::core::ffi::c_int;
2593}
2594unsafe extern "C" {
2595    pub fn snd_pcm_hw_params_test_periods(
2596        pcm: *mut snd_pcm_t,
2597        params: *mut snd_pcm_hw_params_t,
2598        val: ::core::ffi::c_uint,
2599        dir: ::core::ffi::c_int,
2600    ) -> ::core::ffi::c_int;
2601}
2602unsafe extern "C" {
2603    pub fn snd_pcm_hw_params_set_periods(
2604        pcm: *mut snd_pcm_t,
2605        params: *mut snd_pcm_hw_params_t,
2606        val: ::core::ffi::c_uint,
2607        dir: ::core::ffi::c_int,
2608    ) -> ::core::ffi::c_int;
2609}
2610unsafe extern "C" {
2611    pub fn snd_pcm_hw_params_set_periods_min(
2612        pcm: *mut snd_pcm_t,
2613        params: *mut snd_pcm_hw_params_t,
2614        val: *mut ::core::ffi::c_uint,
2615        dir: *mut ::core::ffi::c_int,
2616    ) -> ::core::ffi::c_int;
2617}
2618unsafe extern "C" {
2619    pub fn snd_pcm_hw_params_set_periods_max(
2620        pcm: *mut snd_pcm_t,
2621        params: *mut snd_pcm_hw_params_t,
2622        val: *mut ::core::ffi::c_uint,
2623        dir: *mut ::core::ffi::c_int,
2624    ) -> ::core::ffi::c_int;
2625}
2626unsafe extern "C" {
2627    pub fn snd_pcm_hw_params_set_periods_minmax(
2628        pcm: *mut snd_pcm_t,
2629        params: *mut snd_pcm_hw_params_t,
2630        min: *mut ::core::ffi::c_uint,
2631        mindir: *mut ::core::ffi::c_int,
2632        max: *mut ::core::ffi::c_uint,
2633        maxdir: *mut ::core::ffi::c_int,
2634    ) -> ::core::ffi::c_int;
2635}
2636unsafe extern "C" {
2637    pub fn snd_pcm_hw_params_set_periods_near(
2638        pcm: *mut snd_pcm_t,
2639        params: *mut snd_pcm_hw_params_t,
2640        val: *mut ::core::ffi::c_uint,
2641        dir: *mut ::core::ffi::c_int,
2642    ) -> ::core::ffi::c_int;
2643}
2644unsafe extern "C" {
2645    pub fn snd_pcm_hw_params_set_periods_first(
2646        pcm: *mut snd_pcm_t,
2647        params: *mut snd_pcm_hw_params_t,
2648        val: *mut ::core::ffi::c_uint,
2649        dir: *mut ::core::ffi::c_int,
2650    ) -> ::core::ffi::c_int;
2651}
2652unsafe extern "C" {
2653    pub fn snd_pcm_hw_params_set_periods_last(
2654        pcm: *mut snd_pcm_t,
2655        params: *mut snd_pcm_hw_params_t,
2656        val: *mut ::core::ffi::c_uint,
2657        dir: *mut ::core::ffi::c_int,
2658    ) -> ::core::ffi::c_int;
2659}
2660unsafe extern "C" {
2661    pub fn snd_pcm_hw_params_set_periods_integer(
2662        pcm: *mut snd_pcm_t,
2663        params: *mut snd_pcm_hw_params_t,
2664    ) -> ::core::ffi::c_int;
2665}
2666unsafe extern "C" {
2667    pub fn snd_pcm_hw_params_get_buffer_time(
2668        params: *const snd_pcm_hw_params_t,
2669        val: *mut ::core::ffi::c_uint,
2670        dir: *mut ::core::ffi::c_int,
2671    ) -> ::core::ffi::c_int;
2672}
2673unsafe extern "C" {
2674    pub fn snd_pcm_hw_params_get_buffer_time_min(
2675        params: *const snd_pcm_hw_params_t,
2676        val: *mut ::core::ffi::c_uint,
2677        dir: *mut ::core::ffi::c_int,
2678    ) -> ::core::ffi::c_int;
2679}
2680unsafe extern "C" {
2681    pub fn snd_pcm_hw_params_get_buffer_time_max(
2682        params: *const snd_pcm_hw_params_t,
2683        val: *mut ::core::ffi::c_uint,
2684        dir: *mut ::core::ffi::c_int,
2685    ) -> ::core::ffi::c_int;
2686}
2687unsafe extern "C" {
2688    pub fn snd_pcm_hw_params_test_buffer_time(
2689        pcm: *mut snd_pcm_t,
2690        params: *mut snd_pcm_hw_params_t,
2691        val: ::core::ffi::c_uint,
2692        dir: ::core::ffi::c_int,
2693    ) -> ::core::ffi::c_int;
2694}
2695unsafe extern "C" {
2696    pub fn snd_pcm_hw_params_set_buffer_time(
2697        pcm: *mut snd_pcm_t,
2698        params: *mut snd_pcm_hw_params_t,
2699        val: ::core::ffi::c_uint,
2700        dir: ::core::ffi::c_int,
2701    ) -> ::core::ffi::c_int;
2702}
2703unsafe extern "C" {
2704    pub fn snd_pcm_hw_params_set_buffer_time_min(
2705        pcm: *mut snd_pcm_t,
2706        params: *mut snd_pcm_hw_params_t,
2707        val: *mut ::core::ffi::c_uint,
2708        dir: *mut ::core::ffi::c_int,
2709    ) -> ::core::ffi::c_int;
2710}
2711unsafe extern "C" {
2712    pub fn snd_pcm_hw_params_set_buffer_time_max(
2713        pcm: *mut snd_pcm_t,
2714        params: *mut snd_pcm_hw_params_t,
2715        val: *mut ::core::ffi::c_uint,
2716        dir: *mut ::core::ffi::c_int,
2717    ) -> ::core::ffi::c_int;
2718}
2719unsafe extern "C" {
2720    pub fn snd_pcm_hw_params_set_buffer_time_minmax(
2721        pcm: *mut snd_pcm_t,
2722        params: *mut snd_pcm_hw_params_t,
2723        min: *mut ::core::ffi::c_uint,
2724        mindir: *mut ::core::ffi::c_int,
2725        max: *mut ::core::ffi::c_uint,
2726        maxdir: *mut ::core::ffi::c_int,
2727    ) -> ::core::ffi::c_int;
2728}
2729unsafe extern "C" {
2730    pub fn snd_pcm_hw_params_set_buffer_time_near(
2731        pcm: *mut snd_pcm_t,
2732        params: *mut snd_pcm_hw_params_t,
2733        val: *mut ::core::ffi::c_uint,
2734        dir: *mut ::core::ffi::c_int,
2735    ) -> ::core::ffi::c_int;
2736}
2737unsafe extern "C" {
2738    pub fn snd_pcm_hw_params_set_buffer_time_first(
2739        pcm: *mut snd_pcm_t,
2740        params: *mut snd_pcm_hw_params_t,
2741        val: *mut ::core::ffi::c_uint,
2742        dir: *mut ::core::ffi::c_int,
2743    ) -> ::core::ffi::c_int;
2744}
2745unsafe extern "C" {
2746    pub fn snd_pcm_hw_params_set_buffer_time_last(
2747        pcm: *mut snd_pcm_t,
2748        params: *mut snd_pcm_hw_params_t,
2749        val: *mut ::core::ffi::c_uint,
2750        dir: *mut ::core::ffi::c_int,
2751    ) -> ::core::ffi::c_int;
2752}
2753unsafe extern "C" {
2754    pub fn snd_pcm_hw_params_get_buffer_size(
2755        params: *const snd_pcm_hw_params_t,
2756        val: *mut snd_pcm_uframes_t,
2757    ) -> ::core::ffi::c_int;
2758}
2759unsafe extern "C" {
2760    pub fn snd_pcm_hw_params_get_buffer_size_min(
2761        params: *const snd_pcm_hw_params_t,
2762        val: *mut snd_pcm_uframes_t,
2763    ) -> ::core::ffi::c_int;
2764}
2765unsafe extern "C" {
2766    pub fn snd_pcm_hw_params_get_buffer_size_max(
2767        params: *const snd_pcm_hw_params_t,
2768        val: *mut snd_pcm_uframes_t,
2769    ) -> ::core::ffi::c_int;
2770}
2771unsafe extern "C" {
2772    pub fn snd_pcm_hw_params_test_buffer_size(
2773        pcm: *mut snd_pcm_t,
2774        params: *mut snd_pcm_hw_params_t,
2775        val: snd_pcm_uframes_t,
2776    ) -> ::core::ffi::c_int;
2777}
2778unsafe extern "C" {
2779    pub fn snd_pcm_hw_params_set_buffer_size(
2780        pcm: *mut snd_pcm_t,
2781        params: *mut snd_pcm_hw_params_t,
2782        val: snd_pcm_uframes_t,
2783    ) -> ::core::ffi::c_int;
2784}
2785unsafe extern "C" {
2786    pub fn snd_pcm_hw_params_set_buffer_size_min(
2787        pcm: *mut snd_pcm_t,
2788        params: *mut snd_pcm_hw_params_t,
2789        val: *mut snd_pcm_uframes_t,
2790    ) -> ::core::ffi::c_int;
2791}
2792unsafe extern "C" {
2793    pub fn snd_pcm_hw_params_set_buffer_size_max(
2794        pcm: *mut snd_pcm_t,
2795        params: *mut snd_pcm_hw_params_t,
2796        val: *mut snd_pcm_uframes_t,
2797    ) -> ::core::ffi::c_int;
2798}
2799unsafe extern "C" {
2800    pub fn snd_pcm_hw_params_set_buffer_size_minmax(
2801        pcm: *mut snd_pcm_t,
2802        params: *mut snd_pcm_hw_params_t,
2803        min: *mut snd_pcm_uframes_t,
2804        max: *mut snd_pcm_uframes_t,
2805    ) -> ::core::ffi::c_int;
2806}
2807unsafe extern "C" {
2808    pub fn snd_pcm_hw_params_set_buffer_size_near(
2809        pcm: *mut snd_pcm_t,
2810        params: *mut snd_pcm_hw_params_t,
2811        val: *mut snd_pcm_uframes_t,
2812    ) -> ::core::ffi::c_int;
2813}
2814unsafe extern "C" {
2815    pub fn snd_pcm_hw_params_set_buffer_size_first(
2816        pcm: *mut snd_pcm_t,
2817        params: *mut snd_pcm_hw_params_t,
2818        val: *mut snd_pcm_uframes_t,
2819    ) -> ::core::ffi::c_int;
2820}
2821unsafe extern "C" {
2822    pub fn snd_pcm_hw_params_set_buffer_size_last(
2823        pcm: *mut snd_pcm_t,
2824        params: *mut snd_pcm_hw_params_t,
2825        val: *mut snd_pcm_uframes_t,
2826    ) -> ::core::ffi::c_int;
2827}
2828unsafe extern "C" {
2829    pub fn snd_pcm_hw_params_get_min_align(
2830        params: *const snd_pcm_hw_params_t,
2831        val: *mut snd_pcm_uframes_t,
2832    ) -> ::core::ffi::c_int;
2833}
2834unsafe extern "C" {
2835    pub fn snd_pcm_sw_params_sizeof() -> usize;
2836}
2837unsafe extern "C" {
2838    pub fn snd_pcm_sw_params_malloc(ptr: *mut *mut snd_pcm_sw_params_t) -> ::core::ffi::c_int;
2839}
2840unsafe extern "C" {
2841    pub fn snd_pcm_sw_params_free(obj: *mut snd_pcm_sw_params_t);
2842}
2843unsafe extern "C" {
2844    pub fn snd_pcm_sw_params_copy(dst: *mut snd_pcm_sw_params_t, src: *const snd_pcm_sw_params_t);
2845}
2846unsafe extern "C" {
2847    pub fn snd_pcm_sw_params_get_boundary(
2848        params: *const snd_pcm_sw_params_t,
2849        val: *mut snd_pcm_uframes_t,
2850    ) -> ::core::ffi::c_int;
2851}
2852unsafe extern "C" {
2853    pub fn snd_pcm_sw_params_set_tstamp_mode(
2854        pcm: *mut snd_pcm_t,
2855        params: *mut snd_pcm_sw_params_t,
2856        val: snd_pcm_tstamp_t,
2857    ) -> ::core::ffi::c_int;
2858}
2859unsafe extern "C" {
2860    pub fn snd_pcm_sw_params_get_tstamp_mode(
2861        params: *const snd_pcm_sw_params_t,
2862        val: *mut snd_pcm_tstamp_t,
2863    ) -> ::core::ffi::c_int;
2864}
2865unsafe extern "C" {
2866    pub fn snd_pcm_sw_params_set_tstamp_type(
2867        pcm: *mut snd_pcm_t,
2868        params: *mut snd_pcm_sw_params_t,
2869        val: snd_pcm_tstamp_type_t,
2870    ) -> ::core::ffi::c_int;
2871}
2872unsafe extern "C" {
2873    pub fn snd_pcm_sw_params_get_tstamp_type(
2874        params: *const snd_pcm_sw_params_t,
2875        val: *mut snd_pcm_tstamp_type_t,
2876    ) -> ::core::ffi::c_int;
2877}
2878unsafe extern "C" {
2879    pub fn snd_pcm_sw_params_set_avail_min(
2880        pcm: *mut snd_pcm_t,
2881        params: *mut snd_pcm_sw_params_t,
2882        val: snd_pcm_uframes_t,
2883    ) -> ::core::ffi::c_int;
2884}
2885unsafe extern "C" {
2886    pub fn snd_pcm_sw_params_get_avail_min(
2887        params: *const snd_pcm_sw_params_t,
2888        val: *mut snd_pcm_uframes_t,
2889    ) -> ::core::ffi::c_int;
2890}
2891unsafe extern "C" {
2892    pub fn snd_pcm_sw_params_set_period_event(
2893        pcm: *mut snd_pcm_t,
2894        params: *mut snd_pcm_sw_params_t,
2895        val: ::core::ffi::c_int,
2896    ) -> ::core::ffi::c_int;
2897}
2898unsafe extern "C" {
2899    pub fn snd_pcm_sw_params_get_period_event(
2900        params: *const snd_pcm_sw_params_t,
2901        val: *mut ::core::ffi::c_int,
2902    ) -> ::core::ffi::c_int;
2903}
2904unsafe extern "C" {
2905    pub fn snd_pcm_sw_params_set_start_threshold(
2906        pcm: *mut snd_pcm_t,
2907        params: *mut snd_pcm_sw_params_t,
2908        val: snd_pcm_uframes_t,
2909    ) -> ::core::ffi::c_int;
2910}
2911unsafe extern "C" {
2912    pub fn snd_pcm_sw_params_get_start_threshold(
2913        paramsm: *const snd_pcm_sw_params_t,
2914        val: *mut snd_pcm_uframes_t,
2915    ) -> ::core::ffi::c_int;
2916}
2917unsafe extern "C" {
2918    pub fn snd_pcm_sw_params_set_stop_threshold(
2919        pcm: *mut snd_pcm_t,
2920        params: *mut snd_pcm_sw_params_t,
2921        val: snd_pcm_uframes_t,
2922    ) -> ::core::ffi::c_int;
2923}
2924unsafe extern "C" {
2925    pub fn snd_pcm_sw_params_get_stop_threshold(
2926        params: *const snd_pcm_sw_params_t,
2927        val: *mut snd_pcm_uframes_t,
2928    ) -> ::core::ffi::c_int;
2929}
2930unsafe extern "C" {
2931    pub fn snd_pcm_sw_params_set_silence_threshold(
2932        pcm: *mut snd_pcm_t,
2933        params: *mut snd_pcm_sw_params_t,
2934        val: snd_pcm_uframes_t,
2935    ) -> ::core::ffi::c_int;
2936}
2937unsafe extern "C" {
2938    pub fn snd_pcm_sw_params_get_silence_threshold(
2939        params: *const snd_pcm_sw_params_t,
2940        val: *mut snd_pcm_uframes_t,
2941    ) -> ::core::ffi::c_int;
2942}
2943unsafe extern "C" {
2944    pub fn snd_pcm_sw_params_set_silence_size(
2945        pcm: *mut snd_pcm_t,
2946        params: *mut snd_pcm_sw_params_t,
2947        val: snd_pcm_uframes_t,
2948    ) -> ::core::ffi::c_int;
2949}
2950unsafe extern "C" {
2951    pub fn snd_pcm_sw_params_get_silence_size(
2952        params: *const snd_pcm_sw_params_t,
2953        val: *mut snd_pcm_uframes_t,
2954    ) -> ::core::ffi::c_int;
2955}
2956unsafe extern "C" {
2957    pub fn snd_pcm_access_mask_sizeof() -> usize;
2958}
2959unsafe extern "C" {
2960    pub fn snd_pcm_access_mask_malloc(ptr: *mut *mut snd_pcm_access_mask_t) -> ::core::ffi::c_int;
2961}
2962unsafe extern "C" {
2963    pub fn snd_pcm_access_mask_free(obj: *mut snd_pcm_access_mask_t);
2964}
2965unsafe extern "C" {
2966    pub fn snd_pcm_access_mask_copy(
2967        dst: *mut snd_pcm_access_mask_t,
2968        src: *const snd_pcm_access_mask_t,
2969    );
2970}
2971unsafe extern "C" {
2972    pub fn snd_pcm_access_mask_none(mask: *mut snd_pcm_access_mask_t);
2973}
2974unsafe extern "C" {
2975    pub fn snd_pcm_access_mask_any(mask: *mut snd_pcm_access_mask_t);
2976}
2977unsafe extern "C" {
2978    pub fn snd_pcm_access_mask_test(
2979        mask: *const snd_pcm_access_mask_t,
2980        val: snd_pcm_access_t,
2981    ) -> ::core::ffi::c_int;
2982}
2983unsafe extern "C" {
2984    pub fn snd_pcm_access_mask_empty(mask: *const snd_pcm_access_mask_t) -> ::core::ffi::c_int;
2985}
2986unsafe extern "C" {
2987    pub fn snd_pcm_access_mask_set(mask: *mut snd_pcm_access_mask_t, val: snd_pcm_access_t);
2988}
2989unsafe extern "C" {
2990    pub fn snd_pcm_access_mask_reset(mask: *mut snd_pcm_access_mask_t, val: snd_pcm_access_t);
2991}
2992unsafe extern "C" {
2993    pub fn snd_pcm_format_mask_sizeof() -> usize;
2994}
2995unsafe extern "C" {
2996    pub fn snd_pcm_format_mask_malloc(ptr: *mut *mut snd_pcm_format_mask_t) -> ::core::ffi::c_int;
2997}
2998unsafe extern "C" {
2999    pub fn snd_pcm_format_mask_free(obj: *mut snd_pcm_format_mask_t);
3000}
3001unsafe extern "C" {
3002    pub fn snd_pcm_format_mask_copy(
3003        dst: *mut snd_pcm_format_mask_t,
3004        src: *const snd_pcm_format_mask_t,
3005    );
3006}
3007unsafe extern "C" {
3008    pub fn snd_pcm_format_mask_none(mask: *mut snd_pcm_format_mask_t);
3009}
3010unsafe extern "C" {
3011    pub fn snd_pcm_format_mask_any(mask: *mut snd_pcm_format_mask_t);
3012}
3013unsafe extern "C" {
3014    pub fn snd_pcm_format_mask_test(
3015        mask: *const snd_pcm_format_mask_t,
3016        val: snd_pcm_format_t,
3017    ) -> ::core::ffi::c_int;
3018}
3019unsafe extern "C" {
3020    pub fn snd_pcm_format_mask_empty(mask: *const snd_pcm_format_mask_t) -> ::core::ffi::c_int;
3021}
3022unsafe extern "C" {
3023    pub fn snd_pcm_format_mask_set(mask: *mut snd_pcm_format_mask_t, val: snd_pcm_format_t);
3024}
3025unsafe extern "C" {
3026    pub fn snd_pcm_format_mask_reset(mask: *mut snd_pcm_format_mask_t, val: snd_pcm_format_t);
3027}
3028unsafe extern "C" {
3029    pub fn snd_pcm_subformat_mask_sizeof() -> usize;
3030}
3031unsafe extern "C" {
3032    pub fn snd_pcm_subformat_mask_malloc(
3033        ptr: *mut *mut snd_pcm_subformat_mask_t,
3034    ) -> ::core::ffi::c_int;
3035}
3036unsafe extern "C" {
3037    pub fn snd_pcm_subformat_mask_free(obj: *mut snd_pcm_subformat_mask_t);
3038}
3039unsafe extern "C" {
3040    pub fn snd_pcm_subformat_mask_copy(
3041        dst: *mut snd_pcm_subformat_mask_t,
3042        src: *const snd_pcm_subformat_mask_t,
3043    );
3044}
3045unsafe extern "C" {
3046    pub fn snd_pcm_subformat_mask_none(mask: *mut snd_pcm_subformat_mask_t);
3047}
3048unsafe extern "C" {
3049    pub fn snd_pcm_subformat_mask_any(mask: *mut snd_pcm_subformat_mask_t);
3050}
3051unsafe extern "C" {
3052    pub fn snd_pcm_subformat_mask_test(
3053        mask: *const snd_pcm_subformat_mask_t,
3054        val: snd_pcm_subformat_t,
3055    ) -> ::core::ffi::c_int;
3056}
3057unsafe extern "C" {
3058    pub fn snd_pcm_subformat_mask_empty(
3059        mask: *const snd_pcm_subformat_mask_t,
3060    ) -> ::core::ffi::c_int;
3061}
3062unsafe extern "C" {
3063    pub fn snd_pcm_subformat_mask_set(
3064        mask: *mut snd_pcm_subformat_mask_t,
3065        val: snd_pcm_subformat_t,
3066    );
3067}
3068unsafe extern "C" {
3069    pub fn snd_pcm_subformat_mask_reset(
3070        mask: *mut snd_pcm_subformat_mask_t,
3071        val: snd_pcm_subformat_t,
3072    );
3073}
3074unsafe extern "C" {
3075    pub fn snd_pcm_status_sizeof() -> usize;
3076}
3077unsafe extern "C" {
3078    pub fn snd_pcm_status_malloc(ptr: *mut *mut snd_pcm_status_t) -> ::core::ffi::c_int;
3079}
3080unsafe extern "C" {
3081    pub fn snd_pcm_status_free(obj: *mut snd_pcm_status_t);
3082}
3083unsafe extern "C" {
3084    pub fn snd_pcm_status_copy(dst: *mut snd_pcm_status_t, src: *const snd_pcm_status_t);
3085}
3086unsafe extern "C" {
3087    pub fn snd_pcm_status_get_state(obj: *const snd_pcm_status_t) -> snd_pcm_state_t;
3088}
3089unsafe extern "C" {
3090    pub fn snd_pcm_status_get_trigger_tstamp(
3091        obj: *const snd_pcm_status_t,
3092        ptr: *mut snd_timestamp_t,
3093    );
3094}
3095unsafe extern "C" {
3096    pub fn snd_pcm_status_get_trigger_htstamp(
3097        obj: *const snd_pcm_status_t,
3098        ptr: *mut snd_htimestamp_t,
3099    );
3100}
3101unsafe extern "C" {
3102    pub fn snd_pcm_status_get_tstamp(obj: *const snd_pcm_status_t, ptr: *mut snd_timestamp_t);
3103}
3104unsafe extern "C" {
3105    pub fn snd_pcm_status_get_htstamp(obj: *const snd_pcm_status_t, ptr: *mut snd_htimestamp_t);
3106}
3107unsafe extern "C" {
3108    pub fn snd_pcm_status_get_audio_htstamp(
3109        obj: *const snd_pcm_status_t,
3110        ptr: *mut snd_htimestamp_t,
3111    );
3112}
3113unsafe extern "C" {
3114    pub fn snd_pcm_status_get_driver_htstamp(
3115        obj: *const snd_pcm_status_t,
3116        ptr: *mut snd_htimestamp_t,
3117    );
3118}
3119unsafe extern "C" {
3120    pub fn snd_pcm_status_get_audio_htstamp_report(
3121        obj: *const snd_pcm_status_t,
3122        audio_tstamp_report: *mut snd_pcm_audio_tstamp_report_t,
3123    );
3124}
3125unsafe extern "C" {
3126    pub fn snd_pcm_status_set_audio_htstamp_config(
3127        obj: *mut snd_pcm_status_t,
3128        audio_tstamp_config: *mut snd_pcm_audio_tstamp_config_t,
3129    );
3130}
3131unsafe extern "C" {
3132    pub fn snd_pcm_status_get_delay(obj: *const snd_pcm_status_t) -> snd_pcm_sframes_t;
3133}
3134unsafe extern "C" {
3135    pub fn snd_pcm_status_get_avail(obj: *const snd_pcm_status_t) -> snd_pcm_uframes_t;
3136}
3137unsafe extern "C" {
3138    pub fn snd_pcm_status_get_avail_max(obj: *const snd_pcm_status_t) -> snd_pcm_uframes_t;
3139}
3140unsafe extern "C" {
3141    pub fn snd_pcm_status_get_overrange(obj: *const snd_pcm_status_t) -> snd_pcm_uframes_t;
3142}
3143unsafe extern "C" {
3144    pub fn snd_pcm_type_name(type_: snd_pcm_type_t) -> *const ::core::ffi::c_char;
3145}
3146unsafe extern "C" {
3147    pub fn snd_pcm_stream_name(stream: snd_pcm_stream_t) -> *const ::core::ffi::c_char;
3148}
3149unsafe extern "C" {
3150    pub fn snd_pcm_access_name(_access: snd_pcm_access_t) -> *const ::core::ffi::c_char;
3151}
3152unsafe extern "C" {
3153    pub fn snd_pcm_format_name(format: snd_pcm_format_t) -> *const ::core::ffi::c_char;
3154}
3155unsafe extern "C" {
3156    pub fn snd_pcm_format_description(format: snd_pcm_format_t) -> *const ::core::ffi::c_char;
3157}
3158unsafe extern "C" {
3159    pub fn snd_pcm_subformat_name(subformat: snd_pcm_subformat_t) -> *const ::core::ffi::c_char;
3160}
3161unsafe extern "C" {
3162    pub fn snd_pcm_subformat_description(
3163        subformat: snd_pcm_subformat_t,
3164    ) -> *const ::core::ffi::c_char;
3165}
3166unsafe extern "C" {
3167    pub fn snd_pcm_subformat_value(name: *const ::core::ffi::c_char) -> snd_pcm_subformat_t;
3168}
3169unsafe extern "C" {
3170    pub fn snd_pcm_format_value(name: *const ::core::ffi::c_char) -> snd_pcm_format_t;
3171}
3172unsafe extern "C" {
3173    pub fn snd_pcm_tstamp_mode_name(mode: snd_pcm_tstamp_t) -> *const ::core::ffi::c_char;
3174}
3175unsafe extern "C" {
3176    pub fn snd_pcm_state_name(state: snd_pcm_state_t) -> *const ::core::ffi::c_char;
3177}
3178unsafe extern "C" {
3179    pub fn snd_pcm_dump(pcm: *mut snd_pcm_t, out: *mut snd_output_t) -> ::core::ffi::c_int;
3180}
3181unsafe extern "C" {
3182    pub fn snd_pcm_dump_hw_setup(pcm: *mut snd_pcm_t, out: *mut snd_output_t)
3183    -> ::core::ffi::c_int;
3184}
3185unsafe extern "C" {
3186    pub fn snd_pcm_dump_sw_setup(pcm: *mut snd_pcm_t, out: *mut snd_output_t)
3187    -> ::core::ffi::c_int;
3188}
3189unsafe extern "C" {
3190    pub fn snd_pcm_dump_setup(pcm: *mut snd_pcm_t, out: *mut snd_output_t) -> ::core::ffi::c_int;
3191}
3192unsafe extern "C" {
3193    pub fn snd_pcm_hw_params_dump(
3194        params: *mut snd_pcm_hw_params_t,
3195        out: *mut snd_output_t,
3196    ) -> ::core::ffi::c_int;
3197}
3198unsafe extern "C" {
3199    pub fn snd_pcm_sw_params_dump(
3200        params: *mut snd_pcm_sw_params_t,
3201        out: *mut snd_output_t,
3202    ) -> ::core::ffi::c_int;
3203}
3204unsafe extern "C" {
3205    pub fn snd_pcm_status_dump(
3206        status: *mut snd_pcm_status_t,
3207        out: *mut snd_output_t,
3208    ) -> ::core::ffi::c_int;
3209}
3210unsafe extern "C" {
3211    pub fn snd_pcm_mmap_begin(
3212        pcm: *mut snd_pcm_t,
3213        areas: *mut *const snd_pcm_channel_area_t,
3214        offset: *mut snd_pcm_uframes_t,
3215        frames: *mut snd_pcm_uframes_t,
3216    ) -> ::core::ffi::c_int;
3217}
3218unsafe extern "C" {
3219    pub fn snd_pcm_mmap_commit(
3220        pcm: *mut snd_pcm_t,
3221        offset: snd_pcm_uframes_t,
3222        frames: snd_pcm_uframes_t,
3223    ) -> snd_pcm_sframes_t;
3224}
3225unsafe extern "C" {
3226    pub fn snd_pcm_mmap_writei(
3227        pcm: *mut snd_pcm_t,
3228        buffer: *const ::core::ffi::c_void,
3229        size: snd_pcm_uframes_t,
3230    ) -> snd_pcm_sframes_t;
3231}
3232unsafe extern "C" {
3233    pub fn snd_pcm_mmap_readi(
3234        pcm: *mut snd_pcm_t,
3235        buffer: *mut ::core::ffi::c_void,
3236        size: snd_pcm_uframes_t,
3237    ) -> snd_pcm_sframes_t;
3238}
3239unsafe extern "C" {
3240    pub fn snd_pcm_mmap_writen(
3241        pcm: *mut snd_pcm_t,
3242        bufs: *mut *mut ::core::ffi::c_void,
3243        size: snd_pcm_uframes_t,
3244    ) -> snd_pcm_sframes_t;
3245}
3246unsafe extern "C" {
3247    pub fn snd_pcm_mmap_readn(
3248        pcm: *mut snd_pcm_t,
3249        bufs: *mut *mut ::core::ffi::c_void,
3250        size: snd_pcm_uframes_t,
3251    ) -> snd_pcm_sframes_t;
3252}
3253unsafe extern "C" {
3254    pub fn snd_pcm_format_signed(format: snd_pcm_format_t) -> ::core::ffi::c_int;
3255}
3256unsafe extern "C" {
3257    pub fn snd_pcm_format_unsigned(format: snd_pcm_format_t) -> ::core::ffi::c_int;
3258}
3259unsafe extern "C" {
3260    pub fn snd_pcm_format_linear(format: snd_pcm_format_t) -> ::core::ffi::c_int;
3261}
3262unsafe extern "C" {
3263    pub fn snd_pcm_format_float(format: snd_pcm_format_t) -> ::core::ffi::c_int;
3264}
3265unsafe extern "C" {
3266    pub fn snd_pcm_format_little_endian(format: snd_pcm_format_t) -> ::core::ffi::c_int;
3267}
3268unsafe extern "C" {
3269    pub fn snd_pcm_format_big_endian(format: snd_pcm_format_t) -> ::core::ffi::c_int;
3270}
3271unsafe extern "C" {
3272    pub fn snd_pcm_format_cpu_endian(format: snd_pcm_format_t) -> ::core::ffi::c_int;
3273}
3274unsafe extern "C" {
3275    pub fn snd_pcm_format_width(format: snd_pcm_format_t) -> ::core::ffi::c_int;
3276}
3277unsafe extern "C" {
3278    pub fn snd_pcm_format_physical_width(format: snd_pcm_format_t) -> ::core::ffi::c_int;
3279}
3280unsafe extern "C" {
3281    pub fn snd_pcm_build_linear_format(
3282        width: ::core::ffi::c_int,
3283        pwidth: ::core::ffi::c_int,
3284        unsignd: ::core::ffi::c_int,
3285        big_endian: ::core::ffi::c_int,
3286    ) -> snd_pcm_format_t;
3287}
3288unsafe extern "C" {
3289    pub fn snd_pcm_format_size(format: snd_pcm_format_t, samples: usize) -> isize;
3290}
3291unsafe extern "C" {
3292    pub fn snd_pcm_format_silence(format: snd_pcm_format_t) -> u8;
3293}
3294unsafe extern "C" {
3295    pub fn snd_pcm_format_silence_16(format: snd_pcm_format_t) -> u16;
3296}
3297unsafe extern "C" {
3298    pub fn snd_pcm_format_silence_32(format: snd_pcm_format_t) -> u32;
3299}
3300unsafe extern "C" {
3301    pub fn snd_pcm_format_silence_64(format: snd_pcm_format_t) -> u64;
3302}
3303unsafe extern "C" {
3304    pub fn snd_pcm_format_set_silence(
3305        format: snd_pcm_format_t,
3306        buf: *mut ::core::ffi::c_void,
3307        samples: ::core::ffi::c_uint,
3308    ) -> ::core::ffi::c_int;
3309}
3310unsafe extern "C" {
3311    pub fn snd_pcm_bytes_to_frames(pcm: *mut snd_pcm_t, bytes: isize) -> snd_pcm_sframes_t;
3312}
3313unsafe extern "C" {
3314    pub fn snd_pcm_frames_to_bytes(pcm: *mut snd_pcm_t, frames: snd_pcm_sframes_t) -> isize;
3315}
3316unsafe extern "C" {
3317    pub fn snd_pcm_bytes_to_samples(pcm: *mut snd_pcm_t, bytes: isize) -> ::core::ffi::c_long;
3318}
3319unsafe extern "C" {
3320    pub fn snd_pcm_samples_to_bytes(pcm: *mut snd_pcm_t, samples: ::core::ffi::c_long) -> isize;
3321}
3322unsafe extern "C" {
3323    pub fn snd_pcm_area_silence(
3324        dst_channel: *const snd_pcm_channel_area_t,
3325        dst_offset: snd_pcm_uframes_t,
3326        samples: ::core::ffi::c_uint,
3327        format: snd_pcm_format_t,
3328    ) -> ::core::ffi::c_int;
3329}
3330unsafe extern "C" {
3331    pub fn snd_pcm_areas_silence(
3332        dst_channels: *const snd_pcm_channel_area_t,
3333        dst_offset: snd_pcm_uframes_t,
3334        channels: ::core::ffi::c_uint,
3335        frames: snd_pcm_uframes_t,
3336        format: snd_pcm_format_t,
3337    ) -> ::core::ffi::c_int;
3338}
3339unsafe extern "C" {
3340    pub fn snd_pcm_area_copy(
3341        dst_channel: *const snd_pcm_channel_area_t,
3342        dst_offset: snd_pcm_uframes_t,
3343        src_channel: *const snd_pcm_channel_area_t,
3344        src_offset: snd_pcm_uframes_t,
3345        samples: ::core::ffi::c_uint,
3346        format: snd_pcm_format_t,
3347    ) -> ::core::ffi::c_int;
3348}
3349unsafe extern "C" {
3350    pub fn snd_pcm_areas_copy(
3351        dst_channels: *const snd_pcm_channel_area_t,
3352        dst_offset: snd_pcm_uframes_t,
3353        src_channels: *const snd_pcm_channel_area_t,
3354        src_offset: snd_pcm_uframes_t,
3355        channels: ::core::ffi::c_uint,
3356        frames: snd_pcm_uframes_t,
3357        format: snd_pcm_format_t,
3358    ) -> ::core::ffi::c_int;
3359}
3360unsafe extern "C" {
3361    pub fn snd_pcm_areas_copy_wrap(
3362        dst_channels: *const snd_pcm_channel_area_t,
3363        dst_offset: snd_pcm_uframes_t,
3364        dst_size: snd_pcm_uframes_t,
3365        src_channels: *const snd_pcm_channel_area_t,
3366        src_offset: snd_pcm_uframes_t,
3367        src_size: snd_pcm_uframes_t,
3368        channels: ::core::ffi::c_uint,
3369        frames: snd_pcm_uframes_t,
3370        format: snd_pcm_format_t,
3371    ) -> ::core::ffi::c_int;
3372}
3373pub const SND_PCM_HOOK_TYPE_HW_PARAMS: _snd_pcm_hook_type = 0;
3374pub const SND_PCM_HOOK_TYPE_HW_FREE: _snd_pcm_hook_type = 1;
3375pub const SND_PCM_HOOK_TYPE_CLOSE: _snd_pcm_hook_type = 2;
3376pub const SND_PCM_HOOK_TYPE_LAST: _snd_pcm_hook_type = 2;
3377pub type _snd_pcm_hook_type = ::core::ffi::c_uint;
3378pub use self::_snd_pcm_hook_type as snd_pcm_hook_type_t;
3379#[repr(C)]
3380#[derive(Debug, Copy, Clone)]
3381pub struct _snd_pcm_hook {
3382    _unused: [u8; 0],
3383}
3384pub type snd_pcm_hook_t = _snd_pcm_hook;
3385pub type snd_pcm_hook_func_t =
3386    ::core::option::Option<unsafe extern "C" fn(hook: *mut snd_pcm_hook_t) -> ::core::ffi::c_int>;
3387unsafe extern "C" {
3388    pub fn snd_pcm_hook_get_pcm(hook: *mut snd_pcm_hook_t) -> *mut snd_pcm_t;
3389}
3390unsafe extern "C" {
3391    pub fn snd_pcm_hook_get_private(hook: *mut snd_pcm_hook_t) -> *mut ::core::ffi::c_void;
3392}
3393unsafe extern "C" {
3394    pub fn snd_pcm_hook_set_private(
3395        hook: *mut snd_pcm_hook_t,
3396        private_data: *mut ::core::ffi::c_void,
3397    );
3398}
3399unsafe extern "C" {
3400    pub fn snd_pcm_hook_add(
3401        hookp: *mut *mut snd_pcm_hook_t,
3402        pcm: *mut snd_pcm_t,
3403        type_: snd_pcm_hook_type_t,
3404        func: snd_pcm_hook_func_t,
3405        private_data: *mut ::core::ffi::c_void,
3406    ) -> ::core::ffi::c_int;
3407}
3408unsafe extern "C" {
3409    pub fn snd_pcm_hook_remove(hook: *mut snd_pcm_hook_t) -> ::core::ffi::c_int;
3410}
3411#[repr(C)]
3412#[derive(Debug, Copy, Clone)]
3413pub struct _snd_pcm_scope_ops {
3414    pub enable: ::core::option::Option<
3415        unsafe extern "C" fn(scope: *mut snd_pcm_scope_t) -> ::core::ffi::c_int,
3416    >,
3417    pub disable: ::core::option::Option<unsafe extern "C" fn(scope: *mut snd_pcm_scope_t)>,
3418    pub start: ::core::option::Option<unsafe extern "C" fn(scope: *mut snd_pcm_scope_t)>,
3419    pub stop: ::core::option::Option<unsafe extern "C" fn(scope: *mut snd_pcm_scope_t)>,
3420    pub update: ::core::option::Option<unsafe extern "C" fn(scope: *mut snd_pcm_scope_t)>,
3421    pub reset: ::core::option::Option<unsafe extern "C" fn(scope: *mut snd_pcm_scope_t)>,
3422    pub close: ::core::option::Option<unsafe extern "C" fn(scope: *mut snd_pcm_scope_t)>,
3423}
3424pub type snd_pcm_scope_ops_t = _snd_pcm_scope_ops;
3425unsafe extern "C" {
3426    pub fn snd_pcm_meter_get_bufsize(pcm: *mut snd_pcm_t) -> snd_pcm_uframes_t;
3427}
3428unsafe extern "C" {
3429    pub fn snd_pcm_meter_get_channels(pcm: *mut snd_pcm_t) -> ::core::ffi::c_uint;
3430}
3431unsafe extern "C" {
3432    pub fn snd_pcm_meter_get_rate(pcm: *mut snd_pcm_t) -> ::core::ffi::c_uint;
3433}
3434unsafe extern "C" {
3435    pub fn snd_pcm_meter_get_now(pcm: *mut snd_pcm_t) -> snd_pcm_uframes_t;
3436}
3437unsafe extern "C" {
3438    pub fn snd_pcm_meter_get_boundary(pcm: *mut snd_pcm_t) -> snd_pcm_uframes_t;
3439}
3440unsafe extern "C" {
3441    pub fn snd_pcm_meter_add_scope(
3442        pcm: *mut snd_pcm_t,
3443        scope: *mut snd_pcm_scope_t,
3444    ) -> ::core::ffi::c_int;
3445}
3446unsafe extern "C" {
3447    pub fn snd_pcm_meter_search_scope(
3448        pcm: *mut snd_pcm_t,
3449        name: *const ::core::ffi::c_char,
3450    ) -> *mut snd_pcm_scope_t;
3451}
3452unsafe extern "C" {
3453    pub fn snd_pcm_scope_malloc(ptr: *mut *mut snd_pcm_scope_t) -> ::core::ffi::c_int;
3454}
3455unsafe extern "C" {
3456    pub fn snd_pcm_scope_set_ops(scope: *mut snd_pcm_scope_t, val: *const snd_pcm_scope_ops_t);
3457}
3458unsafe extern "C" {
3459    pub fn snd_pcm_scope_set_name(scope: *mut snd_pcm_scope_t, val: *const ::core::ffi::c_char);
3460}
3461unsafe extern "C" {
3462    pub fn snd_pcm_scope_get_name(scope: *mut snd_pcm_scope_t) -> *const ::core::ffi::c_char;
3463}
3464unsafe extern "C" {
3465    pub fn snd_pcm_scope_get_callback_private(
3466        scope: *mut snd_pcm_scope_t,
3467    ) -> *mut ::core::ffi::c_void;
3468}
3469unsafe extern "C" {
3470    pub fn snd_pcm_scope_set_callback_private(
3471        scope: *mut snd_pcm_scope_t,
3472        val: *mut ::core::ffi::c_void,
3473    );
3474}
3475unsafe extern "C" {
3476    pub fn snd_pcm_scope_s16_open(
3477        pcm: *mut snd_pcm_t,
3478        name: *const ::core::ffi::c_char,
3479        scopep: *mut *mut snd_pcm_scope_t,
3480    ) -> ::core::ffi::c_int;
3481}
3482unsafe extern "C" {
3483    pub fn snd_pcm_scope_s16_get_channel_buffer(
3484        scope: *mut snd_pcm_scope_t,
3485        channel: ::core::ffi::c_uint,
3486    ) -> *mut i16;
3487}
3488pub const SND_SPCM_LATENCY_STANDARD: _snd_spcm_latency = 0;
3489pub const SND_SPCM_LATENCY_MEDIUM: _snd_spcm_latency = 1;
3490pub const SND_SPCM_LATENCY_REALTIME: _snd_spcm_latency = 2;
3491pub type _snd_spcm_latency = ::core::ffi::c_uint;
3492pub use self::_snd_spcm_latency as snd_spcm_latency_t;
3493pub const SND_SPCM_XRUN_IGNORE: _snd_spcm_xrun_type = 0;
3494pub const SND_SPCM_XRUN_STOP: _snd_spcm_xrun_type = 1;
3495pub type _snd_spcm_xrun_type = ::core::ffi::c_uint;
3496pub use self::_snd_spcm_xrun_type as snd_spcm_xrun_type_t;
3497pub const SND_SPCM_DUPLEX_LIBERAL: _snd_spcm_duplex_type = 0;
3498pub const SND_SPCM_DUPLEX_PEDANTIC: _snd_spcm_duplex_type = 1;
3499pub type _snd_spcm_duplex_type = ::core::ffi::c_uint;
3500pub use self::_snd_spcm_duplex_type as snd_spcm_duplex_type_t;
3501unsafe extern "C" {
3502    pub fn snd_spcm_init(
3503        pcm: *mut snd_pcm_t,
3504        rate: ::core::ffi::c_uint,
3505        channels: ::core::ffi::c_uint,
3506        format: snd_pcm_format_t,
3507        subformat: snd_pcm_subformat_t,
3508        latency: snd_spcm_latency_t,
3509        _access: snd_pcm_access_t,
3510        xrun_type: snd_spcm_xrun_type_t,
3511    ) -> ::core::ffi::c_int;
3512}
3513unsafe extern "C" {
3514    pub fn snd_spcm_init_duplex(
3515        playback_pcm: *mut snd_pcm_t,
3516        capture_pcm: *mut snd_pcm_t,
3517        rate: ::core::ffi::c_uint,
3518        channels: ::core::ffi::c_uint,
3519        format: snd_pcm_format_t,
3520        subformat: snd_pcm_subformat_t,
3521        latency: snd_spcm_latency_t,
3522        _access: snd_pcm_access_t,
3523        xrun_type: snd_spcm_xrun_type_t,
3524        duplex_type: snd_spcm_duplex_type_t,
3525    ) -> ::core::ffi::c_int;
3526}
3527unsafe extern "C" {
3528    pub fn snd_spcm_init_get_params(
3529        pcm: *mut snd_pcm_t,
3530        rate: *mut ::core::ffi::c_uint,
3531        buffer_size: *mut snd_pcm_uframes_t,
3532        period_size: *mut snd_pcm_uframes_t,
3533    ) -> ::core::ffi::c_int;
3534}
3535unsafe extern "C" {
3536    pub fn snd_pcm_start_mode_name(mode: snd_pcm_start_t) -> *const ::core::ffi::c_char;
3537}
3538unsafe extern "C" {
3539    pub fn snd_pcm_xrun_mode_name(mode: snd_pcm_xrun_t) -> *const ::core::ffi::c_char;
3540}
3541unsafe extern "C" {
3542    pub fn snd_pcm_sw_params_set_start_mode(
3543        pcm: *mut snd_pcm_t,
3544        params: *mut snd_pcm_sw_params_t,
3545        val: snd_pcm_start_t,
3546    ) -> ::core::ffi::c_int;
3547}
3548unsafe extern "C" {
3549    pub fn snd_pcm_sw_params_get_start_mode(params: *const snd_pcm_sw_params_t) -> snd_pcm_start_t;
3550}
3551unsafe extern "C" {
3552    pub fn snd_pcm_sw_params_set_xrun_mode(
3553        pcm: *mut snd_pcm_t,
3554        params: *mut snd_pcm_sw_params_t,
3555        val: snd_pcm_xrun_t,
3556    ) -> ::core::ffi::c_int;
3557}
3558unsafe extern "C" {
3559    pub fn snd_pcm_sw_params_get_xrun_mode(params: *const snd_pcm_sw_params_t) -> snd_pcm_xrun_t;
3560}
3561unsafe extern "C" {
3562    pub fn snd_pcm_sw_params_set_xfer_align(
3563        pcm: *mut snd_pcm_t,
3564        params: *mut snd_pcm_sw_params_t,
3565        val: snd_pcm_uframes_t,
3566    ) -> ::core::ffi::c_int;
3567}
3568unsafe extern "C" {
3569    pub fn snd_pcm_sw_params_get_xfer_align(
3570        params: *const snd_pcm_sw_params_t,
3571        val: *mut snd_pcm_uframes_t,
3572    ) -> ::core::ffi::c_int;
3573}
3574unsafe extern "C" {
3575    pub fn snd_pcm_sw_params_set_sleep_min(
3576        pcm: *mut snd_pcm_t,
3577        params: *mut snd_pcm_sw_params_t,
3578        val: ::core::ffi::c_uint,
3579    ) -> ::core::ffi::c_int;
3580}
3581unsafe extern "C" {
3582    pub fn snd_pcm_sw_params_get_sleep_min(
3583        params: *const snd_pcm_sw_params_t,
3584        val: *mut ::core::ffi::c_uint,
3585    ) -> ::core::ffi::c_int;
3586}
3587unsafe extern "C" {
3588    pub fn snd_pcm_hw_params_get_tick_time(
3589        params: *const snd_pcm_hw_params_t,
3590        val: *mut ::core::ffi::c_uint,
3591        dir: *mut ::core::ffi::c_int,
3592    ) -> ::core::ffi::c_int;
3593}
3594unsafe extern "C" {
3595    pub fn snd_pcm_hw_params_get_tick_time_min(
3596        params: *const snd_pcm_hw_params_t,
3597        val: *mut ::core::ffi::c_uint,
3598        dir: *mut ::core::ffi::c_int,
3599    ) -> ::core::ffi::c_int;
3600}
3601unsafe extern "C" {
3602    pub fn snd_pcm_hw_params_get_tick_time_max(
3603        params: *const snd_pcm_hw_params_t,
3604        val: *mut ::core::ffi::c_uint,
3605        dir: *mut ::core::ffi::c_int,
3606    ) -> ::core::ffi::c_int;
3607}
3608unsafe extern "C" {
3609    pub fn snd_pcm_hw_params_test_tick_time(
3610        pcm: *mut snd_pcm_t,
3611        params: *mut snd_pcm_hw_params_t,
3612        val: ::core::ffi::c_uint,
3613        dir: ::core::ffi::c_int,
3614    ) -> ::core::ffi::c_int;
3615}
3616unsafe extern "C" {
3617    pub fn snd_pcm_hw_params_set_tick_time(
3618        pcm: *mut snd_pcm_t,
3619        params: *mut snd_pcm_hw_params_t,
3620        val: ::core::ffi::c_uint,
3621        dir: ::core::ffi::c_int,
3622    ) -> ::core::ffi::c_int;
3623}
3624unsafe extern "C" {
3625    pub fn snd_pcm_hw_params_set_tick_time_min(
3626        pcm: *mut snd_pcm_t,
3627        params: *mut snd_pcm_hw_params_t,
3628        val: *mut ::core::ffi::c_uint,
3629        dir: *mut ::core::ffi::c_int,
3630    ) -> ::core::ffi::c_int;
3631}
3632unsafe extern "C" {
3633    pub fn snd_pcm_hw_params_set_tick_time_max(
3634        pcm: *mut snd_pcm_t,
3635        params: *mut snd_pcm_hw_params_t,
3636        val: *mut ::core::ffi::c_uint,
3637        dir: *mut ::core::ffi::c_int,
3638    ) -> ::core::ffi::c_int;
3639}
3640unsafe extern "C" {
3641    pub fn snd_pcm_hw_params_set_tick_time_minmax(
3642        pcm: *mut snd_pcm_t,
3643        params: *mut snd_pcm_hw_params_t,
3644        min: *mut ::core::ffi::c_uint,
3645        mindir: *mut ::core::ffi::c_int,
3646        max: *mut ::core::ffi::c_uint,
3647        maxdir: *mut ::core::ffi::c_int,
3648    ) -> ::core::ffi::c_int;
3649}
3650unsafe extern "C" {
3651    pub fn snd_pcm_hw_params_set_tick_time_near(
3652        pcm: *mut snd_pcm_t,
3653        params: *mut snd_pcm_hw_params_t,
3654        val: *mut ::core::ffi::c_uint,
3655        dir: *mut ::core::ffi::c_int,
3656    ) -> ::core::ffi::c_int;
3657}
3658unsafe extern "C" {
3659    pub fn snd_pcm_hw_params_set_tick_time_first(
3660        pcm: *mut snd_pcm_t,
3661        params: *mut snd_pcm_hw_params_t,
3662        val: *mut ::core::ffi::c_uint,
3663        dir: *mut ::core::ffi::c_int,
3664    ) -> ::core::ffi::c_int;
3665}
3666unsafe extern "C" {
3667    pub fn snd_pcm_hw_params_set_tick_time_last(
3668        pcm: *mut snd_pcm_t,
3669        params: *mut snd_pcm_hw_params_t,
3670        val: *mut ::core::ffi::c_uint,
3671        dir: *mut ::core::ffi::c_int,
3672    ) -> ::core::ffi::c_int;
3673}
3674#[repr(C)]
3675#[derive(Debug, Copy, Clone)]
3676pub struct _snd_rawmidi_info {
3677    _unused: [u8; 0],
3678}
3679pub type snd_rawmidi_info_t = _snd_rawmidi_info;
3680#[repr(C)]
3681#[derive(Debug, Copy, Clone)]
3682pub struct _snd_rawmidi_params {
3683    _unused: [u8; 0],
3684}
3685pub type snd_rawmidi_params_t = _snd_rawmidi_params;
3686#[repr(C)]
3687#[derive(Debug, Copy, Clone)]
3688pub struct _snd_rawmidi_status {
3689    _unused: [u8; 0],
3690}
3691pub type snd_rawmidi_status_t = _snd_rawmidi_status;
3692pub const SND_RAWMIDI_STREAM_OUTPUT: _snd_rawmidi_stream = 0;
3693pub const SND_RAWMIDI_STREAM_INPUT: _snd_rawmidi_stream = 1;
3694pub const SND_RAWMIDI_STREAM_LAST: _snd_rawmidi_stream = 1;
3695pub type _snd_rawmidi_stream = ::core::ffi::c_uint;
3696pub use self::_snd_rawmidi_stream as snd_rawmidi_stream_t;
3697#[repr(C)]
3698#[derive(Debug, Copy, Clone)]
3699pub struct _snd_rawmidi {
3700    _unused: [u8; 0],
3701}
3702pub type snd_rawmidi_t = _snd_rawmidi;
3703pub const SND_RAWMIDI_TYPE_HW: _snd_rawmidi_type = 0;
3704pub const SND_RAWMIDI_TYPE_SHM: _snd_rawmidi_type = 1;
3705pub const SND_RAWMIDI_TYPE_INET: _snd_rawmidi_type = 2;
3706pub const SND_RAWMIDI_TYPE_VIRTUAL: _snd_rawmidi_type = 3;
3707pub type _snd_rawmidi_type = ::core::ffi::c_uint;
3708pub use self::_snd_rawmidi_type as snd_rawmidi_type_t;
3709pub const SND_RAWMIDI_CLOCK_NONE: _snd_rawmidi_clock = 0;
3710pub const SND_RAWMIDI_CLOCK_REALTIME: _snd_rawmidi_clock = 1;
3711pub const SND_RAWMIDI_CLOCK_MONOTONIC: _snd_rawmidi_clock = 2;
3712pub const SND_RAWMIDI_CLOCK_MONOTONIC_RAW: _snd_rawmidi_clock = 3;
3713pub type _snd_rawmidi_clock = ::core::ffi::c_uint;
3714pub use self::_snd_rawmidi_clock as snd_rawmidi_clock_t;
3715pub const SND_RAWMIDI_READ_STANDARD: _snd_rawmidi_read_mode = 0;
3716pub const SND_RAWMIDI_READ_TSTAMP: _snd_rawmidi_read_mode = 1;
3717pub type _snd_rawmidi_read_mode = ::core::ffi::c_uint;
3718pub use self::_snd_rawmidi_read_mode as snd_rawmidi_read_mode_t;
3719unsafe extern "C" {
3720    pub fn snd_rawmidi_open(
3721        in_rmidi: *mut *mut snd_rawmidi_t,
3722        out_rmidi: *mut *mut snd_rawmidi_t,
3723        name: *const ::core::ffi::c_char,
3724        mode: ::core::ffi::c_int,
3725    ) -> ::core::ffi::c_int;
3726}
3727unsafe extern "C" {
3728    pub fn snd_rawmidi_open_lconf(
3729        in_rmidi: *mut *mut snd_rawmidi_t,
3730        out_rmidi: *mut *mut snd_rawmidi_t,
3731        name: *const ::core::ffi::c_char,
3732        mode: ::core::ffi::c_int,
3733        lconf: *mut snd_config_t,
3734    ) -> ::core::ffi::c_int;
3735}
3736unsafe extern "C" {
3737    pub fn snd_rawmidi_close(rmidi: *mut snd_rawmidi_t) -> ::core::ffi::c_int;
3738}
3739unsafe extern "C" {
3740    pub fn snd_rawmidi_poll_descriptors_count(rmidi: *mut snd_rawmidi_t) -> ::core::ffi::c_int;
3741}
3742unsafe extern "C" {
3743    pub fn snd_rawmidi_poll_descriptors(
3744        rmidi: *mut snd_rawmidi_t,
3745        pfds: *mut pollfd,
3746        space: ::core::ffi::c_uint,
3747    ) -> ::core::ffi::c_int;
3748}
3749unsafe extern "C" {
3750    pub fn snd_rawmidi_poll_descriptors_revents(
3751        rawmidi: *mut snd_rawmidi_t,
3752        pfds: *mut pollfd,
3753        nfds: ::core::ffi::c_uint,
3754        revent: *mut ::core::ffi::c_ushort,
3755    ) -> ::core::ffi::c_int;
3756}
3757unsafe extern "C" {
3758    pub fn snd_rawmidi_nonblock(
3759        rmidi: *mut snd_rawmidi_t,
3760        nonblock: ::core::ffi::c_int,
3761    ) -> ::core::ffi::c_int;
3762}
3763unsafe extern "C" {
3764    pub fn snd_rawmidi_info_sizeof() -> usize;
3765}
3766unsafe extern "C" {
3767    pub fn snd_rawmidi_info_malloc(ptr: *mut *mut snd_rawmidi_info_t) -> ::core::ffi::c_int;
3768}
3769unsafe extern "C" {
3770    pub fn snd_rawmidi_info_free(obj: *mut snd_rawmidi_info_t);
3771}
3772unsafe extern "C" {
3773    pub fn snd_rawmidi_info_copy(dst: *mut snd_rawmidi_info_t, src: *const snd_rawmidi_info_t);
3774}
3775unsafe extern "C" {
3776    pub fn snd_rawmidi_info_get_device(obj: *const snd_rawmidi_info_t) -> ::core::ffi::c_uint;
3777}
3778unsafe extern "C" {
3779    pub fn snd_rawmidi_info_get_subdevice(obj: *const snd_rawmidi_info_t) -> ::core::ffi::c_uint;
3780}
3781unsafe extern "C" {
3782    pub fn snd_rawmidi_info_get_stream(obj: *const snd_rawmidi_info_t) -> snd_rawmidi_stream_t;
3783}
3784unsafe extern "C" {
3785    pub fn snd_rawmidi_info_get_card(obj: *const snd_rawmidi_info_t) -> ::core::ffi::c_int;
3786}
3787unsafe extern "C" {
3788    pub fn snd_rawmidi_info_get_flags(obj: *const snd_rawmidi_info_t) -> ::core::ffi::c_uint;
3789}
3790unsafe extern "C" {
3791    pub fn snd_rawmidi_info_get_id(obj: *const snd_rawmidi_info_t) -> *const ::core::ffi::c_char;
3792}
3793unsafe extern "C" {
3794    pub fn snd_rawmidi_info_get_name(obj: *const snd_rawmidi_info_t) -> *const ::core::ffi::c_char;
3795}
3796unsafe extern "C" {
3797    pub fn snd_rawmidi_info_get_subdevice_name(
3798        obj: *const snd_rawmidi_info_t,
3799    ) -> *const ::core::ffi::c_char;
3800}
3801unsafe extern "C" {
3802    pub fn snd_rawmidi_info_get_subdevices_count(
3803        obj: *const snd_rawmidi_info_t,
3804    ) -> ::core::ffi::c_uint;
3805}
3806unsafe extern "C" {
3807    pub fn snd_rawmidi_info_get_subdevices_avail(
3808        obj: *const snd_rawmidi_info_t,
3809    ) -> ::core::ffi::c_uint;
3810}
3811unsafe extern "C" {
3812    pub fn snd_rawmidi_info_get_tied_device(obj: *const snd_rawmidi_info_t) -> ::core::ffi::c_int;
3813}
3814unsafe extern "C" {
3815    pub fn snd_rawmidi_info_set_device(obj: *mut snd_rawmidi_info_t, val: ::core::ffi::c_uint);
3816}
3817unsafe extern "C" {
3818    pub fn snd_rawmidi_info_set_subdevice(obj: *mut snd_rawmidi_info_t, val: ::core::ffi::c_uint);
3819}
3820unsafe extern "C" {
3821    pub fn snd_rawmidi_info_set_stream(obj: *mut snd_rawmidi_info_t, val: snd_rawmidi_stream_t);
3822}
3823unsafe extern "C" {
3824    pub fn snd_rawmidi_info(
3825        rmidi: *mut snd_rawmidi_t,
3826        info: *mut snd_rawmidi_info_t,
3827    ) -> ::core::ffi::c_int;
3828}
3829unsafe extern "C" {
3830    pub fn snd_rawmidi_params_sizeof() -> usize;
3831}
3832unsafe extern "C" {
3833    pub fn snd_rawmidi_params_malloc(ptr: *mut *mut snd_rawmidi_params_t) -> ::core::ffi::c_int;
3834}
3835unsafe extern "C" {
3836    pub fn snd_rawmidi_params_free(obj: *mut snd_rawmidi_params_t);
3837}
3838unsafe extern "C" {
3839    pub fn snd_rawmidi_params_copy(
3840        dst: *mut snd_rawmidi_params_t,
3841        src: *const snd_rawmidi_params_t,
3842    );
3843}
3844unsafe extern "C" {
3845    pub fn snd_rawmidi_params_set_buffer_size(
3846        rmidi: *mut snd_rawmidi_t,
3847        params: *mut snd_rawmidi_params_t,
3848        val: usize,
3849    ) -> ::core::ffi::c_int;
3850}
3851unsafe extern "C" {
3852    pub fn snd_rawmidi_params_get_buffer_size(params: *const snd_rawmidi_params_t) -> usize;
3853}
3854unsafe extern "C" {
3855    pub fn snd_rawmidi_params_set_avail_min(
3856        rmidi: *mut snd_rawmidi_t,
3857        params: *mut snd_rawmidi_params_t,
3858        val: usize,
3859    ) -> ::core::ffi::c_int;
3860}
3861unsafe extern "C" {
3862    pub fn snd_rawmidi_params_get_avail_min(params: *const snd_rawmidi_params_t) -> usize;
3863}
3864unsafe extern "C" {
3865    pub fn snd_rawmidi_params_set_no_active_sensing(
3866        rmidi: *mut snd_rawmidi_t,
3867        params: *mut snd_rawmidi_params_t,
3868        val: ::core::ffi::c_int,
3869    ) -> ::core::ffi::c_int;
3870}
3871unsafe extern "C" {
3872    pub fn snd_rawmidi_params_get_no_active_sensing(
3873        params: *const snd_rawmidi_params_t,
3874    ) -> ::core::ffi::c_int;
3875}
3876unsafe extern "C" {
3877    pub fn snd_rawmidi_params_set_read_mode(
3878        rawmidi: *const snd_rawmidi_t,
3879        params: *mut snd_rawmidi_params_t,
3880        val: snd_rawmidi_read_mode_t,
3881    ) -> ::core::ffi::c_int;
3882}
3883unsafe extern "C" {
3884    pub fn snd_rawmidi_params_get_read_mode(
3885        params: *const snd_rawmidi_params_t,
3886    ) -> snd_rawmidi_read_mode_t;
3887}
3888unsafe extern "C" {
3889    pub fn snd_rawmidi_params_set_clock_type(
3890        rawmidi: *const snd_rawmidi_t,
3891        params: *mut snd_rawmidi_params_t,
3892        val: snd_rawmidi_clock_t,
3893    ) -> ::core::ffi::c_int;
3894}
3895unsafe extern "C" {
3896    pub fn snd_rawmidi_params_get_clock_type(
3897        params: *const snd_rawmidi_params_t,
3898    ) -> snd_rawmidi_clock_t;
3899}
3900unsafe extern "C" {
3901    pub fn snd_rawmidi_params(
3902        rmidi: *mut snd_rawmidi_t,
3903        params: *mut snd_rawmidi_params_t,
3904    ) -> ::core::ffi::c_int;
3905}
3906unsafe extern "C" {
3907    pub fn snd_rawmidi_params_current(
3908        rmidi: *mut snd_rawmidi_t,
3909        params: *mut snd_rawmidi_params_t,
3910    ) -> ::core::ffi::c_int;
3911}
3912unsafe extern "C" {
3913    pub fn snd_rawmidi_status_sizeof() -> usize;
3914}
3915unsafe extern "C" {
3916    pub fn snd_rawmidi_status_malloc(ptr: *mut *mut snd_rawmidi_status_t) -> ::core::ffi::c_int;
3917}
3918unsafe extern "C" {
3919    pub fn snd_rawmidi_status_free(obj: *mut snd_rawmidi_status_t);
3920}
3921unsafe extern "C" {
3922    pub fn snd_rawmidi_status_copy(
3923        dst: *mut snd_rawmidi_status_t,
3924        src: *const snd_rawmidi_status_t,
3925    );
3926}
3927unsafe extern "C" {
3928    pub fn snd_rawmidi_status_get_tstamp(
3929        obj: *const snd_rawmidi_status_t,
3930        ptr: *mut snd_htimestamp_t,
3931    );
3932}
3933unsafe extern "C" {
3934    pub fn snd_rawmidi_status_get_avail(obj: *const snd_rawmidi_status_t) -> usize;
3935}
3936unsafe extern "C" {
3937    pub fn snd_rawmidi_status_get_xruns(obj: *const snd_rawmidi_status_t) -> usize;
3938}
3939unsafe extern "C" {
3940    pub fn snd_rawmidi_status(
3941        rmidi: *mut snd_rawmidi_t,
3942        status: *mut snd_rawmidi_status_t,
3943    ) -> ::core::ffi::c_int;
3944}
3945unsafe extern "C" {
3946    pub fn snd_rawmidi_drain(rmidi: *mut snd_rawmidi_t) -> ::core::ffi::c_int;
3947}
3948unsafe extern "C" {
3949    pub fn snd_rawmidi_drop(rmidi: *mut snd_rawmidi_t) -> ::core::ffi::c_int;
3950}
3951unsafe extern "C" {
3952    pub fn snd_rawmidi_write(
3953        rmidi: *mut snd_rawmidi_t,
3954        buffer: *const ::core::ffi::c_void,
3955        size: usize,
3956    ) -> isize;
3957}
3958unsafe extern "C" {
3959    pub fn snd_rawmidi_read(
3960        rmidi: *mut snd_rawmidi_t,
3961        buffer: *mut ::core::ffi::c_void,
3962        size: usize,
3963    ) -> isize;
3964}
3965unsafe extern "C" {
3966    pub fn snd_rawmidi_tread(
3967        rmidi: *mut snd_rawmidi_t,
3968        tstamp: *mut timespec,
3969        buffer: *mut ::core::ffi::c_void,
3970        size: usize,
3971    ) -> isize;
3972}
3973unsafe extern "C" {
3974    pub fn snd_rawmidi_name(rmidi: *mut snd_rawmidi_t) -> *const ::core::ffi::c_char;
3975}
3976unsafe extern "C" {
3977    pub fn snd_rawmidi_type(rmidi: *mut snd_rawmidi_t) -> snd_rawmidi_type_t;
3978}
3979unsafe extern "C" {
3980    pub fn snd_rawmidi_stream(rawmidi: *mut snd_rawmidi_t) -> snd_rawmidi_stream_t;
3981}
3982#[repr(C)]
3983#[derive(Debug, Copy, Clone)]
3984pub struct _snd_ump {
3985    _unused: [u8; 0],
3986}
3987pub type snd_ump_t = _snd_ump;
3988#[repr(C)]
3989#[derive(Debug, Copy, Clone)]
3990pub struct snd_ump_endpoint_info {
3991    _unused: [u8; 0],
3992}
3993pub type snd_ump_endpoint_info_t = snd_ump_endpoint_info;
3994#[repr(C)]
3995#[derive(Debug, Copy, Clone)]
3996pub struct snd_ump_block_info {
3997    _unused: [u8; 0],
3998}
3999pub type snd_ump_block_info_t = snd_ump_block_info;
4000unsafe extern "C" {
4001    pub fn snd_ump_open(
4002        inputp: *mut *mut snd_ump_t,
4003        outputp: *mut *mut snd_ump_t,
4004        name: *const ::core::ffi::c_char,
4005        mode: ::core::ffi::c_int,
4006    ) -> ::core::ffi::c_int;
4007}
4008unsafe extern "C" {
4009    pub fn snd_ump_close(ump: *mut snd_ump_t) -> ::core::ffi::c_int;
4010}
4011unsafe extern "C" {
4012    pub fn snd_ump_rawmidi(ump: *mut snd_ump_t) -> *mut snd_rawmidi_t;
4013}
4014unsafe extern "C" {
4015    pub fn snd_ump_name(ump: *mut snd_ump_t) -> *const ::core::ffi::c_char;
4016}
4017unsafe extern "C" {
4018    pub fn snd_ump_poll_descriptors_count(ump: *mut snd_ump_t) -> ::core::ffi::c_int;
4019}
4020unsafe extern "C" {
4021    pub fn snd_ump_poll_descriptors(
4022        ump: *mut snd_ump_t,
4023        pfds: *mut pollfd,
4024        space: ::core::ffi::c_uint,
4025    ) -> ::core::ffi::c_int;
4026}
4027unsafe extern "C" {
4028    pub fn snd_ump_poll_descriptors_revents(
4029        ump: *mut snd_ump_t,
4030        pfds: *mut pollfd,
4031        nfds: ::core::ffi::c_uint,
4032        revents: *mut ::core::ffi::c_ushort,
4033    ) -> ::core::ffi::c_int;
4034}
4035unsafe extern "C" {
4036    pub fn snd_ump_nonblock(
4037        ump: *mut snd_ump_t,
4038        nonblock: ::core::ffi::c_int,
4039    ) -> ::core::ffi::c_int;
4040}
4041unsafe extern "C" {
4042    pub fn snd_ump_rawmidi_info(
4043        ump: *mut snd_ump_t,
4044        info: *mut snd_rawmidi_info_t,
4045    ) -> ::core::ffi::c_int;
4046}
4047unsafe extern "C" {
4048    pub fn snd_ump_rawmidi_params(
4049        ump: *mut snd_ump_t,
4050        params: *mut snd_rawmidi_params_t,
4051    ) -> ::core::ffi::c_int;
4052}
4053unsafe extern "C" {
4054    pub fn snd_ump_rawmidi_params_current(
4055        ump: *mut snd_ump_t,
4056        params: *mut snd_rawmidi_params_t,
4057    ) -> ::core::ffi::c_int;
4058}
4059unsafe extern "C" {
4060    pub fn snd_ump_rawmidi_status(
4061        ump: *mut snd_ump_t,
4062        status: *mut snd_rawmidi_status_t,
4063    ) -> ::core::ffi::c_int;
4064}
4065unsafe extern "C" {
4066    pub fn snd_ump_drop(ump: *mut snd_ump_t) -> ::core::ffi::c_int;
4067}
4068unsafe extern "C" {
4069    pub fn snd_ump_drain(ump: *mut snd_ump_t) -> ::core::ffi::c_int;
4070}
4071unsafe extern "C" {
4072    pub fn snd_ump_write(
4073        ump: *mut snd_ump_t,
4074        buffer: *const ::core::ffi::c_void,
4075        size: usize,
4076    ) -> isize;
4077}
4078unsafe extern "C" {
4079    pub fn snd_ump_read(
4080        ump: *mut snd_ump_t,
4081        buffer: *mut ::core::ffi::c_void,
4082        size: usize,
4083    ) -> isize;
4084}
4085unsafe extern "C" {
4086    pub fn snd_ump_tread(
4087        ump: *mut snd_ump_t,
4088        tstamp: *mut timespec,
4089        buffer: *mut ::core::ffi::c_void,
4090        size: usize,
4091    ) -> isize;
4092}
4093pub const SND_UMP_DIR_INPUT: _snd_ump_direction = 1;
4094pub const SND_UMP_DIR_OUTPUT: _snd_ump_direction = 2;
4095pub const SND_UMP_DIR_BIDIRECTION: _snd_ump_direction = 3;
4096pub type _snd_ump_direction = ::core::ffi::c_uint;
4097unsafe extern "C" {
4098    pub fn snd_ump_endpoint_info_sizeof() -> usize;
4099}
4100unsafe extern "C" {
4101    pub fn snd_ump_endpoint_info_malloc(
4102        info: *mut *mut snd_ump_endpoint_info_t,
4103    ) -> ::core::ffi::c_int;
4104}
4105unsafe extern "C" {
4106    pub fn snd_ump_endpoint_info_free(info: *mut snd_ump_endpoint_info_t);
4107}
4108unsafe extern "C" {
4109    pub fn snd_ump_endpoint_info_clear(info: *mut snd_ump_endpoint_info_t);
4110}
4111unsafe extern "C" {
4112    pub fn snd_ump_endpoint_info_copy(
4113        dst: *mut snd_ump_endpoint_info_t,
4114        src: *const snd_ump_endpoint_info_t,
4115    );
4116}
4117unsafe extern "C" {
4118    pub fn snd_ump_endpoint_info_get_card(
4119        info: *const snd_ump_endpoint_info_t,
4120    ) -> ::core::ffi::c_int;
4121}
4122unsafe extern "C" {
4123    pub fn snd_ump_endpoint_info_get_device(
4124        info: *const snd_ump_endpoint_info_t,
4125    ) -> ::core::ffi::c_int;
4126}
4127unsafe extern "C" {
4128    pub fn snd_ump_endpoint_info_get_flags(
4129        info: *const snd_ump_endpoint_info_t,
4130    ) -> ::core::ffi::c_uint;
4131}
4132unsafe extern "C" {
4133    pub fn snd_ump_endpoint_info_get_protocol_caps(
4134        info: *const snd_ump_endpoint_info_t,
4135    ) -> ::core::ffi::c_uint;
4136}
4137unsafe extern "C" {
4138    pub fn snd_ump_endpoint_info_get_protocol(
4139        info: *const snd_ump_endpoint_info_t,
4140    ) -> ::core::ffi::c_uint;
4141}
4142unsafe extern "C" {
4143    pub fn snd_ump_endpoint_info_get_num_blocks(
4144        info: *const snd_ump_endpoint_info_t,
4145    ) -> ::core::ffi::c_uint;
4146}
4147unsafe extern "C" {
4148    pub fn snd_ump_endpoint_info_get_version(
4149        info: *const snd_ump_endpoint_info_t,
4150    ) -> ::core::ffi::c_uint;
4151}
4152unsafe extern "C" {
4153    pub fn snd_ump_endpoint_info_get_manufacturer_id(
4154        info: *const snd_ump_endpoint_info_t,
4155    ) -> ::core::ffi::c_uint;
4156}
4157unsafe extern "C" {
4158    pub fn snd_ump_endpoint_info_get_family_id(
4159        info: *const snd_ump_endpoint_info_t,
4160    ) -> ::core::ffi::c_uint;
4161}
4162unsafe extern "C" {
4163    pub fn snd_ump_endpoint_info_get_model_id(
4164        info: *const snd_ump_endpoint_info_t,
4165    ) -> ::core::ffi::c_uint;
4166}
4167unsafe extern "C" {
4168    pub fn snd_ump_endpoint_info_get_sw_revision(
4169        info: *const snd_ump_endpoint_info_t,
4170    ) -> *const ::core::ffi::c_uchar;
4171}
4172unsafe extern "C" {
4173    pub fn snd_ump_endpoint_info_get_name(
4174        info: *const snd_ump_endpoint_info_t,
4175    ) -> *const ::core::ffi::c_char;
4176}
4177unsafe extern "C" {
4178    pub fn snd_ump_endpoint_info_get_product_id(
4179        info: *const snd_ump_endpoint_info_t,
4180    ) -> *const ::core::ffi::c_char;
4181}
4182unsafe extern "C" {
4183    pub fn snd_ump_endpoint_info(
4184        ump: *mut snd_ump_t,
4185        info: *mut snd_ump_endpoint_info_t,
4186    ) -> ::core::ffi::c_int;
4187}
4188unsafe extern "C" {
4189    pub fn snd_ump_endpoint_info_set_card(
4190        info: *mut snd_ump_endpoint_info_t,
4191        card: ::core::ffi::c_uint,
4192    );
4193}
4194unsafe extern "C" {
4195    pub fn snd_ump_endpoint_info_set_device(
4196        info: *mut snd_ump_endpoint_info_t,
4197        device: ::core::ffi::c_uint,
4198    );
4199}
4200unsafe extern "C" {
4201    pub fn snd_ump_endpoint_info_set_flags(
4202        info: *mut snd_ump_endpoint_info_t,
4203        flags: ::core::ffi::c_uint,
4204    );
4205}
4206unsafe extern "C" {
4207    pub fn snd_ump_endpoint_info_set_protocol_caps(
4208        info: *mut snd_ump_endpoint_info_t,
4209        caps: ::core::ffi::c_uint,
4210    );
4211}
4212unsafe extern "C" {
4213    pub fn snd_ump_endpoint_info_set_protocol(
4214        info: *mut snd_ump_endpoint_info_t,
4215        protocols: ::core::ffi::c_uint,
4216    );
4217}
4218unsafe extern "C" {
4219    pub fn snd_ump_endpoint_info_set_num_blocks(
4220        info: *mut snd_ump_endpoint_info_t,
4221        num_blocks: ::core::ffi::c_uint,
4222    );
4223}
4224unsafe extern "C" {
4225    pub fn snd_ump_endpoint_info_set_version(
4226        info: *mut snd_ump_endpoint_info_t,
4227        version: ::core::ffi::c_uint,
4228    );
4229}
4230unsafe extern "C" {
4231    pub fn snd_ump_endpoint_info_set_manufacturer_id(
4232        info: *mut snd_ump_endpoint_info_t,
4233        id: ::core::ffi::c_uint,
4234    );
4235}
4236unsafe extern "C" {
4237    pub fn snd_ump_endpoint_info_set_family_id(
4238        info: *mut snd_ump_endpoint_info_t,
4239        id: ::core::ffi::c_uint,
4240    );
4241}
4242unsafe extern "C" {
4243    pub fn snd_ump_endpoint_info_set_model_id(
4244        info: *mut snd_ump_endpoint_info_t,
4245        id: ::core::ffi::c_uint,
4246    );
4247}
4248unsafe extern "C" {
4249    pub fn snd_ump_endpoint_info_set_sw_revision(
4250        info: *mut snd_ump_endpoint_info_t,
4251        id: *const ::core::ffi::c_uchar,
4252    );
4253}
4254unsafe extern "C" {
4255    pub fn snd_ump_endpoint_info_set_name(
4256        info: *mut snd_ump_endpoint_info_t,
4257        name: *const ::core::ffi::c_char,
4258    );
4259}
4260unsafe extern "C" {
4261    pub fn snd_ump_endpoint_info_set_product_id(
4262        info: *mut snd_ump_endpoint_info_t,
4263        id: *const ::core::ffi::c_char,
4264    );
4265}
4266pub const SND_UMP_BLOCK_UI_HINT_UNKNOWN: _snd_ump_block_ui_hint = 0;
4267pub const SND_UMP_BLOCK_UI_HINT_RECEIVER: _snd_ump_block_ui_hint = 1;
4268pub const SND_UMP_BLOCK_UI_HINT_SENDER: _snd_ump_block_ui_hint = 2;
4269pub const SND_UMP_BLOCK_UI_HINT_BOTH: _snd_ump_block_ui_hint = 3;
4270pub type _snd_ump_block_ui_hint = ::core::ffi::c_uint;
4271unsafe extern "C" {
4272    pub fn snd_ump_block_info_sizeof() -> usize;
4273}
4274unsafe extern "C" {
4275    pub fn snd_ump_block_info_malloc(info: *mut *mut snd_ump_block_info_t) -> ::core::ffi::c_int;
4276}
4277unsafe extern "C" {
4278    pub fn snd_ump_block_info_free(info: *mut snd_ump_block_info_t);
4279}
4280unsafe extern "C" {
4281    pub fn snd_ump_block_info_clear(info: *mut snd_ump_block_info_t);
4282}
4283unsafe extern "C" {
4284    pub fn snd_ump_block_info_copy(
4285        dst: *mut snd_ump_block_info_t,
4286        src: *const snd_ump_block_info_t,
4287    );
4288}
4289unsafe extern "C" {
4290    pub fn snd_ump_block_info_get_card(info: *const snd_ump_block_info_t) -> ::core::ffi::c_int;
4291}
4292unsafe extern "C" {
4293    pub fn snd_ump_block_info_get_device(info: *const snd_ump_block_info_t) -> ::core::ffi::c_int;
4294}
4295unsafe extern "C" {
4296    pub fn snd_ump_block_info_get_block_id(
4297        info: *const snd_ump_block_info_t,
4298    ) -> ::core::ffi::c_uint;
4299}
4300unsafe extern "C" {
4301    pub fn snd_ump_block_info_get_active(info: *const snd_ump_block_info_t) -> ::core::ffi::c_uint;
4302}
4303unsafe extern "C" {
4304    pub fn snd_ump_block_info_get_flags(info: *const snd_ump_block_info_t) -> ::core::ffi::c_uint;
4305}
4306unsafe extern "C" {
4307    pub fn snd_ump_block_info_get_direction(
4308        info: *const snd_ump_block_info_t,
4309    ) -> ::core::ffi::c_uint;
4310}
4311unsafe extern "C" {
4312    pub fn snd_ump_block_info_get_first_group(
4313        info: *const snd_ump_block_info_t,
4314    ) -> ::core::ffi::c_uint;
4315}
4316unsafe extern "C" {
4317    pub fn snd_ump_block_info_get_num_groups(
4318        info: *const snd_ump_block_info_t,
4319    ) -> ::core::ffi::c_uint;
4320}
4321unsafe extern "C" {
4322    pub fn snd_ump_block_info_get_midi_ci_version(
4323        info: *const snd_ump_block_info_t,
4324    ) -> ::core::ffi::c_uint;
4325}
4326unsafe extern "C" {
4327    pub fn snd_ump_block_info_get_sysex8_streams(
4328        info: *const snd_ump_block_info_t,
4329    ) -> ::core::ffi::c_uint;
4330}
4331unsafe extern "C" {
4332    pub fn snd_ump_block_info_get_ui_hint(info: *const snd_ump_block_info_t)
4333    -> ::core::ffi::c_uint;
4334}
4335unsafe extern "C" {
4336    pub fn snd_ump_block_info_get_name(
4337        info: *const snd_ump_block_info_t,
4338    ) -> *const ::core::ffi::c_char;
4339}
4340unsafe extern "C" {
4341    pub fn snd_ump_block_info(
4342        ump: *mut snd_ump_t,
4343        info: *mut snd_ump_block_info_t,
4344    ) -> ::core::ffi::c_int;
4345}
4346unsafe extern "C" {
4347    pub fn snd_ump_block_info_set_card(info: *mut snd_ump_block_info_t, card: ::core::ffi::c_uint);
4348}
4349unsafe extern "C" {
4350    pub fn snd_ump_block_info_set_device(
4351        info: *mut snd_ump_block_info_t,
4352        device: ::core::ffi::c_uint,
4353    );
4354}
4355unsafe extern "C" {
4356    pub fn snd_ump_block_info_set_block_id(
4357        info: *mut snd_ump_block_info_t,
4358        id: ::core::ffi::c_uint,
4359    );
4360}
4361unsafe extern "C" {
4362    pub fn snd_ump_block_info_set_active(
4363        info: *mut snd_ump_block_info_t,
4364        active: ::core::ffi::c_uint,
4365    );
4366}
4367unsafe extern "C" {
4368    pub fn snd_ump_block_info_set_flags(
4369        info: *mut snd_ump_block_info_t,
4370        flags: ::core::ffi::c_uint,
4371    );
4372}
4373unsafe extern "C" {
4374    pub fn snd_ump_block_info_set_direction(
4375        info: *mut snd_ump_block_info_t,
4376        direction: ::core::ffi::c_uint,
4377    );
4378}
4379unsafe extern "C" {
4380    pub fn snd_ump_block_info_set_first_group(
4381        info: *mut snd_ump_block_info_t,
4382        first_group: ::core::ffi::c_uint,
4383    );
4384}
4385unsafe extern "C" {
4386    pub fn snd_ump_block_info_set_num_groups(
4387        info: *mut snd_ump_block_info_t,
4388        num_groups: ::core::ffi::c_uint,
4389    );
4390}
4391unsafe extern "C" {
4392    pub fn snd_ump_block_info_set_midi_ci_version(
4393        info: *mut snd_ump_block_info_t,
4394        version: ::core::ffi::c_uint,
4395    );
4396}
4397unsafe extern "C" {
4398    pub fn snd_ump_block_info_set_sysex8_streams(
4399        info: *mut snd_ump_block_info_t,
4400        streams: ::core::ffi::c_uint,
4401    );
4402}
4403unsafe extern "C" {
4404    pub fn snd_ump_block_info_set_ui_hint(
4405        info: *mut snd_ump_block_info_t,
4406        hint: ::core::ffi::c_uint,
4407    );
4408}
4409unsafe extern "C" {
4410    pub fn snd_ump_block_info_set_name(
4411        info: *mut snd_ump_block_info_t,
4412        name: *const ::core::ffi::c_char,
4413    );
4414}
4415#[repr(C)]
4416#[derive(Debug, Copy, Clone)]
4417pub struct _snd_timer_id {
4418    _unused: [u8; 0],
4419}
4420pub type snd_timer_id_t = _snd_timer_id;
4421#[repr(C)]
4422#[derive(Debug, Copy, Clone)]
4423pub struct _snd_timer_ginfo {
4424    _unused: [u8; 0],
4425}
4426pub type snd_timer_ginfo_t = _snd_timer_ginfo;
4427#[repr(C)]
4428#[derive(Debug, Copy, Clone)]
4429pub struct _snd_timer_gparams {
4430    _unused: [u8; 0],
4431}
4432pub type snd_timer_gparams_t = _snd_timer_gparams;
4433#[repr(C)]
4434#[derive(Debug, Copy, Clone)]
4435pub struct _snd_timer_gstatus {
4436    _unused: [u8; 0],
4437}
4438pub type snd_timer_gstatus_t = _snd_timer_gstatus;
4439#[repr(C)]
4440#[derive(Debug, Copy, Clone)]
4441pub struct _snd_timer_info {
4442    _unused: [u8; 0],
4443}
4444pub type snd_timer_info_t = _snd_timer_info;
4445#[repr(C)]
4446#[derive(Debug, Copy, Clone)]
4447pub struct _snd_timer_params {
4448    _unused: [u8; 0],
4449}
4450pub type snd_timer_params_t = _snd_timer_params;
4451#[repr(C)]
4452#[derive(Debug, Copy, Clone)]
4453pub struct _snd_timer_status {
4454    _unused: [u8; 0],
4455}
4456pub type snd_timer_status_t = _snd_timer_status;
4457pub const SND_TIMER_CLASS_NONE: _snd_timer_class = -1;
4458pub const SND_TIMER_CLASS_SLAVE: _snd_timer_class = 0;
4459pub const SND_TIMER_CLASS_GLOBAL: _snd_timer_class = 1;
4460pub const SND_TIMER_CLASS_CARD: _snd_timer_class = 2;
4461pub const SND_TIMER_CLASS_PCM: _snd_timer_class = 3;
4462pub const SND_TIMER_CLASS_LAST: _snd_timer_class = 3;
4463pub type _snd_timer_class = ::core::ffi::c_int;
4464pub use self::_snd_timer_class as snd_timer_class_t;
4465pub const SND_TIMER_SCLASS_NONE: _snd_timer_slave_class = 0;
4466pub const SND_TIMER_SCLASS_APPLICATION: _snd_timer_slave_class = 1;
4467pub const SND_TIMER_SCLASS_SEQUENCER: _snd_timer_slave_class = 2;
4468pub const SND_TIMER_SCLASS_OSS_SEQUENCER: _snd_timer_slave_class = 3;
4469pub const SND_TIMER_SCLASS_LAST: _snd_timer_slave_class = 3;
4470pub type _snd_timer_slave_class = ::core::ffi::c_uint;
4471pub use self::_snd_timer_slave_class as snd_timer_slave_class_t;
4472pub const SND_TIMER_EVENT_RESOLUTION: _snd_timer_event = 0;
4473pub const SND_TIMER_EVENT_TICK: _snd_timer_event = 1;
4474pub const SND_TIMER_EVENT_START: _snd_timer_event = 2;
4475pub const SND_TIMER_EVENT_STOP: _snd_timer_event = 3;
4476pub const SND_TIMER_EVENT_CONTINUE: _snd_timer_event = 4;
4477pub const SND_TIMER_EVENT_PAUSE: _snd_timer_event = 5;
4478pub const SND_TIMER_EVENT_EARLY: _snd_timer_event = 6;
4479pub const SND_TIMER_EVENT_SUSPEND: _snd_timer_event = 7;
4480pub const SND_TIMER_EVENT_RESUME: _snd_timer_event = 8;
4481pub const SND_TIMER_EVENT_MSTART: _snd_timer_event = 12;
4482pub const SND_TIMER_EVENT_MSTOP: _snd_timer_event = 13;
4483pub const SND_TIMER_EVENT_MCONTINUE: _snd_timer_event = 14;
4484pub const SND_TIMER_EVENT_MPAUSE: _snd_timer_event = 15;
4485pub const SND_TIMER_EVENT_MSUSPEND: _snd_timer_event = 17;
4486pub const SND_TIMER_EVENT_MRESUME: _snd_timer_event = 18;
4487pub type _snd_timer_event = ::core::ffi::c_uint;
4488pub use self::_snd_timer_event as snd_timer_event_t;
4489#[repr(C)]
4490#[derive(Debug, Copy, Clone)]
4491pub struct _snd_timer_read {
4492    pub resolution: ::core::ffi::c_uint,
4493    pub ticks: ::core::ffi::c_uint,
4494}
4495pub type snd_timer_read_t = _snd_timer_read;
4496#[repr(C)]
4497pub struct _snd_timer_tread {
4498    pub event: snd_timer_event_t,
4499    pub tstamp: snd_htimestamp_t,
4500    pub val: ::core::ffi::c_uint,
4501}
4502pub type snd_timer_tread_t = _snd_timer_tread;
4503pub const SND_TIMER_TYPE_HW: _snd_timer_type = 0;
4504pub const SND_TIMER_TYPE_SHM: _snd_timer_type = 1;
4505pub const SND_TIMER_TYPE_INET: _snd_timer_type = 2;
4506pub type _snd_timer_type = ::core::ffi::c_uint;
4507pub use self::_snd_timer_type as snd_timer_type_t;
4508#[repr(C)]
4509#[derive(Debug, Copy, Clone)]
4510pub struct _snd_timer_query {
4511    _unused: [u8; 0],
4512}
4513pub type snd_timer_query_t = _snd_timer_query;
4514#[repr(C)]
4515#[derive(Debug, Copy, Clone)]
4516pub struct _snd_timer {
4517    _unused: [u8; 0],
4518}
4519pub type snd_timer_t = _snd_timer;
4520unsafe extern "C" {
4521    pub fn snd_timer_query_open(
4522        handle: *mut *mut snd_timer_query_t,
4523        name: *const ::core::ffi::c_char,
4524        mode: ::core::ffi::c_int,
4525    ) -> ::core::ffi::c_int;
4526}
4527unsafe extern "C" {
4528    pub fn snd_timer_query_open_lconf(
4529        handle: *mut *mut snd_timer_query_t,
4530        name: *const ::core::ffi::c_char,
4531        mode: ::core::ffi::c_int,
4532        lconf: *mut snd_config_t,
4533    ) -> ::core::ffi::c_int;
4534}
4535unsafe extern "C" {
4536    pub fn snd_timer_query_close(handle: *mut snd_timer_query_t) -> ::core::ffi::c_int;
4537}
4538unsafe extern "C" {
4539    pub fn snd_timer_query_next_device(
4540        handle: *mut snd_timer_query_t,
4541        tid: *mut snd_timer_id_t,
4542    ) -> ::core::ffi::c_int;
4543}
4544unsafe extern "C" {
4545    pub fn snd_timer_query_info(
4546        handle: *mut snd_timer_query_t,
4547        info: *mut snd_timer_ginfo_t,
4548    ) -> ::core::ffi::c_int;
4549}
4550unsafe extern "C" {
4551    pub fn snd_timer_query_params(
4552        handle: *mut snd_timer_query_t,
4553        params: *mut snd_timer_gparams_t,
4554    ) -> ::core::ffi::c_int;
4555}
4556unsafe extern "C" {
4557    pub fn snd_timer_query_status(
4558        handle: *mut snd_timer_query_t,
4559        status: *mut snd_timer_gstatus_t,
4560    ) -> ::core::ffi::c_int;
4561}
4562unsafe extern "C" {
4563    pub fn snd_timer_open(
4564        handle: *mut *mut snd_timer_t,
4565        name: *const ::core::ffi::c_char,
4566        mode: ::core::ffi::c_int,
4567    ) -> ::core::ffi::c_int;
4568}
4569unsafe extern "C" {
4570    pub fn snd_timer_open_lconf(
4571        handle: *mut *mut snd_timer_t,
4572        name: *const ::core::ffi::c_char,
4573        mode: ::core::ffi::c_int,
4574        lconf: *mut snd_config_t,
4575    ) -> ::core::ffi::c_int;
4576}
4577unsafe extern "C" {
4578    pub fn snd_timer_close(handle: *mut snd_timer_t) -> ::core::ffi::c_int;
4579}
4580unsafe extern "C" {
4581    pub fn snd_async_add_timer_handler(
4582        handler: *mut *mut snd_async_handler_t,
4583        timer: *mut snd_timer_t,
4584        callback: snd_async_callback_t,
4585        private_data: *mut ::core::ffi::c_void,
4586    ) -> ::core::ffi::c_int;
4587}
4588unsafe extern "C" {
4589    pub fn snd_async_handler_get_timer(handler: *mut snd_async_handler_t) -> *mut snd_timer_t;
4590}
4591unsafe extern "C" {
4592    pub fn snd_timer_poll_descriptors_count(handle: *mut snd_timer_t) -> ::core::ffi::c_int;
4593}
4594unsafe extern "C" {
4595    pub fn snd_timer_poll_descriptors(
4596        handle: *mut snd_timer_t,
4597        pfds: *mut pollfd,
4598        space: ::core::ffi::c_uint,
4599    ) -> ::core::ffi::c_int;
4600}
4601unsafe extern "C" {
4602    pub fn snd_timer_poll_descriptors_revents(
4603        timer: *mut snd_timer_t,
4604        pfds: *mut pollfd,
4605        nfds: ::core::ffi::c_uint,
4606        revents: *mut ::core::ffi::c_ushort,
4607    ) -> ::core::ffi::c_int;
4608}
4609unsafe extern "C" {
4610    pub fn snd_timer_info(
4611        handle: *mut snd_timer_t,
4612        timer: *mut snd_timer_info_t,
4613    ) -> ::core::ffi::c_int;
4614}
4615unsafe extern "C" {
4616    pub fn snd_timer_params(
4617        handle: *mut snd_timer_t,
4618        params: *mut snd_timer_params_t,
4619    ) -> ::core::ffi::c_int;
4620}
4621unsafe extern "C" {
4622    pub fn snd_timer_status(
4623        handle: *mut snd_timer_t,
4624        status: *mut snd_timer_status_t,
4625    ) -> ::core::ffi::c_int;
4626}
4627unsafe extern "C" {
4628    pub fn snd_timer_start(handle: *mut snd_timer_t) -> ::core::ffi::c_int;
4629}
4630unsafe extern "C" {
4631    pub fn snd_timer_stop(handle: *mut snd_timer_t) -> ::core::ffi::c_int;
4632}
4633unsafe extern "C" {
4634    pub fn snd_timer_continue(handle: *mut snd_timer_t) -> ::core::ffi::c_int;
4635}
4636unsafe extern "C" {
4637    pub fn snd_timer_read(
4638        handle: *mut snd_timer_t,
4639        buffer: *mut ::core::ffi::c_void,
4640        size: usize,
4641    ) -> isize;
4642}
4643unsafe extern "C" {
4644    pub fn snd_timer_id_sizeof() -> usize;
4645}
4646unsafe extern "C" {
4647    pub fn snd_timer_id_malloc(ptr: *mut *mut snd_timer_id_t) -> ::core::ffi::c_int;
4648}
4649unsafe extern "C" {
4650    pub fn snd_timer_id_free(obj: *mut snd_timer_id_t);
4651}
4652unsafe extern "C" {
4653    pub fn snd_timer_id_copy(dst: *mut snd_timer_id_t, src: *const snd_timer_id_t);
4654}
4655unsafe extern "C" {
4656    pub fn snd_timer_id_set_class(id: *mut snd_timer_id_t, dev_class: ::core::ffi::c_int);
4657}
4658unsafe extern "C" {
4659    pub fn snd_timer_id_get_class(id: *mut snd_timer_id_t) -> ::core::ffi::c_int;
4660}
4661unsafe extern "C" {
4662    pub fn snd_timer_id_set_sclass(id: *mut snd_timer_id_t, dev_sclass: ::core::ffi::c_int);
4663}
4664unsafe extern "C" {
4665    pub fn snd_timer_id_get_sclass(id: *mut snd_timer_id_t) -> ::core::ffi::c_int;
4666}
4667unsafe extern "C" {
4668    pub fn snd_timer_id_set_card(id: *mut snd_timer_id_t, card: ::core::ffi::c_int);
4669}
4670unsafe extern "C" {
4671    pub fn snd_timer_id_get_card(id: *mut snd_timer_id_t) -> ::core::ffi::c_int;
4672}
4673unsafe extern "C" {
4674    pub fn snd_timer_id_set_device(id: *mut snd_timer_id_t, device: ::core::ffi::c_int);
4675}
4676unsafe extern "C" {
4677    pub fn snd_timer_id_get_device(id: *mut snd_timer_id_t) -> ::core::ffi::c_int;
4678}
4679unsafe extern "C" {
4680    pub fn snd_timer_id_set_subdevice(id: *mut snd_timer_id_t, subdevice: ::core::ffi::c_int);
4681}
4682unsafe extern "C" {
4683    pub fn snd_timer_id_get_subdevice(id: *mut snd_timer_id_t) -> ::core::ffi::c_int;
4684}
4685unsafe extern "C" {
4686    pub fn snd_timer_ginfo_sizeof() -> usize;
4687}
4688unsafe extern "C" {
4689    pub fn snd_timer_ginfo_malloc(ptr: *mut *mut snd_timer_ginfo_t) -> ::core::ffi::c_int;
4690}
4691unsafe extern "C" {
4692    pub fn snd_timer_ginfo_free(obj: *mut snd_timer_ginfo_t);
4693}
4694unsafe extern "C" {
4695    pub fn snd_timer_ginfo_copy(dst: *mut snd_timer_ginfo_t, src: *const snd_timer_ginfo_t);
4696}
4697unsafe extern "C" {
4698    pub fn snd_timer_ginfo_set_tid(
4699        obj: *mut snd_timer_ginfo_t,
4700        tid: *mut snd_timer_id_t,
4701    ) -> ::core::ffi::c_int;
4702}
4703unsafe extern "C" {
4704    pub fn snd_timer_ginfo_get_tid(obj: *mut snd_timer_ginfo_t) -> *mut snd_timer_id_t;
4705}
4706unsafe extern "C" {
4707    pub fn snd_timer_ginfo_get_flags(obj: *mut snd_timer_ginfo_t) -> ::core::ffi::c_uint;
4708}
4709unsafe extern "C" {
4710    pub fn snd_timer_ginfo_get_card(obj: *mut snd_timer_ginfo_t) -> ::core::ffi::c_int;
4711}
4712unsafe extern "C" {
4713    pub fn snd_timer_ginfo_get_id(obj: *mut snd_timer_ginfo_t) -> *mut ::core::ffi::c_char;
4714}
4715unsafe extern "C" {
4716    pub fn snd_timer_ginfo_get_name(obj: *mut snd_timer_ginfo_t) -> *mut ::core::ffi::c_char;
4717}
4718unsafe extern "C" {
4719    pub fn snd_timer_ginfo_get_resolution(obj: *mut snd_timer_ginfo_t) -> ::core::ffi::c_ulong;
4720}
4721unsafe extern "C" {
4722    pub fn snd_timer_ginfo_get_resolution_min(obj: *mut snd_timer_ginfo_t) -> ::core::ffi::c_ulong;
4723}
4724unsafe extern "C" {
4725    pub fn snd_timer_ginfo_get_resolution_max(obj: *mut snd_timer_ginfo_t) -> ::core::ffi::c_ulong;
4726}
4727unsafe extern "C" {
4728    pub fn snd_timer_ginfo_get_clients(obj: *mut snd_timer_ginfo_t) -> ::core::ffi::c_uint;
4729}
4730unsafe extern "C" {
4731    pub fn snd_timer_info_sizeof() -> usize;
4732}
4733unsafe extern "C" {
4734    pub fn snd_timer_info_malloc(ptr: *mut *mut snd_timer_info_t) -> ::core::ffi::c_int;
4735}
4736unsafe extern "C" {
4737    pub fn snd_timer_info_free(obj: *mut snd_timer_info_t);
4738}
4739unsafe extern "C" {
4740    pub fn snd_timer_info_copy(dst: *mut snd_timer_info_t, src: *const snd_timer_info_t);
4741}
4742unsafe extern "C" {
4743    pub fn snd_timer_info_is_slave(info: *mut snd_timer_info_t) -> ::core::ffi::c_int;
4744}
4745unsafe extern "C" {
4746    pub fn snd_timer_info_get_card(info: *mut snd_timer_info_t) -> ::core::ffi::c_int;
4747}
4748unsafe extern "C" {
4749    pub fn snd_timer_info_get_id(info: *mut snd_timer_info_t) -> *const ::core::ffi::c_char;
4750}
4751unsafe extern "C" {
4752    pub fn snd_timer_info_get_name(info: *mut snd_timer_info_t) -> *const ::core::ffi::c_char;
4753}
4754unsafe extern "C" {
4755    pub fn snd_timer_info_get_resolution(info: *mut snd_timer_info_t) -> ::core::ffi::c_long;
4756}
4757unsafe extern "C" {
4758    pub fn snd_timer_params_sizeof() -> usize;
4759}
4760unsafe extern "C" {
4761    pub fn snd_timer_params_malloc(ptr: *mut *mut snd_timer_params_t) -> ::core::ffi::c_int;
4762}
4763unsafe extern "C" {
4764    pub fn snd_timer_params_free(obj: *mut snd_timer_params_t);
4765}
4766unsafe extern "C" {
4767    pub fn snd_timer_params_copy(dst: *mut snd_timer_params_t, src: *const snd_timer_params_t);
4768}
4769unsafe extern "C" {
4770    pub fn snd_timer_params_set_auto_start(
4771        params: *mut snd_timer_params_t,
4772        auto_start: ::core::ffi::c_int,
4773    ) -> ::core::ffi::c_int;
4774}
4775unsafe extern "C" {
4776    pub fn snd_timer_params_get_auto_start(params: *mut snd_timer_params_t) -> ::core::ffi::c_int;
4777}
4778unsafe extern "C" {
4779    pub fn snd_timer_params_set_exclusive(
4780        params: *mut snd_timer_params_t,
4781        exclusive: ::core::ffi::c_int,
4782    ) -> ::core::ffi::c_int;
4783}
4784unsafe extern "C" {
4785    pub fn snd_timer_params_get_exclusive(params: *mut snd_timer_params_t) -> ::core::ffi::c_int;
4786}
4787unsafe extern "C" {
4788    pub fn snd_timer_params_set_early_event(
4789        params: *mut snd_timer_params_t,
4790        early_event: ::core::ffi::c_int,
4791    ) -> ::core::ffi::c_int;
4792}
4793unsafe extern "C" {
4794    pub fn snd_timer_params_get_early_event(params: *mut snd_timer_params_t) -> ::core::ffi::c_int;
4795}
4796unsafe extern "C" {
4797    pub fn snd_timer_params_set_ticks(params: *mut snd_timer_params_t, ticks: ::core::ffi::c_long);
4798}
4799unsafe extern "C" {
4800    pub fn snd_timer_params_get_ticks(params: *mut snd_timer_params_t) -> ::core::ffi::c_long;
4801}
4802unsafe extern "C" {
4803    pub fn snd_timer_params_set_queue_size(
4804        params: *mut snd_timer_params_t,
4805        queue_size: ::core::ffi::c_long,
4806    );
4807}
4808unsafe extern "C" {
4809    pub fn snd_timer_params_get_queue_size(params: *mut snd_timer_params_t) -> ::core::ffi::c_long;
4810}
4811unsafe extern "C" {
4812    pub fn snd_timer_params_set_filter(
4813        params: *mut snd_timer_params_t,
4814        filter: ::core::ffi::c_uint,
4815    );
4816}
4817unsafe extern "C" {
4818    pub fn snd_timer_params_get_filter(params: *mut snd_timer_params_t) -> ::core::ffi::c_uint;
4819}
4820unsafe extern "C" {
4821    pub fn snd_timer_status_sizeof() -> usize;
4822}
4823unsafe extern "C" {
4824    pub fn snd_timer_status_malloc(ptr: *mut *mut snd_timer_status_t) -> ::core::ffi::c_int;
4825}
4826unsafe extern "C" {
4827    pub fn snd_timer_status_free(obj: *mut snd_timer_status_t);
4828}
4829unsafe extern "C" {
4830    pub fn snd_timer_status_copy(dst: *mut snd_timer_status_t, src: *const snd_timer_status_t);
4831}
4832unsafe extern "C" {
4833    pub fn snd_timer_status_get_timestamp(status: *mut snd_timer_status_t) -> snd_htimestamp_t;
4834}
4835unsafe extern "C" {
4836    pub fn snd_timer_status_get_resolution(status: *mut snd_timer_status_t) -> ::core::ffi::c_long;
4837}
4838unsafe extern "C" {
4839    pub fn snd_timer_status_get_lost(status: *mut snd_timer_status_t) -> ::core::ffi::c_long;
4840}
4841unsafe extern "C" {
4842    pub fn snd_timer_status_get_overrun(status: *mut snd_timer_status_t) -> ::core::ffi::c_long;
4843}
4844unsafe extern "C" {
4845    pub fn snd_timer_status_get_queue(status: *mut snd_timer_status_t) -> ::core::ffi::c_long;
4846}
4847unsafe extern "C" {
4848    pub fn snd_timer_info_get_ticks(info: *mut snd_timer_info_t) -> ::core::ffi::c_long;
4849}
4850#[repr(C)]
4851#[derive(Debug, Copy, Clone)]
4852pub struct _snd_hwdep_info {
4853    _unused: [u8; 0],
4854}
4855pub type snd_hwdep_info_t = _snd_hwdep_info;
4856#[repr(C)]
4857#[derive(Debug, Copy, Clone)]
4858pub struct _snd_hwdep_dsp_status {
4859    _unused: [u8; 0],
4860}
4861pub type snd_hwdep_dsp_status_t = _snd_hwdep_dsp_status;
4862#[repr(C)]
4863#[derive(Debug, Copy, Clone)]
4864pub struct _snd_hwdep_dsp_image {
4865    _unused: [u8; 0],
4866}
4867pub type snd_hwdep_dsp_image_t = _snd_hwdep_dsp_image;
4868pub const SND_HWDEP_IFACE_OPL2: _snd_hwdep_iface = 0;
4869pub const SND_HWDEP_IFACE_OPL3: _snd_hwdep_iface = 1;
4870pub const SND_HWDEP_IFACE_OPL4: _snd_hwdep_iface = 2;
4871pub const SND_HWDEP_IFACE_SB16CSP: _snd_hwdep_iface = 3;
4872pub const SND_HWDEP_IFACE_EMU10K1: _snd_hwdep_iface = 4;
4873pub const SND_HWDEP_IFACE_YSS225: _snd_hwdep_iface = 5;
4874pub const SND_HWDEP_IFACE_ICS2115: _snd_hwdep_iface = 6;
4875pub const SND_HWDEP_IFACE_SSCAPE: _snd_hwdep_iface = 7;
4876pub const SND_HWDEP_IFACE_VX: _snd_hwdep_iface = 8;
4877pub const SND_HWDEP_IFACE_MIXART: _snd_hwdep_iface = 9;
4878pub const SND_HWDEP_IFACE_USX2Y: _snd_hwdep_iface = 10;
4879pub const SND_HWDEP_IFACE_EMUX_WAVETABLE: _snd_hwdep_iface = 11;
4880pub const SND_HWDEP_IFACE_BLUETOOTH: _snd_hwdep_iface = 12;
4881pub const SND_HWDEP_IFACE_USX2Y_PCM: _snd_hwdep_iface = 13;
4882pub const SND_HWDEP_IFACE_PCXHR: _snd_hwdep_iface = 14;
4883pub const SND_HWDEP_IFACE_SB_RC: _snd_hwdep_iface = 15;
4884pub const SND_HWDEP_IFACE_HDA: _snd_hwdep_iface = 16;
4885pub const SND_HWDEP_IFACE_USB_STREAM: _snd_hwdep_iface = 17;
4886pub const SND_HWDEP_IFACE_FW_DICE: _snd_hwdep_iface = 18;
4887pub const SND_HWDEP_IFACE_FW_FIREWORKS: _snd_hwdep_iface = 19;
4888pub const SND_HWDEP_IFACE_FW_BEBOB: _snd_hwdep_iface = 20;
4889pub const SND_HWDEP_IFACE_FW_OXFW: _snd_hwdep_iface = 21;
4890pub const SND_HWDEP_IFACE_FW_DIGI00X: _snd_hwdep_iface = 22;
4891pub const SND_HWDEP_IFACE_FW_TASCAM: _snd_hwdep_iface = 23;
4892pub const SND_HWDEP_IFACE_LINE6: _snd_hwdep_iface = 24;
4893pub const SND_HWDEP_IFACE_FW_MOTU: _snd_hwdep_iface = 25;
4894pub const SND_HWDEP_IFACE_FW_FIREFACE: _snd_hwdep_iface = 26;
4895pub const SND_HWDEP_IFACE_LAST: _snd_hwdep_iface = 26;
4896pub type _snd_hwdep_iface = ::core::ffi::c_uint;
4897pub use self::_snd_hwdep_iface as snd_hwdep_iface_t;
4898pub const SND_HWDEP_TYPE_HW: _snd_hwdep_type = 0;
4899pub const SND_HWDEP_TYPE_SHM: _snd_hwdep_type = 1;
4900pub const SND_HWDEP_TYPE_INET: _snd_hwdep_type = 2;
4901pub type _snd_hwdep_type = ::core::ffi::c_uint;
4902pub use self::_snd_hwdep_type as snd_hwdep_type_t;
4903#[repr(C)]
4904#[derive(Debug, Copy, Clone)]
4905pub struct _snd_hwdep {
4906    _unused: [u8; 0],
4907}
4908pub type snd_hwdep_t = _snd_hwdep;
4909unsafe extern "C" {
4910    pub fn snd_hwdep_open(
4911        hwdep: *mut *mut snd_hwdep_t,
4912        name: *const ::core::ffi::c_char,
4913        mode: ::core::ffi::c_int,
4914    ) -> ::core::ffi::c_int;
4915}
4916unsafe extern "C" {
4917    pub fn snd_hwdep_close(hwdep: *mut snd_hwdep_t) -> ::core::ffi::c_int;
4918}
4919unsafe extern "C" {
4920    pub fn snd_hwdep_poll_descriptors(
4921        hwdep: *mut snd_hwdep_t,
4922        pfds: *mut pollfd,
4923        space: ::core::ffi::c_uint,
4924    ) -> ::core::ffi::c_int;
4925}
4926unsafe extern "C" {
4927    pub fn snd_hwdep_poll_descriptors_count(hwdep: *mut snd_hwdep_t) -> ::core::ffi::c_int;
4928}
4929unsafe extern "C" {
4930    pub fn snd_hwdep_poll_descriptors_revents(
4931        hwdep: *mut snd_hwdep_t,
4932        pfds: *mut pollfd,
4933        nfds: ::core::ffi::c_uint,
4934        revents: *mut ::core::ffi::c_ushort,
4935    ) -> ::core::ffi::c_int;
4936}
4937unsafe extern "C" {
4938    pub fn snd_hwdep_nonblock(
4939        hwdep: *mut snd_hwdep_t,
4940        nonblock: ::core::ffi::c_int,
4941    ) -> ::core::ffi::c_int;
4942}
4943unsafe extern "C" {
4944    pub fn snd_hwdep_info(
4945        hwdep: *mut snd_hwdep_t,
4946        info: *mut snd_hwdep_info_t,
4947    ) -> ::core::ffi::c_int;
4948}
4949unsafe extern "C" {
4950    pub fn snd_hwdep_dsp_status(
4951        hwdep: *mut snd_hwdep_t,
4952        status: *mut snd_hwdep_dsp_status_t,
4953    ) -> ::core::ffi::c_int;
4954}
4955unsafe extern "C" {
4956    pub fn snd_hwdep_dsp_load(
4957        hwdep: *mut snd_hwdep_t,
4958        block: *mut snd_hwdep_dsp_image_t,
4959    ) -> ::core::ffi::c_int;
4960}
4961unsafe extern "C" {
4962    pub fn snd_hwdep_ioctl(
4963        hwdep: *mut snd_hwdep_t,
4964        request: ::core::ffi::c_uint,
4965        arg: *mut ::core::ffi::c_void,
4966    ) -> ::core::ffi::c_int;
4967}
4968unsafe extern "C" {
4969    pub fn snd_hwdep_write(
4970        hwdep: *mut snd_hwdep_t,
4971        buffer: *const ::core::ffi::c_void,
4972        size: usize,
4973    ) -> isize;
4974}
4975unsafe extern "C" {
4976    pub fn snd_hwdep_read(
4977        hwdep: *mut snd_hwdep_t,
4978        buffer: *mut ::core::ffi::c_void,
4979        size: usize,
4980    ) -> isize;
4981}
4982unsafe extern "C" {
4983    pub fn snd_hwdep_info_sizeof() -> usize;
4984}
4985unsafe extern "C" {
4986    pub fn snd_hwdep_info_malloc(ptr: *mut *mut snd_hwdep_info_t) -> ::core::ffi::c_int;
4987}
4988unsafe extern "C" {
4989    pub fn snd_hwdep_info_free(obj: *mut snd_hwdep_info_t);
4990}
4991unsafe extern "C" {
4992    pub fn snd_hwdep_info_copy(dst: *mut snd_hwdep_info_t, src: *const snd_hwdep_info_t);
4993}
4994unsafe extern "C" {
4995    pub fn snd_hwdep_info_get_device(obj: *const snd_hwdep_info_t) -> ::core::ffi::c_uint;
4996}
4997unsafe extern "C" {
4998    pub fn snd_hwdep_info_get_card(obj: *const snd_hwdep_info_t) -> ::core::ffi::c_int;
4999}
5000unsafe extern "C" {
5001    pub fn snd_hwdep_info_get_id(obj: *const snd_hwdep_info_t) -> *const ::core::ffi::c_char;
5002}
5003unsafe extern "C" {
5004    pub fn snd_hwdep_info_get_name(obj: *const snd_hwdep_info_t) -> *const ::core::ffi::c_char;
5005}
5006unsafe extern "C" {
5007    pub fn snd_hwdep_info_get_iface(obj: *const snd_hwdep_info_t) -> snd_hwdep_iface_t;
5008}
5009unsafe extern "C" {
5010    pub fn snd_hwdep_info_set_device(obj: *mut snd_hwdep_info_t, val: ::core::ffi::c_uint);
5011}
5012unsafe extern "C" {
5013    pub fn snd_hwdep_dsp_status_sizeof() -> usize;
5014}
5015unsafe extern "C" {
5016    pub fn snd_hwdep_dsp_status_malloc(ptr: *mut *mut snd_hwdep_dsp_status_t)
5017    -> ::core::ffi::c_int;
5018}
5019unsafe extern "C" {
5020    pub fn snd_hwdep_dsp_status_free(obj: *mut snd_hwdep_dsp_status_t);
5021}
5022unsafe extern "C" {
5023    pub fn snd_hwdep_dsp_status_copy(
5024        dst: *mut snd_hwdep_dsp_status_t,
5025        src: *const snd_hwdep_dsp_status_t,
5026    );
5027}
5028unsafe extern "C" {
5029    pub fn snd_hwdep_dsp_status_get_version(
5030        obj: *const snd_hwdep_dsp_status_t,
5031    ) -> ::core::ffi::c_uint;
5032}
5033unsafe extern "C" {
5034    pub fn snd_hwdep_dsp_status_get_id(
5035        obj: *const snd_hwdep_dsp_status_t,
5036    ) -> *const ::core::ffi::c_char;
5037}
5038unsafe extern "C" {
5039    pub fn snd_hwdep_dsp_status_get_num_dsps(
5040        obj: *const snd_hwdep_dsp_status_t,
5041    ) -> ::core::ffi::c_uint;
5042}
5043unsafe extern "C" {
5044    pub fn snd_hwdep_dsp_status_get_dsp_loaded(
5045        obj: *const snd_hwdep_dsp_status_t,
5046    ) -> ::core::ffi::c_uint;
5047}
5048unsafe extern "C" {
5049    pub fn snd_hwdep_dsp_status_get_chip_ready(
5050        obj: *const snd_hwdep_dsp_status_t,
5051    ) -> ::core::ffi::c_uint;
5052}
5053unsafe extern "C" {
5054    pub fn snd_hwdep_dsp_image_sizeof() -> usize;
5055}
5056unsafe extern "C" {
5057    pub fn snd_hwdep_dsp_image_malloc(ptr: *mut *mut snd_hwdep_dsp_image_t) -> ::core::ffi::c_int;
5058}
5059unsafe extern "C" {
5060    pub fn snd_hwdep_dsp_image_free(obj: *mut snd_hwdep_dsp_image_t);
5061}
5062unsafe extern "C" {
5063    pub fn snd_hwdep_dsp_image_copy(
5064        dst: *mut snd_hwdep_dsp_image_t,
5065        src: *const snd_hwdep_dsp_image_t,
5066    );
5067}
5068unsafe extern "C" {
5069    pub fn snd_hwdep_dsp_image_get_index(obj: *const snd_hwdep_dsp_image_t) -> ::core::ffi::c_uint;
5070}
5071unsafe extern "C" {
5072    pub fn snd_hwdep_dsp_image_get_name(
5073        obj: *const snd_hwdep_dsp_image_t,
5074    ) -> *const ::core::ffi::c_char;
5075}
5076unsafe extern "C" {
5077    pub fn snd_hwdep_dsp_image_get_image(
5078        obj: *const snd_hwdep_dsp_image_t,
5079    ) -> *const ::core::ffi::c_void;
5080}
5081unsafe extern "C" {
5082    pub fn snd_hwdep_dsp_image_get_length(obj: *const snd_hwdep_dsp_image_t) -> usize;
5083}
5084unsafe extern "C" {
5085    pub fn snd_hwdep_dsp_image_set_index(
5086        obj: *mut snd_hwdep_dsp_image_t,
5087        _index: ::core::ffi::c_uint,
5088    );
5089}
5090unsafe extern "C" {
5091    pub fn snd_hwdep_dsp_image_set_name(
5092        obj: *mut snd_hwdep_dsp_image_t,
5093        name: *const ::core::ffi::c_char,
5094    );
5095}
5096unsafe extern "C" {
5097    pub fn snd_hwdep_dsp_image_set_image(
5098        obj: *mut snd_hwdep_dsp_image_t,
5099        buffer: *mut ::core::ffi::c_void,
5100    );
5101}
5102unsafe extern "C" {
5103    pub fn snd_hwdep_dsp_image_set_length(obj: *mut snd_hwdep_dsp_image_t, length: usize);
5104}
5105#[repr(C)]
5106#[derive(Debug, Copy, Clone)]
5107pub struct snd_aes_iec958 {
5108    pub status: [::core::ffi::c_uchar; 24usize],
5109    pub subcode: [::core::ffi::c_uchar; 147usize],
5110    pub pad: ::core::ffi::c_uchar,
5111    pub dig_subframe: [::core::ffi::c_uchar; 4usize],
5112}
5113pub type snd_aes_iec958_t = snd_aes_iec958;
5114#[repr(C)]
5115#[derive(Debug, Copy, Clone)]
5116pub struct _snd_ctl_card_info {
5117    _unused: [u8; 0],
5118}
5119pub type snd_ctl_card_info_t = _snd_ctl_card_info;
5120#[repr(C)]
5121#[derive(Debug, Copy, Clone)]
5122pub struct _snd_ctl_elem_id {
5123    _unused: [u8; 0],
5124}
5125pub type snd_ctl_elem_id_t = _snd_ctl_elem_id;
5126#[repr(C)]
5127#[derive(Debug, Copy, Clone)]
5128pub struct _snd_ctl_elem_list {
5129    _unused: [u8; 0],
5130}
5131pub type snd_ctl_elem_list_t = _snd_ctl_elem_list;
5132#[repr(C)]
5133#[derive(Debug, Copy, Clone)]
5134pub struct _snd_ctl_elem_info {
5135    _unused: [u8; 0],
5136}
5137pub type snd_ctl_elem_info_t = _snd_ctl_elem_info;
5138#[repr(C)]
5139#[derive(Debug, Copy, Clone)]
5140pub struct _snd_ctl_elem_value {
5141    _unused: [u8; 0],
5142}
5143pub type snd_ctl_elem_value_t = _snd_ctl_elem_value;
5144#[repr(C)]
5145#[derive(Debug, Copy, Clone)]
5146pub struct _snd_ctl_event {
5147    _unused: [u8; 0],
5148}
5149pub type snd_ctl_event_t = _snd_ctl_event;
5150pub const SND_CTL_ELEM_TYPE_NONE: _snd_ctl_elem_type = 0;
5151pub const SND_CTL_ELEM_TYPE_BOOLEAN: _snd_ctl_elem_type = 1;
5152pub const SND_CTL_ELEM_TYPE_INTEGER: _snd_ctl_elem_type = 2;
5153pub const SND_CTL_ELEM_TYPE_ENUMERATED: _snd_ctl_elem_type = 3;
5154pub const SND_CTL_ELEM_TYPE_BYTES: _snd_ctl_elem_type = 4;
5155pub const SND_CTL_ELEM_TYPE_IEC958: _snd_ctl_elem_type = 5;
5156pub const SND_CTL_ELEM_TYPE_INTEGER64: _snd_ctl_elem_type = 6;
5157pub const SND_CTL_ELEM_TYPE_LAST: _snd_ctl_elem_type = 6;
5158pub type _snd_ctl_elem_type = ::core::ffi::c_uint;
5159pub use self::_snd_ctl_elem_type as snd_ctl_elem_type_t;
5160pub const SND_CTL_ELEM_IFACE_CARD: _snd_ctl_elem_iface = 0;
5161pub const SND_CTL_ELEM_IFACE_HWDEP: _snd_ctl_elem_iface = 1;
5162pub const SND_CTL_ELEM_IFACE_MIXER: _snd_ctl_elem_iface = 2;
5163pub const SND_CTL_ELEM_IFACE_PCM: _snd_ctl_elem_iface = 3;
5164pub const SND_CTL_ELEM_IFACE_RAWMIDI: _snd_ctl_elem_iface = 4;
5165pub const SND_CTL_ELEM_IFACE_TIMER: _snd_ctl_elem_iface = 5;
5166pub const SND_CTL_ELEM_IFACE_SEQUENCER: _snd_ctl_elem_iface = 6;
5167pub const SND_CTL_ELEM_IFACE_LAST: _snd_ctl_elem_iface = 6;
5168pub type _snd_ctl_elem_iface = ::core::ffi::c_uint;
5169pub use self::_snd_ctl_elem_iface as snd_ctl_elem_iface_t;
5170pub const SND_CTL_EVENT_ELEM: _snd_ctl_event_type = 0;
5171pub const SND_CTL_EVENT_LAST: _snd_ctl_event_type = 0;
5172pub type _snd_ctl_event_type = ::core::ffi::c_uint;
5173pub use self::_snd_ctl_event_type as snd_ctl_event_type_t;
5174pub const SND_CTL_TYPE_HW: _snd_ctl_type = 0;
5175pub const SND_CTL_TYPE_SHM: _snd_ctl_type = 1;
5176pub const SND_CTL_TYPE_INET: _snd_ctl_type = 2;
5177pub const SND_CTL_TYPE_EXT: _snd_ctl_type = 3;
5178pub const SND_CTL_TYPE_REMAP: _snd_ctl_type = 4;
5179pub type _snd_ctl_type = ::core::ffi::c_uint;
5180pub use self::_snd_ctl_type as snd_ctl_type_t;
5181#[repr(C)]
5182#[derive(Debug, Copy, Clone)]
5183pub struct _snd_ctl {
5184    _unused: [u8; 0],
5185}
5186pub type snd_ctl_t = _snd_ctl;
5187#[repr(C)]
5188#[derive(Debug, Copy, Clone)]
5189pub struct _snd_sctl {
5190    _unused: [u8; 0],
5191}
5192pub type snd_sctl_t = _snd_sctl;
5193unsafe extern "C" {
5194    pub fn snd_card_load(card: ::core::ffi::c_int) -> ::core::ffi::c_int;
5195}
5196unsafe extern "C" {
5197    pub fn snd_card_next(card: *mut ::core::ffi::c_int) -> ::core::ffi::c_int;
5198}
5199unsafe extern "C" {
5200    pub fn snd_card_get_index(name: *const ::core::ffi::c_char) -> ::core::ffi::c_int;
5201}
5202unsafe extern "C" {
5203    pub fn snd_card_get_name(
5204        card: ::core::ffi::c_int,
5205        name: *mut *mut ::core::ffi::c_char,
5206    ) -> ::core::ffi::c_int;
5207}
5208unsafe extern "C" {
5209    pub fn snd_card_get_longname(
5210        card: ::core::ffi::c_int,
5211        name: *mut *mut ::core::ffi::c_char,
5212    ) -> ::core::ffi::c_int;
5213}
5214unsafe extern "C" {
5215    pub fn snd_ctl_open(
5216        ctl: *mut *mut snd_ctl_t,
5217        name: *const ::core::ffi::c_char,
5218        mode: ::core::ffi::c_int,
5219    ) -> ::core::ffi::c_int;
5220}
5221unsafe extern "C" {
5222    pub fn snd_ctl_open_lconf(
5223        ctl: *mut *mut snd_ctl_t,
5224        name: *const ::core::ffi::c_char,
5225        mode: ::core::ffi::c_int,
5226        lconf: *mut snd_config_t,
5227    ) -> ::core::ffi::c_int;
5228}
5229unsafe extern "C" {
5230    pub fn snd_ctl_open_fallback(
5231        ctl: *mut *mut snd_ctl_t,
5232        root: *mut snd_config_t,
5233        name: *const ::core::ffi::c_char,
5234        orig_name: *const ::core::ffi::c_char,
5235        mode: ::core::ffi::c_int,
5236    ) -> ::core::ffi::c_int;
5237}
5238unsafe extern "C" {
5239    pub fn snd_ctl_close(ctl: *mut snd_ctl_t) -> ::core::ffi::c_int;
5240}
5241unsafe extern "C" {
5242    pub fn snd_ctl_nonblock(
5243        ctl: *mut snd_ctl_t,
5244        nonblock: ::core::ffi::c_int,
5245    ) -> ::core::ffi::c_int;
5246}
5247unsafe extern "C" {
5248    pub fn snd_async_add_ctl_handler(
5249        handler: *mut *mut snd_async_handler_t,
5250        ctl: *mut snd_ctl_t,
5251        callback: snd_async_callback_t,
5252        private_data: *mut ::core::ffi::c_void,
5253    ) -> ::core::ffi::c_int;
5254}
5255unsafe extern "C" {
5256    pub fn snd_async_handler_get_ctl(handler: *mut snd_async_handler_t) -> *mut snd_ctl_t;
5257}
5258unsafe extern "C" {
5259    pub fn snd_ctl_poll_descriptors_count(ctl: *mut snd_ctl_t) -> ::core::ffi::c_int;
5260}
5261unsafe extern "C" {
5262    pub fn snd_ctl_poll_descriptors(
5263        ctl: *mut snd_ctl_t,
5264        pfds: *mut pollfd,
5265        space: ::core::ffi::c_uint,
5266    ) -> ::core::ffi::c_int;
5267}
5268unsafe extern "C" {
5269    pub fn snd_ctl_poll_descriptors_revents(
5270        ctl: *mut snd_ctl_t,
5271        pfds: *mut pollfd,
5272        nfds: ::core::ffi::c_uint,
5273        revents: *mut ::core::ffi::c_ushort,
5274    ) -> ::core::ffi::c_int;
5275}
5276unsafe extern "C" {
5277    pub fn snd_ctl_subscribe_events(
5278        ctl: *mut snd_ctl_t,
5279        subscribe: ::core::ffi::c_int,
5280    ) -> ::core::ffi::c_int;
5281}
5282unsafe extern "C" {
5283    pub fn snd_ctl_card_info(
5284        ctl: *mut snd_ctl_t,
5285        info: *mut snd_ctl_card_info_t,
5286    ) -> ::core::ffi::c_int;
5287}
5288unsafe extern "C" {
5289    pub fn snd_ctl_elem_list(
5290        ctl: *mut snd_ctl_t,
5291        list: *mut snd_ctl_elem_list_t,
5292    ) -> ::core::ffi::c_int;
5293}
5294unsafe extern "C" {
5295    pub fn snd_ctl_elem_info(
5296        ctl: *mut snd_ctl_t,
5297        info: *mut snd_ctl_elem_info_t,
5298    ) -> ::core::ffi::c_int;
5299}
5300unsafe extern "C" {
5301    pub fn snd_ctl_elem_read(
5302        ctl: *mut snd_ctl_t,
5303        data: *mut snd_ctl_elem_value_t,
5304    ) -> ::core::ffi::c_int;
5305}
5306unsafe extern "C" {
5307    pub fn snd_ctl_elem_write(
5308        ctl: *mut snd_ctl_t,
5309        data: *mut snd_ctl_elem_value_t,
5310    ) -> ::core::ffi::c_int;
5311}
5312unsafe extern "C" {
5313    pub fn snd_ctl_elem_lock(ctl: *mut snd_ctl_t, id: *mut snd_ctl_elem_id_t)
5314    -> ::core::ffi::c_int;
5315}
5316unsafe extern "C" {
5317    pub fn snd_ctl_elem_unlock(
5318        ctl: *mut snd_ctl_t,
5319        id: *mut snd_ctl_elem_id_t,
5320    ) -> ::core::ffi::c_int;
5321}
5322unsafe extern "C" {
5323    pub fn snd_ctl_elem_tlv_read(
5324        ctl: *mut snd_ctl_t,
5325        id: *const snd_ctl_elem_id_t,
5326        tlv: *mut ::core::ffi::c_uint,
5327        tlv_size: ::core::ffi::c_uint,
5328    ) -> ::core::ffi::c_int;
5329}
5330unsafe extern "C" {
5331    pub fn snd_ctl_elem_tlv_write(
5332        ctl: *mut snd_ctl_t,
5333        id: *const snd_ctl_elem_id_t,
5334        tlv: *const ::core::ffi::c_uint,
5335    ) -> ::core::ffi::c_int;
5336}
5337unsafe extern "C" {
5338    pub fn snd_ctl_elem_tlv_command(
5339        ctl: *mut snd_ctl_t,
5340        id: *const snd_ctl_elem_id_t,
5341        tlv: *const ::core::ffi::c_uint,
5342    ) -> ::core::ffi::c_int;
5343}
5344unsafe extern "C" {
5345    pub fn snd_ctl_hwdep_next_device(
5346        ctl: *mut snd_ctl_t,
5347        device: *mut ::core::ffi::c_int,
5348    ) -> ::core::ffi::c_int;
5349}
5350unsafe extern "C" {
5351    pub fn snd_ctl_hwdep_info(
5352        ctl: *mut snd_ctl_t,
5353        info: *mut snd_hwdep_info_t,
5354    ) -> ::core::ffi::c_int;
5355}
5356unsafe extern "C" {
5357    pub fn snd_ctl_pcm_next_device(
5358        ctl: *mut snd_ctl_t,
5359        device: *mut ::core::ffi::c_int,
5360    ) -> ::core::ffi::c_int;
5361}
5362unsafe extern "C" {
5363    pub fn snd_ctl_pcm_info(ctl: *mut snd_ctl_t, info: *mut snd_pcm_info_t) -> ::core::ffi::c_int;
5364}
5365unsafe extern "C" {
5366    pub fn snd_ctl_pcm_prefer_subdevice(
5367        ctl: *mut snd_ctl_t,
5368        subdev: ::core::ffi::c_int,
5369    ) -> ::core::ffi::c_int;
5370}
5371unsafe extern "C" {
5372    pub fn snd_ctl_rawmidi_next_device(
5373        ctl: *mut snd_ctl_t,
5374        device: *mut ::core::ffi::c_int,
5375    ) -> ::core::ffi::c_int;
5376}
5377unsafe extern "C" {
5378    pub fn snd_ctl_rawmidi_info(
5379        ctl: *mut snd_ctl_t,
5380        info: *mut snd_rawmidi_info_t,
5381    ) -> ::core::ffi::c_int;
5382}
5383unsafe extern "C" {
5384    pub fn snd_ctl_rawmidi_prefer_subdevice(
5385        ctl: *mut snd_ctl_t,
5386        subdev: ::core::ffi::c_int,
5387    ) -> ::core::ffi::c_int;
5388}
5389unsafe extern "C" {
5390    pub fn snd_ctl_ump_next_device(
5391        ctl: *mut snd_ctl_t,
5392        device: *mut ::core::ffi::c_int,
5393    ) -> ::core::ffi::c_int;
5394}
5395unsafe extern "C" {
5396    pub fn snd_ctl_ump_endpoint_info(
5397        ctl: *mut snd_ctl_t,
5398        info: *mut snd_ump_endpoint_info_t,
5399    ) -> ::core::ffi::c_int;
5400}
5401unsafe extern "C" {
5402    pub fn snd_ctl_ump_block_info(
5403        ctl: *mut snd_ctl_t,
5404        info: *mut snd_ump_block_info_t,
5405    ) -> ::core::ffi::c_int;
5406}
5407unsafe extern "C" {
5408    pub fn snd_ctl_set_power_state(
5409        ctl: *mut snd_ctl_t,
5410        state: ::core::ffi::c_uint,
5411    ) -> ::core::ffi::c_int;
5412}
5413unsafe extern "C" {
5414    pub fn snd_ctl_get_power_state(
5415        ctl: *mut snd_ctl_t,
5416        state: *mut ::core::ffi::c_uint,
5417    ) -> ::core::ffi::c_int;
5418}
5419unsafe extern "C" {
5420    pub fn snd_ctl_read(ctl: *mut snd_ctl_t, event: *mut snd_ctl_event_t) -> ::core::ffi::c_int;
5421}
5422unsafe extern "C" {
5423    pub fn snd_ctl_wait(ctl: *mut snd_ctl_t, timeout: ::core::ffi::c_int) -> ::core::ffi::c_int;
5424}
5425unsafe extern "C" {
5426    pub fn snd_ctl_name(ctl: *mut snd_ctl_t) -> *const ::core::ffi::c_char;
5427}
5428unsafe extern "C" {
5429    pub fn snd_ctl_type(ctl: *mut snd_ctl_t) -> snd_ctl_type_t;
5430}
5431unsafe extern "C" {
5432    pub fn snd_ctl_elem_type_name(type_: snd_ctl_elem_type_t) -> *const ::core::ffi::c_char;
5433}
5434unsafe extern "C" {
5435    pub fn snd_ctl_elem_iface_name(iface: snd_ctl_elem_iface_t) -> *const ::core::ffi::c_char;
5436}
5437unsafe extern "C" {
5438    pub fn snd_ctl_event_type_name(type_: snd_ctl_event_type_t) -> *const ::core::ffi::c_char;
5439}
5440unsafe extern "C" {
5441    pub fn snd_ctl_event_elem_get_mask(obj: *const snd_ctl_event_t) -> ::core::ffi::c_uint;
5442}
5443unsafe extern "C" {
5444    pub fn snd_ctl_event_elem_get_numid(obj: *const snd_ctl_event_t) -> ::core::ffi::c_uint;
5445}
5446unsafe extern "C" {
5447    pub fn snd_ctl_event_elem_get_id(obj: *const snd_ctl_event_t, ptr: *mut snd_ctl_elem_id_t);
5448}
5449unsafe extern "C" {
5450    pub fn snd_ctl_event_elem_get_interface(obj: *const snd_ctl_event_t) -> snd_ctl_elem_iface_t;
5451}
5452unsafe extern "C" {
5453    pub fn snd_ctl_event_elem_get_device(obj: *const snd_ctl_event_t) -> ::core::ffi::c_uint;
5454}
5455unsafe extern "C" {
5456    pub fn snd_ctl_event_elem_get_subdevice(obj: *const snd_ctl_event_t) -> ::core::ffi::c_uint;
5457}
5458unsafe extern "C" {
5459    pub fn snd_ctl_event_elem_get_name(obj: *const snd_ctl_event_t) -> *const ::core::ffi::c_char;
5460}
5461unsafe extern "C" {
5462    pub fn snd_ctl_event_elem_get_index(obj: *const snd_ctl_event_t) -> ::core::ffi::c_uint;
5463}
5464unsafe extern "C" {
5465    pub fn snd_ctl_elem_list_alloc_space(
5466        obj: *mut snd_ctl_elem_list_t,
5467        entries: ::core::ffi::c_uint,
5468    ) -> ::core::ffi::c_int;
5469}
5470unsafe extern "C" {
5471    pub fn snd_ctl_elem_list_free_space(obj: *mut snd_ctl_elem_list_t);
5472}
5473unsafe extern "C" {
5474    pub fn snd_ctl_ascii_elem_id_get(id: *mut snd_ctl_elem_id_t) -> *mut ::core::ffi::c_char;
5475}
5476unsafe extern "C" {
5477    pub fn snd_ctl_ascii_elem_id_parse(
5478        dst: *mut snd_ctl_elem_id_t,
5479        str_: *const ::core::ffi::c_char,
5480    ) -> ::core::ffi::c_int;
5481}
5482unsafe extern "C" {
5483    pub fn snd_ctl_ascii_value_parse(
5484        handle: *mut snd_ctl_t,
5485        dst: *mut snd_ctl_elem_value_t,
5486        info: *mut snd_ctl_elem_info_t,
5487        value: *const ::core::ffi::c_char,
5488    ) -> ::core::ffi::c_int;
5489}
5490unsafe extern "C" {
5491    pub fn snd_ctl_elem_id_sizeof() -> usize;
5492}
5493unsafe extern "C" {
5494    pub fn snd_ctl_elem_id_malloc(ptr: *mut *mut snd_ctl_elem_id_t) -> ::core::ffi::c_int;
5495}
5496unsafe extern "C" {
5497    pub fn snd_ctl_elem_id_free(obj: *mut snd_ctl_elem_id_t);
5498}
5499unsafe extern "C" {
5500    pub fn snd_ctl_elem_id_clear(obj: *mut snd_ctl_elem_id_t);
5501}
5502unsafe extern "C" {
5503    pub fn snd_ctl_elem_id_copy(dst: *mut snd_ctl_elem_id_t, src: *const snd_ctl_elem_id_t);
5504}
5505unsafe extern "C" {
5506    pub fn snd_ctl_elem_id_compare_numid(
5507        id1: *const snd_ctl_elem_id_t,
5508        id2: *const snd_ctl_elem_id_t,
5509    ) -> ::core::ffi::c_int;
5510}
5511unsafe extern "C" {
5512    pub fn snd_ctl_elem_id_compare_set(
5513        id1: *const snd_ctl_elem_id_t,
5514        id2: *const snd_ctl_elem_id_t,
5515    ) -> ::core::ffi::c_int;
5516}
5517unsafe extern "C" {
5518    pub fn snd_ctl_elem_id_get_numid(obj: *const snd_ctl_elem_id_t) -> ::core::ffi::c_uint;
5519}
5520unsafe extern "C" {
5521    pub fn snd_ctl_elem_id_get_interface(obj: *const snd_ctl_elem_id_t) -> snd_ctl_elem_iface_t;
5522}
5523unsafe extern "C" {
5524    pub fn snd_ctl_elem_id_get_device(obj: *const snd_ctl_elem_id_t) -> ::core::ffi::c_uint;
5525}
5526unsafe extern "C" {
5527    pub fn snd_ctl_elem_id_get_subdevice(obj: *const snd_ctl_elem_id_t) -> ::core::ffi::c_uint;
5528}
5529unsafe extern "C" {
5530    pub fn snd_ctl_elem_id_get_name(obj: *const snd_ctl_elem_id_t) -> *const ::core::ffi::c_char;
5531}
5532unsafe extern "C" {
5533    pub fn snd_ctl_elem_id_get_index(obj: *const snd_ctl_elem_id_t) -> ::core::ffi::c_uint;
5534}
5535unsafe extern "C" {
5536    pub fn snd_ctl_elem_id_set_numid(obj: *mut snd_ctl_elem_id_t, val: ::core::ffi::c_uint);
5537}
5538unsafe extern "C" {
5539    pub fn snd_ctl_elem_id_set_interface(obj: *mut snd_ctl_elem_id_t, val: snd_ctl_elem_iface_t);
5540}
5541unsafe extern "C" {
5542    pub fn snd_ctl_elem_id_set_device(obj: *mut snd_ctl_elem_id_t, val: ::core::ffi::c_uint);
5543}
5544unsafe extern "C" {
5545    pub fn snd_ctl_elem_id_set_subdevice(obj: *mut snd_ctl_elem_id_t, val: ::core::ffi::c_uint);
5546}
5547unsafe extern "C" {
5548    pub fn snd_ctl_elem_id_set_name(obj: *mut snd_ctl_elem_id_t, val: *const ::core::ffi::c_char);
5549}
5550unsafe extern "C" {
5551    pub fn snd_ctl_elem_id_set_index(obj: *mut snd_ctl_elem_id_t, val: ::core::ffi::c_uint);
5552}
5553unsafe extern "C" {
5554    pub fn snd_ctl_card_info_sizeof() -> usize;
5555}
5556unsafe extern "C" {
5557    pub fn snd_ctl_card_info_malloc(ptr: *mut *mut snd_ctl_card_info_t) -> ::core::ffi::c_int;
5558}
5559unsafe extern "C" {
5560    pub fn snd_ctl_card_info_free(obj: *mut snd_ctl_card_info_t);
5561}
5562unsafe extern "C" {
5563    pub fn snd_ctl_card_info_clear(obj: *mut snd_ctl_card_info_t);
5564}
5565unsafe extern "C" {
5566    pub fn snd_ctl_card_info_copy(dst: *mut snd_ctl_card_info_t, src: *const snd_ctl_card_info_t);
5567}
5568unsafe extern "C" {
5569    pub fn snd_ctl_card_info_get_card(obj: *const snd_ctl_card_info_t) -> ::core::ffi::c_int;
5570}
5571unsafe extern "C" {
5572    pub fn snd_ctl_card_info_get_id(obj: *const snd_ctl_card_info_t) -> *const ::core::ffi::c_char;
5573}
5574unsafe extern "C" {
5575    pub fn snd_ctl_card_info_get_driver(
5576        obj: *const snd_ctl_card_info_t,
5577    ) -> *const ::core::ffi::c_char;
5578}
5579unsafe extern "C" {
5580    pub fn snd_ctl_card_info_get_name(
5581        obj: *const snd_ctl_card_info_t,
5582    ) -> *const ::core::ffi::c_char;
5583}
5584unsafe extern "C" {
5585    pub fn snd_ctl_card_info_get_longname(
5586        obj: *const snd_ctl_card_info_t,
5587    ) -> *const ::core::ffi::c_char;
5588}
5589unsafe extern "C" {
5590    pub fn snd_ctl_card_info_get_mixername(
5591        obj: *const snd_ctl_card_info_t,
5592    ) -> *const ::core::ffi::c_char;
5593}
5594unsafe extern "C" {
5595    pub fn snd_ctl_card_info_get_components(
5596        obj: *const snd_ctl_card_info_t,
5597    ) -> *const ::core::ffi::c_char;
5598}
5599unsafe extern "C" {
5600    pub fn snd_ctl_event_sizeof() -> usize;
5601}
5602unsafe extern "C" {
5603    pub fn snd_ctl_event_malloc(ptr: *mut *mut snd_ctl_event_t) -> ::core::ffi::c_int;
5604}
5605unsafe extern "C" {
5606    pub fn snd_ctl_event_free(obj: *mut snd_ctl_event_t);
5607}
5608unsafe extern "C" {
5609    pub fn snd_ctl_event_clear(obj: *mut snd_ctl_event_t);
5610}
5611unsafe extern "C" {
5612    pub fn snd_ctl_event_copy(dst: *mut snd_ctl_event_t, src: *const snd_ctl_event_t);
5613}
5614unsafe extern "C" {
5615    pub fn snd_ctl_event_get_type(obj: *const snd_ctl_event_t) -> snd_ctl_event_type_t;
5616}
5617unsafe extern "C" {
5618    pub fn snd_ctl_elem_list_sizeof() -> usize;
5619}
5620unsafe extern "C" {
5621    pub fn snd_ctl_elem_list_malloc(ptr: *mut *mut snd_ctl_elem_list_t) -> ::core::ffi::c_int;
5622}
5623unsafe extern "C" {
5624    pub fn snd_ctl_elem_list_free(obj: *mut snd_ctl_elem_list_t);
5625}
5626unsafe extern "C" {
5627    pub fn snd_ctl_elem_list_clear(obj: *mut snd_ctl_elem_list_t);
5628}
5629unsafe extern "C" {
5630    pub fn snd_ctl_elem_list_copy(dst: *mut snd_ctl_elem_list_t, src: *const snd_ctl_elem_list_t);
5631}
5632unsafe extern "C" {
5633    pub fn snd_ctl_elem_list_set_offset(obj: *mut snd_ctl_elem_list_t, val: ::core::ffi::c_uint);
5634}
5635unsafe extern "C" {
5636    pub fn snd_ctl_elem_list_get_used(obj: *const snd_ctl_elem_list_t) -> ::core::ffi::c_uint;
5637}
5638unsafe extern "C" {
5639    pub fn snd_ctl_elem_list_get_count(obj: *const snd_ctl_elem_list_t) -> ::core::ffi::c_uint;
5640}
5641unsafe extern "C" {
5642    pub fn snd_ctl_elem_list_get_id(
5643        obj: *const snd_ctl_elem_list_t,
5644        idx: ::core::ffi::c_uint,
5645        ptr: *mut snd_ctl_elem_id_t,
5646    );
5647}
5648unsafe extern "C" {
5649    pub fn snd_ctl_elem_list_get_numid(
5650        obj: *const snd_ctl_elem_list_t,
5651        idx: ::core::ffi::c_uint,
5652    ) -> ::core::ffi::c_uint;
5653}
5654unsafe extern "C" {
5655    pub fn snd_ctl_elem_list_get_interface(
5656        obj: *const snd_ctl_elem_list_t,
5657        idx: ::core::ffi::c_uint,
5658    ) -> snd_ctl_elem_iface_t;
5659}
5660unsafe extern "C" {
5661    pub fn snd_ctl_elem_list_get_device(
5662        obj: *const snd_ctl_elem_list_t,
5663        idx: ::core::ffi::c_uint,
5664    ) -> ::core::ffi::c_uint;
5665}
5666unsafe extern "C" {
5667    pub fn snd_ctl_elem_list_get_subdevice(
5668        obj: *const snd_ctl_elem_list_t,
5669        idx: ::core::ffi::c_uint,
5670    ) -> ::core::ffi::c_uint;
5671}
5672unsafe extern "C" {
5673    pub fn snd_ctl_elem_list_get_name(
5674        obj: *const snd_ctl_elem_list_t,
5675        idx: ::core::ffi::c_uint,
5676    ) -> *const ::core::ffi::c_char;
5677}
5678unsafe extern "C" {
5679    pub fn snd_ctl_elem_list_get_index(
5680        obj: *const snd_ctl_elem_list_t,
5681        idx: ::core::ffi::c_uint,
5682    ) -> ::core::ffi::c_uint;
5683}
5684unsafe extern "C" {
5685    pub fn snd_ctl_elem_info_sizeof() -> usize;
5686}
5687unsafe extern "C" {
5688    pub fn snd_ctl_elem_info_malloc(ptr: *mut *mut snd_ctl_elem_info_t) -> ::core::ffi::c_int;
5689}
5690unsafe extern "C" {
5691    pub fn snd_ctl_elem_info_free(obj: *mut snd_ctl_elem_info_t);
5692}
5693unsafe extern "C" {
5694    pub fn snd_ctl_elem_info_clear(obj: *mut snd_ctl_elem_info_t);
5695}
5696unsafe extern "C" {
5697    pub fn snd_ctl_elem_info_copy(dst: *mut snd_ctl_elem_info_t, src: *const snd_ctl_elem_info_t);
5698}
5699unsafe extern "C" {
5700    pub fn snd_ctl_elem_info_get_type(obj: *const snd_ctl_elem_info_t) -> snd_ctl_elem_type_t;
5701}
5702unsafe extern "C" {
5703    pub fn snd_ctl_elem_info_is_readable(obj: *const snd_ctl_elem_info_t) -> ::core::ffi::c_int;
5704}
5705unsafe extern "C" {
5706    pub fn snd_ctl_elem_info_is_writable(obj: *const snd_ctl_elem_info_t) -> ::core::ffi::c_int;
5707}
5708unsafe extern "C" {
5709    pub fn snd_ctl_elem_info_is_volatile(obj: *const snd_ctl_elem_info_t) -> ::core::ffi::c_int;
5710}
5711unsafe extern "C" {
5712    pub fn snd_ctl_elem_info_is_inactive(obj: *const snd_ctl_elem_info_t) -> ::core::ffi::c_int;
5713}
5714unsafe extern "C" {
5715    pub fn snd_ctl_elem_info_is_locked(obj: *const snd_ctl_elem_info_t) -> ::core::ffi::c_int;
5716}
5717unsafe extern "C" {
5718    pub fn snd_ctl_elem_info_is_tlv_readable(obj: *const snd_ctl_elem_info_t)
5719    -> ::core::ffi::c_int;
5720}
5721unsafe extern "C" {
5722    pub fn snd_ctl_elem_info_is_tlv_writable(obj: *const snd_ctl_elem_info_t)
5723    -> ::core::ffi::c_int;
5724}
5725unsafe extern "C" {
5726    pub fn snd_ctl_elem_info_is_tlv_commandable(
5727        obj: *const snd_ctl_elem_info_t,
5728    ) -> ::core::ffi::c_int;
5729}
5730unsafe extern "C" {
5731    pub fn snd_ctl_elem_info_is_owner(obj: *const snd_ctl_elem_info_t) -> ::core::ffi::c_int;
5732}
5733unsafe extern "C" {
5734    pub fn snd_ctl_elem_info_is_user(obj: *const snd_ctl_elem_info_t) -> ::core::ffi::c_int;
5735}
5736unsafe extern "C" {
5737    pub fn snd_ctl_elem_info_get_owner(obj: *const snd_ctl_elem_info_t) -> pid_t;
5738}
5739unsafe extern "C" {
5740    pub fn snd_ctl_elem_info_get_count(obj: *const snd_ctl_elem_info_t) -> ::core::ffi::c_uint;
5741}
5742unsafe extern "C" {
5743    pub fn snd_ctl_elem_info_get_min(obj: *const snd_ctl_elem_info_t) -> ::core::ffi::c_long;
5744}
5745unsafe extern "C" {
5746    pub fn snd_ctl_elem_info_get_max(obj: *const snd_ctl_elem_info_t) -> ::core::ffi::c_long;
5747}
5748unsafe extern "C" {
5749    pub fn snd_ctl_elem_info_get_step(obj: *const snd_ctl_elem_info_t) -> ::core::ffi::c_long;
5750}
5751unsafe extern "C" {
5752    pub fn snd_ctl_elem_info_get_min64(obj: *const snd_ctl_elem_info_t) -> ::core::ffi::c_longlong;
5753}
5754unsafe extern "C" {
5755    pub fn snd_ctl_elem_info_get_max64(obj: *const snd_ctl_elem_info_t) -> ::core::ffi::c_longlong;
5756}
5757unsafe extern "C" {
5758    pub fn snd_ctl_elem_info_get_step64(obj: *const snd_ctl_elem_info_t)
5759    -> ::core::ffi::c_longlong;
5760}
5761unsafe extern "C" {
5762    pub fn snd_ctl_elem_info_get_items(obj: *const snd_ctl_elem_info_t) -> ::core::ffi::c_uint;
5763}
5764unsafe extern "C" {
5765    pub fn snd_ctl_elem_info_set_item(obj: *mut snd_ctl_elem_info_t, val: ::core::ffi::c_uint);
5766}
5767unsafe extern "C" {
5768    pub fn snd_ctl_elem_info_get_item_name(
5769        obj: *const snd_ctl_elem_info_t,
5770    ) -> *const ::core::ffi::c_char;
5771}
5772unsafe extern "C" {
5773    pub fn snd_ctl_elem_info_get_dimensions(obj: *const snd_ctl_elem_info_t) -> ::core::ffi::c_int;
5774}
5775unsafe extern "C" {
5776    pub fn snd_ctl_elem_info_get_dimension(
5777        obj: *const snd_ctl_elem_info_t,
5778        idx: ::core::ffi::c_uint,
5779    ) -> ::core::ffi::c_int;
5780}
5781unsafe extern "C" {
5782    pub fn snd_ctl_elem_info_set_dimension(
5783        info: *mut snd_ctl_elem_info_t,
5784        dimension: *const ::core::ffi::c_int,
5785    ) -> ::core::ffi::c_int;
5786}
5787unsafe extern "C" {
5788    pub fn snd_ctl_elem_info_get_id(obj: *const snd_ctl_elem_info_t, ptr: *mut snd_ctl_elem_id_t);
5789}
5790unsafe extern "C" {
5791    pub fn snd_ctl_elem_info_get_numid(obj: *const snd_ctl_elem_info_t) -> ::core::ffi::c_uint;
5792}
5793unsafe extern "C" {
5794    pub fn snd_ctl_elem_info_get_interface(obj: *const snd_ctl_elem_info_t)
5795    -> snd_ctl_elem_iface_t;
5796}
5797unsafe extern "C" {
5798    pub fn snd_ctl_elem_info_get_device(obj: *const snd_ctl_elem_info_t) -> ::core::ffi::c_uint;
5799}
5800unsafe extern "C" {
5801    pub fn snd_ctl_elem_info_get_subdevice(obj: *const snd_ctl_elem_info_t) -> ::core::ffi::c_uint;
5802}
5803unsafe extern "C" {
5804    pub fn snd_ctl_elem_info_get_name(
5805        obj: *const snd_ctl_elem_info_t,
5806    ) -> *const ::core::ffi::c_char;
5807}
5808unsafe extern "C" {
5809    pub fn snd_ctl_elem_info_get_index(obj: *const snd_ctl_elem_info_t) -> ::core::ffi::c_uint;
5810}
5811unsafe extern "C" {
5812    pub fn snd_ctl_elem_info_set_id(obj: *mut snd_ctl_elem_info_t, ptr: *const snd_ctl_elem_id_t);
5813}
5814unsafe extern "C" {
5815    pub fn snd_ctl_elem_info_set_numid(obj: *mut snd_ctl_elem_info_t, val: ::core::ffi::c_uint);
5816}
5817unsafe extern "C" {
5818    pub fn snd_ctl_elem_info_set_interface(
5819        obj: *mut snd_ctl_elem_info_t,
5820        val: snd_ctl_elem_iface_t,
5821    );
5822}
5823unsafe extern "C" {
5824    pub fn snd_ctl_elem_info_set_device(obj: *mut snd_ctl_elem_info_t, val: ::core::ffi::c_uint);
5825}
5826unsafe extern "C" {
5827    pub fn snd_ctl_elem_info_set_subdevice(obj: *mut snd_ctl_elem_info_t, val: ::core::ffi::c_uint);
5828}
5829unsafe extern "C" {
5830    pub fn snd_ctl_elem_info_set_name(
5831        obj: *mut snd_ctl_elem_info_t,
5832        val: *const ::core::ffi::c_char,
5833    );
5834}
5835unsafe extern "C" {
5836    pub fn snd_ctl_elem_info_set_index(obj: *mut snd_ctl_elem_info_t, val: ::core::ffi::c_uint);
5837}
5838unsafe extern "C" {
5839    pub fn snd_ctl_elem_info_set_read_write(
5840        obj: *mut snd_ctl_elem_info_t,
5841        rval: ::core::ffi::c_int,
5842        wval: ::core::ffi::c_int,
5843    );
5844}
5845unsafe extern "C" {
5846    pub fn snd_ctl_elem_info_set_tlv_read_write(
5847        obj: *mut snd_ctl_elem_info_t,
5848        rval: ::core::ffi::c_int,
5849        wval: ::core::ffi::c_int,
5850    );
5851}
5852unsafe extern "C" {
5853    pub fn snd_ctl_elem_info_set_inactive(obj: *mut snd_ctl_elem_info_t, val: ::core::ffi::c_int);
5854}
5855unsafe extern "C" {
5856    pub fn snd_ctl_add_integer_elem_set(
5857        ctl: *mut snd_ctl_t,
5858        info: *mut snd_ctl_elem_info_t,
5859        element_count: ::core::ffi::c_uint,
5860        member_count: ::core::ffi::c_uint,
5861        min: ::core::ffi::c_long,
5862        max: ::core::ffi::c_long,
5863        step: ::core::ffi::c_long,
5864    ) -> ::core::ffi::c_int;
5865}
5866unsafe extern "C" {
5867    pub fn snd_ctl_add_integer64_elem_set(
5868        ctl: *mut snd_ctl_t,
5869        info: *mut snd_ctl_elem_info_t,
5870        element_count: ::core::ffi::c_uint,
5871        member_count: ::core::ffi::c_uint,
5872        min: ::core::ffi::c_longlong,
5873        max: ::core::ffi::c_longlong,
5874        step: ::core::ffi::c_longlong,
5875    ) -> ::core::ffi::c_int;
5876}
5877unsafe extern "C" {
5878    pub fn snd_ctl_add_boolean_elem_set(
5879        ctl: *mut snd_ctl_t,
5880        info: *mut snd_ctl_elem_info_t,
5881        element_count: ::core::ffi::c_uint,
5882        member_count: ::core::ffi::c_uint,
5883    ) -> ::core::ffi::c_int;
5884}
5885unsafe extern "C" {
5886    pub fn snd_ctl_add_enumerated_elem_set(
5887        ctl: *mut snd_ctl_t,
5888        info: *mut snd_ctl_elem_info_t,
5889        element_count: ::core::ffi::c_uint,
5890        member_count: ::core::ffi::c_uint,
5891        items: ::core::ffi::c_uint,
5892        labels: *const *const ::core::ffi::c_char,
5893    ) -> ::core::ffi::c_int;
5894}
5895unsafe extern "C" {
5896    pub fn snd_ctl_add_bytes_elem_set(
5897        ctl: *mut snd_ctl_t,
5898        info: *mut snd_ctl_elem_info_t,
5899        element_count: ::core::ffi::c_uint,
5900        member_count: ::core::ffi::c_uint,
5901    ) -> ::core::ffi::c_int;
5902}
5903unsafe extern "C" {
5904    pub fn snd_ctl_elem_add_integer(
5905        ctl: *mut snd_ctl_t,
5906        id: *const snd_ctl_elem_id_t,
5907        count: ::core::ffi::c_uint,
5908        imin: ::core::ffi::c_long,
5909        imax: ::core::ffi::c_long,
5910        istep: ::core::ffi::c_long,
5911    ) -> ::core::ffi::c_int;
5912}
5913unsafe extern "C" {
5914    pub fn snd_ctl_elem_add_integer64(
5915        ctl: *mut snd_ctl_t,
5916        id: *const snd_ctl_elem_id_t,
5917        count: ::core::ffi::c_uint,
5918        imin: ::core::ffi::c_longlong,
5919        imax: ::core::ffi::c_longlong,
5920        istep: ::core::ffi::c_longlong,
5921    ) -> ::core::ffi::c_int;
5922}
5923unsafe extern "C" {
5924    pub fn snd_ctl_elem_add_boolean(
5925        ctl: *mut snd_ctl_t,
5926        id: *const snd_ctl_elem_id_t,
5927        count: ::core::ffi::c_uint,
5928    ) -> ::core::ffi::c_int;
5929}
5930unsafe extern "C" {
5931    pub fn snd_ctl_elem_add_enumerated(
5932        ctl: *mut snd_ctl_t,
5933        id: *const snd_ctl_elem_id_t,
5934        count: ::core::ffi::c_uint,
5935        items: ::core::ffi::c_uint,
5936        names: *const *const ::core::ffi::c_char,
5937    ) -> ::core::ffi::c_int;
5938}
5939unsafe extern "C" {
5940    pub fn snd_ctl_elem_add_iec958(
5941        ctl: *mut snd_ctl_t,
5942        id: *const snd_ctl_elem_id_t,
5943    ) -> ::core::ffi::c_int;
5944}
5945unsafe extern "C" {
5946    pub fn snd_ctl_elem_remove(
5947        ctl: *mut snd_ctl_t,
5948        id: *mut snd_ctl_elem_id_t,
5949    ) -> ::core::ffi::c_int;
5950}
5951unsafe extern "C" {
5952    pub fn snd_ctl_elem_value_sizeof() -> usize;
5953}
5954unsafe extern "C" {
5955    pub fn snd_ctl_elem_value_malloc(ptr: *mut *mut snd_ctl_elem_value_t) -> ::core::ffi::c_int;
5956}
5957unsafe extern "C" {
5958    pub fn snd_ctl_elem_value_free(obj: *mut snd_ctl_elem_value_t);
5959}
5960unsafe extern "C" {
5961    pub fn snd_ctl_elem_value_clear(obj: *mut snd_ctl_elem_value_t);
5962}
5963unsafe extern "C" {
5964    pub fn snd_ctl_elem_value_copy(
5965        dst: *mut snd_ctl_elem_value_t,
5966        src: *const snd_ctl_elem_value_t,
5967    );
5968}
5969unsafe extern "C" {
5970    pub fn snd_ctl_elem_value_compare(
5971        left: *mut snd_ctl_elem_value_t,
5972        right: *const snd_ctl_elem_value_t,
5973    ) -> ::core::ffi::c_int;
5974}
5975unsafe extern "C" {
5976    pub fn snd_ctl_elem_value_get_id(obj: *const snd_ctl_elem_value_t, ptr: *mut snd_ctl_elem_id_t);
5977}
5978unsafe extern "C" {
5979    pub fn snd_ctl_elem_value_get_numid(obj: *const snd_ctl_elem_value_t) -> ::core::ffi::c_uint;
5980}
5981unsafe extern "C" {
5982    pub fn snd_ctl_elem_value_get_interface(
5983        obj: *const snd_ctl_elem_value_t,
5984    ) -> snd_ctl_elem_iface_t;
5985}
5986unsafe extern "C" {
5987    pub fn snd_ctl_elem_value_get_device(obj: *const snd_ctl_elem_value_t) -> ::core::ffi::c_uint;
5988}
5989unsafe extern "C" {
5990    pub fn snd_ctl_elem_value_get_subdevice(
5991        obj: *const snd_ctl_elem_value_t,
5992    ) -> ::core::ffi::c_uint;
5993}
5994unsafe extern "C" {
5995    pub fn snd_ctl_elem_value_get_name(
5996        obj: *const snd_ctl_elem_value_t,
5997    ) -> *const ::core::ffi::c_char;
5998}
5999unsafe extern "C" {
6000    pub fn snd_ctl_elem_value_get_index(obj: *const snd_ctl_elem_value_t) -> ::core::ffi::c_uint;
6001}
6002unsafe extern "C" {
6003    pub fn snd_ctl_elem_value_set_id(obj: *mut snd_ctl_elem_value_t, ptr: *const snd_ctl_elem_id_t);
6004}
6005unsafe extern "C" {
6006    pub fn snd_ctl_elem_value_set_numid(obj: *mut snd_ctl_elem_value_t, val: ::core::ffi::c_uint);
6007}
6008unsafe extern "C" {
6009    pub fn snd_ctl_elem_value_set_interface(
6010        obj: *mut snd_ctl_elem_value_t,
6011        val: snd_ctl_elem_iface_t,
6012    );
6013}
6014unsafe extern "C" {
6015    pub fn snd_ctl_elem_value_set_device(obj: *mut snd_ctl_elem_value_t, val: ::core::ffi::c_uint);
6016}
6017unsafe extern "C" {
6018    pub fn snd_ctl_elem_value_set_subdevice(
6019        obj: *mut snd_ctl_elem_value_t,
6020        val: ::core::ffi::c_uint,
6021    );
6022}
6023unsafe extern "C" {
6024    pub fn snd_ctl_elem_value_set_name(
6025        obj: *mut snd_ctl_elem_value_t,
6026        val: *const ::core::ffi::c_char,
6027    );
6028}
6029unsafe extern "C" {
6030    pub fn snd_ctl_elem_value_set_index(obj: *mut snd_ctl_elem_value_t, val: ::core::ffi::c_uint);
6031}
6032unsafe extern "C" {
6033    pub fn snd_ctl_elem_value_get_boolean(
6034        obj: *const snd_ctl_elem_value_t,
6035        idx: ::core::ffi::c_uint,
6036    ) -> ::core::ffi::c_int;
6037}
6038unsafe extern "C" {
6039    pub fn snd_ctl_elem_value_get_integer(
6040        obj: *const snd_ctl_elem_value_t,
6041        idx: ::core::ffi::c_uint,
6042    ) -> ::core::ffi::c_long;
6043}
6044unsafe extern "C" {
6045    pub fn snd_ctl_elem_value_get_integer64(
6046        obj: *const snd_ctl_elem_value_t,
6047        idx: ::core::ffi::c_uint,
6048    ) -> ::core::ffi::c_longlong;
6049}
6050unsafe extern "C" {
6051    pub fn snd_ctl_elem_value_get_enumerated(
6052        obj: *const snd_ctl_elem_value_t,
6053        idx: ::core::ffi::c_uint,
6054    ) -> ::core::ffi::c_uint;
6055}
6056unsafe extern "C" {
6057    pub fn snd_ctl_elem_value_get_byte(
6058        obj: *const snd_ctl_elem_value_t,
6059        idx: ::core::ffi::c_uint,
6060    ) -> ::core::ffi::c_uchar;
6061}
6062unsafe extern "C" {
6063    pub fn snd_ctl_elem_value_set_boolean(
6064        obj: *mut snd_ctl_elem_value_t,
6065        idx: ::core::ffi::c_uint,
6066        val: ::core::ffi::c_long,
6067    );
6068}
6069unsafe extern "C" {
6070    pub fn snd_ctl_elem_value_set_integer(
6071        obj: *mut snd_ctl_elem_value_t,
6072        idx: ::core::ffi::c_uint,
6073        val: ::core::ffi::c_long,
6074    );
6075}
6076unsafe extern "C" {
6077    pub fn snd_ctl_elem_value_set_integer64(
6078        obj: *mut snd_ctl_elem_value_t,
6079        idx: ::core::ffi::c_uint,
6080        val: ::core::ffi::c_longlong,
6081    );
6082}
6083unsafe extern "C" {
6084    pub fn snd_ctl_elem_value_set_enumerated(
6085        obj: *mut snd_ctl_elem_value_t,
6086        idx: ::core::ffi::c_uint,
6087        val: ::core::ffi::c_uint,
6088    );
6089}
6090unsafe extern "C" {
6091    pub fn snd_ctl_elem_value_set_byte(
6092        obj: *mut snd_ctl_elem_value_t,
6093        idx: ::core::ffi::c_uint,
6094        val: ::core::ffi::c_uchar,
6095    );
6096}
6097unsafe extern "C" {
6098    pub fn snd_ctl_elem_set_bytes(
6099        obj: *mut snd_ctl_elem_value_t,
6100        data: *mut ::core::ffi::c_void,
6101        size: usize,
6102    );
6103}
6104unsafe extern "C" {
6105    pub fn snd_ctl_elem_value_get_bytes(
6106        obj: *const snd_ctl_elem_value_t,
6107    ) -> *const ::core::ffi::c_void;
6108}
6109unsafe extern "C" {
6110    pub fn snd_ctl_elem_value_get_iec958(
6111        obj: *const snd_ctl_elem_value_t,
6112        ptr: *mut snd_aes_iec958_t,
6113    );
6114}
6115unsafe extern "C" {
6116    pub fn snd_ctl_elem_value_set_iec958(
6117        obj: *mut snd_ctl_elem_value_t,
6118        ptr: *const snd_aes_iec958_t,
6119    );
6120}
6121unsafe extern "C" {
6122    pub fn snd_tlv_parse_dB_info(
6123        tlv: *mut ::core::ffi::c_uint,
6124        tlv_size: ::core::ffi::c_uint,
6125        db_tlvp: *mut *mut ::core::ffi::c_uint,
6126    ) -> ::core::ffi::c_int;
6127}
6128unsafe extern "C" {
6129    pub fn snd_tlv_get_dB_range(
6130        tlv: *mut ::core::ffi::c_uint,
6131        rangemin: ::core::ffi::c_long,
6132        rangemax: ::core::ffi::c_long,
6133        min: *mut ::core::ffi::c_long,
6134        max: *mut ::core::ffi::c_long,
6135    ) -> ::core::ffi::c_int;
6136}
6137unsafe extern "C" {
6138    pub fn snd_tlv_convert_to_dB(
6139        tlv: *mut ::core::ffi::c_uint,
6140        rangemin: ::core::ffi::c_long,
6141        rangemax: ::core::ffi::c_long,
6142        volume: ::core::ffi::c_long,
6143        db_gain: *mut ::core::ffi::c_long,
6144    ) -> ::core::ffi::c_int;
6145}
6146unsafe extern "C" {
6147    pub fn snd_tlv_convert_from_dB(
6148        tlv: *mut ::core::ffi::c_uint,
6149        rangemin: ::core::ffi::c_long,
6150        rangemax: ::core::ffi::c_long,
6151        db_gain: ::core::ffi::c_long,
6152        value: *mut ::core::ffi::c_long,
6153        xdir: ::core::ffi::c_int,
6154    ) -> ::core::ffi::c_int;
6155}
6156unsafe extern "C" {
6157    pub fn snd_ctl_get_dB_range(
6158        ctl: *mut snd_ctl_t,
6159        id: *const snd_ctl_elem_id_t,
6160        min: *mut ::core::ffi::c_long,
6161        max: *mut ::core::ffi::c_long,
6162    ) -> ::core::ffi::c_int;
6163}
6164unsafe extern "C" {
6165    pub fn snd_ctl_convert_to_dB(
6166        ctl: *mut snd_ctl_t,
6167        id: *const snd_ctl_elem_id_t,
6168        volume: ::core::ffi::c_long,
6169        db_gain: *mut ::core::ffi::c_long,
6170    ) -> ::core::ffi::c_int;
6171}
6172unsafe extern "C" {
6173    pub fn snd_ctl_convert_from_dB(
6174        ctl: *mut snd_ctl_t,
6175        id: *const snd_ctl_elem_id_t,
6176        db_gain: ::core::ffi::c_long,
6177        value: *mut ::core::ffi::c_long,
6178        xdir: ::core::ffi::c_int,
6179    ) -> ::core::ffi::c_int;
6180}
6181#[repr(C)]
6182#[derive(Debug, Copy, Clone)]
6183pub struct _snd_hctl_elem {
6184    _unused: [u8; 0],
6185}
6186pub type snd_hctl_elem_t = _snd_hctl_elem;
6187#[repr(C)]
6188#[derive(Debug, Copy, Clone)]
6189pub struct _snd_hctl {
6190    _unused: [u8; 0],
6191}
6192pub type snd_hctl_t = _snd_hctl;
6193pub type snd_hctl_compare_t = ::core::option::Option<
6194    unsafe extern "C" fn(
6195        e1: *const snd_hctl_elem_t,
6196        e2: *const snd_hctl_elem_t,
6197    ) -> ::core::ffi::c_int,
6198>;
6199unsafe extern "C" {
6200    pub fn snd_hctl_compare_fast(
6201        c1: *const snd_hctl_elem_t,
6202        c2: *const snd_hctl_elem_t,
6203    ) -> ::core::ffi::c_int;
6204}
6205pub type snd_hctl_callback_t = ::core::option::Option<
6206    unsafe extern "C" fn(
6207        hctl: *mut snd_hctl_t,
6208        mask: ::core::ffi::c_uint,
6209        elem: *mut snd_hctl_elem_t,
6210    ) -> ::core::ffi::c_int,
6211>;
6212pub type snd_hctl_elem_callback_t = ::core::option::Option<
6213    unsafe extern "C" fn(
6214        elem: *mut snd_hctl_elem_t,
6215        mask: ::core::ffi::c_uint,
6216    ) -> ::core::ffi::c_int,
6217>;
6218unsafe extern "C" {
6219    pub fn snd_hctl_open(
6220        hctl: *mut *mut snd_hctl_t,
6221        name: *const ::core::ffi::c_char,
6222        mode: ::core::ffi::c_int,
6223    ) -> ::core::ffi::c_int;
6224}
6225unsafe extern "C" {
6226    pub fn snd_hctl_open_ctl(
6227        hctlp: *mut *mut snd_hctl_t,
6228        ctl: *mut snd_ctl_t,
6229    ) -> ::core::ffi::c_int;
6230}
6231unsafe extern "C" {
6232    pub fn snd_hctl_close(hctl: *mut snd_hctl_t) -> ::core::ffi::c_int;
6233}
6234unsafe extern "C" {
6235    pub fn snd_hctl_nonblock(
6236        hctl: *mut snd_hctl_t,
6237        nonblock: ::core::ffi::c_int,
6238    ) -> ::core::ffi::c_int;
6239}
6240unsafe extern "C" {
6241    pub fn snd_hctl_poll_descriptors_count(hctl: *mut snd_hctl_t) -> ::core::ffi::c_int;
6242}
6243unsafe extern "C" {
6244    pub fn snd_hctl_poll_descriptors(
6245        hctl: *mut snd_hctl_t,
6246        pfds: *mut pollfd,
6247        space: ::core::ffi::c_uint,
6248    ) -> ::core::ffi::c_int;
6249}
6250unsafe extern "C" {
6251    pub fn snd_hctl_poll_descriptors_revents(
6252        ctl: *mut snd_hctl_t,
6253        pfds: *mut pollfd,
6254        nfds: ::core::ffi::c_uint,
6255        revents: *mut ::core::ffi::c_ushort,
6256    ) -> ::core::ffi::c_int;
6257}
6258unsafe extern "C" {
6259    pub fn snd_hctl_get_count(hctl: *mut snd_hctl_t) -> ::core::ffi::c_uint;
6260}
6261unsafe extern "C" {
6262    pub fn snd_hctl_set_compare(
6263        hctl: *mut snd_hctl_t,
6264        hsort: snd_hctl_compare_t,
6265    ) -> ::core::ffi::c_int;
6266}
6267unsafe extern "C" {
6268    pub fn snd_hctl_first_elem(hctl: *mut snd_hctl_t) -> *mut snd_hctl_elem_t;
6269}
6270unsafe extern "C" {
6271    pub fn snd_hctl_last_elem(hctl: *mut snd_hctl_t) -> *mut snd_hctl_elem_t;
6272}
6273unsafe extern "C" {
6274    pub fn snd_hctl_find_elem(
6275        hctl: *mut snd_hctl_t,
6276        id: *const snd_ctl_elem_id_t,
6277    ) -> *mut snd_hctl_elem_t;
6278}
6279unsafe extern "C" {
6280    pub fn snd_hctl_set_callback(hctl: *mut snd_hctl_t, callback: snd_hctl_callback_t);
6281}
6282unsafe extern "C" {
6283    pub fn snd_hctl_set_callback_private(hctl: *mut snd_hctl_t, data: *mut ::core::ffi::c_void);
6284}
6285unsafe extern "C" {
6286    pub fn snd_hctl_get_callback_private(hctl: *mut snd_hctl_t) -> *mut ::core::ffi::c_void;
6287}
6288unsafe extern "C" {
6289    pub fn snd_hctl_load(hctl: *mut snd_hctl_t) -> ::core::ffi::c_int;
6290}
6291unsafe extern "C" {
6292    pub fn snd_hctl_free(hctl: *mut snd_hctl_t) -> ::core::ffi::c_int;
6293}
6294unsafe extern "C" {
6295    pub fn snd_hctl_handle_events(hctl: *mut snd_hctl_t) -> ::core::ffi::c_int;
6296}
6297unsafe extern "C" {
6298    pub fn snd_hctl_name(hctl: *mut snd_hctl_t) -> *const ::core::ffi::c_char;
6299}
6300unsafe extern "C" {
6301    pub fn snd_hctl_wait(hctl: *mut snd_hctl_t, timeout: ::core::ffi::c_int) -> ::core::ffi::c_int;
6302}
6303unsafe extern "C" {
6304    pub fn snd_hctl_ctl(hctl: *mut snd_hctl_t) -> *mut snd_ctl_t;
6305}
6306unsafe extern "C" {
6307    pub fn snd_hctl_elem_next(elem: *mut snd_hctl_elem_t) -> *mut snd_hctl_elem_t;
6308}
6309unsafe extern "C" {
6310    pub fn snd_hctl_elem_prev(elem: *mut snd_hctl_elem_t) -> *mut snd_hctl_elem_t;
6311}
6312unsafe extern "C" {
6313    pub fn snd_hctl_elem_info(
6314        elem: *mut snd_hctl_elem_t,
6315        info: *mut snd_ctl_elem_info_t,
6316    ) -> ::core::ffi::c_int;
6317}
6318unsafe extern "C" {
6319    pub fn snd_hctl_elem_read(
6320        elem: *mut snd_hctl_elem_t,
6321        value: *mut snd_ctl_elem_value_t,
6322    ) -> ::core::ffi::c_int;
6323}
6324unsafe extern "C" {
6325    pub fn snd_hctl_elem_write(
6326        elem: *mut snd_hctl_elem_t,
6327        value: *mut snd_ctl_elem_value_t,
6328    ) -> ::core::ffi::c_int;
6329}
6330unsafe extern "C" {
6331    pub fn snd_hctl_elem_tlv_read(
6332        elem: *mut snd_hctl_elem_t,
6333        tlv: *mut ::core::ffi::c_uint,
6334        tlv_size: ::core::ffi::c_uint,
6335    ) -> ::core::ffi::c_int;
6336}
6337unsafe extern "C" {
6338    pub fn snd_hctl_elem_tlv_write(
6339        elem: *mut snd_hctl_elem_t,
6340        tlv: *const ::core::ffi::c_uint,
6341    ) -> ::core::ffi::c_int;
6342}
6343unsafe extern "C" {
6344    pub fn snd_hctl_elem_tlv_command(
6345        elem: *mut snd_hctl_elem_t,
6346        tlv: *const ::core::ffi::c_uint,
6347    ) -> ::core::ffi::c_int;
6348}
6349unsafe extern "C" {
6350    pub fn snd_hctl_elem_get_hctl(elem: *mut snd_hctl_elem_t) -> *mut snd_hctl_t;
6351}
6352unsafe extern "C" {
6353    pub fn snd_hctl_elem_get_id(obj: *const snd_hctl_elem_t, ptr: *mut snd_ctl_elem_id_t);
6354}
6355unsafe extern "C" {
6356    pub fn snd_hctl_elem_get_numid(obj: *const snd_hctl_elem_t) -> ::core::ffi::c_uint;
6357}
6358unsafe extern "C" {
6359    pub fn snd_hctl_elem_get_interface(obj: *const snd_hctl_elem_t) -> snd_ctl_elem_iface_t;
6360}
6361unsafe extern "C" {
6362    pub fn snd_hctl_elem_get_device(obj: *const snd_hctl_elem_t) -> ::core::ffi::c_uint;
6363}
6364unsafe extern "C" {
6365    pub fn snd_hctl_elem_get_subdevice(obj: *const snd_hctl_elem_t) -> ::core::ffi::c_uint;
6366}
6367unsafe extern "C" {
6368    pub fn snd_hctl_elem_get_name(obj: *const snd_hctl_elem_t) -> *const ::core::ffi::c_char;
6369}
6370unsafe extern "C" {
6371    pub fn snd_hctl_elem_get_index(obj: *const snd_hctl_elem_t) -> ::core::ffi::c_uint;
6372}
6373unsafe extern "C" {
6374    pub fn snd_hctl_elem_set_callback(obj: *mut snd_hctl_elem_t, val: snd_hctl_elem_callback_t);
6375}
6376unsafe extern "C" {
6377    pub fn snd_hctl_elem_get_callback_private(
6378        obj: *const snd_hctl_elem_t,
6379    ) -> *mut ::core::ffi::c_void;
6380}
6381unsafe extern "C" {
6382    pub fn snd_hctl_elem_set_callback_private(
6383        obj: *mut snd_hctl_elem_t,
6384        val: *mut ::core::ffi::c_void,
6385    );
6386}
6387unsafe extern "C" {
6388    pub fn snd_sctl_build(
6389        ctl: *mut *mut snd_sctl_t,
6390        handle: *mut snd_ctl_t,
6391        config: *mut snd_config_t,
6392        private_data: *mut snd_config_t,
6393        mode: ::core::ffi::c_int,
6394    ) -> ::core::ffi::c_int;
6395}
6396unsafe extern "C" {
6397    pub fn snd_sctl_free(handle: *mut snd_sctl_t) -> ::core::ffi::c_int;
6398}
6399unsafe extern "C" {
6400    pub fn snd_sctl_install(handle: *mut snd_sctl_t) -> ::core::ffi::c_int;
6401}
6402unsafe extern "C" {
6403    pub fn snd_sctl_remove(handle: *mut snd_sctl_t) -> ::core::ffi::c_int;
6404}
6405unsafe extern "C" {
6406    pub fn snd_device_name_hint(
6407        card: ::core::ffi::c_int,
6408        iface: *const ::core::ffi::c_char,
6409        hints: *mut *mut *mut ::core::ffi::c_void,
6410    ) -> ::core::ffi::c_int;
6411}
6412unsafe extern "C" {
6413    pub fn snd_device_name_free_hint(hints: *mut *mut ::core::ffi::c_void) -> ::core::ffi::c_int;
6414}
6415unsafe extern "C" {
6416    pub fn snd_device_name_get_hint(
6417        hint: *const ::core::ffi::c_void,
6418        id: *const ::core::ffi::c_char,
6419    ) -> *mut ::core::ffi::c_char;
6420}
6421#[repr(C)]
6422#[derive(Debug, Copy, Clone)]
6423pub struct _snd_mixer {
6424    _unused: [u8; 0],
6425}
6426pub type snd_mixer_t = _snd_mixer;
6427#[repr(C)]
6428#[derive(Debug, Copy, Clone)]
6429pub struct _snd_mixer_class {
6430    _unused: [u8; 0],
6431}
6432pub type snd_mixer_class_t = _snd_mixer_class;
6433#[repr(C)]
6434#[derive(Debug, Copy, Clone)]
6435pub struct _snd_mixer_elem {
6436    _unused: [u8; 0],
6437}
6438pub type snd_mixer_elem_t = _snd_mixer_elem;
6439pub type snd_mixer_callback_t = ::core::option::Option<
6440    unsafe extern "C" fn(
6441        ctl: *mut snd_mixer_t,
6442        mask: ::core::ffi::c_uint,
6443        elem: *mut snd_mixer_elem_t,
6444    ) -> ::core::ffi::c_int,
6445>;
6446pub type snd_mixer_elem_callback_t = ::core::option::Option<
6447    unsafe extern "C" fn(
6448        elem: *mut snd_mixer_elem_t,
6449        mask: ::core::ffi::c_uint,
6450    ) -> ::core::ffi::c_int,
6451>;
6452pub type snd_mixer_compare_t = ::core::option::Option<
6453    unsafe extern "C" fn(
6454        e1: *const snd_mixer_elem_t,
6455        e2: *const snd_mixer_elem_t,
6456    ) -> ::core::ffi::c_int,
6457>;
6458pub type snd_mixer_event_t = ::core::option::Option<
6459    unsafe extern "C" fn(
6460        class_: *mut snd_mixer_class_t,
6461        mask: ::core::ffi::c_uint,
6462        helem: *mut snd_hctl_elem_t,
6463        melem: *mut snd_mixer_elem_t,
6464    ) -> ::core::ffi::c_int,
6465>;
6466pub const SND_MIXER_ELEM_SIMPLE: _snd_mixer_elem_type = 0;
6467pub const SND_MIXER_ELEM_LAST: _snd_mixer_elem_type = 0;
6468pub type _snd_mixer_elem_type = ::core::ffi::c_uint;
6469pub use self::_snd_mixer_elem_type as snd_mixer_elem_type_t;
6470unsafe extern "C" {
6471    pub fn snd_mixer_open(
6472        mixer: *mut *mut snd_mixer_t,
6473        mode: ::core::ffi::c_int,
6474    ) -> ::core::ffi::c_int;
6475}
6476unsafe extern "C" {
6477    pub fn snd_mixer_close(mixer: *mut snd_mixer_t) -> ::core::ffi::c_int;
6478}
6479unsafe extern "C" {
6480    pub fn snd_mixer_first_elem(mixer: *mut snd_mixer_t) -> *mut snd_mixer_elem_t;
6481}
6482unsafe extern "C" {
6483    pub fn snd_mixer_last_elem(mixer: *mut snd_mixer_t) -> *mut snd_mixer_elem_t;
6484}
6485unsafe extern "C" {
6486    pub fn snd_mixer_handle_events(mixer: *mut snd_mixer_t) -> ::core::ffi::c_int;
6487}
6488unsafe extern "C" {
6489    pub fn snd_mixer_attach(
6490        mixer: *mut snd_mixer_t,
6491        name: *const ::core::ffi::c_char,
6492    ) -> ::core::ffi::c_int;
6493}
6494unsafe extern "C" {
6495    pub fn snd_mixer_attach_hctl(
6496        mixer: *mut snd_mixer_t,
6497        hctl: *mut snd_hctl_t,
6498    ) -> ::core::ffi::c_int;
6499}
6500unsafe extern "C" {
6501    pub fn snd_mixer_detach(
6502        mixer: *mut snd_mixer_t,
6503        name: *const ::core::ffi::c_char,
6504    ) -> ::core::ffi::c_int;
6505}
6506unsafe extern "C" {
6507    pub fn snd_mixer_detach_hctl(
6508        mixer: *mut snd_mixer_t,
6509        hctl: *mut snd_hctl_t,
6510    ) -> ::core::ffi::c_int;
6511}
6512unsafe extern "C" {
6513    pub fn snd_mixer_get_hctl(
6514        mixer: *mut snd_mixer_t,
6515        name: *const ::core::ffi::c_char,
6516        hctl: *mut *mut snd_hctl_t,
6517    ) -> ::core::ffi::c_int;
6518}
6519unsafe extern "C" {
6520    pub fn snd_mixer_poll_descriptors_count(mixer: *mut snd_mixer_t) -> ::core::ffi::c_int;
6521}
6522unsafe extern "C" {
6523    pub fn snd_mixer_poll_descriptors(
6524        mixer: *mut snd_mixer_t,
6525        pfds: *mut pollfd,
6526        space: ::core::ffi::c_uint,
6527    ) -> ::core::ffi::c_int;
6528}
6529unsafe extern "C" {
6530    pub fn snd_mixer_poll_descriptors_revents(
6531        mixer: *mut snd_mixer_t,
6532        pfds: *mut pollfd,
6533        nfds: ::core::ffi::c_uint,
6534        revents: *mut ::core::ffi::c_ushort,
6535    ) -> ::core::ffi::c_int;
6536}
6537unsafe extern "C" {
6538    pub fn snd_mixer_load(mixer: *mut snd_mixer_t) -> ::core::ffi::c_int;
6539}
6540unsafe extern "C" {
6541    pub fn snd_mixer_free(mixer: *mut snd_mixer_t);
6542}
6543unsafe extern "C" {
6544    pub fn snd_mixer_wait(
6545        mixer: *mut snd_mixer_t,
6546        timeout: ::core::ffi::c_int,
6547    ) -> ::core::ffi::c_int;
6548}
6549unsafe extern "C" {
6550    pub fn snd_mixer_set_compare(
6551        mixer: *mut snd_mixer_t,
6552        msort: snd_mixer_compare_t,
6553    ) -> ::core::ffi::c_int;
6554}
6555unsafe extern "C" {
6556    pub fn snd_mixer_set_callback(obj: *mut snd_mixer_t, val: snd_mixer_callback_t);
6557}
6558unsafe extern "C" {
6559    pub fn snd_mixer_get_callback_private(obj: *const snd_mixer_t) -> *mut ::core::ffi::c_void;
6560}
6561unsafe extern "C" {
6562    pub fn snd_mixer_set_callback_private(obj: *mut snd_mixer_t, val: *mut ::core::ffi::c_void);
6563}
6564unsafe extern "C" {
6565    pub fn snd_mixer_get_count(obj: *const snd_mixer_t) -> ::core::ffi::c_uint;
6566}
6567unsafe extern "C" {
6568    pub fn snd_mixer_class_unregister(clss: *mut snd_mixer_class_t) -> ::core::ffi::c_int;
6569}
6570unsafe extern "C" {
6571    pub fn snd_mixer_elem_next(elem: *mut snd_mixer_elem_t) -> *mut snd_mixer_elem_t;
6572}
6573unsafe extern "C" {
6574    pub fn snd_mixer_elem_prev(elem: *mut snd_mixer_elem_t) -> *mut snd_mixer_elem_t;
6575}
6576unsafe extern "C" {
6577    pub fn snd_mixer_elem_set_callback(obj: *mut snd_mixer_elem_t, val: snd_mixer_elem_callback_t);
6578}
6579unsafe extern "C" {
6580    pub fn snd_mixer_elem_get_callback_private(
6581        obj: *const snd_mixer_elem_t,
6582    ) -> *mut ::core::ffi::c_void;
6583}
6584unsafe extern "C" {
6585    pub fn snd_mixer_elem_set_callback_private(
6586        obj: *mut snd_mixer_elem_t,
6587        val: *mut ::core::ffi::c_void,
6588    );
6589}
6590unsafe extern "C" {
6591    pub fn snd_mixer_elem_get_type(obj: *const snd_mixer_elem_t) -> snd_mixer_elem_type_t;
6592}
6593unsafe extern "C" {
6594    pub fn snd_mixer_class_register(
6595        class_: *mut snd_mixer_class_t,
6596        mixer: *mut snd_mixer_t,
6597    ) -> ::core::ffi::c_int;
6598}
6599unsafe extern "C" {
6600    pub fn snd_mixer_elem_new(
6601        elem: *mut *mut snd_mixer_elem_t,
6602        type_: snd_mixer_elem_type_t,
6603        compare_weight: ::core::ffi::c_int,
6604        private_data: *mut ::core::ffi::c_void,
6605        private_free: ::core::option::Option<unsafe extern "C" fn(elem: *mut snd_mixer_elem_t)>,
6606    ) -> ::core::ffi::c_int;
6607}
6608unsafe extern "C" {
6609    pub fn snd_mixer_elem_add(
6610        elem: *mut snd_mixer_elem_t,
6611        class_: *mut snd_mixer_class_t,
6612    ) -> ::core::ffi::c_int;
6613}
6614unsafe extern "C" {
6615    pub fn snd_mixer_elem_remove(elem: *mut snd_mixer_elem_t) -> ::core::ffi::c_int;
6616}
6617unsafe extern "C" {
6618    pub fn snd_mixer_elem_free(elem: *mut snd_mixer_elem_t);
6619}
6620unsafe extern "C" {
6621    pub fn snd_mixer_elem_info(elem: *mut snd_mixer_elem_t) -> ::core::ffi::c_int;
6622}
6623unsafe extern "C" {
6624    pub fn snd_mixer_elem_value(elem: *mut snd_mixer_elem_t) -> ::core::ffi::c_int;
6625}
6626unsafe extern "C" {
6627    pub fn snd_mixer_elem_attach(
6628        melem: *mut snd_mixer_elem_t,
6629        helem: *mut snd_hctl_elem_t,
6630    ) -> ::core::ffi::c_int;
6631}
6632unsafe extern "C" {
6633    pub fn snd_mixer_elem_detach(
6634        melem: *mut snd_mixer_elem_t,
6635        helem: *mut snd_hctl_elem_t,
6636    ) -> ::core::ffi::c_int;
6637}
6638unsafe extern "C" {
6639    pub fn snd_mixer_elem_empty(melem: *mut snd_mixer_elem_t) -> ::core::ffi::c_int;
6640}
6641unsafe extern "C" {
6642    pub fn snd_mixer_elem_get_private(melem: *const snd_mixer_elem_t) -> *mut ::core::ffi::c_void;
6643}
6644unsafe extern "C" {
6645    pub fn snd_mixer_class_sizeof() -> usize;
6646}
6647unsafe extern "C" {
6648    pub fn snd_mixer_class_malloc(ptr: *mut *mut snd_mixer_class_t) -> ::core::ffi::c_int;
6649}
6650unsafe extern "C" {
6651    pub fn snd_mixer_class_free(obj: *mut snd_mixer_class_t);
6652}
6653unsafe extern "C" {
6654    pub fn snd_mixer_class_copy(dst: *mut snd_mixer_class_t, src: *const snd_mixer_class_t);
6655}
6656unsafe extern "C" {
6657    pub fn snd_mixer_class_get_mixer(class_: *const snd_mixer_class_t) -> *mut snd_mixer_t;
6658}
6659unsafe extern "C" {
6660    pub fn snd_mixer_class_get_event(class_: *const snd_mixer_class_t) -> snd_mixer_event_t;
6661}
6662unsafe extern "C" {
6663    pub fn snd_mixer_class_get_private(
6664        class_: *const snd_mixer_class_t,
6665    ) -> *mut ::core::ffi::c_void;
6666}
6667unsafe extern "C" {
6668    pub fn snd_mixer_class_get_compare(class_: *const snd_mixer_class_t) -> snd_mixer_compare_t;
6669}
6670unsafe extern "C" {
6671    pub fn snd_mixer_class_set_event(
6672        class_: *mut snd_mixer_class_t,
6673        event: snd_mixer_event_t,
6674    ) -> ::core::ffi::c_int;
6675}
6676unsafe extern "C" {
6677    pub fn snd_mixer_class_set_private(
6678        class_: *mut snd_mixer_class_t,
6679        private_data: *mut ::core::ffi::c_void,
6680    ) -> ::core::ffi::c_int;
6681}
6682unsafe extern "C" {
6683    pub fn snd_mixer_class_set_private_free(
6684        class_: *mut snd_mixer_class_t,
6685        private_free: ::core::option::Option<unsafe extern "C" fn(arg1: *mut snd_mixer_class_t)>,
6686    ) -> ::core::ffi::c_int;
6687}
6688unsafe extern "C" {
6689    pub fn snd_mixer_class_set_compare(
6690        class_: *mut snd_mixer_class_t,
6691        compare: snd_mixer_compare_t,
6692    ) -> ::core::ffi::c_int;
6693}
6694pub const SND_MIXER_SCHN_UNKNOWN: _snd_mixer_selem_channel_id = -1;
6695pub const SND_MIXER_SCHN_FRONT_LEFT: _snd_mixer_selem_channel_id = 0;
6696pub const SND_MIXER_SCHN_FRONT_RIGHT: _snd_mixer_selem_channel_id = 1;
6697pub const SND_MIXER_SCHN_REAR_LEFT: _snd_mixer_selem_channel_id = 2;
6698pub const SND_MIXER_SCHN_REAR_RIGHT: _snd_mixer_selem_channel_id = 3;
6699pub const SND_MIXER_SCHN_FRONT_CENTER: _snd_mixer_selem_channel_id = 4;
6700pub const SND_MIXER_SCHN_WOOFER: _snd_mixer_selem_channel_id = 5;
6701pub const SND_MIXER_SCHN_SIDE_LEFT: _snd_mixer_selem_channel_id = 6;
6702pub const SND_MIXER_SCHN_SIDE_RIGHT: _snd_mixer_selem_channel_id = 7;
6703pub const SND_MIXER_SCHN_REAR_CENTER: _snd_mixer_selem_channel_id = 8;
6704pub const SND_MIXER_SCHN_LAST: _snd_mixer_selem_channel_id = 31;
6705pub const SND_MIXER_SCHN_MONO: _snd_mixer_selem_channel_id = 0;
6706pub type _snd_mixer_selem_channel_id = ::core::ffi::c_int;
6707pub use self::_snd_mixer_selem_channel_id as snd_mixer_selem_channel_id_t;
6708pub const SND_MIXER_SABSTRACT_NONE: snd_mixer_selem_regopt_abstract = 0;
6709pub const SND_MIXER_SABSTRACT_BASIC: snd_mixer_selem_regopt_abstract = 1;
6710pub type snd_mixer_selem_regopt_abstract = ::core::ffi::c_uint;
6711#[repr(C)]
6712#[derive(Debug, Copy, Clone)]
6713pub struct snd_mixer_selem_regopt {
6714    pub ver: ::core::ffi::c_int,
6715    pub abstract_: snd_mixer_selem_regopt_abstract,
6716    pub device: *const ::core::ffi::c_char,
6717    pub playback_pcm: *mut snd_pcm_t,
6718    pub capture_pcm: *mut snd_pcm_t,
6719}
6720#[repr(C)]
6721#[derive(Debug, Copy, Clone)]
6722pub struct _snd_mixer_selem_id {
6723    _unused: [u8; 0],
6724}
6725pub type snd_mixer_selem_id_t = _snd_mixer_selem_id;
6726unsafe extern "C" {
6727    pub fn snd_mixer_selem_channel_name(
6728        channel: snd_mixer_selem_channel_id_t,
6729    ) -> *const ::core::ffi::c_char;
6730}
6731unsafe extern "C" {
6732    pub fn snd_mixer_selem_register(
6733        mixer: *mut snd_mixer_t,
6734        options: *mut snd_mixer_selem_regopt,
6735        classp: *mut *mut snd_mixer_class_t,
6736    ) -> ::core::ffi::c_int;
6737}
6738unsafe extern "C" {
6739    pub fn snd_mixer_selem_get_id(element: *mut snd_mixer_elem_t, id: *mut snd_mixer_selem_id_t);
6740}
6741unsafe extern "C" {
6742    pub fn snd_mixer_selem_get_name(elem: *mut snd_mixer_elem_t) -> *const ::core::ffi::c_char;
6743}
6744unsafe extern "C" {
6745    pub fn snd_mixer_selem_get_index(elem: *mut snd_mixer_elem_t) -> ::core::ffi::c_uint;
6746}
6747unsafe extern "C" {
6748    pub fn snd_mixer_find_selem(
6749        mixer: *mut snd_mixer_t,
6750        id: *const snd_mixer_selem_id_t,
6751    ) -> *mut snd_mixer_elem_t;
6752}
6753unsafe extern "C" {
6754    pub fn snd_mixer_selem_is_active(elem: *mut snd_mixer_elem_t) -> ::core::ffi::c_int;
6755}
6756unsafe extern "C" {
6757    pub fn snd_mixer_selem_is_playback_mono(elem: *mut snd_mixer_elem_t) -> ::core::ffi::c_int;
6758}
6759unsafe extern "C" {
6760    pub fn snd_mixer_selem_has_playback_channel(
6761        obj: *mut snd_mixer_elem_t,
6762        channel: snd_mixer_selem_channel_id_t,
6763    ) -> ::core::ffi::c_int;
6764}
6765unsafe extern "C" {
6766    pub fn snd_mixer_selem_is_capture_mono(elem: *mut snd_mixer_elem_t) -> ::core::ffi::c_int;
6767}
6768unsafe extern "C" {
6769    pub fn snd_mixer_selem_has_capture_channel(
6770        obj: *mut snd_mixer_elem_t,
6771        channel: snd_mixer_selem_channel_id_t,
6772    ) -> ::core::ffi::c_int;
6773}
6774unsafe extern "C" {
6775    pub fn snd_mixer_selem_get_capture_group(elem: *mut snd_mixer_elem_t) -> ::core::ffi::c_int;
6776}
6777unsafe extern "C" {
6778    pub fn snd_mixer_selem_has_common_volume(elem: *mut snd_mixer_elem_t) -> ::core::ffi::c_int;
6779}
6780unsafe extern "C" {
6781    pub fn snd_mixer_selem_has_playback_volume(elem: *mut snd_mixer_elem_t) -> ::core::ffi::c_int;
6782}
6783unsafe extern "C" {
6784    pub fn snd_mixer_selem_has_playback_volume_joined(
6785        elem: *mut snd_mixer_elem_t,
6786    ) -> ::core::ffi::c_int;
6787}
6788unsafe extern "C" {
6789    pub fn snd_mixer_selem_has_capture_volume(elem: *mut snd_mixer_elem_t) -> ::core::ffi::c_int;
6790}
6791unsafe extern "C" {
6792    pub fn snd_mixer_selem_has_capture_volume_joined(
6793        elem: *mut snd_mixer_elem_t,
6794    ) -> ::core::ffi::c_int;
6795}
6796unsafe extern "C" {
6797    pub fn snd_mixer_selem_has_common_switch(elem: *mut snd_mixer_elem_t) -> ::core::ffi::c_int;
6798}
6799unsafe extern "C" {
6800    pub fn snd_mixer_selem_has_playback_switch(elem: *mut snd_mixer_elem_t) -> ::core::ffi::c_int;
6801}
6802unsafe extern "C" {
6803    pub fn snd_mixer_selem_has_playback_switch_joined(
6804        elem: *mut snd_mixer_elem_t,
6805    ) -> ::core::ffi::c_int;
6806}
6807unsafe extern "C" {
6808    pub fn snd_mixer_selem_has_capture_switch(elem: *mut snd_mixer_elem_t) -> ::core::ffi::c_int;
6809}
6810unsafe extern "C" {
6811    pub fn snd_mixer_selem_has_capture_switch_joined(
6812        elem: *mut snd_mixer_elem_t,
6813    ) -> ::core::ffi::c_int;
6814}
6815unsafe extern "C" {
6816    pub fn snd_mixer_selem_has_capture_switch_exclusive(
6817        elem: *mut snd_mixer_elem_t,
6818    ) -> ::core::ffi::c_int;
6819}
6820unsafe extern "C" {
6821    pub fn snd_mixer_selem_ask_playback_vol_dB(
6822        elem: *mut snd_mixer_elem_t,
6823        value: ::core::ffi::c_long,
6824        dBvalue: *mut ::core::ffi::c_long,
6825    ) -> ::core::ffi::c_int;
6826}
6827unsafe extern "C" {
6828    pub fn snd_mixer_selem_ask_capture_vol_dB(
6829        elem: *mut snd_mixer_elem_t,
6830        value: ::core::ffi::c_long,
6831        dBvalue: *mut ::core::ffi::c_long,
6832    ) -> ::core::ffi::c_int;
6833}
6834unsafe extern "C" {
6835    pub fn snd_mixer_selem_ask_playback_dB_vol(
6836        elem: *mut snd_mixer_elem_t,
6837        dBvalue: ::core::ffi::c_long,
6838        dir: ::core::ffi::c_int,
6839        value: *mut ::core::ffi::c_long,
6840    ) -> ::core::ffi::c_int;
6841}
6842unsafe extern "C" {
6843    pub fn snd_mixer_selem_ask_capture_dB_vol(
6844        elem: *mut snd_mixer_elem_t,
6845        dBvalue: ::core::ffi::c_long,
6846        dir: ::core::ffi::c_int,
6847        value: *mut ::core::ffi::c_long,
6848    ) -> ::core::ffi::c_int;
6849}
6850unsafe extern "C" {
6851    pub fn snd_mixer_selem_get_playback_volume(
6852        elem: *mut snd_mixer_elem_t,
6853        channel: snd_mixer_selem_channel_id_t,
6854        value: *mut ::core::ffi::c_long,
6855    ) -> ::core::ffi::c_int;
6856}
6857unsafe extern "C" {
6858    pub fn snd_mixer_selem_get_capture_volume(
6859        elem: *mut snd_mixer_elem_t,
6860        channel: snd_mixer_selem_channel_id_t,
6861        value: *mut ::core::ffi::c_long,
6862    ) -> ::core::ffi::c_int;
6863}
6864unsafe extern "C" {
6865    pub fn snd_mixer_selem_get_playback_dB(
6866        elem: *mut snd_mixer_elem_t,
6867        channel: snd_mixer_selem_channel_id_t,
6868        value: *mut ::core::ffi::c_long,
6869    ) -> ::core::ffi::c_int;
6870}
6871unsafe extern "C" {
6872    pub fn snd_mixer_selem_get_capture_dB(
6873        elem: *mut snd_mixer_elem_t,
6874        channel: snd_mixer_selem_channel_id_t,
6875        value: *mut ::core::ffi::c_long,
6876    ) -> ::core::ffi::c_int;
6877}
6878unsafe extern "C" {
6879    pub fn snd_mixer_selem_get_playback_switch(
6880        elem: *mut snd_mixer_elem_t,
6881        channel: snd_mixer_selem_channel_id_t,
6882        value: *mut ::core::ffi::c_int,
6883    ) -> ::core::ffi::c_int;
6884}
6885unsafe extern "C" {
6886    pub fn snd_mixer_selem_get_capture_switch(
6887        elem: *mut snd_mixer_elem_t,
6888        channel: snd_mixer_selem_channel_id_t,
6889        value: *mut ::core::ffi::c_int,
6890    ) -> ::core::ffi::c_int;
6891}
6892unsafe extern "C" {
6893    pub fn snd_mixer_selem_set_playback_volume(
6894        elem: *mut snd_mixer_elem_t,
6895        channel: snd_mixer_selem_channel_id_t,
6896        value: ::core::ffi::c_long,
6897    ) -> ::core::ffi::c_int;
6898}
6899unsafe extern "C" {
6900    pub fn snd_mixer_selem_set_capture_volume(
6901        elem: *mut snd_mixer_elem_t,
6902        channel: snd_mixer_selem_channel_id_t,
6903        value: ::core::ffi::c_long,
6904    ) -> ::core::ffi::c_int;
6905}
6906unsafe extern "C" {
6907    pub fn snd_mixer_selem_set_playback_dB(
6908        elem: *mut snd_mixer_elem_t,
6909        channel: snd_mixer_selem_channel_id_t,
6910        value: ::core::ffi::c_long,
6911        dir: ::core::ffi::c_int,
6912    ) -> ::core::ffi::c_int;
6913}
6914unsafe extern "C" {
6915    pub fn snd_mixer_selem_set_capture_dB(
6916        elem: *mut snd_mixer_elem_t,
6917        channel: snd_mixer_selem_channel_id_t,
6918        value: ::core::ffi::c_long,
6919        dir: ::core::ffi::c_int,
6920    ) -> ::core::ffi::c_int;
6921}
6922unsafe extern "C" {
6923    pub fn snd_mixer_selem_set_playback_volume_all(
6924        elem: *mut snd_mixer_elem_t,
6925        value: ::core::ffi::c_long,
6926    ) -> ::core::ffi::c_int;
6927}
6928unsafe extern "C" {
6929    pub fn snd_mixer_selem_set_capture_volume_all(
6930        elem: *mut snd_mixer_elem_t,
6931        value: ::core::ffi::c_long,
6932    ) -> ::core::ffi::c_int;
6933}
6934unsafe extern "C" {
6935    pub fn snd_mixer_selem_set_playback_dB_all(
6936        elem: *mut snd_mixer_elem_t,
6937        value: ::core::ffi::c_long,
6938        dir: ::core::ffi::c_int,
6939    ) -> ::core::ffi::c_int;
6940}
6941unsafe extern "C" {
6942    pub fn snd_mixer_selem_set_capture_dB_all(
6943        elem: *mut snd_mixer_elem_t,
6944        value: ::core::ffi::c_long,
6945        dir: ::core::ffi::c_int,
6946    ) -> ::core::ffi::c_int;
6947}
6948unsafe extern "C" {
6949    pub fn snd_mixer_selem_set_playback_switch(
6950        elem: *mut snd_mixer_elem_t,
6951        channel: snd_mixer_selem_channel_id_t,
6952        value: ::core::ffi::c_int,
6953    ) -> ::core::ffi::c_int;
6954}
6955unsafe extern "C" {
6956    pub fn snd_mixer_selem_set_capture_switch(
6957        elem: *mut snd_mixer_elem_t,
6958        channel: snd_mixer_selem_channel_id_t,
6959        value: ::core::ffi::c_int,
6960    ) -> ::core::ffi::c_int;
6961}
6962unsafe extern "C" {
6963    pub fn snd_mixer_selem_set_playback_switch_all(
6964        elem: *mut snd_mixer_elem_t,
6965        value: ::core::ffi::c_int,
6966    ) -> ::core::ffi::c_int;
6967}
6968unsafe extern "C" {
6969    pub fn snd_mixer_selem_set_capture_switch_all(
6970        elem: *mut snd_mixer_elem_t,
6971        value: ::core::ffi::c_int,
6972    ) -> ::core::ffi::c_int;
6973}
6974unsafe extern "C" {
6975    pub fn snd_mixer_selem_get_playback_volume_range(
6976        elem: *mut snd_mixer_elem_t,
6977        min: *mut ::core::ffi::c_long,
6978        max: *mut ::core::ffi::c_long,
6979    ) -> ::core::ffi::c_int;
6980}
6981unsafe extern "C" {
6982    pub fn snd_mixer_selem_get_playback_dB_range(
6983        elem: *mut snd_mixer_elem_t,
6984        min: *mut ::core::ffi::c_long,
6985        max: *mut ::core::ffi::c_long,
6986    ) -> ::core::ffi::c_int;
6987}
6988unsafe extern "C" {
6989    pub fn snd_mixer_selem_set_playback_volume_range(
6990        elem: *mut snd_mixer_elem_t,
6991        min: ::core::ffi::c_long,
6992        max: ::core::ffi::c_long,
6993    ) -> ::core::ffi::c_int;
6994}
6995unsafe extern "C" {
6996    pub fn snd_mixer_selem_get_capture_volume_range(
6997        elem: *mut snd_mixer_elem_t,
6998        min: *mut ::core::ffi::c_long,
6999        max: *mut ::core::ffi::c_long,
7000    ) -> ::core::ffi::c_int;
7001}
7002unsafe extern "C" {
7003    pub fn snd_mixer_selem_get_capture_dB_range(
7004        elem: *mut snd_mixer_elem_t,
7005        min: *mut ::core::ffi::c_long,
7006        max: *mut ::core::ffi::c_long,
7007    ) -> ::core::ffi::c_int;
7008}
7009unsafe extern "C" {
7010    pub fn snd_mixer_selem_set_capture_volume_range(
7011        elem: *mut snd_mixer_elem_t,
7012        min: ::core::ffi::c_long,
7013        max: ::core::ffi::c_long,
7014    ) -> ::core::ffi::c_int;
7015}
7016unsafe extern "C" {
7017    pub fn snd_mixer_selem_is_enumerated(elem: *mut snd_mixer_elem_t) -> ::core::ffi::c_int;
7018}
7019unsafe extern "C" {
7020    pub fn snd_mixer_selem_is_enum_playback(elem: *mut snd_mixer_elem_t) -> ::core::ffi::c_int;
7021}
7022unsafe extern "C" {
7023    pub fn snd_mixer_selem_is_enum_capture(elem: *mut snd_mixer_elem_t) -> ::core::ffi::c_int;
7024}
7025unsafe extern "C" {
7026    pub fn snd_mixer_selem_get_enum_items(elem: *mut snd_mixer_elem_t) -> ::core::ffi::c_int;
7027}
7028unsafe extern "C" {
7029    pub fn snd_mixer_selem_get_enum_item_name(
7030        elem: *mut snd_mixer_elem_t,
7031        idx: ::core::ffi::c_uint,
7032        maxlen: usize,
7033        str_: *mut ::core::ffi::c_char,
7034    ) -> ::core::ffi::c_int;
7035}
7036unsafe extern "C" {
7037    pub fn snd_mixer_selem_get_enum_item(
7038        elem: *mut snd_mixer_elem_t,
7039        channel: snd_mixer_selem_channel_id_t,
7040        idxp: *mut ::core::ffi::c_uint,
7041    ) -> ::core::ffi::c_int;
7042}
7043unsafe extern "C" {
7044    pub fn snd_mixer_selem_set_enum_item(
7045        elem: *mut snd_mixer_elem_t,
7046        channel: snd_mixer_selem_channel_id_t,
7047        idx: ::core::ffi::c_uint,
7048    ) -> ::core::ffi::c_int;
7049}
7050unsafe extern "C" {
7051    pub fn snd_mixer_selem_id_sizeof() -> usize;
7052}
7053unsafe extern "C" {
7054    pub fn snd_mixer_selem_id_malloc(ptr: *mut *mut snd_mixer_selem_id_t) -> ::core::ffi::c_int;
7055}
7056unsafe extern "C" {
7057    pub fn snd_mixer_selem_id_free(obj: *mut snd_mixer_selem_id_t);
7058}
7059unsafe extern "C" {
7060    pub fn snd_mixer_selem_id_copy(
7061        dst: *mut snd_mixer_selem_id_t,
7062        src: *const snd_mixer_selem_id_t,
7063    );
7064}
7065unsafe extern "C" {
7066    pub fn snd_mixer_selem_id_get_name(
7067        obj: *const snd_mixer_selem_id_t,
7068    ) -> *const ::core::ffi::c_char;
7069}
7070unsafe extern "C" {
7071    pub fn snd_mixer_selem_id_get_index(obj: *const snd_mixer_selem_id_t) -> ::core::ffi::c_uint;
7072}
7073unsafe extern "C" {
7074    pub fn snd_mixer_selem_id_set_name(
7075        obj: *mut snd_mixer_selem_id_t,
7076        val: *const ::core::ffi::c_char,
7077    );
7078}
7079unsafe extern "C" {
7080    pub fn snd_mixer_selem_id_set_index(obj: *mut snd_mixer_selem_id_t, val: ::core::ffi::c_uint);
7081}
7082unsafe extern "C" {
7083    pub fn snd_mixer_selem_id_parse(
7084        dst: *mut snd_mixer_selem_id_t,
7085        str_: *const ::core::ffi::c_char,
7086    ) -> ::core::ffi::c_int;
7087}
7088#[repr(C, packed)]
7089#[derive(Debug, Copy, Clone)]
7090pub struct _snd_ump_msg_hdr {
7091    pub byte2: u8,
7092    pub byte1: u8,
7093    pub _bitfield_align_1: [u8; 0],
7094    pub _bitfield_1: __BindgenBitfieldUnit<[u8; 2usize]>,
7095}
7096impl _snd_ump_msg_hdr {
7097    #[inline]
7098    pub fn channel(&self) -> u8 {
7099        unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 4u8) as u8) }
7100    }
7101    #[inline]
7102    pub fn set_channel(&mut self, val: u8) {
7103        unsafe {
7104            let val: u8 = ::core::mem::transmute(val);
7105            self._bitfield_1.set(0usize, 4u8, val as u64)
7106        }
7107    }
7108    #[inline]
7109    pub unsafe fn channel_raw(this: *const Self) -> u8 {
7110        unsafe {
7111            ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(
7112                ::core::ptr::addr_of!((*this)._bitfield_1),
7113                0usize,
7114                4u8,
7115            ) as u8)
7116        }
7117    }
7118    #[inline]
7119    pub unsafe fn set_channel_raw(this: *mut Self, val: u8) {
7120        unsafe {
7121            let val: u8 = ::core::mem::transmute(val);
7122            <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(
7123                ::core::ptr::addr_of_mut!((*this)._bitfield_1),
7124                0usize,
7125                4u8,
7126                val as u64,
7127            )
7128        }
7129    }
7130    #[inline]
7131    pub fn status(&self) -> u8 {
7132        unsafe { ::core::mem::transmute(self._bitfield_1.get(4usize, 4u8) as u8) }
7133    }
7134    #[inline]
7135    pub fn set_status(&mut self, val: u8) {
7136        unsafe {
7137            let val: u8 = ::core::mem::transmute(val);
7138            self._bitfield_1.set(4usize, 4u8, val as u64)
7139        }
7140    }
7141    #[inline]
7142    pub unsafe fn status_raw(this: *const Self) -> u8 {
7143        unsafe {
7144            ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(
7145                ::core::ptr::addr_of!((*this)._bitfield_1),
7146                4usize,
7147                4u8,
7148            ) as u8)
7149        }
7150    }
7151    #[inline]
7152    pub unsafe fn set_status_raw(this: *mut Self, val: u8) {
7153        unsafe {
7154            let val: u8 = ::core::mem::transmute(val);
7155            <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(
7156                ::core::ptr::addr_of_mut!((*this)._bitfield_1),
7157                4usize,
7158                4u8,
7159                val as u64,
7160            )
7161        }
7162    }
7163    #[inline]
7164    pub fn group(&self) -> u8 {
7165        unsafe { ::core::mem::transmute(self._bitfield_1.get(8usize, 4u8) as u8) }
7166    }
7167    #[inline]
7168    pub fn set_group(&mut self, val: u8) {
7169        unsafe {
7170            let val: u8 = ::core::mem::transmute(val);
7171            self._bitfield_1.set(8usize, 4u8, val as u64)
7172        }
7173    }
7174    #[inline]
7175    pub unsafe fn group_raw(this: *const Self) -> u8 {
7176        unsafe {
7177            ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(
7178                ::core::ptr::addr_of!((*this)._bitfield_1),
7179                8usize,
7180                4u8,
7181            ) as u8)
7182        }
7183    }
7184    #[inline]
7185    pub unsafe fn set_group_raw(this: *mut Self, val: u8) {
7186        unsafe {
7187            let val: u8 = ::core::mem::transmute(val);
7188            <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(
7189                ::core::ptr::addr_of_mut!((*this)._bitfield_1),
7190                8usize,
7191                4u8,
7192                val as u64,
7193            )
7194        }
7195    }
7196    #[inline]
7197    pub fn type_(&self) -> u8 {
7198        unsafe { ::core::mem::transmute(self._bitfield_1.get(12usize, 4u8) as u8) }
7199    }
7200    #[inline]
7201    pub fn set_type(&mut self, val: u8) {
7202        unsafe {
7203            let val: u8 = ::core::mem::transmute(val);
7204            self._bitfield_1.set(12usize, 4u8, val as u64)
7205        }
7206    }
7207    #[inline]
7208    pub unsafe fn type__raw(this: *const Self) -> u8 {
7209        unsafe {
7210            ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(
7211                ::core::ptr::addr_of!((*this)._bitfield_1),
7212                12usize,
7213                4u8,
7214            ) as u8)
7215        }
7216    }
7217    #[inline]
7218    pub unsafe fn set_type_raw(this: *mut Self, val: u8) {
7219        unsafe {
7220            let val: u8 = ::core::mem::transmute(val);
7221            <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(
7222                ::core::ptr::addr_of_mut!((*this)._bitfield_1),
7223                12usize,
7224                4u8,
7225                val as u64,
7226            )
7227        }
7228    }
7229    #[inline]
7230    pub fn new_bitfield_1(
7231        channel: u8,
7232        status: u8,
7233        group: u8,
7234        type_: u8,
7235    ) -> __BindgenBitfieldUnit<[u8; 2usize]> {
7236        let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 2usize]> = Default::default();
7237        __bindgen_bitfield_unit.set(0usize, 4u8, {
7238            let channel: u8 = unsafe { ::core::mem::transmute(channel) };
7239            channel as u64
7240        });
7241        __bindgen_bitfield_unit.set(4usize, 4u8, {
7242            let status: u8 = unsafe { ::core::mem::transmute(status) };
7243            status as u64
7244        });
7245        __bindgen_bitfield_unit.set(8usize, 4u8, {
7246            let group: u8 = unsafe { ::core::mem::transmute(group) };
7247            group as u64
7248        });
7249        __bindgen_bitfield_unit.set(12usize, 4u8, {
7250            let type_: u8 = unsafe { ::core::mem::transmute(type_) };
7251            type_ as u64
7252        });
7253        __bindgen_bitfield_unit
7254    }
7255}
7256pub type snd_ump_msg_hdr_t = _snd_ump_msg_hdr;
7257#[repr(C, packed)]
7258#[derive(Debug, Copy, Clone)]
7259pub struct _snd_ump_msg_midi1_note {
7260    pub velocity: u8,
7261    pub note: u8,
7262    pub _bitfield_align_1: [u8; 0],
7263    pub _bitfield_1: __BindgenBitfieldUnit<[u8; 2usize]>,
7264}
7265impl _snd_ump_msg_midi1_note {
7266    #[inline]
7267    pub fn channel(&self) -> u8 {
7268        unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 4u8) as u8) }
7269    }
7270    #[inline]
7271    pub fn set_channel(&mut self, val: u8) {
7272        unsafe {
7273            let val: u8 = ::core::mem::transmute(val);
7274            self._bitfield_1.set(0usize, 4u8, val as u64)
7275        }
7276    }
7277    #[inline]
7278    pub unsafe fn channel_raw(this: *const Self) -> u8 {
7279        unsafe {
7280            ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(
7281                ::core::ptr::addr_of!((*this)._bitfield_1),
7282                0usize,
7283                4u8,
7284            ) as u8)
7285        }
7286    }
7287    #[inline]
7288    pub unsafe fn set_channel_raw(this: *mut Self, val: u8) {
7289        unsafe {
7290            let val: u8 = ::core::mem::transmute(val);
7291            <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(
7292                ::core::ptr::addr_of_mut!((*this)._bitfield_1),
7293                0usize,
7294                4u8,
7295                val as u64,
7296            )
7297        }
7298    }
7299    #[inline]
7300    pub fn status(&self) -> u8 {
7301        unsafe { ::core::mem::transmute(self._bitfield_1.get(4usize, 4u8) as u8) }
7302    }
7303    #[inline]
7304    pub fn set_status(&mut self, val: u8) {
7305        unsafe {
7306            let val: u8 = ::core::mem::transmute(val);
7307            self._bitfield_1.set(4usize, 4u8, val as u64)
7308        }
7309    }
7310    #[inline]
7311    pub unsafe fn status_raw(this: *const Self) -> u8 {
7312        unsafe {
7313            ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(
7314                ::core::ptr::addr_of!((*this)._bitfield_1),
7315                4usize,
7316                4u8,
7317            ) as u8)
7318        }
7319    }
7320    #[inline]
7321    pub unsafe fn set_status_raw(this: *mut Self, val: u8) {
7322        unsafe {
7323            let val: u8 = ::core::mem::transmute(val);
7324            <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(
7325                ::core::ptr::addr_of_mut!((*this)._bitfield_1),
7326                4usize,
7327                4u8,
7328                val as u64,
7329            )
7330        }
7331    }
7332    #[inline]
7333    pub fn group(&self) -> u8 {
7334        unsafe { ::core::mem::transmute(self._bitfield_1.get(8usize, 4u8) as u8) }
7335    }
7336    #[inline]
7337    pub fn set_group(&mut self, val: u8) {
7338        unsafe {
7339            let val: u8 = ::core::mem::transmute(val);
7340            self._bitfield_1.set(8usize, 4u8, val as u64)
7341        }
7342    }
7343    #[inline]
7344    pub unsafe fn group_raw(this: *const Self) -> u8 {
7345        unsafe {
7346            ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(
7347                ::core::ptr::addr_of!((*this)._bitfield_1),
7348                8usize,
7349                4u8,
7350            ) as u8)
7351        }
7352    }
7353    #[inline]
7354    pub unsafe fn set_group_raw(this: *mut Self, val: u8) {
7355        unsafe {
7356            let val: u8 = ::core::mem::transmute(val);
7357            <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(
7358                ::core::ptr::addr_of_mut!((*this)._bitfield_1),
7359                8usize,
7360                4u8,
7361                val as u64,
7362            )
7363        }
7364    }
7365    #[inline]
7366    pub fn type_(&self) -> u8 {
7367        unsafe { ::core::mem::transmute(self._bitfield_1.get(12usize, 4u8) as u8) }
7368    }
7369    #[inline]
7370    pub fn set_type(&mut self, val: u8) {
7371        unsafe {
7372            let val: u8 = ::core::mem::transmute(val);
7373            self._bitfield_1.set(12usize, 4u8, val as u64)
7374        }
7375    }
7376    #[inline]
7377    pub unsafe fn type__raw(this: *const Self) -> u8 {
7378        unsafe {
7379            ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(
7380                ::core::ptr::addr_of!((*this)._bitfield_1),
7381                12usize,
7382                4u8,
7383            ) as u8)
7384        }
7385    }
7386    #[inline]
7387    pub unsafe fn set_type_raw(this: *mut Self, val: u8) {
7388        unsafe {
7389            let val: u8 = ::core::mem::transmute(val);
7390            <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(
7391                ::core::ptr::addr_of_mut!((*this)._bitfield_1),
7392                12usize,
7393                4u8,
7394                val as u64,
7395            )
7396        }
7397    }
7398    #[inline]
7399    pub fn new_bitfield_1(
7400        channel: u8,
7401        status: u8,
7402        group: u8,
7403        type_: u8,
7404    ) -> __BindgenBitfieldUnit<[u8; 2usize]> {
7405        let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 2usize]> = Default::default();
7406        __bindgen_bitfield_unit.set(0usize, 4u8, {
7407            let channel: u8 = unsafe { ::core::mem::transmute(channel) };
7408            channel as u64
7409        });
7410        __bindgen_bitfield_unit.set(4usize, 4u8, {
7411            let status: u8 = unsafe { ::core::mem::transmute(status) };
7412            status as u64
7413        });
7414        __bindgen_bitfield_unit.set(8usize, 4u8, {
7415            let group: u8 = unsafe { ::core::mem::transmute(group) };
7416            group as u64
7417        });
7418        __bindgen_bitfield_unit.set(12usize, 4u8, {
7419            let type_: u8 = unsafe { ::core::mem::transmute(type_) };
7420            type_ as u64
7421        });
7422        __bindgen_bitfield_unit
7423    }
7424}
7425pub type snd_ump_msg_midi1_note_t = _snd_ump_msg_midi1_note;
7426#[repr(C, packed)]
7427#[derive(Debug, Copy, Clone)]
7428pub struct _snd_ump_msg_midi1_paf {
7429    pub data: u8,
7430    pub note: u8,
7431    pub _bitfield_align_1: [u8; 0],
7432    pub _bitfield_1: __BindgenBitfieldUnit<[u8; 2usize]>,
7433}
7434impl _snd_ump_msg_midi1_paf {
7435    #[inline]
7436    pub fn channel(&self) -> u8 {
7437        unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 4u8) as u8) }
7438    }
7439    #[inline]
7440    pub fn set_channel(&mut self, val: u8) {
7441        unsafe {
7442            let val: u8 = ::core::mem::transmute(val);
7443            self._bitfield_1.set(0usize, 4u8, val as u64)
7444        }
7445    }
7446    #[inline]
7447    pub unsafe fn channel_raw(this: *const Self) -> u8 {
7448        unsafe {
7449            ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(
7450                ::core::ptr::addr_of!((*this)._bitfield_1),
7451                0usize,
7452                4u8,
7453            ) as u8)
7454        }
7455    }
7456    #[inline]
7457    pub unsafe fn set_channel_raw(this: *mut Self, val: u8) {
7458        unsafe {
7459            let val: u8 = ::core::mem::transmute(val);
7460            <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(
7461                ::core::ptr::addr_of_mut!((*this)._bitfield_1),
7462                0usize,
7463                4u8,
7464                val as u64,
7465            )
7466        }
7467    }
7468    #[inline]
7469    pub fn status(&self) -> u8 {
7470        unsafe { ::core::mem::transmute(self._bitfield_1.get(4usize, 4u8) as u8) }
7471    }
7472    #[inline]
7473    pub fn set_status(&mut self, val: u8) {
7474        unsafe {
7475            let val: u8 = ::core::mem::transmute(val);
7476            self._bitfield_1.set(4usize, 4u8, val as u64)
7477        }
7478    }
7479    #[inline]
7480    pub unsafe fn status_raw(this: *const Self) -> u8 {
7481        unsafe {
7482            ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(
7483                ::core::ptr::addr_of!((*this)._bitfield_1),
7484                4usize,
7485                4u8,
7486            ) as u8)
7487        }
7488    }
7489    #[inline]
7490    pub unsafe fn set_status_raw(this: *mut Self, val: u8) {
7491        unsafe {
7492            let val: u8 = ::core::mem::transmute(val);
7493            <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(
7494                ::core::ptr::addr_of_mut!((*this)._bitfield_1),
7495                4usize,
7496                4u8,
7497                val as u64,
7498            )
7499        }
7500    }
7501    #[inline]
7502    pub fn group(&self) -> u8 {
7503        unsafe { ::core::mem::transmute(self._bitfield_1.get(8usize, 4u8) as u8) }
7504    }
7505    #[inline]
7506    pub fn set_group(&mut self, val: u8) {
7507        unsafe {
7508            let val: u8 = ::core::mem::transmute(val);
7509            self._bitfield_1.set(8usize, 4u8, val as u64)
7510        }
7511    }
7512    #[inline]
7513    pub unsafe fn group_raw(this: *const Self) -> u8 {
7514        unsafe {
7515            ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(
7516                ::core::ptr::addr_of!((*this)._bitfield_1),
7517                8usize,
7518                4u8,
7519            ) as u8)
7520        }
7521    }
7522    #[inline]
7523    pub unsafe fn set_group_raw(this: *mut Self, val: u8) {
7524        unsafe {
7525            let val: u8 = ::core::mem::transmute(val);
7526            <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(
7527                ::core::ptr::addr_of_mut!((*this)._bitfield_1),
7528                8usize,
7529                4u8,
7530                val as u64,
7531            )
7532        }
7533    }
7534    #[inline]
7535    pub fn type_(&self) -> u8 {
7536        unsafe { ::core::mem::transmute(self._bitfield_1.get(12usize, 4u8) as u8) }
7537    }
7538    #[inline]
7539    pub fn set_type(&mut self, val: u8) {
7540        unsafe {
7541            let val: u8 = ::core::mem::transmute(val);
7542            self._bitfield_1.set(12usize, 4u8, val as u64)
7543        }
7544    }
7545    #[inline]
7546    pub unsafe fn type__raw(this: *const Self) -> u8 {
7547        unsafe {
7548            ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(
7549                ::core::ptr::addr_of!((*this)._bitfield_1),
7550                12usize,
7551                4u8,
7552            ) as u8)
7553        }
7554    }
7555    #[inline]
7556    pub unsafe fn set_type_raw(this: *mut Self, val: u8) {
7557        unsafe {
7558            let val: u8 = ::core::mem::transmute(val);
7559            <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(
7560                ::core::ptr::addr_of_mut!((*this)._bitfield_1),
7561                12usize,
7562                4u8,
7563                val as u64,
7564            )
7565        }
7566    }
7567    #[inline]
7568    pub fn new_bitfield_1(
7569        channel: u8,
7570        status: u8,
7571        group: u8,
7572        type_: u8,
7573    ) -> __BindgenBitfieldUnit<[u8; 2usize]> {
7574        let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 2usize]> = Default::default();
7575        __bindgen_bitfield_unit.set(0usize, 4u8, {
7576            let channel: u8 = unsafe { ::core::mem::transmute(channel) };
7577            channel as u64
7578        });
7579        __bindgen_bitfield_unit.set(4usize, 4u8, {
7580            let status: u8 = unsafe { ::core::mem::transmute(status) };
7581            status as u64
7582        });
7583        __bindgen_bitfield_unit.set(8usize, 4u8, {
7584            let group: u8 = unsafe { ::core::mem::transmute(group) };
7585            group as u64
7586        });
7587        __bindgen_bitfield_unit.set(12usize, 4u8, {
7588            let type_: u8 = unsafe { ::core::mem::transmute(type_) };
7589            type_ as u64
7590        });
7591        __bindgen_bitfield_unit
7592    }
7593}
7594pub type snd_ump_msg_midi1_paf_t = _snd_ump_msg_midi1_paf;
7595#[repr(C, packed)]
7596#[derive(Debug, Copy, Clone)]
7597pub struct _snd_ump_msg_midi1_cc {
7598    pub data: u8,
7599    pub index: u8,
7600    pub _bitfield_align_1: [u8; 0],
7601    pub _bitfield_1: __BindgenBitfieldUnit<[u8; 2usize]>,
7602}
7603impl _snd_ump_msg_midi1_cc {
7604    #[inline]
7605    pub fn channel(&self) -> u8 {
7606        unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 4u8) as u8) }
7607    }
7608    #[inline]
7609    pub fn set_channel(&mut self, val: u8) {
7610        unsafe {
7611            let val: u8 = ::core::mem::transmute(val);
7612            self._bitfield_1.set(0usize, 4u8, val as u64)
7613        }
7614    }
7615    #[inline]
7616    pub unsafe fn channel_raw(this: *const Self) -> u8 {
7617        unsafe {
7618            ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(
7619                ::core::ptr::addr_of!((*this)._bitfield_1),
7620                0usize,
7621                4u8,
7622            ) as u8)
7623        }
7624    }
7625    #[inline]
7626    pub unsafe fn set_channel_raw(this: *mut Self, val: u8) {
7627        unsafe {
7628            let val: u8 = ::core::mem::transmute(val);
7629            <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(
7630                ::core::ptr::addr_of_mut!((*this)._bitfield_1),
7631                0usize,
7632                4u8,
7633                val as u64,
7634            )
7635        }
7636    }
7637    #[inline]
7638    pub fn status(&self) -> u8 {
7639        unsafe { ::core::mem::transmute(self._bitfield_1.get(4usize, 4u8) as u8) }
7640    }
7641    #[inline]
7642    pub fn set_status(&mut self, val: u8) {
7643        unsafe {
7644            let val: u8 = ::core::mem::transmute(val);
7645            self._bitfield_1.set(4usize, 4u8, val as u64)
7646        }
7647    }
7648    #[inline]
7649    pub unsafe fn status_raw(this: *const Self) -> u8 {
7650        unsafe {
7651            ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(
7652                ::core::ptr::addr_of!((*this)._bitfield_1),
7653                4usize,
7654                4u8,
7655            ) as u8)
7656        }
7657    }
7658    #[inline]
7659    pub unsafe fn set_status_raw(this: *mut Self, val: u8) {
7660        unsafe {
7661            let val: u8 = ::core::mem::transmute(val);
7662            <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(
7663                ::core::ptr::addr_of_mut!((*this)._bitfield_1),
7664                4usize,
7665                4u8,
7666                val as u64,
7667            )
7668        }
7669    }
7670    #[inline]
7671    pub fn group(&self) -> u8 {
7672        unsafe { ::core::mem::transmute(self._bitfield_1.get(8usize, 4u8) as u8) }
7673    }
7674    #[inline]
7675    pub fn set_group(&mut self, val: u8) {
7676        unsafe {
7677            let val: u8 = ::core::mem::transmute(val);
7678            self._bitfield_1.set(8usize, 4u8, val as u64)
7679        }
7680    }
7681    #[inline]
7682    pub unsafe fn group_raw(this: *const Self) -> u8 {
7683        unsafe {
7684            ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(
7685                ::core::ptr::addr_of!((*this)._bitfield_1),
7686                8usize,
7687                4u8,
7688            ) as u8)
7689        }
7690    }
7691    #[inline]
7692    pub unsafe fn set_group_raw(this: *mut Self, val: u8) {
7693        unsafe {
7694            let val: u8 = ::core::mem::transmute(val);
7695            <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(
7696                ::core::ptr::addr_of_mut!((*this)._bitfield_1),
7697                8usize,
7698                4u8,
7699                val as u64,
7700            )
7701        }
7702    }
7703    #[inline]
7704    pub fn type_(&self) -> u8 {
7705        unsafe { ::core::mem::transmute(self._bitfield_1.get(12usize, 4u8) as u8) }
7706    }
7707    #[inline]
7708    pub fn set_type(&mut self, val: u8) {
7709        unsafe {
7710            let val: u8 = ::core::mem::transmute(val);
7711            self._bitfield_1.set(12usize, 4u8, val as u64)
7712        }
7713    }
7714    #[inline]
7715    pub unsafe fn type__raw(this: *const Self) -> u8 {
7716        unsafe {
7717            ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(
7718                ::core::ptr::addr_of!((*this)._bitfield_1),
7719                12usize,
7720                4u8,
7721            ) as u8)
7722        }
7723    }
7724    #[inline]
7725    pub unsafe fn set_type_raw(this: *mut Self, val: u8) {
7726        unsafe {
7727            let val: u8 = ::core::mem::transmute(val);
7728            <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(
7729                ::core::ptr::addr_of_mut!((*this)._bitfield_1),
7730                12usize,
7731                4u8,
7732                val as u64,
7733            )
7734        }
7735    }
7736    #[inline]
7737    pub fn new_bitfield_1(
7738        channel: u8,
7739        status: u8,
7740        group: u8,
7741        type_: u8,
7742    ) -> __BindgenBitfieldUnit<[u8; 2usize]> {
7743        let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 2usize]> = Default::default();
7744        __bindgen_bitfield_unit.set(0usize, 4u8, {
7745            let channel: u8 = unsafe { ::core::mem::transmute(channel) };
7746            channel as u64
7747        });
7748        __bindgen_bitfield_unit.set(4usize, 4u8, {
7749            let status: u8 = unsafe { ::core::mem::transmute(status) };
7750            status as u64
7751        });
7752        __bindgen_bitfield_unit.set(8usize, 4u8, {
7753            let group: u8 = unsafe { ::core::mem::transmute(group) };
7754            group as u64
7755        });
7756        __bindgen_bitfield_unit.set(12usize, 4u8, {
7757            let type_: u8 = unsafe { ::core::mem::transmute(type_) };
7758            type_ as u64
7759        });
7760        __bindgen_bitfield_unit
7761    }
7762}
7763pub type snd_ump_msg_midi1_cc_t = _snd_ump_msg_midi1_cc;
7764#[repr(C, packed)]
7765#[derive(Debug, Copy, Clone)]
7766pub struct _snd_ump_msg_midi1_program {
7767    pub reserved: u8,
7768    pub program: u8,
7769    pub _bitfield_align_1: [u8; 0],
7770    pub _bitfield_1: __BindgenBitfieldUnit<[u8; 2usize]>,
7771}
7772impl _snd_ump_msg_midi1_program {
7773    #[inline]
7774    pub fn channel(&self) -> u8 {
7775        unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 4u8) as u8) }
7776    }
7777    #[inline]
7778    pub fn set_channel(&mut self, val: u8) {
7779        unsafe {
7780            let val: u8 = ::core::mem::transmute(val);
7781            self._bitfield_1.set(0usize, 4u8, val as u64)
7782        }
7783    }
7784    #[inline]
7785    pub unsafe fn channel_raw(this: *const Self) -> u8 {
7786        unsafe {
7787            ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(
7788                ::core::ptr::addr_of!((*this)._bitfield_1),
7789                0usize,
7790                4u8,
7791            ) as u8)
7792        }
7793    }
7794    #[inline]
7795    pub unsafe fn set_channel_raw(this: *mut Self, val: u8) {
7796        unsafe {
7797            let val: u8 = ::core::mem::transmute(val);
7798            <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(
7799                ::core::ptr::addr_of_mut!((*this)._bitfield_1),
7800                0usize,
7801                4u8,
7802                val as u64,
7803            )
7804        }
7805    }
7806    #[inline]
7807    pub fn status(&self) -> u8 {
7808        unsafe { ::core::mem::transmute(self._bitfield_1.get(4usize, 4u8) as u8) }
7809    }
7810    #[inline]
7811    pub fn set_status(&mut self, val: u8) {
7812        unsafe {
7813            let val: u8 = ::core::mem::transmute(val);
7814            self._bitfield_1.set(4usize, 4u8, val as u64)
7815        }
7816    }
7817    #[inline]
7818    pub unsafe fn status_raw(this: *const Self) -> u8 {
7819        unsafe {
7820            ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(
7821                ::core::ptr::addr_of!((*this)._bitfield_1),
7822                4usize,
7823                4u8,
7824            ) as u8)
7825        }
7826    }
7827    #[inline]
7828    pub unsafe fn set_status_raw(this: *mut Self, val: u8) {
7829        unsafe {
7830            let val: u8 = ::core::mem::transmute(val);
7831            <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(
7832                ::core::ptr::addr_of_mut!((*this)._bitfield_1),
7833                4usize,
7834                4u8,
7835                val as u64,
7836            )
7837        }
7838    }
7839    #[inline]
7840    pub fn group(&self) -> u8 {
7841        unsafe { ::core::mem::transmute(self._bitfield_1.get(8usize, 4u8) as u8) }
7842    }
7843    #[inline]
7844    pub fn set_group(&mut self, val: u8) {
7845        unsafe {
7846            let val: u8 = ::core::mem::transmute(val);
7847            self._bitfield_1.set(8usize, 4u8, val as u64)
7848        }
7849    }
7850    #[inline]
7851    pub unsafe fn group_raw(this: *const Self) -> u8 {
7852        unsafe {
7853            ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(
7854                ::core::ptr::addr_of!((*this)._bitfield_1),
7855                8usize,
7856                4u8,
7857            ) as u8)
7858        }
7859    }
7860    #[inline]
7861    pub unsafe fn set_group_raw(this: *mut Self, val: u8) {
7862        unsafe {
7863            let val: u8 = ::core::mem::transmute(val);
7864            <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(
7865                ::core::ptr::addr_of_mut!((*this)._bitfield_1),
7866                8usize,
7867                4u8,
7868                val as u64,
7869            )
7870        }
7871    }
7872    #[inline]
7873    pub fn type_(&self) -> u8 {
7874        unsafe { ::core::mem::transmute(self._bitfield_1.get(12usize, 4u8) as u8) }
7875    }
7876    #[inline]
7877    pub fn set_type(&mut self, val: u8) {
7878        unsafe {
7879            let val: u8 = ::core::mem::transmute(val);
7880            self._bitfield_1.set(12usize, 4u8, val as u64)
7881        }
7882    }
7883    #[inline]
7884    pub unsafe fn type__raw(this: *const Self) -> u8 {
7885        unsafe {
7886            ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(
7887                ::core::ptr::addr_of!((*this)._bitfield_1),
7888                12usize,
7889                4u8,
7890            ) as u8)
7891        }
7892    }
7893    #[inline]
7894    pub unsafe fn set_type_raw(this: *mut Self, val: u8) {
7895        unsafe {
7896            let val: u8 = ::core::mem::transmute(val);
7897            <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(
7898                ::core::ptr::addr_of_mut!((*this)._bitfield_1),
7899                12usize,
7900                4u8,
7901                val as u64,
7902            )
7903        }
7904    }
7905    #[inline]
7906    pub fn new_bitfield_1(
7907        channel: u8,
7908        status: u8,
7909        group: u8,
7910        type_: u8,
7911    ) -> __BindgenBitfieldUnit<[u8; 2usize]> {
7912        let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 2usize]> = Default::default();
7913        __bindgen_bitfield_unit.set(0usize, 4u8, {
7914            let channel: u8 = unsafe { ::core::mem::transmute(channel) };
7915            channel as u64
7916        });
7917        __bindgen_bitfield_unit.set(4usize, 4u8, {
7918            let status: u8 = unsafe { ::core::mem::transmute(status) };
7919            status as u64
7920        });
7921        __bindgen_bitfield_unit.set(8usize, 4u8, {
7922            let group: u8 = unsafe { ::core::mem::transmute(group) };
7923            group as u64
7924        });
7925        __bindgen_bitfield_unit.set(12usize, 4u8, {
7926            let type_: u8 = unsafe { ::core::mem::transmute(type_) };
7927            type_ as u64
7928        });
7929        __bindgen_bitfield_unit
7930    }
7931}
7932pub type snd_ump_msg_midi1_program_t = _snd_ump_msg_midi1_program;
7933#[repr(C, packed)]
7934#[derive(Debug, Copy, Clone)]
7935pub struct _snd_ump_msg_midi1_caf {
7936    pub reserved: u8,
7937    pub data: u8,
7938    pub _bitfield_align_1: [u8; 0],
7939    pub _bitfield_1: __BindgenBitfieldUnit<[u8; 2usize]>,
7940}
7941impl _snd_ump_msg_midi1_caf {
7942    #[inline]
7943    pub fn channel(&self) -> u8 {
7944        unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 4u8) as u8) }
7945    }
7946    #[inline]
7947    pub fn set_channel(&mut self, val: u8) {
7948        unsafe {
7949            let val: u8 = ::core::mem::transmute(val);
7950            self._bitfield_1.set(0usize, 4u8, val as u64)
7951        }
7952    }
7953    #[inline]
7954    pub unsafe fn channel_raw(this: *const Self) -> u8 {
7955        unsafe {
7956            ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(
7957                ::core::ptr::addr_of!((*this)._bitfield_1),
7958                0usize,
7959                4u8,
7960            ) as u8)
7961        }
7962    }
7963    #[inline]
7964    pub unsafe fn set_channel_raw(this: *mut Self, val: u8) {
7965        unsafe {
7966            let val: u8 = ::core::mem::transmute(val);
7967            <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(
7968                ::core::ptr::addr_of_mut!((*this)._bitfield_1),
7969                0usize,
7970                4u8,
7971                val as u64,
7972            )
7973        }
7974    }
7975    #[inline]
7976    pub fn status(&self) -> u8 {
7977        unsafe { ::core::mem::transmute(self._bitfield_1.get(4usize, 4u8) as u8) }
7978    }
7979    #[inline]
7980    pub fn set_status(&mut self, val: u8) {
7981        unsafe {
7982            let val: u8 = ::core::mem::transmute(val);
7983            self._bitfield_1.set(4usize, 4u8, val as u64)
7984        }
7985    }
7986    #[inline]
7987    pub unsafe fn status_raw(this: *const Self) -> u8 {
7988        unsafe {
7989            ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(
7990                ::core::ptr::addr_of!((*this)._bitfield_1),
7991                4usize,
7992                4u8,
7993            ) as u8)
7994        }
7995    }
7996    #[inline]
7997    pub unsafe fn set_status_raw(this: *mut Self, val: u8) {
7998        unsafe {
7999            let val: u8 = ::core::mem::transmute(val);
8000            <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(
8001                ::core::ptr::addr_of_mut!((*this)._bitfield_1),
8002                4usize,
8003                4u8,
8004                val as u64,
8005            )
8006        }
8007    }
8008    #[inline]
8009    pub fn group(&self) -> u8 {
8010        unsafe { ::core::mem::transmute(self._bitfield_1.get(8usize, 4u8) as u8) }
8011    }
8012    #[inline]
8013    pub fn set_group(&mut self, val: u8) {
8014        unsafe {
8015            let val: u8 = ::core::mem::transmute(val);
8016            self._bitfield_1.set(8usize, 4u8, val as u64)
8017        }
8018    }
8019    #[inline]
8020    pub unsafe fn group_raw(this: *const Self) -> u8 {
8021        unsafe {
8022            ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(
8023                ::core::ptr::addr_of!((*this)._bitfield_1),
8024                8usize,
8025                4u8,
8026            ) as u8)
8027        }
8028    }
8029    #[inline]
8030    pub unsafe fn set_group_raw(this: *mut Self, val: u8) {
8031        unsafe {
8032            let val: u8 = ::core::mem::transmute(val);
8033            <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(
8034                ::core::ptr::addr_of_mut!((*this)._bitfield_1),
8035                8usize,
8036                4u8,
8037                val as u64,
8038            )
8039        }
8040    }
8041    #[inline]
8042    pub fn type_(&self) -> u8 {
8043        unsafe { ::core::mem::transmute(self._bitfield_1.get(12usize, 4u8) as u8) }
8044    }
8045    #[inline]
8046    pub fn set_type(&mut self, val: u8) {
8047        unsafe {
8048            let val: u8 = ::core::mem::transmute(val);
8049            self._bitfield_1.set(12usize, 4u8, val as u64)
8050        }
8051    }
8052    #[inline]
8053    pub unsafe fn type__raw(this: *const Self) -> u8 {
8054        unsafe {
8055            ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(
8056                ::core::ptr::addr_of!((*this)._bitfield_1),
8057                12usize,
8058                4u8,
8059            ) as u8)
8060        }
8061    }
8062    #[inline]
8063    pub unsafe fn set_type_raw(this: *mut Self, val: u8) {
8064        unsafe {
8065            let val: u8 = ::core::mem::transmute(val);
8066            <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(
8067                ::core::ptr::addr_of_mut!((*this)._bitfield_1),
8068                12usize,
8069                4u8,
8070                val as u64,
8071            )
8072        }
8073    }
8074    #[inline]
8075    pub fn new_bitfield_1(
8076        channel: u8,
8077        status: u8,
8078        group: u8,
8079        type_: u8,
8080    ) -> __BindgenBitfieldUnit<[u8; 2usize]> {
8081        let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 2usize]> = Default::default();
8082        __bindgen_bitfield_unit.set(0usize, 4u8, {
8083            let channel: u8 = unsafe { ::core::mem::transmute(channel) };
8084            channel as u64
8085        });
8086        __bindgen_bitfield_unit.set(4usize, 4u8, {
8087            let status: u8 = unsafe { ::core::mem::transmute(status) };
8088            status as u64
8089        });
8090        __bindgen_bitfield_unit.set(8usize, 4u8, {
8091            let group: u8 = unsafe { ::core::mem::transmute(group) };
8092            group as u64
8093        });
8094        __bindgen_bitfield_unit.set(12usize, 4u8, {
8095            let type_: u8 = unsafe { ::core::mem::transmute(type_) };
8096            type_ as u64
8097        });
8098        __bindgen_bitfield_unit
8099    }
8100}
8101pub type snd_ump_msg_midi1_caf_t = _snd_ump_msg_midi1_caf;
8102#[repr(C, packed)]
8103#[derive(Debug, Copy, Clone)]
8104pub struct _snd_ump_msg_midi1_pitchbend {
8105    pub data_msb: u8,
8106    pub data_lsb: u8,
8107    pub _bitfield_align_1: [u8; 0],
8108    pub _bitfield_1: __BindgenBitfieldUnit<[u8; 2usize]>,
8109}
8110impl _snd_ump_msg_midi1_pitchbend {
8111    #[inline]
8112    pub fn channel(&self) -> u8 {
8113        unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 4u8) as u8) }
8114    }
8115    #[inline]
8116    pub fn set_channel(&mut self, val: u8) {
8117        unsafe {
8118            let val: u8 = ::core::mem::transmute(val);
8119            self._bitfield_1.set(0usize, 4u8, val as u64)
8120        }
8121    }
8122    #[inline]
8123    pub unsafe fn channel_raw(this: *const Self) -> u8 {
8124        unsafe {
8125            ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(
8126                ::core::ptr::addr_of!((*this)._bitfield_1),
8127                0usize,
8128                4u8,
8129            ) as u8)
8130        }
8131    }
8132    #[inline]
8133    pub unsafe fn set_channel_raw(this: *mut Self, val: u8) {
8134        unsafe {
8135            let val: u8 = ::core::mem::transmute(val);
8136            <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(
8137                ::core::ptr::addr_of_mut!((*this)._bitfield_1),
8138                0usize,
8139                4u8,
8140                val as u64,
8141            )
8142        }
8143    }
8144    #[inline]
8145    pub fn status(&self) -> u8 {
8146        unsafe { ::core::mem::transmute(self._bitfield_1.get(4usize, 4u8) as u8) }
8147    }
8148    #[inline]
8149    pub fn set_status(&mut self, val: u8) {
8150        unsafe {
8151            let val: u8 = ::core::mem::transmute(val);
8152            self._bitfield_1.set(4usize, 4u8, val as u64)
8153        }
8154    }
8155    #[inline]
8156    pub unsafe fn status_raw(this: *const Self) -> u8 {
8157        unsafe {
8158            ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(
8159                ::core::ptr::addr_of!((*this)._bitfield_1),
8160                4usize,
8161                4u8,
8162            ) as u8)
8163        }
8164    }
8165    #[inline]
8166    pub unsafe fn set_status_raw(this: *mut Self, val: u8) {
8167        unsafe {
8168            let val: u8 = ::core::mem::transmute(val);
8169            <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(
8170                ::core::ptr::addr_of_mut!((*this)._bitfield_1),
8171                4usize,
8172                4u8,
8173                val as u64,
8174            )
8175        }
8176    }
8177    #[inline]
8178    pub fn group(&self) -> u8 {
8179        unsafe { ::core::mem::transmute(self._bitfield_1.get(8usize, 4u8) as u8) }
8180    }
8181    #[inline]
8182    pub fn set_group(&mut self, val: u8) {
8183        unsafe {
8184            let val: u8 = ::core::mem::transmute(val);
8185            self._bitfield_1.set(8usize, 4u8, val as u64)
8186        }
8187    }
8188    #[inline]
8189    pub unsafe fn group_raw(this: *const Self) -> u8 {
8190        unsafe {
8191            ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(
8192                ::core::ptr::addr_of!((*this)._bitfield_1),
8193                8usize,
8194                4u8,
8195            ) as u8)
8196        }
8197    }
8198    #[inline]
8199    pub unsafe fn set_group_raw(this: *mut Self, val: u8) {
8200        unsafe {
8201            let val: u8 = ::core::mem::transmute(val);
8202            <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(
8203                ::core::ptr::addr_of_mut!((*this)._bitfield_1),
8204                8usize,
8205                4u8,
8206                val as u64,
8207            )
8208        }
8209    }
8210    #[inline]
8211    pub fn type_(&self) -> u8 {
8212        unsafe { ::core::mem::transmute(self._bitfield_1.get(12usize, 4u8) as u8) }
8213    }
8214    #[inline]
8215    pub fn set_type(&mut self, val: u8) {
8216        unsafe {
8217            let val: u8 = ::core::mem::transmute(val);
8218            self._bitfield_1.set(12usize, 4u8, val as u64)
8219        }
8220    }
8221    #[inline]
8222    pub unsafe fn type__raw(this: *const Self) -> u8 {
8223        unsafe {
8224            ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(
8225                ::core::ptr::addr_of!((*this)._bitfield_1),
8226                12usize,
8227                4u8,
8228            ) as u8)
8229        }
8230    }
8231    #[inline]
8232    pub unsafe fn set_type_raw(this: *mut Self, val: u8) {
8233        unsafe {
8234            let val: u8 = ::core::mem::transmute(val);
8235            <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(
8236                ::core::ptr::addr_of_mut!((*this)._bitfield_1),
8237                12usize,
8238                4u8,
8239                val as u64,
8240            )
8241        }
8242    }
8243    #[inline]
8244    pub fn new_bitfield_1(
8245        channel: u8,
8246        status: u8,
8247        group: u8,
8248        type_: u8,
8249    ) -> __BindgenBitfieldUnit<[u8; 2usize]> {
8250        let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 2usize]> = Default::default();
8251        __bindgen_bitfield_unit.set(0usize, 4u8, {
8252            let channel: u8 = unsafe { ::core::mem::transmute(channel) };
8253            channel as u64
8254        });
8255        __bindgen_bitfield_unit.set(4usize, 4u8, {
8256            let status: u8 = unsafe { ::core::mem::transmute(status) };
8257            status as u64
8258        });
8259        __bindgen_bitfield_unit.set(8usize, 4u8, {
8260            let group: u8 = unsafe { ::core::mem::transmute(group) };
8261            group as u64
8262        });
8263        __bindgen_bitfield_unit.set(12usize, 4u8, {
8264            let type_: u8 = unsafe { ::core::mem::transmute(type_) };
8265            type_ as u64
8266        });
8267        __bindgen_bitfield_unit
8268    }
8269}
8270pub type snd_ump_msg_midi1_pitchbend_t = _snd_ump_msg_midi1_pitchbend;
8271#[repr(C, packed)]
8272#[derive(Debug, Copy, Clone)]
8273pub struct snd_ump_msg_system {
8274    pub parm2: u8,
8275    pub parm1: u8,
8276    pub status: u8,
8277    pub _bitfield_align_1: [u8; 0],
8278    pub _bitfield_1: __BindgenBitfieldUnit<[u8; 1usize]>,
8279}
8280impl snd_ump_msg_system {
8281    #[inline]
8282    pub fn group(&self) -> u8 {
8283        unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 4u8) as u8) }
8284    }
8285    #[inline]
8286    pub fn set_group(&mut self, val: u8) {
8287        unsafe {
8288            let val: u8 = ::core::mem::transmute(val);
8289            self._bitfield_1.set(0usize, 4u8, val as u64)
8290        }
8291    }
8292    #[inline]
8293    pub unsafe fn group_raw(this: *const Self) -> u8 {
8294        unsafe {
8295            ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get(
8296                ::core::ptr::addr_of!((*this)._bitfield_1),
8297                0usize,
8298                4u8,
8299            ) as u8)
8300        }
8301    }
8302    #[inline]
8303    pub unsafe fn set_group_raw(this: *mut Self, val: u8) {
8304        unsafe {
8305            let val: u8 = ::core::mem::transmute(val);
8306            <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set(
8307                ::core::ptr::addr_of_mut!((*this)._bitfield_1),
8308                0usize,
8309                4u8,
8310                val as u64,
8311            )
8312        }
8313    }
8314    #[inline]
8315    pub fn type_(&self) -> u8 {
8316        unsafe { ::core::mem::transmute(self._bitfield_1.get(4usize, 4u8) as u8) }
8317    }
8318    #[inline]
8319    pub fn set_type(&mut self, val: u8) {
8320        unsafe {
8321            let val: u8 = ::core::mem::transmute(val);
8322            self._bitfield_1.set(4usize, 4u8, val as u64)
8323        }
8324    }
8325    #[inline]
8326    pub unsafe fn type__raw(this: *const Self) -> u8 {
8327        unsafe {
8328            ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get(
8329                ::core::ptr::addr_of!((*this)._bitfield_1),
8330                4usize,
8331                4u8,
8332            ) as u8)
8333        }
8334    }
8335    #[inline]
8336    pub unsafe fn set_type_raw(this: *mut Self, val: u8) {
8337        unsafe {
8338            let val: u8 = ::core::mem::transmute(val);
8339            <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set(
8340                ::core::ptr::addr_of_mut!((*this)._bitfield_1),
8341                4usize,
8342                4u8,
8343                val as u64,
8344            )
8345        }
8346    }
8347    #[inline]
8348    pub fn new_bitfield_1(group: u8, type_: u8) -> __BindgenBitfieldUnit<[u8; 1usize]> {
8349        let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 1usize]> = Default::default();
8350        __bindgen_bitfield_unit.set(0usize, 4u8, {
8351            let group: u8 = unsafe { ::core::mem::transmute(group) };
8352            group as u64
8353        });
8354        __bindgen_bitfield_unit.set(4usize, 4u8, {
8355            let type_: u8 = unsafe { ::core::mem::transmute(type_) };
8356            type_ as u64
8357        });
8358        __bindgen_bitfield_unit
8359    }
8360}
8361pub type snd_ump_msg_system_t = snd_ump_msg_system;
8362#[repr(C)]
8363#[derive(Copy, Clone)]
8364pub union _snd_ump_msg_midi1 {
8365    pub note_on: snd_ump_msg_midi1_note_t,
8366    pub note_off: snd_ump_msg_midi1_note_t,
8367    pub poly_pressure: snd_ump_msg_midi1_paf_t,
8368    pub control_change: snd_ump_msg_midi1_cc_t,
8369    pub program_change: snd_ump_msg_midi1_program_t,
8370    pub channel_pressure: snd_ump_msg_midi1_caf_t,
8371    pub pitchbend: snd_ump_msg_midi1_pitchbend_t,
8372    pub system: snd_ump_msg_system_t,
8373    pub hdr: snd_ump_msg_hdr_t,
8374    pub raw: u32,
8375}
8376pub type snd_ump_msg_midi1_t = _snd_ump_msg_midi1;
8377pub const SND_UMP_MIDI2_NOTE_ATTR_NO_DATA: _bindgen_ty_4 = 0;
8378pub const SND_UMP_MIDI2_NOTE_ATTR_MANUFACTURER: _bindgen_ty_4 = 1;
8379pub const SND_UMP_MIDI2_NOTE_ATTR_PROFILE: _bindgen_ty_4 = 2;
8380pub const SND_UMP_MIDI2_NOTE_ATTR_PITCH79: _bindgen_ty_4 = 3;
8381pub type _bindgen_ty_4 = ::core::ffi::c_uint;
8382#[repr(C, packed)]
8383#[derive(Debug, Copy, Clone)]
8384pub struct _snd_ump_msg_midi2_note {
8385    pub attr_type: u8,
8386    pub note: u8,
8387    pub _bitfield_align_1: [u8; 0],
8388    pub _bitfield_1: __BindgenBitfieldUnit<[u8; 2usize]>,
8389    pub attr_data: u16,
8390    pub velocity: u16,
8391}
8392impl _snd_ump_msg_midi2_note {
8393    #[inline]
8394    pub fn channel(&self) -> u8 {
8395        unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 4u8) as u8) }
8396    }
8397    #[inline]
8398    pub fn set_channel(&mut self, val: u8) {
8399        unsafe {
8400            let val: u8 = ::core::mem::transmute(val);
8401            self._bitfield_1.set(0usize, 4u8, val as u64)
8402        }
8403    }
8404    #[inline]
8405    pub unsafe fn channel_raw(this: *const Self) -> u8 {
8406        unsafe {
8407            ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(
8408                ::core::ptr::addr_of!((*this)._bitfield_1),
8409                0usize,
8410                4u8,
8411            ) as u8)
8412        }
8413    }
8414    #[inline]
8415    pub unsafe fn set_channel_raw(this: *mut Self, val: u8) {
8416        unsafe {
8417            let val: u8 = ::core::mem::transmute(val);
8418            <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(
8419                ::core::ptr::addr_of_mut!((*this)._bitfield_1),
8420                0usize,
8421                4u8,
8422                val as u64,
8423            )
8424        }
8425    }
8426    #[inline]
8427    pub fn status(&self) -> u8 {
8428        unsafe { ::core::mem::transmute(self._bitfield_1.get(4usize, 4u8) as u8) }
8429    }
8430    #[inline]
8431    pub fn set_status(&mut self, val: u8) {
8432        unsafe {
8433            let val: u8 = ::core::mem::transmute(val);
8434            self._bitfield_1.set(4usize, 4u8, val as u64)
8435        }
8436    }
8437    #[inline]
8438    pub unsafe fn status_raw(this: *const Self) -> u8 {
8439        unsafe {
8440            ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(
8441                ::core::ptr::addr_of!((*this)._bitfield_1),
8442                4usize,
8443                4u8,
8444            ) as u8)
8445        }
8446    }
8447    #[inline]
8448    pub unsafe fn set_status_raw(this: *mut Self, val: u8) {
8449        unsafe {
8450            let val: u8 = ::core::mem::transmute(val);
8451            <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(
8452                ::core::ptr::addr_of_mut!((*this)._bitfield_1),
8453                4usize,
8454                4u8,
8455                val as u64,
8456            )
8457        }
8458    }
8459    #[inline]
8460    pub fn group(&self) -> u8 {
8461        unsafe { ::core::mem::transmute(self._bitfield_1.get(8usize, 4u8) as u8) }
8462    }
8463    #[inline]
8464    pub fn set_group(&mut self, val: u8) {
8465        unsafe {
8466            let val: u8 = ::core::mem::transmute(val);
8467            self._bitfield_1.set(8usize, 4u8, val as u64)
8468        }
8469    }
8470    #[inline]
8471    pub unsafe fn group_raw(this: *const Self) -> u8 {
8472        unsafe {
8473            ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(
8474                ::core::ptr::addr_of!((*this)._bitfield_1),
8475                8usize,
8476                4u8,
8477            ) as u8)
8478        }
8479    }
8480    #[inline]
8481    pub unsafe fn set_group_raw(this: *mut Self, val: u8) {
8482        unsafe {
8483            let val: u8 = ::core::mem::transmute(val);
8484            <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(
8485                ::core::ptr::addr_of_mut!((*this)._bitfield_1),
8486                8usize,
8487                4u8,
8488                val as u64,
8489            )
8490        }
8491    }
8492    #[inline]
8493    pub fn type_(&self) -> u8 {
8494        unsafe { ::core::mem::transmute(self._bitfield_1.get(12usize, 4u8) as u8) }
8495    }
8496    #[inline]
8497    pub fn set_type(&mut self, val: u8) {
8498        unsafe {
8499            let val: u8 = ::core::mem::transmute(val);
8500            self._bitfield_1.set(12usize, 4u8, val as u64)
8501        }
8502    }
8503    #[inline]
8504    pub unsafe fn type__raw(this: *const Self) -> u8 {
8505        unsafe {
8506            ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(
8507                ::core::ptr::addr_of!((*this)._bitfield_1),
8508                12usize,
8509                4u8,
8510            ) as u8)
8511        }
8512    }
8513    #[inline]
8514    pub unsafe fn set_type_raw(this: *mut Self, val: u8) {
8515        unsafe {
8516            let val: u8 = ::core::mem::transmute(val);
8517            <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(
8518                ::core::ptr::addr_of_mut!((*this)._bitfield_1),
8519                12usize,
8520                4u8,
8521                val as u64,
8522            )
8523        }
8524    }
8525    #[inline]
8526    pub fn new_bitfield_1(
8527        channel: u8,
8528        status: u8,
8529        group: u8,
8530        type_: u8,
8531    ) -> __BindgenBitfieldUnit<[u8; 2usize]> {
8532        let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 2usize]> = Default::default();
8533        __bindgen_bitfield_unit.set(0usize, 4u8, {
8534            let channel: u8 = unsafe { ::core::mem::transmute(channel) };
8535            channel as u64
8536        });
8537        __bindgen_bitfield_unit.set(4usize, 4u8, {
8538            let status: u8 = unsafe { ::core::mem::transmute(status) };
8539            status as u64
8540        });
8541        __bindgen_bitfield_unit.set(8usize, 4u8, {
8542            let group: u8 = unsafe { ::core::mem::transmute(group) };
8543            group as u64
8544        });
8545        __bindgen_bitfield_unit.set(12usize, 4u8, {
8546            let type_: u8 = unsafe { ::core::mem::transmute(type_) };
8547            type_ as u64
8548        });
8549        __bindgen_bitfield_unit
8550    }
8551}
8552pub type snd_ump_msg_midi2_note_t = _snd_ump_msg_midi2_note;
8553#[repr(C, packed)]
8554#[derive(Debug, Copy, Clone)]
8555pub struct _snd_ump_msg_midi2_paf {
8556    pub reserved: u8,
8557    pub note: u8,
8558    pub _bitfield_align_1: [u8; 0],
8559    pub _bitfield_1: __BindgenBitfieldUnit<[u8; 2usize]>,
8560    pub data: u32,
8561}
8562impl _snd_ump_msg_midi2_paf {
8563    #[inline]
8564    pub fn channel(&self) -> u8 {
8565        unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 4u8) as u8) }
8566    }
8567    #[inline]
8568    pub fn set_channel(&mut self, val: u8) {
8569        unsafe {
8570            let val: u8 = ::core::mem::transmute(val);
8571            self._bitfield_1.set(0usize, 4u8, val as u64)
8572        }
8573    }
8574    #[inline]
8575    pub unsafe fn channel_raw(this: *const Self) -> u8 {
8576        unsafe {
8577            ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(
8578                ::core::ptr::addr_of!((*this)._bitfield_1),
8579                0usize,
8580                4u8,
8581            ) as u8)
8582        }
8583    }
8584    #[inline]
8585    pub unsafe fn set_channel_raw(this: *mut Self, val: u8) {
8586        unsafe {
8587            let val: u8 = ::core::mem::transmute(val);
8588            <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(
8589                ::core::ptr::addr_of_mut!((*this)._bitfield_1),
8590                0usize,
8591                4u8,
8592                val as u64,
8593            )
8594        }
8595    }
8596    #[inline]
8597    pub fn status(&self) -> u8 {
8598        unsafe { ::core::mem::transmute(self._bitfield_1.get(4usize, 4u8) as u8) }
8599    }
8600    #[inline]
8601    pub fn set_status(&mut self, val: u8) {
8602        unsafe {
8603            let val: u8 = ::core::mem::transmute(val);
8604            self._bitfield_1.set(4usize, 4u8, val as u64)
8605        }
8606    }
8607    #[inline]
8608    pub unsafe fn status_raw(this: *const Self) -> u8 {
8609        unsafe {
8610            ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(
8611                ::core::ptr::addr_of!((*this)._bitfield_1),
8612                4usize,
8613                4u8,
8614            ) as u8)
8615        }
8616    }
8617    #[inline]
8618    pub unsafe fn set_status_raw(this: *mut Self, val: u8) {
8619        unsafe {
8620            let val: u8 = ::core::mem::transmute(val);
8621            <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(
8622                ::core::ptr::addr_of_mut!((*this)._bitfield_1),
8623                4usize,
8624                4u8,
8625                val as u64,
8626            )
8627        }
8628    }
8629    #[inline]
8630    pub fn group(&self) -> u8 {
8631        unsafe { ::core::mem::transmute(self._bitfield_1.get(8usize, 4u8) as u8) }
8632    }
8633    #[inline]
8634    pub fn set_group(&mut self, val: u8) {
8635        unsafe {
8636            let val: u8 = ::core::mem::transmute(val);
8637            self._bitfield_1.set(8usize, 4u8, val as u64)
8638        }
8639    }
8640    #[inline]
8641    pub unsafe fn group_raw(this: *const Self) -> u8 {
8642        unsafe {
8643            ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(
8644                ::core::ptr::addr_of!((*this)._bitfield_1),
8645                8usize,
8646                4u8,
8647            ) as u8)
8648        }
8649    }
8650    #[inline]
8651    pub unsafe fn set_group_raw(this: *mut Self, val: u8) {
8652        unsafe {
8653            let val: u8 = ::core::mem::transmute(val);
8654            <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(
8655                ::core::ptr::addr_of_mut!((*this)._bitfield_1),
8656                8usize,
8657                4u8,
8658                val as u64,
8659            )
8660        }
8661    }
8662    #[inline]
8663    pub fn type_(&self) -> u8 {
8664        unsafe { ::core::mem::transmute(self._bitfield_1.get(12usize, 4u8) as u8) }
8665    }
8666    #[inline]
8667    pub fn set_type(&mut self, val: u8) {
8668        unsafe {
8669            let val: u8 = ::core::mem::transmute(val);
8670            self._bitfield_1.set(12usize, 4u8, val as u64)
8671        }
8672    }
8673    #[inline]
8674    pub unsafe fn type__raw(this: *const Self) -> u8 {
8675        unsafe {
8676            ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(
8677                ::core::ptr::addr_of!((*this)._bitfield_1),
8678                12usize,
8679                4u8,
8680            ) as u8)
8681        }
8682    }
8683    #[inline]
8684    pub unsafe fn set_type_raw(this: *mut Self, val: u8) {
8685        unsafe {
8686            let val: u8 = ::core::mem::transmute(val);
8687            <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(
8688                ::core::ptr::addr_of_mut!((*this)._bitfield_1),
8689                12usize,
8690                4u8,
8691                val as u64,
8692            )
8693        }
8694    }
8695    #[inline]
8696    pub fn new_bitfield_1(
8697        channel: u8,
8698        status: u8,
8699        group: u8,
8700        type_: u8,
8701    ) -> __BindgenBitfieldUnit<[u8; 2usize]> {
8702        let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 2usize]> = Default::default();
8703        __bindgen_bitfield_unit.set(0usize, 4u8, {
8704            let channel: u8 = unsafe { ::core::mem::transmute(channel) };
8705            channel as u64
8706        });
8707        __bindgen_bitfield_unit.set(4usize, 4u8, {
8708            let status: u8 = unsafe { ::core::mem::transmute(status) };
8709            status as u64
8710        });
8711        __bindgen_bitfield_unit.set(8usize, 4u8, {
8712            let group: u8 = unsafe { ::core::mem::transmute(group) };
8713            group as u64
8714        });
8715        __bindgen_bitfield_unit.set(12usize, 4u8, {
8716            let type_: u8 = unsafe { ::core::mem::transmute(type_) };
8717            type_ as u64
8718        });
8719        __bindgen_bitfield_unit
8720    }
8721}
8722pub type snd_ump_msg_midi2_paf_t = _snd_ump_msg_midi2_paf;
8723#[repr(C, packed)]
8724#[derive(Debug, Copy, Clone)]
8725pub struct _snd_ump_msg_midi2_per_note_cc {
8726    pub index: u8,
8727    pub note: u8,
8728    pub _bitfield_align_1: [u8; 0],
8729    pub _bitfield_1: __BindgenBitfieldUnit<[u8; 2usize]>,
8730    pub data: u32,
8731}
8732impl _snd_ump_msg_midi2_per_note_cc {
8733    #[inline]
8734    pub fn channel(&self) -> u8 {
8735        unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 4u8) as u8) }
8736    }
8737    #[inline]
8738    pub fn set_channel(&mut self, val: u8) {
8739        unsafe {
8740            let val: u8 = ::core::mem::transmute(val);
8741            self._bitfield_1.set(0usize, 4u8, val as u64)
8742        }
8743    }
8744    #[inline]
8745    pub unsafe fn channel_raw(this: *const Self) -> u8 {
8746        unsafe {
8747            ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(
8748                ::core::ptr::addr_of!((*this)._bitfield_1),
8749                0usize,
8750                4u8,
8751            ) as u8)
8752        }
8753    }
8754    #[inline]
8755    pub unsafe fn set_channel_raw(this: *mut Self, val: u8) {
8756        unsafe {
8757            let val: u8 = ::core::mem::transmute(val);
8758            <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(
8759                ::core::ptr::addr_of_mut!((*this)._bitfield_1),
8760                0usize,
8761                4u8,
8762                val as u64,
8763            )
8764        }
8765    }
8766    #[inline]
8767    pub fn status(&self) -> u8 {
8768        unsafe { ::core::mem::transmute(self._bitfield_1.get(4usize, 4u8) as u8) }
8769    }
8770    #[inline]
8771    pub fn set_status(&mut self, val: u8) {
8772        unsafe {
8773            let val: u8 = ::core::mem::transmute(val);
8774            self._bitfield_1.set(4usize, 4u8, val as u64)
8775        }
8776    }
8777    #[inline]
8778    pub unsafe fn status_raw(this: *const Self) -> u8 {
8779        unsafe {
8780            ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(
8781                ::core::ptr::addr_of!((*this)._bitfield_1),
8782                4usize,
8783                4u8,
8784            ) as u8)
8785        }
8786    }
8787    #[inline]
8788    pub unsafe fn set_status_raw(this: *mut Self, val: u8) {
8789        unsafe {
8790            let val: u8 = ::core::mem::transmute(val);
8791            <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(
8792                ::core::ptr::addr_of_mut!((*this)._bitfield_1),
8793                4usize,
8794                4u8,
8795                val as u64,
8796            )
8797        }
8798    }
8799    #[inline]
8800    pub fn group(&self) -> u8 {
8801        unsafe { ::core::mem::transmute(self._bitfield_1.get(8usize, 4u8) as u8) }
8802    }
8803    #[inline]
8804    pub fn set_group(&mut self, val: u8) {
8805        unsafe {
8806            let val: u8 = ::core::mem::transmute(val);
8807            self._bitfield_1.set(8usize, 4u8, val as u64)
8808        }
8809    }
8810    #[inline]
8811    pub unsafe fn group_raw(this: *const Self) -> u8 {
8812        unsafe {
8813            ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(
8814                ::core::ptr::addr_of!((*this)._bitfield_1),
8815                8usize,
8816                4u8,
8817            ) as u8)
8818        }
8819    }
8820    #[inline]
8821    pub unsafe fn set_group_raw(this: *mut Self, val: u8) {
8822        unsafe {
8823            let val: u8 = ::core::mem::transmute(val);
8824            <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(
8825                ::core::ptr::addr_of_mut!((*this)._bitfield_1),
8826                8usize,
8827                4u8,
8828                val as u64,
8829            )
8830        }
8831    }
8832    #[inline]
8833    pub fn type_(&self) -> u8 {
8834        unsafe { ::core::mem::transmute(self._bitfield_1.get(12usize, 4u8) as u8) }
8835    }
8836    #[inline]
8837    pub fn set_type(&mut self, val: u8) {
8838        unsafe {
8839            let val: u8 = ::core::mem::transmute(val);
8840            self._bitfield_1.set(12usize, 4u8, val as u64)
8841        }
8842    }
8843    #[inline]
8844    pub unsafe fn type__raw(this: *const Self) -> u8 {
8845        unsafe {
8846            ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(
8847                ::core::ptr::addr_of!((*this)._bitfield_1),
8848                12usize,
8849                4u8,
8850            ) as u8)
8851        }
8852    }
8853    #[inline]
8854    pub unsafe fn set_type_raw(this: *mut Self, val: u8) {
8855        unsafe {
8856            let val: u8 = ::core::mem::transmute(val);
8857            <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(
8858                ::core::ptr::addr_of_mut!((*this)._bitfield_1),
8859                12usize,
8860                4u8,
8861                val as u64,
8862            )
8863        }
8864    }
8865    #[inline]
8866    pub fn new_bitfield_1(
8867        channel: u8,
8868        status: u8,
8869        group: u8,
8870        type_: u8,
8871    ) -> __BindgenBitfieldUnit<[u8; 2usize]> {
8872        let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 2usize]> = Default::default();
8873        __bindgen_bitfield_unit.set(0usize, 4u8, {
8874            let channel: u8 = unsafe { ::core::mem::transmute(channel) };
8875            channel as u64
8876        });
8877        __bindgen_bitfield_unit.set(4usize, 4u8, {
8878            let status: u8 = unsafe { ::core::mem::transmute(status) };
8879            status as u64
8880        });
8881        __bindgen_bitfield_unit.set(8usize, 4u8, {
8882            let group: u8 = unsafe { ::core::mem::transmute(group) };
8883            group as u64
8884        });
8885        __bindgen_bitfield_unit.set(12usize, 4u8, {
8886            let type_: u8 = unsafe { ::core::mem::transmute(type_) };
8887            type_ as u64
8888        });
8889        __bindgen_bitfield_unit
8890    }
8891}
8892pub type snd_ump_msg_midi2_per_note_cc_t = _snd_ump_msg_midi2_per_note_cc;
8893pub const SND_UMP_MIDI2_PNMGMT_RESET_CONTROLLERS: _bindgen_ty_5 = 1;
8894pub const SND_UMP_MIDI2_PNMGMT_DETACH_CONTROLLERS: _bindgen_ty_5 = 2;
8895pub type _bindgen_ty_5 = ::core::ffi::c_uint;
8896#[repr(C, packed)]
8897#[derive(Debug, Copy, Clone)]
8898pub struct _snd_ump_msg_midi2_per_note_mgmt {
8899    pub flags: u8,
8900    pub note: u8,
8901    pub _bitfield_align_1: [u8; 0],
8902    pub _bitfield_1: __BindgenBitfieldUnit<[u8; 2usize]>,
8903    pub reserved: u32,
8904}
8905impl _snd_ump_msg_midi2_per_note_mgmt {
8906    #[inline]
8907    pub fn channel(&self) -> u8 {
8908        unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 4u8) as u8) }
8909    }
8910    #[inline]
8911    pub fn set_channel(&mut self, val: u8) {
8912        unsafe {
8913            let val: u8 = ::core::mem::transmute(val);
8914            self._bitfield_1.set(0usize, 4u8, val as u64)
8915        }
8916    }
8917    #[inline]
8918    pub unsafe fn channel_raw(this: *const Self) -> u8 {
8919        unsafe {
8920            ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(
8921                ::core::ptr::addr_of!((*this)._bitfield_1),
8922                0usize,
8923                4u8,
8924            ) as u8)
8925        }
8926    }
8927    #[inline]
8928    pub unsafe fn set_channel_raw(this: *mut Self, val: u8) {
8929        unsafe {
8930            let val: u8 = ::core::mem::transmute(val);
8931            <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(
8932                ::core::ptr::addr_of_mut!((*this)._bitfield_1),
8933                0usize,
8934                4u8,
8935                val as u64,
8936            )
8937        }
8938    }
8939    #[inline]
8940    pub fn status(&self) -> u8 {
8941        unsafe { ::core::mem::transmute(self._bitfield_1.get(4usize, 4u8) as u8) }
8942    }
8943    #[inline]
8944    pub fn set_status(&mut self, val: u8) {
8945        unsafe {
8946            let val: u8 = ::core::mem::transmute(val);
8947            self._bitfield_1.set(4usize, 4u8, val as u64)
8948        }
8949    }
8950    #[inline]
8951    pub unsafe fn status_raw(this: *const Self) -> u8 {
8952        unsafe {
8953            ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(
8954                ::core::ptr::addr_of!((*this)._bitfield_1),
8955                4usize,
8956                4u8,
8957            ) as u8)
8958        }
8959    }
8960    #[inline]
8961    pub unsafe fn set_status_raw(this: *mut Self, val: u8) {
8962        unsafe {
8963            let val: u8 = ::core::mem::transmute(val);
8964            <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(
8965                ::core::ptr::addr_of_mut!((*this)._bitfield_1),
8966                4usize,
8967                4u8,
8968                val as u64,
8969            )
8970        }
8971    }
8972    #[inline]
8973    pub fn group(&self) -> u8 {
8974        unsafe { ::core::mem::transmute(self._bitfield_1.get(8usize, 4u8) as u8) }
8975    }
8976    #[inline]
8977    pub fn set_group(&mut self, val: u8) {
8978        unsafe {
8979            let val: u8 = ::core::mem::transmute(val);
8980            self._bitfield_1.set(8usize, 4u8, val as u64)
8981        }
8982    }
8983    #[inline]
8984    pub unsafe fn group_raw(this: *const Self) -> u8 {
8985        unsafe {
8986            ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(
8987                ::core::ptr::addr_of!((*this)._bitfield_1),
8988                8usize,
8989                4u8,
8990            ) as u8)
8991        }
8992    }
8993    #[inline]
8994    pub unsafe fn set_group_raw(this: *mut Self, val: u8) {
8995        unsafe {
8996            let val: u8 = ::core::mem::transmute(val);
8997            <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(
8998                ::core::ptr::addr_of_mut!((*this)._bitfield_1),
8999                8usize,
9000                4u8,
9001                val as u64,
9002            )
9003        }
9004    }
9005    #[inline]
9006    pub fn type_(&self) -> u8 {
9007        unsafe { ::core::mem::transmute(self._bitfield_1.get(12usize, 4u8) as u8) }
9008    }
9009    #[inline]
9010    pub fn set_type(&mut self, val: u8) {
9011        unsafe {
9012            let val: u8 = ::core::mem::transmute(val);
9013            self._bitfield_1.set(12usize, 4u8, val as u64)
9014        }
9015    }
9016    #[inline]
9017    pub unsafe fn type__raw(this: *const Self) -> u8 {
9018        unsafe {
9019            ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(
9020                ::core::ptr::addr_of!((*this)._bitfield_1),
9021                12usize,
9022                4u8,
9023            ) as u8)
9024        }
9025    }
9026    #[inline]
9027    pub unsafe fn set_type_raw(this: *mut Self, val: u8) {
9028        unsafe {
9029            let val: u8 = ::core::mem::transmute(val);
9030            <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(
9031                ::core::ptr::addr_of_mut!((*this)._bitfield_1),
9032                12usize,
9033                4u8,
9034                val as u64,
9035            )
9036        }
9037    }
9038    #[inline]
9039    pub fn new_bitfield_1(
9040        channel: u8,
9041        status: u8,
9042        group: u8,
9043        type_: u8,
9044    ) -> __BindgenBitfieldUnit<[u8; 2usize]> {
9045        let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 2usize]> = Default::default();
9046        __bindgen_bitfield_unit.set(0usize, 4u8, {
9047            let channel: u8 = unsafe { ::core::mem::transmute(channel) };
9048            channel as u64
9049        });
9050        __bindgen_bitfield_unit.set(4usize, 4u8, {
9051            let status: u8 = unsafe { ::core::mem::transmute(status) };
9052            status as u64
9053        });
9054        __bindgen_bitfield_unit.set(8usize, 4u8, {
9055            let group: u8 = unsafe { ::core::mem::transmute(group) };
9056            group as u64
9057        });
9058        __bindgen_bitfield_unit.set(12usize, 4u8, {
9059            let type_: u8 = unsafe { ::core::mem::transmute(type_) };
9060            type_ as u64
9061        });
9062        __bindgen_bitfield_unit
9063    }
9064}
9065pub type snd_ump_msg_midi2_per_note_mgmt_t = _snd_ump_msg_midi2_per_note_mgmt;
9066#[repr(C, packed)]
9067#[derive(Debug, Copy, Clone)]
9068pub struct _snd_ump_msg_midi2_cc {
9069    pub reserved: u8,
9070    pub index: u8,
9071    pub _bitfield_align_1: [u8; 0],
9072    pub _bitfield_1: __BindgenBitfieldUnit<[u8; 2usize]>,
9073    pub data: u32,
9074}
9075impl _snd_ump_msg_midi2_cc {
9076    #[inline]
9077    pub fn channel(&self) -> u8 {
9078        unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 4u8) as u8) }
9079    }
9080    #[inline]
9081    pub fn set_channel(&mut self, val: u8) {
9082        unsafe {
9083            let val: u8 = ::core::mem::transmute(val);
9084            self._bitfield_1.set(0usize, 4u8, val as u64)
9085        }
9086    }
9087    #[inline]
9088    pub unsafe fn channel_raw(this: *const Self) -> u8 {
9089        unsafe {
9090            ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(
9091                ::core::ptr::addr_of!((*this)._bitfield_1),
9092                0usize,
9093                4u8,
9094            ) as u8)
9095        }
9096    }
9097    #[inline]
9098    pub unsafe fn set_channel_raw(this: *mut Self, val: u8) {
9099        unsafe {
9100            let val: u8 = ::core::mem::transmute(val);
9101            <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(
9102                ::core::ptr::addr_of_mut!((*this)._bitfield_1),
9103                0usize,
9104                4u8,
9105                val as u64,
9106            )
9107        }
9108    }
9109    #[inline]
9110    pub fn status(&self) -> u8 {
9111        unsafe { ::core::mem::transmute(self._bitfield_1.get(4usize, 4u8) as u8) }
9112    }
9113    #[inline]
9114    pub fn set_status(&mut self, val: u8) {
9115        unsafe {
9116            let val: u8 = ::core::mem::transmute(val);
9117            self._bitfield_1.set(4usize, 4u8, val as u64)
9118        }
9119    }
9120    #[inline]
9121    pub unsafe fn status_raw(this: *const Self) -> u8 {
9122        unsafe {
9123            ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(
9124                ::core::ptr::addr_of!((*this)._bitfield_1),
9125                4usize,
9126                4u8,
9127            ) as u8)
9128        }
9129    }
9130    #[inline]
9131    pub unsafe fn set_status_raw(this: *mut Self, val: u8) {
9132        unsafe {
9133            let val: u8 = ::core::mem::transmute(val);
9134            <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(
9135                ::core::ptr::addr_of_mut!((*this)._bitfield_1),
9136                4usize,
9137                4u8,
9138                val as u64,
9139            )
9140        }
9141    }
9142    #[inline]
9143    pub fn group(&self) -> u8 {
9144        unsafe { ::core::mem::transmute(self._bitfield_1.get(8usize, 4u8) as u8) }
9145    }
9146    #[inline]
9147    pub fn set_group(&mut self, val: u8) {
9148        unsafe {
9149            let val: u8 = ::core::mem::transmute(val);
9150            self._bitfield_1.set(8usize, 4u8, val as u64)
9151        }
9152    }
9153    #[inline]
9154    pub unsafe fn group_raw(this: *const Self) -> u8 {
9155        unsafe {
9156            ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(
9157                ::core::ptr::addr_of!((*this)._bitfield_1),
9158                8usize,
9159                4u8,
9160            ) as u8)
9161        }
9162    }
9163    #[inline]
9164    pub unsafe fn set_group_raw(this: *mut Self, val: u8) {
9165        unsafe {
9166            let val: u8 = ::core::mem::transmute(val);
9167            <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(
9168                ::core::ptr::addr_of_mut!((*this)._bitfield_1),
9169                8usize,
9170                4u8,
9171                val as u64,
9172            )
9173        }
9174    }
9175    #[inline]
9176    pub fn type_(&self) -> u8 {
9177        unsafe { ::core::mem::transmute(self._bitfield_1.get(12usize, 4u8) as u8) }
9178    }
9179    #[inline]
9180    pub fn set_type(&mut self, val: u8) {
9181        unsafe {
9182            let val: u8 = ::core::mem::transmute(val);
9183            self._bitfield_1.set(12usize, 4u8, val as u64)
9184        }
9185    }
9186    #[inline]
9187    pub unsafe fn type__raw(this: *const Self) -> u8 {
9188        unsafe {
9189            ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(
9190                ::core::ptr::addr_of!((*this)._bitfield_1),
9191                12usize,
9192                4u8,
9193            ) as u8)
9194        }
9195    }
9196    #[inline]
9197    pub unsafe fn set_type_raw(this: *mut Self, val: u8) {
9198        unsafe {
9199            let val: u8 = ::core::mem::transmute(val);
9200            <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(
9201                ::core::ptr::addr_of_mut!((*this)._bitfield_1),
9202                12usize,
9203                4u8,
9204                val as u64,
9205            )
9206        }
9207    }
9208    #[inline]
9209    pub fn new_bitfield_1(
9210        channel: u8,
9211        status: u8,
9212        group: u8,
9213        type_: u8,
9214    ) -> __BindgenBitfieldUnit<[u8; 2usize]> {
9215        let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 2usize]> = Default::default();
9216        __bindgen_bitfield_unit.set(0usize, 4u8, {
9217            let channel: u8 = unsafe { ::core::mem::transmute(channel) };
9218            channel as u64
9219        });
9220        __bindgen_bitfield_unit.set(4usize, 4u8, {
9221            let status: u8 = unsafe { ::core::mem::transmute(status) };
9222            status as u64
9223        });
9224        __bindgen_bitfield_unit.set(8usize, 4u8, {
9225            let group: u8 = unsafe { ::core::mem::transmute(group) };
9226            group as u64
9227        });
9228        __bindgen_bitfield_unit.set(12usize, 4u8, {
9229            let type_: u8 = unsafe { ::core::mem::transmute(type_) };
9230            type_ as u64
9231        });
9232        __bindgen_bitfield_unit
9233    }
9234}
9235pub type snd_ump_msg_midi2_cc_t = _snd_ump_msg_midi2_cc;
9236#[repr(C, packed)]
9237#[derive(Debug, Copy, Clone)]
9238pub struct _snd_ump_msg_midi2_rpn {
9239    pub index: u8,
9240    pub bank: u8,
9241    pub _bitfield_align_1: [u8; 0],
9242    pub _bitfield_1: __BindgenBitfieldUnit<[u8; 2usize]>,
9243    pub data: u32,
9244}
9245impl _snd_ump_msg_midi2_rpn {
9246    #[inline]
9247    pub fn channel(&self) -> u8 {
9248        unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 4u8) as u8) }
9249    }
9250    #[inline]
9251    pub fn set_channel(&mut self, val: u8) {
9252        unsafe {
9253            let val: u8 = ::core::mem::transmute(val);
9254            self._bitfield_1.set(0usize, 4u8, val as u64)
9255        }
9256    }
9257    #[inline]
9258    pub unsafe fn channel_raw(this: *const Self) -> u8 {
9259        unsafe {
9260            ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(
9261                ::core::ptr::addr_of!((*this)._bitfield_1),
9262                0usize,
9263                4u8,
9264            ) as u8)
9265        }
9266    }
9267    #[inline]
9268    pub unsafe fn set_channel_raw(this: *mut Self, val: u8) {
9269        unsafe {
9270            let val: u8 = ::core::mem::transmute(val);
9271            <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(
9272                ::core::ptr::addr_of_mut!((*this)._bitfield_1),
9273                0usize,
9274                4u8,
9275                val as u64,
9276            )
9277        }
9278    }
9279    #[inline]
9280    pub fn status(&self) -> u8 {
9281        unsafe { ::core::mem::transmute(self._bitfield_1.get(4usize, 4u8) as u8) }
9282    }
9283    #[inline]
9284    pub fn set_status(&mut self, val: u8) {
9285        unsafe {
9286            let val: u8 = ::core::mem::transmute(val);
9287            self._bitfield_1.set(4usize, 4u8, val as u64)
9288        }
9289    }
9290    #[inline]
9291    pub unsafe fn status_raw(this: *const Self) -> u8 {
9292        unsafe {
9293            ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(
9294                ::core::ptr::addr_of!((*this)._bitfield_1),
9295                4usize,
9296                4u8,
9297            ) as u8)
9298        }
9299    }
9300    #[inline]
9301    pub unsafe fn set_status_raw(this: *mut Self, val: u8) {
9302        unsafe {
9303            let val: u8 = ::core::mem::transmute(val);
9304            <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(
9305                ::core::ptr::addr_of_mut!((*this)._bitfield_1),
9306                4usize,
9307                4u8,
9308                val as u64,
9309            )
9310        }
9311    }
9312    #[inline]
9313    pub fn group(&self) -> u8 {
9314        unsafe { ::core::mem::transmute(self._bitfield_1.get(8usize, 4u8) as u8) }
9315    }
9316    #[inline]
9317    pub fn set_group(&mut self, val: u8) {
9318        unsafe {
9319            let val: u8 = ::core::mem::transmute(val);
9320            self._bitfield_1.set(8usize, 4u8, val as u64)
9321        }
9322    }
9323    #[inline]
9324    pub unsafe fn group_raw(this: *const Self) -> u8 {
9325        unsafe {
9326            ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(
9327                ::core::ptr::addr_of!((*this)._bitfield_1),
9328                8usize,
9329                4u8,
9330            ) as u8)
9331        }
9332    }
9333    #[inline]
9334    pub unsafe fn set_group_raw(this: *mut Self, val: u8) {
9335        unsafe {
9336            let val: u8 = ::core::mem::transmute(val);
9337            <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(
9338                ::core::ptr::addr_of_mut!((*this)._bitfield_1),
9339                8usize,
9340                4u8,
9341                val as u64,
9342            )
9343        }
9344    }
9345    #[inline]
9346    pub fn type_(&self) -> u8 {
9347        unsafe { ::core::mem::transmute(self._bitfield_1.get(12usize, 4u8) as u8) }
9348    }
9349    #[inline]
9350    pub fn set_type(&mut self, val: u8) {
9351        unsafe {
9352            let val: u8 = ::core::mem::transmute(val);
9353            self._bitfield_1.set(12usize, 4u8, val as u64)
9354        }
9355    }
9356    #[inline]
9357    pub unsafe fn type__raw(this: *const Self) -> u8 {
9358        unsafe {
9359            ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(
9360                ::core::ptr::addr_of!((*this)._bitfield_1),
9361                12usize,
9362                4u8,
9363            ) as u8)
9364        }
9365    }
9366    #[inline]
9367    pub unsafe fn set_type_raw(this: *mut Self, val: u8) {
9368        unsafe {
9369            let val: u8 = ::core::mem::transmute(val);
9370            <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(
9371                ::core::ptr::addr_of_mut!((*this)._bitfield_1),
9372                12usize,
9373                4u8,
9374                val as u64,
9375            )
9376        }
9377    }
9378    #[inline]
9379    pub fn new_bitfield_1(
9380        channel: u8,
9381        status: u8,
9382        group: u8,
9383        type_: u8,
9384    ) -> __BindgenBitfieldUnit<[u8; 2usize]> {
9385        let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 2usize]> = Default::default();
9386        __bindgen_bitfield_unit.set(0usize, 4u8, {
9387            let channel: u8 = unsafe { ::core::mem::transmute(channel) };
9388            channel as u64
9389        });
9390        __bindgen_bitfield_unit.set(4usize, 4u8, {
9391            let status: u8 = unsafe { ::core::mem::transmute(status) };
9392            status as u64
9393        });
9394        __bindgen_bitfield_unit.set(8usize, 4u8, {
9395            let group: u8 = unsafe { ::core::mem::transmute(group) };
9396            group as u64
9397        });
9398        __bindgen_bitfield_unit.set(12usize, 4u8, {
9399            let type_: u8 = unsafe { ::core::mem::transmute(type_) };
9400            type_ as u64
9401        });
9402        __bindgen_bitfield_unit
9403    }
9404}
9405pub type snd_ump_msg_midi2_rpn_t = _snd_ump_msg_midi2_rpn;
9406#[repr(C, packed)]
9407#[derive(Debug, Copy, Clone)]
9408pub struct _snd_ump_msg_midi2_program {
9409    pub _bitfield_align_1: [u8; 0],
9410    pub _bitfield_1: __BindgenBitfieldUnit<[u8; 4usize]>,
9411    pub bank_lsb: u8,
9412    pub bank_msb: u8,
9413    pub reserved2: u8,
9414    pub program: u8,
9415}
9416impl _snd_ump_msg_midi2_program {
9417    #[inline]
9418    pub fn bank_valid(&self) -> u16 {
9419        unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u16) }
9420    }
9421    #[inline]
9422    pub fn set_bank_valid(&mut self, val: u16) {
9423        unsafe {
9424            let val: u16 = ::core::mem::transmute(val);
9425            self._bitfield_1.set(0usize, 1u8, val as u64)
9426        }
9427    }
9428    #[inline]
9429    pub unsafe fn bank_valid_raw(this: *const Self) -> u16 {
9430        unsafe {
9431            ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(
9432                ::core::ptr::addr_of!((*this)._bitfield_1),
9433                0usize,
9434                1u8,
9435            ) as u16)
9436        }
9437    }
9438    #[inline]
9439    pub unsafe fn set_bank_valid_raw(this: *mut Self, val: u16) {
9440        unsafe {
9441            let val: u16 = ::core::mem::transmute(val);
9442            <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(
9443                ::core::ptr::addr_of_mut!((*this)._bitfield_1),
9444                0usize,
9445                1u8,
9446                val as u64,
9447            )
9448        }
9449    }
9450    #[inline]
9451    pub fn reserved(&self) -> u16 {
9452        unsafe { ::core::mem::transmute(self._bitfield_1.get(1usize, 15u8) as u16) }
9453    }
9454    #[inline]
9455    pub fn set_reserved(&mut self, val: u16) {
9456        unsafe {
9457            let val: u16 = ::core::mem::transmute(val);
9458            self._bitfield_1.set(1usize, 15u8, val as u64)
9459        }
9460    }
9461    #[inline]
9462    pub unsafe fn reserved_raw(this: *const Self) -> u16 {
9463        unsafe {
9464            ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(
9465                ::core::ptr::addr_of!((*this)._bitfield_1),
9466                1usize,
9467                15u8,
9468            ) as u16)
9469        }
9470    }
9471    #[inline]
9472    pub unsafe fn set_reserved_raw(this: *mut Self, val: u16) {
9473        unsafe {
9474            let val: u16 = ::core::mem::transmute(val);
9475            <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(
9476                ::core::ptr::addr_of_mut!((*this)._bitfield_1),
9477                1usize,
9478                15u8,
9479                val as u64,
9480            )
9481        }
9482    }
9483    #[inline]
9484    pub fn channel(&self) -> u8 {
9485        unsafe { ::core::mem::transmute(self._bitfield_1.get(16usize, 4u8) as u8) }
9486    }
9487    #[inline]
9488    pub fn set_channel(&mut self, val: u8) {
9489        unsafe {
9490            let val: u8 = ::core::mem::transmute(val);
9491            self._bitfield_1.set(16usize, 4u8, val as u64)
9492        }
9493    }
9494    #[inline]
9495    pub unsafe fn channel_raw(this: *const Self) -> u8 {
9496        unsafe {
9497            ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(
9498                ::core::ptr::addr_of!((*this)._bitfield_1),
9499                16usize,
9500                4u8,
9501            ) as u8)
9502        }
9503    }
9504    #[inline]
9505    pub unsafe fn set_channel_raw(this: *mut Self, val: u8) {
9506        unsafe {
9507            let val: u8 = ::core::mem::transmute(val);
9508            <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(
9509                ::core::ptr::addr_of_mut!((*this)._bitfield_1),
9510                16usize,
9511                4u8,
9512                val as u64,
9513            )
9514        }
9515    }
9516    #[inline]
9517    pub fn status(&self) -> u8 {
9518        unsafe { ::core::mem::transmute(self._bitfield_1.get(20usize, 4u8) as u8) }
9519    }
9520    #[inline]
9521    pub fn set_status(&mut self, val: u8) {
9522        unsafe {
9523            let val: u8 = ::core::mem::transmute(val);
9524            self._bitfield_1.set(20usize, 4u8, val as u64)
9525        }
9526    }
9527    #[inline]
9528    pub unsafe fn status_raw(this: *const Self) -> u8 {
9529        unsafe {
9530            ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(
9531                ::core::ptr::addr_of!((*this)._bitfield_1),
9532                20usize,
9533                4u8,
9534            ) as u8)
9535        }
9536    }
9537    #[inline]
9538    pub unsafe fn set_status_raw(this: *mut Self, val: u8) {
9539        unsafe {
9540            let val: u8 = ::core::mem::transmute(val);
9541            <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(
9542                ::core::ptr::addr_of_mut!((*this)._bitfield_1),
9543                20usize,
9544                4u8,
9545                val as u64,
9546            )
9547        }
9548    }
9549    #[inline]
9550    pub fn group(&self) -> u8 {
9551        unsafe { ::core::mem::transmute(self._bitfield_1.get(24usize, 4u8) as u8) }
9552    }
9553    #[inline]
9554    pub fn set_group(&mut self, val: u8) {
9555        unsafe {
9556            let val: u8 = ::core::mem::transmute(val);
9557            self._bitfield_1.set(24usize, 4u8, val as u64)
9558        }
9559    }
9560    #[inline]
9561    pub unsafe fn group_raw(this: *const Self) -> u8 {
9562        unsafe {
9563            ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(
9564                ::core::ptr::addr_of!((*this)._bitfield_1),
9565                24usize,
9566                4u8,
9567            ) as u8)
9568        }
9569    }
9570    #[inline]
9571    pub unsafe fn set_group_raw(this: *mut Self, val: u8) {
9572        unsafe {
9573            let val: u8 = ::core::mem::transmute(val);
9574            <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(
9575                ::core::ptr::addr_of_mut!((*this)._bitfield_1),
9576                24usize,
9577                4u8,
9578                val as u64,
9579            )
9580        }
9581    }
9582    #[inline]
9583    pub fn type_(&self) -> u8 {
9584        unsafe { ::core::mem::transmute(self._bitfield_1.get(28usize, 4u8) as u8) }
9585    }
9586    #[inline]
9587    pub fn set_type(&mut self, val: u8) {
9588        unsafe {
9589            let val: u8 = ::core::mem::transmute(val);
9590            self._bitfield_1.set(28usize, 4u8, val as u64)
9591        }
9592    }
9593    #[inline]
9594    pub unsafe fn type__raw(this: *const Self) -> u8 {
9595        unsafe {
9596            ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(
9597                ::core::ptr::addr_of!((*this)._bitfield_1),
9598                28usize,
9599                4u8,
9600            ) as u8)
9601        }
9602    }
9603    #[inline]
9604    pub unsafe fn set_type_raw(this: *mut Self, val: u8) {
9605        unsafe {
9606            let val: u8 = ::core::mem::transmute(val);
9607            <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(
9608                ::core::ptr::addr_of_mut!((*this)._bitfield_1),
9609                28usize,
9610                4u8,
9611                val as u64,
9612            )
9613        }
9614    }
9615    #[inline]
9616    pub fn new_bitfield_1(
9617        bank_valid: u16,
9618        reserved: u16,
9619        channel: u8,
9620        status: u8,
9621        group: u8,
9622        type_: u8,
9623    ) -> __BindgenBitfieldUnit<[u8; 4usize]> {
9624        let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 4usize]> = Default::default();
9625        __bindgen_bitfield_unit.set(0usize, 1u8, {
9626            let bank_valid: u16 = unsafe { ::core::mem::transmute(bank_valid) };
9627            bank_valid as u64
9628        });
9629        __bindgen_bitfield_unit.set(1usize, 15u8, {
9630            let reserved: u16 = unsafe { ::core::mem::transmute(reserved) };
9631            reserved as u64
9632        });
9633        __bindgen_bitfield_unit.set(16usize, 4u8, {
9634            let channel: u8 = unsafe { ::core::mem::transmute(channel) };
9635            channel as u64
9636        });
9637        __bindgen_bitfield_unit.set(20usize, 4u8, {
9638            let status: u8 = unsafe { ::core::mem::transmute(status) };
9639            status as u64
9640        });
9641        __bindgen_bitfield_unit.set(24usize, 4u8, {
9642            let group: u8 = unsafe { ::core::mem::transmute(group) };
9643            group as u64
9644        });
9645        __bindgen_bitfield_unit.set(28usize, 4u8, {
9646            let type_: u8 = unsafe { ::core::mem::transmute(type_) };
9647            type_ as u64
9648        });
9649        __bindgen_bitfield_unit
9650    }
9651}
9652pub type snd_ump_msg_midi2_program_t = _snd_ump_msg_midi2_program;
9653#[repr(C, packed)]
9654#[derive(Debug, Copy, Clone)]
9655pub struct _snd_ump_msg_midi2_caf {
9656    pub reserved: u16,
9657    pub _bitfield_align_1: [u8; 0],
9658    pub _bitfield_1: __BindgenBitfieldUnit<[u8; 2usize]>,
9659    pub data: u32,
9660}
9661impl _snd_ump_msg_midi2_caf {
9662    #[inline]
9663    pub fn channel(&self) -> u8 {
9664        unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 4u8) as u8) }
9665    }
9666    #[inline]
9667    pub fn set_channel(&mut self, val: u8) {
9668        unsafe {
9669            let val: u8 = ::core::mem::transmute(val);
9670            self._bitfield_1.set(0usize, 4u8, val as u64)
9671        }
9672    }
9673    #[inline]
9674    pub unsafe fn channel_raw(this: *const Self) -> u8 {
9675        unsafe {
9676            ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(
9677                ::core::ptr::addr_of!((*this)._bitfield_1),
9678                0usize,
9679                4u8,
9680            ) as u8)
9681        }
9682    }
9683    #[inline]
9684    pub unsafe fn set_channel_raw(this: *mut Self, val: u8) {
9685        unsafe {
9686            let val: u8 = ::core::mem::transmute(val);
9687            <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(
9688                ::core::ptr::addr_of_mut!((*this)._bitfield_1),
9689                0usize,
9690                4u8,
9691                val as u64,
9692            )
9693        }
9694    }
9695    #[inline]
9696    pub fn status(&self) -> u8 {
9697        unsafe { ::core::mem::transmute(self._bitfield_1.get(4usize, 4u8) as u8) }
9698    }
9699    #[inline]
9700    pub fn set_status(&mut self, val: u8) {
9701        unsafe {
9702            let val: u8 = ::core::mem::transmute(val);
9703            self._bitfield_1.set(4usize, 4u8, val as u64)
9704        }
9705    }
9706    #[inline]
9707    pub unsafe fn status_raw(this: *const Self) -> u8 {
9708        unsafe {
9709            ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(
9710                ::core::ptr::addr_of!((*this)._bitfield_1),
9711                4usize,
9712                4u8,
9713            ) as u8)
9714        }
9715    }
9716    #[inline]
9717    pub unsafe fn set_status_raw(this: *mut Self, val: u8) {
9718        unsafe {
9719            let val: u8 = ::core::mem::transmute(val);
9720            <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(
9721                ::core::ptr::addr_of_mut!((*this)._bitfield_1),
9722                4usize,
9723                4u8,
9724                val as u64,
9725            )
9726        }
9727    }
9728    #[inline]
9729    pub fn group(&self) -> u8 {
9730        unsafe { ::core::mem::transmute(self._bitfield_1.get(8usize, 4u8) as u8) }
9731    }
9732    #[inline]
9733    pub fn set_group(&mut self, val: u8) {
9734        unsafe {
9735            let val: u8 = ::core::mem::transmute(val);
9736            self._bitfield_1.set(8usize, 4u8, val as u64)
9737        }
9738    }
9739    #[inline]
9740    pub unsafe fn group_raw(this: *const Self) -> u8 {
9741        unsafe {
9742            ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(
9743                ::core::ptr::addr_of!((*this)._bitfield_1),
9744                8usize,
9745                4u8,
9746            ) as u8)
9747        }
9748    }
9749    #[inline]
9750    pub unsafe fn set_group_raw(this: *mut Self, val: u8) {
9751        unsafe {
9752            let val: u8 = ::core::mem::transmute(val);
9753            <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(
9754                ::core::ptr::addr_of_mut!((*this)._bitfield_1),
9755                8usize,
9756                4u8,
9757                val as u64,
9758            )
9759        }
9760    }
9761    #[inline]
9762    pub fn type_(&self) -> u8 {
9763        unsafe { ::core::mem::transmute(self._bitfield_1.get(12usize, 4u8) as u8) }
9764    }
9765    #[inline]
9766    pub fn set_type(&mut self, val: u8) {
9767        unsafe {
9768            let val: u8 = ::core::mem::transmute(val);
9769            self._bitfield_1.set(12usize, 4u8, val as u64)
9770        }
9771    }
9772    #[inline]
9773    pub unsafe fn type__raw(this: *const Self) -> u8 {
9774        unsafe {
9775            ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(
9776                ::core::ptr::addr_of!((*this)._bitfield_1),
9777                12usize,
9778                4u8,
9779            ) as u8)
9780        }
9781    }
9782    #[inline]
9783    pub unsafe fn set_type_raw(this: *mut Self, val: u8) {
9784        unsafe {
9785            let val: u8 = ::core::mem::transmute(val);
9786            <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(
9787                ::core::ptr::addr_of_mut!((*this)._bitfield_1),
9788                12usize,
9789                4u8,
9790                val as u64,
9791            )
9792        }
9793    }
9794    #[inline]
9795    pub fn new_bitfield_1(
9796        channel: u8,
9797        status: u8,
9798        group: u8,
9799        type_: u8,
9800    ) -> __BindgenBitfieldUnit<[u8; 2usize]> {
9801        let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 2usize]> = Default::default();
9802        __bindgen_bitfield_unit.set(0usize, 4u8, {
9803            let channel: u8 = unsafe { ::core::mem::transmute(channel) };
9804            channel as u64
9805        });
9806        __bindgen_bitfield_unit.set(4usize, 4u8, {
9807            let status: u8 = unsafe { ::core::mem::transmute(status) };
9808            status as u64
9809        });
9810        __bindgen_bitfield_unit.set(8usize, 4u8, {
9811            let group: u8 = unsafe { ::core::mem::transmute(group) };
9812            group as u64
9813        });
9814        __bindgen_bitfield_unit.set(12usize, 4u8, {
9815            let type_: u8 = unsafe { ::core::mem::transmute(type_) };
9816            type_ as u64
9817        });
9818        __bindgen_bitfield_unit
9819    }
9820}
9821pub type snd_ump_msg_midi2_caf_t = _snd_ump_msg_midi2_caf;
9822#[repr(C, packed)]
9823#[derive(Debug, Copy, Clone)]
9824pub struct _snd_ump_msg_midi2_pitchbend {
9825    pub reserved: u16,
9826    pub _bitfield_align_1: [u8; 0],
9827    pub _bitfield_1: __BindgenBitfieldUnit<[u8; 2usize]>,
9828    pub data: u32,
9829}
9830impl _snd_ump_msg_midi2_pitchbend {
9831    #[inline]
9832    pub fn channel(&self) -> u8 {
9833        unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 4u8) as u8) }
9834    }
9835    #[inline]
9836    pub fn set_channel(&mut self, val: u8) {
9837        unsafe {
9838            let val: u8 = ::core::mem::transmute(val);
9839            self._bitfield_1.set(0usize, 4u8, val as u64)
9840        }
9841    }
9842    #[inline]
9843    pub unsafe fn channel_raw(this: *const Self) -> u8 {
9844        unsafe {
9845            ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(
9846                ::core::ptr::addr_of!((*this)._bitfield_1),
9847                0usize,
9848                4u8,
9849            ) as u8)
9850        }
9851    }
9852    #[inline]
9853    pub unsafe fn set_channel_raw(this: *mut Self, val: u8) {
9854        unsafe {
9855            let val: u8 = ::core::mem::transmute(val);
9856            <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(
9857                ::core::ptr::addr_of_mut!((*this)._bitfield_1),
9858                0usize,
9859                4u8,
9860                val as u64,
9861            )
9862        }
9863    }
9864    #[inline]
9865    pub fn status(&self) -> u8 {
9866        unsafe { ::core::mem::transmute(self._bitfield_1.get(4usize, 4u8) as u8) }
9867    }
9868    #[inline]
9869    pub fn set_status(&mut self, val: u8) {
9870        unsafe {
9871            let val: u8 = ::core::mem::transmute(val);
9872            self._bitfield_1.set(4usize, 4u8, val as u64)
9873        }
9874    }
9875    #[inline]
9876    pub unsafe fn status_raw(this: *const Self) -> u8 {
9877        unsafe {
9878            ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(
9879                ::core::ptr::addr_of!((*this)._bitfield_1),
9880                4usize,
9881                4u8,
9882            ) as u8)
9883        }
9884    }
9885    #[inline]
9886    pub unsafe fn set_status_raw(this: *mut Self, val: u8) {
9887        unsafe {
9888            let val: u8 = ::core::mem::transmute(val);
9889            <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(
9890                ::core::ptr::addr_of_mut!((*this)._bitfield_1),
9891                4usize,
9892                4u8,
9893                val as u64,
9894            )
9895        }
9896    }
9897    #[inline]
9898    pub fn group(&self) -> u8 {
9899        unsafe { ::core::mem::transmute(self._bitfield_1.get(8usize, 4u8) as u8) }
9900    }
9901    #[inline]
9902    pub fn set_group(&mut self, val: u8) {
9903        unsafe {
9904            let val: u8 = ::core::mem::transmute(val);
9905            self._bitfield_1.set(8usize, 4u8, val as u64)
9906        }
9907    }
9908    #[inline]
9909    pub unsafe fn group_raw(this: *const Self) -> u8 {
9910        unsafe {
9911            ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(
9912                ::core::ptr::addr_of!((*this)._bitfield_1),
9913                8usize,
9914                4u8,
9915            ) as u8)
9916        }
9917    }
9918    #[inline]
9919    pub unsafe fn set_group_raw(this: *mut Self, val: u8) {
9920        unsafe {
9921            let val: u8 = ::core::mem::transmute(val);
9922            <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(
9923                ::core::ptr::addr_of_mut!((*this)._bitfield_1),
9924                8usize,
9925                4u8,
9926                val as u64,
9927            )
9928        }
9929    }
9930    #[inline]
9931    pub fn type_(&self) -> u8 {
9932        unsafe { ::core::mem::transmute(self._bitfield_1.get(12usize, 4u8) as u8) }
9933    }
9934    #[inline]
9935    pub fn set_type(&mut self, val: u8) {
9936        unsafe {
9937            let val: u8 = ::core::mem::transmute(val);
9938            self._bitfield_1.set(12usize, 4u8, val as u64)
9939        }
9940    }
9941    #[inline]
9942    pub unsafe fn type__raw(this: *const Self) -> u8 {
9943        unsafe {
9944            ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(
9945                ::core::ptr::addr_of!((*this)._bitfield_1),
9946                12usize,
9947                4u8,
9948            ) as u8)
9949        }
9950    }
9951    #[inline]
9952    pub unsafe fn set_type_raw(this: *mut Self, val: u8) {
9953        unsafe {
9954            let val: u8 = ::core::mem::transmute(val);
9955            <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(
9956                ::core::ptr::addr_of_mut!((*this)._bitfield_1),
9957                12usize,
9958                4u8,
9959                val as u64,
9960            )
9961        }
9962    }
9963    #[inline]
9964    pub fn new_bitfield_1(
9965        channel: u8,
9966        status: u8,
9967        group: u8,
9968        type_: u8,
9969    ) -> __BindgenBitfieldUnit<[u8; 2usize]> {
9970        let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 2usize]> = Default::default();
9971        __bindgen_bitfield_unit.set(0usize, 4u8, {
9972            let channel: u8 = unsafe { ::core::mem::transmute(channel) };
9973            channel as u64
9974        });
9975        __bindgen_bitfield_unit.set(4usize, 4u8, {
9976            let status: u8 = unsafe { ::core::mem::transmute(status) };
9977            status as u64
9978        });
9979        __bindgen_bitfield_unit.set(8usize, 4u8, {
9980            let group: u8 = unsafe { ::core::mem::transmute(group) };
9981            group as u64
9982        });
9983        __bindgen_bitfield_unit.set(12usize, 4u8, {
9984            let type_: u8 = unsafe { ::core::mem::transmute(type_) };
9985            type_ as u64
9986        });
9987        __bindgen_bitfield_unit
9988    }
9989}
9990pub type snd_ump_msg_midi2_pitchbend_t = _snd_ump_msg_midi2_pitchbend;
9991#[repr(C, packed)]
9992#[derive(Debug, Copy, Clone)]
9993pub struct _snd_ump_msg_midi2_per_note_pitchbend {
9994    pub reserved: u8,
9995    pub note: u8,
9996    pub _bitfield_align_1: [u8; 0],
9997    pub _bitfield_1: __BindgenBitfieldUnit<[u8; 2usize]>,
9998    pub data: u32,
9999}
10000impl _snd_ump_msg_midi2_per_note_pitchbend {
10001    #[inline]
10002    pub fn channel(&self) -> u8 {
10003        unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 4u8) as u8) }
10004    }
10005    #[inline]
10006    pub fn set_channel(&mut self, val: u8) {
10007        unsafe {
10008            let val: u8 = ::core::mem::transmute(val);
10009            self._bitfield_1.set(0usize, 4u8, val as u64)
10010        }
10011    }
10012    #[inline]
10013    pub unsafe fn channel_raw(this: *const Self) -> u8 {
10014        unsafe {
10015            ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(
10016                ::core::ptr::addr_of!((*this)._bitfield_1),
10017                0usize,
10018                4u8,
10019            ) as u8)
10020        }
10021    }
10022    #[inline]
10023    pub unsafe fn set_channel_raw(this: *mut Self, val: u8) {
10024        unsafe {
10025            let val: u8 = ::core::mem::transmute(val);
10026            <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(
10027                ::core::ptr::addr_of_mut!((*this)._bitfield_1),
10028                0usize,
10029                4u8,
10030                val as u64,
10031            )
10032        }
10033    }
10034    #[inline]
10035    pub fn status(&self) -> u8 {
10036        unsafe { ::core::mem::transmute(self._bitfield_1.get(4usize, 4u8) as u8) }
10037    }
10038    #[inline]
10039    pub fn set_status(&mut self, val: u8) {
10040        unsafe {
10041            let val: u8 = ::core::mem::transmute(val);
10042            self._bitfield_1.set(4usize, 4u8, val as u64)
10043        }
10044    }
10045    #[inline]
10046    pub unsafe fn status_raw(this: *const Self) -> u8 {
10047        unsafe {
10048            ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(
10049                ::core::ptr::addr_of!((*this)._bitfield_1),
10050                4usize,
10051                4u8,
10052            ) as u8)
10053        }
10054    }
10055    #[inline]
10056    pub unsafe fn set_status_raw(this: *mut Self, val: u8) {
10057        unsafe {
10058            let val: u8 = ::core::mem::transmute(val);
10059            <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(
10060                ::core::ptr::addr_of_mut!((*this)._bitfield_1),
10061                4usize,
10062                4u8,
10063                val as u64,
10064            )
10065        }
10066    }
10067    #[inline]
10068    pub fn group(&self) -> u8 {
10069        unsafe { ::core::mem::transmute(self._bitfield_1.get(8usize, 4u8) as u8) }
10070    }
10071    #[inline]
10072    pub fn set_group(&mut self, val: u8) {
10073        unsafe {
10074            let val: u8 = ::core::mem::transmute(val);
10075            self._bitfield_1.set(8usize, 4u8, val as u64)
10076        }
10077    }
10078    #[inline]
10079    pub unsafe fn group_raw(this: *const Self) -> u8 {
10080        unsafe {
10081            ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(
10082                ::core::ptr::addr_of!((*this)._bitfield_1),
10083                8usize,
10084                4u8,
10085            ) as u8)
10086        }
10087    }
10088    #[inline]
10089    pub unsafe fn set_group_raw(this: *mut Self, val: u8) {
10090        unsafe {
10091            let val: u8 = ::core::mem::transmute(val);
10092            <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(
10093                ::core::ptr::addr_of_mut!((*this)._bitfield_1),
10094                8usize,
10095                4u8,
10096                val as u64,
10097            )
10098        }
10099    }
10100    #[inline]
10101    pub fn type_(&self) -> u8 {
10102        unsafe { ::core::mem::transmute(self._bitfield_1.get(12usize, 4u8) as u8) }
10103    }
10104    #[inline]
10105    pub fn set_type(&mut self, val: u8) {
10106        unsafe {
10107            let val: u8 = ::core::mem::transmute(val);
10108            self._bitfield_1.set(12usize, 4u8, val as u64)
10109        }
10110    }
10111    #[inline]
10112    pub unsafe fn type__raw(this: *const Self) -> u8 {
10113        unsafe {
10114            ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(
10115                ::core::ptr::addr_of!((*this)._bitfield_1),
10116                12usize,
10117                4u8,
10118            ) as u8)
10119        }
10120    }
10121    #[inline]
10122    pub unsafe fn set_type_raw(this: *mut Self, val: u8) {
10123        unsafe {
10124            let val: u8 = ::core::mem::transmute(val);
10125            <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(
10126                ::core::ptr::addr_of_mut!((*this)._bitfield_1),
10127                12usize,
10128                4u8,
10129                val as u64,
10130            )
10131        }
10132    }
10133    #[inline]
10134    pub fn new_bitfield_1(
10135        channel: u8,
10136        status: u8,
10137        group: u8,
10138        type_: u8,
10139    ) -> __BindgenBitfieldUnit<[u8; 2usize]> {
10140        let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 2usize]> = Default::default();
10141        __bindgen_bitfield_unit.set(0usize, 4u8, {
10142            let channel: u8 = unsafe { ::core::mem::transmute(channel) };
10143            channel as u64
10144        });
10145        __bindgen_bitfield_unit.set(4usize, 4u8, {
10146            let status: u8 = unsafe { ::core::mem::transmute(status) };
10147            status as u64
10148        });
10149        __bindgen_bitfield_unit.set(8usize, 4u8, {
10150            let group: u8 = unsafe { ::core::mem::transmute(group) };
10151            group as u64
10152        });
10153        __bindgen_bitfield_unit.set(12usize, 4u8, {
10154            let type_: u8 = unsafe { ::core::mem::transmute(type_) };
10155            type_ as u64
10156        });
10157        __bindgen_bitfield_unit
10158    }
10159}
10160pub type snd_ump_msg_midi2_per_note_pitchbend_t = _snd_ump_msg_midi2_per_note_pitchbend;
10161#[repr(C)]
10162#[derive(Copy, Clone)]
10163pub union _snd_ump_msg_midi2 {
10164    pub note_on: snd_ump_msg_midi2_note_t,
10165    pub note_off: snd_ump_msg_midi2_note_t,
10166    pub poly_pressure: snd_ump_msg_midi2_paf_t,
10167    pub per_note_acc: snd_ump_msg_midi2_per_note_cc_t,
10168    pub per_note_rcc: snd_ump_msg_midi2_per_note_cc_t,
10169    pub per_note_mgmt: snd_ump_msg_midi2_per_note_mgmt_t,
10170    pub control_change: snd_ump_msg_midi2_cc_t,
10171    pub rpn: snd_ump_msg_midi2_rpn_t,
10172    pub nrpn: snd_ump_msg_midi2_rpn_t,
10173    pub relative_rpn: snd_ump_msg_midi2_rpn_t,
10174    pub relative_nrpn: snd_ump_msg_midi2_rpn_t,
10175    pub program_change: snd_ump_msg_midi2_program_t,
10176    pub channel_pressure: snd_ump_msg_midi2_caf_t,
10177    pub pitchbend: snd_ump_msg_midi2_pitchbend_t,
10178    pub per_note_pitchbend: snd_ump_msg_midi2_per_note_pitchbend_t,
10179    pub hdr: snd_ump_msg_hdr_t,
10180    pub raw: [u32; 2usize],
10181}
10182pub type snd_ump_msg_midi2_t = _snd_ump_msg_midi2;
10183#[repr(C, packed)]
10184#[derive(Debug, Copy, Clone)]
10185pub struct _snd_ump_msg_stream_gen {
10186    pub data1: u16,
10187    pub _bitfield_align_1: [u8; 0],
10188    pub _bitfield_1: __BindgenBitfieldUnit<[u8; 2usize]>,
10189    pub data2: u32,
10190    pub data3: u32,
10191    pub data4: u32,
10192}
10193impl _snd_ump_msg_stream_gen {
10194    #[inline]
10195    pub fn status(&self) -> u16 {
10196        unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 10u8) as u16) }
10197    }
10198    #[inline]
10199    pub fn set_status(&mut self, val: u16) {
10200        unsafe {
10201            let val: u16 = ::core::mem::transmute(val);
10202            self._bitfield_1.set(0usize, 10u8, val as u64)
10203        }
10204    }
10205    #[inline]
10206    pub unsafe fn status_raw(this: *const Self) -> u16 {
10207        unsafe {
10208            ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(
10209                ::core::ptr::addr_of!((*this)._bitfield_1),
10210                0usize,
10211                10u8,
10212            ) as u16)
10213        }
10214    }
10215    #[inline]
10216    pub unsafe fn set_status_raw(this: *mut Self, val: u16) {
10217        unsafe {
10218            let val: u16 = ::core::mem::transmute(val);
10219            <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(
10220                ::core::ptr::addr_of_mut!((*this)._bitfield_1),
10221                0usize,
10222                10u8,
10223                val as u64,
10224            )
10225        }
10226    }
10227    #[inline]
10228    pub fn format(&self) -> u16 {
10229        unsafe { ::core::mem::transmute(self._bitfield_1.get(10usize, 2u8) as u16) }
10230    }
10231    #[inline]
10232    pub fn set_format(&mut self, val: u16) {
10233        unsafe {
10234            let val: u16 = ::core::mem::transmute(val);
10235            self._bitfield_1.set(10usize, 2u8, val as u64)
10236        }
10237    }
10238    #[inline]
10239    pub unsafe fn format_raw(this: *const Self) -> u16 {
10240        unsafe {
10241            ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(
10242                ::core::ptr::addr_of!((*this)._bitfield_1),
10243                10usize,
10244                2u8,
10245            ) as u16)
10246        }
10247    }
10248    #[inline]
10249    pub unsafe fn set_format_raw(this: *mut Self, val: u16) {
10250        unsafe {
10251            let val: u16 = ::core::mem::transmute(val);
10252            <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(
10253                ::core::ptr::addr_of_mut!((*this)._bitfield_1),
10254                10usize,
10255                2u8,
10256                val as u64,
10257            )
10258        }
10259    }
10260    #[inline]
10261    pub fn type_(&self) -> u16 {
10262        unsafe { ::core::mem::transmute(self._bitfield_1.get(12usize, 4u8) as u16) }
10263    }
10264    #[inline]
10265    pub fn set_type(&mut self, val: u16) {
10266        unsafe {
10267            let val: u16 = ::core::mem::transmute(val);
10268            self._bitfield_1.set(12usize, 4u8, val as u64)
10269        }
10270    }
10271    #[inline]
10272    pub unsafe fn type__raw(this: *const Self) -> u16 {
10273        unsafe {
10274            ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(
10275                ::core::ptr::addr_of!((*this)._bitfield_1),
10276                12usize,
10277                4u8,
10278            ) as u16)
10279        }
10280    }
10281    #[inline]
10282    pub unsafe fn set_type_raw(this: *mut Self, val: u16) {
10283        unsafe {
10284            let val: u16 = ::core::mem::transmute(val);
10285            <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(
10286                ::core::ptr::addr_of_mut!((*this)._bitfield_1),
10287                12usize,
10288                4u8,
10289                val as u64,
10290            )
10291        }
10292    }
10293    #[inline]
10294    pub fn new_bitfield_1(
10295        status: u16,
10296        format: u16,
10297        type_: u16,
10298    ) -> __BindgenBitfieldUnit<[u8; 2usize]> {
10299        let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 2usize]> = Default::default();
10300        __bindgen_bitfield_unit.set(0usize, 10u8, {
10301            let status: u16 = unsafe { ::core::mem::transmute(status) };
10302            status as u64
10303        });
10304        __bindgen_bitfield_unit.set(10usize, 2u8, {
10305            let format: u16 = unsafe { ::core::mem::transmute(format) };
10306            format as u64
10307        });
10308        __bindgen_bitfield_unit.set(12usize, 4u8, {
10309            let type_: u16 = unsafe { ::core::mem::transmute(type_) };
10310            type_ as u64
10311        });
10312        __bindgen_bitfield_unit
10313    }
10314}
10315pub type snd_ump_msg_stream_gen_t = _snd_ump_msg_stream_gen;
10316#[repr(C)]
10317#[derive(Copy, Clone)]
10318pub union _snd_ump_msg_stream {
10319    pub gen_: snd_ump_msg_stream_gen_t,
10320    pub hdr: snd_ump_msg_hdr_t,
10321    pub raw: [u32; 4usize],
10322}
10323pub type snd_ump_msg_stream_t = _snd_ump_msg_stream;
10324#[repr(C, packed)]
10325#[derive(Debug, Copy, Clone)]
10326pub struct _snd_ump_msg_flex_data_meta {
10327    pub status: u8,
10328    pub status_bank: u8,
10329    pub _bitfield_align_1: [u8; 0],
10330    pub _bitfield_1: __BindgenBitfieldUnit<[u8; 2usize]>,
10331    pub data: [u32; 3usize],
10332}
10333impl _snd_ump_msg_flex_data_meta {
10334    #[inline]
10335    pub fn channel(&self) -> u8 {
10336        unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 4u8) as u8) }
10337    }
10338    #[inline]
10339    pub fn set_channel(&mut self, val: u8) {
10340        unsafe {
10341            let val: u8 = ::core::mem::transmute(val);
10342            self._bitfield_1.set(0usize, 4u8, val as u64)
10343        }
10344    }
10345    #[inline]
10346    pub unsafe fn channel_raw(this: *const Self) -> u8 {
10347        unsafe {
10348            ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(
10349                ::core::ptr::addr_of!((*this)._bitfield_1),
10350                0usize,
10351                4u8,
10352            ) as u8)
10353        }
10354    }
10355    #[inline]
10356    pub unsafe fn set_channel_raw(this: *mut Self, val: u8) {
10357        unsafe {
10358            let val: u8 = ::core::mem::transmute(val);
10359            <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(
10360                ::core::ptr::addr_of_mut!((*this)._bitfield_1),
10361                0usize,
10362                4u8,
10363                val as u64,
10364            )
10365        }
10366    }
10367    #[inline]
10368    pub fn addrs(&self) -> u8 {
10369        unsafe { ::core::mem::transmute(self._bitfield_1.get(4usize, 2u8) as u8) }
10370    }
10371    #[inline]
10372    pub fn set_addrs(&mut self, val: u8) {
10373        unsafe {
10374            let val: u8 = ::core::mem::transmute(val);
10375            self._bitfield_1.set(4usize, 2u8, val as u64)
10376        }
10377    }
10378    #[inline]
10379    pub unsafe fn addrs_raw(this: *const Self) -> u8 {
10380        unsafe {
10381            ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(
10382                ::core::ptr::addr_of!((*this)._bitfield_1),
10383                4usize,
10384                2u8,
10385            ) as u8)
10386        }
10387    }
10388    #[inline]
10389    pub unsafe fn set_addrs_raw(this: *mut Self, val: u8) {
10390        unsafe {
10391            let val: u8 = ::core::mem::transmute(val);
10392            <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(
10393                ::core::ptr::addr_of_mut!((*this)._bitfield_1),
10394                4usize,
10395                2u8,
10396                val as u64,
10397            )
10398        }
10399    }
10400    #[inline]
10401    pub fn format(&self) -> u8 {
10402        unsafe { ::core::mem::transmute(self._bitfield_1.get(6usize, 2u8) as u8) }
10403    }
10404    #[inline]
10405    pub fn set_format(&mut self, val: u8) {
10406        unsafe {
10407            let val: u8 = ::core::mem::transmute(val);
10408            self._bitfield_1.set(6usize, 2u8, val as u64)
10409        }
10410    }
10411    #[inline]
10412    pub unsafe fn format_raw(this: *const Self) -> u8 {
10413        unsafe {
10414            ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(
10415                ::core::ptr::addr_of!((*this)._bitfield_1),
10416                6usize,
10417                2u8,
10418            ) as u8)
10419        }
10420    }
10421    #[inline]
10422    pub unsafe fn set_format_raw(this: *mut Self, val: u8) {
10423        unsafe {
10424            let val: u8 = ::core::mem::transmute(val);
10425            <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(
10426                ::core::ptr::addr_of_mut!((*this)._bitfield_1),
10427                6usize,
10428                2u8,
10429                val as u64,
10430            )
10431        }
10432    }
10433    #[inline]
10434    pub fn group(&self) -> u8 {
10435        unsafe { ::core::mem::transmute(self._bitfield_1.get(8usize, 4u8) as u8) }
10436    }
10437    #[inline]
10438    pub fn set_group(&mut self, val: u8) {
10439        unsafe {
10440            let val: u8 = ::core::mem::transmute(val);
10441            self._bitfield_1.set(8usize, 4u8, val as u64)
10442        }
10443    }
10444    #[inline]
10445    pub unsafe fn group_raw(this: *const Self) -> u8 {
10446        unsafe {
10447            ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(
10448                ::core::ptr::addr_of!((*this)._bitfield_1),
10449                8usize,
10450                4u8,
10451            ) as u8)
10452        }
10453    }
10454    #[inline]
10455    pub unsafe fn set_group_raw(this: *mut Self, val: u8) {
10456        unsafe {
10457            let val: u8 = ::core::mem::transmute(val);
10458            <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(
10459                ::core::ptr::addr_of_mut!((*this)._bitfield_1),
10460                8usize,
10461                4u8,
10462                val as u64,
10463            )
10464        }
10465    }
10466    #[inline]
10467    pub fn type_(&self) -> u8 {
10468        unsafe { ::core::mem::transmute(self._bitfield_1.get(12usize, 4u8) as u8) }
10469    }
10470    #[inline]
10471    pub fn set_type(&mut self, val: u8) {
10472        unsafe {
10473            let val: u8 = ::core::mem::transmute(val);
10474            self._bitfield_1.set(12usize, 4u8, val as u64)
10475        }
10476    }
10477    #[inline]
10478    pub unsafe fn type__raw(this: *const Self) -> u8 {
10479        unsafe {
10480            ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(
10481                ::core::ptr::addr_of!((*this)._bitfield_1),
10482                12usize,
10483                4u8,
10484            ) as u8)
10485        }
10486    }
10487    #[inline]
10488    pub unsafe fn set_type_raw(this: *mut Self, val: u8) {
10489        unsafe {
10490            let val: u8 = ::core::mem::transmute(val);
10491            <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(
10492                ::core::ptr::addr_of_mut!((*this)._bitfield_1),
10493                12usize,
10494                4u8,
10495                val as u64,
10496            )
10497        }
10498    }
10499    #[inline]
10500    pub fn new_bitfield_1(
10501        channel: u8,
10502        addrs: u8,
10503        format: u8,
10504        group: u8,
10505        type_: u8,
10506    ) -> __BindgenBitfieldUnit<[u8; 2usize]> {
10507        let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 2usize]> = Default::default();
10508        __bindgen_bitfield_unit.set(0usize, 4u8, {
10509            let channel: u8 = unsafe { ::core::mem::transmute(channel) };
10510            channel as u64
10511        });
10512        __bindgen_bitfield_unit.set(4usize, 2u8, {
10513            let addrs: u8 = unsafe { ::core::mem::transmute(addrs) };
10514            addrs as u64
10515        });
10516        __bindgen_bitfield_unit.set(6usize, 2u8, {
10517            let format: u8 = unsafe { ::core::mem::transmute(format) };
10518            format as u64
10519        });
10520        __bindgen_bitfield_unit.set(8usize, 4u8, {
10521            let group: u8 = unsafe { ::core::mem::transmute(group) };
10522            group as u64
10523        });
10524        __bindgen_bitfield_unit.set(12usize, 4u8, {
10525            let type_: u8 = unsafe { ::core::mem::transmute(type_) };
10526            type_ as u64
10527        });
10528        __bindgen_bitfield_unit
10529    }
10530}
10531pub type snd_ump_msg_flex_data_meta_t = _snd_ump_msg_flex_data_meta;
10532#[repr(C, packed)]
10533#[derive(Debug, Copy, Clone)]
10534pub struct _snd_ump_msg_set_tempo {
10535    pub status: u8,
10536    pub status_bank: u8,
10537    pub _bitfield_align_1: [u8; 0],
10538    pub _bitfield_1: __BindgenBitfieldUnit<[u8; 2usize]>,
10539    pub tempo: u32,
10540    pub reserved: [u32; 2usize],
10541}
10542impl _snd_ump_msg_set_tempo {
10543    #[inline]
10544    pub fn channel(&self) -> u8 {
10545        unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 4u8) as u8) }
10546    }
10547    #[inline]
10548    pub fn set_channel(&mut self, val: u8) {
10549        unsafe {
10550            let val: u8 = ::core::mem::transmute(val);
10551            self._bitfield_1.set(0usize, 4u8, val as u64)
10552        }
10553    }
10554    #[inline]
10555    pub unsafe fn channel_raw(this: *const Self) -> u8 {
10556        unsafe {
10557            ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(
10558                ::core::ptr::addr_of!((*this)._bitfield_1),
10559                0usize,
10560                4u8,
10561            ) as u8)
10562        }
10563    }
10564    #[inline]
10565    pub unsafe fn set_channel_raw(this: *mut Self, val: u8) {
10566        unsafe {
10567            let val: u8 = ::core::mem::transmute(val);
10568            <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(
10569                ::core::ptr::addr_of_mut!((*this)._bitfield_1),
10570                0usize,
10571                4u8,
10572                val as u64,
10573            )
10574        }
10575    }
10576    #[inline]
10577    pub fn addrs(&self) -> u8 {
10578        unsafe { ::core::mem::transmute(self._bitfield_1.get(4usize, 2u8) as u8) }
10579    }
10580    #[inline]
10581    pub fn set_addrs(&mut self, val: u8) {
10582        unsafe {
10583            let val: u8 = ::core::mem::transmute(val);
10584            self._bitfield_1.set(4usize, 2u8, val as u64)
10585        }
10586    }
10587    #[inline]
10588    pub unsafe fn addrs_raw(this: *const Self) -> u8 {
10589        unsafe {
10590            ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(
10591                ::core::ptr::addr_of!((*this)._bitfield_1),
10592                4usize,
10593                2u8,
10594            ) as u8)
10595        }
10596    }
10597    #[inline]
10598    pub unsafe fn set_addrs_raw(this: *mut Self, val: u8) {
10599        unsafe {
10600            let val: u8 = ::core::mem::transmute(val);
10601            <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(
10602                ::core::ptr::addr_of_mut!((*this)._bitfield_1),
10603                4usize,
10604                2u8,
10605                val as u64,
10606            )
10607        }
10608    }
10609    #[inline]
10610    pub fn format(&self) -> u8 {
10611        unsafe { ::core::mem::transmute(self._bitfield_1.get(6usize, 2u8) as u8) }
10612    }
10613    #[inline]
10614    pub fn set_format(&mut self, val: u8) {
10615        unsafe {
10616            let val: u8 = ::core::mem::transmute(val);
10617            self._bitfield_1.set(6usize, 2u8, val as u64)
10618        }
10619    }
10620    #[inline]
10621    pub unsafe fn format_raw(this: *const Self) -> u8 {
10622        unsafe {
10623            ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(
10624                ::core::ptr::addr_of!((*this)._bitfield_1),
10625                6usize,
10626                2u8,
10627            ) as u8)
10628        }
10629    }
10630    #[inline]
10631    pub unsafe fn set_format_raw(this: *mut Self, val: u8) {
10632        unsafe {
10633            let val: u8 = ::core::mem::transmute(val);
10634            <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(
10635                ::core::ptr::addr_of_mut!((*this)._bitfield_1),
10636                6usize,
10637                2u8,
10638                val as u64,
10639            )
10640        }
10641    }
10642    #[inline]
10643    pub fn group(&self) -> u8 {
10644        unsafe { ::core::mem::transmute(self._bitfield_1.get(8usize, 4u8) as u8) }
10645    }
10646    #[inline]
10647    pub fn set_group(&mut self, val: u8) {
10648        unsafe {
10649            let val: u8 = ::core::mem::transmute(val);
10650            self._bitfield_1.set(8usize, 4u8, val as u64)
10651        }
10652    }
10653    #[inline]
10654    pub unsafe fn group_raw(this: *const Self) -> u8 {
10655        unsafe {
10656            ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(
10657                ::core::ptr::addr_of!((*this)._bitfield_1),
10658                8usize,
10659                4u8,
10660            ) as u8)
10661        }
10662    }
10663    #[inline]
10664    pub unsafe fn set_group_raw(this: *mut Self, val: u8) {
10665        unsafe {
10666            let val: u8 = ::core::mem::transmute(val);
10667            <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(
10668                ::core::ptr::addr_of_mut!((*this)._bitfield_1),
10669                8usize,
10670                4u8,
10671                val as u64,
10672            )
10673        }
10674    }
10675    #[inline]
10676    pub fn type_(&self) -> u8 {
10677        unsafe { ::core::mem::transmute(self._bitfield_1.get(12usize, 4u8) as u8) }
10678    }
10679    #[inline]
10680    pub fn set_type(&mut self, val: u8) {
10681        unsafe {
10682            let val: u8 = ::core::mem::transmute(val);
10683            self._bitfield_1.set(12usize, 4u8, val as u64)
10684        }
10685    }
10686    #[inline]
10687    pub unsafe fn type__raw(this: *const Self) -> u8 {
10688        unsafe {
10689            ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(
10690                ::core::ptr::addr_of!((*this)._bitfield_1),
10691                12usize,
10692                4u8,
10693            ) as u8)
10694        }
10695    }
10696    #[inline]
10697    pub unsafe fn set_type_raw(this: *mut Self, val: u8) {
10698        unsafe {
10699            let val: u8 = ::core::mem::transmute(val);
10700            <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(
10701                ::core::ptr::addr_of_mut!((*this)._bitfield_1),
10702                12usize,
10703                4u8,
10704                val as u64,
10705            )
10706        }
10707    }
10708    #[inline]
10709    pub fn new_bitfield_1(
10710        channel: u8,
10711        addrs: u8,
10712        format: u8,
10713        group: u8,
10714        type_: u8,
10715    ) -> __BindgenBitfieldUnit<[u8; 2usize]> {
10716        let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 2usize]> = Default::default();
10717        __bindgen_bitfield_unit.set(0usize, 4u8, {
10718            let channel: u8 = unsafe { ::core::mem::transmute(channel) };
10719            channel as u64
10720        });
10721        __bindgen_bitfield_unit.set(4usize, 2u8, {
10722            let addrs: u8 = unsafe { ::core::mem::transmute(addrs) };
10723            addrs as u64
10724        });
10725        __bindgen_bitfield_unit.set(6usize, 2u8, {
10726            let format: u8 = unsafe { ::core::mem::transmute(format) };
10727            format as u64
10728        });
10729        __bindgen_bitfield_unit.set(8usize, 4u8, {
10730            let group: u8 = unsafe { ::core::mem::transmute(group) };
10731            group as u64
10732        });
10733        __bindgen_bitfield_unit.set(12usize, 4u8, {
10734            let type_: u8 = unsafe { ::core::mem::transmute(type_) };
10735            type_ as u64
10736        });
10737        __bindgen_bitfield_unit
10738    }
10739}
10740pub type snd_ump_msg_set_tempo_t = _snd_ump_msg_set_tempo;
10741#[repr(C, packed)]
10742#[derive(Debug, Copy, Clone)]
10743pub struct _snd_ump_msg_set_time_sig {
10744    pub status: u8,
10745    pub status_bank: u8,
10746    pub _bitfield_align_1: [u8; 0],
10747    pub _bitfield_1: __BindgenBitfieldUnit<[u8; 2usize]>,
10748    pub reserved1: u8,
10749    pub num_notes: u8,
10750    pub denominator: u8,
10751    pub numerator: u8,
10752    pub reserved: [u32; 2usize],
10753}
10754impl _snd_ump_msg_set_time_sig {
10755    #[inline]
10756    pub fn channel(&self) -> u8 {
10757        unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 4u8) as u8) }
10758    }
10759    #[inline]
10760    pub fn set_channel(&mut self, val: u8) {
10761        unsafe {
10762            let val: u8 = ::core::mem::transmute(val);
10763            self._bitfield_1.set(0usize, 4u8, val as u64)
10764        }
10765    }
10766    #[inline]
10767    pub unsafe fn channel_raw(this: *const Self) -> u8 {
10768        unsafe {
10769            ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(
10770                ::core::ptr::addr_of!((*this)._bitfield_1),
10771                0usize,
10772                4u8,
10773            ) as u8)
10774        }
10775    }
10776    #[inline]
10777    pub unsafe fn set_channel_raw(this: *mut Self, val: u8) {
10778        unsafe {
10779            let val: u8 = ::core::mem::transmute(val);
10780            <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(
10781                ::core::ptr::addr_of_mut!((*this)._bitfield_1),
10782                0usize,
10783                4u8,
10784                val as u64,
10785            )
10786        }
10787    }
10788    #[inline]
10789    pub fn addrs(&self) -> u8 {
10790        unsafe { ::core::mem::transmute(self._bitfield_1.get(4usize, 2u8) as u8) }
10791    }
10792    #[inline]
10793    pub fn set_addrs(&mut self, val: u8) {
10794        unsafe {
10795            let val: u8 = ::core::mem::transmute(val);
10796            self._bitfield_1.set(4usize, 2u8, val as u64)
10797        }
10798    }
10799    #[inline]
10800    pub unsafe fn addrs_raw(this: *const Self) -> u8 {
10801        unsafe {
10802            ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(
10803                ::core::ptr::addr_of!((*this)._bitfield_1),
10804                4usize,
10805                2u8,
10806            ) as u8)
10807        }
10808    }
10809    #[inline]
10810    pub unsafe fn set_addrs_raw(this: *mut Self, val: u8) {
10811        unsafe {
10812            let val: u8 = ::core::mem::transmute(val);
10813            <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(
10814                ::core::ptr::addr_of_mut!((*this)._bitfield_1),
10815                4usize,
10816                2u8,
10817                val as u64,
10818            )
10819        }
10820    }
10821    #[inline]
10822    pub fn format(&self) -> u8 {
10823        unsafe { ::core::mem::transmute(self._bitfield_1.get(6usize, 2u8) as u8) }
10824    }
10825    #[inline]
10826    pub fn set_format(&mut self, val: u8) {
10827        unsafe {
10828            let val: u8 = ::core::mem::transmute(val);
10829            self._bitfield_1.set(6usize, 2u8, val as u64)
10830        }
10831    }
10832    #[inline]
10833    pub unsafe fn format_raw(this: *const Self) -> u8 {
10834        unsafe {
10835            ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(
10836                ::core::ptr::addr_of!((*this)._bitfield_1),
10837                6usize,
10838                2u8,
10839            ) as u8)
10840        }
10841    }
10842    #[inline]
10843    pub unsafe fn set_format_raw(this: *mut Self, val: u8) {
10844        unsafe {
10845            let val: u8 = ::core::mem::transmute(val);
10846            <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(
10847                ::core::ptr::addr_of_mut!((*this)._bitfield_1),
10848                6usize,
10849                2u8,
10850                val as u64,
10851            )
10852        }
10853    }
10854    #[inline]
10855    pub fn group(&self) -> u8 {
10856        unsafe { ::core::mem::transmute(self._bitfield_1.get(8usize, 4u8) as u8) }
10857    }
10858    #[inline]
10859    pub fn set_group(&mut self, val: u8) {
10860        unsafe {
10861            let val: u8 = ::core::mem::transmute(val);
10862            self._bitfield_1.set(8usize, 4u8, val as u64)
10863        }
10864    }
10865    #[inline]
10866    pub unsafe fn group_raw(this: *const Self) -> u8 {
10867        unsafe {
10868            ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(
10869                ::core::ptr::addr_of!((*this)._bitfield_1),
10870                8usize,
10871                4u8,
10872            ) as u8)
10873        }
10874    }
10875    #[inline]
10876    pub unsafe fn set_group_raw(this: *mut Self, val: u8) {
10877        unsafe {
10878            let val: u8 = ::core::mem::transmute(val);
10879            <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(
10880                ::core::ptr::addr_of_mut!((*this)._bitfield_1),
10881                8usize,
10882                4u8,
10883                val as u64,
10884            )
10885        }
10886    }
10887    #[inline]
10888    pub fn type_(&self) -> u8 {
10889        unsafe { ::core::mem::transmute(self._bitfield_1.get(12usize, 4u8) as u8) }
10890    }
10891    #[inline]
10892    pub fn set_type(&mut self, val: u8) {
10893        unsafe {
10894            let val: u8 = ::core::mem::transmute(val);
10895            self._bitfield_1.set(12usize, 4u8, val as u64)
10896        }
10897    }
10898    #[inline]
10899    pub unsafe fn type__raw(this: *const Self) -> u8 {
10900        unsafe {
10901            ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(
10902                ::core::ptr::addr_of!((*this)._bitfield_1),
10903                12usize,
10904                4u8,
10905            ) as u8)
10906        }
10907    }
10908    #[inline]
10909    pub unsafe fn set_type_raw(this: *mut Self, val: u8) {
10910        unsafe {
10911            let val: u8 = ::core::mem::transmute(val);
10912            <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(
10913                ::core::ptr::addr_of_mut!((*this)._bitfield_1),
10914                12usize,
10915                4u8,
10916                val as u64,
10917            )
10918        }
10919    }
10920    #[inline]
10921    pub fn new_bitfield_1(
10922        channel: u8,
10923        addrs: u8,
10924        format: u8,
10925        group: u8,
10926        type_: u8,
10927    ) -> __BindgenBitfieldUnit<[u8; 2usize]> {
10928        let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 2usize]> = Default::default();
10929        __bindgen_bitfield_unit.set(0usize, 4u8, {
10930            let channel: u8 = unsafe { ::core::mem::transmute(channel) };
10931            channel as u64
10932        });
10933        __bindgen_bitfield_unit.set(4usize, 2u8, {
10934            let addrs: u8 = unsafe { ::core::mem::transmute(addrs) };
10935            addrs as u64
10936        });
10937        __bindgen_bitfield_unit.set(6usize, 2u8, {
10938            let format: u8 = unsafe { ::core::mem::transmute(format) };
10939            format as u64
10940        });
10941        __bindgen_bitfield_unit.set(8usize, 4u8, {
10942            let group: u8 = unsafe { ::core::mem::transmute(group) };
10943            group as u64
10944        });
10945        __bindgen_bitfield_unit.set(12usize, 4u8, {
10946            let type_: u8 = unsafe { ::core::mem::transmute(type_) };
10947            type_ as u64
10948        });
10949        __bindgen_bitfield_unit
10950    }
10951}
10952pub type snd_ump_msg_set_time_sig_t = _snd_ump_msg_set_time_sig;
10953#[repr(C, packed)]
10954#[derive(Debug, Copy, Clone)]
10955pub struct _snd_ump_msg_set_metronome {
10956    pub status: u8,
10957    pub status_bank: u8,
10958    pub _bitfield_align_1: [u8; 0],
10959    pub _bitfield_1: __BindgenBitfieldUnit<[u8; 2usize]>,
10960    pub bar_accent_3: u8,
10961    pub bar_accent_2: u8,
10962    pub bar_accent_1: u8,
10963    pub clocks_primary: u8,
10964    pub reserved1: u16,
10965    pub subdivision_2: u8,
10966    pub subdivision_1: u8,
10967    pub reserved2: u32,
10968}
10969impl _snd_ump_msg_set_metronome {
10970    #[inline]
10971    pub fn channel(&self) -> u8 {
10972        unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 4u8) as u8) }
10973    }
10974    #[inline]
10975    pub fn set_channel(&mut self, val: u8) {
10976        unsafe {
10977            let val: u8 = ::core::mem::transmute(val);
10978            self._bitfield_1.set(0usize, 4u8, val as u64)
10979        }
10980    }
10981    #[inline]
10982    pub unsafe fn channel_raw(this: *const Self) -> u8 {
10983        unsafe {
10984            ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(
10985                ::core::ptr::addr_of!((*this)._bitfield_1),
10986                0usize,
10987                4u8,
10988            ) as u8)
10989        }
10990    }
10991    #[inline]
10992    pub unsafe fn set_channel_raw(this: *mut Self, val: u8) {
10993        unsafe {
10994            let val: u8 = ::core::mem::transmute(val);
10995            <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(
10996                ::core::ptr::addr_of_mut!((*this)._bitfield_1),
10997                0usize,
10998                4u8,
10999                val as u64,
11000            )
11001        }
11002    }
11003    #[inline]
11004    pub fn addrs(&self) -> u8 {
11005        unsafe { ::core::mem::transmute(self._bitfield_1.get(4usize, 2u8) as u8) }
11006    }
11007    #[inline]
11008    pub fn set_addrs(&mut self, val: u8) {
11009        unsafe {
11010            let val: u8 = ::core::mem::transmute(val);
11011            self._bitfield_1.set(4usize, 2u8, val as u64)
11012        }
11013    }
11014    #[inline]
11015    pub unsafe fn addrs_raw(this: *const Self) -> u8 {
11016        unsafe {
11017            ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(
11018                ::core::ptr::addr_of!((*this)._bitfield_1),
11019                4usize,
11020                2u8,
11021            ) as u8)
11022        }
11023    }
11024    #[inline]
11025    pub unsafe fn set_addrs_raw(this: *mut Self, val: u8) {
11026        unsafe {
11027            let val: u8 = ::core::mem::transmute(val);
11028            <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(
11029                ::core::ptr::addr_of_mut!((*this)._bitfield_1),
11030                4usize,
11031                2u8,
11032                val as u64,
11033            )
11034        }
11035    }
11036    #[inline]
11037    pub fn format(&self) -> u8 {
11038        unsafe { ::core::mem::transmute(self._bitfield_1.get(6usize, 2u8) as u8) }
11039    }
11040    #[inline]
11041    pub fn set_format(&mut self, val: u8) {
11042        unsafe {
11043            let val: u8 = ::core::mem::transmute(val);
11044            self._bitfield_1.set(6usize, 2u8, val as u64)
11045        }
11046    }
11047    #[inline]
11048    pub unsafe fn format_raw(this: *const Self) -> u8 {
11049        unsafe {
11050            ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(
11051                ::core::ptr::addr_of!((*this)._bitfield_1),
11052                6usize,
11053                2u8,
11054            ) as u8)
11055        }
11056    }
11057    #[inline]
11058    pub unsafe fn set_format_raw(this: *mut Self, val: u8) {
11059        unsafe {
11060            let val: u8 = ::core::mem::transmute(val);
11061            <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(
11062                ::core::ptr::addr_of_mut!((*this)._bitfield_1),
11063                6usize,
11064                2u8,
11065                val as u64,
11066            )
11067        }
11068    }
11069    #[inline]
11070    pub fn group(&self) -> u8 {
11071        unsafe { ::core::mem::transmute(self._bitfield_1.get(8usize, 4u8) as u8) }
11072    }
11073    #[inline]
11074    pub fn set_group(&mut self, val: u8) {
11075        unsafe {
11076            let val: u8 = ::core::mem::transmute(val);
11077            self._bitfield_1.set(8usize, 4u8, val as u64)
11078        }
11079    }
11080    #[inline]
11081    pub unsafe fn group_raw(this: *const Self) -> u8 {
11082        unsafe {
11083            ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(
11084                ::core::ptr::addr_of!((*this)._bitfield_1),
11085                8usize,
11086                4u8,
11087            ) as u8)
11088        }
11089    }
11090    #[inline]
11091    pub unsafe fn set_group_raw(this: *mut Self, val: u8) {
11092        unsafe {
11093            let val: u8 = ::core::mem::transmute(val);
11094            <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(
11095                ::core::ptr::addr_of_mut!((*this)._bitfield_1),
11096                8usize,
11097                4u8,
11098                val as u64,
11099            )
11100        }
11101    }
11102    #[inline]
11103    pub fn type_(&self) -> u8 {
11104        unsafe { ::core::mem::transmute(self._bitfield_1.get(12usize, 4u8) as u8) }
11105    }
11106    #[inline]
11107    pub fn set_type(&mut self, val: u8) {
11108        unsafe {
11109            let val: u8 = ::core::mem::transmute(val);
11110            self._bitfield_1.set(12usize, 4u8, val as u64)
11111        }
11112    }
11113    #[inline]
11114    pub unsafe fn type__raw(this: *const Self) -> u8 {
11115        unsafe {
11116            ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(
11117                ::core::ptr::addr_of!((*this)._bitfield_1),
11118                12usize,
11119                4u8,
11120            ) as u8)
11121        }
11122    }
11123    #[inline]
11124    pub unsafe fn set_type_raw(this: *mut Self, val: u8) {
11125        unsafe {
11126            let val: u8 = ::core::mem::transmute(val);
11127            <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(
11128                ::core::ptr::addr_of_mut!((*this)._bitfield_1),
11129                12usize,
11130                4u8,
11131                val as u64,
11132            )
11133        }
11134    }
11135    #[inline]
11136    pub fn new_bitfield_1(
11137        channel: u8,
11138        addrs: u8,
11139        format: u8,
11140        group: u8,
11141        type_: u8,
11142    ) -> __BindgenBitfieldUnit<[u8; 2usize]> {
11143        let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 2usize]> = Default::default();
11144        __bindgen_bitfield_unit.set(0usize, 4u8, {
11145            let channel: u8 = unsafe { ::core::mem::transmute(channel) };
11146            channel as u64
11147        });
11148        __bindgen_bitfield_unit.set(4usize, 2u8, {
11149            let addrs: u8 = unsafe { ::core::mem::transmute(addrs) };
11150            addrs as u64
11151        });
11152        __bindgen_bitfield_unit.set(6usize, 2u8, {
11153            let format: u8 = unsafe { ::core::mem::transmute(format) };
11154            format as u64
11155        });
11156        __bindgen_bitfield_unit.set(8usize, 4u8, {
11157            let group: u8 = unsafe { ::core::mem::transmute(group) };
11158            group as u64
11159        });
11160        __bindgen_bitfield_unit.set(12usize, 4u8, {
11161            let type_: u8 = unsafe { ::core::mem::transmute(type_) };
11162            type_ as u64
11163        });
11164        __bindgen_bitfield_unit
11165    }
11166}
11167pub type snd_ump_msg_set_metronome_t = _snd_ump_msg_set_metronome;
11168#[repr(C, packed)]
11169#[derive(Debug, Copy, Clone)]
11170pub struct _snd_ump_msg_set_key_sig {
11171    pub status: u8,
11172    pub status_bank: u8,
11173    pub _bitfield_align_1: [u8; 0],
11174    pub _bitfield_1: __BindgenBitfieldUnit<[u8; 2usize]>,
11175    pub reserved1: [u8; 3usize],
11176    pub _bitfield_align_2: [u8; 0],
11177    pub _bitfield_2: __BindgenBitfieldUnit<[u8; 1usize]>,
11178    pub reserved2: [u32; 2usize],
11179}
11180impl _snd_ump_msg_set_key_sig {
11181    #[inline]
11182    pub fn channel(&self) -> u8 {
11183        unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 4u8) as u8) }
11184    }
11185    #[inline]
11186    pub fn set_channel(&mut self, val: u8) {
11187        unsafe {
11188            let val: u8 = ::core::mem::transmute(val);
11189            self._bitfield_1.set(0usize, 4u8, val as u64)
11190        }
11191    }
11192    #[inline]
11193    pub unsafe fn channel_raw(this: *const Self) -> u8 {
11194        unsafe {
11195            ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(
11196                ::core::ptr::addr_of!((*this)._bitfield_1),
11197                0usize,
11198                4u8,
11199            ) as u8)
11200        }
11201    }
11202    #[inline]
11203    pub unsafe fn set_channel_raw(this: *mut Self, val: u8) {
11204        unsafe {
11205            let val: u8 = ::core::mem::transmute(val);
11206            <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(
11207                ::core::ptr::addr_of_mut!((*this)._bitfield_1),
11208                0usize,
11209                4u8,
11210                val as u64,
11211            )
11212        }
11213    }
11214    #[inline]
11215    pub fn addrs(&self) -> u8 {
11216        unsafe { ::core::mem::transmute(self._bitfield_1.get(4usize, 2u8) as u8) }
11217    }
11218    #[inline]
11219    pub fn set_addrs(&mut self, val: u8) {
11220        unsafe {
11221            let val: u8 = ::core::mem::transmute(val);
11222            self._bitfield_1.set(4usize, 2u8, val as u64)
11223        }
11224    }
11225    #[inline]
11226    pub unsafe fn addrs_raw(this: *const Self) -> u8 {
11227        unsafe {
11228            ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(
11229                ::core::ptr::addr_of!((*this)._bitfield_1),
11230                4usize,
11231                2u8,
11232            ) as u8)
11233        }
11234    }
11235    #[inline]
11236    pub unsafe fn set_addrs_raw(this: *mut Self, val: u8) {
11237        unsafe {
11238            let val: u8 = ::core::mem::transmute(val);
11239            <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(
11240                ::core::ptr::addr_of_mut!((*this)._bitfield_1),
11241                4usize,
11242                2u8,
11243                val as u64,
11244            )
11245        }
11246    }
11247    #[inline]
11248    pub fn format(&self) -> u8 {
11249        unsafe { ::core::mem::transmute(self._bitfield_1.get(6usize, 2u8) as u8) }
11250    }
11251    #[inline]
11252    pub fn set_format(&mut self, val: u8) {
11253        unsafe {
11254            let val: u8 = ::core::mem::transmute(val);
11255            self._bitfield_1.set(6usize, 2u8, val as u64)
11256        }
11257    }
11258    #[inline]
11259    pub unsafe fn format_raw(this: *const Self) -> u8 {
11260        unsafe {
11261            ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(
11262                ::core::ptr::addr_of!((*this)._bitfield_1),
11263                6usize,
11264                2u8,
11265            ) as u8)
11266        }
11267    }
11268    #[inline]
11269    pub unsafe fn set_format_raw(this: *mut Self, val: u8) {
11270        unsafe {
11271            let val: u8 = ::core::mem::transmute(val);
11272            <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(
11273                ::core::ptr::addr_of_mut!((*this)._bitfield_1),
11274                6usize,
11275                2u8,
11276                val as u64,
11277            )
11278        }
11279    }
11280    #[inline]
11281    pub fn group(&self) -> u8 {
11282        unsafe { ::core::mem::transmute(self._bitfield_1.get(8usize, 4u8) as u8) }
11283    }
11284    #[inline]
11285    pub fn set_group(&mut self, val: u8) {
11286        unsafe {
11287            let val: u8 = ::core::mem::transmute(val);
11288            self._bitfield_1.set(8usize, 4u8, val as u64)
11289        }
11290    }
11291    #[inline]
11292    pub unsafe fn group_raw(this: *const Self) -> u8 {
11293        unsafe {
11294            ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(
11295                ::core::ptr::addr_of!((*this)._bitfield_1),
11296                8usize,
11297                4u8,
11298            ) as u8)
11299        }
11300    }
11301    #[inline]
11302    pub unsafe fn set_group_raw(this: *mut Self, val: u8) {
11303        unsafe {
11304            let val: u8 = ::core::mem::transmute(val);
11305            <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(
11306                ::core::ptr::addr_of_mut!((*this)._bitfield_1),
11307                8usize,
11308                4u8,
11309                val as u64,
11310            )
11311        }
11312    }
11313    #[inline]
11314    pub fn type_(&self) -> u8 {
11315        unsafe { ::core::mem::transmute(self._bitfield_1.get(12usize, 4u8) as u8) }
11316    }
11317    #[inline]
11318    pub fn set_type(&mut self, val: u8) {
11319        unsafe {
11320            let val: u8 = ::core::mem::transmute(val);
11321            self._bitfield_1.set(12usize, 4u8, val as u64)
11322        }
11323    }
11324    #[inline]
11325    pub unsafe fn type__raw(this: *const Self) -> u8 {
11326        unsafe {
11327            ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(
11328                ::core::ptr::addr_of!((*this)._bitfield_1),
11329                12usize,
11330                4u8,
11331            ) as u8)
11332        }
11333    }
11334    #[inline]
11335    pub unsafe fn set_type_raw(this: *mut Self, val: u8) {
11336        unsafe {
11337            let val: u8 = ::core::mem::transmute(val);
11338            <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(
11339                ::core::ptr::addr_of_mut!((*this)._bitfield_1),
11340                12usize,
11341                4u8,
11342                val as u64,
11343            )
11344        }
11345    }
11346    #[inline]
11347    pub fn new_bitfield_1(
11348        channel: u8,
11349        addrs: u8,
11350        format: u8,
11351        group: u8,
11352        type_: u8,
11353    ) -> __BindgenBitfieldUnit<[u8; 2usize]> {
11354        let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 2usize]> = Default::default();
11355        __bindgen_bitfield_unit.set(0usize, 4u8, {
11356            let channel: u8 = unsafe { ::core::mem::transmute(channel) };
11357            channel as u64
11358        });
11359        __bindgen_bitfield_unit.set(4usize, 2u8, {
11360            let addrs: u8 = unsafe { ::core::mem::transmute(addrs) };
11361            addrs as u64
11362        });
11363        __bindgen_bitfield_unit.set(6usize, 2u8, {
11364            let format: u8 = unsafe { ::core::mem::transmute(format) };
11365            format as u64
11366        });
11367        __bindgen_bitfield_unit.set(8usize, 4u8, {
11368            let group: u8 = unsafe { ::core::mem::transmute(group) };
11369            group as u64
11370        });
11371        __bindgen_bitfield_unit.set(12usize, 4u8, {
11372            let type_: u8 = unsafe { ::core::mem::transmute(type_) };
11373            type_ as u64
11374        });
11375        __bindgen_bitfield_unit
11376    }
11377    #[inline]
11378    pub fn tonic_note(&self) -> u8 {
11379        unsafe { ::core::mem::transmute(self._bitfield_2.get(0usize, 4u8) as u8) }
11380    }
11381    #[inline]
11382    pub fn set_tonic_note(&mut self, val: u8) {
11383        unsafe {
11384            let val: u8 = ::core::mem::transmute(val);
11385            self._bitfield_2.set(0usize, 4u8, val as u64)
11386        }
11387    }
11388    #[inline]
11389    pub unsafe fn tonic_note_raw(this: *const Self) -> u8 {
11390        unsafe {
11391            ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get(
11392                ::core::ptr::addr_of!((*this)._bitfield_2),
11393                0usize,
11394                4u8,
11395            ) as u8)
11396        }
11397    }
11398    #[inline]
11399    pub unsafe fn set_tonic_note_raw(this: *mut Self, val: u8) {
11400        unsafe {
11401            let val: u8 = ::core::mem::transmute(val);
11402            <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set(
11403                ::core::ptr::addr_of_mut!((*this)._bitfield_2),
11404                0usize,
11405                4u8,
11406                val as u64,
11407            )
11408        }
11409    }
11410    #[inline]
11411    pub fn sharps_flats(&self) -> u8 {
11412        unsafe { ::core::mem::transmute(self._bitfield_2.get(4usize, 4u8) as u8) }
11413    }
11414    #[inline]
11415    pub fn set_sharps_flats(&mut self, val: u8) {
11416        unsafe {
11417            let val: u8 = ::core::mem::transmute(val);
11418            self._bitfield_2.set(4usize, 4u8, val as u64)
11419        }
11420    }
11421    #[inline]
11422    pub unsafe fn sharps_flats_raw(this: *const Self) -> u8 {
11423        unsafe {
11424            ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get(
11425                ::core::ptr::addr_of!((*this)._bitfield_2),
11426                4usize,
11427                4u8,
11428            ) as u8)
11429        }
11430    }
11431    #[inline]
11432    pub unsafe fn set_sharps_flats_raw(this: *mut Self, val: u8) {
11433        unsafe {
11434            let val: u8 = ::core::mem::transmute(val);
11435            <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set(
11436                ::core::ptr::addr_of_mut!((*this)._bitfield_2),
11437                4usize,
11438                4u8,
11439                val as u64,
11440            )
11441        }
11442    }
11443    #[inline]
11444    pub fn new_bitfield_2(tonic_note: u8, sharps_flats: u8) -> __BindgenBitfieldUnit<[u8; 1usize]> {
11445        let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 1usize]> = Default::default();
11446        __bindgen_bitfield_unit.set(0usize, 4u8, {
11447            let tonic_note: u8 = unsafe { ::core::mem::transmute(tonic_note) };
11448            tonic_note as u64
11449        });
11450        __bindgen_bitfield_unit.set(4usize, 4u8, {
11451            let sharps_flats: u8 = unsafe { ::core::mem::transmute(sharps_flats) };
11452            sharps_flats as u64
11453        });
11454        __bindgen_bitfield_unit
11455    }
11456}
11457pub type snd_ump_msg_set_key_sig_t = _snd_ump_msg_set_key_sig;
11458#[repr(C, packed)]
11459#[derive(Debug, Copy, Clone)]
11460pub struct _snd_ump_msg_set_chord_name {
11461    pub status: u8,
11462    pub status_bank: u8,
11463    pub _bitfield_align_1: [u8; 0],
11464    pub _bitfield_1: __BindgenBitfieldUnit<[u8; 4usize]>,
11465    pub chord_type: u8,
11466    pub _bitfield_align_2: [u8; 0],
11467    pub _bitfield_2: __BindgenBitfieldUnit<[u8; 1usize]>,
11468    pub reserved: u16,
11469    pub _bitfield_align_3: [u8; 0],
11470    pub _bitfield_3: __BindgenBitfieldUnit<[u8; 4usize]>,
11471    pub bass_type: u8,
11472    pub _bitfield_align_4: [u8; 0],
11473    pub _bitfield_4: __BindgenBitfieldUnit<[u8; 1usize]>,
11474}
11475impl _snd_ump_msg_set_chord_name {
11476    #[inline]
11477    pub fn channel(&self) -> u8 {
11478        unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 4u8) as u8) }
11479    }
11480    #[inline]
11481    pub fn set_channel(&mut self, val: u8) {
11482        unsafe {
11483            let val: u8 = ::core::mem::transmute(val);
11484            self._bitfield_1.set(0usize, 4u8, val as u64)
11485        }
11486    }
11487    #[inline]
11488    pub unsafe fn channel_raw(this: *const Self) -> u8 {
11489        unsafe {
11490            ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(
11491                ::core::ptr::addr_of!((*this)._bitfield_1),
11492                0usize,
11493                4u8,
11494            ) as u8)
11495        }
11496    }
11497    #[inline]
11498    pub unsafe fn set_channel_raw(this: *mut Self, val: u8) {
11499        unsafe {
11500            let val: u8 = ::core::mem::transmute(val);
11501            <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(
11502                ::core::ptr::addr_of_mut!((*this)._bitfield_1),
11503                0usize,
11504                4u8,
11505                val as u64,
11506            )
11507        }
11508    }
11509    #[inline]
11510    pub fn addrs(&self) -> u8 {
11511        unsafe { ::core::mem::transmute(self._bitfield_1.get(4usize, 2u8) as u8) }
11512    }
11513    #[inline]
11514    pub fn set_addrs(&mut self, val: u8) {
11515        unsafe {
11516            let val: u8 = ::core::mem::transmute(val);
11517            self._bitfield_1.set(4usize, 2u8, val as u64)
11518        }
11519    }
11520    #[inline]
11521    pub unsafe fn addrs_raw(this: *const Self) -> u8 {
11522        unsafe {
11523            ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(
11524                ::core::ptr::addr_of!((*this)._bitfield_1),
11525                4usize,
11526                2u8,
11527            ) as u8)
11528        }
11529    }
11530    #[inline]
11531    pub unsafe fn set_addrs_raw(this: *mut Self, val: u8) {
11532        unsafe {
11533            let val: u8 = ::core::mem::transmute(val);
11534            <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(
11535                ::core::ptr::addr_of_mut!((*this)._bitfield_1),
11536                4usize,
11537                2u8,
11538                val as u64,
11539            )
11540        }
11541    }
11542    #[inline]
11543    pub fn format(&self) -> u8 {
11544        unsafe { ::core::mem::transmute(self._bitfield_1.get(6usize, 2u8) as u8) }
11545    }
11546    #[inline]
11547    pub fn set_format(&mut self, val: u8) {
11548        unsafe {
11549            let val: u8 = ::core::mem::transmute(val);
11550            self._bitfield_1.set(6usize, 2u8, val as u64)
11551        }
11552    }
11553    #[inline]
11554    pub unsafe fn format_raw(this: *const Self) -> u8 {
11555        unsafe {
11556            ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(
11557                ::core::ptr::addr_of!((*this)._bitfield_1),
11558                6usize,
11559                2u8,
11560            ) as u8)
11561        }
11562    }
11563    #[inline]
11564    pub unsafe fn set_format_raw(this: *mut Self, val: u8) {
11565        unsafe {
11566            let val: u8 = ::core::mem::transmute(val);
11567            <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(
11568                ::core::ptr::addr_of_mut!((*this)._bitfield_1),
11569                6usize,
11570                2u8,
11571                val as u64,
11572            )
11573        }
11574    }
11575    #[inline]
11576    pub fn group(&self) -> u8 {
11577        unsafe { ::core::mem::transmute(self._bitfield_1.get(8usize, 4u8) as u8) }
11578    }
11579    #[inline]
11580    pub fn set_group(&mut self, val: u8) {
11581        unsafe {
11582            let val: u8 = ::core::mem::transmute(val);
11583            self._bitfield_1.set(8usize, 4u8, val as u64)
11584        }
11585    }
11586    #[inline]
11587    pub unsafe fn group_raw(this: *const Self) -> u8 {
11588        unsafe {
11589            ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(
11590                ::core::ptr::addr_of!((*this)._bitfield_1),
11591                8usize,
11592                4u8,
11593            ) as u8)
11594        }
11595    }
11596    #[inline]
11597    pub unsafe fn set_group_raw(this: *mut Self, val: u8) {
11598        unsafe {
11599            let val: u8 = ::core::mem::transmute(val);
11600            <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(
11601                ::core::ptr::addr_of_mut!((*this)._bitfield_1),
11602                8usize,
11603                4u8,
11604                val as u64,
11605            )
11606        }
11607    }
11608    #[inline]
11609    pub fn type_(&self) -> u8 {
11610        unsafe { ::core::mem::transmute(self._bitfield_1.get(12usize, 4u8) as u8) }
11611    }
11612    #[inline]
11613    pub fn set_type(&mut self, val: u8) {
11614        unsafe {
11615            let val: u8 = ::core::mem::transmute(val);
11616            self._bitfield_1.set(12usize, 4u8, val as u64)
11617        }
11618    }
11619    #[inline]
11620    pub unsafe fn type__raw(this: *const Self) -> u8 {
11621        unsafe {
11622            ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(
11623                ::core::ptr::addr_of!((*this)._bitfield_1),
11624                12usize,
11625                4u8,
11626            ) as u8)
11627        }
11628    }
11629    #[inline]
11630    pub unsafe fn set_type_raw(this: *mut Self, val: u8) {
11631        unsafe {
11632            let val: u8 = ::core::mem::transmute(val);
11633            <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(
11634                ::core::ptr::addr_of_mut!((*this)._bitfield_1),
11635                12usize,
11636                4u8,
11637                val as u64,
11638            )
11639        }
11640    }
11641    #[inline]
11642    pub fn alter2_degree(&self) -> u8 {
11643        unsafe { ::core::mem::transmute(self._bitfield_1.get(16usize, 4u8) as u8) }
11644    }
11645    #[inline]
11646    pub fn set_alter2_degree(&mut self, val: u8) {
11647        unsafe {
11648            let val: u8 = ::core::mem::transmute(val);
11649            self._bitfield_1.set(16usize, 4u8, val as u64)
11650        }
11651    }
11652    #[inline]
11653    pub unsafe fn alter2_degree_raw(this: *const Self) -> u8 {
11654        unsafe {
11655            ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(
11656                ::core::ptr::addr_of!((*this)._bitfield_1),
11657                16usize,
11658                4u8,
11659            ) as u8)
11660        }
11661    }
11662    #[inline]
11663    pub unsafe fn set_alter2_degree_raw(this: *mut Self, val: u8) {
11664        unsafe {
11665            let val: u8 = ::core::mem::transmute(val);
11666            <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(
11667                ::core::ptr::addr_of_mut!((*this)._bitfield_1),
11668                16usize,
11669                4u8,
11670                val as u64,
11671            )
11672        }
11673    }
11674    #[inline]
11675    pub fn alter2_type(&self) -> u8 {
11676        unsafe { ::core::mem::transmute(self._bitfield_1.get(20usize, 4u8) as u8) }
11677    }
11678    #[inline]
11679    pub fn set_alter2_type(&mut self, val: u8) {
11680        unsafe {
11681            let val: u8 = ::core::mem::transmute(val);
11682            self._bitfield_1.set(20usize, 4u8, val as u64)
11683        }
11684    }
11685    #[inline]
11686    pub unsafe fn alter2_type_raw(this: *const Self) -> u8 {
11687        unsafe {
11688            ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(
11689                ::core::ptr::addr_of!((*this)._bitfield_1),
11690                20usize,
11691                4u8,
11692            ) as u8)
11693        }
11694    }
11695    #[inline]
11696    pub unsafe fn set_alter2_type_raw(this: *mut Self, val: u8) {
11697        unsafe {
11698            let val: u8 = ::core::mem::transmute(val);
11699            <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(
11700                ::core::ptr::addr_of_mut!((*this)._bitfield_1),
11701                20usize,
11702                4u8,
11703                val as u64,
11704            )
11705        }
11706    }
11707    #[inline]
11708    pub fn alter1_degree(&self) -> u8 {
11709        unsafe { ::core::mem::transmute(self._bitfield_1.get(24usize, 4u8) as u8) }
11710    }
11711    #[inline]
11712    pub fn set_alter1_degree(&mut self, val: u8) {
11713        unsafe {
11714            let val: u8 = ::core::mem::transmute(val);
11715            self._bitfield_1.set(24usize, 4u8, val as u64)
11716        }
11717    }
11718    #[inline]
11719    pub unsafe fn alter1_degree_raw(this: *const Self) -> u8 {
11720        unsafe {
11721            ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(
11722                ::core::ptr::addr_of!((*this)._bitfield_1),
11723                24usize,
11724                4u8,
11725            ) as u8)
11726        }
11727    }
11728    #[inline]
11729    pub unsafe fn set_alter1_degree_raw(this: *mut Self, val: u8) {
11730        unsafe {
11731            let val: u8 = ::core::mem::transmute(val);
11732            <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(
11733                ::core::ptr::addr_of_mut!((*this)._bitfield_1),
11734                24usize,
11735                4u8,
11736                val as u64,
11737            )
11738        }
11739    }
11740    #[inline]
11741    pub fn alter1_type(&self) -> u8 {
11742        unsafe { ::core::mem::transmute(self._bitfield_1.get(28usize, 4u8) as u8) }
11743    }
11744    #[inline]
11745    pub fn set_alter1_type(&mut self, val: u8) {
11746        unsafe {
11747            let val: u8 = ::core::mem::transmute(val);
11748            self._bitfield_1.set(28usize, 4u8, val as u64)
11749        }
11750    }
11751    #[inline]
11752    pub unsafe fn alter1_type_raw(this: *const Self) -> u8 {
11753        unsafe {
11754            ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(
11755                ::core::ptr::addr_of!((*this)._bitfield_1),
11756                28usize,
11757                4u8,
11758            ) as u8)
11759        }
11760    }
11761    #[inline]
11762    pub unsafe fn set_alter1_type_raw(this: *mut Self, val: u8) {
11763        unsafe {
11764            let val: u8 = ::core::mem::transmute(val);
11765            <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(
11766                ::core::ptr::addr_of_mut!((*this)._bitfield_1),
11767                28usize,
11768                4u8,
11769                val as u64,
11770            )
11771        }
11772    }
11773    #[inline]
11774    pub fn new_bitfield_1(
11775        channel: u8,
11776        addrs: u8,
11777        format: u8,
11778        group: u8,
11779        type_: u8,
11780        alter2_degree: u8,
11781        alter2_type: u8,
11782        alter1_degree: u8,
11783        alter1_type: u8,
11784    ) -> __BindgenBitfieldUnit<[u8; 4usize]> {
11785        let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 4usize]> = Default::default();
11786        __bindgen_bitfield_unit.set(0usize, 4u8, {
11787            let channel: u8 = unsafe { ::core::mem::transmute(channel) };
11788            channel as u64
11789        });
11790        __bindgen_bitfield_unit.set(4usize, 2u8, {
11791            let addrs: u8 = unsafe { ::core::mem::transmute(addrs) };
11792            addrs as u64
11793        });
11794        __bindgen_bitfield_unit.set(6usize, 2u8, {
11795            let format: u8 = unsafe { ::core::mem::transmute(format) };
11796            format as u64
11797        });
11798        __bindgen_bitfield_unit.set(8usize, 4u8, {
11799            let group: u8 = unsafe { ::core::mem::transmute(group) };
11800            group as u64
11801        });
11802        __bindgen_bitfield_unit.set(12usize, 4u8, {
11803            let type_: u8 = unsafe { ::core::mem::transmute(type_) };
11804            type_ as u64
11805        });
11806        __bindgen_bitfield_unit.set(16usize, 4u8, {
11807            let alter2_degree: u8 = unsafe { ::core::mem::transmute(alter2_degree) };
11808            alter2_degree as u64
11809        });
11810        __bindgen_bitfield_unit.set(20usize, 4u8, {
11811            let alter2_type: u8 = unsafe { ::core::mem::transmute(alter2_type) };
11812            alter2_type as u64
11813        });
11814        __bindgen_bitfield_unit.set(24usize, 4u8, {
11815            let alter1_degree: u8 = unsafe { ::core::mem::transmute(alter1_degree) };
11816            alter1_degree as u64
11817        });
11818        __bindgen_bitfield_unit.set(28usize, 4u8, {
11819            let alter1_type: u8 = unsafe { ::core::mem::transmute(alter1_type) };
11820            alter1_type as u64
11821        });
11822        __bindgen_bitfield_unit
11823    }
11824    #[inline]
11825    pub fn chord_tonic(&self) -> u8 {
11826        unsafe { ::core::mem::transmute(self._bitfield_2.get(0usize, 4u8) as u8) }
11827    }
11828    #[inline]
11829    pub fn set_chord_tonic(&mut self, val: u8) {
11830        unsafe {
11831            let val: u8 = ::core::mem::transmute(val);
11832            self._bitfield_2.set(0usize, 4u8, val as u64)
11833        }
11834    }
11835    #[inline]
11836    pub unsafe fn chord_tonic_raw(this: *const Self) -> u8 {
11837        unsafe {
11838            ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get(
11839                ::core::ptr::addr_of!((*this)._bitfield_2),
11840                0usize,
11841                4u8,
11842            ) as u8)
11843        }
11844    }
11845    #[inline]
11846    pub unsafe fn set_chord_tonic_raw(this: *mut Self, val: u8) {
11847        unsafe {
11848            let val: u8 = ::core::mem::transmute(val);
11849            <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set(
11850                ::core::ptr::addr_of_mut!((*this)._bitfield_2),
11851                0usize,
11852                4u8,
11853                val as u64,
11854            )
11855        }
11856    }
11857    #[inline]
11858    pub fn tonic_sharp(&self) -> u8 {
11859        unsafe { ::core::mem::transmute(self._bitfield_2.get(4usize, 4u8) as u8) }
11860    }
11861    #[inline]
11862    pub fn set_tonic_sharp(&mut self, val: u8) {
11863        unsafe {
11864            let val: u8 = ::core::mem::transmute(val);
11865            self._bitfield_2.set(4usize, 4u8, val as u64)
11866        }
11867    }
11868    #[inline]
11869    pub unsafe fn tonic_sharp_raw(this: *const Self) -> u8 {
11870        unsafe {
11871            ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get(
11872                ::core::ptr::addr_of!((*this)._bitfield_2),
11873                4usize,
11874                4u8,
11875            ) as u8)
11876        }
11877    }
11878    #[inline]
11879    pub unsafe fn set_tonic_sharp_raw(this: *mut Self, val: u8) {
11880        unsafe {
11881            let val: u8 = ::core::mem::transmute(val);
11882            <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set(
11883                ::core::ptr::addr_of_mut!((*this)._bitfield_2),
11884                4usize,
11885                4u8,
11886                val as u64,
11887            )
11888        }
11889    }
11890    #[inline]
11891    pub fn new_bitfield_2(chord_tonic: u8, tonic_sharp: u8) -> __BindgenBitfieldUnit<[u8; 1usize]> {
11892        let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 1usize]> = Default::default();
11893        __bindgen_bitfield_unit.set(0usize, 4u8, {
11894            let chord_tonic: u8 = unsafe { ::core::mem::transmute(chord_tonic) };
11895            chord_tonic as u64
11896        });
11897        __bindgen_bitfield_unit.set(4usize, 4u8, {
11898            let tonic_sharp: u8 = unsafe { ::core::mem::transmute(tonic_sharp) };
11899            tonic_sharp as u64
11900        });
11901        __bindgen_bitfield_unit
11902    }
11903    #[inline]
11904    pub fn alter4_degree(&self) -> u8 {
11905        unsafe { ::core::mem::transmute(self._bitfield_3.get(0usize, 4u8) as u8) }
11906    }
11907    #[inline]
11908    pub fn set_alter4_degree(&mut self, val: u8) {
11909        unsafe {
11910            let val: u8 = ::core::mem::transmute(val);
11911            self._bitfield_3.set(0usize, 4u8, val as u64)
11912        }
11913    }
11914    #[inline]
11915    pub unsafe fn alter4_degree_raw(this: *const Self) -> u8 {
11916        unsafe {
11917            ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(
11918                ::core::ptr::addr_of!((*this)._bitfield_3),
11919                0usize,
11920                4u8,
11921            ) as u8)
11922        }
11923    }
11924    #[inline]
11925    pub unsafe fn set_alter4_degree_raw(this: *mut Self, val: u8) {
11926        unsafe {
11927            let val: u8 = ::core::mem::transmute(val);
11928            <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(
11929                ::core::ptr::addr_of_mut!((*this)._bitfield_3),
11930                0usize,
11931                4u8,
11932                val as u64,
11933            )
11934        }
11935    }
11936    #[inline]
11937    pub fn alter4_type(&self) -> u8 {
11938        unsafe { ::core::mem::transmute(self._bitfield_3.get(4usize, 4u8) as u8) }
11939    }
11940    #[inline]
11941    pub fn set_alter4_type(&mut self, val: u8) {
11942        unsafe {
11943            let val: u8 = ::core::mem::transmute(val);
11944            self._bitfield_3.set(4usize, 4u8, val as u64)
11945        }
11946    }
11947    #[inline]
11948    pub unsafe fn alter4_type_raw(this: *const Self) -> u8 {
11949        unsafe {
11950            ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(
11951                ::core::ptr::addr_of!((*this)._bitfield_3),
11952                4usize,
11953                4u8,
11954            ) as u8)
11955        }
11956    }
11957    #[inline]
11958    pub unsafe fn set_alter4_type_raw(this: *mut Self, val: u8) {
11959        unsafe {
11960            let val: u8 = ::core::mem::transmute(val);
11961            <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(
11962                ::core::ptr::addr_of_mut!((*this)._bitfield_3),
11963                4usize,
11964                4u8,
11965                val as u64,
11966            )
11967        }
11968    }
11969    #[inline]
11970    pub fn alter3_degree(&self) -> u8 {
11971        unsafe { ::core::mem::transmute(self._bitfield_3.get(8usize, 4u8) as u8) }
11972    }
11973    #[inline]
11974    pub fn set_alter3_degree(&mut self, val: u8) {
11975        unsafe {
11976            let val: u8 = ::core::mem::transmute(val);
11977            self._bitfield_3.set(8usize, 4u8, val as u64)
11978        }
11979    }
11980    #[inline]
11981    pub unsafe fn alter3_degree_raw(this: *const Self) -> u8 {
11982        unsafe {
11983            ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(
11984                ::core::ptr::addr_of!((*this)._bitfield_3),
11985                8usize,
11986                4u8,
11987            ) as u8)
11988        }
11989    }
11990    #[inline]
11991    pub unsafe fn set_alter3_degree_raw(this: *mut Self, val: u8) {
11992        unsafe {
11993            let val: u8 = ::core::mem::transmute(val);
11994            <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(
11995                ::core::ptr::addr_of_mut!((*this)._bitfield_3),
11996                8usize,
11997                4u8,
11998                val as u64,
11999            )
12000        }
12001    }
12002    #[inline]
12003    pub fn alter3_type(&self) -> u8 {
12004        unsafe { ::core::mem::transmute(self._bitfield_3.get(12usize, 4u8) as u8) }
12005    }
12006    #[inline]
12007    pub fn set_alter3_type(&mut self, val: u8) {
12008        unsafe {
12009            let val: u8 = ::core::mem::transmute(val);
12010            self._bitfield_3.set(12usize, 4u8, val as u64)
12011        }
12012    }
12013    #[inline]
12014    pub unsafe fn alter3_type_raw(this: *const Self) -> u8 {
12015        unsafe {
12016            ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(
12017                ::core::ptr::addr_of!((*this)._bitfield_3),
12018                12usize,
12019                4u8,
12020            ) as u8)
12021        }
12022    }
12023    #[inline]
12024    pub unsafe fn set_alter3_type_raw(this: *mut Self, val: u8) {
12025        unsafe {
12026            let val: u8 = ::core::mem::transmute(val);
12027            <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(
12028                ::core::ptr::addr_of_mut!((*this)._bitfield_3),
12029                12usize,
12030                4u8,
12031                val as u64,
12032            )
12033        }
12034    }
12035    #[inline]
12036    pub fn bass_alter2_degree(&self) -> u8 {
12037        unsafe { ::core::mem::transmute(self._bitfield_3.get(16usize, 4u8) as u8) }
12038    }
12039    #[inline]
12040    pub fn set_bass_alter2_degree(&mut self, val: u8) {
12041        unsafe {
12042            let val: u8 = ::core::mem::transmute(val);
12043            self._bitfield_3.set(16usize, 4u8, val as u64)
12044        }
12045    }
12046    #[inline]
12047    pub unsafe fn bass_alter2_degree_raw(this: *const Self) -> u8 {
12048        unsafe {
12049            ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(
12050                ::core::ptr::addr_of!((*this)._bitfield_3),
12051                16usize,
12052                4u8,
12053            ) as u8)
12054        }
12055    }
12056    #[inline]
12057    pub unsafe fn set_bass_alter2_degree_raw(this: *mut Self, val: u8) {
12058        unsafe {
12059            let val: u8 = ::core::mem::transmute(val);
12060            <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(
12061                ::core::ptr::addr_of_mut!((*this)._bitfield_3),
12062                16usize,
12063                4u8,
12064                val as u64,
12065            )
12066        }
12067    }
12068    #[inline]
12069    pub fn bass_alter2_type(&self) -> u8 {
12070        unsafe { ::core::mem::transmute(self._bitfield_3.get(20usize, 4u8) as u8) }
12071    }
12072    #[inline]
12073    pub fn set_bass_alter2_type(&mut self, val: u8) {
12074        unsafe {
12075            let val: u8 = ::core::mem::transmute(val);
12076            self._bitfield_3.set(20usize, 4u8, val as u64)
12077        }
12078    }
12079    #[inline]
12080    pub unsafe fn bass_alter2_type_raw(this: *const Self) -> u8 {
12081        unsafe {
12082            ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(
12083                ::core::ptr::addr_of!((*this)._bitfield_3),
12084                20usize,
12085                4u8,
12086            ) as u8)
12087        }
12088    }
12089    #[inline]
12090    pub unsafe fn set_bass_alter2_type_raw(this: *mut Self, val: u8) {
12091        unsafe {
12092            let val: u8 = ::core::mem::transmute(val);
12093            <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(
12094                ::core::ptr::addr_of_mut!((*this)._bitfield_3),
12095                20usize,
12096                4u8,
12097                val as u64,
12098            )
12099        }
12100    }
12101    #[inline]
12102    pub fn bass_alter1_degree(&self) -> u8 {
12103        unsafe { ::core::mem::transmute(self._bitfield_3.get(24usize, 4u8) as u8) }
12104    }
12105    #[inline]
12106    pub fn set_bass_alter1_degree(&mut self, val: u8) {
12107        unsafe {
12108            let val: u8 = ::core::mem::transmute(val);
12109            self._bitfield_3.set(24usize, 4u8, val as u64)
12110        }
12111    }
12112    #[inline]
12113    pub unsafe fn bass_alter1_degree_raw(this: *const Self) -> u8 {
12114        unsafe {
12115            ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(
12116                ::core::ptr::addr_of!((*this)._bitfield_3),
12117                24usize,
12118                4u8,
12119            ) as u8)
12120        }
12121    }
12122    #[inline]
12123    pub unsafe fn set_bass_alter1_degree_raw(this: *mut Self, val: u8) {
12124        unsafe {
12125            let val: u8 = ::core::mem::transmute(val);
12126            <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(
12127                ::core::ptr::addr_of_mut!((*this)._bitfield_3),
12128                24usize,
12129                4u8,
12130                val as u64,
12131            )
12132        }
12133    }
12134    #[inline]
12135    pub fn bass_alter1_type(&self) -> u8 {
12136        unsafe { ::core::mem::transmute(self._bitfield_3.get(28usize, 4u8) as u8) }
12137    }
12138    #[inline]
12139    pub fn set_bass_alter1_type(&mut self, val: u8) {
12140        unsafe {
12141            let val: u8 = ::core::mem::transmute(val);
12142            self._bitfield_3.set(28usize, 4u8, val as u64)
12143        }
12144    }
12145    #[inline]
12146    pub unsafe fn bass_alter1_type_raw(this: *const Self) -> u8 {
12147        unsafe {
12148            ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(
12149                ::core::ptr::addr_of!((*this)._bitfield_3),
12150                28usize,
12151                4u8,
12152            ) as u8)
12153        }
12154    }
12155    #[inline]
12156    pub unsafe fn set_bass_alter1_type_raw(this: *mut Self, val: u8) {
12157        unsafe {
12158            let val: u8 = ::core::mem::transmute(val);
12159            <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(
12160                ::core::ptr::addr_of_mut!((*this)._bitfield_3),
12161                28usize,
12162                4u8,
12163                val as u64,
12164            )
12165        }
12166    }
12167    #[inline]
12168    pub fn new_bitfield_3(
12169        alter4_degree: u8,
12170        alter4_type: u8,
12171        alter3_degree: u8,
12172        alter3_type: u8,
12173        bass_alter2_degree: u8,
12174        bass_alter2_type: u8,
12175        bass_alter1_degree: u8,
12176        bass_alter1_type: u8,
12177    ) -> __BindgenBitfieldUnit<[u8; 4usize]> {
12178        let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 4usize]> = Default::default();
12179        __bindgen_bitfield_unit.set(0usize, 4u8, {
12180            let alter4_degree: u8 = unsafe { ::core::mem::transmute(alter4_degree) };
12181            alter4_degree as u64
12182        });
12183        __bindgen_bitfield_unit.set(4usize, 4u8, {
12184            let alter4_type: u8 = unsafe { ::core::mem::transmute(alter4_type) };
12185            alter4_type as u64
12186        });
12187        __bindgen_bitfield_unit.set(8usize, 4u8, {
12188            let alter3_degree: u8 = unsafe { ::core::mem::transmute(alter3_degree) };
12189            alter3_degree as u64
12190        });
12191        __bindgen_bitfield_unit.set(12usize, 4u8, {
12192            let alter3_type: u8 = unsafe { ::core::mem::transmute(alter3_type) };
12193            alter3_type as u64
12194        });
12195        __bindgen_bitfield_unit.set(16usize, 4u8, {
12196            let bass_alter2_degree: u8 = unsafe { ::core::mem::transmute(bass_alter2_degree) };
12197            bass_alter2_degree as u64
12198        });
12199        __bindgen_bitfield_unit.set(20usize, 4u8, {
12200            let bass_alter2_type: u8 = unsafe { ::core::mem::transmute(bass_alter2_type) };
12201            bass_alter2_type as u64
12202        });
12203        __bindgen_bitfield_unit.set(24usize, 4u8, {
12204            let bass_alter1_degree: u8 = unsafe { ::core::mem::transmute(bass_alter1_degree) };
12205            bass_alter1_degree as u64
12206        });
12207        __bindgen_bitfield_unit.set(28usize, 4u8, {
12208            let bass_alter1_type: u8 = unsafe { ::core::mem::transmute(bass_alter1_type) };
12209            bass_alter1_type as u64
12210        });
12211        __bindgen_bitfield_unit
12212    }
12213    #[inline]
12214    pub fn bass_note(&self) -> u8 {
12215        unsafe { ::core::mem::transmute(self._bitfield_4.get(0usize, 4u8) as u8) }
12216    }
12217    #[inline]
12218    pub fn set_bass_note(&mut self, val: u8) {
12219        unsafe {
12220            let val: u8 = ::core::mem::transmute(val);
12221            self._bitfield_4.set(0usize, 4u8, val as u64)
12222        }
12223    }
12224    #[inline]
12225    pub unsafe fn bass_note_raw(this: *const Self) -> u8 {
12226        unsafe {
12227            ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get(
12228                ::core::ptr::addr_of!((*this)._bitfield_4),
12229                0usize,
12230                4u8,
12231            ) as u8)
12232        }
12233    }
12234    #[inline]
12235    pub unsafe fn set_bass_note_raw(this: *mut Self, val: u8) {
12236        unsafe {
12237            let val: u8 = ::core::mem::transmute(val);
12238            <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set(
12239                ::core::ptr::addr_of_mut!((*this)._bitfield_4),
12240                0usize,
12241                4u8,
12242                val as u64,
12243            )
12244        }
12245    }
12246    #[inline]
12247    pub fn bass_sharp(&self) -> u8 {
12248        unsafe { ::core::mem::transmute(self._bitfield_4.get(4usize, 4u8) as u8) }
12249    }
12250    #[inline]
12251    pub fn set_bass_sharp(&mut self, val: u8) {
12252        unsafe {
12253            let val: u8 = ::core::mem::transmute(val);
12254            self._bitfield_4.set(4usize, 4u8, val as u64)
12255        }
12256    }
12257    #[inline]
12258    pub unsafe fn bass_sharp_raw(this: *const Self) -> u8 {
12259        unsafe {
12260            ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get(
12261                ::core::ptr::addr_of!((*this)._bitfield_4),
12262                4usize,
12263                4u8,
12264            ) as u8)
12265        }
12266    }
12267    #[inline]
12268    pub unsafe fn set_bass_sharp_raw(this: *mut Self, val: u8) {
12269        unsafe {
12270            let val: u8 = ::core::mem::transmute(val);
12271            <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set(
12272                ::core::ptr::addr_of_mut!((*this)._bitfield_4),
12273                4usize,
12274                4u8,
12275                val as u64,
12276            )
12277        }
12278    }
12279    #[inline]
12280    pub fn new_bitfield_4(bass_note: u8, bass_sharp: u8) -> __BindgenBitfieldUnit<[u8; 1usize]> {
12281        let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 1usize]> = Default::default();
12282        __bindgen_bitfield_unit.set(0usize, 4u8, {
12283            let bass_note: u8 = unsafe { ::core::mem::transmute(bass_note) };
12284            bass_note as u64
12285        });
12286        __bindgen_bitfield_unit.set(4usize, 4u8, {
12287            let bass_sharp: u8 = unsafe { ::core::mem::transmute(bass_sharp) };
12288            bass_sharp as u64
12289        });
12290        __bindgen_bitfield_unit
12291    }
12292}
12293pub type snd_ump_msg_set_chord_name_t = _snd_ump_msg_set_chord_name;
12294#[repr(C)]
12295#[derive(Copy, Clone)]
12296pub union _snd_ump_msg_flex_data {
12297    pub meta: snd_ump_msg_flex_data_meta_t,
12298    pub text: snd_ump_msg_flex_data_meta_t,
12299    pub set_tempo: snd_ump_msg_set_tempo_t,
12300    pub set_time_sig: snd_ump_msg_set_time_sig_t,
12301    pub set_metronome: snd_ump_msg_set_metronome_t,
12302    pub set_key_sig: snd_ump_msg_set_key_sig_t,
12303    pub set_chord_name: snd_ump_msg_set_chord_name_t,
12304    pub hdr: snd_ump_msg_hdr_t,
12305    pub raw: [u32; 4usize],
12306}
12307pub type snd_ump_msg_flex_data_t = _snd_ump_msg_flex_data;
12308#[repr(C)]
12309#[derive(Debug, Copy, Clone)]
12310pub struct _snd_ump_msg_mixed_data_header {
12311    pub bytes: u16,
12312    pub _bitfield_align_1: [u8; 0],
12313    pub _bitfield_1: __BindgenBitfieldUnit<[u8; 2usize]>,
12314    pub chunk: u16,
12315    pub chunks: u16,
12316    pub device: u16,
12317    pub manufacturer: u16,
12318    pub sub_id_2: u16,
12319    pub sub_id_1: u16,
12320}
12321impl _snd_ump_msg_mixed_data_header {
12322    #[inline]
12323    pub fn mds_id(&self) -> u8 {
12324        unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 4u8) as u8) }
12325    }
12326    #[inline]
12327    pub fn set_mds_id(&mut self, val: u8) {
12328        unsafe {
12329            let val: u8 = ::core::mem::transmute(val);
12330            self._bitfield_1.set(0usize, 4u8, val as u64)
12331        }
12332    }
12333    #[inline]
12334    pub unsafe fn mds_id_raw(this: *const Self) -> u8 {
12335        unsafe {
12336            ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(
12337                ::core::ptr::addr_of!((*this)._bitfield_1),
12338                0usize,
12339                4u8,
12340            ) as u8)
12341        }
12342    }
12343    #[inline]
12344    pub unsafe fn set_mds_id_raw(this: *mut Self, val: u8) {
12345        unsafe {
12346            let val: u8 = ::core::mem::transmute(val);
12347            <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(
12348                ::core::ptr::addr_of_mut!((*this)._bitfield_1),
12349                0usize,
12350                4u8,
12351                val as u64,
12352            )
12353        }
12354    }
12355    #[inline]
12356    pub fn status(&self) -> u8 {
12357        unsafe { ::core::mem::transmute(self._bitfield_1.get(4usize, 4u8) as u8) }
12358    }
12359    #[inline]
12360    pub fn set_status(&mut self, val: u8) {
12361        unsafe {
12362            let val: u8 = ::core::mem::transmute(val);
12363            self._bitfield_1.set(4usize, 4u8, val as u64)
12364        }
12365    }
12366    #[inline]
12367    pub unsafe fn status_raw(this: *const Self) -> u8 {
12368        unsafe {
12369            ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(
12370                ::core::ptr::addr_of!((*this)._bitfield_1),
12371                4usize,
12372                4u8,
12373            ) as u8)
12374        }
12375    }
12376    #[inline]
12377    pub unsafe fn set_status_raw(this: *mut Self, val: u8) {
12378        unsafe {
12379            let val: u8 = ::core::mem::transmute(val);
12380            <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(
12381                ::core::ptr::addr_of_mut!((*this)._bitfield_1),
12382                4usize,
12383                4u8,
12384                val as u64,
12385            )
12386        }
12387    }
12388    #[inline]
12389    pub fn group(&self) -> u8 {
12390        unsafe { ::core::mem::transmute(self._bitfield_1.get(8usize, 4u8) as u8) }
12391    }
12392    #[inline]
12393    pub fn set_group(&mut self, val: u8) {
12394        unsafe {
12395            let val: u8 = ::core::mem::transmute(val);
12396            self._bitfield_1.set(8usize, 4u8, val as u64)
12397        }
12398    }
12399    #[inline]
12400    pub unsafe fn group_raw(this: *const Self) -> u8 {
12401        unsafe {
12402            ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(
12403                ::core::ptr::addr_of!((*this)._bitfield_1),
12404                8usize,
12405                4u8,
12406            ) as u8)
12407        }
12408    }
12409    #[inline]
12410    pub unsafe fn set_group_raw(this: *mut Self, val: u8) {
12411        unsafe {
12412            let val: u8 = ::core::mem::transmute(val);
12413            <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(
12414                ::core::ptr::addr_of_mut!((*this)._bitfield_1),
12415                8usize,
12416                4u8,
12417                val as u64,
12418            )
12419        }
12420    }
12421    #[inline]
12422    pub fn type_(&self) -> u8 {
12423        unsafe { ::core::mem::transmute(self._bitfield_1.get(12usize, 4u8) as u8) }
12424    }
12425    #[inline]
12426    pub fn set_type(&mut self, val: u8) {
12427        unsafe {
12428            let val: u8 = ::core::mem::transmute(val);
12429            self._bitfield_1.set(12usize, 4u8, val as u64)
12430        }
12431    }
12432    #[inline]
12433    pub unsafe fn type__raw(this: *const Self) -> u8 {
12434        unsafe {
12435            ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(
12436                ::core::ptr::addr_of!((*this)._bitfield_1),
12437                12usize,
12438                4u8,
12439            ) as u8)
12440        }
12441    }
12442    #[inline]
12443    pub unsafe fn set_type_raw(this: *mut Self, val: u8) {
12444        unsafe {
12445            let val: u8 = ::core::mem::transmute(val);
12446            <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(
12447                ::core::ptr::addr_of_mut!((*this)._bitfield_1),
12448                12usize,
12449                4u8,
12450                val as u64,
12451            )
12452        }
12453    }
12454    #[inline]
12455    pub fn new_bitfield_1(
12456        mds_id: u8,
12457        status: u8,
12458        group: u8,
12459        type_: u8,
12460    ) -> __BindgenBitfieldUnit<[u8; 2usize]> {
12461        let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 2usize]> = Default::default();
12462        __bindgen_bitfield_unit.set(0usize, 4u8, {
12463            let mds_id: u8 = unsafe { ::core::mem::transmute(mds_id) };
12464            mds_id as u64
12465        });
12466        __bindgen_bitfield_unit.set(4usize, 4u8, {
12467            let status: u8 = unsafe { ::core::mem::transmute(status) };
12468            status as u64
12469        });
12470        __bindgen_bitfield_unit.set(8usize, 4u8, {
12471            let group: u8 = unsafe { ::core::mem::transmute(group) };
12472            group as u64
12473        });
12474        __bindgen_bitfield_unit.set(12usize, 4u8, {
12475            let type_: u8 = unsafe { ::core::mem::transmute(type_) };
12476            type_ as u64
12477        });
12478        __bindgen_bitfield_unit
12479    }
12480}
12481pub type snd_ump_msg_mixed_data_header_t = _snd_ump_msg_mixed_data_header;
12482#[repr(C)]
12483#[derive(Debug, Copy, Clone)]
12484pub struct _snd_ump_msg_mixed_data_payload {
12485    pub payload1: u16,
12486    pub _bitfield_align_1: [u8; 0],
12487    pub _bitfield_1: __BindgenBitfieldUnit<[u8; 2usize]>,
12488    pub payloads: [u32; 3usize],
12489}
12490impl _snd_ump_msg_mixed_data_payload {
12491    #[inline]
12492    pub fn mds_id(&self) -> u8 {
12493        unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 4u8) as u8) }
12494    }
12495    #[inline]
12496    pub fn set_mds_id(&mut self, val: u8) {
12497        unsafe {
12498            let val: u8 = ::core::mem::transmute(val);
12499            self._bitfield_1.set(0usize, 4u8, val as u64)
12500        }
12501    }
12502    #[inline]
12503    pub unsafe fn mds_id_raw(this: *const Self) -> u8 {
12504        unsafe {
12505            ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(
12506                ::core::ptr::addr_of!((*this)._bitfield_1),
12507                0usize,
12508                4u8,
12509            ) as u8)
12510        }
12511    }
12512    #[inline]
12513    pub unsafe fn set_mds_id_raw(this: *mut Self, val: u8) {
12514        unsafe {
12515            let val: u8 = ::core::mem::transmute(val);
12516            <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(
12517                ::core::ptr::addr_of_mut!((*this)._bitfield_1),
12518                0usize,
12519                4u8,
12520                val as u64,
12521            )
12522        }
12523    }
12524    #[inline]
12525    pub fn status(&self) -> u8 {
12526        unsafe { ::core::mem::transmute(self._bitfield_1.get(4usize, 4u8) as u8) }
12527    }
12528    #[inline]
12529    pub fn set_status(&mut self, val: u8) {
12530        unsafe {
12531            let val: u8 = ::core::mem::transmute(val);
12532            self._bitfield_1.set(4usize, 4u8, val as u64)
12533        }
12534    }
12535    #[inline]
12536    pub unsafe fn status_raw(this: *const Self) -> u8 {
12537        unsafe {
12538            ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(
12539                ::core::ptr::addr_of!((*this)._bitfield_1),
12540                4usize,
12541                4u8,
12542            ) as u8)
12543        }
12544    }
12545    #[inline]
12546    pub unsafe fn set_status_raw(this: *mut Self, val: u8) {
12547        unsafe {
12548            let val: u8 = ::core::mem::transmute(val);
12549            <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(
12550                ::core::ptr::addr_of_mut!((*this)._bitfield_1),
12551                4usize,
12552                4u8,
12553                val as u64,
12554            )
12555        }
12556    }
12557    #[inline]
12558    pub fn group(&self) -> u8 {
12559        unsafe { ::core::mem::transmute(self._bitfield_1.get(8usize, 4u8) as u8) }
12560    }
12561    #[inline]
12562    pub fn set_group(&mut self, val: u8) {
12563        unsafe {
12564            let val: u8 = ::core::mem::transmute(val);
12565            self._bitfield_1.set(8usize, 4u8, val as u64)
12566        }
12567    }
12568    #[inline]
12569    pub unsafe fn group_raw(this: *const Self) -> u8 {
12570        unsafe {
12571            ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(
12572                ::core::ptr::addr_of!((*this)._bitfield_1),
12573                8usize,
12574                4u8,
12575            ) as u8)
12576        }
12577    }
12578    #[inline]
12579    pub unsafe fn set_group_raw(this: *mut Self, val: u8) {
12580        unsafe {
12581            let val: u8 = ::core::mem::transmute(val);
12582            <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(
12583                ::core::ptr::addr_of_mut!((*this)._bitfield_1),
12584                8usize,
12585                4u8,
12586                val as u64,
12587            )
12588        }
12589    }
12590    #[inline]
12591    pub fn type_(&self) -> u8 {
12592        unsafe { ::core::mem::transmute(self._bitfield_1.get(12usize, 4u8) as u8) }
12593    }
12594    #[inline]
12595    pub fn set_type(&mut self, val: u8) {
12596        unsafe {
12597            let val: u8 = ::core::mem::transmute(val);
12598            self._bitfield_1.set(12usize, 4u8, val as u64)
12599        }
12600    }
12601    #[inline]
12602    pub unsafe fn type__raw(this: *const Self) -> u8 {
12603        unsafe {
12604            ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(
12605                ::core::ptr::addr_of!((*this)._bitfield_1),
12606                12usize,
12607                4u8,
12608            ) as u8)
12609        }
12610    }
12611    #[inline]
12612    pub unsafe fn set_type_raw(this: *mut Self, val: u8) {
12613        unsafe {
12614            let val: u8 = ::core::mem::transmute(val);
12615            <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(
12616                ::core::ptr::addr_of_mut!((*this)._bitfield_1),
12617                12usize,
12618                4u8,
12619                val as u64,
12620            )
12621        }
12622    }
12623    #[inline]
12624    pub fn new_bitfield_1(
12625        mds_id: u8,
12626        status: u8,
12627        group: u8,
12628        type_: u8,
12629    ) -> __BindgenBitfieldUnit<[u8; 2usize]> {
12630        let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 2usize]> = Default::default();
12631        __bindgen_bitfield_unit.set(0usize, 4u8, {
12632            let mds_id: u8 = unsafe { ::core::mem::transmute(mds_id) };
12633            mds_id as u64
12634        });
12635        __bindgen_bitfield_unit.set(4usize, 4u8, {
12636            let status: u8 = unsafe { ::core::mem::transmute(status) };
12637            status as u64
12638        });
12639        __bindgen_bitfield_unit.set(8usize, 4u8, {
12640            let group: u8 = unsafe { ::core::mem::transmute(group) };
12641            group as u64
12642        });
12643        __bindgen_bitfield_unit.set(12usize, 4u8, {
12644            let type_: u8 = unsafe { ::core::mem::transmute(type_) };
12645            type_ as u64
12646        });
12647        __bindgen_bitfield_unit
12648    }
12649}
12650pub type snd_ump_msg_mixed_data_payload_t = _snd_ump_msg_mixed_data_payload;
12651#[repr(C)]
12652#[derive(Copy, Clone)]
12653pub union _snd_ump_msg_mixed_data {
12654    pub header: snd_ump_msg_mixed_data_header_t,
12655    pub payload: snd_ump_msg_mixed_data_payload_t,
12656    pub raw: [u32; 4usize],
12657}
12658pub type snd_ump_msg_mixed_data_t = _snd_ump_msg_mixed_data;
12659#[repr(C, packed)]
12660#[derive(Debug, Copy, Clone)]
12661pub struct _snd_ump_msg_jr_clock {
12662    pub time: u16,
12663    pub _bitfield_align_1: [u8; 0],
12664    pub _bitfield_1: __BindgenBitfieldUnit<[u8; 2usize]>,
12665}
12666impl _snd_ump_msg_jr_clock {
12667    #[inline]
12668    pub fn reserved(&self) -> u8 {
12669        unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 4u8) as u8) }
12670    }
12671    #[inline]
12672    pub fn set_reserved(&mut self, val: u8) {
12673        unsafe {
12674            let val: u8 = ::core::mem::transmute(val);
12675            self._bitfield_1.set(0usize, 4u8, val as u64)
12676        }
12677    }
12678    #[inline]
12679    pub unsafe fn reserved_raw(this: *const Self) -> u8 {
12680        unsafe {
12681            ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(
12682                ::core::ptr::addr_of!((*this)._bitfield_1),
12683                0usize,
12684                4u8,
12685            ) as u8)
12686        }
12687    }
12688    #[inline]
12689    pub unsafe fn set_reserved_raw(this: *mut Self, val: u8) {
12690        unsafe {
12691            let val: u8 = ::core::mem::transmute(val);
12692            <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(
12693                ::core::ptr::addr_of_mut!((*this)._bitfield_1),
12694                0usize,
12695                4u8,
12696                val as u64,
12697            )
12698        }
12699    }
12700    #[inline]
12701    pub fn status(&self) -> u8 {
12702        unsafe { ::core::mem::transmute(self._bitfield_1.get(4usize, 4u8) as u8) }
12703    }
12704    #[inline]
12705    pub fn set_status(&mut self, val: u8) {
12706        unsafe {
12707            let val: u8 = ::core::mem::transmute(val);
12708            self._bitfield_1.set(4usize, 4u8, val as u64)
12709        }
12710    }
12711    #[inline]
12712    pub unsafe fn status_raw(this: *const Self) -> u8 {
12713        unsafe {
12714            ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(
12715                ::core::ptr::addr_of!((*this)._bitfield_1),
12716                4usize,
12717                4u8,
12718            ) as u8)
12719        }
12720    }
12721    #[inline]
12722    pub unsafe fn set_status_raw(this: *mut Self, val: u8) {
12723        unsafe {
12724            let val: u8 = ::core::mem::transmute(val);
12725            <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(
12726                ::core::ptr::addr_of_mut!((*this)._bitfield_1),
12727                4usize,
12728                4u8,
12729                val as u64,
12730            )
12731        }
12732    }
12733    #[inline]
12734    pub fn group(&self) -> u8 {
12735        unsafe { ::core::mem::transmute(self._bitfield_1.get(8usize, 4u8) as u8) }
12736    }
12737    #[inline]
12738    pub fn set_group(&mut self, val: u8) {
12739        unsafe {
12740            let val: u8 = ::core::mem::transmute(val);
12741            self._bitfield_1.set(8usize, 4u8, val as u64)
12742        }
12743    }
12744    #[inline]
12745    pub unsafe fn group_raw(this: *const Self) -> u8 {
12746        unsafe {
12747            ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(
12748                ::core::ptr::addr_of!((*this)._bitfield_1),
12749                8usize,
12750                4u8,
12751            ) as u8)
12752        }
12753    }
12754    #[inline]
12755    pub unsafe fn set_group_raw(this: *mut Self, val: u8) {
12756        unsafe {
12757            let val: u8 = ::core::mem::transmute(val);
12758            <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(
12759                ::core::ptr::addr_of_mut!((*this)._bitfield_1),
12760                8usize,
12761                4u8,
12762                val as u64,
12763            )
12764        }
12765    }
12766    #[inline]
12767    pub fn type_(&self) -> u8 {
12768        unsafe { ::core::mem::transmute(self._bitfield_1.get(12usize, 4u8) as u8) }
12769    }
12770    #[inline]
12771    pub fn set_type(&mut self, val: u8) {
12772        unsafe {
12773            let val: u8 = ::core::mem::transmute(val);
12774            self._bitfield_1.set(12usize, 4u8, val as u64)
12775        }
12776    }
12777    #[inline]
12778    pub unsafe fn type__raw(this: *const Self) -> u8 {
12779        unsafe {
12780            ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(
12781                ::core::ptr::addr_of!((*this)._bitfield_1),
12782                12usize,
12783                4u8,
12784            ) as u8)
12785        }
12786    }
12787    #[inline]
12788    pub unsafe fn set_type_raw(this: *mut Self, val: u8) {
12789        unsafe {
12790            let val: u8 = ::core::mem::transmute(val);
12791            <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(
12792                ::core::ptr::addr_of_mut!((*this)._bitfield_1),
12793                12usize,
12794                4u8,
12795                val as u64,
12796            )
12797        }
12798    }
12799    #[inline]
12800    pub fn new_bitfield_1(
12801        reserved: u8,
12802        status: u8,
12803        group: u8,
12804        type_: u8,
12805    ) -> __BindgenBitfieldUnit<[u8; 2usize]> {
12806        let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 2usize]> = Default::default();
12807        __bindgen_bitfield_unit.set(0usize, 4u8, {
12808            let reserved: u8 = unsafe { ::core::mem::transmute(reserved) };
12809            reserved as u64
12810        });
12811        __bindgen_bitfield_unit.set(4usize, 4u8, {
12812            let status: u8 = unsafe { ::core::mem::transmute(status) };
12813            status as u64
12814        });
12815        __bindgen_bitfield_unit.set(8usize, 4u8, {
12816            let group: u8 = unsafe { ::core::mem::transmute(group) };
12817            group as u64
12818        });
12819        __bindgen_bitfield_unit.set(12usize, 4u8, {
12820            let type_: u8 = unsafe { ::core::mem::transmute(type_) };
12821            type_ as u64
12822        });
12823        __bindgen_bitfield_unit
12824    }
12825}
12826pub type snd_ump_msg_jr_clock_t = _snd_ump_msg_jr_clock;
12827#[repr(C, packed)]
12828#[derive(Debug, Copy, Clone)]
12829pub struct _snd_ump_msg_dctpq {
12830    pub ticks: u16,
12831    pub _bitfield_align_1: [u8; 0],
12832    pub _bitfield_1: __BindgenBitfieldUnit<[u8; 2usize]>,
12833}
12834impl _snd_ump_msg_dctpq {
12835    #[inline]
12836    pub fn reserved(&self) -> u8 {
12837        unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 4u8) as u8) }
12838    }
12839    #[inline]
12840    pub fn set_reserved(&mut self, val: u8) {
12841        unsafe {
12842            let val: u8 = ::core::mem::transmute(val);
12843            self._bitfield_1.set(0usize, 4u8, val as u64)
12844        }
12845    }
12846    #[inline]
12847    pub unsafe fn reserved_raw(this: *const Self) -> u8 {
12848        unsafe {
12849            ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(
12850                ::core::ptr::addr_of!((*this)._bitfield_1),
12851                0usize,
12852                4u8,
12853            ) as u8)
12854        }
12855    }
12856    #[inline]
12857    pub unsafe fn set_reserved_raw(this: *mut Self, val: u8) {
12858        unsafe {
12859            let val: u8 = ::core::mem::transmute(val);
12860            <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(
12861                ::core::ptr::addr_of_mut!((*this)._bitfield_1),
12862                0usize,
12863                4u8,
12864                val as u64,
12865            )
12866        }
12867    }
12868    #[inline]
12869    pub fn status(&self) -> u8 {
12870        unsafe { ::core::mem::transmute(self._bitfield_1.get(4usize, 4u8) as u8) }
12871    }
12872    #[inline]
12873    pub fn set_status(&mut self, val: u8) {
12874        unsafe {
12875            let val: u8 = ::core::mem::transmute(val);
12876            self._bitfield_1.set(4usize, 4u8, val as u64)
12877        }
12878    }
12879    #[inline]
12880    pub unsafe fn status_raw(this: *const Self) -> u8 {
12881        unsafe {
12882            ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(
12883                ::core::ptr::addr_of!((*this)._bitfield_1),
12884                4usize,
12885                4u8,
12886            ) as u8)
12887        }
12888    }
12889    #[inline]
12890    pub unsafe fn set_status_raw(this: *mut Self, val: u8) {
12891        unsafe {
12892            let val: u8 = ::core::mem::transmute(val);
12893            <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(
12894                ::core::ptr::addr_of_mut!((*this)._bitfield_1),
12895                4usize,
12896                4u8,
12897                val as u64,
12898            )
12899        }
12900    }
12901    #[inline]
12902    pub fn group(&self) -> u8 {
12903        unsafe { ::core::mem::transmute(self._bitfield_1.get(8usize, 4u8) as u8) }
12904    }
12905    #[inline]
12906    pub fn set_group(&mut self, val: u8) {
12907        unsafe {
12908            let val: u8 = ::core::mem::transmute(val);
12909            self._bitfield_1.set(8usize, 4u8, val as u64)
12910        }
12911    }
12912    #[inline]
12913    pub unsafe fn group_raw(this: *const Self) -> u8 {
12914        unsafe {
12915            ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(
12916                ::core::ptr::addr_of!((*this)._bitfield_1),
12917                8usize,
12918                4u8,
12919            ) as u8)
12920        }
12921    }
12922    #[inline]
12923    pub unsafe fn set_group_raw(this: *mut Self, val: u8) {
12924        unsafe {
12925            let val: u8 = ::core::mem::transmute(val);
12926            <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(
12927                ::core::ptr::addr_of_mut!((*this)._bitfield_1),
12928                8usize,
12929                4u8,
12930                val as u64,
12931            )
12932        }
12933    }
12934    #[inline]
12935    pub fn type_(&self) -> u8 {
12936        unsafe { ::core::mem::transmute(self._bitfield_1.get(12usize, 4u8) as u8) }
12937    }
12938    #[inline]
12939    pub fn set_type(&mut self, val: u8) {
12940        unsafe {
12941            let val: u8 = ::core::mem::transmute(val);
12942            self._bitfield_1.set(12usize, 4u8, val as u64)
12943        }
12944    }
12945    #[inline]
12946    pub unsafe fn type__raw(this: *const Self) -> u8 {
12947        unsafe {
12948            ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(
12949                ::core::ptr::addr_of!((*this)._bitfield_1),
12950                12usize,
12951                4u8,
12952            ) as u8)
12953        }
12954    }
12955    #[inline]
12956    pub unsafe fn set_type_raw(this: *mut Self, val: u8) {
12957        unsafe {
12958            let val: u8 = ::core::mem::transmute(val);
12959            <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(
12960                ::core::ptr::addr_of_mut!((*this)._bitfield_1),
12961                12usize,
12962                4u8,
12963                val as u64,
12964            )
12965        }
12966    }
12967    #[inline]
12968    pub fn new_bitfield_1(
12969        reserved: u8,
12970        status: u8,
12971        group: u8,
12972        type_: u8,
12973    ) -> __BindgenBitfieldUnit<[u8; 2usize]> {
12974        let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 2usize]> = Default::default();
12975        __bindgen_bitfield_unit.set(0usize, 4u8, {
12976            let reserved: u8 = unsafe { ::core::mem::transmute(reserved) };
12977            reserved as u64
12978        });
12979        __bindgen_bitfield_unit.set(4usize, 4u8, {
12980            let status: u8 = unsafe { ::core::mem::transmute(status) };
12981            status as u64
12982        });
12983        __bindgen_bitfield_unit.set(8usize, 4u8, {
12984            let group: u8 = unsafe { ::core::mem::transmute(group) };
12985            group as u64
12986        });
12987        __bindgen_bitfield_unit.set(12usize, 4u8, {
12988            let type_: u8 = unsafe { ::core::mem::transmute(type_) };
12989            type_ as u64
12990        });
12991        __bindgen_bitfield_unit
12992    }
12993}
12994pub type snd_ump_msg_dctpq_t = _snd_ump_msg_dctpq;
12995#[repr(C, packed)]
12996#[derive(Debug, Copy, Clone)]
12997pub struct _snd_ump_msg_dc {
12998    pub _bitfield_align_1: [u8; 0],
12999    pub _bitfield_1: __BindgenBitfieldUnit<[u8; 4usize]>,
13000}
13001impl _snd_ump_msg_dc {
13002    #[inline]
13003    pub fn ticks(&self) -> u32 {
13004        unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 20u8) as u32) }
13005    }
13006    #[inline]
13007    pub fn set_ticks(&mut self, val: u32) {
13008        unsafe {
13009            let val: u32 = ::core::mem::transmute(val);
13010            self._bitfield_1.set(0usize, 20u8, val as u64)
13011        }
13012    }
13013    #[inline]
13014    pub unsafe fn ticks_raw(this: *const Self) -> u32 {
13015        unsafe {
13016            ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(
13017                ::core::ptr::addr_of!((*this)._bitfield_1),
13018                0usize,
13019                20u8,
13020            ) as u32)
13021        }
13022    }
13023    #[inline]
13024    pub unsafe fn set_ticks_raw(this: *mut Self, val: u32) {
13025        unsafe {
13026            let val: u32 = ::core::mem::transmute(val);
13027            <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(
13028                ::core::ptr::addr_of_mut!((*this)._bitfield_1),
13029                0usize,
13030                20u8,
13031                val as u64,
13032            )
13033        }
13034    }
13035    #[inline]
13036    pub fn status(&self) -> u32 {
13037        unsafe { ::core::mem::transmute(self._bitfield_1.get(20usize, 4u8) as u32) }
13038    }
13039    #[inline]
13040    pub fn set_status(&mut self, val: u32) {
13041        unsafe {
13042            let val: u32 = ::core::mem::transmute(val);
13043            self._bitfield_1.set(20usize, 4u8, val as u64)
13044        }
13045    }
13046    #[inline]
13047    pub unsafe fn status_raw(this: *const Self) -> u32 {
13048        unsafe {
13049            ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(
13050                ::core::ptr::addr_of!((*this)._bitfield_1),
13051                20usize,
13052                4u8,
13053            ) as u32)
13054        }
13055    }
13056    #[inline]
13057    pub unsafe fn set_status_raw(this: *mut Self, val: u32) {
13058        unsafe {
13059            let val: u32 = ::core::mem::transmute(val);
13060            <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(
13061                ::core::ptr::addr_of_mut!((*this)._bitfield_1),
13062                20usize,
13063                4u8,
13064                val as u64,
13065            )
13066        }
13067    }
13068    #[inline]
13069    pub fn group(&self) -> u32 {
13070        unsafe { ::core::mem::transmute(self._bitfield_1.get(24usize, 4u8) as u32) }
13071    }
13072    #[inline]
13073    pub fn set_group(&mut self, val: u32) {
13074        unsafe {
13075            let val: u32 = ::core::mem::transmute(val);
13076            self._bitfield_1.set(24usize, 4u8, val as u64)
13077        }
13078    }
13079    #[inline]
13080    pub unsafe fn group_raw(this: *const Self) -> u32 {
13081        unsafe {
13082            ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(
13083                ::core::ptr::addr_of!((*this)._bitfield_1),
13084                24usize,
13085                4u8,
13086            ) as u32)
13087        }
13088    }
13089    #[inline]
13090    pub unsafe fn set_group_raw(this: *mut Self, val: u32) {
13091        unsafe {
13092            let val: u32 = ::core::mem::transmute(val);
13093            <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(
13094                ::core::ptr::addr_of_mut!((*this)._bitfield_1),
13095                24usize,
13096                4u8,
13097                val as u64,
13098            )
13099        }
13100    }
13101    #[inline]
13102    pub fn type_(&self) -> u32 {
13103        unsafe { ::core::mem::transmute(self._bitfield_1.get(28usize, 4u8) as u32) }
13104    }
13105    #[inline]
13106    pub fn set_type(&mut self, val: u32) {
13107        unsafe {
13108            let val: u32 = ::core::mem::transmute(val);
13109            self._bitfield_1.set(28usize, 4u8, val as u64)
13110        }
13111    }
13112    #[inline]
13113    pub unsafe fn type__raw(this: *const Self) -> u32 {
13114        unsafe {
13115            ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(
13116                ::core::ptr::addr_of!((*this)._bitfield_1),
13117                28usize,
13118                4u8,
13119            ) as u32)
13120        }
13121    }
13122    #[inline]
13123    pub unsafe fn set_type_raw(this: *mut Self, val: u32) {
13124        unsafe {
13125            let val: u32 = ::core::mem::transmute(val);
13126            <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(
13127                ::core::ptr::addr_of_mut!((*this)._bitfield_1),
13128                28usize,
13129                4u8,
13130                val as u64,
13131            )
13132        }
13133    }
13134    #[inline]
13135    pub fn new_bitfield_1(
13136        ticks: u32,
13137        status: u32,
13138        group: u32,
13139        type_: u32,
13140    ) -> __BindgenBitfieldUnit<[u8; 4usize]> {
13141        let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 4usize]> = Default::default();
13142        __bindgen_bitfield_unit.set(0usize, 20u8, {
13143            let ticks: u32 = unsafe { ::core::mem::transmute(ticks) };
13144            ticks as u64
13145        });
13146        __bindgen_bitfield_unit.set(20usize, 4u8, {
13147            let status: u32 = unsafe { ::core::mem::transmute(status) };
13148            status as u64
13149        });
13150        __bindgen_bitfield_unit.set(24usize, 4u8, {
13151            let group: u32 = unsafe { ::core::mem::transmute(group) };
13152            group as u64
13153        });
13154        __bindgen_bitfield_unit.set(28usize, 4u8, {
13155            let type_: u32 = unsafe { ::core::mem::transmute(type_) };
13156            type_ as u64
13157        });
13158        __bindgen_bitfield_unit
13159    }
13160}
13161pub type snd_ump_msg_dc_t = _snd_ump_msg_dc;
13162#[repr(C)]
13163#[derive(Copy, Clone)]
13164pub union _snd_ump_msg_utility {
13165    pub jr_clock: snd_ump_msg_jr_clock_t,
13166    pub dctpq: snd_ump_msg_dctpq_t,
13167    pub dc: snd_ump_msg_dc_t,
13168    pub hdr: snd_ump_msg_hdr_t,
13169    pub raw: u32,
13170}
13171pub type snd_ump_msg_utility_t = _snd_ump_msg_utility;
13172pub const SND_UMP_MSG_TYPE_UTILITY: _bindgen_ty_6 = 0;
13173pub const SND_UMP_MSG_TYPE_SYSTEM: _bindgen_ty_6 = 1;
13174pub const SND_UMP_MSG_TYPE_MIDI1_CHANNEL_VOICE: _bindgen_ty_6 = 2;
13175pub const SND_UMP_MSG_TYPE_DATA: _bindgen_ty_6 = 3;
13176pub const SND_UMP_MSG_TYPE_MIDI2_CHANNEL_VOICE: _bindgen_ty_6 = 4;
13177pub const SND_UMP_MSG_TYPE_EXTENDED_DATA: _bindgen_ty_6 = 5;
13178pub const SND_UMP_MSG_TYPE_FLEX_DATA: _bindgen_ty_6 = 13;
13179pub const SND_UMP_MSG_TYPE_STREAM: _bindgen_ty_6 = 15;
13180pub type _bindgen_ty_6 = ::core::ffi::c_uint;
13181pub const SND_UMP_MSG_PER_NOTE_RCC: _bindgen_ty_7 = 0;
13182pub const SND_UMP_MSG_PER_NOTE_ACC: _bindgen_ty_7 = 1;
13183pub const SND_UMP_MSG_RPN: _bindgen_ty_7 = 2;
13184pub const SND_UMP_MSG_NRPN: _bindgen_ty_7 = 3;
13185pub const SND_UMP_MSG_RELATIVE_RPN: _bindgen_ty_7 = 4;
13186pub const SND_UMP_MSG_RELATIVE_NRPN: _bindgen_ty_7 = 5;
13187pub const SND_UMP_MSG_PER_NOTE_PITCHBEND: _bindgen_ty_7 = 6;
13188pub const SND_UMP_MSG_NOTE_OFF: _bindgen_ty_7 = 8;
13189pub const SND_UMP_MSG_NOTE_ON: _bindgen_ty_7 = 9;
13190pub const SND_UMP_MSG_POLY_PRESSURE: _bindgen_ty_7 = 10;
13191pub const SND_UMP_MSG_CONTROL_CHANGE: _bindgen_ty_7 = 11;
13192pub const SND_UMP_MSG_PROGRAM_CHANGE: _bindgen_ty_7 = 12;
13193pub const SND_UMP_MSG_CHANNEL_PRESSURE: _bindgen_ty_7 = 13;
13194pub const SND_UMP_MSG_PITCHBEND: _bindgen_ty_7 = 14;
13195pub const SND_UMP_MSG_PER_NOTE_MGMT: _bindgen_ty_7 = 15;
13196pub type _bindgen_ty_7 = ::core::ffi::c_uint;
13197pub const SND_UMP_MSG_REALTIME: _bindgen_ty_8 = 240;
13198pub const SND_UMP_MSG_SYSEX_START: _bindgen_ty_8 = 240;
13199pub const SND_UMP_MSG_MIDI_TIME_CODE: _bindgen_ty_8 = 241;
13200pub const SND_UMP_MSG_SONG_POSITION: _bindgen_ty_8 = 242;
13201pub const SND_UMP_MSG_SONG_SELECT: _bindgen_ty_8 = 243;
13202pub const SND_UMP_MSG_TUNE_REQUEST: _bindgen_ty_8 = 246;
13203pub const SND_UMP_MSG_SYSEX_END: _bindgen_ty_8 = 247;
13204pub const SND_UMP_MSG_TIMING_CLOCK: _bindgen_ty_8 = 248;
13205pub const SND_UMP_MSG_START: _bindgen_ty_8 = 250;
13206pub const SND_UMP_MSG_CONTINUE: _bindgen_ty_8 = 251;
13207pub const SND_UMP_MSG_STOP: _bindgen_ty_8 = 252;
13208pub const SND_UMP_MSG_ACTIVE_SENSING: _bindgen_ty_8 = 254;
13209pub const SND_UMP_MSG_RESET: _bindgen_ty_8 = 255;
13210pub type _bindgen_ty_8 = ::core::ffi::c_uint;
13211pub const SND_UMP_SYSEX_STATUS_SINGLE: _bindgen_ty_9 = 0;
13212pub const SND_UMP_SYSEX_STATUS_START: _bindgen_ty_9 = 1;
13213pub const SND_UMP_SYSEX_STATUS_CONTINUE: _bindgen_ty_9 = 2;
13214pub const SND_UMP_SYSEX_STATUS_END: _bindgen_ty_9 = 3;
13215pub type _bindgen_ty_9 = ::core::ffi::c_uint;
13216pub const SND_UMP_MIXED_DATA_SET_STATUS_HEADER: _bindgen_ty_10 = 8;
13217pub const SND_UMP_MIXED_DATA_SET_STATUS_PAYLOAD: _bindgen_ty_10 = 9;
13218pub type _bindgen_ty_10 = ::core::ffi::c_uint;
13219pub const SND_UMP_UTILITY_MSG_STATUS_NOOP: _bindgen_ty_11 = 0;
13220pub const SND_UMP_UTILITY_MSG_STATUS_JR_CLOCK: _bindgen_ty_11 = 1;
13221pub const SND_UMP_UTILITY_MSG_STATUS_JR_TSTAMP: _bindgen_ty_11 = 2;
13222pub const SND_UMP_UTILITY_MSG_STATUS_DCTPQ: _bindgen_ty_11 = 3;
13223pub const SND_UMP_UTILITY_MSG_STATUS_DC: _bindgen_ty_11 = 4;
13224pub type _bindgen_ty_11 = ::core::ffi::c_uint;
13225pub const SND_UMP_STREAM_MSG_STATUS_EP_DISCOVERY: _bindgen_ty_12 = 0;
13226pub const SND_UMP_STREAM_MSG_STATUS_EP_INFO: _bindgen_ty_12 = 1;
13227pub const SND_UMP_STREAM_MSG_STATUS_DEVICE_INFO: _bindgen_ty_12 = 2;
13228pub const SND_UMP_STREAM_MSG_STATUS_EP_NAME: _bindgen_ty_12 = 3;
13229pub const SND_UMP_STREAM_MSG_STATUS_PRODUCT_ID: _bindgen_ty_12 = 4;
13230pub const SND_UMP_STREAM_MSG_STATUS_STREAM_CFG_REQUEST: _bindgen_ty_12 = 5;
13231pub const SND_UMP_STREAM_MSG_STATUS_STREAM_CFG: _bindgen_ty_12 = 6;
13232pub const SND_UMP_STREAM_MSG_STATUS_FB_DISCOVERY: _bindgen_ty_12 = 16;
13233pub const SND_UMP_STREAM_MSG_STATUS_FB_INFO: _bindgen_ty_12 = 17;
13234pub const SND_UMP_STREAM_MSG_STATUS_FB_NAME: _bindgen_ty_12 = 18;
13235pub const SND_UMP_STREAM_MSG_STATUS_START_CLIP: _bindgen_ty_12 = 32;
13236pub const SND_UMP_STREAM_MSG_STATUS_END_CLIP: _bindgen_ty_12 = 33;
13237pub type _bindgen_ty_12 = ::core::ffi::c_uint;
13238pub const SND_UMP_STREAM_MSG_REQUEST_EP_INFO: _bindgen_ty_13 = 1;
13239pub const SND_UMP_STREAM_MSG_REQUEST_DEVICE_INFO: _bindgen_ty_13 = 2;
13240pub const SND_UMP_STREAM_MSG_REQUEST_EP_NAME: _bindgen_ty_13 = 4;
13241pub const SND_UMP_STREAM_MSG_REQUEST_PRODUCT_ID: _bindgen_ty_13 = 8;
13242pub const SND_UMP_STREAM_MSG_REQUEST_STREAM_CFG: _bindgen_ty_13 = 16;
13243pub type _bindgen_ty_13 = ::core::ffi::c_uint;
13244pub const SND_UMP_STREAM_MSG_REQUEST_FB_INFO: _bindgen_ty_14 = 1;
13245pub const SND_UMP_STREAM_MSG_REQUEST_FB_NAME: _bindgen_ty_14 = 2;
13246pub type _bindgen_ty_14 = ::core::ffi::c_uint;
13247pub const SND_UMP_STREAM_MSG_EP_INFO_CAP_TXJR: _bindgen_ty_15 = 1;
13248pub const SND_UMP_STREAM_MSG_EP_INFO_CAP_RXJR: _bindgen_ty_15 = 2;
13249pub const SND_UMP_STREAM_MSG_EP_INFO_CAP_MIDI1: _bindgen_ty_15 = 256;
13250pub const SND_UMP_STREAM_MSG_EP_INFO_CAP_MIDI2: _bindgen_ty_15 = 512;
13251pub type _bindgen_ty_15 = ::core::ffi::c_uint;
13252pub const SND_UMP_STREAM_MSG_FORMAT_SINGLE: _bindgen_ty_16 = 0;
13253pub const SND_UMP_STREAM_MSG_FORMAT_START: _bindgen_ty_16 = 1;
13254pub const SND_UMP_STREAM_MSG_FORMAT_CONTINUE: _bindgen_ty_16 = 2;
13255pub const SND_UMP_STREAM_MSG_FORMAT_END: _bindgen_ty_16 = 3;
13256pub type _bindgen_ty_16 = ::core::ffi::c_uint;
13257pub const SND_UMP_FLEX_DATA_MSG_FORMAT_SINGLE: _bindgen_ty_17 = 0;
13258pub const SND_UMP_FLEX_DATA_MSG_FORMAT_START: _bindgen_ty_17 = 1;
13259pub const SND_UMP_FLEX_DATA_MSG_FORMAT_CONTINUE: _bindgen_ty_17 = 2;
13260pub const SND_UMP_FLEX_DATA_MSG_FORMAT_END: _bindgen_ty_17 = 3;
13261pub type _bindgen_ty_17 = ::core::ffi::c_uint;
13262pub const SND_UMP_FLEX_DATA_MSG_ADDR_CHANNEL: _bindgen_ty_18 = 0;
13263pub const SND_UMP_FLEX_DATA_MSG_ADDR_GROUP: _bindgen_ty_18 = 1;
13264pub type _bindgen_ty_18 = ::core::ffi::c_uint;
13265pub const SND_UMP_FLEX_DATA_MSG_BANK_SETUP: _bindgen_ty_19 = 0;
13266pub const SND_UMP_FLEX_DATA_MSG_BANK_METADATA: _bindgen_ty_19 = 1;
13267pub const SND_UMP_FLEX_DATA_MSG_BANK_PERF_TEXT: _bindgen_ty_19 = 2;
13268pub type _bindgen_ty_19 = ::core::ffi::c_uint;
13269pub const SND_UMP_FLEX_DATA_MSG_STATUS_SET_TEMPO: _bindgen_ty_20 = 0;
13270pub const SND_UMP_FLEX_DATA_MSG_STATUS_SET_TIME_SIGNATURE: _bindgen_ty_20 = 1;
13271pub const SND_UMP_FLEX_DATA_MSG_STATUS_SET_METRONOME: _bindgen_ty_20 = 2;
13272pub const SND_UMP_FLEX_DATA_MSG_STATUS_SET_KEY_SIGNATURE: _bindgen_ty_20 = 5;
13273pub const SND_UMP_FLEX_DATA_MSG_STATUS_SET_CHORD_NAME: _bindgen_ty_20 = 6;
13274pub type _bindgen_ty_20 = ::core::ffi::c_uint;
13275pub const SND_UMP_FLEX_DATA_MSG_STATUS_PROJECT_NAME: _bindgen_ty_21 = 1;
13276pub const SND_UMP_FLEX_DATA_MSG_STATUS_SONG_NAME: _bindgen_ty_21 = 2;
13277pub const SND_UMP_FLEX_DATA_MSG_STATUS_MIDI_CLIP_NAME: _bindgen_ty_21 = 3;
13278pub const SND_UMP_FLEX_DATA_MSG_STATUS_COPYRIGHT_NOTICE: _bindgen_ty_21 = 4;
13279pub const SND_UMP_FLEX_DATA_MSG_STATUS_COMPOSER_NAME: _bindgen_ty_21 = 5;
13280pub const SND_UMP_FLEX_DATA_MSG_STATUS_LYRICIST_NAME: _bindgen_ty_21 = 6;
13281pub const SND_UMP_FLEX_DATA_MSG_STATUS_ARRANGER_NAME: _bindgen_ty_21 = 7;
13282pub const SND_UMP_FLEX_DATA_MSG_STATUS_PUBLISHER_NAME: _bindgen_ty_21 = 8;
13283pub const SND_UMP_FLEX_DATA_MSG_STATUS_PRIMARY_PERFORMER: _bindgen_ty_21 = 9;
13284pub const SND_UMP_FLEX_DATA_MSG_STATUS_ACCOMPANY_PERFORMAER: _bindgen_ty_21 = 10;
13285pub const SND_UMP_FLEX_DATA_MSG_STATUS_RECORDING_DATE: _bindgen_ty_21 = 11;
13286pub const SND_UMP_FLEX_DATA_MSG_STATUS_RECORDING_LOCATION: _bindgen_ty_21 = 12;
13287pub type _bindgen_ty_21 = ::core::ffi::c_uint;
13288pub const SND_UMP_FLEX_DATA_MSG_STATUS_LYRICS: _bindgen_ty_22 = 1;
13289pub const SND_UMP_FLEX_DATA_MSG_STATUS_LYRICS_LANGUAGE: _bindgen_ty_22 = 2;
13290pub const SND_UMP_FLEX_DATA_MSG_STATUS_RUBY: _bindgen_ty_22 = 3;
13291pub const SND_UMP_FLEX_DATA_MSG_STATUS_RUBY_LANGUAGE: _bindgen_ty_22 = 4;
13292pub type _bindgen_ty_22 = ::core::ffi::c_uint;
13293unsafe extern "C" {
13294    pub fn snd_ump_msg_sysex_expand(
13295        ump: *const u32,
13296        buf: *mut u8,
13297        maxlen: usize,
13298        filled: *mut usize,
13299    ) -> ::core::ffi::c_int;
13300}
13301unsafe extern "C" {
13302    pub fn snd_ump_packet_length(type_: ::core::ffi::c_uint) -> ::core::ffi::c_int;
13303}
13304pub type snd_seq_event_type_t = ::core::ffi::c_uchar;
13305pub const SND_SEQ_EVENT_SYSTEM: snd_seq_event_type = 0;
13306pub const SND_SEQ_EVENT_RESULT: snd_seq_event_type = 1;
13307pub const SND_SEQ_EVENT_NOTE: snd_seq_event_type = 5;
13308pub const SND_SEQ_EVENT_NOTEON: snd_seq_event_type = 6;
13309pub const SND_SEQ_EVENT_NOTEOFF: snd_seq_event_type = 7;
13310pub const SND_SEQ_EVENT_KEYPRESS: snd_seq_event_type = 8;
13311pub const SND_SEQ_EVENT_CONTROLLER: snd_seq_event_type = 10;
13312pub const SND_SEQ_EVENT_PGMCHANGE: snd_seq_event_type = 11;
13313pub const SND_SEQ_EVENT_CHANPRESS: snd_seq_event_type = 12;
13314pub const SND_SEQ_EVENT_PITCHBEND: snd_seq_event_type = 13;
13315pub const SND_SEQ_EVENT_CONTROL14: snd_seq_event_type = 14;
13316pub const SND_SEQ_EVENT_NONREGPARAM: snd_seq_event_type = 15;
13317pub const SND_SEQ_EVENT_REGPARAM: snd_seq_event_type = 16;
13318pub const SND_SEQ_EVENT_SONGPOS: snd_seq_event_type = 20;
13319pub const SND_SEQ_EVENT_SONGSEL: snd_seq_event_type = 21;
13320pub const SND_SEQ_EVENT_QFRAME: snd_seq_event_type = 22;
13321pub const SND_SEQ_EVENT_TIMESIGN: snd_seq_event_type = 23;
13322pub const SND_SEQ_EVENT_KEYSIGN: snd_seq_event_type = 24;
13323pub const SND_SEQ_EVENT_START: snd_seq_event_type = 30;
13324pub const SND_SEQ_EVENT_CONTINUE: snd_seq_event_type = 31;
13325pub const SND_SEQ_EVENT_STOP: snd_seq_event_type = 32;
13326pub const SND_SEQ_EVENT_SETPOS_TICK: snd_seq_event_type = 33;
13327pub const SND_SEQ_EVENT_SETPOS_TIME: snd_seq_event_type = 34;
13328pub const SND_SEQ_EVENT_TEMPO: snd_seq_event_type = 35;
13329pub const SND_SEQ_EVENT_CLOCK: snd_seq_event_type = 36;
13330pub const SND_SEQ_EVENT_TICK: snd_seq_event_type = 37;
13331pub const SND_SEQ_EVENT_QUEUE_SKEW: snd_seq_event_type = 38;
13332pub const SND_SEQ_EVENT_SYNC_POS: snd_seq_event_type = 39;
13333pub const SND_SEQ_EVENT_TUNE_REQUEST: snd_seq_event_type = 40;
13334pub const SND_SEQ_EVENT_RESET: snd_seq_event_type = 41;
13335pub const SND_SEQ_EVENT_SENSING: snd_seq_event_type = 42;
13336pub const SND_SEQ_EVENT_ECHO: snd_seq_event_type = 50;
13337pub const SND_SEQ_EVENT_OSS: snd_seq_event_type = 51;
13338pub const SND_SEQ_EVENT_CLIENT_START: snd_seq_event_type = 60;
13339pub const SND_SEQ_EVENT_CLIENT_EXIT: snd_seq_event_type = 61;
13340pub const SND_SEQ_EVENT_CLIENT_CHANGE: snd_seq_event_type = 62;
13341pub const SND_SEQ_EVENT_PORT_START: snd_seq_event_type = 63;
13342pub const SND_SEQ_EVENT_PORT_EXIT: snd_seq_event_type = 64;
13343pub const SND_SEQ_EVENT_PORT_CHANGE: snd_seq_event_type = 65;
13344pub const SND_SEQ_EVENT_PORT_SUBSCRIBED: snd_seq_event_type = 66;
13345pub const SND_SEQ_EVENT_PORT_UNSUBSCRIBED: snd_seq_event_type = 67;
13346pub const SND_SEQ_EVENT_UMP_EP_CHANGE: snd_seq_event_type = 68;
13347pub const SND_SEQ_EVENT_UMP_BLOCK_CHANGE: snd_seq_event_type = 69;
13348pub const SND_SEQ_EVENT_USR0: snd_seq_event_type = 90;
13349pub const SND_SEQ_EVENT_USR1: snd_seq_event_type = 91;
13350pub const SND_SEQ_EVENT_USR2: snd_seq_event_type = 92;
13351pub const SND_SEQ_EVENT_USR3: snd_seq_event_type = 93;
13352pub const SND_SEQ_EVENT_USR4: snd_seq_event_type = 94;
13353pub const SND_SEQ_EVENT_USR5: snd_seq_event_type = 95;
13354pub const SND_SEQ_EVENT_USR6: snd_seq_event_type = 96;
13355pub const SND_SEQ_EVENT_USR7: snd_seq_event_type = 97;
13356pub const SND_SEQ_EVENT_USR8: snd_seq_event_type = 98;
13357pub const SND_SEQ_EVENT_USR9: snd_seq_event_type = 99;
13358pub const SND_SEQ_EVENT_SYSEX: snd_seq_event_type = 130;
13359pub const SND_SEQ_EVENT_BOUNCE: snd_seq_event_type = 131;
13360pub const SND_SEQ_EVENT_USR_VAR0: snd_seq_event_type = 135;
13361pub const SND_SEQ_EVENT_USR_VAR1: snd_seq_event_type = 136;
13362pub const SND_SEQ_EVENT_USR_VAR2: snd_seq_event_type = 137;
13363pub const SND_SEQ_EVENT_USR_VAR3: snd_seq_event_type = 138;
13364pub const SND_SEQ_EVENT_USR_VAR4: snd_seq_event_type = 139;
13365pub const SND_SEQ_EVENT_NONE: snd_seq_event_type = 255;
13366pub type snd_seq_event_type = ::core::ffi::c_uint;
13367#[repr(C)]
13368#[derive(Debug, Copy, Clone)]
13369pub struct snd_seq_addr {
13370    pub client: ::core::ffi::c_uchar,
13371    pub port: ::core::ffi::c_uchar,
13372}
13373pub type snd_seq_addr_t = snd_seq_addr;
13374#[repr(C)]
13375#[derive(Debug, Copy, Clone)]
13376pub struct snd_seq_connect {
13377    pub sender: snd_seq_addr_t,
13378    pub dest: snd_seq_addr_t,
13379}
13380pub type snd_seq_connect_t = snd_seq_connect;
13381#[repr(C)]
13382#[derive(Debug, Copy, Clone)]
13383pub struct snd_seq_real_time {
13384    pub tv_sec: ::core::ffi::c_uint,
13385    pub tv_nsec: ::core::ffi::c_uint,
13386}
13387pub type snd_seq_real_time_t = snd_seq_real_time;
13388pub type snd_seq_tick_time_t = ::core::ffi::c_uint;
13389#[repr(C)]
13390#[derive(Copy, Clone)]
13391pub union snd_seq_timestamp {
13392    pub tick: snd_seq_tick_time_t,
13393    pub time: snd_seq_real_time,
13394}
13395pub type snd_seq_timestamp_t = snd_seq_timestamp;
13396#[repr(C)]
13397#[derive(Debug, Copy, Clone)]
13398pub struct snd_seq_ev_note {
13399    pub channel: ::core::ffi::c_uchar,
13400    pub note: ::core::ffi::c_uchar,
13401    pub velocity: ::core::ffi::c_uchar,
13402    pub off_velocity: ::core::ffi::c_uchar,
13403    pub duration: ::core::ffi::c_uint,
13404}
13405pub type snd_seq_ev_note_t = snd_seq_ev_note;
13406#[repr(C)]
13407#[derive(Debug, Copy, Clone)]
13408pub struct snd_seq_ev_ctrl {
13409    pub channel: ::core::ffi::c_uchar,
13410    pub unused: [::core::ffi::c_uchar; 3usize],
13411    pub param: ::core::ffi::c_uint,
13412    pub value: ::core::ffi::c_int,
13413}
13414pub type snd_seq_ev_ctrl_t = snd_seq_ev_ctrl;
13415#[repr(C)]
13416#[derive(Debug, Copy, Clone)]
13417pub struct snd_seq_ev_raw8 {
13418    pub d: [::core::ffi::c_uchar; 12usize],
13419}
13420pub type snd_seq_ev_raw8_t = snd_seq_ev_raw8;
13421#[repr(C)]
13422#[derive(Debug, Copy, Clone)]
13423pub struct snd_seq_ev_raw32 {
13424    pub d: [::core::ffi::c_uint; 3usize],
13425}
13426pub type snd_seq_ev_raw32_t = snd_seq_ev_raw32;
13427#[repr(C, packed)]
13428#[derive(Debug, Copy, Clone)]
13429pub struct snd_seq_ev_ext {
13430    pub len: ::core::ffi::c_uint,
13431    pub ptr: *mut ::core::ffi::c_void,
13432}
13433pub type snd_seq_ev_ext_t = snd_seq_ev_ext;
13434#[repr(C)]
13435#[derive(Debug, Copy, Clone)]
13436pub struct snd_seq_result {
13437    pub event: ::core::ffi::c_int,
13438    pub result: ::core::ffi::c_int,
13439}
13440pub type snd_seq_result_t = snd_seq_result;
13441#[repr(C)]
13442#[derive(Debug, Copy, Clone)]
13443pub struct snd_seq_queue_skew {
13444    pub value: ::core::ffi::c_uint,
13445    pub base: ::core::ffi::c_uint,
13446}
13447pub type snd_seq_queue_skew_t = snd_seq_queue_skew;
13448#[repr(C)]
13449#[derive(Copy, Clone)]
13450pub struct snd_seq_ev_queue_control {
13451    pub queue: ::core::ffi::c_uchar,
13452    pub unused: [::core::ffi::c_uchar; 3usize],
13453    pub param: snd_seq_ev_queue_control__bindgen_ty_1,
13454}
13455#[repr(C)]
13456#[derive(Copy, Clone)]
13457pub union snd_seq_ev_queue_control__bindgen_ty_1 {
13458    pub value: ::core::ffi::c_int,
13459    pub time: snd_seq_timestamp_t,
13460    pub position: ::core::ffi::c_uint,
13461    pub skew: snd_seq_queue_skew_t,
13462    pub d32: [::core::ffi::c_uint; 2usize],
13463    pub d8: [::core::ffi::c_uchar; 8usize],
13464}
13465pub type snd_seq_ev_queue_control_t = snd_seq_ev_queue_control;
13466#[repr(C)]
13467#[derive(Debug, Copy, Clone)]
13468pub struct snd_seq_ev_ump_notify {
13469    pub client: ::core::ffi::c_uchar,
13470    pub block: ::core::ffi::c_uchar,
13471}
13472pub type snd_seq_ev_ump_notify_t = snd_seq_ev_ump_notify;
13473#[repr(C)]
13474#[derive(Copy, Clone)]
13475pub union snd_seq_event_data {
13476    pub note: snd_seq_ev_note_t,
13477    pub control: snd_seq_ev_ctrl_t,
13478    pub raw8: snd_seq_ev_raw8_t,
13479    pub raw32: snd_seq_ev_raw32_t,
13480    pub ext: snd_seq_ev_ext_t,
13481    pub queue: snd_seq_ev_queue_control_t,
13482    pub time: snd_seq_timestamp_t,
13483    pub addr: snd_seq_addr_t,
13484    pub connect: snd_seq_connect_t,
13485    pub result: snd_seq_result_t,
13486    pub ump_notify: snd_seq_ev_ump_notify_t,
13487}
13488pub type snd_seq_event_data_t = snd_seq_event_data;
13489#[repr(C)]
13490#[derive(Copy, Clone)]
13491pub struct snd_seq_event {
13492    pub type_: snd_seq_event_type_t,
13493    pub flags: ::core::ffi::c_uchar,
13494    pub tag: ::core::ffi::c_uchar,
13495    pub queue: ::core::ffi::c_uchar,
13496    pub time: snd_seq_timestamp_t,
13497    pub source: snd_seq_addr_t,
13498    pub dest: snd_seq_addr_t,
13499    pub data: snd_seq_event_data_t,
13500}
13501pub type snd_seq_event_t = snd_seq_event;
13502#[repr(C)]
13503#[derive(Copy, Clone)]
13504pub struct snd_seq_ump_event {
13505    pub type_: snd_seq_event_type_t,
13506    pub flags: ::core::ffi::c_uchar,
13507    pub tag: ::core::ffi::c_uchar,
13508    pub queue: ::core::ffi::c_uchar,
13509    pub time: snd_seq_timestamp_t,
13510    pub source: snd_seq_addr_t,
13511    pub dest: snd_seq_addr_t,
13512    pub __bindgen_anon_1: snd_seq_ump_event__bindgen_ty_1,
13513}
13514#[repr(C)]
13515#[derive(Copy, Clone)]
13516pub union snd_seq_ump_event__bindgen_ty_1 {
13517    pub data: snd_seq_event_data_t,
13518    pub ump: [::core::ffi::c_uint; 4usize],
13519}
13520pub type snd_seq_ump_event_t = snd_seq_ump_event;
13521#[repr(C)]
13522#[derive(Debug, Copy, Clone)]
13523pub struct _snd_seq {
13524    _unused: [u8; 0],
13525}
13526pub type snd_seq_t = _snd_seq;
13527pub const SND_SEQ_TYPE_HW: _snd_seq_type = 0;
13528pub const SND_SEQ_TYPE_SHM: _snd_seq_type = 1;
13529pub const SND_SEQ_TYPE_INET: _snd_seq_type = 2;
13530pub type _snd_seq_type = ::core::ffi::c_uint;
13531pub use self::_snd_seq_type as snd_seq_type_t;
13532unsafe extern "C" {
13533    pub fn snd_seq_open(
13534        handle: *mut *mut snd_seq_t,
13535        name: *const ::core::ffi::c_char,
13536        streams: ::core::ffi::c_int,
13537        mode: ::core::ffi::c_int,
13538    ) -> ::core::ffi::c_int;
13539}
13540unsafe extern "C" {
13541    pub fn snd_seq_open_lconf(
13542        handle: *mut *mut snd_seq_t,
13543        name: *const ::core::ffi::c_char,
13544        streams: ::core::ffi::c_int,
13545        mode: ::core::ffi::c_int,
13546        lconf: *mut snd_config_t,
13547    ) -> ::core::ffi::c_int;
13548}
13549unsafe extern "C" {
13550    pub fn snd_seq_name(seq: *mut snd_seq_t) -> *const ::core::ffi::c_char;
13551}
13552unsafe extern "C" {
13553    pub fn snd_seq_type(seq: *mut snd_seq_t) -> snd_seq_type_t;
13554}
13555unsafe extern "C" {
13556    pub fn snd_seq_close(handle: *mut snd_seq_t) -> ::core::ffi::c_int;
13557}
13558unsafe extern "C" {
13559    pub fn snd_seq_poll_descriptors_count(
13560        handle: *mut snd_seq_t,
13561        events: ::core::ffi::c_short,
13562    ) -> ::core::ffi::c_int;
13563}
13564unsafe extern "C" {
13565    pub fn snd_seq_poll_descriptors(
13566        handle: *mut snd_seq_t,
13567        pfds: *mut pollfd,
13568        space: ::core::ffi::c_uint,
13569        events: ::core::ffi::c_short,
13570    ) -> ::core::ffi::c_int;
13571}
13572unsafe extern "C" {
13573    pub fn snd_seq_poll_descriptors_revents(
13574        seq: *mut snd_seq_t,
13575        pfds: *mut pollfd,
13576        nfds: ::core::ffi::c_uint,
13577        revents: *mut ::core::ffi::c_ushort,
13578    ) -> ::core::ffi::c_int;
13579}
13580unsafe extern "C" {
13581    pub fn snd_seq_nonblock(
13582        handle: *mut snd_seq_t,
13583        nonblock: ::core::ffi::c_int,
13584    ) -> ::core::ffi::c_int;
13585}
13586unsafe extern "C" {
13587    pub fn snd_seq_client_id(handle: *mut snd_seq_t) -> ::core::ffi::c_int;
13588}
13589unsafe extern "C" {
13590    pub fn snd_seq_get_output_buffer_size(handle: *mut snd_seq_t) -> usize;
13591}
13592unsafe extern "C" {
13593    pub fn snd_seq_get_input_buffer_size(handle: *mut snd_seq_t) -> usize;
13594}
13595unsafe extern "C" {
13596    pub fn snd_seq_set_output_buffer_size(
13597        handle: *mut snd_seq_t,
13598        size: usize,
13599    ) -> ::core::ffi::c_int;
13600}
13601unsafe extern "C" {
13602    pub fn snd_seq_set_input_buffer_size(handle: *mut snd_seq_t, size: usize)
13603    -> ::core::ffi::c_int;
13604}
13605#[repr(C)]
13606#[derive(Debug, Copy, Clone)]
13607pub struct _snd_seq_system_info {
13608    _unused: [u8; 0],
13609}
13610pub type snd_seq_system_info_t = _snd_seq_system_info;
13611unsafe extern "C" {
13612    pub fn snd_seq_system_info_sizeof() -> usize;
13613}
13614unsafe extern "C" {
13615    pub fn snd_seq_system_info_malloc(ptr: *mut *mut snd_seq_system_info_t) -> ::core::ffi::c_int;
13616}
13617unsafe extern "C" {
13618    pub fn snd_seq_system_info_free(ptr: *mut snd_seq_system_info_t);
13619}
13620unsafe extern "C" {
13621    pub fn snd_seq_system_info_copy(
13622        dst: *mut snd_seq_system_info_t,
13623        src: *const snd_seq_system_info_t,
13624    );
13625}
13626unsafe extern "C" {
13627    pub fn snd_seq_system_info_get_queues(info: *const snd_seq_system_info_t)
13628    -> ::core::ffi::c_int;
13629}
13630unsafe extern "C" {
13631    pub fn snd_seq_system_info_get_clients(
13632        info: *const snd_seq_system_info_t,
13633    ) -> ::core::ffi::c_int;
13634}
13635unsafe extern "C" {
13636    pub fn snd_seq_system_info_get_ports(info: *const snd_seq_system_info_t) -> ::core::ffi::c_int;
13637}
13638unsafe extern "C" {
13639    pub fn snd_seq_system_info_get_channels(
13640        info: *const snd_seq_system_info_t,
13641    ) -> ::core::ffi::c_int;
13642}
13643unsafe extern "C" {
13644    pub fn snd_seq_system_info_get_cur_clients(
13645        info: *const snd_seq_system_info_t,
13646    ) -> ::core::ffi::c_int;
13647}
13648unsafe extern "C" {
13649    pub fn snd_seq_system_info_get_cur_queues(
13650        info: *const snd_seq_system_info_t,
13651    ) -> ::core::ffi::c_int;
13652}
13653unsafe extern "C" {
13654    pub fn snd_seq_system_info(
13655        handle: *mut snd_seq_t,
13656        info: *mut snd_seq_system_info_t,
13657    ) -> ::core::ffi::c_int;
13658}
13659#[repr(C)]
13660#[derive(Debug, Copy, Clone)]
13661pub struct _snd_seq_client_info {
13662    _unused: [u8; 0],
13663}
13664pub type snd_seq_client_info_t = _snd_seq_client_info;
13665pub const SND_SEQ_USER_CLIENT: snd_seq_client_type = 1;
13666pub const SND_SEQ_KERNEL_CLIENT: snd_seq_client_type = 2;
13667pub type snd_seq_client_type = ::core::ffi::c_uint;
13668pub use self::snd_seq_client_type as snd_seq_client_type_t;
13669pub const SND_SEQ_CLIENT_LEGACY_MIDI: _bindgen_ty_23 = 0;
13670pub const SND_SEQ_CLIENT_UMP_MIDI_1_0: _bindgen_ty_23 = 1;
13671pub const SND_SEQ_CLIENT_UMP_MIDI_2_0: _bindgen_ty_23 = 2;
13672pub type _bindgen_ty_23 = ::core::ffi::c_uint;
13673unsafe extern "C" {
13674    pub fn snd_seq_client_info_sizeof() -> usize;
13675}
13676unsafe extern "C" {
13677    pub fn snd_seq_client_info_malloc(ptr: *mut *mut snd_seq_client_info_t) -> ::core::ffi::c_int;
13678}
13679unsafe extern "C" {
13680    pub fn snd_seq_client_info_free(ptr: *mut snd_seq_client_info_t);
13681}
13682unsafe extern "C" {
13683    pub fn snd_seq_client_info_copy(
13684        dst: *mut snd_seq_client_info_t,
13685        src: *const snd_seq_client_info_t,
13686    );
13687}
13688unsafe extern "C" {
13689    pub fn snd_seq_client_info_get_client(info: *const snd_seq_client_info_t)
13690    -> ::core::ffi::c_int;
13691}
13692unsafe extern "C" {
13693    pub fn snd_seq_client_info_get_type(
13694        info: *const snd_seq_client_info_t,
13695    ) -> snd_seq_client_type_t;
13696}
13697unsafe extern "C" {
13698    pub fn snd_seq_client_info_get_name(
13699        info: *mut snd_seq_client_info_t,
13700    ) -> *const ::core::ffi::c_char;
13701}
13702unsafe extern "C" {
13703    pub fn snd_seq_client_info_get_broadcast_filter(
13704        info: *const snd_seq_client_info_t,
13705    ) -> ::core::ffi::c_int;
13706}
13707unsafe extern "C" {
13708    pub fn snd_seq_client_info_get_error_bounce(
13709        info: *const snd_seq_client_info_t,
13710    ) -> ::core::ffi::c_int;
13711}
13712unsafe extern "C" {
13713    pub fn snd_seq_client_info_get_card(info: *const snd_seq_client_info_t) -> ::core::ffi::c_int;
13714}
13715unsafe extern "C" {
13716    pub fn snd_seq_client_info_get_pid(info: *const snd_seq_client_info_t) -> ::core::ffi::c_int;
13717}
13718unsafe extern "C" {
13719    pub fn snd_seq_client_info_get_event_filter(
13720        info: *const snd_seq_client_info_t,
13721    ) -> *const ::core::ffi::c_uchar;
13722}
13723unsafe extern "C" {
13724    pub fn snd_seq_client_info_get_num_ports(
13725        info: *const snd_seq_client_info_t,
13726    ) -> ::core::ffi::c_int;
13727}
13728unsafe extern "C" {
13729    pub fn snd_seq_client_info_get_event_lost(
13730        info: *const snd_seq_client_info_t,
13731    ) -> ::core::ffi::c_int;
13732}
13733unsafe extern "C" {
13734    pub fn snd_seq_client_info_get_midi_version(
13735        info: *const snd_seq_client_info_t,
13736    ) -> ::core::ffi::c_int;
13737}
13738unsafe extern "C" {
13739    pub fn snd_seq_client_info_get_ump_group_enabled(
13740        info: *const snd_seq_client_info_t,
13741        group: ::core::ffi::c_int,
13742    ) -> ::core::ffi::c_int;
13743}
13744unsafe extern "C" {
13745    pub fn snd_seq_client_info_get_ump_groupless_enabled(
13746        info: *const snd_seq_client_info_t,
13747    ) -> ::core::ffi::c_int;
13748}
13749unsafe extern "C" {
13750    pub fn snd_seq_client_info_get_ump_conversion(
13751        info: *const snd_seq_client_info_t,
13752    ) -> ::core::ffi::c_int;
13753}
13754unsafe extern "C" {
13755    pub fn snd_seq_client_info_set_client(
13756        info: *mut snd_seq_client_info_t,
13757        client: ::core::ffi::c_int,
13758    );
13759}
13760unsafe extern "C" {
13761    pub fn snd_seq_client_info_set_name(
13762        info: *mut snd_seq_client_info_t,
13763        name: *const ::core::ffi::c_char,
13764    );
13765}
13766unsafe extern "C" {
13767    pub fn snd_seq_client_info_set_broadcast_filter(
13768        info: *mut snd_seq_client_info_t,
13769        val: ::core::ffi::c_int,
13770    );
13771}
13772unsafe extern "C" {
13773    pub fn snd_seq_client_info_set_error_bounce(
13774        info: *mut snd_seq_client_info_t,
13775        val: ::core::ffi::c_int,
13776    );
13777}
13778unsafe extern "C" {
13779    pub fn snd_seq_client_info_set_event_filter(
13780        info: *mut snd_seq_client_info_t,
13781        filter: *mut ::core::ffi::c_uchar,
13782    );
13783}
13784unsafe extern "C" {
13785    pub fn snd_seq_client_info_set_midi_version(
13786        info: *mut snd_seq_client_info_t,
13787        midi_version: ::core::ffi::c_int,
13788    );
13789}
13790unsafe extern "C" {
13791    pub fn snd_seq_client_info_set_ump_group_enabled(
13792        info: *mut snd_seq_client_info_t,
13793        group: ::core::ffi::c_int,
13794        enable: ::core::ffi::c_int,
13795    );
13796}
13797unsafe extern "C" {
13798    pub fn snd_seq_client_info_set_ump_groupless_enabled(
13799        info: *mut snd_seq_client_info_t,
13800        enable: ::core::ffi::c_int,
13801    );
13802}
13803unsafe extern "C" {
13804    pub fn snd_seq_client_info_set_ump_conversion(
13805        info: *mut snd_seq_client_info_t,
13806        enable: ::core::ffi::c_int,
13807    );
13808}
13809unsafe extern "C" {
13810    pub fn snd_seq_client_info_event_filter_clear(info: *mut snd_seq_client_info_t);
13811}
13812unsafe extern "C" {
13813    pub fn snd_seq_client_info_event_filter_add(
13814        info: *mut snd_seq_client_info_t,
13815        event_type: ::core::ffi::c_int,
13816    );
13817}
13818unsafe extern "C" {
13819    pub fn snd_seq_client_info_event_filter_del(
13820        info: *mut snd_seq_client_info_t,
13821        event_type: ::core::ffi::c_int,
13822    );
13823}
13824unsafe extern "C" {
13825    pub fn snd_seq_client_info_event_filter_check(
13826        info: *mut snd_seq_client_info_t,
13827        event_type: ::core::ffi::c_int,
13828    ) -> ::core::ffi::c_int;
13829}
13830unsafe extern "C" {
13831    pub fn snd_seq_get_client_info(
13832        handle: *mut snd_seq_t,
13833        info: *mut snd_seq_client_info_t,
13834    ) -> ::core::ffi::c_int;
13835}
13836unsafe extern "C" {
13837    pub fn snd_seq_get_any_client_info(
13838        handle: *mut snd_seq_t,
13839        client: ::core::ffi::c_int,
13840        info: *mut snd_seq_client_info_t,
13841    ) -> ::core::ffi::c_int;
13842}
13843unsafe extern "C" {
13844    pub fn snd_seq_set_client_info(
13845        handle: *mut snd_seq_t,
13846        info: *mut snd_seq_client_info_t,
13847    ) -> ::core::ffi::c_int;
13848}
13849unsafe extern "C" {
13850    pub fn snd_seq_query_next_client(
13851        handle: *mut snd_seq_t,
13852        info: *mut snd_seq_client_info_t,
13853    ) -> ::core::ffi::c_int;
13854}
13855unsafe extern "C" {
13856    pub fn snd_seq_get_ump_endpoint_info(
13857        seq: *mut snd_seq_t,
13858        client: ::core::ffi::c_int,
13859        info: *mut ::core::ffi::c_void,
13860    ) -> ::core::ffi::c_int;
13861}
13862unsafe extern "C" {
13863    pub fn snd_seq_get_ump_block_info(
13864        seq: *mut snd_seq_t,
13865        client: ::core::ffi::c_int,
13866        blk: ::core::ffi::c_int,
13867        info: *mut ::core::ffi::c_void,
13868    ) -> ::core::ffi::c_int;
13869}
13870unsafe extern "C" {
13871    pub fn snd_seq_set_ump_endpoint_info(
13872        seq: *mut snd_seq_t,
13873        info: *const ::core::ffi::c_void,
13874    ) -> ::core::ffi::c_int;
13875}
13876unsafe extern "C" {
13877    pub fn snd_seq_set_ump_block_info(
13878        seq: *mut snd_seq_t,
13879        blk: ::core::ffi::c_int,
13880        info: *const ::core::ffi::c_void,
13881    ) -> ::core::ffi::c_int;
13882}
13883#[repr(C)]
13884#[derive(Debug, Copy, Clone)]
13885pub struct _snd_seq_client_pool {
13886    _unused: [u8; 0],
13887}
13888pub type snd_seq_client_pool_t = _snd_seq_client_pool;
13889unsafe extern "C" {
13890    pub fn snd_seq_client_pool_sizeof() -> usize;
13891}
13892unsafe extern "C" {
13893    pub fn snd_seq_client_pool_malloc(ptr: *mut *mut snd_seq_client_pool_t) -> ::core::ffi::c_int;
13894}
13895unsafe extern "C" {
13896    pub fn snd_seq_client_pool_free(ptr: *mut snd_seq_client_pool_t);
13897}
13898unsafe extern "C" {
13899    pub fn snd_seq_client_pool_copy(
13900        dst: *mut snd_seq_client_pool_t,
13901        src: *const snd_seq_client_pool_t,
13902    );
13903}
13904unsafe extern "C" {
13905    pub fn snd_seq_client_pool_get_client(info: *const snd_seq_client_pool_t)
13906    -> ::core::ffi::c_int;
13907}
13908unsafe extern "C" {
13909    pub fn snd_seq_client_pool_get_output_pool(info: *const snd_seq_client_pool_t) -> usize;
13910}
13911unsafe extern "C" {
13912    pub fn snd_seq_client_pool_get_input_pool(info: *const snd_seq_client_pool_t) -> usize;
13913}
13914unsafe extern "C" {
13915    pub fn snd_seq_client_pool_get_output_room(info: *const snd_seq_client_pool_t) -> usize;
13916}
13917unsafe extern "C" {
13918    pub fn snd_seq_client_pool_get_output_free(info: *const snd_seq_client_pool_t) -> usize;
13919}
13920unsafe extern "C" {
13921    pub fn snd_seq_client_pool_get_input_free(info: *const snd_seq_client_pool_t) -> usize;
13922}
13923unsafe extern "C" {
13924    pub fn snd_seq_client_pool_set_output_pool(info: *mut snd_seq_client_pool_t, size: usize);
13925}
13926unsafe extern "C" {
13927    pub fn snd_seq_client_pool_set_input_pool(info: *mut snd_seq_client_pool_t, size: usize);
13928}
13929unsafe extern "C" {
13930    pub fn snd_seq_client_pool_set_output_room(info: *mut snd_seq_client_pool_t, size: usize);
13931}
13932unsafe extern "C" {
13933    pub fn snd_seq_get_client_pool(
13934        handle: *mut snd_seq_t,
13935        info: *mut snd_seq_client_pool_t,
13936    ) -> ::core::ffi::c_int;
13937}
13938unsafe extern "C" {
13939    pub fn snd_seq_set_client_pool(
13940        handle: *mut snd_seq_t,
13941        info: *mut snd_seq_client_pool_t,
13942    ) -> ::core::ffi::c_int;
13943}
13944#[repr(C)]
13945#[derive(Debug, Copy, Clone)]
13946pub struct _snd_seq_port_info {
13947    _unused: [u8; 0],
13948}
13949pub type snd_seq_port_info_t = _snd_seq_port_info;
13950unsafe extern "C" {
13951    pub fn snd_seq_port_info_sizeof() -> usize;
13952}
13953unsafe extern "C" {
13954    pub fn snd_seq_port_info_malloc(ptr: *mut *mut snd_seq_port_info_t) -> ::core::ffi::c_int;
13955}
13956unsafe extern "C" {
13957    pub fn snd_seq_port_info_free(ptr: *mut snd_seq_port_info_t);
13958}
13959unsafe extern "C" {
13960    pub fn snd_seq_port_info_copy(dst: *mut snd_seq_port_info_t, src: *const snd_seq_port_info_t);
13961}
13962unsafe extern "C" {
13963    pub fn snd_seq_port_info_get_client(info: *const snd_seq_port_info_t) -> ::core::ffi::c_int;
13964}
13965unsafe extern "C" {
13966    pub fn snd_seq_port_info_get_port(info: *const snd_seq_port_info_t) -> ::core::ffi::c_int;
13967}
13968unsafe extern "C" {
13969    pub fn snd_seq_port_info_get_addr(info: *const snd_seq_port_info_t) -> *const snd_seq_addr_t;
13970}
13971unsafe extern "C" {
13972    pub fn snd_seq_port_info_get_name(
13973        info: *const snd_seq_port_info_t,
13974    ) -> *const ::core::ffi::c_char;
13975}
13976unsafe extern "C" {
13977    pub fn snd_seq_port_info_get_capability(
13978        info: *const snd_seq_port_info_t,
13979    ) -> ::core::ffi::c_uint;
13980}
13981unsafe extern "C" {
13982    pub fn snd_seq_port_info_get_type(info: *const snd_seq_port_info_t) -> ::core::ffi::c_uint;
13983}
13984unsafe extern "C" {
13985    pub fn snd_seq_port_info_get_midi_channels(
13986        info: *const snd_seq_port_info_t,
13987    ) -> ::core::ffi::c_int;
13988}
13989unsafe extern "C" {
13990    pub fn snd_seq_port_info_get_midi_voices(
13991        info: *const snd_seq_port_info_t,
13992    ) -> ::core::ffi::c_int;
13993}
13994unsafe extern "C" {
13995    pub fn snd_seq_port_info_get_synth_voices(
13996        info: *const snd_seq_port_info_t,
13997    ) -> ::core::ffi::c_int;
13998}
13999unsafe extern "C" {
14000    pub fn snd_seq_port_info_get_read_use(info: *const snd_seq_port_info_t) -> ::core::ffi::c_int;
14001}
14002unsafe extern "C" {
14003    pub fn snd_seq_port_info_get_write_use(info: *const snd_seq_port_info_t) -> ::core::ffi::c_int;
14004}
14005unsafe extern "C" {
14006    pub fn snd_seq_port_info_get_port_specified(
14007        info: *const snd_seq_port_info_t,
14008    ) -> ::core::ffi::c_int;
14009}
14010unsafe extern "C" {
14011    pub fn snd_seq_port_info_get_timestamping(
14012        info: *const snd_seq_port_info_t,
14013    ) -> ::core::ffi::c_int;
14014}
14015unsafe extern "C" {
14016    pub fn snd_seq_port_info_get_timestamp_real(
14017        info: *const snd_seq_port_info_t,
14018    ) -> ::core::ffi::c_int;
14019}
14020unsafe extern "C" {
14021    pub fn snd_seq_port_info_get_timestamp_queue(
14022        info: *const snd_seq_port_info_t,
14023    ) -> ::core::ffi::c_int;
14024}
14025unsafe extern "C" {
14026    pub fn snd_seq_port_info_get_direction(info: *const snd_seq_port_info_t) -> ::core::ffi::c_int;
14027}
14028unsafe extern "C" {
14029    pub fn snd_seq_port_info_get_ump_group(info: *const snd_seq_port_info_t) -> ::core::ffi::c_int;
14030}
14031unsafe extern "C" {
14032    pub fn snd_seq_port_info_get_ump_is_midi1(
14033        info: *const snd_seq_port_info_t,
14034    ) -> ::core::ffi::c_int;
14035}
14036unsafe extern "C" {
14037    pub fn snd_seq_port_info_set_client(info: *mut snd_seq_port_info_t, client: ::core::ffi::c_int);
14038}
14039unsafe extern "C" {
14040    pub fn snd_seq_port_info_set_port(info: *mut snd_seq_port_info_t, port: ::core::ffi::c_int);
14041}
14042unsafe extern "C" {
14043    pub fn snd_seq_port_info_set_addr(info: *mut snd_seq_port_info_t, addr: *const snd_seq_addr_t);
14044}
14045unsafe extern "C" {
14046    pub fn snd_seq_port_info_set_name(
14047        info: *mut snd_seq_port_info_t,
14048        name: *const ::core::ffi::c_char,
14049    );
14050}
14051unsafe extern "C" {
14052    pub fn snd_seq_port_info_set_capability(
14053        info: *mut snd_seq_port_info_t,
14054        capability: ::core::ffi::c_uint,
14055    );
14056}
14057unsafe extern "C" {
14058    pub fn snd_seq_port_info_set_type(info: *mut snd_seq_port_info_t, type_: ::core::ffi::c_uint);
14059}
14060unsafe extern "C" {
14061    pub fn snd_seq_port_info_set_midi_channels(
14062        info: *mut snd_seq_port_info_t,
14063        channels: ::core::ffi::c_int,
14064    );
14065}
14066unsafe extern "C" {
14067    pub fn snd_seq_port_info_set_midi_voices(
14068        info: *mut snd_seq_port_info_t,
14069        voices: ::core::ffi::c_int,
14070    );
14071}
14072unsafe extern "C" {
14073    pub fn snd_seq_port_info_set_synth_voices(
14074        info: *mut snd_seq_port_info_t,
14075        voices: ::core::ffi::c_int,
14076    );
14077}
14078unsafe extern "C" {
14079    pub fn snd_seq_port_info_set_port_specified(
14080        info: *mut snd_seq_port_info_t,
14081        val: ::core::ffi::c_int,
14082    );
14083}
14084unsafe extern "C" {
14085    pub fn snd_seq_port_info_set_timestamping(
14086        info: *mut snd_seq_port_info_t,
14087        enable: ::core::ffi::c_int,
14088    );
14089}
14090unsafe extern "C" {
14091    pub fn snd_seq_port_info_set_timestamp_real(
14092        info: *mut snd_seq_port_info_t,
14093        realtime: ::core::ffi::c_int,
14094    );
14095}
14096unsafe extern "C" {
14097    pub fn snd_seq_port_info_set_timestamp_queue(
14098        info: *mut snd_seq_port_info_t,
14099        queue: ::core::ffi::c_int,
14100    );
14101}
14102unsafe extern "C" {
14103    pub fn snd_seq_port_info_set_direction(
14104        info: *mut snd_seq_port_info_t,
14105        direction: ::core::ffi::c_int,
14106    );
14107}
14108unsafe extern "C" {
14109    pub fn snd_seq_port_info_set_ump_group(
14110        info: *mut snd_seq_port_info_t,
14111        ump_group: ::core::ffi::c_int,
14112    );
14113}
14114unsafe extern "C" {
14115    pub fn snd_seq_port_info_set_ump_is_midi1(
14116        info: *mut snd_seq_port_info_t,
14117        is_midi1: ::core::ffi::c_int,
14118    );
14119}
14120unsafe extern "C" {
14121    pub fn snd_seq_create_port(
14122        handle: *mut snd_seq_t,
14123        info: *mut snd_seq_port_info_t,
14124    ) -> ::core::ffi::c_int;
14125}
14126unsafe extern "C" {
14127    pub fn snd_seq_delete_port(
14128        handle: *mut snd_seq_t,
14129        port: ::core::ffi::c_int,
14130    ) -> ::core::ffi::c_int;
14131}
14132unsafe extern "C" {
14133    pub fn snd_seq_get_port_info(
14134        handle: *mut snd_seq_t,
14135        port: ::core::ffi::c_int,
14136        info: *mut snd_seq_port_info_t,
14137    ) -> ::core::ffi::c_int;
14138}
14139unsafe extern "C" {
14140    pub fn snd_seq_get_any_port_info(
14141        handle: *mut snd_seq_t,
14142        client: ::core::ffi::c_int,
14143        port: ::core::ffi::c_int,
14144        info: *mut snd_seq_port_info_t,
14145    ) -> ::core::ffi::c_int;
14146}
14147unsafe extern "C" {
14148    pub fn snd_seq_set_port_info(
14149        handle: *mut snd_seq_t,
14150        port: ::core::ffi::c_int,
14151        info: *mut snd_seq_port_info_t,
14152    ) -> ::core::ffi::c_int;
14153}
14154unsafe extern "C" {
14155    pub fn snd_seq_query_next_port(
14156        handle: *mut snd_seq_t,
14157        info: *mut snd_seq_port_info_t,
14158    ) -> ::core::ffi::c_int;
14159}
14160#[repr(C)]
14161#[derive(Debug, Copy, Clone)]
14162pub struct _snd_seq_port_subscribe {
14163    _unused: [u8; 0],
14164}
14165pub type snd_seq_port_subscribe_t = _snd_seq_port_subscribe;
14166unsafe extern "C" {
14167    pub fn snd_seq_port_subscribe_sizeof() -> usize;
14168}
14169unsafe extern "C" {
14170    pub fn snd_seq_port_subscribe_malloc(
14171        ptr: *mut *mut snd_seq_port_subscribe_t,
14172    ) -> ::core::ffi::c_int;
14173}
14174unsafe extern "C" {
14175    pub fn snd_seq_port_subscribe_free(ptr: *mut snd_seq_port_subscribe_t);
14176}
14177unsafe extern "C" {
14178    pub fn snd_seq_port_subscribe_copy(
14179        dst: *mut snd_seq_port_subscribe_t,
14180        src: *const snd_seq_port_subscribe_t,
14181    );
14182}
14183unsafe extern "C" {
14184    pub fn snd_seq_port_subscribe_get_sender(
14185        info: *const snd_seq_port_subscribe_t,
14186    ) -> *const snd_seq_addr_t;
14187}
14188unsafe extern "C" {
14189    pub fn snd_seq_port_subscribe_get_dest(
14190        info: *const snd_seq_port_subscribe_t,
14191    ) -> *const snd_seq_addr_t;
14192}
14193unsafe extern "C" {
14194    pub fn snd_seq_port_subscribe_get_queue(
14195        info: *const snd_seq_port_subscribe_t,
14196    ) -> ::core::ffi::c_int;
14197}
14198unsafe extern "C" {
14199    pub fn snd_seq_port_subscribe_get_exclusive(
14200        info: *const snd_seq_port_subscribe_t,
14201    ) -> ::core::ffi::c_int;
14202}
14203unsafe extern "C" {
14204    pub fn snd_seq_port_subscribe_get_time_update(
14205        info: *const snd_seq_port_subscribe_t,
14206    ) -> ::core::ffi::c_int;
14207}
14208unsafe extern "C" {
14209    pub fn snd_seq_port_subscribe_get_time_real(
14210        info: *const snd_seq_port_subscribe_t,
14211    ) -> ::core::ffi::c_int;
14212}
14213unsafe extern "C" {
14214    pub fn snd_seq_port_subscribe_set_sender(
14215        info: *mut snd_seq_port_subscribe_t,
14216        addr: *const snd_seq_addr_t,
14217    );
14218}
14219unsafe extern "C" {
14220    pub fn snd_seq_port_subscribe_set_dest(
14221        info: *mut snd_seq_port_subscribe_t,
14222        addr: *const snd_seq_addr_t,
14223    );
14224}
14225unsafe extern "C" {
14226    pub fn snd_seq_port_subscribe_set_queue(
14227        info: *mut snd_seq_port_subscribe_t,
14228        q: ::core::ffi::c_int,
14229    );
14230}
14231unsafe extern "C" {
14232    pub fn snd_seq_port_subscribe_set_exclusive(
14233        info: *mut snd_seq_port_subscribe_t,
14234        val: ::core::ffi::c_int,
14235    );
14236}
14237unsafe extern "C" {
14238    pub fn snd_seq_port_subscribe_set_time_update(
14239        info: *mut snd_seq_port_subscribe_t,
14240        val: ::core::ffi::c_int,
14241    );
14242}
14243unsafe extern "C" {
14244    pub fn snd_seq_port_subscribe_set_time_real(
14245        info: *mut snd_seq_port_subscribe_t,
14246        val: ::core::ffi::c_int,
14247    );
14248}
14249unsafe extern "C" {
14250    pub fn snd_seq_get_port_subscription(
14251        handle: *mut snd_seq_t,
14252        sub: *mut snd_seq_port_subscribe_t,
14253    ) -> ::core::ffi::c_int;
14254}
14255unsafe extern "C" {
14256    pub fn snd_seq_subscribe_port(
14257        handle: *mut snd_seq_t,
14258        sub: *mut snd_seq_port_subscribe_t,
14259    ) -> ::core::ffi::c_int;
14260}
14261unsafe extern "C" {
14262    pub fn snd_seq_unsubscribe_port(
14263        handle: *mut snd_seq_t,
14264        sub: *mut snd_seq_port_subscribe_t,
14265    ) -> ::core::ffi::c_int;
14266}
14267#[repr(C)]
14268#[derive(Debug, Copy, Clone)]
14269pub struct _snd_seq_query_subscribe {
14270    _unused: [u8; 0],
14271}
14272pub type snd_seq_query_subscribe_t = _snd_seq_query_subscribe;
14273pub const SND_SEQ_QUERY_SUBS_READ: snd_seq_query_subs_type_t = 0;
14274pub const SND_SEQ_QUERY_SUBS_WRITE: snd_seq_query_subs_type_t = 1;
14275pub type snd_seq_query_subs_type_t = ::core::ffi::c_uint;
14276unsafe extern "C" {
14277    pub fn snd_seq_query_subscribe_sizeof() -> usize;
14278}
14279unsafe extern "C" {
14280    pub fn snd_seq_query_subscribe_malloc(
14281        ptr: *mut *mut snd_seq_query_subscribe_t,
14282    ) -> ::core::ffi::c_int;
14283}
14284unsafe extern "C" {
14285    pub fn snd_seq_query_subscribe_free(ptr: *mut snd_seq_query_subscribe_t);
14286}
14287unsafe extern "C" {
14288    pub fn snd_seq_query_subscribe_copy(
14289        dst: *mut snd_seq_query_subscribe_t,
14290        src: *const snd_seq_query_subscribe_t,
14291    );
14292}
14293unsafe extern "C" {
14294    pub fn snd_seq_query_subscribe_get_client(
14295        info: *const snd_seq_query_subscribe_t,
14296    ) -> ::core::ffi::c_int;
14297}
14298unsafe extern "C" {
14299    pub fn snd_seq_query_subscribe_get_port(
14300        info: *const snd_seq_query_subscribe_t,
14301    ) -> ::core::ffi::c_int;
14302}
14303unsafe extern "C" {
14304    pub fn snd_seq_query_subscribe_get_root(
14305        info: *const snd_seq_query_subscribe_t,
14306    ) -> *const snd_seq_addr_t;
14307}
14308unsafe extern "C" {
14309    pub fn snd_seq_query_subscribe_get_type(
14310        info: *const snd_seq_query_subscribe_t,
14311    ) -> snd_seq_query_subs_type_t;
14312}
14313unsafe extern "C" {
14314    pub fn snd_seq_query_subscribe_get_index(
14315        info: *const snd_seq_query_subscribe_t,
14316    ) -> ::core::ffi::c_int;
14317}
14318unsafe extern "C" {
14319    pub fn snd_seq_query_subscribe_get_num_subs(
14320        info: *const snd_seq_query_subscribe_t,
14321    ) -> ::core::ffi::c_int;
14322}
14323unsafe extern "C" {
14324    pub fn snd_seq_query_subscribe_get_addr(
14325        info: *const snd_seq_query_subscribe_t,
14326    ) -> *const snd_seq_addr_t;
14327}
14328unsafe extern "C" {
14329    pub fn snd_seq_query_subscribe_get_queue(
14330        info: *const snd_seq_query_subscribe_t,
14331    ) -> ::core::ffi::c_int;
14332}
14333unsafe extern "C" {
14334    pub fn snd_seq_query_subscribe_get_exclusive(
14335        info: *const snd_seq_query_subscribe_t,
14336    ) -> ::core::ffi::c_int;
14337}
14338unsafe extern "C" {
14339    pub fn snd_seq_query_subscribe_get_time_update(
14340        info: *const snd_seq_query_subscribe_t,
14341    ) -> ::core::ffi::c_int;
14342}
14343unsafe extern "C" {
14344    pub fn snd_seq_query_subscribe_get_time_real(
14345        info: *const snd_seq_query_subscribe_t,
14346    ) -> ::core::ffi::c_int;
14347}
14348unsafe extern "C" {
14349    pub fn snd_seq_query_subscribe_set_client(
14350        info: *mut snd_seq_query_subscribe_t,
14351        client: ::core::ffi::c_int,
14352    );
14353}
14354unsafe extern "C" {
14355    pub fn snd_seq_query_subscribe_set_port(
14356        info: *mut snd_seq_query_subscribe_t,
14357        port: ::core::ffi::c_int,
14358    );
14359}
14360unsafe extern "C" {
14361    pub fn snd_seq_query_subscribe_set_root(
14362        info: *mut snd_seq_query_subscribe_t,
14363        addr: *const snd_seq_addr_t,
14364    );
14365}
14366unsafe extern "C" {
14367    pub fn snd_seq_query_subscribe_set_type(
14368        info: *mut snd_seq_query_subscribe_t,
14369        type_: snd_seq_query_subs_type_t,
14370    );
14371}
14372unsafe extern "C" {
14373    pub fn snd_seq_query_subscribe_set_index(
14374        info: *mut snd_seq_query_subscribe_t,
14375        _index: ::core::ffi::c_int,
14376    );
14377}
14378unsafe extern "C" {
14379    pub fn snd_seq_query_port_subscribers(
14380        seq: *mut snd_seq_t,
14381        subs: *mut snd_seq_query_subscribe_t,
14382    ) -> ::core::ffi::c_int;
14383}
14384#[repr(C)]
14385#[derive(Debug, Copy, Clone)]
14386pub struct _snd_seq_queue_info {
14387    _unused: [u8; 0],
14388}
14389pub type snd_seq_queue_info_t = _snd_seq_queue_info;
14390#[repr(C)]
14391#[derive(Debug, Copy, Clone)]
14392pub struct _snd_seq_queue_status {
14393    _unused: [u8; 0],
14394}
14395pub type snd_seq_queue_status_t = _snd_seq_queue_status;
14396#[repr(C)]
14397#[derive(Debug, Copy, Clone)]
14398pub struct _snd_seq_queue_tempo {
14399    _unused: [u8; 0],
14400}
14401pub type snd_seq_queue_tempo_t = _snd_seq_queue_tempo;
14402#[repr(C)]
14403#[derive(Debug, Copy, Clone)]
14404pub struct _snd_seq_queue_timer {
14405    _unused: [u8; 0],
14406}
14407pub type snd_seq_queue_timer_t = _snd_seq_queue_timer;
14408unsafe extern "C" {
14409    pub fn snd_seq_queue_info_sizeof() -> usize;
14410}
14411unsafe extern "C" {
14412    pub fn snd_seq_queue_info_malloc(ptr: *mut *mut snd_seq_queue_info_t) -> ::core::ffi::c_int;
14413}
14414unsafe extern "C" {
14415    pub fn snd_seq_queue_info_free(ptr: *mut snd_seq_queue_info_t);
14416}
14417unsafe extern "C" {
14418    pub fn snd_seq_queue_info_copy(
14419        dst: *mut snd_seq_queue_info_t,
14420        src: *const snd_seq_queue_info_t,
14421    );
14422}
14423unsafe extern "C" {
14424    pub fn snd_seq_queue_info_get_queue(info: *const snd_seq_queue_info_t) -> ::core::ffi::c_int;
14425}
14426unsafe extern "C" {
14427    pub fn snd_seq_queue_info_get_name(
14428        info: *const snd_seq_queue_info_t,
14429    ) -> *const ::core::ffi::c_char;
14430}
14431unsafe extern "C" {
14432    pub fn snd_seq_queue_info_get_owner(info: *const snd_seq_queue_info_t) -> ::core::ffi::c_int;
14433}
14434unsafe extern "C" {
14435    pub fn snd_seq_queue_info_get_locked(info: *const snd_seq_queue_info_t) -> ::core::ffi::c_int;
14436}
14437unsafe extern "C" {
14438    pub fn snd_seq_queue_info_get_flags(info: *const snd_seq_queue_info_t) -> ::core::ffi::c_uint;
14439}
14440unsafe extern "C" {
14441    pub fn snd_seq_queue_info_set_name(
14442        info: *mut snd_seq_queue_info_t,
14443        name: *const ::core::ffi::c_char,
14444    );
14445}
14446unsafe extern "C" {
14447    pub fn snd_seq_queue_info_set_owner(info: *mut snd_seq_queue_info_t, owner: ::core::ffi::c_int);
14448}
14449unsafe extern "C" {
14450    pub fn snd_seq_queue_info_set_locked(
14451        info: *mut snd_seq_queue_info_t,
14452        locked: ::core::ffi::c_int,
14453    );
14454}
14455unsafe extern "C" {
14456    pub fn snd_seq_queue_info_set_flags(
14457        info: *mut snd_seq_queue_info_t,
14458        flags: ::core::ffi::c_uint,
14459    );
14460}
14461unsafe extern "C" {
14462    pub fn snd_seq_create_queue(
14463        seq: *mut snd_seq_t,
14464        info: *mut snd_seq_queue_info_t,
14465    ) -> ::core::ffi::c_int;
14466}
14467unsafe extern "C" {
14468    pub fn snd_seq_alloc_named_queue(
14469        seq: *mut snd_seq_t,
14470        name: *const ::core::ffi::c_char,
14471    ) -> ::core::ffi::c_int;
14472}
14473unsafe extern "C" {
14474    pub fn snd_seq_alloc_queue(handle: *mut snd_seq_t) -> ::core::ffi::c_int;
14475}
14476unsafe extern "C" {
14477    pub fn snd_seq_free_queue(handle: *mut snd_seq_t, q: ::core::ffi::c_int) -> ::core::ffi::c_int;
14478}
14479unsafe extern "C" {
14480    pub fn snd_seq_get_queue_info(
14481        seq: *mut snd_seq_t,
14482        q: ::core::ffi::c_int,
14483        info: *mut snd_seq_queue_info_t,
14484    ) -> ::core::ffi::c_int;
14485}
14486unsafe extern "C" {
14487    pub fn snd_seq_set_queue_info(
14488        seq: *mut snd_seq_t,
14489        q: ::core::ffi::c_int,
14490        info: *mut snd_seq_queue_info_t,
14491    ) -> ::core::ffi::c_int;
14492}
14493unsafe extern "C" {
14494    pub fn snd_seq_query_named_queue(
14495        seq: *mut snd_seq_t,
14496        name: *const ::core::ffi::c_char,
14497    ) -> ::core::ffi::c_int;
14498}
14499unsafe extern "C" {
14500    pub fn snd_seq_get_queue_usage(
14501        handle: *mut snd_seq_t,
14502        q: ::core::ffi::c_int,
14503    ) -> ::core::ffi::c_int;
14504}
14505unsafe extern "C" {
14506    pub fn snd_seq_set_queue_usage(
14507        handle: *mut snd_seq_t,
14508        q: ::core::ffi::c_int,
14509        used: ::core::ffi::c_int,
14510    ) -> ::core::ffi::c_int;
14511}
14512unsafe extern "C" {
14513    pub fn snd_seq_queue_status_sizeof() -> usize;
14514}
14515unsafe extern "C" {
14516    pub fn snd_seq_queue_status_malloc(ptr: *mut *mut snd_seq_queue_status_t)
14517    -> ::core::ffi::c_int;
14518}
14519unsafe extern "C" {
14520    pub fn snd_seq_queue_status_free(ptr: *mut snd_seq_queue_status_t);
14521}
14522unsafe extern "C" {
14523    pub fn snd_seq_queue_status_copy(
14524        dst: *mut snd_seq_queue_status_t,
14525        src: *const snd_seq_queue_status_t,
14526    );
14527}
14528unsafe extern "C" {
14529    pub fn snd_seq_queue_status_get_queue(
14530        info: *const snd_seq_queue_status_t,
14531    ) -> ::core::ffi::c_int;
14532}
14533unsafe extern "C" {
14534    pub fn snd_seq_queue_status_get_events(
14535        info: *const snd_seq_queue_status_t,
14536    ) -> ::core::ffi::c_int;
14537}
14538unsafe extern "C" {
14539    pub fn snd_seq_queue_status_get_tick_time(
14540        info: *const snd_seq_queue_status_t,
14541    ) -> snd_seq_tick_time_t;
14542}
14543unsafe extern "C" {
14544    pub fn snd_seq_queue_status_get_real_time(
14545        info: *const snd_seq_queue_status_t,
14546    ) -> *const snd_seq_real_time_t;
14547}
14548unsafe extern "C" {
14549    pub fn snd_seq_queue_status_get_status(
14550        info: *const snd_seq_queue_status_t,
14551    ) -> ::core::ffi::c_uint;
14552}
14553unsafe extern "C" {
14554    pub fn snd_seq_get_queue_status(
14555        handle: *mut snd_seq_t,
14556        q: ::core::ffi::c_int,
14557        status: *mut snd_seq_queue_status_t,
14558    ) -> ::core::ffi::c_int;
14559}
14560unsafe extern "C" {
14561    pub fn snd_seq_queue_tempo_sizeof() -> usize;
14562}
14563unsafe extern "C" {
14564    pub fn snd_seq_queue_tempo_malloc(ptr: *mut *mut snd_seq_queue_tempo_t) -> ::core::ffi::c_int;
14565}
14566unsafe extern "C" {
14567    pub fn snd_seq_queue_tempo_free(ptr: *mut snd_seq_queue_tempo_t);
14568}
14569unsafe extern "C" {
14570    pub fn snd_seq_queue_tempo_copy(
14571        dst: *mut snd_seq_queue_tempo_t,
14572        src: *const snd_seq_queue_tempo_t,
14573    );
14574}
14575unsafe extern "C" {
14576    pub fn snd_seq_queue_tempo_get_queue(info: *const snd_seq_queue_tempo_t) -> ::core::ffi::c_int;
14577}
14578unsafe extern "C" {
14579    pub fn snd_seq_queue_tempo_get_tempo(info: *const snd_seq_queue_tempo_t)
14580    -> ::core::ffi::c_uint;
14581}
14582unsafe extern "C" {
14583    pub fn snd_seq_queue_tempo_get_ppq(info: *const snd_seq_queue_tempo_t) -> ::core::ffi::c_int;
14584}
14585unsafe extern "C" {
14586    pub fn snd_seq_queue_tempo_get_skew(info: *const snd_seq_queue_tempo_t) -> ::core::ffi::c_uint;
14587}
14588unsafe extern "C" {
14589    pub fn snd_seq_queue_tempo_get_skew_base(
14590        info: *const snd_seq_queue_tempo_t,
14591    ) -> ::core::ffi::c_uint;
14592}
14593unsafe extern "C" {
14594    pub fn snd_seq_queue_tempo_get_tempo_base(
14595        info: *const snd_seq_queue_tempo_t,
14596    ) -> ::core::ffi::c_uint;
14597}
14598unsafe extern "C" {
14599    pub fn snd_seq_queue_tempo_set_tempo(
14600        info: *mut snd_seq_queue_tempo_t,
14601        tempo: ::core::ffi::c_uint,
14602    );
14603}
14604unsafe extern "C" {
14605    pub fn snd_seq_queue_tempo_set_ppq(info: *mut snd_seq_queue_tempo_t, ppq: ::core::ffi::c_int);
14606}
14607unsafe extern "C" {
14608    pub fn snd_seq_queue_tempo_set_skew(
14609        info: *mut snd_seq_queue_tempo_t,
14610        skew: ::core::ffi::c_uint,
14611    );
14612}
14613unsafe extern "C" {
14614    pub fn snd_seq_queue_tempo_set_skew_base(
14615        info: *mut snd_seq_queue_tempo_t,
14616        base: ::core::ffi::c_uint,
14617    );
14618}
14619unsafe extern "C" {
14620    pub fn snd_seq_queue_tempo_set_tempo_base(
14621        info: *mut snd_seq_queue_tempo_t,
14622        tempo_base: ::core::ffi::c_uint,
14623    );
14624}
14625unsafe extern "C" {
14626    pub fn snd_seq_get_queue_tempo(
14627        handle: *mut snd_seq_t,
14628        q: ::core::ffi::c_int,
14629        tempo: *mut snd_seq_queue_tempo_t,
14630    ) -> ::core::ffi::c_int;
14631}
14632unsafe extern "C" {
14633    pub fn snd_seq_set_queue_tempo(
14634        handle: *mut snd_seq_t,
14635        q: ::core::ffi::c_int,
14636        tempo: *mut snd_seq_queue_tempo_t,
14637    ) -> ::core::ffi::c_int;
14638}
14639unsafe extern "C" {
14640    pub fn snd_seq_has_queue_tempo_base(handle: *mut snd_seq_t) -> ::core::ffi::c_int;
14641}
14642pub const SND_SEQ_TIMER_ALSA: snd_seq_queue_timer_type_t = 0;
14643pub const SND_SEQ_TIMER_MIDI_CLOCK: snd_seq_queue_timer_type_t = 1;
14644pub const SND_SEQ_TIMER_MIDI_TICK: snd_seq_queue_timer_type_t = 2;
14645pub type snd_seq_queue_timer_type_t = ::core::ffi::c_uint;
14646unsafe extern "C" {
14647    pub fn snd_seq_queue_timer_sizeof() -> usize;
14648}
14649unsafe extern "C" {
14650    pub fn snd_seq_queue_timer_malloc(ptr: *mut *mut snd_seq_queue_timer_t) -> ::core::ffi::c_int;
14651}
14652unsafe extern "C" {
14653    pub fn snd_seq_queue_timer_free(ptr: *mut snd_seq_queue_timer_t);
14654}
14655unsafe extern "C" {
14656    pub fn snd_seq_queue_timer_copy(
14657        dst: *mut snd_seq_queue_timer_t,
14658        src: *const snd_seq_queue_timer_t,
14659    );
14660}
14661unsafe extern "C" {
14662    pub fn snd_seq_queue_timer_get_queue(info: *const snd_seq_queue_timer_t) -> ::core::ffi::c_int;
14663}
14664unsafe extern "C" {
14665    pub fn snd_seq_queue_timer_get_type(
14666        info: *const snd_seq_queue_timer_t,
14667    ) -> snd_seq_queue_timer_type_t;
14668}
14669unsafe extern "C" {
14670    pub fn snd_seq_queue_timer_get_id(info: *const snd_seq_queue_timer_t) -> *const snd_timer_id_t;
14671}
14672unsafe extern "C" {
14673    pub fn snd_seq_queue_timer_get_resolution(
14674        info: *const snd_seq_queue_timer_t,
14675    ) -> ::core::ffi::c_uint;
14676}
14677unsafe extern "C" {
14678    pub fn snd_seq_queue_timer_set_type(
14679        info: *mut snd_seq_queue_timer_t,
14680        type_: snd_seq_queue_timer_type_t,
14681    );
14682}
14683unsafe extern "C" {
14684    pub fn snd_seq_queue_timer_set_id(info: *mut snd_seq_queue_timer_t, id: *const snd_timer_id_t);
14685}
14686unsafe extern "C" {
14687    pub fn snd_seq_queue_timer_set_resolution(
14688        info: *mut snd_seq_queue_timer_t,
14689        resolution: ::core::ffi::c_uint,
14690    );
14691}
14692unsafe extern "C" {
14693    pub fn snd_seq_get_queue_timer(
14694        handle: *mut snd_seq_t,
14695        q: ::core::ffi::c_int,
14696        timer: *mut snd_seq_queue_timer_t,
14697    ) -> ::core::ffi::c_int;
14698}
14699unsafe extern "C" {
14700    pub fn snd_seq_set_queue_timer(
14701        handle: *mut snd_seq_t,
14702        q: ::core::ffi::c_int,
14703        timer: *mut snd_seq_queue_timer_t,
14704    ) -> ::core::ffi::c_int;
14705}
14706unsafe extern "C" {
14707    pub fn snd_seq_free_event(ev: *mut snd_seq_event_t) -> ::core::ffi::c_int;
14708}
14709unsafe extern "C" {
14710    pub fn snd_seq_event_length(ev: *mut snd_seq_event_t) -> isize;
14711}
14712unsafe extern "C" {
14713    pub fn snd_seq_event_output(
14714        handle: *mut snd_seq_t,
14715        ev: *mut snd_seq_event_t,
14716    ) -> ::core::ffi::c_int;
14717}
14718unsafe extern "C" {
14719    pub fn snd_seq_event_output_buffer(
14720        handle: *mut snd_seq_t,
14721        ev: *mut snd_seq_event_t,
14722    ) -> ::core::ffi::c_int;
14723}
14724unsafe extern "C" {
14725    pub fn snd_seq_event_output_direct(
14726        handle: *mut snd_seq_t,
14727        ev: *mut snd_seq_event_t,
14728    ) -> ::core::ffi::c_int;
14729}
14730unsafe extern "C" {
14731    pub fn snd_seq_event_input(
14732        handle: *mut snd_seq_t,
14733        ev: *mut *mut snd_seq_event_t,
14734    ) -> ::core::ffi::c_int;
14735}
14736unsafe extern "C" {
14737    pub fn snd_seq_event_input_pending(
14738        seq: *mut snd_seq_t,
14739        fetch_sequencer: ::core::ffi::c_int,
14740    ) -> ::core::ffi::c_int;
14741}
14742unsafe extern "C" {
14743    pub fn snd_seq_drain_output(handle: *mut snd_seq_t) -> ::core::ffi::c_int;
14744}
14745unsafe extern "C" {
14746    pub fn snd_seq_event_output_pending(seq: *mut snd_seq_t) -> ::core::ffi::c_int;
14747}
14748unsafe extern "C" {
14749    pub fn snd_seq_extract_output(
14750        handle: *mut snd_seq_t,
14751        ev: *mut *mut snd_seq_event_t,
14752    ) -> ::core::ffi::c_int;
14753}
14754unsafe extern "C" {
14755    pub fn snd_seq_drop_output(handle: *mut snd_seq_t) -> ::core::ffi::c_int;
14756}
14757unsafe extern "C" {
14758    pub fn snd_seq_drop_output_buffer(handle: *mut snd_seq_t) -> ::core::ffi::c_int;
14759}
14760unsafe extern "C" {
14761    pub fn snd_seq_drop_input(handle: *mut snd_seq_t) -> ::core::ffi::c_int;
14762}
14763unsafe extern "C" {
14764    pub fn snd_seq_drop_input_buffer(handle: *mut snd_seq_t) -> ::core::ffi::c_int;
14765}
14766#[repr(C)]
14767#[derive(Debug, Copy, Clone)]
14768pub struct _snd_seq_remove_events {
14769    _unused: [u8; 0],
14770}
14771pub type snd_seq_remove_events_t = _snd_seq_remove_events;
14772unsafe extern "C" {
14773    pub fn snd_seq_remove_events_sizeof() -> usize;
14774}
14775unsafe extern "C" {
14776    pub fn snd_seq_remove_events_malloc(
14777        ptr: *mut *mut snd_seq_remove_events_t,
14778    ) -> ::core::ffi::c_int;
14779}
14780unsafe extern "C" {
14781    pub fn snd_seq_remove_events_free(ptr: *mut snd_seq_remove_events_t);
14782}
14783unsafe extern "C" {
14784    pub fn snd_seq_remove_events_copy(
14785        dst: *mut snd_seq_remove_events_t,
14786        src: *const snd_seq_remove_events_t,
14787    );
14788}
14789unsafe extern "C" {
14790    pub fn snd_seq_remove_events_get_condition(
14791        info: *const snd_seq_remove_events_t,
14792    ) -> ::core::ffi::c_uint;
14793}
14794unsafe extern "C" {
14795    pub fn snd_seq_remove_events_get_queue(
14796        info: *const snd_seq_remove_events_t,
14797    ) -> ::core::ffi::c_int;
14798}
14799unsafe extern "C" {
14800    pub fn snd_seq_remove_events_get_time(
14801        info: *const snd_seq_remove_events_t,
14802    ) -> *const snd_seq_timestamp_t;
14803}
14804unsafe extern "C" {
14805    pub fn snd_seq_remove_events_get_dest(
14806        info: *const snd_seq_remove_events_t,
14807    ) -> *const snd_seq_addr_t;
14808}
14809unsafe extern "C" {
14810    pub fn snd_seq_remove_events_get_channel(
14811        info: *const snd_seq_remove_events_t,
14812    ) -> ::core::ffi::c_int;
14813}
14814unsafe extern "C" {
14815    pub fn snd_seq_remove_events_get_event_type(
14816        info: *const snd_seq_remove_events_t,
14817    ) -> ::core::ffi::c_int;
14818}
14819unsafe extern "C" {
14820    pub fn snd_seq_remove_events_get_tag(
14821        info: *const snd_seq_remove_events_t,
14822    ) -> ::core::ffi::c_int;
14823}
14824unsafe extern "C" {
14825    pub fn snd_seq_remove_events_set_condition(
14826        info: *mut snd_seq_remove_events_t,
14827        flags: ::core::ffi::c_uint,
14828    );
14829}
14830unsafe extern "C" {
14831    pub fn snd_seq_remove_events_set_queue(
14832        info: *mut snd_seq_remove_events_t,
14833        queue: ::core::ffi::c_int,
14834    );
14835}
14836unsafe extern "C" {
14837    pub fn snd_seq_remove_events_set_time(
14838        info: *mut snd_seq_remove_events_t,
14839        time: *const snd_seq_timestamp_t,
14840    );
14841}
14842unsafe extern "C" {
14843    pub fn snd_seq_remove_events_set_dest(
14844        info: *mut snd_seq_remove_events_t,
14845        addr: *const snd_seq_addr_t,
14846    );
14847}
14848unsafe extern "C" {
14849    pub fn snd_seq_remove_events_set_channel(
14850        info: *mut snd_seq_remove_events_t,
14851        channel: ::core::ffi::c_int,
14852    );
14853}
14854unsafe extern "C" {
14855    pub fn snd_seq_remove_events_set_event_type(
14856        info: *mut snd_seq_remove_events_t,
14857        type_: ::core::ffi::c_int,
14858    );
14859}
14860unsafe extern "C" {
14861    pub fn snd_seq_remove_events_set_tag(
14862        info: *mut snd_seq_remove_events_t,
14863        tag: ::core::ffi::c_int,
14864    );
14865}
14866unsafe extern "C" {
14867    pub fn snd_seq_remove_events(
14868        handle: *mut snd_seq_t,
14869        info: *mut snd_seq_remove_events_t,
14870    ) -> ::core::ffi::c_int;
14871}
14872unsafe extern "C" {
14873    pub fn snd_seq_ump_event_output(
14874        seq: *mut snd_seq_t,
14875        ev: *mut snd_seq_ump_event_t,
14876    ) -> ::core::ffi::c_int;
14877}
14878unsafe extern "C" {
14879    pub fn snd_seq_ump_event_output_buffer(
14880        seq: *mut snd_seq_t,
14881        ev: *mut snd_seq_ump_event_t,
14882    ) -> ::core::ffi::c_int;
14883}
14884unsafe extern "C" {
14885    pub fn snd_seq_ump_extract_output(
14886        seq: *mut snd_seq_t,
14887        ev_res: *mut *mut snd_seq_ump_event_t,
14888    ) -> ::core::ffi::c_int;
14889}
14890unsafe extern "C" {
14891    pub fn snd_seq_ump_event_output_direct(
14892        seq: *mut snd_seq_t,
14893        ev: *mut snd_seq_ump_event_t,
14894    ) -> ::core::ffi::c_int;
14895}
14896unsafe extern "C" {
14897    pub fn snd_seq_ump_event_input(
14898        seq: *mut snd_seq_t,
14899        ev: *mut *mut snd_seq_ump_event_t,
14900    ) -> ::core::ffi::c_int;
14901}
14902unsafe extern "C" {
14903    pub fn snd_seq_set_bit(nr: ::core::ffi::c_int, array: *mut ::core::ffi::c_void);
14904}
14905unsafe extern "C" {
14906    pub fn snd_seq_unset_bit(nr: ::core::ffi::c_int, array: *mut ::core::ffi::c_void);
14907}
14908unsafe extern "C" {
14909    pub fn snd_seq_change_bit(
14910        nr: ::core::ffi::c_int,
14911        array: *mut ::core::ffi::c_void,
14912    ) -> ::core::ffi::c_int;
14913}
14914unsafe extern "C" {
14915    pub fn snd_seq_get_bit(
14916        nr: ::core::ffi::c_int,
14917        array: *mut ::core::ffi::c_void,
14918    ) -> ::core::ffi::c_int;
14919}
14920pub const SND_SEQ_EVFLG_RESULT: _bindgen_ty_24 = 0;
14921pub const SND_SEQ_EVFLG_NOTE: _bindgen_ty_24 = 1;
14922pub const SND_SEQ_EVFLG_CONTROL: _bindgen_ty_24 = 2;
14923pub const SND_SEQ_EVFLG_QUEUE: _bindgen_ty_24 = 3;
14924pub const SND_SEQ_EVFLG_SYSTEM: _bindgen_ty_24 = 4;
14925pub const SND_SEQ_EVFLG_MESSAGE: _bindgen_ty_24 = 5;
14926pub const SND_SEQ_EVFLG_CONNECTION: _bindgen_ty_24 = 6;
14927pub const SND_SEQ_EVFLG_SAMPLE: _bindgen_ty_24 = 7;
14928pub const SND_SEQ_EVFLG_USERS: _bindgen_ty_24 = 8;
14929pub const SND_SEQ_EVFLG_INSTR: _bindgen_ty_24 = 9;
14930pub const SND_SEQ_EVFLG_QUOTE: _bindgen_ty_24 = 10;
14931pub const SND_SEQ_EVFLG_NONE: _bindgen_ty_24 = 11;
14932pub const SND_SEQ_EVFLG_RAW: _bindgen_ty_24 = 12;
14933pub const SND_SEQ_EVFLG_FIXED: _bindgen_ty_24 = 13;
14934pub const SND_SEQ_EVFLG_VARIABLE: _bindgen_ty_24 = 14;
14935pub const SND_SEQ_EVFLG_VARUSR: _bindgen_ty_24 = 15;
14936pub type _bindgen_ty_24 = ::core::ffi::c_uint;
14937pub const SND_SEQ_EVFLG_NOTE_ONEARG: _bindgen_ty_25 = 0;
14938pub const SND_SEQ_EVFLG_NOTE_TWOARG: _bindgen_ty_25 = 1;
14939pub type _bindgen_ty_25 = ::core::ffi::c_uint;
14940pub const SND_SEQ_EVFLG_QUEUE_NOARG: _bindgen_ty_26 = 0;
14941pub const SND_SEQ_EVFLG_QUEUE_TICK: _bindgen_ty_26 = 1;
14942pub const SND_SEQ_EVFLG_QUEUE_TIME: _bindgen_ty_26 = 2;
14943pub const SND_SEQ_EVFLG_QUEUE_VALUE: _bindgen_ty_26 = 3;
14944pub type _bindgen_ty_26 = ::core::ffi::c_uint;
14945unsafe extern "C" {
14946    pub fn snd_seq_control_queue(
14947        seq: *mut snd_seq_t,
14948        q: ::core::ffi::c_int,
14949        type_: ::core::ffi::c_int,
14950        value: ::core::ffi::c_int,
14951        ev: *mut snd_seq_event_t,
14952    ) -> ::core::ffi::c_int;
14953}
14954unsafe extern "C" {
14955    pub fn snd_seq_create_simple_port(
14956        seq: *mut snd_seq_t,
14957        name: *const ::core::ffi::c_char,
14958        caps: ::core::ffi::c_uint,
14959        type_: ::core::ffi::c_uint,
14960    ) -> ::core::ffi::c_int;
14961}
14962unsafe extern "C" {
14963    pub fn snd_seq_delete_simple_port(
14964        seq: *mut snd_seq_t,
14965        port: ::core::ffi::c_int,
14966    ) -> ::core::ffi::c_int;
14967}
14968unsafe extern "C" {
14969    pub fn snd_seq_connect_from(
14970        seq: *mut snd_seq_t,
14971        my_port: ::core::ffi::c_int,
14972        src_client: ::core::ffi::c_int,
14973        src_port: ::core::ffi::c_int,
14974    ) -> ::core::ffi::c_int;
14975}
14976unsafe extern "C" {
14977    pub fn snd_seq_connect_to(
14978        seq: *mut snd_seq_t,
14979        my_port: ::core::ffi::c_int,
14980        dest_client: ::core::ffi::c_int,
14981        dest_port: ::core::ffi::c_int,
14982    ) -> ::core::ffi::c_int;
14983}
14984unsafe extern "C" {
14985    pub fn snd_seq_disconnect_from(
14986        seq: *mut snd_seq_t,
14987        my_port: ::core::ffi::c_int,
14988        src_client: ::core::ffi::c_int,
14989        src_port: ::core::ffi::c_int,
14990    ) -> ::core::ffi::c_int;
14991}
14992unsafe extern "C" {
14993    pub fn snd_seq_disconnect_to(
14994        seq: *mut snd_seq_t,
14995        my_port: ::core::ffi::c_int,
14996        dest_client: ::core::ffi::c_int,
14997        dest_port: ::core::ffi::c_int,
14998    ) -> ::core::ffi::c_int;
14999}
15000unsafe extern "C" {
15001    pub fn snd_seq_set_client_name(
15002        seq: *mut snd_seq_t,
15003        name: *const ::core::ffi::c_char,
15004    ) -> ::core::ffi::c_int;
15005}
15006unsafe extern "C" {
15007    pub fn snd_seq_set_client_event_filter(
15008        seq: *mut snd_seq_t,
15009        event_type: ::core::ffi::c_int,
15010    ) -> ::core::ffi::c_int;
15011}
15012unsafe extern "C" {
15013    pub fn snd_seq_set_client_midi_version(
15014        seq: *mut snd_seq_t,
15015        midi_version: ::core::ffi::c_int,
15016    ) -> ::core::ffi::c_int;
15017}
15018unsafe extern "C" {
15019    pub fn snd_seq_set_client_ump_conversion(
15020        seq: *mut snd_seq_t,
15021        enable: ::core::ffi::c_int,
15022    ) -> ::core::ffi::c_int;
15023}
15024unsafe extern "C" {
15025    pub fn snd_seq_set_client_pool_output(seq: *mut snd_seq_t, size: usize) -> ::core::ffi::c_int;
15026}
15027unsafe extern "C" {
15028    pub fn snd_seq_set_client_pool_output_room(
15029        seq: *mut snd_seq_t,
15030        size: usize,
15031    ) -> ::core::ffi::c_int;
15032}
15033unsafe extern "C" {
15034    pub fn snd_seq_set_client_pool_input(seq: *mut snd_seq_t, size: usize) -> ::core::ffi::c_int;
15035}
15036unsafe extern "C" {
15037    pub fn snd_seq_sync_output_queue(seq: *mut snd_seq_t) -> ::core::ffi::c_int;
15038}
15039unsafe extern "C" {
15040    pub fn snd_seq_parse_address(
15041        seq: *mut snd_seq_t,
15042        addr: *mut snd_seq_addr_t,
15043        str_: *const ::core::ffi::c_char,
15044    ) -> ::core::ffi::c_int;
15045}
15046unsafe extern "C" {
15047    pub fn snd_seq_reset_pool_output(seq: *mut snd_seq_t) -> ::core::ffi::c_int;
15048}
15049unsafe extern "C" {
15050    pub fn snd_seq_reset_pool_input(seq: *mut snd_seq_t) -> ::core::ffi::c_int;
15051}
15052unsafe extern "C" {
15053    pub fn snd_seq_create_ump_endpoint(
15054        seq: *mut snd_seq_t,
15055        info: *const snd_ump_endpoint_info_t,
15056        num_groups: ::core::ffi::c_uint,
15057    ) -> ::core::ffi::c_int;
15058}
15059unsafe extern "C" {
15060    pub fn snd_seq_create_ump_block(
15061        seq: *mut snd_seq_t,
15062        blkid: ::core::ffi::c_int,
15063        info: *const snd_ump_block_info_t,
15064    ) -> ::core::ffi::c_int;
15065}
15066#[repr(C)]
15067#[derive(Debug, Copy, Clone)]
15068pub struct snd_midi_event {
15069    _unused: [u8; 0],
15070}
15071pub type snd_midi_event_t = snd_midi_event;
15072unsafe extern "C" {
15073    pub fn snd_midi_event_new(
15074        bufsize: usize,
15075        rdev: *mut *mut snd_midi_event_t,
15076    ) -> ::core::ffi::c_int;
15077}
15078unsafe extern "C" {
15079    pub fn snd_midi_event_resize_buffer(
15080        dev: *mut snd_midi_event_t,
15081        bufsize: usize,
15082    ) -> ::core::ffi::c_int;
15083}
15084unsafe extern "C" {
15085    pub fn snd_midi_event_free(dev: *mut snd_midi_event_t);
15086}
15087unsafe extern "C" {
15088    pub fn snd_midi_event_init(dev: *mut snd_midi_event_t);
15089}
15090unsafe extern "C" {
15091    pub fn snd_midi_event_reset_encode(dev: *mut snd_midi_event_t);
15092}
15093unsafe extern "C" {
15094    pub fn snd_midi_event_reset_decode(dev: *mut snd_midi_event_t);
15095}
15096unsafe extern "C" {
15097    pub fn snd_midi_event_no_status(dev: *mut snd_midi_event_t, on: ::core::ffi::c_int);
15098}
15099unsafe extern "C" {
15100    pub fn snd_midi_event_encode(
15101        dev: *mut snd_midi_event_t,
15102        buf: *const ::core::ffi::c_uchar,
15103        count: ::core::ffi::c_long,
15104        ev: *mut snd_seq_event_t,
15105    ) -> ::core::ffi::c_long;
15106}
15107unsafe extern "C" {
15108    pub fn snd_midi_event_encode_byte(
15109        dev: *mut snd_midi_event_t,
15110        c: ::core::ffi::c_int,
15111        ev: *mut snd_seq_event_t,
15112    ) -> ::core::ffi::c_int;
15113}
15114unsafe extern "C" {
15115    pub fn snd_midi_event_decode(
15116        dev: *mut snd_midi_event_t,
15117        buf: *mut ::core::ffi::c_uchar,
15118        count: ::core::ffi::c_long,
15119        ev: *const snd_seq_event_t,
15120    ) -> ::core::ffi::c_long;
15121}
15122pub type __builtin_va_list = [__va_list_tag; 1usize];
15123#[repr(C)]
15124#[derive(Debug, Copy, Clone)]
15125pub struct __va_list_tag {
15126    pub gp_offset: ::core::ffi::c_uint,
15127    pub fp_offset: ::core::ffi::c_uint,
15128    pub overflow_arg_area: *mut ::core::ffi::c_void,
15129    pub reg_save_area: *mut ::core::ffi::c_void,
15130}