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 type __gnuc_va_list = __builtin_va_list;
170pub type va_list = __gnuc_va_list;
171unsafe extern "C" {
172    pub fn snd_asoundlib_version() -> *const ::core::ffi::c_char;
173}
174#[repr(C)]
175#[derive(Debug, Copy, Clone)]
176pub struct snd_dlsym_link {
177    pub next: *mut snd_dlsym_link,
178    pub dlsym_name: *const ::core::ffi::c_char,
179    pub dlsym_ptr: *const ::core::ffi::c_void,
180}
181unsafe extern "C" {
182    pub fn snd_dlpath(
183        path: *mut ::core::ffi::c_char,
184        path_len: usize,
185        name: *const ::core::ffi::c_char,
186    ) -> ::core::ffi::c_int;
187}
188unsafe extern "C" {
189    pub fn snd_dlopen(
190        file: *const ::core::ffi::c_char,
191        mode: ::core::ffi::c_int,
192        errbuf: *mut ::core::ffi::c_char,
193        errbuflen: usize,
194    ) -> *mut ::core::ffi::c_void;
195}
196unsafe extern "C" {
197    pub fn snd_dlsym(
198        handle: *mut ::core::ffi::c_void,
199        name: *const ::core::ffi::c_char,
200        version: *const ::core::ffi::c_char,
201    ) -> *mut ::core::ffi::c_void;
202}
203unsafe extern "C" {
204    pub fn snd_dlclose(handle: *mut ::core::ffi::c_void) -> ::core::ffi::c_int;
205}
206#[repr(C)]
207#[derive(Debug, Copy, Clone)]
208pub struct _snd_async_handler {
209    _unused: [u8; 0],
210}
211pub type snd_async_handler_t = _snd_async_handler;
212pub type snd_async_callback_t =
213    ::core::option::Option<unsafe extern "C" fn(handler: *mut snd_async_handler_t)>;
214unsafe extern "C" {
215    pub fn snd_async_add_handler(
216        handler: *mut *mut snd_async_handler_t,
217        fd: ::core::ffi::c_int,
218        callback: snd_async_callback_t,
219        private_data: *mut ::core::ffi::c_void,
220    ) -> ::core::ffi::c_int;
221}
222unsafe extern "C" {
223    pub fn snd_async_del_handler(handler: *mut snd_async_handler_t) -> ::core::ffi::c_int;
224}
225unsafe extern "C" {
226    pub fn snd_async_handler_get_fd(handler: *mut snd_async_handler_t) -> ::core::ffi::c_int;
227}
228unsafe extern "C" {
229    pub fn snd_async_handler_get_signo(handler: *mut snd_async_handler_t) -> ::core::ffi::c_int;
230}
231unsafe extern "C" {
232    pub fn snd_async_handler_get_callback_private(
233        handler: *mut snd_async_handler_t,
234    ) -> *mut ::core::ffi::c_void;
235}
236#[repr(C)]
237#[derive(Debug, Copy, Clone)]
238pub struct snd_shm_area {
239    _unused: [u8; 0],
240}
241unsafe extern "C" {
242    pub fn snd_shm_area_create(
243        shmid: ::core::ffi::c_int,
244        ptr: *mut ::core::ffi::c_void,
245    ) -> *mut snd_shm_area;
246}
247unsafe extern "C" {
248    pub fn snd_shm_area_share(area: *mut snd_shm_area) -> *mut snd_shm_area;
249}
250unsafe extern "C" {
251    pub fn snd_shm_area_destroy(area: *mut snd_shm_area) -> ::core::ffi::c_int;
252}
253unsafe extern "C" {
254    pub fn snd_user_file(
255        file: *const ::core::ffi::c_char,
256        result: *mut *mut ::core::ffi::c_char,
257    ) -> ::core::ffi::c_int;
258}
259pub type snd_timestamp_t = timeval;
260pub type snd_htimestamp_t = timespec;
261#[repr(C)]
262#[derive(Debug, Copy, Clone)]
263pub struct _snd_input {
264    _unused: [u8; 0],
265}
266pub type snd_input_t = _snd_input;
267pub const SND_INPUT_STDIO: _snd_input_type = 0;
268pub const SND_INPUT_BUFFER: _snd_input_type = 1;
269pub type _snd_input_type = ::core::ffi::c_uint;
270pub use self::_snd_input_type as snd_input_type_t;
271unsafe extern "C" {
272    pub fn snd_input_stdio_open(
273        inputp: *mut *mut snd_input_t,
274        file: *const ::core::ffi::c_char,
275        mode: *const ::core::ffi::c_char,
276    ) -> ::core::ffi::c_int;
277}
278unsafe extern "C" {
279    pub fn snd_input_stdio_attach(
280        inputp: *mut *mut snd_input_t,
281        fp: *mut FILE,
282        _close: ::core::ffi::c_int,
283    ) -> ::core::ffi::c_int;
284}
285unsafe extern "C" {
286    pub fn snd_input_buffer_open(
287        inputp: *mut *mut snd_input_t,
288        buffer: *const ::core::ffi::c_char,
289        size: isize,
290    ) -> ::core::ffi::c_int;
291}
292unsafe extern "C" {
293    pub fn snd_input_close(input: *mut snd_input_t) -> ::core::ffi::c_int;
294}
295unsafe extern "C" {
296    pub fn snd_input_scanf(
297        input: *mut snd_input_t,
298        format: *const ::core::ffi::c_char,
299        ...
300    ) -> ::core::ffi::c_int;
301}
302unsafe extern "C" {
303    pub fn snd_input_gets(
304        input: *mut snd_input_t,
305        str_: *mut ::core::ffi::c_char,
306        size: usize,
307    ) -> *mut ::core::ffi::c_char;
308}
309unsafe extern "C" {
310    pub fn snd_input_getc(input: *mut snd_input_t) -> ::core::ffi::c_int;
311}
312unsafe extern "C" {
313    pub fn snd_input_ungetc(input: *mut snd_input_t, c: ::core::ffi::c_int) -> ::core::ffi::c_int;
314}
315#[repr(C)]
316#[derive(Debug, Copy, Clone)]
317pub struct _snd_output {
318    _unused: [u8; 0],
319}
320pub type snd_output_t = _snd_output;
321pub const SND_OUTPUT_STDIO: _snd_output_type = 0;
322pub const SND_OUTPUT_BUFFER: _snd_output_type = 1;
323pub type _snd_output_type = ::core::ffi::c_uint;
324pub use self::_snd_output_type as snd_output_type_t;
325unsafe extern "C" {
326    pub fn snd_output_stdio_open(
327        outputp: *mut *mut snd_output_t,
328        file: *const ::core::ffi::c_char,
329        mode: *const ::core::ffi::c_char,
330    ) -> ::core::ffi::c_int;
331}
332unsafe extern "C" {
333    pub fn snd_output_stdio_attach(
334        outputp: *mut *mut snd_output_t,
335        fp: *mut FILE,
336        _close: ::core::ffi::c_int,
337    ) -> ::core::ffi::c_int;
338}
339unsafe extern "C" {
340    pub fn snd_output_buffer_open(outputp: *mut *mut snd_output_t) -> ::core::ffi::c_int;
341}
342unsafe extern "C" {
343    pub fn snd_output_buffer_string(
344        output: *mut snd_output_t,
345        buf: *mut *mut ::core::ffi::c_char,
346    ) -> usize;
347}
348unsafe extern "C" {
349    pub fn snd_output_buffer_steal(
350        output: *mut snd_output_t,
351        buf: *mut *mut ::core::ffi::c_char,
352    ) -> usize;
353}
354unsafe extern "C" {
355    pub fn snd_output_close(output: *mut snd_output_t) -> ::core::ffi::c_int;
356}
357unsafe extern "C" {
358    pub fn snd_output_printf(
359        output: *mut snd_output_t,
360        format: *const ::core::ffi::c_char,
361        ...
362    ) -> ::core::ffi::c_int;
363}
364unsafe extern "C" {
365    pub fn snd_output_vprintf(
366        output: *mut snd_output_t,
367        format: *const ::core::ffi::c_char,
368        args: *mut __va_list_tag,
369    ) -> ::core::ffi::c_int;
370}
371unsafe extern "C" {
372    pub fn snd_output_puts(
373        output: *mut snd_output_t,
374        str_: *const ::core::ffi::c_char,
375    ) -> ::core::ffi::c_int;
376}
377unsafe extern "C" {
378    pub fn snd_output_putc(output: *mut snd_output_t, c: ::core::ffi::c_int) -> ::core::ffi::c_int;
379}
380unsafe extern "C" {
381    pub fn snd_output_flush(output: *mut snd_output_t) -> ::core::ffi::c_int;
382}
383unsafe extern "C" {
384    pub fn snd_strerror(errnum: ::core::ffi::c_int) -> *const ::core::ffi::c_char;
385}
386pub type snd_lib_error_handler_t = ::core::option::Option<
387    unsafe extern "C" fn(
388        file: *const ::core::ffi::c_char,
389        line: ::core::ffi::c_int,
390        function: *const ::core::ffi::c_char,
391        err: ::core::ffi::c_int,
392        fmt: *const ::core::ffi::c_char,
393        ...
394    ),
395>;
396unsafe extern "C" {
397    pub fn snd_lib_error_set_handler(handler: snd_lib_error_handler_t) -> ::core::ffi::c_int;
398}
399pub type snd_local_error_handler_t = ::core::option::Option<
400    unsafe extern "C" fn(
401        file: *const ::core::ffi::c_char,
402        line: ::core::ffi::c_int,
403        func: *const ::core::ffi::c_char,
404        err: ::core::ffi::c_int,
405        fmt: *const ::core::ffi::c_char,
406        arg: *mut __va_list_tag,
407    ),
408>;
409unsafe extern "C" {
410    pub fn snd_lib_error_set_local(func: snd_local_error_handler_t) -> snd_local_error_handler_t;
411}
412pub const SND_CONFIG_TYPE_INTEGER: _snd_config_type = 0;
413pub const SND_CONFIG_TYPE_INTEGER64: _snd_config_type = 1;
414pub const SND_CONFIG_TYPE_REAL: _snd_config_type = 2;
415pub const SND_CONFIG_TYPE_STRING: _snd_config_type = 3;
416pub const SND_CONFIG_TYPE_POINTER: _snd_config_type = 4;
417pub const SND_CONFIG_TYPE_COMPOUND: _snd_config_type = 1024;
418pub type _snd_config_type = ::core::ffi::c_uint;
419pub use self::_snd_config_type as snd_config_type_t;
420#[repr(C)]
421#[derive(Debug, Copy, Clone)]
422pub struct _snd_config {
423    _unused: [u8; 0],
424}
425pub type snd_config_t = _snd_config;
426#[repr(C)]
427#[derive(Debug, Copy, Clone)]
428pub struct _snd_config_iterator {
429    _unused: [u8; 0],
430}
431pub type snd_config_iterator_t = *mut _snd_config_iterator;
432#[repr(C)]
433#[derive(Debug, Copy, Clone)]
434pub struct _snd_config_update {
435    _unused: [u8; 0],
436}
437pub type snd_config_update_t = _snd_config_update;
438unsafe extern "C" {
439    pub fn snd_config_topdir() -> *const ::core::ffi::c_char;
440}
441unsafe extern "C" {
442    pub fn snd_config_top(config: *mut *mut snd_config_t) -> ::core::ffi::c_int;
443}
444unsafe extern "C" {
445    pub fn snd_config_load(config: *mut snd_config_t, in_: *mut snd_input_t) -> ::core::ffi::c_int;
446}
447unsafe extern "C" {
448    pub fn snd_config_load_string(
449        config: *mut *mut snd_config_t,
450        s: *const ::core::ffi::c_char,
451        size: usize,
452    ) -> ::core::ffi::c_int;
453}
454unsafe extern "C" {
455    pub fn snd_config_load_override(
456        config: *mut snd_config_t,
457        in_: *mut snd_input_t,
458    ) -> ::core::ffi::c_int;
459}
460unsafe extern "C" {
461    pub fn snd_config_save(config: *mut snd_config_t, out: *mut snd_output_t)
462    -> ::core::ffi::c_int;
463}
464unsafe extern "C" {
465    pub fn snd_config_update() -> ::core::ffi::c_int;
466}
467unsafe extern "C" {
468    pub fn snd_config_update_r(
469        top: *mut *mut snd_config_t,
470        update: *mut *mut snd_config_update_t,
471        path: *const ::core::ffi::c_char,
472    ) -> ::core::ffi::c_int;
473}
474unsafe extern "C" {
475    pub fn snd_config_update_free(update: *mut snd_config_update_t) -> ::core::ffi::c_int;
476}
477unsafe extern "C" {
478    pub fn snd_config_update_free_global() -> ::core::ffi::c_int;
479}
480unsafe extern "C" {
481    pub fn snd_config_update_ref(top: *mut *mut snd_config_t) -> ::core::ffi::c_int;
482}
483unsafe extern "C" {
484    pub fn snd_config_ref(top: *mut snd_config_t);
485}
486unsafe extern "C" {
487    pub fn snd_config_unref(top: *mut snd_config_t);
488}
489unsafe extern "C" {
490    pub fn snd_config_search(
491        config: *mut snd_config_t,
492        key: *const ::core::ffi::c_char,
493        result: *mut *mut snd_config_t,
494    ) -> ::core::ffi::c_int;
495}
496unsafe extern "C" {
497    pub fn snd_config_searchv(
498        config: *mut snd_config_t,
499        result: *mut *mut snd_config_t,
500        ...
501    ) -> ::core::ffi::c_int;
502}
503unsafe extern "C" {
504    pub fn snd_config_search_definition(
505        config: *mut snd_config_t,
506        base: *const ::core::ffi::c_char,
507        key: *const ::core::ffi::c_char,
508        result: *mut *mut snd_config_t,
509    ) -> ::core::ffi::c_int;
510}
511pub type snd_config_expand_fcn_t = ::core::option::Option<
512    unsafe extern "C" fn(
513        dst: *mut *mut snd_config_t,
514        s: *const ::core::ffi::c_char,
515        private_data: *mut ::core::ffi::c_void,
516    ) -> ::core::ffi::c_int,
517>;
518unsafe extern "C" {
519    pub fn snd_config_expand_custom(
520        config: *mut snd_config_t,
521        root: *mut snd_config_t,
522        fcn: snd_config_expand_fcn_t,
523        private_data: *mut ::core::ffi::c_void,
524        result: *mut *mut snd_config_t,
525    ) -> ::core::ffi::c_int;
526}
527unsafe extern "C" {
528    pub fn snd_config_expand(
529        config: *mut snd_config_t,
530        root: *mut snd_config_t,
531        args: *const ::core::ffi::c_char,
532        private_data: *mut snd_config_t,
533        result: *mut *mut snd_config_t,
534    ) -> ::core::ffi::c_int;
535}
536unsafe extern "C" {
537    pub fn snd_config_evaluate(
538        config: *mut snd_config_t,
539        root: *mut snd_config_t,
540        private_data: *mut snd_config_t,
541        result: *mut *mut snd_config_t,
542    ) -> ::core::ffi::c_int;
543}
544unsafe extern "C" {
545    pub fn snd_config_evaluate_string(
546        dst: *mut *mut snd_config_t,
547        s: *const ::core::ffi::c_char,
548        fcn: snd_config_expand_fcn_t,
549        private_data: *mut ::core::ffi::c_void,
550    ) -> ::core::ffi::c_int;
551}
552unsafe extern "C" {
553    pub fn snd_config_add(
554        config: *mut snd_config_t,
555        child: *mut snd_config_t,
556    ) -> ::core::ffi::c_int;
557}
558unsafe extern "C" {
559    pub fn snd_config_add_before(
560        before: *mut snd_config_t,
561        child: *mut snd_config_t,
562    ) -> ::core::ffi::c_int;
563}
564unsafe extern "C" {
565    pub fn snd_config_add_after(
566        after: *mut snd_config_t,
567        child: *mut snd_config_t,
568    ) -> ::core::ffi::c_int;
569}
570unsafe extern "C" {
571    pub fn snd_config_remove(config: *mut snd_config_t) -> ::core::ffi::c_int;
572}
573unsafe extern "C" {
574    pub fn snd_config_delete(config: *mut snd_config_t) -> ::core::ffi::c_int;
575}
576unsafe extern "C" {
577    pub fn snd_config_delete_compound_members(config: *const snd_config_t) -> ::core::ffi::c_int;
578}
579unsafe extern "C" {
580    pub fn snd_config_copy(
581        dst: *mut *mut snd_config_t,
582        src: *mut snd_config_t,
583    ) -> ::core::ffi::c_int;
584}
585unsafe extern "C" {
586    pub fn snd_config_substitute(
587        dst: *mut snd_config_t,
588        src: *mut snd_config_t,
589    ) -> ::core::ffi::c_int;
590}
591unsafe extern "C" {
592    pub fn snd_config_merge(
593        dst: *mut snd_config_t,
594        src: *mut snd_config_t,
595        override_: ::core::ffi::c_int,
596    ) -> ::core::ffi::c_int;
597}
598unsafe extern "C" {
599    pub fn snd_config_make(
600        config: *mut *mut snd_config_t,
601        key: *const ::core::ffi::c_char,
602        type_: snd_config_type_t,
603    ) -> ::core::ffi::c_int;
604}
605unsafe extern "C" {
606    pub fn snd_config_make_integer(
607        config: *mut *mut snd_config_t,
608        key: *const ::core::ffi::c_char,
609    ) -> ::core::ffi::c_int;
610}
611unsafe extern "C" {
612    pub fn snd_config_make_integer64(
613        config: *mut *mut snd_config_t,
614        key: *const ::core::ffi::c_char,
615    ) -> ::core::ffi::c_int;
616}
617unsafe extern "C" {
618    pub fn snd_config_make_real(
619        config: *mut *mut snd_config_t,
620        key: *const ::core::ffi::c_char,
621    ) -> ::core::ffi::c_int;
622}
623unsafe extern "C" {
624    pub fn snd_config_make_string(
625        config: *mut *mut snd_config_t,
626        key: *const ::core::ffi::c_char,
627    ) -> ::core::ffi::c_int;
628}
629unsafe extern "C" {
630    pub fn snd_config_make_pointer(
631        config: *mut *mut snd_config_t,
632        key: *const ::core::ffi::c_char,
633    ) -> ::core::ffi::c_int;
634}
635unsafe extern "C" {
636    pub fn snd_config_make_compound(
637        config: *mut *mut snd_config_t,
638        key: *const ::core::ffi::c_char,
639        join: ::core::ffi::c_int,
640    ) -> ::core::ffi::c_int;
641}
642unsafe extern "C" {
643    pub fn snd_config_make_path(
644        config: *mut *mut snd_config_t,
645        root: *mut snd_config_t,
646        key: *const ::core::ffi::c_char,
647        join: ::core::ffi::c_int,
648        override_: ::core::ffi::c_int,
649    ) -> ::core::ffi::c_int;
650}
651unsafe extern "C" {
652    pub fn snd_config_imake_integer(
653        config: *mut *mut snd_config_t,
654        key: *const ::core::ffi::c_char,
655        value: ::core::ffi::c_long,
656    ) -> ::core::ffi::c_int;
657}
658unsafe extern "C" {
659    pub fn snd_config_imake_integer64(
660        config: *mut *mut snd_config_t,
661        key: *const ::core::ffi::c_char,
662        value: ::core::ffi::c_longlong,
663    ) -> ::core::ffi::c_int;
664}
665unsafe extern "C" {
666    pub fn snd_config_imake_real(
667        config: *mut *mut snd_config_t,
668        key: *const ::core::ffi::c_char,
669        value: f64,
670    ) -> ::core::ffi::c_int;
671}
672unsafe extern "C" {
673    pub fn snd_config_imake_string(
674        config: *mut *mut snd_config_t,
675        key: *const ::core::ffi::c_char,
676        ascii: *const ::core::ffi::c_char,
677    ) -> ::core::ffi::c_int;
678}
679unsafe extern "C" {
680    pub fn snd_config_imake_safe_string(
681        config: *mut *mut snd_config_t,
682        key: *const ::core::ffi::c_char,
683        ascii: *const ::core::ffi::c_char,
684    ) -> ::core::ffi::c_int;
685}
686unsafe extern "C" {
687    pub fn snd_config_imake_pointer(
688        config: *mut *mut snd_config_t,
689        key: *const ::core::ffi::c_char,
690        ptr: *const ::core::ffi::c_void,
691    ) -> ::core::ffi::c_int;
692}
693unsafe extern "C" {
694    pub fn snd_config_get_type(config: *const snd_config_t) -> snd_config_type_t;
695}
696unsafe extern "C" {
697    pub fn snd_config_is_array(config: *const snd_config_t) -> ::core::ffi::c_int;
698}
699unsafe extern "C" {
700    pub fn snd_config_is_empty(config: *const snd_config_t) -> ::core::ffi::c_int;
701}
702unsafe extern "C" {
703    pub fn snd_config_set_id(
704        config: *mut snd_config_t,
705        id: *const ::core::ffi::c_char,
706    ) -> ::core::ffi::c_int;
707}
708unsafe extern "C" {
709    pub fn snd_config_set_integer(
710        config: *mut snd_config_t,
711        value: ::core::ffi::c_long,
712    ) -> ::core::ffi::c_int;
713}
714unsafe extern "C" {
715    pub fn snd_config_set_integer64(
716        config: *mut snd_config_t,
717        value: ::core::ffi::c_longlong,
718    ) -> ::core::ffi::c_int;
719}
720unsafe extern "C" {
721    pub fn snd_config_set_real(config: *mut snd_config_t, value: f64) -> ::core::ffi::c_int;
722}
723unsafe extern "C" {
724    pub fn snd_config_set_string(
725        config: *mut snd_config_t,
726        value: *const ::core::ffi::c_char,
727    ) -> ::core::ffi::c_int;
728}
729unsafe extern "C" {
730    pub fn snd_config_set_ascii(
731        config: *mut snd_config_t,
732        ascii: *const ::core::ffi::c_char,
733    ) -> ::core::ffi::c_int;
734}
735unsafe extern "C" {
736    pub fn snd_config_set_pointer(
737        config: *mut snd_config_t,
738        ptr: *const ::core::ffi::c_void,
739    ) -> ::core::ffi::c_int;
740}
741unsafe extern "C" {
742    pub fn snd_config_get_id(
743        config: *const snd_config_t,
744        value: *mut *const ::core::ffi::c_char,
745    ) -> ::core::ffi::c_int;
746}
747unsafe extern "C" {
748    pub fn snd_config_get_integer(
749        config: *const snd_config_t,
750        value: *mut ::core::ffi::c_long,
751    ) -> ::core::ffi::c_int;
752}
753unsafe extern "C" {
754    pub fn snd_config_get_integer64(
755        config: *const snd_config_t,
756        value: *mut ::core::ffi::c_longlong,
757    ) -> ::core::ffi::c_int;
758}
759unsafe extern "C" {
760    pub fn snd_config_get_real(config: *const snd_config_t, value: *mut f64) -> ::core::ffi::c_int;
761}
762unsafe extern "C" {
763    pub fn snd_config_get_ireal(config: *const snd_config_t, value: *mut f64)
764    -> ::core::ffi::c_int;
765}
766unsafe extern "C" {
767    pub fn snd_config_get_string(
768        config: *const snd_config_t,
769        value: *mut *const ::core::ffi::c_char,
770    ) -> ::core::ffi::c_int;
771}
772unsafe extern "C" {
773    pub fn snd_config_get_ascii(
774        config: *const snd_config_t,
775        value: *mut *mut ::core::ffi::c_char,
776    ) -> ::core::ffi::c_int;
777}
778unsafe extern "C" {
779    pub fn snd_config_get_pointer(
780        config: *const snd_config_t,
781        value: *mut *const ::core::ffi::c_void,
782    ) -> ::core::ffi::c_int;
783}
784unsafe extern "C" {
785    pub fn snd_config_test_id(
786        config: *const snd_config_t,
787        id: *const ::core::ffi::c_char,
788    ) -> ::core::ffi::c_int;
789}
790unsafe extern "C" {
791    pub fn snd_config_iterator_first(node: *const snd_config_t) -> snd_config_iterator_t;
792}
793unsafe extern "C" {
794    pub fn snd_config_iterator_next(iterator: snd_config_iterator_t) -> snd_config_iterator_t;
795}
796unsafe extern "C" {
797    pub fn snd_config_iterator_end(node: *const snd_config_t) -> snd_config_iterator_t;
798}
799unsafe extern "C" {
800    pub fn snd_config_iterator_entry(iterator: snd_config_iterator_t) -> *mut snd_config_t;
801}
802unsafe extern "C" {
803    pub fn snd_config_get_bool_ascii(ascii: *const ::core::ffi::c_char) -> ::core::ffi::c_int;
804}
805unsafe extern "C" {
806    pub fn snd_config_get_bool(conf: *const snd_config_t) -> ::core::ffi::c_int;
807}
808unsafe extern "C" {
809    pub fn snd_config_get_card(conf: *const snd_config_t) -> ::core::ffi::c_int;
810}
811unsafe extern "C" {
812    pub fn snd_config_get_ctl_iface_ascii(ascii: *const ::core::ffi::c_char) -> ::core::ffi::c_int;
813}
814unsafe extern "C" {
815    pub fn snd_config_get_ctl_iface(conf: *const snd_config_t) -> ::core::ffi::c_int;
816}
817pub type snd_devname_t = snd_devname;
818#[repr(C)]
819#[derive(Debug, Copy, Clone)]
820pub struct snd_devname {
821    pub name: *mut ::core::ffi::c_char,
822    pub comment: *mut ::core::ffi::c_char,
823    pub next: *mut snd_devname_t,
824}
825unsafe extern "C" {
826    pub fn snd_names_list(
827        iface: *const ::core::ffi::c_char,
828        list: *mut *mut snd_devname_t,
829    ) -> ::core::ffi::c_int;
830}
831unsafe extern "C" {
832    pub fn snd_names_list_free(list: *mut snd_devname_t);
833}
834#[repr(C)]
835#[derive(Debug, Copy, Clone)]
836pub struct _snd_pcm_info {
837    _unused: [u8; 0],
838}
839pub type snd_pcm_info_t = _snd_pcm_info;
840#[repr(C)]
841#[derive(Debug, Copy, Clone)]
842pub struct _snd_pcm_hw_params {
843    _unused: [u8; 0],
844}
845pub type snd_pcm_hw_params_t = _snd_pcm_hw_params;
846#[repr(C)]
847#[derive(Debug, Copy, Clone)]
848pub struct _snd_pcm_sw_params {
849    _unused: [u8; 0],
850}
851pub type snd_pcm_sw_params_t = _snd_pcm_sw_params;
852#[repr(C)]
853#[derive(Debug, Copy, Clone)]
854pub struct _snd_pcm_status {
855    _unused: [u8; 0],
856}
857pub type snd_pcm_status_t = _snd_pcm_status;
858#[repr(C)]
859#[derive(Debug, Copy, Clone)]
860pub struct _snd_pcm_access_mask {
861    _unused: [u8; 0],
862}
863pub type snd_pcm_access_mask_t = _snd_pcm_access_mask;
864#[repr(C)]
865#[derive(Debug, Copy, Clone)]
866pub struct _snd_pcm_format_mask {
867    _unused: [u8; 0],
868}
869pub type snd_pcm_format_mask_t = _snd_pcm_format_mask;
870#[repr(C)]
871#[derive(Debug, Copy, Clone)]
872pub struct _snd_pcm_subformat_mask {
873    _unused: [u8; 0],
874}
875pub type snd_pcm_subformat_mask_t = _snd_pcm_subformat_mask;
876pub const SND_PCM_CLASS_GENERIC: _snd_pcm_class = 0;
877pub const SND_PCM_CLASS_MULTI: _snd_pcm_class = 1;
878pub const SND_PCM_CLASS_MODEM: _snd_pcm_class = 2;
879pub const SND_PCM_CLASS_DIGITIZER: _snd_pcm_class = 3;
880pub const SND_PCM_CLASS_LAST: _snd_pcm_class = 3;
881pub type _snd_pcm_class = ::core::ffi::c_uint;
882pub use self::_snd_pcm_class as snd_pcm_class_t;
883pub const SND_PCM_SUBCLASS_GENERIC_MIX: _snd_pcm_subclass = 0;
884pub const SND_PCM_SUBCLASS_MULTI_MIX: _snd_pcm_subclass = 1;
885pub const SND_PCM_SUBCLASS_LAST: _snd_pcm_subclass = 1;
886pub type _snd_pcm_subclass = ::core::ffi::c_uint;
887pub use self::_snd_pcm_subclass as snd_pcm_subclass_t;
888pub const SND_PCM_STREAM_PLAYBACK: _snd_pcm_stream = 0;
889pub const SND_PCM_STREAM_CAPTURE: _snd_pcm_stream = 1;
890pub const SND_PCM_STREAM_LAST: _snd_pcm_stream = 1;
891pub type _snd_pcm_stream = ::core::ffi::c_uint;
892pub use self::_snd_pcm_stream as snd_pcm_stream_t;
893pub const SND_PCM_ACCESS_MMAP_INTERLEAVED: _snd_pcm_access = 0;
894pub const SND_PCM_ACCESS_MMAP_NONINTERLEAVED: _snd_pcm_access = 1;
895pub const SND_PCM_ACCESS_MMAP_COMPLEX: _snd_pcm_access = 2;
896pub const SND_PCM_ACCESS_RW_INTERLEAVED: _snd_pcm_access = 3;
897pub const SND_PCM_ACCESS_RW_NONINTERLEAVED: _snd_pcm_access = 4;
898pub const SND_PCM_ACCESS_LAST: _snd_pcm_access = 4;
899pub type _snd_pcm_access = ::core::ffi::c_uint;
900pub use self::_snd_pcm_access as snd_pcm_access_t;
901pub const SND_PCM_FORMAT_UNKNOWN: _snd_pcm_format = -1;
902pub const SND_PCM_FORMAT_S8: _snd_pcm_format = 0;
903pub const SND_PCM_FORMAT_U8: _snd_pcm_format = 1;
904pub const SND_PCM_FORMAT_S16_LE: _snd_pcm_format = 2;
905pub const SND_PCM_FORMAT_S16_BE: _snd_pcm_format = 3;
906pub const SND_PCM_FORMAT_U16_LE: _snd_pcm_format = 4;
907pub const SND_PCM_FORMAT_U16_BE: _snd_pcm_format = 5;
908pub const SND_PCM_FORMAT_S24_LE: _snd_pcm_format = 6;
909pub const SND_PCM_FORMAT_S24_BE: _snd_pcm_format = 7;
910pub const SND_PCM_FORMAT_U24_LE: _snd_pcm_format = 8;
911pub const SND_PCM_FORMAT_U24_BE: _snd_pcm_format = 9;
912pub const SND_PCM_FORMAT_S32_LE: _snd_pcm_format = 10;
913pub const SND_PCM_FORMAT_S32_BE: _snd_pcm_format = 11;
914pub const SND_PCM_FORMAT_U32_LE: _snd_pcm_format = 12;
915pub const SND_PCM_FORMAT_U32_BE: _snd_pcm_format = 13;
916pub const SND_PCM_FORMAT_FLOAT_LE: _snd_pcm_format = 14;
917pub const SND_PCM_FORMAT_FLOAT_BE: _snd_pcm_format = 15;
918pub const SND_PCM_FORMAT_FLOAT64_LE: _snd_pcm_format = 16;
919pub const SND_PCM_FORMAT_FLOAT64_BE: _snd_pcm_format = 17;
920pub const SND_PCM_FORMAT_IEC958_SUBFRAME_LE: _snd_pcm_format = 18;
921pub const SND_PCM_FORMAT_IEC958_SUBFRAME_BE: _snd_pcm_format = 19;
922pub const SND_PCM_FORMAT_MU_LAW: _snd_pcm_format = 20;
923pub const SND_PCM_FORMAT_A_LAW: _snd_pcm_format = 21;
924pub const SND_PCM_FORMAT_IMA_ADPCM: _snd_pcm_format = 22;
925pub const SND_PCM_FORMAT_MPEG: _snd_pcm_format = 23;
926pub const SND_PCM_FORMAT_GSM: _snd_pcm_format = 24;
927pub const SND_PCM_FORMAT_S20_LE: _snd_pcm_format = 25;
928pub const SND_PCM_FORMAT_S20_BE: _snd_pcm_format = 26;
929pub const SND_PCM_FORMAT_U20_LE: _snd_pcm_format = 27;
930pub const SND_PCM_FORMAT_U20_BE: _snd_pcm_format = 28;
931pub const SND_PCM_FORMAT_SPECIAL: _snd_pcm_format = 31;
932pub const SND_PCM_FORMAT_S24_3LE: _snd_pcm_format = 32;
933pub const SND_PCM_FORMAT_S24_3BE: _snd_pcm_format = 33;
934pub const SND_PCM_FORMAT_U24_3LE: _snd_pcm_format = 34;
935pub const SND_PCM_FORMAT_U24_3BE: _snd_pcm_format = 35;
936pub const SND_PCM_FORMAT_S20_3LE: _snd_pcm_format = 36;
937pub const SND_PCM_FORMAT_S20_3BE: _snd_pcm_format = 37;
938pub const SND_PCM_FORMAT_U20_3LE: _snd_pcm_format = 38;
939pub const SND_PCM_FORMAT_U20_3BE: _snd_pcm_format = 39;
940pub const SND_PCM_FORMAT_S18_3LE: _snd_pcm_format = 40;
941pub const SND_PCM_FORMAT_S18_3BE: _snd_pcm_format = 41;
942pub const SND_PCM_FORMAT_U18_3LE: _snd_pcm_format = 42;
943pub const SND_PCM_FORMAT_U18_3BE: _snd_pcm_format = 43;
944pub const SND_PCM_FORMAT_G723_24: _snd_pcm_format = 44;
945pub const SND_PCM_FORMAT_G723_24_1B: _snd_pcm_format = 45;
946pub const SND_PCM_FORMAT_G723_40: _snd_pcm_format = 46;
947pub const SND_PCM_FORMAT_G723_40_1B: _snd_pcm_format = 47;
948pub const SND_PCM_FORMAT_DSD_U8: _snd_pcm_format = 48;
949pub const SND_PCM_FORMAT_DSD_U16_LE: _snd_pcm_format = 49;
950pub const SND_PCM_FORMAT_DSD_U32_LE: _snd_pcm_format = 50;
951pub const SND_PCM_FORMAT_DSD_U16_BE: _snd_pcm_format = 51;
952pub const SND_PCM_FORMAT_DSD_U32_BE: _snd_pcm_format = 52;
953pub const SND_PCM_FORMAT_LAST: _snd_pcm_format = 52;
954pub const SND_PCM_FORMAT_S16: _snd_pcm_format = 2;
955pub const SND_PCM_FORMAT_U16: _snd_pcm_format = 4;
956pub const SND_PCM_FORMAT_S24: _snd_pcm_format = 6;
957pub const SND_PCM_FORMAT_U24: _snd_pcm_format = 8;
958pub const SND_PCM_FORMAT_S32: _snd_pcm_format = 10;
959pub const SND_PCM_FORMAT_U32: _snd_pcm_format = 12;
960pub const SND_PCM_FORMAT_FLOAT: _snd_pcm_format = 14;
961pub const SND_PCM_FORMAT_FLOAT64: _snd_pcm_format = 16;
962pub const SND_PCM_FORMAT_IEC958_SUBFRAME: _snd_pcm_format = 18;
963pub const SND_PCM_FORMAT_S20: _snd_pcm_format = 25;
964pub const SND_PCM_FORMAT_U20: _snd_pcm_format = 27;
965pub type _snd_pcm_format = ::core::ffi::c_int;
966pub use self::_snd_pcm_format as snd_pcm_format_t;
967pub const SND_PCM_SUBFORMAT_UNKNOWN: _snd_pcm_subformat = -1;
968pub const SND_PCM_SUBFORMAT_STD: _snd_pcm_subformat = 0;
969pub const SND_PCM_SUBFORMAT_MSBITS_MAX: _snd_pcm_subformat = 1;
970pub const SND_PCM_SUBFORMAT_MSBITS_20: _snd_pcm_subformat = 2;
971pub const SND_PCM_SUBFORMAT_MSBITS_24: _snd_pcm_subformat = 3;
972pub const SND_PCM_SUBFORMAT_LAST: _snd_pcm_subformat = 3;
973pub type _snd_pcm_subformat = ::core::ffi::c_int;
974pub use self::_snd_pcm_subformat as snd_pcm_subformat_t;
975pub const SND_PCM_STATE_OPEN: _snd_pcm_state = 0;
976pub const SND_PCM_STATE_SETUP: _snd_pcm_state = 1;
977pub const SND_PCM_STATE_PREPARED: _snd_pcm_state = 2;
978pub const SND_PCM_STATE_RUNNING: _snd_pcm_state = 3;
979pub const SND_PCM_STATE_XRUN: _snd_pcm_state = 4;
980pub const SND_PCM_STATE_DRAINING: _snd_pcm_state = 5;
981pub const SND_PCM_STATE_PAUSED: _snd_pcm_state = 6;
982pub const SND_PCM_STATE_SUSPENDED: _snd_pcm_state = 7;
983pub const SND_PCM_STATE_DISCONNECTED: _snd_pcm_state = 8;
984pub const SND_PCM_STATE_LAST: _snd_pcm_state = 8;
985pub const SND_PCM_STATE_PRIVATE1: _snd_pcm_state = 1024;
986pub type _snd_pcm_state = ::core::ffi::c_uint;
987pub use self::_snd_pcm_state as snd_pcm_state_t;
988pub const SND_PCM_START_DATA: _snd_pcm_start = 0;
989pub const SND_PCM_START_EXPLICIT: _snd_pcm_start = 1;
990pub const SND_PCM_START_LAST: _snd_pcm_start = 1;
991pub type _snd_pcm_start = ::core::ffi::c_uint;
992pub use self::_snd_pcm_start as snd_pcm_start_t;
993pub const SND_PCM_XRUN_NONE: _snd_pcm_xrun = 0;
994pub const SND_PCM_XRUN_STOP: _snd_pcm_xrun = 1;
995pub const SND_PCM_XRUN_LAST: _snd_pcm_xrun = 1;
996pub type _snd_pcm_xrun = ::core::ffi::c_uint;
997pub use self::_snd_pcm_xrun as snd_pcm_xrun_t;
998pub const SND_PCM_TSTAMP_NONE: _snd_pcm_tstamp = 0;
999pub const SND_PCM_TSTAMP_ENABLE: _snd_pcm_tstamp = 1;
1000pub const SND_PCM_TSTAMP_MMAP: _snd_pcm_tstamp = 1;
1001pub const SND_PCM_TSTAMP_LAST: _snd_pcm_tstamp = 1;
1002pub type _snd_pcm_tstamp = ::core::ffi::c_uint;
1003pub use self::_snd_pcm_tstamp as snd_pcm_tstamp_t;
1004pub const SND_PCM_TSTAMP_TYPE_GETTIMEOFDAY: _snd_pcm_tstamp_type = 0;
1005pub const SND_PCM_TSTAMP_TYPE_MONOTONIC: _snd_pcm_tstamp_type = 1;
1006pub const SND_PCM_TSTAMP_TYPE_MONOTONIC_RAW: _snd_pcm_tstamp_type = 2;
1007pub const SND_PCM_TSTAMP_TYPE_LAST: _snd_pcm_tstamp_type = 2;
1008pub type _snd_pcm_tstamp_type = ::core::ffi::c_uint;
1009pub use self::_snd_pcm_tstamp_type as snd_pcm_tstamp_type_t;
1010pub const SND_PCM_AUDIO_TSTAMP_TYPE_COMPAT: _snd_pcm_audio_tstamp_type = 0;
1011pub const SND_PCM_AUDIO_TSTAMP_TYPE_DEFAULT: _snd_pcm_audio_tstamp_type = 1;
1012pub const SND_PCM_AUDIO_TSTAMP_TYPE_LINK: _snd_pcm_audio_tstamp_type = 2;
1013pub const SND_PCM_AUDIO_TSTAMP_TYPE_LINK_ABSOLUTE: _snd_pcm_audio_tstamp_type = 3;
1014pub const SND_PCM_AUDIO_TSTAMP_TYPE_LINK_ESTIMATED: _snd_pcm_audio_tstamp_type = 4;
1015pub const SND_PCM_AUDIO_TSTAMP_TYPE_LINK_SYNCHRONIZED: _snd_pcm_audio_tstamp_type = 5;
1016pub const SND_PCM_AUDIO_TSTAMP_TYPE_LAST: _snd_pcm_audio_tstamp_type = 5;
1017pub type _snd_pcm_audio_tstamp_type = ::core::ffi::c_uint;
1018pub use self::_snd_pcm_audio_tstamp_type as snd_pcm_audio_tstamp_type_t;
1019#[repr(C)]
1020#[repr(align(4))]
1021#[derive(Debug, Copy, Clone)]
1022pub struct _snd_pcm_audio_tstamp_config {
1023    pub _bitfield_align_1: [u8; 0],
1024    pub _bitfield_1: __BindgenBitfieldUnit<[u8; 1usize]>,
1025    pub __bindgen_padding_0: [u8; 3usize],
1026}
1027impl _snd_pcm_audio_tstamp_config {
1028    #[inline]
1029    pub fn type_requested(&self) -> ::core::ffi::c_uint {
1030        unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 4u8) as u32) }
1031    }
1032    #[inline]
1033    pub fn set_type_requested(&mut self, val: ::core::ffi::c_uint) {
1034        unsafe {
1035            let val: u32 = ::core::mem::transmute(val);
1036            self._bitfield_1.set(0usize, 4u8, val as u64)
1037        }
1038    }
1039    #[inline]
1040    pub unsafe fn type_requested_raw(this: *const Self) -> ::core::ffi::c_uint {
1041        unsafe {
1042            ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get(
1043                ::core::ptr::addr_of!((*this)._bitfield_1),
1044                0usize,
1045                4u8,
1046            ) as u32)
1047        }
1048    }
1049    #[inline]
1050    pub unsafe fn set_type_requested_raw(this: *mut Self, val: ::core::ffi::c_uint) {
1051        unsafe {
1052            let val: u32 = ::core::mem::transmute(val);
1053            <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set(
1054                ::core::ptr::addr_of_mut!((*this)._bitfield_1),
1055                0usize,
1056                4u8,
1057                val as u64,
1058            )
1059        }
1060    }
1061    #[inline]
1062    pub fn report_delay(&self) -> ::core::ffi::c_uint {
1063        unsafe { ::core::mem::transmute(self._bitfield_1.get(4usize, 1u8) as u32) }
1064    }
1065    #[inline]
1066    pub fn set_report_delay(&mut self, val: ::core::ffi::c_uint) {
1067        unsafe {
1068            let val: u32 = ::core::mem::transmute(val);
1069            self._bitfield_1.set(4usize, 1u8, val as u64)
1070        }
1071    }
1072    #[inline]
1073    pub unsafe fn report_delay_raw(this: *const Self) -> ::core::ffi::c_uint {
1074        unsafe {
1075            ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get(
1076                ::core::ptr::addr_of!((*this)._bitfield_1),
1077                4usize,
1078                1u8,
1079            ) as u32)
1080        }
1081    }
1082    #[inline]
1083    pub unsafe fn set_report_delay_raw(this: *mut Self, val: ::core::ffi::c_uint) {
1084        unsafe {
1085            let val: u32 = ::core::mem::transmute(val);
1086            <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set(
1087                ::core::ptr::addr_of_mut!((*this)._bitfield_1),
1088                4usize,
1089                1u8,
1090                val as u64,
1091            )
1092        }
1093    }
1094    #[inline]
1095    pub fn new_bitfield_1(
1096        type_requested: ::core::ffi::c_uint,
1097        report_delay: ::core::ffi::c_uint,
1098    ) -> __BindgenBitfieldUnit<[u8; 1usize]> {
1099        let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 1usize]> = Default::default();
1100        __bindgen_bitfield_unit.set(0usize, 4u8, {
1101            let type_requested: u32 = unsafe { ::core::mem::transmute(type_requested) };
1102            type_requested as u64
1103        });
1104        __bindgen_bitfield_unit.set(4usize, 1u8, {
1105            let report_delay: u32 = unsafe { ::core::mem::transmute(report_delay) };
1106            report_delay as u64
1107        });
1108        __bindgen_bitfield_unit
1109    }
1110}
1111pub type snd_pcm_audio_tstamp_config_t = _snd_pcm_audio_tstamp_config;
1112#[repr(C)]
1113#[derive(Debug, Copy, Clone)]
1114pub struct _snd_pcm_audio_tstamp_report {
1115    pub _bitfield_align_1: [u8; 0],
1116    pub _bitfield_1: __BindgenBitfieldUnit<[u8; 1usize]>,
1117    pub accuracy: ::core::ffi::c_uint,
1118}
1119impl _snd_pcm_audio_tstamp_report {
1120    #[inline]
1121    pub fn valid(&self) -> ::core::ffi::c_uint {
1122        unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u32) }
1123    }
1124    #[inline]
1125    pub fn set_valid(&mut self, val: ::core::ffi::c_uint) {
1126        unsafe {
1127            let val: u32 = ::core::mem::transmute(val);
1128            self._bitfield_1.set(0usize, 1u8, val as u64)
1129        }
1130    }
1131    #[inline]
1132    pub unsafe fn valid_raw(this: *const Self) -> ::core::ffi::c_uint {
1133        unsafe {
1134            ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get(
1135                ::core::ptr::addr_of!((*this)._bitfield_1),
1136                0usize,
1137                1u8,
1138            ) as u32)
1139        }
1140    }
1141    #[inline]
1142    pub unsafe fn set_valid_raw(this: *mut Self, val: ::core::ffi::c_uint) {
1143        unsafe {
1144            let val: u32 = ::core::mem::transmute(val);
1145            <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set(
1146                ::core::ptr::addr_of_mut!((*this)._bitfield_1),
1147                0usize,
1148                1u8,
1149                val as u64,
1150            )
1151        }
1152    }
1153    #[inline]
1154    pub fn actual_type(&self) -> ::core::ffi::c_uint {
1155        unsafe { ::core::mem::transmute(self._bitfield_1.get(1usize, 4u8) as u32) }
1156    }
1157    #[inline]
1158    pub fn set_actual_type(&mut self, val: ::core::ffi::c_uint) {
1159        unsafe {
1160            let val: u32 = ::core::mem::transmute(val);
1161            self._bitfield_1.set(1usize, 4u8, val as u64)
1162        }
1163    }
1164    #[inline]
1165    pub unsafe fn actual_type_raw(this: *const Self) -> ::core::ffi::c_uint {
1166        unsafe {
1167            ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get(
1168                ::core::ptr::addr_of!((*this)._bitfield_1),
1169                1usize,
1170                4u8,
1171            ) as u32)
1172        }
1173    }
1174    #[inline]
1175    pub unsafe fn set_actual_type_raw(this: *mut Self, val: ::core::ffi::c_uint) {
1176        unsafe {
1177            let val: u32 = ::core::mem::transmute(val);
1178            <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set(
1179                ::core::ptr::addr_of_mut!((*this)._bitfield_1),
1180                1usize,
1181                4u8,
1182                val as u64,
1183            )
1184        }
1185    }
1186    #[inline]
1187    pub fn accuracy_report(&self) -> ::core::ffi::c_uint {
1188        unsafe { ::core::mem::transmute(self._bitfield_1.get(5usize, 1u8) as u32) }
1189    }
1190    #[inline]
1191    pub fn set_accuracy_report(&mut self, val: ::core::ffi::c_uint) {
1192        unsafe {
1193            let val: u32 = ::core::mem::transmute(val);
1194            self._bitfield_1.set(5usize, 1u8, val as u64)
1195        }
1196    }
1197    #[inline]
1198    pub unsafe fn accuracy_report_raw(this: *const Self) -> ::core::ffi::c_uint {
1199        unsafe {
1200            ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get(
1201                ::core::ptr::addr_of!((*this)._bitfield_1),
1202                5usize,
1203                1u8,
1204            ) as u32)
1205        }
1206    }
1207    #[inline]
1208    pub unsafe fn set_accuracy_report_raw(this: *mut Self, val: ::core::ffi::c_uint) {
1209        unsafe {
1210            let val: u32 = ::core::mem::transmute(val);
1211            <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set(
1212                ::core::ptr::addr_of_mut!((*this)._bitfield_1),
1213                5usize,
1214                1u8,
1215                val as u64,
1216            )
1217        }
1218    }
1219    #[inline]
1220    pub fn new_bitfield_1(
1221        valid: ::core::ffi::c_uint,
1222        actual_type: ::core::ffi::c_uint,
1223        accuracy_report: ::core::ffi::c_uint,
1224    ) -> __BindgenBitfieldUnit<[u8; 1usize]> {
1225        let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 1usize]> = Default::default();
1226        __bindgen_bitfield_unit.set(0usize, 1u8, {
1227            let valid: u32 = unsafe { ::core::mem::transmute(valid) };
1228            valid as u64
1229        });
1230        __bindgen_bitfield_unit.set(1usize, 4u8, {
1231            let actual_type: u32 = unsafe { ::core::mem::transmute(actual_type) };
1232            actual_type as u64
1233        });
1234        __bindgen_bitfield_unit.set(5usize, 1u8, {
1235            let accuracy_report: u32 = unsafe { ::core::mem::transmute(accuracy_report) };
1236            accuracy_report as u64
1237        });
1238        __bindgen_bitfield_unit
1239    }
1240}
1241pub type snd_pcm_audio_tstamp_report_t = _snd_pcm_audio_tstamp_report;
1242pub type snd_pcm_uframes_t = ::core::ffi::c_ulong;
1243pub type snd_pcm_sframes_t = ::core::ffi::c_long;
1244#[repr(C)]
1245#[derive(Debug, Copy, Clone)]
1246pub struct _snd_pcm {
1247    _unused: [u8; 0],
1248}
1249pub type snd_pcm_t = _snd_pcm;
1250pub const SND_PCM_TYPE_HW: _snd_pcm_type = 0;
1251pub const SND_PCM_TYPE_HOOKS: _snd_pcm_type = 1;
1252pub const SND_PCM_TYPE_MULTI: _snd_pcm_type = 2;
1253pub const SND_PCM_TYPE_FILE: _snd_pcm_type = 3;
1254pub const SND_PCM_TYPE_NULL: _snd_pcm_type = 4;
1255pub const SND_PCM_TYPE_SHM: _snd_pcm_type = 5;
1256pub const SND_PCM_TYPE_INET: _snd_pcm_type = 6;
1257pub const SND_PCM_TYPE_COPY: _snd_pcm_type = 7;
1258pub const SND_PCM_TYPE_LINEAR: _snd_pcm_type = 8;
1259pub const SND_PCM_TYPE_ALAW: _snd_pcm_type = 9;
1260pub const SND_PCM_TYPE_MULAW: _snd_pcm_type = 10;
1261pub const SND_PCM_TYPE_ADPCM: _snd_pcm_type = 11;
1262pub const SND_PCM_TYPE_RATE: _snd_pcm_type = 12;
1263pub const SND_PCM_TYPE_ROUTE: _snd_pcm_type = 13;
1264pub const SND_PCM_TYPE_PLUG: _snd_pcm_type = 14;
1265pub const SND_PCM_TYPE_SHARE: _snd_pcm_type = 15;
1266pub const SND_PCM_TYPE_METER: _snd_pcm_type = 16;
1267pub const SND_PCM_TYPE_MIX: _snd_pcm_type = 17;
1268pub const SND_PCM_TYPE_DROUTE: _snd_pcm_type = 18;
1269pub const SND_PCM_TYPE_LBSERVER: _snd_pcm_type = 19;
1270pub const SND_PCM_TYPE_LINEAR_FLOAT: _snd_pcm_type = 20;
1271pub const SND_PCM_TYPE_LADSPA: _snd_pcm_type = 21;
1272pub const SND_PCM_TYPE_DMIX: _snd_pcm_type = 22;
1273pub const SND_PCM_TYPE_JACK: _snd_pcm_type = 23;
1274pub const SND_PCM_TYPE_DSNOOP: _snd_pcm_type = 24;
1275pub const SND_PCM_TYPE_DSHARE: _snd_pcm_type = 25;
1276pub const SND_PCM_TYPE_IEC958: _snd_pcm_type = 26;
1277pub const SND_PCM_TYPE_SOFTVOL: _snd_pcm_type = 27;
1278pub const SND_PCM_TYPE_IOPLUG: _snd_pcm_type = 28;
1279pub const SND_PCM_TYPE_EXTPLUG: _snd_pcm_type = 29;
1280pub const SND_PCM_TYPE_MMAP_EMUL: _snd_pcm_type = 30;
1281pub const SND_PCM_TYPE_LAST: _snd_pcm_type = 30;
1282pub type _snd_pcm_type = ::core::ffi::c_uint;
1283pub use self::_snd_pcm_type as snd_pcm_type_t;
1284#[repr(C)]
1285#[derive(Debug, Copy, Clone)]
1286pub struct _snd_pcm_channel_area {
1287    pub addr: *mut ::core::ffi::c_void,
1288    pub first: ::core::ffi::c_uint,
1289    pub step: ::core::ffi::c_uint,
1290}
1291pub type snd_pcm_channel_area_t = _snd_pcm_channel_area;
1292#[repr(C)]
1293#[derive(Copy, Clone)]
1294pub union _snd_pcm_sync_id {
1295    pub id: [::core::ffi::c_uchar; 16usize],
1296    pub id16: [::core::ffi::c_ushort; 8usize],
1297    pub id32: [::core::ffi::c_uint; 4usize],
1298}
1299pub type snd_pcm_sync_id_t = _snd_pcm_sync_id;
1300#[repr(C)]
1301#[derive(Debug, Copy, Clone)]
1302pub struct _snd_pcm_scope {
1303    _unused: [u8; 0],
1304}
1305pub type snd_pcm_scope_t = _snd_pcm_scope;
1306unsafe extern "C" {
1307    pub fn snd_pcm_open(
1308        pcm: *mut *mut snd_pcm_t,
1309        name: *const ::core::ffi::c_char,
1310        stream: snd_pcm_stream_t,
1311        mode: ::core::ffi::c_int,
1312    ) -> ::core::ffi::c_int;
1313}
1314unsafe extern "C" {
1315    pub fn snd_pcm_open_lconf(
1316        pcm: *mut *mut snd_pcm_t,
1317        name: *const ::core::ffi::c_char,
1318        stream: snd_pcm_stream_t,
1319        mode: ::core::ffi::c_int,
1320        lconf: *mut snd_config_t,
1321    ) -> ::core::ffi::c_int;
1322}
1323unsafe extern "C" {
1324    pub fn snd_pcm_open_fallback(
1325        pcm: *mut *mut snd_pcm_t,
1326        root: *mut snd_config_t,
1327        name: *const ::core::ffi::c_char,
1328        orig_name: *const ::core::ffi::c_char,
1329        stream: snd_pcm_stream_t,
1330        mode: ::core::ffi::c_int,
1331    ) -> ::core::ffi::c_int;
1332}
1333unsafe extern "C" {
1334    pub fn snd_pcm_close(pcm: *mut snd_pcm_t) -> ::core::ffi::c_int;
1335}
1336unsafe extern "C" {
1337    pub fn snd_pcm_name(pcm: *mut snd_pcm_t) -> *const ::core::ffi::c_char;
1338}
1339unsafe extern "C" {
1340    pub fn snd_pcm_type(pcm: *mut snd_pcm_t) -> snd_pcm_type_t;
1341}
1342unsafe extern "C" {
1343    pub fn snd_pcm_stream(pcm: *mut snd_pcm_t) -> snd_pcm_stream_t;
1344}
1345unsafe extern "C" {
1346    pub fn snd_pcm_poll_descriptors_count(pcm: *mut snd_pcm_t) -> ::core::ffi::c_int;
1347}
1348unsafe extern "C" {
1349    pub fn snd_pcm_poll_descriptors(
1350        pcm: *mut snd_pcm_t,
1351        pfds: *mut pollfd,
1352        space: ::core::ffi::c_uint,
1353    ) -> ::core::ffi::c_int;
1354}
1355unsafe extern "C" {
1356    pub fn snd_pcm_poll_descriptors_revents(
1357        pcm: *mut snd_pcm_t,
1358        pfds: *mut pollfd,
1359        nfds: ::core::ffi::c_uint,
1360        revents: *mut ::core::ffi::c_ushort,
1361    ) -> ::core::ffi::c_int;
1362}
1363unsafe extern "C" {
1364    pub fn snd_pcm_nonblock(
1365        pcm: *mut snd_pcm_t,
1366        nonblock: ::core::ffi::c_int,
1367    ) -> ::core::ffi::c_int;
1368}
1369unsafe extern "C" {
1370    pub fn snd_async_add_pcm_handler(
1371        handler: *mut *mut snd_async_handler_t,
1372        pcm: *mut snd_pcm_t,
1373        callback: snd_async_callback_t,
1374        private_data: *mut ::core::ffi::c_void,
1375    ) -> ::core::ffi::c_int;
1376}
1377unsafe extern "C" {
1378    pub fn snd_async_handler_get_pcm(handler: *mut snd_async_handler_t) -> *mut snd_pcm_t;
1379}
1380unsafe extern "C" {
1381    pub fn snd_pcm_info(pcm: *mut snd_pcm_t, info: *mut snd_pcm_info_t) -> ::core::ffi::c_int;
1382}
1383unsafe extern "C" {
1384    pub fn snd_pcm_hw_params_current(
1385        pcm: *mut snd_pcm_t,
1386        params: *mut snd_pcm_hw_params_t,
1387    ) -> ::core::ffi::c_int;
1388}
1389unsafe extern "C" {
1390    pub fn snd_pcm_hw_params(
1391        pcm: *mut snd_pcm_t,
1392        params: *mut snd_pcm_hw_params_t,
1393    ) -> ::core::ffi::c_int;
1394}
1395unsafe extern "C" {
1396    pub fn snd_pcm_hw_free(pcm: *mut snd_pcm_t) -> ::core::ffi::c_int;
1397}
1398unsafe extern "C" {
1399    pub fn snd_pcm_sw_params_current(
1400        pcm: *mut snd_pcm_t,
1401        params: *mut snd_pcm_sw_params_t,
1402    ) -> ::core::ffi::c_int;
1403}
1404unsafe extern "C" {
1405    pub fn snd_pcm_sw_params(
1406        pcm: *mut snd_pcm_t,
1407        params: *mut snd_pcm_sw_params_t,
1408    ) -> ::core::ffi::c_int;
1409}
1410unsafe extern "C" {
1411    pub fn snd_pcm_prepare(pcm: *mut snd_pcm_t) -> ::core::ffi::c_int;
1412}
1413unsafe extern "C" {
1414    pub fn snd_pcm_reset(pcm: *mut snd_pcm_t) -> ::core::ffi::c_int;
1415}
1416unsafe extern "C" {
1417    pub fn snd_pcm_status(pcm: *mut snd_pcm_t, status: *mut snd_pcm_status_t)
1418    -> ::core::ffi::c_int;
1419}
1420unsafe extern "C" {
1421    pub fn snd_pcm_start(pcm: *mut snd_pcm_t) -> ::core::ffi::c_int;
1422}
1423unsafe extern "C" {
1424    pub fn snd_pcm_drop(pcm: *mut snd_pcm_t) -> ::core::ffi::c_int;
1425}
1426unsafe extern "C" {
1427    pub fn snd_pcm_drain(pcm: *mut snd_pcm_t) -> ::core::ffi::c_int;
1428}
1429unsafe extern "C" {
1430    pub fn snd_pcm_pause(pcm: *mut snd_pcm_t, enable: ::core::ffi::c_int) -> ::core::ffi::c_int;
1431}
1432unsafe extern "C" {
1433    pub fn snd_pcm_state(pcm: *mut snd_pcm_t) -> snd_pcm_state_t;
1434}
1435unsafe extern "C" {
1436    pub fn snd_pcm_hwsync(pcm: *mut snd_pcm_t) -> ::core::ffi::c_int;
1437}
1438unsafe extern "C" {
1439    pub fn snd_pcm_delay(pcm: *mut snd_pcm_t, delayp: *mut snd_pcm_sframes_t)
1440    -> ::core::ffi::c_int;
1441}
1442unsafe extern "C" {
1443    pub fn snd_pcm_resume(pcm: *mut snd_pcm_t) -> ::core::ffi::c_int;
1444}
1445unsafe extern "C" {
1446    pub fn snd_pcm_htimestamp(
1447        pcm: *mut snd_pcm_t,
1448        avail: *mut snd_pcm_uframes_t,
1449        tstamp: *mut snd_htimestamp_t,
1450    ) -> ::core::ffi::c_int;
1451}
1452unsafe extern "C" {
1453    pub fn snd_pcm_avail(pcm: *mut snd_pcm_t) -> snd_pcm_sframes_t;
1454}
1455unsafe extern "C" {
1456    pub fn snd_pcm_avail_update(pcm: *mut snd_pcm_t) -> snd_pcm_sframes_t;
1457}
1458unsafe extern "C" {
1459    pub fn snd_pcm_avail_delay(
1460        pcm: *mut snd_pcm_t,
1461        availp: *mut snd_pcm_sframes_t,
1462        delayp: *mut snd_pcm_sframes_t,
1463    ) -> ::core::ffi::c_int;
1464}
1465unsafe extern "C" {
1466    pub fn snd_pcm_rewindable(pcm: *mut snd_pcm_t) -> snd_pcm_sframes_t;
1467}
1468unsafe extern "C" {
1469    pub fn snd_pcm_rewind(pcm: *mut snd_pcm_t, frames: snd_pcm_uframes_t) -> snd_pcm_sframes_t;
1470}
1471unsafe extern "C" {
1472    pub fn snd_pcm_forwardable(pcm: *mut snd_pcm_t) -> snd_pcm_sframes_t;
1473}
1474unsafe extern "C" {
1475    pub fn snd_pcm_forward(pcm: *mut snd_pcm_t, frames: snd_pcm_uframes_t) -> snd_pcm_sframes_t;
1476}
1477unsafe extern "C" {
1478    pub fn snd_pcm_writei(
1479        pcm: *mut snd_pcm_t,
1480        buffer: *const ::core::ffi::c_void,
1481        size: snd_pcm_uframes_t,
1482    ) -> snd_pcm_sframes_t;
1483}
1484unsafe extern "C" {
1485    pub fn snd_pcm_readi(
1486        pcm: *mut snd_pcm_t,
1487        buffer: *mut ::core::ffi::c_void,
1488        size: snd_pcm_uframes_t,
1489    ) -> snd_pcm_sframes_t;
1490}
1491unsafe extern "C" {
1492    pub fn snd_pcm_writen(
1493        pcm: *mut snd_pcm_t,
1494        bufs: *mut *mut ::core::ffi::c_void,
1495        size: snd_pcm_uframes_t,
1496    ) -> snd_pcm_sframes_t;
1497}
1498unsafe extern "C" {
1499    pub fn snd_pcm_readn(
1500        pcm: *mut snd_pcm_t,
1501        bufs: *mut *mut ::core::ffi::c_void,
1502        size: snd_pcm_uframes_t,
1503    ) -> snd_pcm_sframes_t;
1504}
1505unsafe extern "C" {
1506    pub fn snd_pcm_wait(pcm: *mut snd_pcm_t, timeout: ::core::ffi::c_int) -> ::core::ffi::c_int;
1507}
1508unsafe extern "C" {
1509    pub fn snd_pcm_link(pcm1: *mut snd_pcm_t, pcm2: *mut snd_pcm_t) -> ::core::ffi::c_int;
1510}
1511unsafe extern "C" {
1512    pub fn snd_pcm_unlink(pcm: *mut snd_pcm_t) -> ::core::ffi::c_int;
1513}
1514pub const SND_CHMAP_TYPE_NONE: snd_pcm_chmap_type = 0;
1515pub const SND_CHMAP_TYPE_FIXED: snd_pcm_chmap_type = 1;
1516pub const SND_CHMAP_TYPE_VAR: snd_pcm_chmap_type = 2;
1517pub const SND_CHMAP_TYPE_PAIRED: snd_pcm_chmap_type = 3;
1518pub const SND_CHMAP_TYPE_LAST: snd_pcm_chmap_type = 3;
1519pub type snd_pcm_chmap_type = ::core::ffi::c_uint;
1520pub const SND_CHMAP_UNKNOWN: snd_pcm_chmap_position = 0;
1521pub const SND_CHMAP_NA: snd_pcm_chmap_position = 1;
1522pub const SND_CHMAP_MONO: snd_pcm_chmap_position = 2;
1523pub const SND_CHMAP_FL: snd_pcm_chmap_position = 3;
1524pub const SND_CHMAP_FR: snd_pcm_chmap_position = 4;
1525pub const SND_CHMAP_RL: snd_pcm_chmap_position = 5;
1526pub const SND_CHMAP_RR: snd_pcm_chmap_position = 6;
1527pub const SND_CHMAP_FC: snd_pcm_chmap_position = 7;
1528pub const SND_CHMAP_LFE: snd_pcm_chmap_position = 8;
1529pub const SND_CHMAP_SL: snd_pcm_chmap_position = 9;
1530pub const SND_CHMAP_SR: snd_pcm_chmap_position = 10;
1531pub const SND_CHMAP_RC: snd_pcm_chmap_position = 11;
1532pub const SND_CHMAP_FLC: snd_pcm_chmap_position = 12;
1533pub const SND_CHMAP_FRC: snd_pcm_chmap_position = 13;
1534pub const SND_CHMAP_RLC: snd_pcm_chmap_position = 14;
1535pub const SND_CHMAP_RRC: snd_pcm_chmap_position = 15;
1536pub const SND_CHMAP_FLW: snd_pcm_chmap_position = 16;
1537pub const SND_CHMAP_FRW: snd_pcm_chmap_position = 17;
1538pub const SND_CHMAP_FLH: snd_pcm_chmap_position = 18;
1539pub const SND_CHMAP_FCH: snd_pcm_chmap_position = 19;
1540pub const SND_CHMAP_FRH: snd_pcm_chmap_position = 20;
1541pub const SND_CHMAP_TC: snd_pcm_chmap_position = 21;
1542pub const SND_CHMAP_TFL: snd_pcm_chmap_position = 22;
1543pub const SND_CHMAP_TFR: snd_pcm_chmap_position = 23;
1544pub const SND_CHMAP_TFC: snd_pcm_chmap_position = 24;
1545pub const SND_CHMAP_TRL: snd_pcm_chmap_position = 25;
1546pub const SND_CHMAP_TRR: snd_pcm_chmap_position = 26;
1547pub const SND_CHMAP_TRC: snd_pcm_chmap_position = 27;
1548pub const SND_CHMAP_TFLC: snd_pcm_chmap_position = 28;
1549pub const SND_CHMAP_TFRC: snd_pcm_chmap_position = 29;
1550pub const SND_CHMAP_TSL: snd_pcm_chmap_position = 30;
1551pub const SND_CHMAP_TSR: snd_pcm_chmap_position = 31;
1552pub const SND_CHMAP_LLFE: snd_pcm_chmap_position = 32;
1553pub const SND_CHMAP_RLFE: snd_pcm_chmap_position = 33;
1554pub const SND_CHMAP_BC: snd_pcm_chmap_position = 34;
1555pub const SND_CHMAP_BLC: snd_pcm_chmap_position = 35;
1556pub const SND_CHMAP_BRC: snd_pcm_chmap_position = 36;
1557pub const SND_CHMAP_LAST: snd_pcm_chmap_position = 36;
1558pub type snd_pcm_chmap_position = ::core::ffi::c_uint;
1559#[repr(C)]
1560#[derive(Debug)]
1561pub struct snd_pcm_chmap {
1562    pub channels: ::core::ffi::c_uint,
1563    pub pos: __IncompleteArrayField<::core::ffi::c_uint>,
1564}
1565pub type snd_pcm_chmap_t = snd_pcm_chmap;
1566#[repr(C)]
1567#[derive(Debug)]
1568pub struct snd_pcm_chmap_query {
1569    pub type_: snd_pcm_chmap_type,
1570    pub map: snd_pcm_chmap_t,
1571}
1572pub type snd_pcm_chmap_query_t = snd_pcm_chmap_query;
1573unsafe extern "C" {
1574    pub fn snd_pcm_query_chmaps(pcm: *mut snd_pcm_t) -> *mut *mut snd_pcm_chmap_query_t;
1575}
1576unsafe extern "C" {
1577    pub fn snd_pcm_query_chmaps_from_hw(
1578        card: ::core::ffi::c_int,
1579        dev: ::core::ffi::c_int,
1580        subdev: ::core::ffi::c_int,
1581        stream: snd_pcm_stream_t,
1582    ) -> *mut *mut snd_pcm_chmap_query_t;
1583}
1584unsafe extern "C" {
1585    pub fn snd_pcm_free_chmaps(maps: *mut *mut snd_pcm_chmap_query_t);
1586}
1587unsafe extern "C" {
1588    pub fn snd_pcm_get_chmap(pcm: *mut snd_pcm_t) -> *mut snd_pcm_chmap_t;
1589}
1590unsafe extern "C" {
1591    pub fn snd_pcm_set_chmap(
1592        pcm: *mut snd_pcm_t,
1593        map: *const snd_pcm_chmap_t,
1594    ) -> ::core::ffi::c_int;
1595}
1596unsafe extern "C" {
1597    pub fn snd_pcm_chmap_type_name(val: snd_pcm_chmap_type) -> *const ::core::ffi::c_char;
1598}
1599unsafe extern "C" {
1600    pub fn snd_pcm_chmap_name(val: snd_pcm_chmap_position) -> *const ::core::ffi::c_char;
1601}
1602unsafe extern "C" {
1603    pub fn snd_pcm_chmap_long_name(val: snd_pcm_chmap_position) -> *const ::core::ffi::c_char;
1604}
1605unsafe extern "C" {
1606    pub fn snd_pcm_chmap_print(
1607        map: *const snd_pcm_chmap_t,
1608        maxlen: usize,
1609        buf: *mut ::core::ffi::c_char,
1610    ) -> ::core::ffi::c_int;
1611}
1612unsafe extern "C" {
1613    pub fn snd_pcm_chmap_from_string(str_: *const ::core::ffi::c_char) -> ::core::ffi::c_uint;
1614}
1615unsafe extern "C" {
1616    pub fn snd_pcm_chmap_parse_string(str_: *const ::core::ffi::c_char) -> *mut snd_pcm_chmap_t;
1617}
1618unsafe extern "C" {
1619    pub fn snd_pcm_recover(
1620        pcm: *mut snd_pcm_t,
1621        err: ::core::ffi::c_int,
1622        silent: ::core::ffi::c_int,
1623    ) -> ::core::ffi::c_int;
1624}
1625unsafe extern "C" {
1626    pub fn snd_pcm_set_params(
1627        pcm: *mut snd_pcm_t,
1628        format: snd_pcm_format_t,
1629        access: snd_pcm_access_t,
1630        channels: ::core::ffi::c_uint,
1631        rate: ::core::ffi::c_uint,
1632        soft_resample: ::core::ffi::c_int,
1633        latency: ::core::ffi::c_uint,
1634    ) -> ::core::ffi::c_int;
1635}
1636unsafe extern "C" {
1637    pub fn snd_pcm_get_params(
1638        pcm: *mut snd_pcm_t,
1639        buffer_size: *mut snd_pcm_uframes_t,
1640        period_size: *mut snd_pcm_uframes_t,
1641    ) -> ::core::ffi::c_int;
1642}
1643unsafe extern "C" {
1644    pub fn snd_pcm_info_sizeof() -> usize;
1645}
1646unsafe extern "C" {
1647    pub fn snd_pcm_info_malloc(ptr: *mut *mut snd_pcm_info_t) -> ::core::ffi::c_int;
1648}
1649unsafe extern "C" {
1650    pub fn snd_pcm_info_free(obj: *mut snd_pcm_info_t);
1651}
1652unsafe extern "C" {
1653    pub fn snd_pcm_info_copy(dst: *mut snd_pcm_info_t, src: *const snd_pcm_info_t);
1654}
1655unsafe extern "C" {
1656    pub fn snd_pcm_info_get_device(obj: *const snd_pcm_info_t) -> ::core::ffi::c_uint;
1657}
1658unsafe extern "C" {
1659    pub fn snd_pcm_info_get_subdevice(obj: *const snd_pcm_info_t) -> ::core::ffi::c_uint;
1660}
1661unsafe extern "C" {
1662    pub fn snd_pcm_info_get_stream(obj: *const snd_pcm_info_t) -> snd_pcm_stream_t;
1663}
1664unsafe extern "C" {
1665    pub fn snd_pcm_info_get_card(obj: *const snd_pcm_info_t) -> ::core::ffi::c_int;
1666}
1667unsafe extern "C" {
1668    pub fn snd_pcm_info_get_id(obj: *const snd_pcm_info_t) -> *const ::core::ffi::c_char;
1669}
1670unsafe extern "C" {
1671    pub fn snd_pcm_info_get_name(obj: *const snd_pcm_info_t) -> *const ::core::ffi::c_char;
1672}
1673unsafe extern "C" {
1674    pub fn snd_pcm_info_get_subdevice_name(
1675        obj: *const snd_pcm_info_t,
1676    ) -> *const ::core::ffi::c_char;
1677}
1678unsafe extern "C" {
1679    pub fn snd_pcm_info_get_class(obj: *const snd_pcm_info_t) -> snd_pcm_class_t;
1680}
1681unsafe extern "C" {
1682    pub fn snd_pcm_info_get_subclass(obj: *const snd_pcm_info_t) -> snd_pcm_subclass_t;
1683}
1684unsafe extern "C" {
1685    pub fn snd_pcm_info_get_subdevices_count(obj: *const snd_pcm_info_t) -> ::core::ffi::c_uint;
1686}
1687unsafe extern "C" {
1688    pub fn snd_pcm_info_get_subdevices_avail(obj: *const snd_pcm_info_t) -> ::core::ffi::c_uint;
1689}
1690unsafe extern "C" {
1691    pub fn snd_pcm_info_get_sync(obj: *const snd_pcm_info_t) -> snd_pcm_sync_id_t;
1692}
1693unsafe extern "C" {
1694    pub fn snd_pcm_info_set_device(obj: *mut snd_pcm_info_t, val: ::core::ffi::c_uint);
1695}
1696unsafe extern "C" {
1697    pub fn snd_pcm_info_set_subdevice(obj: *mut snd_pcm_info_t, val: ::core::ffi::c_uint);
1698}
1699unsafe extern "C" {
1700    pub fn snd_pcm_info_set_stream(obj: *mut snd_pcm_info_t, val: snd_pcm_stream_t);
1701}
1702unsafe extern "C" {
1703    pub fn snd_pcm_hw_params_any(
1704        pcm: *mut snd_pcm_t,
1705        params: *mut snd_pcm_hw_params_t,
1706    ) -> ::core::ffi::c_int;
1707}
1708unsafe extern "C" {
1709    pub fn snd_pcm_hw_params_can_mmap_sample_resolution(
1710        params: *const snd_pcm_hw_params_t,
1711    ) -> ::core::ffi::c_int;
1712}
1713unsafe extern "C" {
1714    pub fn snd_pcm_hw_params_is_double(params: *const snd_pcm_hw_params_t) -> ::core::ffi::c_int;
1715}
1716unsafe extern "C" {
1717    pub fn snd_pcm_hw_params_is_batch(params: *const snd_pcm_hw_params_t) -> ::core::ffi::c_int;
1718}
1719unsafe extern "C" {
1720    pub fn snd_pcm_hw_params_is_block_transfer(
1721        params: *const snd_pcm_hw_params_t,
1722    ) -> ::core::ffi::c_int;
1723}
1724unsafe extern "C" {
1725    pub fn snd_pcm_hw_params_is_monotonic(params: *const snd_pcm_hw_params_t)
1726    -> ::core::ffi::c_int;
1727}
1728unsafe extern "C" {
1729    pub fn snd_pcm_hw_params_can_overrange(
1730        params: *const snd_pcm_hw_params_t,
1731    ) -> ::core::ffi::c_int;
1732}
1733unsafe extern "C" {
1734    pub fn snd_pcm_hw_params_can_pause(params: *const snd_pcm_hw_params_t) -> ::core::ffi::c_int;
1735}
1736unsafe extern "C" {
1737    pub fn snd_pcm_hw_params_can_resume(params: *const snd_pcm_hw_params_t) -> ::core::ffi::c_int;
1738}
1739unsafe extern "C" {
1740    pub fn snd_pcm_hw_params_is_half_duplex(
1741        params: *const snd_pcm_hw_params_t,
1742    ) -> ::core::ffi::c_int;
1743}
1744unsafe extern "C" {
1745    pub fn snd_pcm_hw_params_is_joint_duplex(
1746        params: *const snd_pcm_hw_params_t,
1747    ) -> ::core::ffi::c_int;
1748}
1749unsafe extern "C" {
1750    pub fn snd_pcm_hw_params_can_sync_start(
1751        params: *const snd_pcm_hw_params_t,
1752    ) -> ::core::ffi::c_int;
1753}
1754unsafe extern "C" {
1755    pub fn snd_pcm_hw_params_can_disable_period_wakeup(
1756        params: *const snd_pcm_hw_params_t,
1757    ) -> ::core::ffi::c_int;
1758}
1759unsafe extern "C" {
1760    pub fn snd_pcm_hw_params_is_perfect_drain(
1761        params: *const snd_pcm_hw_params_t,
1762    ) -> ::core::ffi::c_int;
1763}
1764unsafe extern "C" {
1765    pub fn snd_pcm_hw_params_supports_audio_wallclock_ts(
1766        params: *const snd_pcm_hw_params_t,
1767    ) -> ::core::ffi::c_int;
1768}
1769unsafe extern "C" {
1770    pub fn snd_pcm_hw_params_supports_audio_ts_type(
1771        params: *const snd_pcm_hw_params_t,
1772        type_: ::core::ffi::c_int,
1773    ) -> ::core::ffi::c_int;
1774}
1775unsafe extern "C" {
1776    pub fn snd_pcm_hw_params_get_rate_numden(
1777        params: *const snd_pcm_hw_params_t,
1778        rate_num: *mut ::core::ffi::c_uint,
1779        rate_den: *mut ::core::ffi::c_uint,
1780    ) -> ::core::ffi::c_int;
1781}
1782unsafe extern "C" {
1783    pub fn snd_pcm_hw_params_get_sbits(params: *const snd_pcm_hw_params_t) -> ::core::ffi::c_int;
1784}
1785unsafe extern "C" {
1786    pub fn snd_pcm_hw_params_get_fifo_size(
1787        params: *const snd_pcm_hw_params_t,
1788    ) -> ::core::ffi::c_int;
1789}
1790unsafe extern "C" {
1791    pub fn snd_pcm_hw_params_get_sync(
1792        params: *const snd_pcm_hw_params_t,
1793    ) -> *const ::core::ffi::c_uchar;
1794}
1795unsafe extern "C" {
1796    pub fn snd_pcm_hw_params_sizeof() -> usize;
1797}
1798unsafe extern "C" {
1799    pub fn snd_pcm_hw_params_malloc(ptr: *mut *mut snd_pcm_hw_params_t) -> ::core::ffi::c_int;
1800}
1801unsafe extern "C" {
1802    pub fn snd_pcm_hw_params_free(obj: *mut snd_pcm_hw_params_t);
1803}
1804unsafe extern "C" {
1805    pub fn snd_pcm_hw_params_copy(dst: *mut snd_pcm_hw_params_t, src: *const snd_pcm_hw_params_t);
1806}
1807unsafe extern "C" {
1808    pub fn snd_pcm_hw_params_get_access(
1809        params: *const snd_pcm_hw_params_t,
1810        _access: *mut snd_pcm_access_t,
1811    ) -> ::core::ffi::c_int;
1812}
1813unsafe extern "C" {
1814    pub fn snd_pcm_hw_params_test_access(
1815        pcm: *mut snd_pcm_t,
1816        params: *mut snd_pcm_hw_params_t,
1817        _access: snd_pcm_access_t,
1818    ) -> ::core::ffi::c_int;
1819}
1820unsafe extern "C" {
1821    pub fn snd_pcm_hw_params_set_access(
1822        pcm: *mut snd_pcm_t,
1823        params: *mut snd_pcm_hw_params_t,
1824        _access: snd_pcm_access_t,
1825    ) -> ::core::ffi::c_int;
1826}
1827unsafe extern "C" {
1828    pub fn snd_pcm_hw_params_set_access_first(
1829        pcm: *mut snd_pcm_t,
1830        params: *mut snd_pcm_hw_params_t,
1831        _access: *mut snd_pcm_access_t,
1832    ) -> ::core::ffi::c_int;
1833}
1834unsafe extern "C" {
1835    pub fn snd_pcm_hw_params_set_access_last(
1836        pcm: *mut snd_pcm_t,
1837        params: *mut snd_pcm_hw_params_t,
1838        _access: *mut snd_pcm_access_t,
1839    ) -> ::core::ffi::c_int;
1840}
1841unsafe extern "C" {
1842    pub fn snd_pcm_hw_params_set_access_mask(
1843        pcm: *mut snd_pcm_t,
1844        params: *mut snd_pcm_hw_params_t,
1845        mask: *mut snd_pcm_access_mask_t,
1846    ) -> ::core::ffi::c_int;
1847}
1848unsafe extern "C" {
1849    pub fn snd_pcm_hw_params_get_access_mask(
1850        params: *mut snd_pcm_hw_params_t,
1851        mask: *mut snd_pcm_access_mask_t,
1852    ) -> ::core::ffi::c_int;
1853}
1854unsafe extern "C" {
1855    pub fn snd_pcm_hw_params_get_format(
1856        params: *const snd_pcm_hw_params_t,
1857        val: *mut snd_pcm_format_t,
1858    ) -> ::core::ffi::c_int;
1859}
1860unsafe extern "C" {
1861    pub fn snd_pcm_hw_params_test_format(
1862        pcm: *mut snd_pcm_t,
1863        params: *mut snd_pcm_hw_params_t,
1864        val: snd_pcm_format_t,
1865    ) -> ::core::ffi::c_int;
1866}
1867unsafe extern "C" {
1868    pub fn snd_pcm_hw_params_set_format(
1869        pcm: *mut snd_pcm_t,
1870        params: *mut snd_pcm_hw_params_t,
1871        val: snd_pcm_format_t,
1872    ) -> ::core::ffi::c_int;
1873}
1874unsafe extern "C" {
1875    pub fn snd_pcm_hw_params_set_format_first(
1876        pcm: *mut snd_pcm_t,
1877        params: *mut snd_pcm_hw_params_t,
1878        format: *mut snd_pcm_format_t,
1879    ) -> ::core::ffi::c_int;
1880}
1881unsafe extern "C" {
1882    pub fn snd_pcm_hw_params_set_format_last(
1883        pcm: *mut snd_pcm_t,
1884        params: *mut snd_pcm_hw_params_t,
1885        format: *mut snd_pcm_format_t,
1886    ) -> ::core::ffi::c_int;
1887}
1888unsafe extern "C" {
1889    pub fn snd_pcm_hw_params_set_format_mask(
1890        pcm: *mut snd_pcm_t,
1891        params: *mut snd_pcm_hw_params_t,
1892        mask: *mut snd_pcm_format_mask_t,
1893    ) -> ::core::ffi::c_int;
1894}
1895unsafe extern "C" {
1896    pub fn snd_pcm_hw_params_get_format_mask(
1897        params: *mut snd_pcm_hw_params_t,
1898        mask: *mut snd_pcm_format_mask_t,
1899    );
1900}
1901unsafe extern "C" {
1902    pub fn snd_pcm_hw_params_get_subformat(
1903        params: *const snd_pcm_hw_params_t,
1904        subformat: *mut snd_pcm_subformat_t,
1905    ) -> ::core::ffi::c_int;
1906}
1907unsafe extern "C" {
1908    pub fn snd_pcm_hw_params_test_subformat(
1909        pcm: *mut snd_pcm_t,
1910        params: *mut snd_pcm_hw_params_t,
1911        subformat: snd_pcm_subformat_t,
1912    ) -> ::core::ffi::c_int;
1913}
1914unsafe extern "C" {
1915    pub fn snd_pcm_hw_params_set_subformat(
1916        pcm: *mut snd_pcm_t,
1917        params: *mut snd_pcm_hw_params_t,
1918        subformat: snd_pcm_subformat_t,
1919    ) -> ::core::ffi::c_int;
1920}
1921unsafe extern "C" {
1922    pub fn snd_pcm_hw_params_set_subformat_first(
1923        pcm: *mut snd_pcm_t,
1924        params: *mut snd_pcm_hw_params_t,
1925        subformat: *mut snd_pcm_subformat_t,
1926    ) -> ::core::ffi::c_int;
1927}
1928unsafe extern "C" {
1929    pub fn snd_pcm_hw_params_set_subformat_last(
1930        pcm: *mut snd_pcm_t,
1931        params: *mut snd_pcm_hw_params_t,
1932        subformat: *mut snd_pcm_subformat_t,
1933    ) -> ::core::ffi::c_int;
1934}
1935unsafe extern "C" {
1936    pub fn snd_pcm_hw_params_set_subformat_mask(
1937        pcm: *mut snd_pcm_t,
1938        params: *mut snd_pcm_hw_params_t,
1939        mask: *mut snd_pcm_subformat_mask_t,
1940    ) -> ::core::ffi::c_int;
1941}
1942unsafe extern "C" {
1943    pub fn snd_pcm_hw_params_get_subformat_mask(
1944        params: *mut snd_pcm_hw_params_t,
1945        mask: *mut snd_pcm_subformat_mask_t,
1946    );
1947}
1948unsafe extern "C" {
1949    pub fn snd_pcm_hw_params_get_channels(
1950        params: *const snd_pcm_hw_params_t,
1951        val: *mut ::core::ffi::c_uint,
1952    ) -> ::core::ffi::c_int;
1953}
1954unsafe extern "C" {
1955    pub fn snd_pcm_hw_params_get_channels_min(
1956        params: *const snd_pcm_hw_params_t,
1957        val: *mut ::core::ffi::c_uint,
1958    ) -> ::core::ffi::c_int;
1959}
1960unsafe extern "C" {
1961    pub fn snd_pcm_hw_params_get_channels_max(
1962        params: *const snd_pcm_hw_params_t,
1963        val: *mut ::core::ffi::c_uint,
1964    ) -> ::core::ffi::c_int;
1965}
1966unsafe extern "C" {
1967    pub fn snd_pcm_hw_params_test_channels(
1968        pcm: *mut snd_pcm_t,
1969        params: *mut snd_pcm_hw_params_t,
1970        val: ::core::ffi::c_uint,
1971    ) -> ::core::ffi::c_int;
1972}
1973unsafe extern "C" {
1974    pub fn snd_pcm_hw_params_set_channels(
1975        pcm: *mut snd_pcm_t,
1976        params: *mut snd_pcm_hw_params_t,
1977        val: ::core::ffi::c_uint,
1978    ) -> ::core::ffi::c_int;
1979}
1980unsafe extern "C" {
1981    pub fn snd_pcm_hw_params_set_channels_min(
1982        pcm: *mut snd_pcm_t,
1983        params: *mut snd_pcm_hw_params_t,
1984        val: *mut ::core::ffi::c_uint,
1985    ) -> ::core::ffi::c_int;
1986}
1987unsafe extern "C" {
1988    pub fn snd_pcm_hw_params_set_channels_max(
1989        pcm: *mut snd_pcm_t,
1990        params: *mut snd_pcm_hw_params_t,
1991        val: *mut ::core::ffi::c_uint,
1992    ) -> ::core::ffi::c_int;
1993}
1994unsafe extern "C" {
1995    pub fn snd_pcm_hw_params_set_channels_minmax(
1996        pcm: *mut snd_pcm_t,
1997        params: *mut snd_pcm_hw_params_t,
1998        min: *mut ::core::ffi::c_uint,
1999        max: *mut ::core::ffi::c_uint,
2000    ) -> ::core::ffi::c_int;
2001}
2002unsafe extern "C" {
2003    pub fn snd_pcm_hw_params_set_channels_near(
2004        pcm: *mut snd_pcm_t,
2005        params: *mut snd_pcm_hw_params_t,
2006        val: *mut ::core::ffi::c_uint,
2007    ) -> ::core::ffi::c_int;
2008}
2009unsafe extern "C" {
2010    pub fn snd_pcm_hw_params_set_channels_first(
2011        pcm: *mut snd_pcm_t,
2012        params: *mut snd_pcm_hw_params_t,
2013        val: *mut ::core::ffi::c_uint,
2014    ) -> ::core::ffi::c_int;
2015}
2016unsafe extern "C" {
2017    pub fn snd_pcm_hw_params_set_channels_last(
2018        pcm: *mut snd_pcm_t,
2019        params: *mut snd_pcm_hw_params_t,
2020        val: *mut ::core::ffi::c_uint,
2021    ) -> ::core::ffi::c_int;
2022}
2023unsafe extern "C" {
2024    pub fn snd_pcm_hw_params_get_rate(
2025        params: *const snd_pcm_hw_params_t,
2026        val: *mut ::core::ffi::c_uint,
2027        dir: *mut ::core::ffi::c_int,
2028    ) -> ::core::ffi::c_int;
2029}
2030unsafe extern "C" {
2031    pub fn snd_pcm_hw_params_get_rate_min(
2032        params: *const snd_pcm_hw_params_t,
2033        val: *mut ::core::ffi::c_uint,
2034        dir: *mut ::core::ffi::c_int,
2035    ) -> ::core::ffi::c_int;
2036}
2037unsafe extern "C" {
2038    pub fn snd_pcm_hw_params_get_rate_max(
2039        params: *const snd_pcm_hw_params_t,
2040        val: *mut ::core::ffi::c_uint,
2041        dir: *mut ::core::ffi::c_int,
2042    ) -> ::core::ffi::c_int;
2043}
2044unsafe extern "C" {
2045    pub fn snd_pcm_hw_params_test_rate(
2046        pcm: *mut snd_pcm_t,
2047        params: *mut snd_pcm_hw_params_t,
2048        val: ::core::ffi::c_uint,
2049        dir: ::core::ffi::c_int,
2050    ) -> ::core::ffi::c_int;
2051}
2052unsafe extern "C" {
2053    pub fn snd_pcm_hw_params_set_rate(
2054        pcm: *mut snd_pcm_t,
2055        params: *mut snd_pcm_hw_params_t,
2056        val: ::core::ffi::c_uint,
2057        dir: ::core::ffi::c_int,
2058    ) -> ::core::ffi::c_int;
2059}
2060unsafe extern "C" {
2061    pub fn snd_pcm_hw_params_set_rate_min(
2062        pcm: *mut snd_pcm_t,
2063        params: *mut snd_pcm_hw_params_t,
2064        val: *mut ::core::ffi::c_uint,
2065        dir: *mut ::core::ffi::c_int,
2066    ) -> ::core::ffi::c_int;
2067}
2068unsafe extern "C" {
2069    pub fn snd_pcm_hw_params_set_rate_max(
2070        pcm: *mut snd_pcm_t,
2071        params: *mut snd_pcm_hw_params_t,
2072        val: *mut ::core::ffi::c_uint,
2073        dir: *mut ::core::ffi::c_int,
2074    ) -> ::core::ffi::c_int;
2075}
2076unsafe extern "C" {
2077    pub fn snd_pcm_hw_params_set_rate_minmax(
2078        pcm: *mut snd_pcm_t,
2079        params: *mut snd_pcm_hw_params_t,
2080        min: *mut ::core::ffi::c_uint,
2081        mindir: *mut ::core::ffi::c_int,
2082        max: *mut ::core::ffi::c_uint,
2083        maxdir: *mut ::core::ffi::c_int,
2084    ) -> ::core::ffi::c_int;
2085}
2086unsafe extern "C" {
2087    pub fn snd_pcm_hw_params_set_rate_near(
2088        pcm: *mut snd_pcm_t,
2089        params: *mut snd_pcm_hw_params_t,
2090        val: *mut ::core::ffi::c_uint,
2091        dir: *mut ::core::ffi::c_int,
2092    ) -> ::core::ffi::c_int;
2093}
2094unsafe extern "C" {
2095    pub fn snd_pcm_hw_params_set_rate_first(
2096        pcm: *mut snd_pcm_t,
2097        params: *mut snd_pcm_hw_params_t,
2098        val: *mut ::core::ffi::c_uint,
2099        dir: *mut ::core::ffi::c_int,
2100    ) -> ::core::ffi::c_int;
2101}
2102unsafe extern "C" {
2103    pub fn snd_pcm_hw_params_set_rate_last(
2104        pcm: *mut snd_pcm_t,
2105        params: *mut snd_pcm_hw_params_t,
2106        val: *mut ::core::ffi::c_uint,
2107        dir: *mut ::core::ffi::c_int,
2108    ) -> ::core::ffi::c_int;
2109}
2110unsafe extern "C" {
2111    pub fn snd_pcm_hw_params_set_rate_resample(
2112        pcm: *mut snd_pcm_t,
2113        params: *mut snd_pcm_hw_params_t,
2114        val: ::core::ffi::c_uint,
2115    ) -> ::core::ffi::c_int;
2116}
2117unsafe extern "C" {
2118    pub fn snd_pcm_hw_params_get_rate_resample(
2119        pcm: *mut snd_pcm_t,
2120        params: *mut snd_pcm_hw_params_t,
2121        val: *mut ::core::ffi::c_uint,
2122    ) -> ::core::ffi::c_int;
2123}
2124unsafe extern "C" {
2125    pub fn snd_pcm_hw_params_set_export_buffer(
2126        pcm: *mut snd_pcm_t,
2127        params: *mut snd_pcm_hw_params_t,
2128        val: ::core::ffi::c_uint,
2129    ) -> ::core::ffi::c_int;
2130}
2131unsafe extern "C" {
2132    pub fn snd_pcm_hw_params_get_export_buffer(
2133        pcm: *mut snd_pcm_t,
2134        params: *mut snd_pcm_hw_params_t,
2135        val: *mut ::core::ffi::c_uint,
2136    ) -> ::core::ffi::c_int;
2137}
2138unsafe extern "C" {
2139    pub fn snd_pcm_hw_params_set_period_wakeup(
2140        pcm: *mut snd_pcm_t,
2141        params: *mut snd_pcm_hw_params_t,
2142        val: ::core::ffi::c_uint,
2143    ) -> ::core::ffi::c_int;
2144}
2145unsafe extern "C" {
2146    pub fn snd_pcm_hw_params_get_period_wakeup(
2147        pcm: *mut snd_pcm_t,
2148        params: *mut snd_pcm_hw_params_t,
2149        val: *mut ::core::ffi::c_uint,
2150    ) -> ::core::ffi::c_int;
2151}
2152unsafe extern "C" {
2153    pub fn snd_pcm_hw_params_set_drain_silence(
2154        pcm: *mut snd_pcm_t,
2155        params: *mut snd_pcm_hw_params_t,
2156        val: ::core::ffi::c_uint,
2157    ) -> ::core::ffi::c_int;
2158}
2159unsafe extern "C" {
2160    pub fn snd_pcm_hw_params_get_drain_silence(
2161        pcm: *mut snd_pcm_t,
2162        params: *mut snd_pcm_hw_params_t,
2163        val: *mut ::core::ffi::c_uint,
2164    ) -> ::core::ffi::c_int;
2165}
2166unsafe extern "C" {
2167    pub fn snd_pcm_hw_params_get_period_time(
2168        params: *const snd_pcm_hw_params_t,
2169        val: *mut ::core::ffi::c_uint,
2170        dir: *mut ::core::ffi::c_int,
2171    ) -> ::core::ffi::c_int;
2172}
2173unsafe extern "C" {
2174    pub fn snd_pcm_hw_params_get_period_time_min(
2175        params: *const snd_pcm_hw_params_t,
2176        val: *mut ::core::ffi::c_uint,
2177        dir: *mut ::core::ffi::c_int,
2178    ) -> ::core::ffi::c_int;
2179}
2180unsafe extern "C" {
2181    pub fn snd_pcm_hw_params_get_period_time_max(
2182        params: *const snd_pcm_hw_params_t,
2183        val: *mut ::core::ffi::c_uint,
2184        dir: *mut ::core::ffi::c_int,
2185    ) -> ::core::ffi::c_int;
2186}
2187unsafe extern "C" {
2188    pub fn snd_pcm_hw_params_test_period_time(
2189        pcm: *mut snd_pcm_t,
2190        params: *mut snd_pcm_hw_params_t,
2191        val: ::core::ffi::c_uint,
2192        dir: ::core::ffi::c_int,
2193    ) -> ::core::ffi::c_int;
2194}
2195unsafe extern "C" {
2196    pub fn snd_pcm_hw_params_set_period_time(
2197        pcm: *mut snd_pcm_t,
2198        params: *mut snd_pcm_hw_params_t,
2199        val: ::core::ffi::c_uint,
2200        dir: ::core::ffi::c_int,
2201    ) -> ::core::ffi::c_int;
2202}
2203unsafe extern "C" {
2204    pub fn snd_pcm_hw_params_set_period_time_min(
2205        pcm: *mut snd_pcm_t,
2206        params: *mut snd_pcm_hw_params_t,
2207        val: *mut ::core::ffi::c_uint,
2208        dir: *mut ::core::ffi::c_int,
2209    ) -> ::core::ffi::c_int;
2210}
2211unsafe extern "C" {
2212    pub fn snd_pcm_hw_params_set_period_time_max(
2213        pcm: *mut snd_pcm_t,
2214        params: *mut snd_pcm_hw_params_t,
2215        val: *mut ::core::ffi::c_uint,
2216        dir: *mut ::core::ffi::c_int,
2217    ) -> ::core::ffi::c_int;
2218}
2219unsafe extern "C" {
2220    pub fn snd_pcm_hw_params_set_period_time_minmax(
2221        pcm: *mut snd_pcm_t,
2222        params: *mut snd_pcm_hw_params_t,
2223        min: *mut ::core::ffi::c_uint,
2224        mindir: *mut ::core::ffi::c_int,
2225        max: *mut ::core::ffi::c_uint,
2226        maxdir: *mut ::core::ffi::c_int,
2227    ) -> ::core::ffi::c_int;
2228}
2229unsafe extern "C" {
2230    pub fn snd_pcm_hw_params_set_period_time_near(
2231        pcm: *mut snd_pcm_t,
2232        params: *mut snd_pcm_hw_params_t,
2233        val: *mut ::core::ffi::c_uint,
2234        dir: *mut ::core::ffi::c_int,
2235    ) -> ::core::ffi::c_int;
2236}
2237unsafe extern "C" {
2238    pub fn snd_pcm_hw_params_set_period_time_first(
2239        pcm: *mut snd_pcm_t,
2240        params: *mut snd_pcm_hw_params_t,
2241        val: *mut ::core::ffi::c_uint,
2242        dir: *mut ::core::ffi::c_int,
2243    ) -> ::core::ffi::c_int;
2244}
2245unsafe extern "C" {
2246    pub fn snd_pcm_hw_params_set_period_time_last(
2247        pcm: *mut snd_pcm_t,
2248        params: *mut snd_pcm_hw_params_t,
2249        val: *mut ::core::ffi::c_uint,
2250        dir: *mut ::core::ffi::c_int,
2251    ) -> ::core::ffi::c_int;
2252}
2253unsafe extern "C" {
2254    pub fn snd_pcm_hw_params_get_period_size(
2255        params: *const snd_pcm_hw_params_t,
2256        frames: *mut snd_pcm_uframes_t,
2257        dir: *mut ::core::ffi::c_int,
2258    ) -> ::core::ffi::c_int;
2259}
2260unsafe extern "C" {
2261    pub fn snd_pcm_hw_params_get_period_size_min(
2262        params: *const snd_pcm_hw_params_t,
2263        frames: *mut snd_pcm_uframes_t,
2264        dir: *mut ::core::ffi::c_int,
2265    ) -> ::core::ffi::c_int;
2266}
2267unsafe extern "C" {
2268    pub fn snd_pcm_hw_params_get_period_size_max(
2269        params: *const snd_pcm_hw_params_t,
2270        frames: *mut snd_pcm_uframes_t,
2271        dir: *mut ::core::ffi::c_int,
2272    ) -> ::core::ffi::c_int;
2273}
2274unsafe extern "C" {
2275    pub fn snd_pcm_hw_params_test_period_size(
2276        pcm: *mut snd_pcm_t,
2277        params: *mut snd_pcm_hw_params_t,
2278        val: snd_pcm_uframes_t,
2279        dir: ::core::ffi::c_int,
2280    ) -> ::core::ffi::c_int;
2281}
2282unsafe extern "C" {
2283    pub fn snd_pcm_hw_params_set_period_size(
2284        pcm: *mut snd_pcm_t,
2285        params: *mut snd_pcm_hw_params_t,
2286        val: snd_pcm_uframes_t,
2287        dir: ::core::ffi::c_int,
2288    ) -> ::core::ffi::c_int;
2289}
2290unsafe extern "C" {
2291    pub fn snd_pcm_hw_params_set_period_size_min(
2292        pcm: *mut snd_pcm_t,
2293        params: *mut snd_pcm_hw_params_t,
2294        val: *mut snd_pcm_uframes_t,
2295        dir: *mut ::core::ffi::c_int,
2296    ) -> ::core::ffi::c_int;
2297}
2298unsafe extern "C" {
2299    pub fn snd_pcm_hw_params_set_period_size_max(
2300        pcm: *mut snd_pcm_t,
2301        params: *mut snd_pcm_hw_params_t,
2302        val: *mut snd_pcm_uframes_t,
2303        dir: *mut ::core::ffi::c_int,
2304    ) -> ::core::ffi::c_int;
2305}
2306unsafe extern "C" {
2307    pub fn snd_pcm_hw_params_set_period_size_minmax(
2308        pcm: *mut snd_pcm_t,
2309        params: *mut snd_pcm_hw_params_t,
2310        min: *mut snd_pcm_uframes_t,
2311        mindir: *mut ::core::ffi::c_int,
2312        max: *mut snd_pcm_uframes_t,
2313        maxdir: *mut ::core::ffi::c_int,
2314    ) -> ::core::ffi::c_int;
2315}
2316unsafe extern "C" {
2317    pub fn snd_pcm_hw_params_set_period_size_near(
2318        pcm: *mut snd_pcm_t,
2319        params: *mut snd_pcm_hw_params_t,
2320        val: *mut snd_pcm_uframes_t,
2321        dir: *mut ::core::ffi::c_int,
2322    ) -> ::core::ffi::c_int;
2323}
2324unsafe extern "C" {
2325    pub fn snd_pcm_hw_params_set_period_size_first(
2326        pcm: *mut snd_pcm_t,
2327        params: *mut snd_pcm_hw_params_t,
2328        val: *mut snd_pcm_uframes_t,
2329        dir: *mut ::core::ffi::c_int,
2330    ) -> ::core::ffi::c_int;
2331}
2332unsafe extern "C" {
2333    pub fn snd_pcm_hw_params_set_period_size_last(
2334        pcm: *mut snd_pcm_t,
2335        params: *mut snd_pcm_hw_params_t,
2336        val: *mut snd_pcm_uframes_t,
2337        dir: *mut ::core::ffi::c_int,
2338    ) -> ::core::ffi::c_int;
2339}
2340unsafe extern "C" {
2341    pub fn snd_pcm_hw_params_set_period_size_integer(
2342        pcm: *mut snd_pcm_t,
2343        params: *mut snd_pcm_hw_params_t,
2344    ) -> ::core::ffi::c_int;
2345}
2346unsafe extern "C" {
2347    pub fn snd_pcm_hw_params_get_periods(
2348        params: *const snd_pcm_hw_params_t,
2349        val: *mut ::core::ffi::c_uint,
2350        dir: *mut ::core::ffi::c_int,
2351    ) -> ::core::ffi::c_int;
2352}
2353unsafe extern "C" {
2354    pub fn snd_pcm_hw_params_get_periods_min(
2355        params: *const snd_pcm_hw_params_t,
2356        val: *mut ::core::ffi::c_uint,
2357        dir: *mut ::core::ffi::c_int,
2358    ) -> ::core::ffi::c_int;
2359}
2360unsafe extern "C" {
2361    pub fn snd_pcm_hw_params_get_periods_max(
2362        params: *const snd_pcm_hw_params_t,
2363        val: *mut ::core::ffi::c_uint,
2364        dir: *mut ::core::ffi::c_int,
2365    ) -> ::core::ffi::c_int;
2366}
2367unsafe extern "C" {
2368    pub fn snd_pcm_hw_params_test_periods(
2369        pcm: *mut snd_pcm_t,
2370        params: *mut snd_pcm_hw_params_t,
2371        val: ::core::ffi::c_uint,
2372        dir: ::core::ffi::c_int,
2373    ) -> ::core::ffi::c_int;
2374}
2375unsafe extern "C" {
2376    pub fn snd_pcm_hw_params_set_periods(
2377        pcm: *mut snd_pcm_t,
2378        params: *mut snd_pcm_hw_params_t,
2379        val: ::core::ffi::c_uint,
2380        dir: ::core::ffi::c_int,
2381    ) -> ::core::ffi::c_int;
2382}
2383unsafe extern "C" {
2384    pub fn snd_pcm_hw_params_set_periods_min(
2385        pcm: *mut snd_pcm_t,
2386        params: *mut snd_pcm_hw_params_t,
2387        val: *mut ::core::ffi::c_uint,
2388        dir: *mut ::core::ffi::c_int,
2389    ) -> ::core::ffi::c_int;
2390}
2391unsafe extern "C" {
2392    pub fn snd_pcm_hw_params_set_periods_max(
2393        pcm: *mut snd_pcm_t,
2394        params: *mut snd_pcm_hw_params_t,
2395        val: *mut ::core::ffi::c_uint,
2396        dir: *mut ::core::ffi::c_int,
2397    ) -> ::core::ffi::c_int;
2398}
2399unsafe extern "C" {
2400    pub fn snd_pcm_hw_params_set_periods_minmax(
2401        pcm: *mut snd_pcm_t,
2402        params: *mut snd_pcm_hw_params_t,
2403        min: *mut ::core::ffi::c_uint,
2404        mindir: *mut ::core::ffi::c_int,
2405        max: *mut ::core::ffi::c_uint,
2406        maxdir: *mut ::core::ffi::c_int,
2407    ) -> ::core::ffi::c_int;
2408}
2409unsafe extern "C" {
2410    pub fn snd_pcm_hw_params_set_periods_near(
2411        pcm: *mut snd_pcm_t,
2412        params: *mut snd_pcm_hw_params_t,
2413        val: *mut ::core::ffi::c_uint,
2414        dir: *mut ::core::ffi::c_int,
2415    ) -> ::core::ffi::c_int;
2416}
2417unsafe extern "C" {
2418    pub fn snd_pcm_hw_params_set_periods_first(
2419        pcm: *mut snd_pcm_t,
2420        params: *mut snd_pcm_hw_params_t,
2421        val: *mut ::core::ffi::c_uint,
2422        dir: *mut ::core::ffi::c_int,
2423    ) -> ::core::ffi::c_int;
2424}
2425unsafe extern "C" {
2426    pub fn snd_pcm_hw_params_set_periods_last(
2427        pcm: *mut snd_pcm_t,
2428        params: *mut snd_pcm_hw_params_t,
2429        val: *mut ::core::ffi::c_uint,
2430        dir: *mut ::core::ffi::c_int,
2431    ) -> ::core::ffi::c_int;
2432}
2433unsafe extern "C" {
2434    pub fn snd_pcm_hw_params_set_periods_integer(
2435        pcm: *mut snd_pcm_t,
2436        params: *mut snd_pcm_hw_params_t,
2437    ) -> ::core::ffi::c_int;
2438}
2439unsafe extern "C" {
2440    pub fn snd_pcm_hw_params_get_buffer_time(
2441        params: *const 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_get_buffer_time_min(
2448        params: *const snd_pcm_hw_params_t,
2449        val: *mut ::core::ffi::c_uint,
2450        dir: *mut ::core::ffi::c_int,
2451    ) -> ::core::ffi::c_int;
2452}
2453unsafe extern "C" {
2454    pub fn snd_pcm_hw_params_get_buffer_time_max(
2455        params: *const snd_pcm_hw_params_t,
2456        val: *mut ::core::ffi::c_uint,
2457        dir: *mut ::core::ffi::c_int,
2458    ) -> ::core::ffi::c_int;
2459}
2460unsafe extern "C" {
2461    pub fn snd_pcm_hw_params_test_buffer_time(
2462        pcm: *mut snd_pcm_t,
2463        params: *mut snd_pcm_hw_params_t,
2464        val: ::core::ffi::c_uint,
2465        dir: ::core::ffi::c_int,
2466    ) -> ::core::ffi::c_int;
2467}
2468unsafe extern "C" {
2469    pub fn snd_pcm_hw_params_set_buffer_time(
2470        pcm: *mut snd_pcm_t,
2471        params: *mut snd_pcm_hw_params_t,
2472        val: ::core::ffi::c_uint,
2473        dir: ::core::ffi::c_int,
2474    ) -> ::core::ffi::c_int;
2475}
2476unsafe extern "C" {
2477    pub fn snd_pcm_hw_params_set_buffer_time_min(
2478        pcm: *mut snd_pcm_t,
2479        params: *mut snd_pcm_hw_params_t,
2480        val: *mut ::core::ffi::c_uint,
2481        dir: *mut ::core::ffi::c_int,
2482    ) -> ::core::ffi::c_int;
2483}
2484unsafe extern "C" {
2485    pub fn snd_pcm_hw_params_set_buffer_time_max(
2486        pcm: *mut snd_pcm_t,
2487        params: *mut snd_pcm_hw_params_t,
2488        val: *mut ::core::ffi::c_uint,
2489        dir: *mut ::core::ffi::c_int,
2490    ) -> ::core::ffi::c_int;
2491}
2492unsafe extern "C" {
2493    pub fn snd_pcm_hw_params_set_buffer_time_minmax(
2494        pcm: *mut snd_pcm_t,
2495        params: *mut snd_pcm_hw_params_t,
2496        min: *mut ::core::ffi::c_uint,
2497        mindir: *mut ::core::ffi::c_int,
2498        max: *mut ::core::ffi::c_uint,
2499        maxdir: *mut ::core::ffi::c_int,
2500    ) -> ::core::ffi::c_int;
2501}
2502unsafe extern "C" {
2503    pub fn snd_pcm_hw_params_set_buffer_time_near(
2504        pcm: *mut snd_pcm_t,
2505        params: *mut snd_pcm_hw_params_t,
2506        val: *mut ::core::ffi::c_uint,
2507        dir: *mut ::core::ffi::c_int,
2508    ) -> ::core::ffi::c_int;
2509}
2510unsafe extern "C" {
2511    pub fn snd_pcm_hw_params_set_buffer_time_first(
2512        pcm: *mut snd_pcm_t,
2513        params: *mut snd_pcm_hw_params_t,
2514        val: *mut ::core::ffi::c_uint,
2515        dir: *mut ::core::ffi::c_int,
2516    ) -> ::core::ffi::c_int;
2517}
2518unsafe extern "C" {
2519    pub fn snd_pcm_hw_params_set_buffer_time_last(
2520        pcm: *mut snd_pcm_t,
2521        params: *mut snd_pcm_hw_params_t,
2522        val: *mut ::core::ffi::c_uint,
2523        dir: *mut ::core::ffi::c_int,
2524    ) -> ::core::ffi::c_int;
2525}
2526unsafe extern "C" {
2527    pub fn snd_pcm_hw_params_get_buffer_size(
2528        params: *const snd_pcm_hw_params_t,
2529        val: *mut snd_pcm_uframes_t,
2530    ) -> ::core::ffi::c_int;
2531}
2532unsafe extern "C" {
2533    pub fn snd_pcm_hw_params_get_buffer_size_min(
2534        params: *const snd_pcm_hw_params_t,
2535        val: *mut snd_pcm_uframes_t,
2536    ) -> ::core::ffi::c_int;
2537}
2538unsafe extern "C" {
2539    pub fn snd_pcm_hw_params_get_buffer_size_max(
2540        params: *const snd_pcm_hw_params_t,
2541        val: *mut snd_pcm_uframes_t,
2542    ) -> ::core::ffi::c_int;
2543}
2544unsafe extern "C" {
2545    pub fn snd_pcm_hw_params_test_buffer_size(
2546        pcm: *mut snd_pcm_t,
2547        params: *mut snd_pcm_hw_params_t,
2548        val: snd_pcm_uframes_t,
2549    ) -> ::core::ffi::c_int;
2550}
2551unsafe extern "C" {
2552    pub fn snd_pcm_hw_params_set_buffer_size(
2553        pcm: *mut snd_pcm_t,
2554        params: *mut snd_pcm_hw_params_t,
2555        val: snd_pcm_uframes_t,
2556    ) -> ::core::ffi::c_int;
2557}
2558unsafe extern "C" {
2559    pub fn snd_pcm_hw_params_set_buffer_size_min(
2560        pcm: *mut snd_pcm_t,
2561        params: *mut snd_pcm_hw_params_t,
2562        val: *mut snd_pcm_uframes_t,
2563    ) -> ::core::ffi::c_int;
2564}
2565unsafe extern "C" {
2566    pub fn snd_pcm_hw_params_set_buffer_size_max(
2567        pcm: *mut snd_pcm_t,
2568        params: *mut snd_pcm_hw_params_t,
2569        val: *mut snd_pcm_uframes_t,
2570    ) -> ::core::ffi::c_int;
2571}
2572unsafe extern "C" {
2573    pub fn snd_pcm_hw_params_set_buffer_size_minmax(
2574        pcm: *mut snd_pcm_t,
2575        params: *mut snd_pcm_hw_params_t,
2576        min: *mut snd_pcm_uframes_t,
2577        max: *mut snd_pcm_uframes_t,
2578    ) -> ::core::ffi::c_int;
2579}
2580unsafe extern "C" {
2581    pub fn snd_pcm_hw_params_set_buffer_size_near(
2582        pcm: *mut snd_pcm_t,
2583        params: *mut snd_pcm_hw_params_t,
2584        val: *mut snd_pcm_uframes_t,
2585    ) -> ::core::ffi::c_int;
2586}
2587unsafe extern "C" {
2588    pub fn snd_pcm_hw_params_set_buffer_size_first(
2589        pcm: *mut snd_pcm_t,
2590        params: *mut snd_pcm_hw_params_t,
2591        val: *mut snd_pcm_uframes_t,
2592    ) -> ::core::ffi::c_int;
2593}
2594unsafe extern "C" {
2595    pub fn snd_pcm_hw_params_set_buffer_size_last(
2596        pcm: *mut snd_pcm_t,
2597        params: *mut snd_pcm_hw_params_t,
2598        val: *mut snd_pcm_uframes_t,
2599    ) -> ::core::ffi::c_int;
2600}
2601unsafe extern "C" {
2602    pub fn snd_pcm_hw_params_get_min_align(
2603        params: *const snd_pcm_hw_params_t,
2604        val: *mut snd_pcm_uframes_t,
2605    ) -> ::core::ffi::c_int;
2606}
2607unsafe extern "C" {
2608    pub fn snd_pcm_sw_params_sizeof() -> usize;
2609}
2610unsafe extern "C" {
2611    pub fn snd_pcm_sw_params_malloc(ptr: *mut *mut snd_pcm_sw_params_t) -> ::core::ffi::c_int;
2612}
2613unsafe extern "C" {
2614    pub fn snd_pcm_sw_params_free(obj: *mut snd_pcm_sw_params_t);
2615}
2616unsafe extern "C" {
2617    pub fn snd_pcm_sw_params_copy(dst: *mut snd_pcm_sw_params_t, src: *const snd_pcm_sw_params_t);
2618}
2619unsafe extern "C" {
2620    pub fn snd_pcm_sw_params_get_boundary(
2621        params: *const snd_pcm_sw_params_t,
2622        val: *mut snd_pcm_uframes_t,
2623    ) -> ::core::ffi::c_int;
2624}
2625unsafe extern "C" {
2626    pub fn snd_pcm_sw_params_set_tstamp_mode(
2627        pcm: *mut snd_pcm_t,
2628        params: *mut snd_pcm_sw_params_t,
2629        val: snd_pcm_tstamp_t,
2630    ) -> ::core::ffi::c_int;
2631}
2632unsafe extern "C" {
2633    pub fn snd_pcm_sw_params_get_tstamp_mode(
2634        params: *const snd_pcm_sw_params_t,
2635        val: *mut snd_pcm_tstamp_t,
2636    ) -> ::core::ffi::c_int;
2637}
2638unsafe extern "C" {
2639    pub fn snd_pcm_sw_params_set_tstamp_type(
2640        pcm: *mut snd_pcm_t,
2641        params: *mut snd_pcm_sw_params_t,
2642        val: snd_pcm_tstamp_type_t,
2643    ) -> ::core::ffi::c_int;
2644}
2645unsafe extern "C" {
2646    pub fn snd_pcm_sw_params_get_tstamp_type(
2647        params: *const snd_pcm_sw_params_t,
2648        val: *mut snd_pcm_tstamp_type_t,
2649    ) -> ::core::ffi::c_int;
2650}
2651unsafe extern "C" {
2652    pub fn snd_pcm_sw_params_set_avail_min(
2653        pcm: *mut snd_pcm_t,
2654        params: *mut snd_pcm_sw_params_t,
2655        val: snd_pcm_uframes_t,
2656    ) -> ::core::ffi::c_int;
2657}
2658unsafe extern "C" {
2659    pub fn snd_pcm_sw_params_get_avail_min(
2660        params: *const snd_pcm_sw_params_t,
2661        val: *mut snd_pcm_uframes_t,
2662    ) -> ::core::ffi::c_int;
2663}
2664unsafe extern "C" {
2665    pub fn snd_pcm_sw_params_set_period_event(
2666        pcm: *mut snd_pcm_t,
2667        params: *mut snd_pcm_sw_params_t,
2668        val: ::core::ffi::c_int,
2669    ) -> ::core::ffi::c_int;
2670}
2671unsafe extern "C" {
2672    pub fn snd_pcm_sw_params_get_period_event(
2673        params: *const snd_pcm_sw_params_t,
2674        val: *mut ::core::ffi::c_int,
2675    ) -> ::core::ffi::c_int;
2676}
2677unsafe extern "C" {
2678    pub fn snd_pcm_sw_params_set_start_threshold(
2679        pcm: *mut snd_pcm_t,
2680        params: *mut snd_pcm_sw_params_t,
2681        val: snd_pcm_uframes_t,
2682    ) -> ::core::ffi::c_int;
2683}
2684unsafe extern "C" {
2685    pub fn snd_pcm_sw_params_get_start_threshold(
2686        paramsm: *const snd_pcm_sw_params_t,
2687        val: *mut snd_pcm_uframes_t,
2688    ) -> ::core::ffi::c_int;
2689}
2690unsafe extern "C" {
2691    pub fn snd_pcm_sw_params_set_stop_threshold(
2692        pcm: *mut snd_pcm_t,
2693        params: *mut snd_pcm_sw_params_t,
2694        val: snd_pcm_uframes_t,
2695    ) -> ::core::ffi::c_int;
2696}
2697unsafe extern "C" {
2698    pub fn snd_pcm_sw_params_get_stop_threshold(
2699        params: *const snd_pcm_sw_params_t,
2700        val: *mut snd_pcm_uframes_t,
2701    ) -> ::core::ffi::c_int;
2702}
2703unsafe extern "C" {
2704    pub fn snd_pcm_sw_params_set_silence_threshold(
2705        pcm: *mut snd_pcm_t,
2706        params: *mut snd_pcm_sw_params_t,
2707        val: snd_pcm_uframes_t,
2708    ) -> ::core::ffi::c_int;
2709}
2710unsafe extern "C" {
2711    pub fn snd_pcm_sw_params_get_silence_threshold(
2712        params: *const snd_pcm_sw_params_t,
2713        val: *mut snd_pcm_uframes_t,
2714    ) -> ::core::ffi::c_int;
2715}
2716unsafe extern "C" {
2717    pub fn snd_pcm_sw_params_set_silence_size(
2718        pcm: *mut snd_pcm_t,
2719        params: *mut snd_pcm_sw_params_t,
2720        val: snd_pcm_uframes_t,
2721    ) -> ::core::ffi::c_int;
2722}
2723unsafe extern "C" {
2724    pub fn snd_pcm_sw_params_get_silence_size(
2725        params: *const snd_pcm_sw_params_t,
2726        val: *mut snd_pcm_uframes_t,
2727    ) -> ::core::ffi::c_int;
2728}
2729unsafe extern "C" {
2730    pub fn snd_pcm_access_mask_sizeof() -> usize;
2731}
2732unsafe extern "C" {
2733    pub fn snd_pcm_access_mask_malloc(ptr: *mut *mut snd_pcm_access_mask_t) -> ::core::ffi::c_int;
2734}
2735unsafe extern "C" {
2736    pub fn snd_pcm_access_mask_free(obj: *mut snd_pcm_access_mask_t);
2737}
2738unsafe extern "C" {
2739    pub fn snd_pcm_access_mask_copy(
2740        dst: *mut snd_pcm_access_mask_t,
2741        src: *const snd_pcm_access_mask_t,
2742    );
2743}
2744unsafe extern "C" {
2745    pub fn snd_pcm_access_mask_none(mask: *mut snd_pcm_access_mask_t);
2746}
2747unsafe extern "C" {
2748    pub fn snd_pcm_access_mask_any(mask: *mut snd_pcm_access_mask_t);
2749}
2750unsafe extern "C" {
2751    pub fn snd_pcm_access_mask_test(
2752        mask: *const snd_pcm_access_mask_t,
2753        val: snd_pcm_access_t,
2754    ) -> ::core::ffi::c_int;
2755}
2756unsafe extern "C" {
2757    pub fn snd_pcm_access_mask_empty(mask: *const snd_pcm_access_mask_t) -> ::core::ffi::c_int;
2758}
2759unsafe extern "C" {
2760    pub fn snd_pcm_access_mask_set(mask: *mut snd_pcm_access_mask_t, val: snd_pcm_access_t);
2761}
2762unsafe extern "C" {
2763    pub fn snd_pcm_access_mask_reset(mask: *mut snd_pcm_access_mask_t, val: snd_pcm_access_t);
2764}
2765unsafe extern "C" {
2766    pub fn snd_pcm_format_mask_sizeof() -> usize;
2767}
2768unsafe extern "C" {
2769    pub fn snd_pcm_format_mask_malloc(ptr: *mut *mut snd_pcm_format_mask_t) -> ::core::ffi::c_int;
2770}
2771unsafe extern "C" {
2772    pub fn snd_pcm_format_mask_free(obj: *mut snd_pcm_format_mask_t);
2773}
2774unsafe extern "C" {
2775    pub fn snd_pcm_format_mask_copy(
2776        dst: *mut snd_pcm_format_mask_t,
2777        src: *const snd_pcm_format_mask_t,
2778    );
2779}
2780unsafe extern "C" {
2781    pub fn snd_pcm_format_mask_none(mask: *mut snd_pcm_format_mask_t);
2782}
2783unsafe extern "C" {
2784    pub fn snd_pcm_format_mask_any(mask: *mut snd_pcm_format_mask_t);
2785}
2786unsafe extern "C" {
2787    pub fn snd_pcm_format_mask_test(
2788        mask: *const snd_pcm_format_mask_t,
2789        val: snd_pcm_format_t,
2790    ) -> ::core::ffi::c_int;
2791}
2792unsafe extern "C" {
2793    pub fn snd_pcm_format_mask_empty(mask: *const snd_pcm_format_mask_t) -> ::core::ffi::c_int;
2794}
2795unsafe extern "C" {
2796    pub fn snd_pcm_format_mask_set(mask: *mut snd_pcm_format_mask_t, val: snd_pcm_format_t);
2797}
2798unsafe extern "C" {
2799    pub fn snd_pcm_format_mask_reset(mask: *mut snd_pcm_format_mask_t, val: snd_pcm_format_t);
2800}
2801unsafe extern "C" {
2802    pub fn snd_pcm_subformat_mask_sizeof() -> usize;
2803}
2804unsafe extern "C" {
2805    pub fn snd_pcm_subformat_mask_malloc(
2806        ptr: *mut *mut snd_pcm_subformat_mask_t,
2807    ) -> ::core::ffi::c_int;
2808}
2809unsafe extern "C" {
2810    pub fn snd_pcm_subformat_mask_free(obj: *mut snd_pcm_subformat_mask_t);
2811}
2812unsafe extern "C" {
2813    pub fn snd_pcm_subformat_mask_copy(
2814        dst: *mut snd_pcm_subformat_mask_t,
2815        src: *const snd_pcm_subformat_mask_t,
2816    );
2817}
2818unsafe extern "C" {
2819    pub fn snd_pcm_subformat_mask_none(mask: *mut snd_pcm_subformat_mask_t);
2820}
2821unsafe extern "C" {
2822    pub fn snd_pcm_subformat_mask_any(mask: *mut snd_pcm_subformat_mask_t);
2823}
2824unsafe extern "C" {
2825    pub fn snd_pcm_subformat_mask_test(
2826        mask: *const snd_pcm_subformat_mask_t,
2827        val: snd_pcm_subformat_t,
2828    ) -> ::core::ffi::c_int;
2829}
2830unsafe extern "C" {
2831    pub fn snd_pcm_subformat_mask_empty(
2832        mask: *const snd_pcm_subformat_mask_t,
2833    ) -> ::core::ffi::c_int;
2834}
2835unsafe extern "C" {
2836    pub fn snd_pcm_subformat_mask_set(
2837        mask: *mut snd_pcm_subformat_mask_t,
2838        val: snd_pcm_subformat_t,
2839    );
2840}
2841unsafe extern "C" {
2842    pub fn snd_pcm_subformat_mask_reset(
2843        mask: *mut snd_pcm_subformat_mask_t,
2844        val: snd_pcm_subformat_t,
2845    );
2846}
2847unsafe extern "C" {
2848    pub fn snd_pcm_status_sizeof() -> usize;
2849}
2850unsafe extern "C" {
2851    pub fn snd_pcm_status_malloc(ptr: *mut *mut snd_pcm_status_t) -> ::core::ffi::c_int;
2852}
2853unsafe extern "C" {
2854    pub fn snd_pcm_status_free(obj: *mut snd_pcm_status_t);
2855}
2856unsafe extern "C" {
2857    pub fn snd_pcm_status_copy(dst: *mut snd_pcm_status_t, src: *const snd_pcm_status_t);
2858}
2859unsafe extern "C" {
2860    pub fn snd_pcm_status_get_state(obj: *const snd_pcm_status_t) -> snd_pcm_state_t;
2861}
2862unsafe extern "C" {
2863    pub fn snd_pcm_status_get_trigger_tstamp(
2864        obj: *const snd_pcm_status_t,
2865        ptr: *mut snd_timestamp_t,
2866    );
2867}
2868unsafe extern "C" {
2869    pub fn snd_pcm_status_get_trigger_htstamp(
2870        obj: *const snd_pcm_status_t,
2871        ptr: *mut snd_htimestamp_t,
2872    );
2873}
2874unsafe extern "C" {
2875    pub fn snd_pcm_status_get_tstamp(obj: *const snd_pcm_status_t, ptr: *mut snd_timestamp_t);
2876}
2877unsafe extern "C" {
2878    pub fn snd_pcm_status_get_htstamp(obj: *const snd_pcm_status_t, ptr: *mut snd_htimestamp_t);
2879}
2880unsafe extern "C" {
2881    pub fn snd_pcm_status_get_audio_htstamp(
2882        obj: *const snd_pcm_status_t,
2883        ptr: *mut snd_htimestamp_t,
2884    );
2885}
2886unsafe extern "C" {
2887    pub fn snd_pcm_status_get_driver_htstamp(
2888        obj: *const snd_pcm_status_t,
2889        ptr: *mut snd_htimestamp_t,
2890    );
2891}
2892unsafe extern "C" {
2893    pub fn snd_pcm_status_get_audio_htstamp_report(
2894        obj: *const snd_pcm_status_t,
2895        audio_tstamp_report: *mut snd_pcm_audio_tstamp_report_t,
2896    );
2897}
2898unsafe extern "C" {
2899    pub fn snd_pcm_status_set_audio_htstamp_config(
2900        obj: *mut snd_pcm_status_t,
2901        audio_tstamp_config: *mut snd_pcm_audio_tstamp_config_t,
2902    );
2903}
2904unsafe extern "C" {
2905    pub fn snd_pcm_status_get_delay(obj: *const snd_pcm_status_t) -> snd_pcm_sframes_t;
2906}
2907unsafe extern "C" {
2908    pub fn snd_pcm_status_get_avail(obj: *const snd_pcm_status_t) -> snd_pcm_uframes_t;
2909}
2910unsafe extern "C" {
2911    pub fn snd_pcm_status_get_avail_max(obj: *const snd_pcm_status_t) -> snd_pcm_uframes_t;
2912}
2913unsafe extern "C" {
2914    pub fn snd_pcm_status_get_overrange(obj: *const snd_pcm_status_t) -> snd_pcm_uframes_t;
2915}
2916unsafe extern "C" {
2917    pub fn snd_pcm_type_name(type_: snd_pcm_type_t) -> *const ::core::ffi::c_char;
2918}
2919unsafe extern "C" {
2920    pub fn snd_pcm_stream_name(stream: snd_pcm_stream_t) -> *const ::core::ffi::c_char;
2921}
2922unsafe extern "C" {
2923    pub fn snd_pcm_access_name(_access: snd_pcm_access_t) -> *const ::core::ffi::c_char;
2924}
2925unsafe extern "C" {
2926    pub fn snd_pcm_format_name(format: snd_pcm_format_t) -> *const ::core::ffi::c_char;
2927}
2928unsafe extern "C" {
2929    pub fn snd_pcm_format_description(format: snd_pcm_format_t) -> *const ::core::ffi::c_char;
2930}
2931unsafe extern "C" {
2932    pub fn snd_pcm_subformat_name(subformat: snd_pcm_subformat_t) -> *const ::core::ffi::c_char;
2933}
2934unsafe extern "C" {
2935    pub fn snd_pcm_subformat_description(
2936        subformat: snd_pcm_subformat_t,
2937    ) -> *const ::core::ffi::c_char;
2938}
2939unsafe extern "C" {
2940    pub fn snd_pcm_subformat_value(name: *const ::core::ffi::c_char) -> snd_pcm_subformat_t;
2941}
2942unsafe extern "C" {
2943    pub fn snd_pcm_format_value(name: *const ::core::ffi::c_char) -> snd_pcm_format_t;
2944}
2945unsafe extern "C" {
2946    pub fn snd_pcm_tstamp_mode_name(mode: snd_pcm_tstamp_t) -> *const ::core::ffi::c_char;
2947}
2948unsafe extern "C" {
2949    pub fn snd_pcm_state_name(state: snd_pcm_state_t) -> *const ::core::ffi::c_char;
2950}
2951unsafe extern "C" {
2952    pub fn snd_pcm_dump(pcm: *mut snd_pcm_t, out: *mut snd_output_t) -> ::core::ffi::c_int;
2953}
2954unsafe extern "C" {
2955    pub fn snd_pcm_dump_hw_setup(pcm: *mut snd_pcm_t, out: *mut snd_output_t)
2956    -> ::core::ffi::c_int;
2957}
2958unsafe extern "C" {
2959    pub fn snd_pcm_dump_sw_setup(pcm: *mut snd_pcm_t, out: *mut snd_output_t)
2960    -> ::core::ffi::c_int;
2961}
2962unsafe extern "C" {
2963    pub fn snd_pcm_dump_setup(pcm: *mut snd_pcm_t, out: *mut snd_output_t) -> ::core::ffi::c_int;
2964}
2965unsafe extern "C" {
2966    pub fn snd_pcm_hw_params_dump(
2967        params: *mut snd_pcm_hw_params_t,
2968        out: *mut snd_output_t,
2969    ) -> ::core::ffi::c_int;
2970}
2971unsafe extern "C" {
2972    pub fn snd_pcm_sw_params_dump(
2973        params: *mut snd_pcm_sw_params_t,
2974        out: *mut snd_output_t,
2975    ) -> ::core::ffi::c_int;
2976}
2977unsafe extern "C" {
2978    pub fn snd_pcm_status_dump(
2979        status: *mut snd_pcm_status_t,
2980        out: *mut snd_output_t,
2981    ) -> ::core::ffi::c_int;
2982}
2983unsafe extern "C" {
2984    pub fn snd_pcm_mmap_begin(
2985        pcm: *mut snd_pcm_t,
2986        areas: *mut *const snd_pcm_channel_area_t,
2987        offset: *mut snd_pcm_uframes_t,
2988        frames: *mut snd_pcm_uframes_t,
2989    ) -> ::core::ffi::c_int;
2990}
2991unsafe extern "C" {
2992    pub fn snd_pcm_mmap_commit(
2993        pcm: *mut snd_pcm_t,
2994        offset: snd_pcm_uframes_t,
2995        frames: snd_pcm_uframes_t,
2996    ) -> snd_pcm_sframes_t;
2997}
2998unsafe extern "C" {
2999    pub fn snd_pcm_mmap_writei(
3000        pcm: *mut snd_pcm_t,
3001        buffer: *const ::core::ffi::c_void,
3002        size: snd_pcm_uframes_t,
3003    ) -> snd_pcm_sframes_t;
3004}
3005unsafe extern "C" {
3006    pub fn snd_pcm_mmap_readi(
3007        pcm: *mut snd_pcm_t,
3008        buffer: *mut ::core::ffi::c_void,
3009        size: snd_pcm_uframes_t,
3010    ) -> snd_pcm_sframes_t;
3011}
3012unsafe extern "C" {
3013    pub fn snd_pcm_mmap_writen(
3014        pcm: *mut snd_pcm_t,
3015        bufs: *mut *mut ::core::ffi::c_void,
3016        size: snd_pcm_uframes_t,
3017    ) -> snd_pcm_sframes_t;
3018}
3019unsafe extern "C" {
3020    pub fn snd_pcm_mmap_readn(
3021        pcm: *mut snd_pcm_t,
3022        bufs: *mut *mut ::core::ffi::c_void,
3023        size: snd_pcm_uframes_t,
3024    ) -> snd_pcm_sframes_t;
3025}
3026unsafe extern "C" {
3027    pub fn snd_pcm_format_signed(format: snd_pcm_format_t) -> ::core::ffi::c_int;
3028}
3029unsafe extern "C" {
3030    pub fn snd_pcm_format_unsigned(format: snd_pcm_format_t) -> ::core::ffi::c_int;
3031}
3032unsafe extern "C" {
3033    pub fn snd_pcm_format_linear(format: snd_pcm_format_t) -> ::core::ffi::c_int;
3034}
3035unsafe extern "C" {
3036    pub fn snd_pcm_format_float(format: snd_pcm_format_t) -> ::core::ffi::c_int;
3037}
3038unsafe extern "C" {
3039    pub fn snd_pcm_format_little_endian(format: snd_pcm_format_t) -> ::core::ffi::c_int;
3040}
3041unsafe extern "C" {
3042    pub fn snd_pcm_format_big_endian(format: snd_pcm_format_t) -> ::core::ffi::c_int;
3043}
3044unsafe extern "C" {
3045    pub fn snd_pcm_format_cpu_endian(format: snd_pcm_format_t) -> ::core::ffi::c_int;
3046}
3047unsafe extern "C" {
3048    pub fn snd_pcm_format_width(format: snd_pcm_format_t) -> ::core::ffi::c_int;
3049}
3050unsafe extern "C" {
3051    pub fn snd_pcm_format_physical_width(format: snd_pcm_format_t) -> ::core::ffi::c_int;
3052}
3053unsafe extern "C" {
3054    pub fn snd_pcm_build_linear_format(
3055        width: ::core::ffi::c_int,
3056        pwidth: ::core::ffi::c_int,
3057        unsignd: ::core::ffi::c_int,
3058        big_endian: ::core::ffi::c_int,
3059    ) -> snd_pcm_format_t;
3060}
3061unsafe extern "C" {
3062    pub fn snd_pcm_format_size(format: snd_pcm_format_t, samples: usize) -> isize;
3063}
3064unsafe extern "C" {
3065    pub fn snd_pcm_format_silence(format: snd_pcm_format_t) -> u8;
3066}
3067unsafe extern "C" {
3068    pub fn snd_pcm_format_silence_16(format: snd_pcm_format_t) -> u16;
3069}
3070unsafe extern "C" {
3071    pub fn snd_pcm_format_silence_32(format: snd_pcm_format_t) -> u32;
3072}
3073unsafe extern "C" {
3074    pub fn snd_pcm_format_silence_64(format: snd_pcm_format_t) -> u64;
3075}
3076unsafe extern "C" {
3077    pub fn snd_pcm_format_set_silence(
3078        format: snd_pcm_format_t,
3079        buf: *mut ::core::ffi::c_void,
3080        samples: ::core::ffi::c_uint,
3081    ) -> ::core::ffi::c_int;
3082}
3083unsafe extern "C" {
3084    pub fn snd_pcm_bytes_to_frames(pcm: *mut snd_pcm_t, bytes: isize) -> snd_pcm_sframes_t;
3085}
3086unsafe extern "C" {
3087    pub fn snd_pcm_frames_to_bytes(pcm: *mut snd_pcm_t, frames: snd_pcm_sframes_t) -> isize;
3088}
3089unsafe extern "C" {
3090    pub fn snd_pcm_bytes_to_samples(pcm: *mut snd_pcm_t, bytes: isize) -> ::core::ffi::c_long;
3091}
3092unsafe extern "C" {
3093    pub fn snd_pcm_samples_to_bytes(pcm: *mut snd_pcm_t, samples: ::core::ffi::c_long) -> isize;
3094}
3095unsafe extern "C" {
3096    pub fn snd_pcm_area_silence(
3097        dst_channel: *const snd_pcm_channel_area_t,
3098        dst_offset: snd_pcm_uframes_t,
3099        samples: ::core::ffi::c_uint,
3100        format: snd_pcm_format_t,
3101    ) -> ::core::ffi::c_int;
3102}
3103unsafe extern "C" {
3104    pub fn snd_pcm_areas_silence(
3105        dst_channels: *const snd_pcm_channel_area_t,
3106        dst_offset: snd_pcm_uframes_t,
3107        channels: ::core::ffi::c_uint,
3108        frames: snd_pcm_uframes_t,
3109        format: snd_pcm_format_t,
3110    ) -> ::core::ffi::c_int;
3111}
3112unsafe extern "C" {
3113    pub fn snd_pcm_area_copy(
3114        dst_channel: *const snd_pcm_channel_area_t,
3115        dst_offset: snd_pcm_uframes_t,
3116        src_channel: *const snd_pcm_channel_area_t,
3117        src_offset: snd_pcm_uframes_t,
3118        samples: ::core::ffi::c_uint,
3119        format: snd_pcm_format_t,
3120    ) -> ::core::ffi::c_int;
3121}
3122unsafe extern "C" {
3123    pub fn snd_pcm_areas_copy(
3124        dst_channels: *const snd_pcm_channel_area_t,
3125        dst_offset: snd_pcm_uframes_t,
3126        src_channels: *const snd_pcm_channel_area_t,
3127        src_offset: snd_pcm_uframes_t,
3128        channels: ::core::ffi::c_uint,
3129        frames: snd_pcm_uframes_t,
3130        format: snd_pcm_format_t,
3131    ) -> ::core::ffi::c_int;
3132}
3133unsafe extern "C" {
3134    pub fn snd_pcm_areas_copy_wrap(
3135        dst_channels: *const snd_pcm_channel_area_t,
3136        dst_offset: snd_pcm_uframes_t,
3137        dst_size: snd_pcm_uframes_t,
3138        src_channels: *const snd_pcm_channel_area_t,
3139        src_offset: snd_pcm_uframes_t,
3140        src_size: snd_pcm_uframes_t,
3141        channels: ::core::ffi::c_uint,
3142        frames: snd_pcm_uframes_t,
3143        format: snd_pcm_format_t,
3144    ) -> ::core::ffi::c_int;
3145}
3146pub const SND_PCM_HOOK_TYPE_HW_PARAMS: _snd_pcm_hook_type = 0;
3147pub const SND_PCM_HOOK_TYPE_HW_FREE: _snd_pcm_hook_type = 1;
3148pub const SND_PCM_HOOK_TYPE_CLOSE: _snd_pcm_hook_type = 2;
3149pub const SND_PCM_HOOK_TYPE_LAST: _snd_pcm_hook_type = 2;
3150pub type _snd_pcm_hook_type = ::core::ffi::c_uint;
3151pub use self::_snd_pcm_hook_type as snd_pcm_hook_type_t;
3152#[repr(C)]
3153#[derive(Debug, Copy, Clone)]
3154pub struct _snd_pcm_hook {
3155    _unused: [u8; 0],
3156}
3157pub type snd_pcm_hook_t = _snd_pcm_hook;
3158pub type snd_pcm_hook_func_t =
3159    ::core::option::Option<unsafe extern "C" fn(hook: *mut snd_pcm_hook_t) -> ::core::ffi::c_int>;
3160unsafe extern "C" {
3161    pub fn snd_pcm_hook_get_pcm(hook: *mut snd_pcm_hook_t) -> *mut snd_pcm_t;
3162}
3163unsafe extern "C" {
3164    pub fn snd_pcm_hook_get_private(hook: *mut snd_pcm_hook_t) -> *mut ::core::ffi::c_void;
3165}
3166unsafe extern "C" {
3167    pub fn snd_pcm_hook_set_private(
3168        hook: *mut snd_pcm_hook_t,
3169        private_data: *mut ::core::ffi::c_void,
3170    );
3171}
3172unsafe extern "C" {
3173    pub fn snd_pcm_hook_add(
3174        hookp: *mut *mut snd_pcm_hook_t,
3175        pcm: *mut snd_pcm_t,
3176        type_: snd_pcm_hook_type_t,
3177        func: snd_pcm_hook_func_t,
3178        private_data: *mut ::core::ffi::c_void,
3179    ) -> ::core::ffi::c_int;
3180}
3181unsafe extern "C" {
3182    pub fn snd_pcm_hook_remove(hook: *mut snd_pcm_hook_t) -> ::core::ffi::c_int;
3183}
3184#[repr(C)]
3185#[derive(Debug, Copy, Clone)]
3186pub struct _snd_pcm_scope_ops {
3187    pub enable: ::core::option::Option<
3188        unsafe extern "C" fn(scope: *mut snd_pcm_scope_t) -> ::core::ffi::c_int,
3189    >,
3190    pub disable: ::core::option::Option<unsafe extern "C" fn(scope: *mut snd_pcm_scope_t)>,
3191    pub start: ::core::option::Option<unsafe extern "C" fn(scope: *mut snd_pcm_scope_t)>,
3192    pub stop: ::core::option::Option<unsafe extern "C" fn(scope: *mut snd_pcm_scope_t)>,
3193    pub update: ::core::option::Option<unsafe extern "C" fn(scope: *mut snd_pcm_scope_t)>,
3194    pub reset: ::core::option::Option<unsafe extern "C" fn(scope: *mut snd_pcm_scope_t)>,
3195    pub close: ::core::option::Option<unsafe extern "C" fn(scope: *mut snd_pcm_scope_t)>,
3196}
3197pub type snd_pcm_scope_ops_t = _snd_pcm_scope_ops;
3198unsafe extern "C" {
3199    pub fn snd_pcm_meter_get_bufsize(pcm: *mut snd_pcm_t) -> snd_pcm_uframes_t;
3200}
3201unsafe extern "C" {
3202    pub fn snd_pcm_meter_get_channels(pcm: *mut snd_pcm_t) -> ::core::ffi::c_uint;
3203}
3204unsafe extern "C" {
3205    pub fn snd_pcm_meter_get_rate(pcm: *mut snd_pcm_t) -> ::core::ffi::c_uint;
3206}
3207unsafe extern "C" {
3208    pub fn snd_pcm_meter_get_now(pcm: *mut snd_pcm_t) -> snd_pcm_uframes_t;
3209}
3210unsafe extern "C" {
3211    pub fn snd_pcm_meter_get_boundary(pcm: *mut snd_pcm_t) -> snd_pcm_uframes_t;
3212}
3213unsafe extern "C" {
3214    pub fn snd_pcm_meter_add_scope(
3215        pcm: *mut snd_pcm_t,
3216        scope: *mut snd_pcm_scope_t,
3217    ) -> ::core::ffi::c_int;
3218}
3219unsafe extern "C" {
3220    pub fn snd_pcm_meter_search_scope(
3221        pcm: *mut snd_pcm_t,
3222        name: *const ::core::ffi::c_char,
3223    ) -> *mut snd_pcm_scope_t;
3224}
3225unsafe extern "C" {
3226    pub fn snd_pcm_scope_malloc(ptr: *mut *mut snd_pcm_scope_t) -> ::core::ffi::c_int;
3227}
3228unsafe extern "C" {
3229    pub fn snd_pcm_scope_set_ops(scope: *mut snd_pcm_scope_t, val: *const snd_pcm_scope_ops_t);
3230}
3231unsafe extern "C" {
3232    pub fn snd_pcm_scope_set_name(scope: *mut snd_pcm_scope_t, val: *const ::core::ffi::c_char);
3233}
3234unsafe extern "C" {
3235    pub fn snd_pcm_scope_get_name(scope: *mut snd_pcm_scope_t) -> *const ::core::ffi::c_char;
3236}
3237unsafe extern "C" {
3238    pub fn snd_pcm_scope_get_callback_private(
3239        scope: *mut snd_pcm_scope_t,
3240    ) -> *mut ::core::ffi::c_void;
3241}
3242unsafe extern "C" {
3243    pub fn snd_pcm_scope_set_callback_private(
3244        scope: *mut snd_pcm_scope_t,
3245        val: *mut ::core::ffi::c_void,
3246    );
3247}
3248unsafe extern "C" {
3249    pub fn snd_pcm_scope_s16_open(
3250        pcm: *mut snd_pcm_t,
3251        name: *const ::core::ffi::c_char,
3252        scopep: *mut *mut snd_pcm_scope_t,
3253    ) -> ::core::ffi::c_int;
3254}
3255unsafe extern "C" {
3256    pub fn snd_pcm_scope_s16_get_channel_buffer(
3257        scope: *mut snd_pcm_scope_t,
3258        channel: ::core::ffi::c_uint,
3259    ) -> *mut i16;
3260}
3261pub const SND_SPCM_LATENCY_STANDARD: _snd_spcm_latency = 0;
3262pub const SND_SPCM_LATENCY_MEDIUM: _snd_spcm_latency = 1;
3263pub const SND_SPCM_LATENCY_REALTIME: _snd_spcm_latency = 2;
3264pub type _snd_spcm_latency = ::core::ffi::c_uint;
3265pub use self::_snd_spcm_latency as snd_spcm_latency_t;
3266pub const SND_SPCM_XRUN_IGNORE: _snd_spcm_xrun_type = 0;
3267pub const SND_SPCM_XRUN_STOP: _snd_spcm_xrun_type = 1;
3268pub type _snd_spcm_xrun_type = ::core::ffi::c_uint;
3269pub use self::_snd_spcm_xrun_type as snd_spcm_xrun_type_t;
3270pub const SND_SPCM_DUPLEX_LIBERAL: _snd_spcm_duplex_type = 0;
3271pub const SND_SPCM_DUPLEX_PEDANTIC: _snd_spcm_duplex_type = 1;
3272pub type _snd_spcm_duplex_type = ::core::ffi::c_uint;
3273pub use self::_snd_spcm_duplex_type as snd_spcm_duplex_type_t;
3274unsafe extern "C" {
3275    pub fn snd_spcm_init(
3276        pcm: *mut snd_pcm_t,
3277        rate: ::core::ffi::c_uint,
3278        channels: ::core::ffi::c_uint,
3279        format: snd_pcm_format_t,
3280        subformat: snd_pcm_subformat_t,
3281        latency: snd_spcm_latency_t,
3282        _access: snd_pcm_access_t,
3283        xrun_type: snd_spcm_xrun_type_t,
3284    ) -> ::core::ffi::c_int;
3285}
3286unsafe extern "C" {
3287    pub fn snd_spcm_init_duplex(
3288        playback_pcm: *mut snd_pcm_t,
3289        capture_pcm: *mut snd_pcm_t,
3290        rate: ::core::ffi::c_uint,
3291        channels: ::core::ffi::c_uint,
3292        format: snd_pcm_format_t,
3293        subformat: snd_pcm_subformat_t,
3294        latency: snd_spcm_latency_t,
3295        _access: snd_pcm_access_t,
3296        xrun_type: snd_spcm_xrun_type_t,
3297        duplex_type: snd_spcm_duplex_type_t,
3298    ) -> ::core::ffi::c_int;
3299}
3300unsafe extern "C" {
3301    pub fn snd_spcm_init_get_params(
3302        pcm: *mut snd_pcm_t,
3303        rate: *mut ::core::ffi::c_uint,
3304        buffer_size: *mut snd_pcm_uframes_t,
3305        period_size: *mut snd_pcm_uframes_t,
3306    ) -> ::core::ffi::c_int;
3307}
3308unsafe extern "C" {
3309    pub fn snd_pcm_start_mode_name(mode: snd_pcm_start_t) -> *const ::core::ffi::c_char;
3310}
3311unsafe extern "C" {
3312    pub fn snd_pcm_xrun_mode_name(mode: snd_pcm_xrun_t) -> *const ::core::ffi::c_char;
3313}
3314unsafe extern "C" {
3315    pub fn snd_pcm_sw_params_set_start_mode(
3316        pcm: *mut snd_pcm_t,
3317        params: *mut snd_pcm_sw_params_t,
3318        val: snd_pcm_start_t,
3319    ) -> ::core::ffi::c_int;
3320}
3321unsafe extern "C" {
3322    pub fn snd_pcm_sw_params_get_start_mode(params: *const snd_pcm_sw_params_t) -> snd_pcm_start_t;
3323}
3324unsafe extern "C" {
3325    pub fn snd_pcm_sw_params_set_xrun_mode(
3326        pcm: *mut snd_pcm_t,
3327        params: *mut snd_pcm_sw_params_t,
3328        val: snd_pcm_xrun_t,
3329    ) -> ::core::ffi::c_int;
3330}
3331unsafe extern "C" {
3332    pub fn snd_pcm_sw_params_get_xrun_mode(params: *const snd_pcm_sw_params_t) -> snd_pcm_xrun_t;
3333}
3334unsafe extern "C" {
3335    pub fn snd_pcm_sw_params_set_xfer_align(
3336        pcm: *mut snd_pcm_t,
3337        params: *mut snd_pcm_sw_params_t,
3338        val: snd_pcm_uframes_t,
3339    ) -> ::core::ffi::c_int;
3340}
3341unsafe extern "C" {
3342    pub fn snd_pcm_sw_params_get_xfer_align(
3343        params: *const snd_pcm_sw_params_t,
3344        val: *mut snd_pcm_uframes_t,
3345    ) -> ::core::ffi::c_int;
3346}
3347unsafe extern "C" {
3348    pub fn snd_pcm_sw_params_set_sleep_min(
3349        pcm: *mut snd_pcm_t,
3350        params: *mut snd_pcm_sw_params_t,
3351        val: ::core::ffi::c_uint,
3352    ) -> ::core::ffi::c_int;
3353}
3354unsafe extern "C" {
3355    pub fn snd_pcm_sw_params_get_sleep_min(
3356        params: *const snd_pcm_sw_params_t,
3357        val: *mut ::core::ffi::c_uint,
3358    ) -> ::core::ffi::c_int;
3359}
3360unsafe extern "C" {
3361    pub fn snd_pcm_hw_params_get_tick_time(
3362        params: *const snd_pcm_hw_params_t,
3363        val: *mut ::core::ffi::c_uint,
3364        dir: *mut ::core::ffi::c_int,
3365    ) -> ::core::ffi::c_int;
3366}
3367unsafe extern "C" {
3368    pub fn snd_pcm_hw_params_get_tick_time_min(
3369        params: *const snd_pcm_hw_params_t,
3370        val: *mut ::core::ffi::c_uint,
3371        dir: *mut ::core::ffi::c_int,
3372    ) -> ::core::ffi::c_int;
3373}
3374unsafe extern "C" {
3375    pub fn snd_pcm_hw_params_get_tick_time_max(
3376        params: *const snd_pcm_hw_params_t,
3377        val: *mut ::core::ffi::c_uint,
3378        dir: *mut ::core::ffi::c_int,
3379    ) -> ::core::ffi::c_int;
3380}
3381unsafe extern "C" {
3382    pub fn snd_pcm_hw_params_test_tick_time(
3383        pcm: *mut snd_pcm_t,
3384        params: *mut snd_pcm_hw_params_t,
3385        val: ::core::ffi::c_uint,
3386        dir: ::core::ffi::c_int,
3387    ) -> ::core::ffi::c_int;
3388}
3389unsafe extern "C" {
3390    pub fn snd_pcm_hw_params_set_tick_time(
3391        pcm: *mut snd_pcm_t,
3392        params: *mut snd_pcm_hw_params_t,
3393        val: ::core::ffi::c_uint,
3394        dir: ::core::ffi::c_int,
3395    ) -> ::core::ffi::c_int;
3396}
3397unsafe extern "C" {
3398    pub fn snd_pcm_hw_params_set_tick_time_min(
3399        pcm: *mut snd_pcm_t,
3400        params: *mut snd_pcm_hw_params_t,
3401        val: *mut ::core::ffi::c_uint,
3402        dir: *mut ::core::ffi::c_int,
3403    ) -> ::core::ffi::c_int;
3404}
3405unsafe extern "C" {
3406    pub fn snd_pcm_hw_params_set_tick_time_max(
3407        pcm: *mut snd_pcm_t,
3408        params: *mut snd_pcm_hw_params_t,
3409        val: *mut ::core::ffi::c_uint,
3410        dir: *mut ::core::ffi::c_int,
3411    ) -> ::core::ffi::c_int;
3412}
3413unsafe extern "C" {
3414    pub fn snd_pcm_hw_params_set_tick_time_minmax(
3415        pcm: *mut snd_pcm_t,
3416        params: *mut snd_pcm_hw_params_t,
3417        min: *mut ::core::ffi::c_uint,
3418        mindir: *mut ::core::ffi::c_int,
3419        max: *mut ::core::ffi::c_uint,
3420        maxdir: *mut ::core::ffi::c_int,
3421    ) -> ::core::ffi::c_int;
3422}
3423unsafe extern "C" {
3424    pub fn snd_pcm_hw_params_set_tick_time_near(
3425        pcm: *mut snd_pcm_t,
3426        params: *mut snd_pcm_hw_params_t,
3427        val: *mut ::core::ffi::c_uint,
3428        dir: *mut ::core::ffi::c_int,
3429    ) -> ::core::ffi::c_int;
3430}
3431unsafe extern "C" {
3432    pub fn snd_pcm_hw_params_set_tick_time_first(
3433        pcm: *mut snd_pcm_t,
3434        params: *mut snd_pcm_hw_params_t,
3435        val: *mut ::core::ffi::c_uint,
3436        dir: *mut ::core::ffi::c_int,
3437    ) -> ::core::ffi::c_int;
3438}
3439unsafe extern "C" {
3440    pub fn snd_pcm_hw_params_set_tick_time_last(
3441        pcm: *mut snd_pcm_t,
3442        params: *mut snd_pcm_hw_params_t,
3443        val: *mut ::core::ffi::c_uint,
3444        dir: *mut ::core::ffi::c_int,
3445    ) -> ::core::ffi::c_int;
3446}
3447#[repr(C)]
3448#[derive(Debug, Copy, Clone)]
3449pub struct _snd_rawmidi_info {
3450    _unused: [u8; 0],
3451}
3452pub type snd_rawmidi_info_t = _snd_rawmidi_info;
3453#[repr(C)]
3454#[derive(Debug, Copy, Clone)]
3455pub struct _snd_rawmidi_params {
3456    _unused: [u8; 0],
3457}
3458pub type snd_rawmidi_params_t = _snd_rawmidi_params;
3459#[repr(C)]
3460#[derive(Debug, Copy, Clone)]
3461pub struct _snd_rawmidi_status {
3462    _unused: [u8; 0],
3463}
3464pub type snd_rawmidi_status_t = _snd_rawmidi_status;
3465pub const SND_RAWMIDI_STREAM_OUTPUT: _snd_rawmidi_stream = 0;
3466pub const SND_RAWMIDI_STREAM_INPUT: _snd_rawmidi_stream = 1;
3467pub const SND_RAWMIDI_STREAM_LAST: _snd_rawmidi_stream = 1;
3468pub type _snd_rawmidi_stream = ::core::ffi::c_uint;
3469pub use self::_snd_rawmidi_stream as snd_rawmidi_stream_t;
3470#[repr(C)]
3471#[derive(Debug, Copy, Clone)]
3472pub struct _snd_rawmidi {
3473    _unused: [u8; 0],
3474}
3475pub type snd_rawmidi_t = _snd_rawmidi;
3476pub const SND_RAWMIDI_TYPE_HW: _snd_rawmidi_type = 0;
3477pub const SND_RAWMIDI_TYPE_SHM: _snd_rawmidi_type = 1;
3478pub const SND_RAWMIDI_TYPE_INET: _snd_rawmidi_type = 2;
3479pub const SND_RAWMIDI_TYPE_VIRTUAL: _snd_rawmidi_type = 3;
3480pub type _snd_rawmidi_type = ::core::ffi::c_uint;
3481pub use self::_snd_rawmidi_type as snd_rawmidi_type_t;
3482pub const SND_RAWMIDI_CLOCK_NONE: _snd_rawmidi_clock = 0;
3483pub const SND_RAWMIDI_CLOCK_REALTIME: _snd_rawmidi_clock = 1;
3484pub const SND_RAWMIDI_CLOCK_MONOTONIC: _snd_rawmidi_clock = 2;
3485pub const SND_RAWMIDI_CLOCK_MONOTONIC_RAW: _snd_rawmidi_clock = 3;
3486pub type _snd_rawmidi_clock = ::core::ffi::c_uint;
3487pub use self::_snd_rawmidi_clock as snd_rawmidi_clock_t;
3488pub const SND_RAWMIDI_READ_STANDARD: _snd_rawmidi_read_mode = 0;
3489pub const SND_RAWMIDI_READ_TSTAMP: _snd_rawmidi_read_mode = 1;
3490pub type _snd_rawmidi_read_mode = ::core::ffi::c_uint;
3491pub use self::_snd_rawmidi_read_mode as snd_rawmidi_read_mode_t;
3492unsafe extern "C" {
3493    pub fn snd_rawmidi_open(
3494        in_rmidi: *mut *mut snd_rawmidi_t,
3495        out_rmidi: *mut *mut snd_rawmidi_t,
3496        name: *const ::core::ffi::c_char,
3497        mode: ::core::ffi::c_int,
3498    ) -> ::core::ffi::c_int;
3499}
3500unsafe extern "C" {
3501    pub fn snd_rawmidi_open_lconf(
3502        in_rmidi: *mut *mut snd_rawmidi_t,
3503        out_rmidi: *mut *mut snd_rawmidi_t,
3504        name: *const ::core::ffi::c_char,
3505        mode: ::core::ffi::c_int,
3506        lconf: *mut snd_config_t,
3507    ) -> ::core::ffi::c_int;
3508}
3509unsafe extern "C" {
3510    pub fn snd_rawmidi_close(rmidi: *mut snd_rawmidi_t) -> ::core::ffi::c_int;
3511}
3512unsafe extern "C" {
3513    pub fn snd_rawmidi_poll_descriptors_count(rmidi: *mut snd_rawmidi_t) -> ::core::ffi::c_int;
3514}
3515unsafe extern "C" {
3516    pub fn snd_rawmidi_poll_descriptors(
3517        rmidi: *mut snd_rawmidi_t,
3518        pfds: *mut pollfd,
3519        space: ::core::ffi::c_uint,
3520    ) -> ::core::ffi::c_int;
3521}
3522unsafe extern "C" {
3523    pub fn snd_rawmidi_poll_descriptors_revents(
3524        rawmidi: *mut snd_rawmidi_t,
3525        pfds: *mut pollfd,
3526        nfds: ::core::ffi::c_uint,
3527        revent: *mut ::core::ffi::c_ushort,
3528    ) -> ::core::ffi::c_int;
3529}
3530unsafe extern "C" {
3531    pub fn snd_rawmidi_nonblock(
3532        rmidi: *mut snd_rawmidi_t,
3533        nonblock: ::core::ffi::c_int,
3534    ) -> ::core::ffi::c_int;
3535}
3536unsafe extern "C" {
3537    pub fn snd_rawmidi_info_sizeof() -> usize;
3538}
3539unsafe extern "C" {
3540    pub fn snd_rawmidi_info_malloc(ptr: *mut *mut snd_rawmidi_info_t) -> ::core::ffi::c_int;
3541}
3542unsafe extern "C" {
3543    pub fn snd_rawmidi_info_free(obj: *mut snd_rawmidi_info_t);
3544}
3545unsafe extern "C" {
3546    pub fn snd_rawmidi_info_copy(dst: *mut snd_rawmidi_info_t, src: *const snd_rawmidi_info_t);
3547}
3548unsafe extern "C" {
3549    pub fn snd_rawmidi_info_get_device(obj: *const snd_rawmidi_info_t) -> ::core::ffi::c_uint;
3550}
3551unsafe extern "C" {
3552    pub fn snd_rawmidi_info_get_subdevice(obj: *const snd_rawmidi_info_t) -> ::core::ffi::c_uint;
3553}
3554unsafe extern "C" {
3555    pub fn snd_rawmidi_info_get_stream(obj: *const snd_rawmidi_info_t) -> snd_rawmidi_stream_t;
3556}
3557unsafe extern "C" {
3558    pub fn snd_rawmidi_info_get_card(obj: *const snd_rawmidi_info_t) -> ::core::ffi::c_int;
3559}
3560unsafe extern "C" {
3561    pub fn snd_rawmidi_info_get_flags(obj: *const snd_rawmidi_info_t) -> ::core::ffi::c_uint;
3562}
3563unsafe extern "C" {
3564    pub fn snd_rawmidi_info_get_id(obj: *const snd_rawmidi_info_t) -> *const ::core::ffi::c_char;
3565}
3566unsafe extern "C" {
3567    pub fn snd_rawmidi_info_get_name(obj: *const snd_rawmidi_info_t) -> *const ::core::ffi::c_char;
3568}
3569unsafe extern "C" {
3570    pub fn snd_rawmidi_info_get_subdevice_name(
3571        obj: *const snd_rawmidi_info_t,
3572    ) -> *const ::core::ffi::c_char;
3573}
3574unsafe extern "C" {
3575    pub fn snd_rawmidi_info_get_subdevices_count(
3576        obj: *const snd_rawmidi_info_t,
3577    ) -> ::core::ffi::c_uint;
3578}
3579unsafe extern "C" {
3580    pub fn snd_rawmidi_info_get_subdevices_avail(
3581        obj: *const snd_rawmidi_info_t,
3582    ) -> ::core::ffi::c_uint;
3583}
3584unsafe extern "C" {
3585    pub fn snd_rawmidi_info_get_tied_device(obj: *const snd_rawmidi_info_t) -> ::core::ffi::c_int;
3586}
3587unsafe extern "C" {
3588    pub fn snd_rawmidi_info_set_device(obj: *mut snd_rawmidi_info_t, val: ::core::ffi::c_uint);
3589}
3590unsafe extern "C" {
3591    pub fn snd_rawmidi_info_set_subdevice(obj: *mut snd_rawmidi_info_t, val: ::core::ffi::c_uint);
3592}
3593unsafe extern "C" {
3594    pub fn snd_rawmidi_info_set_stream(obj: *mut snd_rawmidi_info_t, val: snd_rawmidi_stream_t);
3595}
3596unsafe extern "C" {
3597    pub fn snd_rawmidi_info(
3598        rmidi: *mut snd_rawmidi_t,
3599        info: *mut snd_rawmidi_info_t,
3600    ) -> ::core::ffi::c_int;
3601}
3602unsafe extern "C" {
3603    pub fn snd_rawmidi_params_sizeof() -> usize;
3604}
3605unsafe extern "C" {
3606    pub fn snd_rawmidi_params_malloc(ptr: *mut *mut snd_rawmidi_params_t) -> ::core::ffi::c_int;
3607}
3608unsafe extern "C" {
3609    pub fn snd_rawmidi_params_free(obj: *mut snd_rawmidi_params_t);
3610}
3611unsafe extern "C" {
3612    pub fn snd_rawmidi_params_copy(
3613        dst: *mut snd_rawmidi_params_t,
3614        src: *const snd_rawmidi_params_t,
3615    );
3616}
3617unsafe extern "C" {
3618    pub fn snd_rawmidi_params_set_buffer_size(
3619        rmidi: *mut snd_rawmidi_t,
3620        params: *mut snd_rawmidi_params_t,
3621        val: usize,
3622    ) -> ::core::ffi::c_int;
3623}
3624unsafe extern "C" {
3625    pub fn snd_rawmidi_params_get_buffer_size(params: *const snd_rawmidi_params_t) -> usize;
3626}
3627unsafe extern "C" {
3628    pub fn snd_rawmidi_params_set_avail_min(
3629        rmidi: *mut snd_rawmidi_t,
3630        params: *mut snd_rawmidi_params_t,
3631        val: usize,
3632    ) -> ::core::ffi::c_int;
3633}
3634unsafe extern "C" {
3635    pub fn snd_rawmidi_params_get_avail_min(params: *const snd_rawmidi_params_t) -> usize;
3636}
3637unsafe extern "C" {
3638    pub fn snd_rawmidi_params_set_no_active_sensing(
3639        rmidi: *mut snd_rawmidi_t,
3640        params: *mut snd_rawmidi_params_t,
3641        val: ::core::ffi::c_int,
3642    ) -> ::core::ffi::c_int;
3643}
3644unsafe extern "C" {
3645    pub fn snd_rawmidi_params_get_no_active_sensing(
3646        params: *const snd_rawmidi_params_t,
3647    ) -> ::core::ffi::c_int;
3648}
3649unsafe extern "C" {
3650    pub fn snd_rawmidi_params_set_read_mode(
3651        rawmidi: *const snd_rawmidi_t,
3652        params: *mut snd_rawmidi_params_t,
3653        val: snd_rawmidi_read_mode_t,
3654    ) -> ::core::ffi::c_int;
3655}
3656unsafe extern "C" {
3657    pub fn snd_rawmidi_params_get_read_mode(
3658        params: *const snd_rawmidi_params_t,
3659    ) -> snd_rawmidi_read_mode_t;
3660}
3661unsafe extern "C" {
3662    pub fn snd_rawmidi_params_set_clock_type(
3663        rawmidi: *const snd_rawmidi_t,
3664        params: *mut snd_rawmidi_params_t,
3665        val: snd_rawmidi_clock_t,
3666    ) -> ::core::ffi::c_int;
3667}
3668unsafe extern "C" {
3669    pub fn snd_rawmidi_params_get_clock_type(
3670        params: *const snd_rawmidi_params_t,
3671    ) -> snd_rawmidi_clock_t;
3672}
3673unsafe extern "C" {
3674    pub fn snd_rawmidi_params(
3675        rmidi: *mut snd_rawmidi_t,
3676        params: *mut snd_rawmidi_params_t,
3677    ) -> ::core::ffi::c_int;
3678}
3679unsafe extern "C" {
3680    pub fn snd_rawmidi_params_current(
3681        rmidi: *mut snd_rawmidi_t,
3682        params: *mut snd_rawmidi_params_t,
3683    ) -> ::core::ffi::c_int;
3684}
3685unsafe extern "C" {
3686    pub fn snd_rawmidi_status_sizeof() -> usize;
3687}
3688unsafe extern "C" {
3689    pub fn snd_rawmidi_status_malloc(ptr: *mut *mut snd_rawmidi_status_t) -> ::core::ffi::c_int;
3690}
3691unsafe extern "C" {
3692    pub fn snd_rawmidi_status_free(obj: *mut snd_rawmidi_status_t);
3693}
3694unsafe extern "C" {
3695    pub fn snd_rawmidi_status_copy(
3696        dst: *mut snd_rawmidi_status_t,
3697        src: *const snd_rawmidi_status_t,
3698    );
3699}
3700unsafe extern "C" {
3701    pub fn snd_rawmidi_status_get_tstamp(
3702        obj: *const snd_rawmidi_status_t,
3703        ptr: *mut snd_htimestamp_t,
3704    );
3705}
3706unsafe extern "C" {
3707    pub fn snd_rawmidi_status_get_avail(obj: *const snd_rawmidi_status_t) -> usize;
3708}
3709unsafe extern "C" {
3710    pub fn snd_rawmidi_status_get_xruns(obj: *const snd_rawmidi_status_t) -> usize;
3711}
3712unsafe extern "C" {
3713    pub fn snd_rawmidi_status(
3714        rmidi: *mut snd_rawmidi_t,
3715        status: *mut snd_rawmidi_status_t,
3716    ) -> ::core::ffi::c_int;
3717}
3718unsafe extern "C" {
3719    pub fn snd_rawmidi_drain(rmidi: *mut snd_rawmidi_t) -> ::core::ffi::c_int;
3720}
3721unsafe extern "C" {
3722    pub fn snd_rawmidi_drop(rmidi: *mut snd_rawmidi_t) -> ::core::ffi::c_int;
3723}
3724unsafe extern "C" {
3725    pub fn snd_rawmidi_write(
3726        rmidi: *mut snd_rawmidi_t,
3727        buffer: *const ::core::ffi::c_void,
3728        size: usize,
3729    ) -> isize;
3730}
3731unsafe extern "C" {
3732    pub fn snd_rawmidi_read(
3733        rmidi: *mut snd_rawmidi_t,
3734        buffer: *mut ::core::ffi::c_void,
3735        size: usize,
3736    ) -> isize;
3737}
3738unsafe extern "C" {
3739    pub fn snd_rawmidi_tread(
3740        rmidi: *mut snd_rawmidi_t,
3741        tstamp: *mut timespec,
3742        buffer: *mut ::core::ffi::c_void,
3743        size: usize,
3744    ) -> isize;
3745}
3746unsafe extern "C" {
3747    pub fn snd_rawmidi_name(rmidi: *mut snd_rawmidi_t) -> *const ::core::ffi::c_char;
3748}
3749unsafe extern "C" {
3750    pub fn snd_rawmidi_type(rmidi: *mut snd_rawmidi_t) -> snd_rawmidi_type_t;
3751}
3752unsafe extern "C" {
3753    pub fn snd_rawmidi_stream(rawmidi: *mut snd_rawmidi_t) -> snd_rawmidi_stream_t;
3754}
3755#[repr(C)]
3756#[derive(Debug, Copy, Clone)]
3757pub struct _snd_ump {
3758    _unused: [u8; 0],
3759}
3760pub type snd_ump_t = _snd_ump;
3761#[repr(C)]
3762#[derive(Debug, Copy, Clone)]
3763pub struct snd_ump_endpoint_info {
3764    _unused: [u8; 0],
3765}
3766pub type snd_ump_endpoint_info_t = snd_ump_endpoint_info;
3767#[repr(C)]
3768#[derive(Debug, Copy, Clone)]
3769pub struct snd_ump_block_info {
3770    _unused: [u8; 0],
3771}
3772pub type snd_ump_block_info_t = snd_ump_block_info;
3773unsafe extern "C" {
3774    pub fn snd_ump_open(
3775        inputp: *mut *mut snd_ump_t,
3776        outputp: *mut *mut snd_ump_t,
3777        name: *const ::core::ffi::c_char,
3778        mode: ::core::ffi::c_int,
3779    ) -> ::core::ffi::c_int;
3780}
3781unsafe extern "C" {
3782    pub fn snd_ump_close(ump: *mut snd_ump_t) -> ::core::ffi::c_int;
3783}
3784unsafe extern "C" {
3785    pub fn snd_ump_rawmidi(ump: *mut snd_ump_t) -> *mut snd_rawmidi_t;
3786}
3787unsafe extern "C" {
3788    pub fn snd_ump_name(ump: *mut snd_ump_t) -> *const ::core::ffi::c_char;
3789}
3790unsafe extern "C" {
3791    pub fn snd_ump_poll_descriptors_count(ump: *mut snd_ump_t) -> ::core::ffi::c_int;
3792}
3793unsafe extern "C" {
3794    pub fn snd_ump_poll_descriptors(
3795        ump: *mut snd_ump_t,
3796        pfds: *mut pollfd,
3797        space: ::core::ffi::c_uint,
3798    ) -> ::core::ffi::c_int;
3799}
3800unsafe extern "C" {
3801    pub fn snd_ump_poll_descriptors_revents(
3802        ump: *mut snd_ump_t,
3803        pfds: *mut pollfd,
3804        nfds: ::core::ffi::c_uint,
3805        revents: *mut ::core::ffi::c_ushort,
3806    ) -> ::core::ffi::c_int;
3807}
3808unsafe extern "C" {
3809    pub fn snd_ump_nonblock(
3810        ump: *mut snd_ump_t,
3811        nonblock: ::core::ffi::c_int,
3812    ) -> ::core::ffi::c_int;
3813}
3814unsafe extern "C" {
3815    pub fn snd_ump_rawmidi_info(
3816        ump: *mut snd_ump_t,
3817        info: *mut snd_rawmidi_info_t,
3818    ) -> ::core::ffi::c_int;
3819}
3820unsafe extern "C" {
3821    pub fn snd_ump_rawmidi_params(
3822        ump: *mut snd_ump_t,
3823        params: *mut snd_rawmidi_params_t,
3824    ) -> ::core::ffi::c_int;
3825}
3826unsafe extern "C" {
3827    pub fn snd_ump_rawmidi_params_current(
3828        ump: *mut snd_ump_t,
3829        params: *mut snd_rawmidi_params_t,
3830    ) -> ::core::ffi::c_int;
3831}
3832unsafe extern "C" {
3833    pub fn snd_ump_rawmidi_status(
3834        ump: *mut snd_ump_t,
3835        status: *mut snd_rawmidi_status_t,
3836    ) -> ::core::ffi::c_int;
3837}
3838unsafe extern "C" {
3839    pub fn snd_ump_drop(ump: *mut snd_ump_t) -> ::core::ffi::c_int;
3840}
3841unsafe extern "C" {
3842    pub fn snd_ump_drain(ump: *mut snd_ump_t) -> ::core::ffi::c_int;
3843}
3844unsafe extern "C" {
3845    pub fn snd_ump_write(
3846        ump: *mut snd_ump_t,
3847        buffer: *const ::core::ffi::c_void,
3848        size: usize,
3849    ) -> isize;
3850}
3851unsafe extern "C" {
3852    pub fn snd_ump_read(
3853        ump: *mut snd_ump_t,
3854        buffer: *mut ::core::ffi::c_void,
3855        size: usize,
3856    ) -> isize;
3857}
3858unsafe extern "C" {
3859    pub fn snd_ump_tread(
3860        ump: *mut snd_ump_t,
3861        tstamp: *mut timespec,
3862        buffer: *mut ::core::ffi::c_void,
3863        size: usize,
3864    ) -> isize;
3865}
3866pub const SND_UMP_DIR_INPUT: _snd_ump_direction = 1;
3867pub const SND_UMP_DIR_OUTPUT: _snd_ump_direction = 2;
3868pub const SND_UMP_DIR_BIDIRECTION: _snd_ump_direction = 3;
3869pub type _snd_ump_direction = ::core::ffi::c_uint;
3870unsafe extern "C" {
3871    pub fn snd_ump_endpoint_info_sizeof() -> usize;
3872}
3873unsafe extern "C" {
3874    pub fn snd_ump_endpoint_info_malloc(
3875        info: *mut *mut snd_ump_endpoint_info_t,
3876    ) -> ::core::ffi::c_int;
3877}
3878unsafe extern "C" {
3879    pub fn snd_ump_endpoint_info_free(info: *mut snd_ump_endpoint_info_t);
3880}
3881unsafe extern "C" {
3882    pub fn snd_ump_endpoint_info_clear(info: *mut snd_ump_endpoint_info_t);
3883}
3884unsafe extern "C" {
3885    pub fn snd_ump_endpoint_info_copy(
3886        dst: *mut snd_ump_endpoint_info_t,
3887        src: *const snd_ump_endpoint_info_t,
3888    );
3889}
3890unsafe extern "C" {
3891    pub fn snd_ump_endpoint_info_get_card(
3892        info: *const snd_ump_endpoint_info_t,
3893    ) -> ::core::ffi::c_int;
3894}
3895unsafe extern "C" {
3896    pub fn snd_ump_endpoint_info_get_device(
3897        info: *const snd_ump_endpoint_info_t,
3898    ) -> ::core::ffi::c_int;
3899}
3900unsafe extern "C" {
3901    pub fn snd_ump_endpoint_info_get_flags(
3902        info: *const snd_ump_endpoint_info_t,
3903    ) -> ::core::ffi::c_uint;
3904}
3905unsafe extern "C" {
3906    pub fn snd_ump_endpoint_info_get_protocol_caps(
3907        info: *const snd_ump_endpoint_info_t,
3908    ) -> ::core::ffi::c_uint;
3909}
3910unsafe extern "C" {
3911    pub fn snd_ump_endpoint_info_get_protocol(
3912        info: *const snd_ump_endpoint_info_t,
3913    ) -> ::core::ffi::c_uint;
3914}
3915unsafe extern "C" {
3916    pub fn snd_ump_endpoint_info_get_num_blocks(
3917        info: *const snd_ump_endpoint_info_t,
3918    ) -> ::core::ffi::c_uint;
3919}
3920unsafe extern "C" {
3921    pub fn snd_ump_endpoint_info_get_version(
3922        info: *const snd_ump_endpoint_info_t,
3923    ) -> ::core::ffi::c_uint;
3924}
3925unsafe extern "C" {
3926    pub fn snd_ump_endpoint_info_get_manufacturer_id(
3927        info: *const snd_ump_endpoint_info_t,
3928    ) -> ::core::ffi::c_uint;
3929}
3930unsafe extern "C" {
3931    pub fn snd_ump_endpoint_info_get_family_id(
3932        info: *const snd_ump_endpoint_info_t,
3933    ) -> ::core::ffi::c_uint;
3934}
3935unsafe extern "C" {
3936    pub fn snd_ump_endpoint_info_get_model_id(
3937        info: *const snd_ump_endpoint_info_t,
3938    ) -> ::core::ffi::c_uint;
3939}
3940unsafe extern "C" {
3941    pub fn snd_ump_endpoint_info_get_sw_revision(
3942        info: *const snd_ump_endpoint_info_t,
3943    ) -> *const ::core::ffi::c_uchar;
3944}
3945unsafe extern "C" {
3946    pub fn snd_ump_endpoint_info_get_name(
3947        info: *const snd_ump_endpoint_info_t,
3948    ) -> *const ::core::ffi::c_char;
3949}
3950unsafe extern "C" {
3951    pub fn snd_ump_endpoint_info_get_product_id(
3952        info: *const snd_ump_endpoint_info_t,
3953    ) -> *const ::core::ffi::c_char;
3954}
3955unsafe extern "C" {
3956    pub fn snd_ump_endpoint_info(
3957        ump: *mut snd_ump_t,
3958        info: *mut snd_ump_endpoint_info_t,
3959    ) -> ::core::ffi::c_int;
3960}
3961unsafe extern "C" {
3962    pub fn snd_ump_endpoint_info_set_card(
3963        info: *mut snd_ump_endpoint_info_t,
3964        card: ::core::ffi::c_uint,
3965    );
3966}
3967unsafe extern "C" {
3968    pub fn snd_ump_endpoint_info_set_device(
3969        info: *mut snd_ump_endpoint_info_t,
3970        device: ::core::ffi::c_uint,
3971    );
3972}
3973unsafe extern "C" {
3974    pub fn snd_ump_endpoint_info_set_flags(
3975        info: *mut snd_ump_endpoint_info_t,
3976        flags: ::core::ffi::c_uint,
3977    );
3978}
3979unsafe extern "C" {
3980    pub fn snd_ump_endpoint_info_set_protocol_caps(
3981        info: *mut snd_ump_endpoint_info_t,
3982        caps: ::core::ffi::c_uint,
3983    );
3984}
3985unsafe extern "C" {
3986    pub fn snd_ump_endpoint_info_set_protocol(
3987        info: *mut snd_ump_endpoint_info_t,
3988        protocols: ::core::ffi::c_uint,
3989    );
3990}
3991unsafe extern "C" {
3992    pub fn snd_ump_endpoint_info_set_num_blocks(
3993        info: *mut snd_ump_endpoint_info_t,
3994        num_blocks: ::core::ffi::c_uint,
3995    );
3996}
3997unsafe extern "C" {
3998    pub fn snd_ump_endpoint_info_set_version(
3999        info: *mut snd_ump_endpoint_info_t,
4000        version: ::core::ffi::c_uint,
4001    );
4002}
4003unsafe extern "C" {
4004    pub fn snd_ump_endpoint_info_set_manufacturer_id(
4005        info: *mut snd_ump_endpoint_info_t,
4006        id: ::core::ffi::c_uint,
4007    );
4008}
4009unsafe extern "C" {
4010    pub fn snd_ump_endpoint_info_set_family_id(
4011        info: *mut snd_ump_endpoint_info_t,
4012        id: ::core::ffi::c_uint,
4013    );
4014}
4015unsafe extern "C" {
4016    pub fn snd_ump_endpoint_info_set_model_id(
4017        info: *mut snd_ump_endpoint_info_t,
4018        id: ::core::ffi::c_uint,
4019    );
4020}
4021unsafe extern "C" {
4022    pub fn snd_ump_endpoint_info_set_sw_revision(
4023        info: *mut snd_ump_endpoint_info_t,
4024        id: *const ::core::ffi::c_uchar,
4025    );
4026}
4027unsafe extern "C" {
4028    pub fn snd_ump_endpoint_info_set_name(
4029        info: *mut snd_ump_endpoint_info_t,
4030        name: *const ::core::ffi::c_char,
4031    );
4032}
4033unsafe extern "C" {
4034    pub fn snd_ump_endpoint_info_set_product_id(
4035        info: *mut snd_ump_endpoint_info_t,
4036        id: *const ::core::ffi::c_char,
4037    );
4038}
4039pub const SND_UMP_BLOCK_UI_HINT_UNKNOWN: _snd_ump_block_ui_hint = 0;
4040pub const SND_UMP_BLOCK_UI_HINT_RECEIVER: _snd_ump_block_ui_hint = 1;
4041pub const SND_UMP_BLOCK_UI_HINT_SENDER: _snd_ump_block_ui_hint = 2;
4042pub const SND_UMP_BLOCK_UI_HINT_BOTH: _snd_ump_block_ui_hint = 3;
4043pub type _snd_ump_block_ui_hint = ::core::ffi::c_uint;
4044unsafe extern "C" {
4045    pub fn snd_ump_block_info_sizeof() -> usize;
4046}
4047unsafe extern "C" {
4048    pub fn snd_ump_block_info_malloc(info: *mut *mut snd_ump_block_info_t) -> ::core::ffi::c_int;
4049}
4050unsafe extern "C" {
4051    pub fn snd_ump_block_info_free(info: *mut snd_ump_block_info_t);
4052}
4053unsafe extern "C" {
4054    pub fn snd_ump_block_info_clear(info: *mut snd_ump_block_info_t);
4055}
4056unsafe extern "C" {
4057    pub fn snd_ump_block_info_copy(
4058        dst: *mut snd_ump_block_info_t,
4059        src: *const snd_ump_block_info_t,
4060    );
4061}
4062unsafe extern "C" {
4063    pub fn snd_ump_block_info_get_card(info: *const snd_ump_block_info_t) -> ::core::ffi::c_int;
4064}
4065unsafe extern "C" {
4066    pub fn snd_ump_block_info_get_device(info: *const snd_ump_block_info_t) -> ::core::ffi::c_int;
4067}
4068unsafe extern "C" {
4069    pub fn snd_ump_block_info_get_block_id(
4070        info: *const snd_ump_block_info_t,
4071    ) -> ::core::ffi::c_uint;
4072}
4073unsafe extern "C" {
4074    pub fn snd_ump_block_info_get_active(info: *const snd_ump_block_info_t) -> ::core::ffi::c_uint;
4075}
4076unsafe extern "C" {
4077    pub fn snd_ump_block_info_get_flags(info: *const snd_ump_block_info_t) -> ::core::ffi::c_uint;
4078}
4079unsafe extern "C" {
4080    pub fn snd_ump_block_info_get_direction(
4081        info: *const snd_ump_block_info_t,
4082    ) -> ::core::ffi::c_uint;
4083}
4084unsafe extern "C" {
4085    pub fn snd_ump_block_info_get_first_group(
4086        info: *const snd_ump_block_info_t,
4087    ) -> ::core::ffi::c_uint;
4088}
4089unsafe extern "C" {
4090    pub fn snd_ump_block_info_get_num_groups(
4091        info: *const snd_ump_block_info_t,
4092    ) -> ::core::ffi::c_uint;
4093}
4094unsafe extern "C" {
4095    pub fn snd_ump_block_info_get_midi_ci_version(
4096        info: *const snd_ump_block_info_t,
4097    ) -> ::core::ffi::c_uint;
4098}
4099unsafe extern "C" {
4100    pub fn snd_ump_block_info_get_sysex8_streams(
4101        info: *const snd_ump_block_info_t,
4102    ) -> ::core::ffi::c_uint;
4103}
4104unsafe extern "C" {
4105    pub fn snd_ump_block_info_get_ui_hint(info: *const snd_ump_block_info_t)
4106    -> ::core::ffi::c_uint;
4107}
4108unsafe extern "C" {
4109    pub fn snd_ump_block_info_get_name(
4110        info: *const snd_ump_block_info_t,
4111    ) -> *const ::core::ffi::c_char;
4112}
4113unsafe extern "C" {
4114    pub fn snd_ump_block_info(
4115        ump: *mut snd_ump_t,
4116        info: *mut snd_ump_block_info_t,
4117    ) -> ::core::ffi::c_int;
4118}
4119unsafe extern "C" {
4120    pub fn snd_ump_block_info_set_card(info: *mut snd_ump_block_info_t, card: ::core::ffi::c_uint);
4121}
4122unsafe extern "C" {
4123    pub fn snd_ump_block_info_set_device(
4124        info: *mut snd_ump_block_info_t,
4125        device: ::core::ffi::c_uint,
4126    );
4127}
4128unsafe extern "C" {
4129    pub fn snd_ump_block_info_set_block_id(
4130        info: *mut snd_ump_block_info_t,
4131        id: ::core::ffi::c_uint,
4132    );
4133}
4134unsafe extern "C" {
4135    pub fn snd_ump_block_info_set_active(
4136        info: *mut snd_ump_block_info_t,
4137        active: ::core::ffi::c_uint,
4138    );
4139}
4140unsafe extern "C" {
4141    pub fn snd_ump_block_info_set_flags(
4142        info: *mut snd_ump_block_info_t,
4143        flags: ::core::ffi::c_uint,
4144    );
4145}
4146unsafe extern "C" {
4147    pub fn snd_ump_block_info_set_direction(
4148        info: *mut snd_ump_block_info_t,
4149        direction: ::core::ffi::c_uint,
4150    );
4151}
4152unsafe extern "C" {
4153    pub fn snd_ump_block_info_set_first_group(
4154        info: *mut snd_ump_block_info_t,
4155        first_group: ::core::ffi::c_uint,
4156    );
4157}
4158unsafe extern "C" {
4159    pub fn snd_ump_block_info_set_num_groups(
4160        info: *mut snd_ump_block_info_t,
4161        num_groups: ::core::ffi::c_uint,
4162    );
4163}
4164unsafe extern "C" {
4165    pub fn snd_ump_block_info_set_midi_ci_version(
4166        info: *mut snd_ump_block_info_t,
4167        version: ::core::ffi::c_uint,
4168    );
4169}
4170unsafe extern "C" {
4171    pub fn snd_ump_block_info_set_sysex8_streams(
4172        info: *mut snd_ump_block_info_t,
4173        streams: ::core::ffi::c_uint,
4174    );
4175}
4176unsafe extern "C" {
4177    pub fn snd_ump_block_info_set_ui_hint(
4178        info: *mut snd_ump_block_info_t,
4179        hint: ::core::ffi::c_uint,
4180    );
4181}
4182unsafe extern "C" {
4183    pub fn snd_ump_block_info_set_name(
4184        info: *mut snd_ump_block_info_t,
4185        name: *const ::core::ffi::c_char,
4186    );
4187}
4188#[repr(C)]
4189#[derive(Debug, Copy, Clone)]
4190pub struct _snd_timer_id {
4191    _unused: [u8; 0],
4192}
4193pub type snd_timer_id_t = _snd_timer_id;
4194#[repr(C)]
4195#[derive(Debug, Copy, Clone)]
4196pub struct _snd_timer_ginfo {
4197    _unused: [u8; 0],
4198}
4199pub type snd_timer_ginfo_t = _snd_timer_ginfo;
4200#[repr(C)]
4201#[derive(Debug, Copy, Clone)]
4202pub struct _snd_timer_gparams {
4203    _unused: [u8; 0],
4204}
4205pub type snd_timer_gparams_t = _snd_timer_gparams;
4206#[repr(C)]
4207#[derive(Debug, Copy, Clone)]
4208pub struct _snd_timer_gstatus {
4209    _unused: [u8; 0],
4210}
4211pub type snd_timer_gstatus_t = _snd_timer_gstatus;
4212#[repr(C)]
4213#[derive(Debug, Copy, Clone)]
4214pub struct _snd_timer_info {
4215    _unused: [u8; 0],
4216}
4217pub type snd_timer_info_t = _snd_timer_info;
4218#[repr(C)]
4219#[derive(Debug, Copy, Clone)]
4220pub struct _snd_timer_params {
4221    _unused: [u8; 0],
4222}
4223pub type snd_timer_params_t = _snd_timer_params;
4224#[repr(C)]
4225#[derive(Debug, Copy, Clone)]
4226pub struct _snd_timer_status {
4227    _unused: [u8; 0],
4228}
4229pub type snd_timer_status_t = _snd_timer_status;
4230pub const SND_TIMER_CLASS_NONE: _snd_timer_class = -1;
4231pub const SND_TIMER_CLASS_SLAVE: _snd_timer_class = 0;
4232pub const SND_TIMER_CLASS_GLOBAL: _snd_timer_class = 1;
4233pub const SND_TIMER_CLASS_CARD: _snd_timer_class = 2;
4234pub const SND_TIMER_CLASS_PCM: _snd_timer_class = 3;
4235pub const SND_TIMER_CLASS_LAST: _snd_timer_class = 3;
4236pub type _snd_timer_class = ::core::ffi::c_int;
4237pub use self::_snd_timer_class as snd_timer_class_t;
4238pub const SND_TIMER_SCLASS_NONE: _snd_timer_slave_class = 0;
4239pub const SND_TIMER_SCLASS_APPLICATION: _snd_timer_slave_class = 1;
4240pub const SND_TIMER_SCLASS_SEQUENCER: _snd_timer_slave_class = 2;
4241pub const SND_TIMER_SCLASS_OSS_SEQUENCER: _snd_timer_slave_class = 3;
4242pub const SND_TIMER_SCLASS_LAST: _snd_timer_slave_class = 3;
4243pub type _snd_timer_slave_class = ::core::ffi::c_uint;
4244pub use self::_snd_timer_slave_class as snd_timer_slave_class_t;
4245pub const SND_TIMER_EVENT_RESOLUTION: _snd_timer_event = 0;
4246pub const SND_TIMER_EVENT_TICK: _snd_timer_event = 1;
4247pub const SND_TIMER_EVENT_START: _snd_timer_event = 2;
4248pub const SND_TIMER_EVENT_STOP: _snd_timer_event = 3;
4249pub const SND_TIMER_EVENT_CONTINUE: _snd_timer_event = 4;
4250pub const SND_TIMER_EVENT_PAUSE: _snd_timer_event = 5;
4251pub const SND_TIMER_EVENT_EARLY: _snd_timer_event = 6;
4252pub const SND_TIMER_EVENT_SUSPEND: _snd_timer_event = 7;
4253pub const SND_TIMER_EVENT_RESUME: _snd_timer_event = 8;
4254pub const SND_TIMER_EVENT_MSTART: _snd_timer_event = 12;
4255pub const SND_TIMER_EVENT_MSTOP: _snd_timer_event = 13;
4256pub const SND_TIMER_EVENT_MCONTINUE: _snd_timer_event = 14;
4257pub const SND_TIMER_EVENT_MPAUSE: _snd_timer_event = 15;
4258pub const SND_TIMER_EVENT_MSUSPEND: _snd_timer_event = 17;
4259pub const SND_TIMER_EVENT_MRESUME: _snd_timer_event = 18;
4260pub type _snd_timer_event = ::core::ffi::c_uint;
4261pub use self::_snd_timer_event as snd_timer_event_t;
4262#[repr(C)]
4263#[derive(Debug, Copy, Clone)]
4264pub struct _snd_timer_read {
4265    pub resolution: ::core::ffi::c_uint,
4266    pub ticks: ::core::ffi::c_uint,
4267}
4268pub type snd_timer_read_t = _snd_timer_read;
4269#[repr(C)]
4270pub struct _snd_timer_tread {
4271    pub event: snd_timer_event_t,
4272    pub tstamp: snd_htimestamp_t,
4273    pub val: ::core::ffi::c_uint,
4274}
4275pub type snd_timer_tread_t = _snd_timer_tread;
4276pub const SND_TIMER_TYPE_HW: _snd_timer_type = 0;
4277pub const SND_TIMER_TYPE_SHM: _snd_timer_type = 1;
4278pub const SND_TIMER_TYPE_INET: _snd_timer_type = 2;
4279pub type _snd_timer_type = ::core::ffi::c_uint;
4280pub use self::_snd_timer_type as snd_timer_type_t;
4281#[repr(C)]
4282#[derive(Debug, Copy, Clone)]
4283pub struct _snd_timer_query {
4284    _unused: [u8; 0],
4285}
4286pub type snd_timer_query_t = _snd_timer_query;
4287#[repr(C)]
4288#[derive(Debug, Copy, Clone)]
4289pub struct _snd_timer {
4290    _unused: [u8; 0],
4291}
4292pub type snd_timer_t = _snd_timer;
4293unsafe extern "C" {
4294    pub fn snd_timer_query_open(
4295        handle: *mut *mut snd_timer_query_t,
4296        name: *const ::core::ffi::c_char,
4297        mode: ::core::ffi::c_int,
4298    ) -> ::core::ffi::c_int;
4299}
4300unsafe extern "C" {
4301    pub fn snd_timer_query_open_lconf(
4302        handle: *mut *mut snd_timer_query_t,
4303        name: *const ::core::ffi::c_char,
4304        mode: ::core::ffi::c_int,
4305        lconf: *mut snd_config_t,
4306    ) -> ::core::ffi::c_int;
4307}
4308unsafe extern "C" {
4309    pub fn snd_timer_query_close(handle: *mut snd_timer_query_t) -> ::core::ffi::c_int;
4310}
4311unsafe extern "C" {
4312    pub fn snd_timer_query_next_device(
4313        handle: *mut snd_timer_query_t,
4314        tid: *mut snd_timer_id_t,
4315    ) -> ::core::ffi::c_int;
4316}
4317unsafe extern "C" {
4318    pub fn snd_timer_query_info(
4319        handle: *mut snd_timer_query_t,
4320        info: *mut snd_timer_ginfo_t,
4321    ) -> ::core::ffi::c_int;
4322}
4323unsafe extern "C" {
4324    pub fn snd_timer_query_params(
4325        handle: *mut snd_timer_query_t,
4326        params: *mut snd_timer_gparams_t,
4327    ) -> ::core::ffi::c_int;
4328}
4329unsafe extern "C" {
4330    pub fn snd_timer_query_status(
4331        handle: *mut snd_timer_query_t,
4332        status: *mut snd_timer_gstatus_t,
4333    ) -> ::core::ffi::c_int;
4334}
4335unsafe extern "C" {
4336    pub fn snd_timer_open(
4337        handle: *mut *mut snd_timer_t,
4338        name: *const ::core::ffi::c_char,
4339        mode: ::core::ffi::c_int,
4340    ) -> ::core::ffi::c_int;
4341}
4342unsafe extern "C" {
4343    pub fn snd_timer_open_lconf(
4344        handle: *mut *mut snd_timer_t,
4345        name: *const ::core::ffi::c_char,
4346        mode: ::core::ffi::c_int,
4347        lconf: *mut snd_config_t,
4348    ) -> ::core::ffi::c_int;
4349}
4350unsafe extern "C" {
4351    pub fn snd_timer_close(handle: *mut snd_timer_t) -> ::core::ffi::c_int;
4352}
4353unsafe extern "C" {
4354    pub fn snd_async_add_timer_handler(
4355        handler: *mut *mut snd_async_handler_t,
4356        timer: *mut snd_timer_t,
4357        callback: snd_async_callback_t,
4358        private_data: *mut ::core::ffi::c_void,
4359    ) -> ::core::ffi::c_int;
4360}
4361unsafe extern "C" {
4362    pub fn snd_async_handler_get_timer(handler: *mut snd_async_handler_t) -> *mut snd_timer_t;
4363}
4364unsafe extern "C" {
4365    pub fn snd_timer_poll_descriptors_count(handle: *mut snd_timer_t) -> ::core::ffi::c_int;
4366}
4367unsafe extern "C" {
4368    pub fn snd_timer_poll_descriptors(
4369        handle: *mut snd_timer_t,
4370        pfds: *mut pollfd,
4371        space: ::core::ffi::c_uint,
4372    ) -> ::core::ffi::c_int;
4373}
4374unsafe extern "C" {
4375    pub fn snd_timer_poll_descriptors_revents(
4376        timer: *mut snd_timer_t,
4377        pfds: *mut pollfd,
4378        nfds: ::core::ffi::c_uint,
4379        revents: *mut ::core::ffi::c_ushort,
4380    ) -> ::core::ffi::c_int;
4381}
4382unsafe extern "C" {
4383    pub fn snd_timer_info(
4384        handle: *mut snd_timer_t,
4385        timer: *mut snd_timer_info_t,
4386    ) -> ::core::ffi::c_int;
4387}
4388unsafe extern "C" {
4389    pub fn snd_timer_params(
4390        handle: *mut snd_timer_t,
4391        params: *mut snd_timer_params_t,
4392    ) -> ::core::ffi::c_int;
4393}
4394unsafe extern "C" {
4395    pub fn snd_timer_status(
4396        handle: *mut snd_timer_t,
4397        status: *mut snd_timer_status_t,
4398    ) -> ::core::ffi::c_int;
4399}
4400unsafe extern "C" {
4401    pub fn snd_timer_start(handle: *mut snd_timer_t) -> ::core::ffi::c_int;
4402}
4403unsafe extern "C" {
4404    pub fn snd_timer_stop(handle: *mut snd_timer_t) -> ::core::ffi::c_int;
4405}
4406unsafe extern "C" {
4407    pub fn snd_timer_continue(handle: *mut snd_timer_t) -> ::core::ffi::c_int;
4408}
4409unsafe extern "C" {
4410    pub fn snd_timer_read(
4411        handle: *mut snd_timer_t,
4412        buffer: *mut ::core::ffi::c_void,
4413        size: usize,
4414    ) -> isize;
4415}
4416unsafe extern "C" {
4417    pub fn snd_timer_id_sizeof() -> usize;
4418}
4419unsafe extern "C" {
4420    pub fn snd_timer_id_malloc(ptr: *mut *mut snd_timer_id_t) -> ::core::ffi::c_int;
4421}
4422unsafe extern "C" {
4423    pub fn snd_timer_id_free(obj: *mut snd_timer_id_t);
4424}
4425unsafe extern "C" {
4426    pub fn snd_timer_id_copy(dst: *mut snd_timer_id_t, src: *const snd_timer_id_t);
4427}
4428unsafe extern "C" {
4429    pub fn snd_timer_id_set_class(id: *mut snd_timer_id_t, dev_class: ::core::ffi::c_int);
4430}
4431unsafe extern "C" {
4432    pub fn snd_timer_id_get_class(id: *mut snd_timer_id_t) -> ::core::ffi::c_int;
4433}
4434unsafe extern "C" {
4435    pub fn snd_timer_id_set_sclass(id: *mut snd_timer_id_t, dev_sclass: ::core::ffi::c_int);
4436}
4437unsafe extern "C" {
4438    pub fn snd_timer_id_get_sclass(id: *mut snd_timer_id_t) -> ::core::ffi::c_int;
4439}
4440unsafe extern "C" {
4441    pub fn snd_timer_id_set_card(id: *mut snd_timer_id_t, card: ::core::ffi::c_int);
4442}
4443unsafe extern "C" {
4444    pub fn snd_timer_id_get_card(id: *mut snd_timer_id_t) -> ::core::ffi::c_int;
4445}
4446unsafe extern "C" {
4447    pub fn snd_timer_id_set_device(id: *mut snd_timer_id_t, device: ::core::ffi::c_int);
4448}
4449unsafe extern "C" {
4450    pub fn snd_timer_id_get_device(id: *mut snd_timer_id_t) -> ::core::ffi::c_int;
4451}
4452unsafe extern "C" {
4453    pub fn snd_timer_id_set_subdevice(id: *mut snd_timer_id_t, subdevice: ::core::ffi::c_int);
4454}
4455unsafe extern "C" {
4456    pub fn snd_timer_id_get_subdevice(id: *mut snd_timer_id_t) -> ::core::ffi::c_int;
4457}
4458unsafe extern "C" {
4459    pub fn snd_timer_ginfo_sizeof() -> usize;
4460}
4461unsafe extern "C" {
4462    pub fn snd_timer_ginfo_malloc(ptr: *mut *mut snd_timer_ginfo_t) -> ::core::ffi::c_int;
4463}
4464unsafe extern "C" {
4465    pub fn snd_timer_ginfo_free(obj: *mut snd_timer_ginfo_t);
4466}
4467unsafe extern "C" {
4468    pub fn snd_timer_ginfo_copy(dst: *mut snd_timer_ginfo_t, src: *const snd_timer_ginfo_t);
4469}
4470unsafe extern "C" {
4471    pub fn snd_timer_ginfo_set_tid(
4472        obj: *mut snd_timer_ginfo_t,
4473        tid: *mut snd_timer_id_t,
4474    ) -> ::core::ffi::c_int;
4475}
4476unsafe extern "C" {
4477    pub fn snd_timer_ginfo_get_tid(obj: *mut snd_timer_ginfo_t) -> *mut snd_timer_id_t;
4478}
4479unsafe extern "C" {
4480    pub fn snd_timer_ginfo_get_flags(obj: *mut snd_timer_ginfo_t) -> ::core::ffi::c_uint;
4481}
4482unsafe extern "C" {
4483    pub fn snd_timer_ginfo_get_card(obj: *mut snd_timer_ginfo_t) -> ::core::ffi::c_int;
4484}
4485unsafe extern "C" {
4486    pub fn snd_timer_ginfo_get_id(obj: *mut snd_timer_ginfo_t) -> *mut ::core::ffi::c_char;
4487}
4488unsafe extern "C" {
4489    pub fn snd_timer_ginfo_get_name(obj: *mut snd_timer_ginfo_t) -> *mut ::core::ffi::c_char;
4490}
4491unsafe extern "C" {
4492    pub fn snd_timer_ginfo_get_resolution(obj: *mut snd_timer_ginfo_t) -> ::core::ffi::c_ulong;
4493}
4494unsafe extern "C" {
4495    pub fn snd_timer_ginfo_get_resolution_min(obj: *mut snd_timer_ginfo_t) -> ::core::ffi::c_ulong;
4496}
4497unsafe extern "C" {
4498    pub fn snd_timer_ginfo_get_resolution_max(obj: *mut snd_timer_ginfo_t) -> ::core::ffi::c_ulong;
4499}
4500unsafe extern "C" {
4501    pub fn snd_timer_ginfo_get_clients(obj: *mut snd_timer_ginfo_t) -> ::core::ffi::c_uint;
4502}
4503unsafe extern "C" {
4504    pub fn snd_timer_info_sizeof() -> usize;
4505}
4506unsafe extern "C" {
4507    pub fn snd_timer_info_malloc(ptr: *mut *mut snd_timer_info_t) -> ::core::ffi::c_int;
4508}
4509unsafe extern "C" {
4510    pub fn snd_timer_info_free(obj: *mut snd_timer_info_t);
4511}
4512unsafe extern "C" {
4513    pub fn snd_timer_info_copy(dst: *mut snd_timer_info_t, src: *const snd_timer_info_t);
4514}
4515unsafe extern "C" {
4516    pub fn snd_timer_info_is_slave(info: *mut snd_timer_info_t) -> ::core::ffi::c_int;
4517}
4518unsafe extern "C" {
4519    pub fn snd_timer_info_get_card(info: *mut snd_timer_info_t) -> ::core::ffi::c_int;
4520}
4521unsafe extern "C" {
4522    pub fn snd_timer_info_get_id(info: *mut snd_timer_info_t) -> *const ::core::ffi::c_char;
4523}
4524unsafe extern "C" {
4525    pub fn snd_timer_info_get_name(info: *mut snd_timer_info_t) -> *const ::core::ffi::c_char;
4526}
4527unsafe extern "C" {
4528    pub fn snd_timer_info_get_resolution(info: *mut snd_timer_info_t) -> ::core::ffi::c_long;
4529}
4530unsafe extern "C" {
4531    pub fn snd_timer_params_sizeof() -> usize;
4532}
4533unsafe extern "C" {
4534    pub fn snd_timer_params_malloc(ptr: *mut *mut snd_timer_params_t) -> ::core::ffi::c_int;
4535}
4536unsafe extern "C" {
4537    pub fn snd_timer_params_free(obj: *mut snd_timer_params_t);
4538}
4539unsafe extern "C" {
4540    pub fn snd_timer_params_copy(dst: *mut snd_timer_params_t, src: *const snd_timer_params_t);
4541}
4542unsafe extern "C" {
4543    pub fn snd_timer_params_set_auto_start(
4544        params: *mut snd_timer_params_t,
4545        auto_start: ::core::ffi::c_int,
4546    ) -> ::core::ffi::c_int;
4547}
4548unsafe extern "C" {
4549    pub fn snd_timer_params_get_auto_start(params: *mut snd_timer_params_t) -> ::core::ffi::c_int;
4550}
4551unsafe extern "C" {
4552    pub fn snd_timer_params_set_exclusive(
4553        params: *mut snd_timer_params_t,
4554        exclusive: ::core::ffi::c_int,
4555    ) -> ::core::ffi::c_int;
4556}
4557unsafe extern "C" {
4558    pub fn snd_timer_params_get_exclusive(params: *mut snd_timer_params_t) -> ::core::ffi::c_int;
4559}
4560unsafe extern "C" {
4561    pub fn snd_timer_params_set_early_event(
4562        params: *mut snd_timer_params_t,
4563        early_event: ::core::ffi::c_int,
4564    ) -> ::core::ffi::c_int;
4565}
4566unsafe extern "C" {
4567    pub fn snd_timer_params_get_early_event(params: *mut snd_timer_params_t) -> ::core::ffi::c_int;
4568}
4569unsafe extern "C" {
4570    pub fn snd_timer_params_set_ticks(params: *mut snd_timer_params_t, ticks: ::core::ffi::c_long);
4571}
4572unsafe extern "C" {
4573    pub fn snd_timer_params_get_ticks(params: *mut snd_timer_params_t) -> ::core::ffi::c_long;
4574}
4575unsafe extern "C" {
4576    pub fn snd_timer_params_set_queue_size(
4577        params: *mut snd_timer_params_t,
4578        queue_size: ::core::ffi::c_long,
4579    );
4580}
4581unsafe extern "C" {
4582    pub fn snd_timer_params_get_queue_size(params: *mut snd_timer_params_t) -> ::core::ffi::c_long;
4583}
4584unsafe extern "C" {
4585    pub fn snd_timer_params_set_filter(
4586        params: *mut snd_timer_params_t,
4587        filter: ::core::ffi::c_uint,
4588    );
4589}
4590unsafe extern "C" {
4591    pub fn snd_timer_params_get_filter(params: *mut snd_timer_params_t) -> ::core::ffi::c_uint;
4592}
4593unsafe extern "C" {
4594    pub fn snd_timer_status_sizeof() -> usize;
4595}
4596unsafe extern "C" {
4597    pub fn snd_timer_status_malloc(ptr: *mut *mut snd_timer_status_t) -> ::core::ffi::c_int;
4598}
4599unsafe extern "C" {
4600    pub fn snd_timer_status_free(obj: *mut snd_timer_status_t);
4601}
4602unsafe extern "C" {
4603    pub fn snd_timer_status_copy(dst: *mut snd_timer_status_t, src: *const snd_timer_status_t);
4604}
4605unsafe extern "C" {
4606    pub fn snd_timer_status_get_timestamp(status: *mut snd_timer_status_t) -> snd_htimestamp_t;
4607}
4608unsafe extern "C" {
4609    pub fn snd_timer_status_get_resolution(status: *mut snd_timer_status_t) -> ::core::ffi::c_long;
4610}
4611unsafe extern "C" {
4612    pub fn snd_timer_status_get_lost(status: *mut snd_timer_status_t) -> ::core::ffi::c_long;
4613}
4614unsafe extern "C" {
4615    pub fn snd_timer_status_get_overrun(status: *mut snd_timer_status_t) -> ::core::ffi::c_long;
4616}
4617unsafe extern "C" {
4618    pub fn snd_timer_status_get_queue(status: *mut snd_timer_status_t) -> ::core::ffi::c_long;
4619}
4620unsafe extern "C" {
4621    pub fn snd_timer_info_get_ticks(info: *mut snd_timer_info_t) -> ::core::ffi::c_long;
4622}
4623#[repr(C)]
4624#[derive(Debug, Copy, Clone)]
4625pub struct _snd_hwdep_info {
4626    _unused: [u8; 0],
4627}
4628pub type snd_hwdep_info_t = _snd_hwdep_info;
4629#[repr(C)]
4630#[derive(Debug, Copy, Clone)]
4631pub struct _snd_hwdep_dsp_status {
4632    _unused: [u8; 0],
4633}
4634pub type snd_hwdep_dsp_status_t = _snd_hwdep_dsp_status;
4635#[repr(C)]
4636#[derive(Debug, Copy, Clone)]
4637pub struct _snd_hwdep_dsp_image {
4638    _unused: [u8; 0],
4639}
4640pub type snd_hwdep_dsp_image_t = _snd_hwdep_dsp_image;
4641pub const SND_HWDEP_IFACE_OPL2: _snd_hwdep_iface = 0;
4642pub const SND_HWDEP_IFACE_OPL3: _snd_hwdep_iface = 1;
4643pub const SND_HWDEP_IFACE_OPL4: _snd_hwdep_iface = 2;
4644pub const SND_HWDEP_IFACE_SB16CSP: _snd_hwdep_iface = 3;
4645pub const SND_HWDEP_IFACE_EMU10K1: _snd_hwdep_iface = 4;
4646pub const SND_HWDEP_IFACE_YSS225: _snd_hwdep_iface = 5;
4647pub const SND_HWDEP_IFACE_ICS2115: _snd_hwdep_iface = 6;
4648pub const SND_HWDEP_IFACE_SSCAPE: _snd_hwdep_iface = 7;
4649pub const SND_HWDEP_IFACE_VX: _snd_hwdep_iface = 8;
4650pub const SND_HWDEP_IFACE_MIXART: _snd_hwdep_iface = 9;
4651pub const SND_HWDEP_IFACE_USX2Y: _snd_hwdep_iface = 10;
4652pub const SND_HWDEP_IFACE_EMUX_WAVETABLE: _snd_hwdep_iface = 11;
4653pub const SND_HWDEP_IFACE_BLUETOOTH: _snd_hwdep_iface = 12;
4654pub const SND_HWDEP_IFACE_USX2Y_PCM: _snd_hwdep_iface = 13;
4655pub const SND_HWDEP_IFACE_PCXHR: _snd_hwdep_iface = 14;
4656pub const SND_HWDEP_IFACE_SB_RC: _snd_hwdep_iface = 15;
4657pub const SND_HWDEP_IFACE_HDA: _snd_hwdep_iface = 16;
4658pub const SND_HWDEP_IFACE_USB_STREAM: _snd_hwdep_iface = 17;
4659pub const SND_HWDEP_IFACE_FW_DICE: _snd_hwdep_iface = 18;
4660pub const SND_HWDEP_IFACE_FW_FIREWORKS: _snd_hwdep_iface = 19;
4661pub const SND_HWDEP_IFACE_FW_BEBOB: _snd_hwdep_iface = 20;
4662pub const SND_HWDEP_IFACE_FW_OXFW: _snd_hwdep_iface = 21;
4663pub const SND_HWDEP_IFACE_FW_DIGI00X: _snd_hwdep_iface = 22;
4664pub const SND_HWDEP_IFACE_FW_TASCAM: _snd_hwdep_iface = 23;
4665pub const SND_HWDEP_IFACE_LINE6: _snd_hwdep_iface = 24;
4666pub const SND_HWDEP_IFACE_FW_MOTU: _snd_hwdep_iface = 25;
4667pub const SND_HWDEP_IFACE_FW_FIREFACE: _snd_hwdep_iface = 26;
4668pub const SND_HWDEP_IFACE_LAST: _snd_hwdep_iface = 26;
4669pub type _snd_hwdep_iface = ::core::ffi::c_uint;
4670pub use self::_snd_hwdep_iface as snd_hwdep_iface_t;
4671pub const SND_HWDEP_TYPE_HW: _snd_hwdep_type = 0;
4672pub const SND_HWDEP_TYPE_SHM: _snd_hwdep_type = 1;
4673pub const SND_HWDEP_TYPE_INET: _snd_hwdep_type = 2;
4674pub type _snd_hwdep_type = ::core::ffi::c_uint;
4675pub use self::_snd_hwdep_type as snd_hwdep_type_t;
4676#[repr(C)]
4677#[derive(Debug, Copy, Clone)]
4678pub struct _snd_hwdep {
4679    _unused: [u8; 0],
4680}
4681pub type snd_hwdep_t = _snd_hwdep;
4682unsafe extern "C" {
4683    pub fn snd_hwdep_open(
4684        hwdep: *mut *mut snd_hwdep_t,
4685        name: *const ::core::ffi::c_char,
4686        mode: ::core::ffi::c_int,
4687    ) -> ::core::ffi::c_int;
4688}
4689unsafe extern "C" {
4690    pub fn snd_hwdep_close(hwdep: *mut snd_hwdep_t) -> ::core::ffi::c_int;
4691}
4692unsafe extern "C" {
4693    pub fn snd_hwdep_poll_descriptors(
4694        hwdep: *mut snd_hwdep_t,
4695        pfds: *mut pollfd,
4696        space: ::core::ffi::c_uint,
4697    ) -> ::core::ffi::c_int;
4698}
4699unsafe extern "C" {
4700    pub fn snd_hwdep_poll_descriptors_count(hwdep: *mut snd_hwdep_t) -> ::core::ffi::c_int;
4701}
4702unsafe extern "C" {
4703    pub fn snd_hwdep_poll_descriptors_revents(
4704        hwdep: *mut snd_hwdep_t,
4705        pfds: *mut pollfd,
4706        nfds: ::core::ffi::c_uint,
4707        revents: *mut ::core::ffi::c_ushort,
4708    ) -> ::core::ffi::c_int;
4709}
4710unsafe extern "C" {
4711    pub fn snd_hwdep_nonblock(
4712        hwdep: *mut snd_hwdep_t,
4713        nonblock: ::core::ffi::c_int,
4714    ) -> ::core::ffi::c_int;
4715}
4716unsafe extern "C" {
4717    pub fn snd_hwdep_info(
4718        hwdep: *mut snd_hwdep_t,
4719        info: *mut snd_hwdep_info_t,
4720    ) -> ::core::ffi::c_int;
4721}
4722unsafe extern "C" {
4723    pub fn snd_hwdep_dsp_status(
4724        hwdep: *mut snd_hwdep_t,
4725        status: *mut snd_hwdep_dsp_status_t,
4726    ) -> ::core::ffi::c_int;
4727}
4728unsafe extern "C" {
4729    pub fn snd_hwdep_dsp_load(
4730        hwdep: *mut snd_hwdep_t,
4731        block: *mut snd_hwdep_dsp_image_t,
4732    ) -> ::core::ffi::c_int;
4733}
4734unsafe extern "C" {
4735    pub fn snd_hwdep_ioctl(
4736        hwdep: *mut snd_hwdep_t,
4737        request: ::core::ffi::c_uint,
4738        arg: *mut ::core::ffi::c_void,
4739    ) -> ::core::ffi::c_int;
4740}
4741unsafe extern "C" {
4742    pub fn snd_hwdep_write(
4743        hwdep: *mut snd_hwdep_t,
4744        buffer: *const ::core::ffi::c_void,
4745        size: usize,
4746    ) -> isize;
4747}
4748unsafe extern "C" {
4749    pub fn snd_hwdep_read(
4750        hwdep: *mut snd_hwdep_t,
4751        buffer: *mut ::core::ffi::c_void,
4752        size: usize,
4753    ) -> isize;
4754}
4755unsafe extern "C" {
4756    pub fn snd_hwdep_info_sizeof() -> usize;
4757}
4758unsafe extern "C" {
4759    pub fn snd_hwdep_info_malloc(ptr: *mut *mut snd_hwdep_info_t) -> ::core::ffi::c_int;
4760}
4761unsafe extern "C" {
4762    pub fn snd_hwdep_info_free(obj: *mut snd_hwdep_info_t);
4763}
4764unsafe extern "C" {
4765    pub fn snd_hwdep_info_copy(dst: *mut snd_hwdep_info_t, src: *const snd_hwdep_info_t);
4766}
4767unsafe extern "C" {
4768    pub fn snd_hwdep_info_get_device(obj: *const snd_hwdep_info_t) -> ::core::ffi::c_uint;
4769}
4770unsafe extern "C" {
4771    pub fn snd_hwdep_info_get_card(obj: *const snd_hwdep_info_t) -> ::core::ffi::c_int;
4772}
4773unsafe extern "C" {
4774    pub fn snd_hwdep_info_get_id(obj: *const snd_hwdep_info_t) -> *const ::core::ffi::c_char;
4775}
4776unsafe extern "C" {
4777    pub fn snd_hwdep_info_get_name(obj: *const snd_hwdep_info_t) -> *const ::core::ffi::c_char;
4778}
4779unsafe extern "C" {
4780    pub fn snd_hwdep_info_get_iface(obj: *const snd_hwdep_info_t) -> snd_hwdep_iface_t;
4781}
4782unsafe extern "C" {
4783    pub fn snd_hwdep_info_set_device(obj: *mut snd_hwdep_info_t, val: ::core::ffi::c_uint);
4784}
4785unsafe extern "C" {
4786    pub fn snd_hwdep_dsp_status_sizeof() -> usize;
4787}
4788unsafe extern "C" {
4789    pub fn snd_hwdep_dsp_status_malloc(ptr: *mut *mut snd_hwdep_dsp_status_t)
4790    -> ::core::ffi::c_int;
4791}
4792unsafe extern "C" {
4793    pub fn snd_hwdep_dsp_status_free(obj: *mut snd_hwdep_dsp_status_t);
4794}
4795unsafe extern "C" {
4796    pub fn snd_hwdep_dsp_status_copy(
4797        dst: *mut snd_hwdep_dsp_status_t,
4798        src: *const snd_hwdep_dsp_status_t,
4799    );
4800}
4801unsafe extern "C" {
4802    pub fn snd_hwdep_dsp_status_get_version(
4803        obj: *const snd_hwdep_dsp_status_t,
4804    ) -> ::core::ffi::c_uint;
4805}
4806unsafe extern "C" {
4807    pub fn snd_hwdep_dsp_status_get_id(
4808        obj: *const snd_hwdep_dsp_status_t,
4809    ) -> *const ::core::ffi::c_char;
4810}
4811unsafe extern "C" {
4812    pub fn snd_hwdep_dsp_status_get_num_dsps(
4813        obj: *const snd_hwdep_dsp_status_t,
4814    ) -> ::core::ffi::c_uint;
4815}
4816unsafe extern "C" {
4817    pub fn snd_hwdep_dsp_status_get_dsp_loaded(
4818        obj: *const snd_hwdep_dsp_status_t,
4819    ) -> ::core::ffi::c_uint;
4820}
4821unsafe extern "C" {
4822    pub fn snd_hwdep_dsp_status_get_chip_ready(
4823        obj: *const snd_hwdep_dsp_status_t,
4824    ) -> ::core::ffi::c_uint;
4825}
4826unsafe extern "C" {
4827    pub fn snd_hwdep_dsp_image_sizeof() -> usize;
4828}
4829unsafe extern "C" {
4830    pub fn snd_hwdep_dsp_image_malloc(ptr: *mut *mut snd_hwdep_dsp_image_t) -> ::core::ffi::c_int;
4831}
4832unsafe extern "C" {
4833    pub fn snd_hwdep_dsp_image_free(obj: *mut snd_hwdep_dsp_image_t);
4834}
4835unsafe extern "C" {
4836    pub fn snd_hwdep_dsp_image_copy(
4837        dst: *mut snd_hwdep_dsp_image_t,
4838        src: *const snd_hwdep_dsp_image_t,
4839    );
4840}
4841unsafe extern "C" {
4842    pub fn snd_hwdep_dsp_image_get_index(obj: *const snd_hwdep_dsp_image_t) -> ::core::ffi::c_uint;
4843}
4844unsafe extern "C" {
4845    pub fn snd_hwdep_dsp_image_get_name(
4846        obj: *const snd_hwdep_dsp_image_t,
4847    ) -> *const ::core::ffi::c_char;
4848}
4849unsafe extern "C" {
4850    pub fn snd_hwdep_dsp_image_get_image(
4851        obj: *const snd_hwdep_dsp_image_t,
4852    ) -> *const ::core::ffi::c_void;
4853}
4854unsafe extern "C" {
4855    pub fn snd_hwdep_dsp_image_get_length(obj: *const snd_hwdep_dsp_image_t) -> usize;
4856}
4857unsafe extern "C" {
4858    pub fn snd_hwdep_dsp_image_set_index(
4859        obj: *mut snd_hwdep_dsp_image_t,
4860        _index: ::core::ffi::c_uint,
4861    );
4862}
4863unsafe extern "C" {
4864    pub fn snd_hwdep_dsp_image_set_name(
4865        obj: *mut snd_hwdep_dsp_image_t,
4866        name: *const ::core::ffi::c_char,
4867    );
4868}
4869unsafe extern "C" {
4870    pub fn snd_hwdep_dsp_image_set_image(
4871        obj: *mut snd_hwdep_dsp_image_t,
4872        buffer: *mut ::core::ffi::c_void,
4873    );
4874}
4875unsafe extern "C" {
4876    pub fn snd_hwdep_dsp_image_set_length(obj: *mut snd_hwdep_dsp_image_t, length: usize);
4877}
4878#[repr(C)]
4879#[derive(Debug, Copy, Clone)]
4880pub struct snd_aes_iec958 {
4881    pub status: [::core::ffi::c_uchar; 24usize],
4882    pub subcode: [::core::ffi::c_uchar; 147usize],
4883    pub pad: ::core::ffi::c_uchar,
4884    pub dig_subframe: [::core::ffi::c_uchar; 4usize],
4885}
4886pub type snd_aes_iec958_t = snd_aes_iec958;
4887#[repr(C)]
4888#[derive(Debug, Copy, Clone)]
4889pub struct _snd_ctl_card_info {
4890    _unused: [u8; 0],
4891}
4892pub type snd_ctl_card_info_t = _snd_ctl_card_info;
4893#[repr(C)]
4894#[derive(Debug, Copy, Clone)]
4895pub struct _snd_ctl_elem_id {
4896    _unused: [u8; 0],
4897}
4898pub type snd_ctl_elem_id_t = _snd_ctl_elem_id;
4899#[repr(C)]
4900#[derive(Debug, Copy, Clone)]
4901pub struct _snd_ctl_elem_list {
4902    _unused: [u8; 0],
4903}
4904pub type snd_ctl_elem_list_t = _snd_ctl_elem_list;
4905#[repr(C)]
4906#[derive(Debug, Copy, Clone)]
4907pub struct _snd_ctl_elem_info {
4908    _unused: [u8; 0],
4909}
4910pub type snd_ctl_elem_info_t = _snd_ctl_elem_info;
4911#[repr(C)]
4912#[derive(Debug, Copy, Clone)]
4913pub struct _snd_ctl_elem_value {
4914    _unused: [u8; 0],
4915}
4916pub type snd_ctl_elem_value_t = _snd_ctl_elem_value;
4917#[repr(C)]
4918#[derive(Debug, Copy, Clone)]
4919pub struct _snd_ctl_event {
4920    _unused: [u8; 0],
4921}
4922pub type snd_ctl_event_t = _snd_ctl_event;
4923pub const SND_CTL_ELEM_TYPE_NONE: _snd_ctl_elem_type = 0;
4924pub const SND_CTL_ELEM_TYPE_BOOLEAN: _snd_ctl_elem_type = 1;
4925pub const SND_CTL_ELEM_TYPE_INTEGER: _snd_ctl_elem_type = 2;
4926pub const SND_CTL_ELEM_TYPE_ENUMERATED: _snd_ctl_elem_type = 3;
4927pub const SND_CTL_ELEM_TYPE_BYTES: _snd_ctl_elem_type = 4;
4928pub const SND_CTL_ELEM_TYPE_IEC958: _snd_ctl_elem_type = 5;
4929pub const SND_CTL_ELEM_TYPE_INTEGER64: _snd_ctl_elem_type = 6;
4930pub const SND_CTL_ELEM_TYPE_LAST: _snd_ctl_elem_type = 6;
4931pub type _snd_ctl_elem_type = ::core::ffi::c_uint;
4932pub use self::_snd_ctl_elem_type as snd_ctl_elem_type_t;
4933pub const SND_CTL_ELEM_IFACE_CARD: _snd_ctl_elem_iface = 0;
4934pub const SND_CTL_ELEM_IFACE_HWDEP: _snd_ctl_elem_iface = 1;
4935pub const SND_CTL_ELEM_IFACE_MIXER: _snd_ctl_elem_iface = 2;
4936pub const SND_CTL_ELEM_IFACE_PCM: _snd_ctl_elem_iface = 3;
4937pub const SND_CTL_ELEM_IFACE_RAWMIDI: _snd_ctl_elem_iface = 4;
4938pub const SND_CTL_ELEM_IFACE_TIMER: _snd_ctl_elem_iface = 5;
4939pub const SND_CTL_ELEM_IFACE_SEQUENCER: _snd_ctl_elem_iface = 6;
4940pub const SND_CTL_ELEM_IFACE_LAST: _snd_ctl_elem_iface = 6;
4941pub type _snd_ctl_elem_iface = ::core::ffi::c_uint;
4942pub use self::_snd_ctl_elem_iface as snd_ctl_elem_iface_t;
4943pub const SND_CTL_EVENT_ELEM: _snd_ctl_event_type = 0;
4944pub const SND_CTL_EVENT_LAST: _snd_ctl_event_type = 0;
4945pub type _snd_ctl_event_type = ::core::ffi::c_uint;
4946pub use self::_snd_ctl_event_type as snd_ctl_event_type_t;
4947pub const SND_CTL_TYPE_HW: _snd_ctl_type = 0;
4948pub const SND_CTL_TYPE_SHM: _snd_ctl_type = 1;
4949pub const SND_CTL_TYPE_INET: _snd_ctl_type = 2;
4950pub const SND_CTL_TYPE_EXT: _snd_ctl_type = 3;
4951pub const SND_CTL_TYPE_REMAP: _snd_ctl_type = 4;
4952pub type _snd_ctl_type = ::core::ffi::c_uint;
4953pub use self::_snd_ctl_type as snd_ctl_type_t;
4954#[repr(C)]
4955#[derive(Debug, Copy, Clone)]
4956pub struct _snd_ctl {
4957    _unused: [u8; 0],
4958}
4959pub type snd_ctl_t = _snd_ctl;
4960#[repr(C)]
4961#[derive(Debug, Copy, Clone)]
4962pub struct _snd_sctl {
4963    _unused: [u8; 0],
4964}
4965pub type snd_sctl_t = _snd_sctl;
4966unsafe extern "C" {
4967    pub fn snd_card_load(card: ::core::ffi::c_int) -> ::core::ffi::c_int;
4968}
4969unsafe extern "C" {
4970    pub fn snd_card_next(card: *mut ::core::ffi::c_int) -> ::core::ffi::c_int;
4971}
4972unsafe extern "C" {
4973    pub fn snd_card_get_index(name: *const ::core::ffi::c_char) -> ::core::ffi::c_int;
4974}
4975unsafe extern "C" {
4976    pub fn snd_card_get_name(
4977        card: ::core::ffi::c_int,
4978        name: *mut *mut ::core::ffi::c_char,
4979    ) -> ::core::ffi::c_int;
4980}
4981unsafe extern "C" {
4982    pub fn snd_card_get_longname(
4983        card: ::core::ffi::c_int,
4984        name: *mut *mut ::core::ffi::c_char,
4985    ) -> ::core::ffi::c_int;
4986}
4987unsafe extern "C" {
4988    pub fn snd_ctl_open(
4989        ctl: *mut *mut snd_ctl_t,
4990        name: *const ::core::ffi::c_char,
4991        mode: ::core::ffi::c_int,
4992    ) -> ::core::ffi::c_int;
4993}
4994unsafe extern "C" {
4995    pub fn snd_ctl_open_lconf(
4996        ctl: *mut *mut snd_ctl_t,
4997        name: *const ::core::ffi::c_char,
4998        mode: ::core::ffi::c_int,
4999        lconf: *mut snd_config_t,
5000    ) -> ::core::ffi::c_int;
5001}
5002unsafe extern "C" {
5003    pub fn snd_ctl_open_fallback(
5004        ctl: *mut *mut snd_ctl_t,
5005        root: *mut snd_config_t,
5006        name: *const ::core::ffi::c_char,
5007        orig_name: *const ::core::ffi::c_char,
5008        mode: ::core::ffi::c_int,
5009    ) -> ::core::ffi::c_int;
5010}
5011unsafe extern "C" {
5012    pub fn snd_ctl_close(ctl: *mut snd_ctl_t) -> ::core::ffi::c_int;
5013}
5014unsafe extern "C" {
5015    pub fn snd_ctl_nonblock(
5016        ctl: *mut snd_ctl_t,
5017        nonblock: ::core::ffi::c_int,
5018    ) -> ::core::ffi::c_int;
5019}
5020unsafe extern "C" {
5021    pub fn snd_async_add_ctl_handler(
5022        handler: *mut *mut snd_async_handler_t,
5023        ctl: *mut snd_ctl_t,
5024        callback: snd_async_callback_t,
5025        private_data: *mut ::core::ffi::c_void,
5026    ) -> ::core::ffi::c_int;
5027}
5028unsafe extern "C" {
5029    pub fn snd_async_handler_get_ctl(handler: *mut snd_async_handler_t) -> *mut snd_ctl_t;
5030}
5031unsafe extern "C" {
5032    pub fn snd_ctl_poll_descriptors_count(ctl: *mut snd_ctl_t) -> ::core::ffi::c_int;
5033}
5034unsafe extern "C" {
5035    pub fn snd_ctl_poll_descriptors(
5036        ctl: *mut snd_ctl_t,
5037        pfds: *mut pollfd,
5038        space: ::core::ffi::c_uint,
5039    ) -> ::core::ffi::c_int;
5040}
5041unsafe extern "C" {
5042    pub fn snd_ctl_poll_descriptors_revents(
5043        ctl: *mut snd_ctl_t,
5044        pfds: *mut pollfd,
5045        nfds: ::core::ffi::c_uint,
5046        revents: *mut ::core::ffi::c_ushort,
5047    ) -> ::core::ffi::c_int;
5048}
5049unsafe extern "C" {
5050    pub fn snd_ctl_subscribe_events(
5051        ctl: *mut snd_ctl_t,
5052        subscribe: ::core::ffi::c_int,
5053    ) -> ::core::ffi::c_int;
5054}
5055unsafe extern "C" {
5056    pub fn snd_ctl_card_info(
5057        ctl: *mut snd_ctl_t,
5058        info: *mut snd_ctl_card_info_t,
5059    ) -> ::core::ffi::c_int;
5060}
5061unsafe extern "C" {
5062    pub fn snd_ctl_elem_list(
5063        ctl: *mut snd_ctl_t,
5064        list: *mut snd_ctl_elem_list_t,
5065    ) -> ::core::ffi::c_int;
5066}
5067unsafe extern "C" {
5068    pub fn snd_ctl_elem_info(
5069        ctl: *mut snd_ctl_t,
5070        info: *mut snd_ctl_elem_info_t,
5071    ) -> ::core::ffi::c_int;
5072}
5073unsafe extern "C" {
5074    pub fn snd_ctl_elem_read(
5075        ctl: *mut snd_ctl_t,
5076        data: *mut snd_ctl_elem_value_t,
5077    ) -> ::core::ffi::c_int;
5078}
5079unsafe extern "C" {
5080    pub fn snd_ctl_elem_write(
5081        ctl: *mut snd_ctl_t,
5082        data: *mut snd_ctl_elem_value_t,
5083    ) -> ::core::ffi::c_int;
5084}
5085unsafe extern "C" {
5086    pub fn snd_ctl_elem_lock(ctl: *mut snd_ctl_t, id: *mut snd_ctl_elem_id_t)
5087    -> ::core::ffi::c_int;
5088}
5089unsafe extern "C" {
5090    pub fn snd_ctl_elem_unlock(
5091        ctl: *mut snd_ctl_t,
5092        id: *mut snd_ctl_elem_id_t,
5093    ) -> ::core::ffi::c_int;
5094}
5095unsafe extern "C" {
5096    pub fn snd_ctl_elem_tlv_read(
5097        ctl: *mut snd_ctl_t,
5098        id: *const snd_ctl_elem_id_t,
5099        tlv: *mut ::core::ffi::c_uint,
5100        tlv_size: ::core::ffi::c_uint,
5101    ) -> ::core::ffi::c_int;
5102}
5103unsafe extern "C" {
5104    pub fn snd_ctl_elem_tlv_write(
5105        ctl: *mut snd_ctl_t,
5106        id: *const snd_ctl_elem_id_t,
5107        tlv: *const ::core::ffi::c_uint,
5108    ) -> ::core::ffi::c_int;
5109}
5110unsafe extern "C" {
5111    pub fn snd_ctl_elem_tlv_command(
5112        ctl: *mut snd_ctl_t,
5113        id: *const snd_ctl_elem_id_t,
5114        tlv: *const ::core::ffi::c_uint,
5115    ) -> ::core::ffi::c_int;
5116}
5117unsafe extern "C" {
5118    pub fn snd_ctl_hwdep_next_device(
5119        ctl: *mut snd_ctl_t,
5120        device: *mut ::core::ffi::c_int,
5121    ) -> ::core::ffi::c_int;
5122}
5123unsafe extern "C" {
5124    pub fn snd_ctl_hwdep_info(
5125        ctl: *mut snd_ctl_t,
5126        info: *mut snd_hwdep_info_t,
5127    ) -> ::core::ffi::c_int;
5128}
5129unsafe extern "C" {
5130    pub fn snd_ctl_pcm_next_device(
5131        ctl: *mut snd_ctl_t,
5132        device: *mut ::core::ffi::c_int,
5133    ) -> ::core::ffi::c_int;
5134}
5135unsafe extern "C" {
5136    pub fn snd_ctl_pcm_info(ctl: *mut snd_ctl_t, info: *mut snd_pcm_info_t) -> ::core::ffi::c_int;
5137}
5138unsafe extern "C" {
5139    pub fn snd_ctl_pcm_prefer_subdevice(
5140        ctl: *mut snd_ctl_t,
5141        subdev: ::core::ffi::c_int,
5142    ) -> ::core::ffi::c_int;
5143}
5144unsafe extern "C" {
5145    pub fn snd_ctl_rawmidi_next_device(
5146        ctl: *mut snd_ctl_t,
5147        device: *mut ::core::ffi::c_int,
5148    ) -> ::core::ffi::c_int;
5149}
5150unsafe extern "C" {
5151    pub fn snd_ctl_rawmidi_info(
5152        ctl: *mut snd_ctl_t,
5153        info: *mut snd_rawmidi_info_t,
5154    ) -> ::core::ffi::c_int;
5155}
5156unsafe extern "C" {
5157    pub fn snd_ctl_rawmidi_prefer_subdevice(
5158        ctl: *mut snd_ctl_t,
5159        subdev: ::core::ffi::c_int,
5160    ) -> ::core::ffi::c_int;
5161}
5162unsafe extern "C" {
5163    pub fn snd_ctl_ump_next_device(
5164        ctl: *mut snd_ctl_t,
5165        device: *mut ::core::ffi::c_int,
5166    ) -> ::core::ffi::c_int;
5167}
5168unsafe extern "C" {
5169    pub fn snd_ctl_ump_endpoint_info(
5170        ctl: *mut snd_ctl_t,
5171        info: *mut snd_ump_endpoint_info_t,
5172    ) -> ::core::ffi::c_int;
5173}
5174unsafe extern "C" {
5175    pub fn snd_ctl_ump_block_info(
5176        ctl: *mut snd_ctl_t,
5177        info: *mut snd_ump_block_info_t,
5178    ) -> ::core::ffi::c_int;
5179}
5180unsafe extern "C" {
5181    pub fn snd_ctl_set_power_state(
5182        ctl: *mut snd_ctl_t,
5183        state: ::core::ffi::c_uint,
5184    ) -> ::core::ffi::c_int;
5185}
5186unsafe extern "C" {
5187    pub fn snd_ctl_get_power_state(
5188        ctl: *mut snd_ctl_t,
5189        state: *mut ::core::ffi::c_uint,
5190    ) -> ::core::ffi::c_int;
5191}
5192unsafe extern "C" {
5193    pub fn snd_ctl_read(ctl: *mut snd_ctl_t, event: *mut snd_ctl_event_t) -> ::core::ffi::c_int;
5194}
5195unsafe extern "C" {
5196    pub fn snd_ctl_wait(ctl: *mut snd_ctl_t, timeout: ::core::ffi::c_int) -> ::core::ffi::c_int;
5197}
5198unsafe extern "C" {
5199    pub fn snd_ctl_name(ctl: *mut snd_ctl_t) -> *const ::core::ffi::c_char;
5200}
5201unsafe extern "C" {
5202    pub fn snd_ctl_type(ctl: *mut snd_ctl_t) -> snd_ctl_type_t;
5203}
5204unsafe extern "C" {
5205    pub fn snd_ctl_elem_type_name(type_: snd_ctl_elem_type_t) -> *const ::core::ffi::c_char;
5206}
5207unsafe extern "C" {
5208    pub fn snd_ctl_elem_iface_name(iface: snd_ctl_elem_iface_t) -> *const ::core::ffi::c_char;
5209}
5210unsafe extern "C" {
5211    pub fn snd_ctl_event_type_name(type_: snd_ctl_event_type_t) -> *const ::core::ffi::c_char;
5212}
5213unsafe extern "C" {
5214    pub fn snd_ctl_event_elem_get_mask(obj: *const snd_ctl_event_t) -> ::core::ffi::c_uint;
5215}
5216unsafe extern "C" {
5217    pub fn snd_ctl_event_elem_get_numid(obj: *const snd_ctl_event_t) -> ::core::ffi::c_uint;
5218}
5219unsafe extern "C" {
5220    pub fn snd_ctl_event_elem_get_id(obj: *const snd_ctl_event_t, ptr: *mut snd_ctl_elem_id_t);
5221}
5222unsafe extern "C" {
5223    pub fn snd_ctl_event_elem_get_interface(obj: *const snd_ctl_event_t) -> snd_ctl_elem_iface_t;
5224}
5225unsafe extern "C" {
5226    pub fn snd_ctl_event_elem_get_device(obj: *const snd_ctl_event_t) -> ::core::ffi::c_uint;
5227}
5228unsafe extern "C" {
5229    pub fn snd_ctl_event_elem_get_subdevice(obj: *const snd_ctl_event_t) -> ::core::ffi::c_uint;
5230}
5231unsafe extern "C" {
5232    pub fn snd_ctl_event_elem_get_name(obj: *const snd_ctl_event_t) -> *const ::core::ffi::c_char;
5233}
5234unsafe extern "C" {
5235    pub fn snd_ctl_event_elem_get_index(obj: *const snd_ctl_event_t) -> ::core::ffi::c_uint;
5236}
5237unsafe extern "C" {
5238    pub fn snd_ctl_elem_list_alloc_space(
5239        obj: *mut snd_ctl_elem_list_t,
5240        entries: ::core::ffi::c_uint,
5241    ) -> ::core::ffi::c_int;
5242}
5243unsafe extern "C" {
5244    pub fn snd_ctl_elem_list_free_space(obj: *mut snd_ctl_elem_list_t);
5245}
5246unsafe extern "C" {
5247    pub fn snd_ctl_ascii_elem_id_get(id: *mut snd_ctl_elem_id_t) -> *mut ::core::ffi::c_char;
5248}
5249unsafe extern "C" {
5250    pub fn snd_ctl_ascii_elem_id_parse(
5251        dst: *mut snd_ctl_elem_id_t,
5252        str_: *const ::core::ffi::c_char,
5253    ) -> ::core::ffi::c_int;
5254}
5255unsafe extern "C" {
5256    pub fn snd_ctl_ascii_value_parse(
5257        handle: *mut snd_ctl_t,
5258        dst: *mut snd_ctl_elem_value_t,
5259        info: *mut snd_ctl_elem_info_t,
5260        value: *const ::core::ffi::c_char,
5261    ) -> ::core::ffi::c_int;
5262}
5263unsafe extern "C" {
5264    pub fn snd_ctl_elem_id_sizeof() -> usize;
5265}
5266unsafe extern "C" {
5267    pub fn snd_ctl_elem_id_malloc(ptr: *mut *mut snd_ctl_elem_id_t) -> ::core::ffi::c_int;
5268}
5269unsafe extern "C" {
5270    pub fn snd_ctl_elem_id_free(obj: *mut snd_ctl_elem_id_t);
5271}
5272unsafe extern "C" {
5273    pub fn snd_ctl_elem_id_clear(obj: *mut snd_ctl_elem_id_t);
5274}
5275unsafe extern "C" {
5276    pub fn snd_ctl_elem_id_copy(dst: *mut snd_ctl_elem_id_t, src: *const snd_ctl_elem_id_t);
5277}
5278unsafe extern "C" {
5279    pub fn snd_ctl_elem_id_compare_numid(
5280        id1: *const snd_ctl_elem_id_t,
5281        id2: *const snd_ctl_elem_id_t,
5282    ) -> ::core::ffi::c_int;
5283}
5284unsafe extern "C" {
5285    pub fn snd_ctl_elem_id_compare_set(
5286        id1: *const snd_ctl_elem_id_t,
5287        id2: *const snd_ctl_elem_id_t,
5288    ) -> ::core::ffi::c_int;
5289}
5290unsafe extern "C" {
5291    pub fn snd_ctl_elem_id_get_numid(obj: *const snd_ctl_elem_id_t) -> ::core::ffi::c_uint;
5292}
5293unsafe extern "C" {
5294    pub fn snd_ctl_elem_id_get_interface(obj: *const snd_ctl_elem_id_t) -> snd_ctl_elem_iface_t;
5295}
5296unsafe extern "C" {
5297    pub fn snd_ctl_elem_id_get_device(obj: *const snd_ctl_elem_id_t) -> ::core::ffi::c_uint;
5298}
5299unsafe extern "C" {
5300    pub fn snd_ctl_elem_id_get_subdevice(obj: *const snd_ctl_elem_id_t) -> ::core::ffi::c_uint;
5301}
5302unsafe extern "C" {
5303    pub fn snd_ctl_elem_id_get_name(obj: *const snd_ctl_elem_id_t) -> *const ::core::ffi::c_char;
5304}
5305unsafe extern "C" {
5306    pub fn snd_ctl_elem_id_get_index(obj: *const snd_ctl_elem_id_t) -> ::core::ffi::c_uint;
5307}
5308unsafe extern "C" {
5309    pub fn snd_ctl_elem_id_set_numid(obj: *mut snd_ctl_elem_id_t, val: ::core::ffi::c_uint);
5310}
5311unsafe extern "C" {
5312    pub fn snd_ctl_elem_id_set_interface(obj: *mut snd_ctl_elem_id_t, val: snd_ctl_elem_iface_t);
5313}
5314unsafe extern "C" {
5315    pub fn snd_ctl_elem_id_set_device(obj: *mut snd_ctl_elem_id_t, val: ::core::ffi::c_uint);
5316}
5317unsafe extern "C" {
5318    pub fn snd_ctl_elem_id_set_subdevice(obj: *mut snd_ctl_elem_id_t, val: ::core::ffi::c_uint);
5319}
5320unsafe extern "C" {
5321    pub fn snd_ctl_elem_id_set_name(obj: *mut snd_ctl_elem_id_t, val: *const ::core::ffi::c_char);
5322}
5323unsafe extern "C" {
5324    pub fn snd_ctl_elem_id_set_index(obj: *mut snd_ctl_elem_id_t, val: ::core::ffi::c_uint);
5325}
5326unsafe extern "C" {
5327    pub fn snd_ctl_card_info_sizeof() -> usize;
5328}
5329unsafe extern "C" {
5330    pub fn snd_ctl_card_info_malloc(ptr: *mut *mut snd_ctl_card_info_t) -> ::core::ffi::c_int;
5331}
5332unsafe extern "C" {
5333    pub fn snd_ctl_card_info_free(obj: *mut snd_ctl_card_info_t);
5334}
5335unsafe extern "C" {
5336    pub fn snd_ctl_card_info_clear(obj: *mut snd_ctl_card_info_t);
5337}
5338unsafe extern "C" {
5339    pub fn snd_ctl_card_info_copy(dst: *mut snd_ctl_card_info_t, src: *const snd_ctl_card_info_t);
5340}
5341unsafe extern "C" {
5342    pub fn snd_ctl_card_info_get_card(obj: *const snd_ctl_card_info_t) -> ::core::ffi::c_int;
5343}
5344unsafe extern "C" {
5345    pub fn snd_ctl_card_info_get_id(obj: *const snd_ctl_card_info_t) -> *const ::core::ffi::c_char;
5346}
5347unsafe extern "C" {
5348    pub fn snd_ctl_card_info_get_driver(
5349        obj: *const snd_ctl_card_info_t,
5350    ) -> *const ::core::ffi::c_char;
5351}
5352unsafe extern "C" {
5353    pub fn snd_ctl_card_info_get_name(
5354        obj: *const snd_ctl_card_info_t,
5355    ) -> *const ::core::ffi::c_char;
5356}
5357unsafe extern "C" {
5358    pub fn snd_ctl_card_info_get_longname(
5359        obj: *const snd_ctl_card_info_t,
5360    ) -> *const ::core::ffi::c_char;
5361}
5362unsafe extern "C" {
5363    pub fn snd_ctl_card_info_get_mixername(
5364        obj: *const snd_ctl_card_info_t,
5365    ) -> *const ::core::ffi::c_char;
5366}
5367unsafe extern "C" {
5368    pub fn snd_ctl_card_info_get_components(
5369        obj: *const snd_ctl_card_info_t,
5370    ) -> *const ::core::ffi::c_char;
5371}
5372unsafe extern "C" {
5373    pub fn snd_ctl_event_sizeof() -> usize;
5374}
5375unsafe extern "C" {
5376    pub fn snd_ctl_event_malloc(ptr: *mut *mut snd_ctl_event_t) -> ::core::ffi::c_int;
5377}
5378unsafe extern "C" {
5379    pub fn snd_ctl_event_free(obj: *mut snd_ctl_event_t);
5380}
5381unsafe extern "C" {
5382    pub fn snd_ctl_event_clear(obj: *mut snd_ctl_event_t);
5383}
5384unsafe extern "C" {
5385    pub fn snd_ctl_event_copy(dst: *mut snd_ctl_event_t, src: *const snd_ctl_event_t);
5386}
5387unsafe extern "C" {
5388    pub fn snd_ctl_event_get_type(obj: *const snd_ctl_event_t) -> snd_ctl_event_type_t;
5389}
5390unsafe extern "C" {
5391    pub fn snd_ctl_elem_list_sizeof() -> usize;
5392}
5393unsafe extern "C" {
5394    pub fn snd_ctl_elem_list_malloc(ptr: *mut *mut snd_ctl_elem_list_t) -> ::core::ffi::c_int;
5395}
5396unsafe extern "C" {
5397    pub fn snd_ctl_elem_list_free(obj: *mut snd_ctl_elem_list_t);
5398}
5399unsafe extern "C" {
5400    pub fn snd_ctl_elem_list_clear(obj: *mut snd_ctl_elem_list_t);
5401}
5402unsafe extern "C" {
5403    pub fn snd_ctl_elem_list_copy(dst: *mut snd_ctl_elem_list_t, src: *const snd_ctl_elem_list_t);
5404}
5405unsafe extern "C" {
5406    pub fn snd_ctl_elem_list_set_offset(obj: *mut snd_ctl_elem_list_t, val: ::core::ffi::c_uint);
5407}
5408unsafe extern "C" {
5409    pub fn snd_ctl_elem_list_get_used(obj: *const snd_ctl_elem_list_t) -> ::core::ffi::c_uint;
5410}
5411unsafe extern "C" {
5412    pub fn snd_ctl_elem_list_get_count(obj: *const snd_ctl_elem_list_t) -> ::core::ffi::c_uint;
5413}
5414unsafe extern "C" {
5415    pub fn snd_ctl_elem_list_get_id(
5416        obj: *const snd_ctl_elem_list_t,
5417        idx: ::core::ffi::c_uint,
5418        ptr: *mut snd_ctl_elem_id_t,
5419    );
5420}
5421unsafe extern "C" {
5422    pub fn snd_ctl_elem_list_get_numid(
5423        obj: *const snd_ctl_elem_list_t,
5424        idx: ::core::ffi::c_uint,
5425    ) -> ::core::ffi::c_uint;
5426}
5427unsafe extern "C" {
5428    pub fn snd_ctl_elem_list_get_interface(
5429        obj: *const snd_ctl_elem_list_t,
5430        idx: ::core::ffi::c_uint,
5431    ) -> snd_ctl_elem_iface_t;
5432}
5433unsafe extern "C" {
5434    pub fn snd_ctl_elem_list_get_device(
5435        obj: *const snd_ctl_elem_list_t,
5436        idx: ::core::ffi::c_uint,
5437    ) -> ::core::ffi::c_uint;
5438}
5439unsafe extern "C" {
5440    pub fn snd_ctl_elem_list_get_subdevice(
5441        obj: *const snd_ctl_elem_list_t,
5442        idx: ::core::ffi::c_uint,
5443    ) -> ::core::ffi::c_uint;
5444}
5445unsafe extern "C" {
5446    pub fn snd_ctl_elem_list_get_name(
5447        obj: *const snd_ctl_elem_list_t,
5448        idx: ::core::ffi::c_uint,
5449    ) -> *const ::core::ffi::c_char;
5450}
5451unsafe extern "C" {
5452    pub fn snd_ctl_elem_list_get_index(
5453        obj: *const snd_ctl_elem_list_t,
5454        idx: ::core::ffi::c_uint,
5455    ) -> ::core::ffi::c_uint;
5456}
5457unsafe extern "C" {
5458    pub fn snd_ctl_elem_info_sizeof() -> usize;
5459}
5460unsafe extern "C" {
5461    pub fn snd_ctl_elem_info_malloc(ptr: *mut *mut snd_ctl_elem_info_t) -> ::core::ffi::c_int;
5462}
5463unsafe extern "C" {
5464    pub fn snd_ctl_elem_info_free(obj: *mut snd_ctl_elem_info_t);
5465}
5466unsafe extern "C" {
5467    pub fn snd_ctl_elem_info_clear(obj: *mut snd_ctl_elem_info_t);
5468}
5469unsafe extern "C" {
5470    pub fn snd_ctl_elem_info_copy(dst: *mut snd_ctl_elem_info_t, src: *const snd_ctl_elem_info_t);
5471}
5472unsafe extern "C" {
5473    pub fn snd_ctl_elem_info_get_type(obj: *const snd_ctl_elem_info_t) -> snd_ctl_elem_type_t;
5474}
5475unsafe extern "C" {
5476    pub fn snd_ctl_elem_info_is_readable(obj: *const snd_ctl_elem_info_t) -> ::core::ffi::c_int;
5477}
5478unsafe extern "C" {
5479    pub fn snd_ctl_elem_info_is_writable(obj: *const snd_ctl_elem_info_t) -> ::core::ffi::c_int;
5480}
5481unsafe extern "C" {
5482    pub fn snd_ctl_elem_info_is_volatile(obj: *const snd_ctl_elem_info_t) -> ::core::ffi::c_int;
5483}
5484unsafe extern "C" {
5485    pub fn snd_ctl_elem_info_is_inactive(obj: *const snd_ctl_elem_info_t) -> ::core::ffi::c_int;
5486}
5487unsafe extern "C" {
5488    pub fn snd_ctl_elem_info_is_locked(obj: *const snd_ctl_elem_info_t) -> ::core::ffi::c_int;
5489}
5490unsafe extern "C" {
5491    pub fn snd_ctl_elem_info_is_tlv_readable(obj: *const snd_ctl_elem_info_t)
5492    -> ::core::ffi::c_int;
5493}
5494unsafe extern "C" {
5495    pub fn snd_ctl_elem_info_is_tlv_writable(obj: *const snd_ctl_elem_info_t)
5496    -> ::core::ffi::c_int;
5497}
5498unsafe extern "C" {
5499    pub fn snd_ctl_elem_info_is_tlv_commandable(
5500        obj: *const snd_ctl_elem_info_t,
5501    ) -> ::core::ffi::c_int;
5502}
5503unsafe extern "C" {
5504    pub fn snd_ctl_elem_info_is_owner(obj: *const snd_ctl_elem_info_t) -> ::core::ffi::c_int;
5505}
5506unsafe extern "C" {
5507    pub fn snd_ctl_elem_info_is_user(obj: *const snd_ctl_elem_info_t) -> ::core::ffi::c_int;
5508}
5509unsafe extern "C" {
5510    pub fn snd_ctl_elem_info_get_owner(obj: *const snd_ctl_elem_info_t) -> pid_t;
5511}
5512unsafe extern "C" {
5513    pub fn snd_ctl_elem_info_get_count(obj: *const snd_ctl_elem_info_t) -> ::core::ffi::c_uint;
5514}
5515unsafe extern "C" {
5516    pub fn snd_ctl_elem_info_get_min(obj: *const snd_ctl_elem_info_t) -> ::core::ffi::c_long;
5517}
5518unsafe extern "C" {
5519    pub fn snd_ctl_elem_info_get_max(obj: *const snd_ctl_elem_info_t) -> ::core::ffi::c_long;
5520}
5521unsafe extern "C" {
5522    pub fn snd_ctl_elem_info_get_step(obj: *const snd_ctl_elem_info_t) -> ::core::ffi::c_long;
5523}
5524unsafe extern "C" {
5525    pub fn snd_ctl_elem_info_get_min64(obj: *const snd_ctl_elem_info_t) -> ::core::ffi::c_longlong;
5526}
5527unsafe extern "C" {
5528    pub fn snd_ctl_elem_info_get_max64(obj: *const snd_ctl_elem_info_t) -> ::core::ffi::c_longlong;
5529}
5530unsafe extern "C" {
5531    pub fn snd_ctl_elem_info_get_step64(obj: *const snd_ctl_elem_info_t)
5532    -> ::core::ffi::c_longlong;
5533}
5534unsafe extern "C" {
5535    pub fn snd_ctl_elem_info_get_items(obj: *const snd_ctl_elem_info_t) -> ::core::ffi::c_uint;
5536}
5537unsafe extern "C" {
5538    pub fn snd_ctl_elem_info_set_item(obj: *mut snd_ctl_elem_info_t, val: ::core::ffi::c_uint);
5539}
5540unsafe extern "C" {
5541    pub fn snd_ctl_elem_info_get_item_name(
5542        obj: *const snd_ctl_elem_info_t,
5543    ) -> *const ::core::ffi::c_char;
5544}
5545unsafe extern "C" {
5546    pub fn snd_ctl_elem_info_get_dimensions(obj: *const snd_ctl_elem_info_t) -> ::core::ffi::c_int;
5547}
5548unsafe extern "C" {
5549    pub fn snd_ctl_elem_info_get_dimension(
5550        obj: *const snd_ctl_elem_info_t,
5551        idx: ::core::ffi::c_uint,
5552    ) -> ::core::ffi::c_int;
5553}
5554unsafe extern "C" {
5555    pub fn snd_ctl_elem_info_set_dimension(
5556        info: *mut snd_ctl_elem_info_t,
5557        dimension: *const ::core::ffi::c_int,
5558    ) -> ::core::ffi::c_int;
5559}
5560unsafe extern "C" {
5561    pub fn snd_ctl_elem_info_get_id(obj: *const snd_ctl_elem_info_t, ptr: *mut snd_ctl_elem_id_t);
5562}
5563unsafe extern "C" {
5564    pub fn snd_ctl_elem_info_get_numid(obj: *const snd_ctl_elem_info_t) -> ::core::ffi::c_uint;
5565}
5566unsafe extern "C" {
5567    pub fn snd_ctl_elem_info_get_interface(obj: *const snd_ctl_elem_info_t)
5568    -> snd_ctl_elem_iface_t;
5569}
5570unsafe extern "C" {
5571    pub fn snd_ctl_elem_info_get_device(obj: *const snd_ctl_elem_info_t) -> ::core::ffi::c_uint;
5572}
5573unsafe extern "C" {
5574    pub fn snd_ctl_elem_info_get_subdevice(obj: *const snd_ctl_elem_info_t) -> ::core::ffi::c_uint;
5575}
5576unsafe extern "C" {
5577    pub fn snd_ctl_elem_info_get_name(
5578        obj: *const snd_ctl_elem_info_t,
5579    ) -> *const ::core::ffi::c_char;
5580}
5581unsafe extern "C" {
5582    pub fn snd_ctl_elem_info_get_index(obj: *const snd_ctl_elem_info_t) -> ::core::ffi::c_uint;
5583}
5584unsafe extern "C" {
5585    pub fn snd_ctl_elem_info_set_id(obj: *mut snd_ctl_elem_info_t, ptr: *const snd_ctl_elem_id_t);
5586}
5587unsafe extern "C" {
5588    pub fn snd_ctl_elem_info_set_numid(obj: *mut snd_ctl_elem_info_t, val: ::core::ffi::c_uint);
5589}
5590unsafe extern "C" {
5591    pub fn snd_ctl_elem_info_set_interface(
5592        obj: *mut snd_ctl_elem_info_t,
5593        val: snd_ctl_elem_iface_t,
5594    );
5595}
5596unsafe extern "C" {
5597    pub fn snd_ctl_elem_info_set_device(obj: *mut snd_ctl_elem_info_t, val: ::core::ffi::c_uint);
5598}
5599unsafe extern "C" {
5600    pub fn snd_ctl_elem_info_set_subdevice(obj: *mut snd_ctl_elem_info_t, val: ::core::ffi::c_uint);
5601}
5602unsafe extern "C" {
5603    pub fn snd_ctl_elem_info_set_name(
5604        obj: *mut snd_ctl_elem_info_t,
5605        val: *const ::core::ffi::c_char,
5606    );
5607}
5608unsafe extern "C" {
5609    pub fn snd_ctl_elem_info_set_index(obj: *mut snd_ctl_elem_info_t, val: ::core::ffi::c_uint);
5610}
5611unsafe extern "C" {
5612    pub fn snd_ctl_elem_info_set_read_write(
5613        obj: *mut snd_ctl_elem_info_t,
5614        rval: ::core::ffi::c_int,
5615        wval: ::core::ffi::c_int,
5616    );
5617}
5618unsafe extern "C" {
5619    pub fn snd_ctl_elem_info_set_tlv_read_write(
5620        obj: *mut snd_ctl_elem_info_t,
5621        rval: ::core::ffi::c_int,
5622        wval: ::core::ffi::c_int,
5623    );
5624}
5625unsafe extern "C" {
5626    pub fn snd_ctl_elem_info_set_inactive(obj: *mut snd_ctl_elem_info_t, val: ::core::ffi::c_int);
5627}
5628unsafe extern "C" {
5629    pub fn snd_ctl_add_integer_elem_set(
5630        ctl: *mut snd_ctl_t,
5631        info: *mut snd_ctl_elem_info_t,
5632        element_count: ::core::ffi::c_uint,
5633        member_count: ::core::ffi::c_uint,
5634        min: ::core::ffi::c_long,
5635        max: ::core::ffi::c_long,
5636        step: ::core::ffi::c_long,
5637    ) -> ::core::ffi::c_int;
5638}
5639unsafe extern "C" {
5640    pub fn snd_ctl_add_integer64_elem_set(
5641        ctl: *mut snd_ctl_t,
5642        info: *mut snd_ctl_elem_info_t,
5643        element_count: ::core::ffi::c_uint,
5644        member_count: ::core::ffi::c_uint,
5645        min: ::core::ffi::c_longlong,
5646        max: ::core::ffi::c_longlong,
5647        step: ::core::ffi::c_longlong,
5648    ) -> ::core::ffi::c_int;
5649}
5650unsafe extern "C" {
5651    pub fn snd_ctl_add_boolean_elem_set(
5652        ctl: *mut snd_ctl_t,
5653        info: *mut snd_ctl_elem_info_t,
5654        element_count: ::core::ffi::c_uint,
5655        member_count: ::core::ffi::c_uint,
5656    ) -> ::core::ffi::c_int;
5657}
5658unsafe extern "C" {
5659    pub fn snd_ctl_add_enumerated_elem_set(
5660        ctl: *mut snd_ctl_t,
5661        info: *mut snd_ctl_elem_info_t,
5662        element_count: ::core::ffi::c_uint,
5663        member_count: ::core::ffi::c_uint,
5664        items: ::core::ffi::c_uint,
5665        labels: *const *const ::core::ffi::c_char,
5666    ) -> ::core::ffi::c_int;
5667}
5668unsafe extern "C" {
5669    pub fn snd_ctl_add_bytes_elem_set(
5670        ctl: *mut snd_ctl_t,
5671        info: *mut snd_ctl_elem_info_t,
5672        element_count: ::core::ffi::c_uint,
5673        member_count: ::core::ffi::c_uint,
5674    ) -> ::core::ffi::c_int;
5675}
5676unsafe extern "C" {
5677    pub fn snd_ctl_elem_add_integer(
5678        ctl: *mut snd_ctl_t,
5679        id: *const snd_ctl_elem_id_t,
5680        count: ::core::ffi::c_uint,
5681        imin: ::core::ffi::c_long,
5682        imax: ::core::ffi::c_long,
5683        istep: ::core::ffi::c_long,
5684    ) -> ::core::ffi::c_int;
5685}
5686unsafe extern "C" {
5687    pub fn snd_ctl_elem_add_integer64(
5688        ctl: *mut snd_ctl_t,
5689        id: *const snd_ctl_elem_id_t,
5690        count: ::core::ffi::c_uint,
5691        imin: ::core::ffi::c_longlong,
5692        imax: ::core::ffi::c_longlong,
5693        istep: ::core::ffi::c_longlong,
5694    ) -> ::core::ffi::c_int;
5695}
5696unsafe extern "C" {
5697    pub fn snd_ctl_elem_add_boolean(
5698        ctl: *mut snd_ctl_t,
5699        id: *const snd_ctl_elem_id_t,
5700        count: ::core::ffi::c_uint,
5701    ) -> ::core::ffi::c_int;
5702}
5703unsafe extern "C" {
5704    pub fn snd_ctl_elem_add_enumerated(
5705        ctl: *mut snd_ctl_t,
5706        id: *const snd_ctl_elem_id_t,
5707        count: ::core::ffi::c_uint,
5708        items: ::core::ffi::c_uint,
5709        names: *const *const ::core::ffi::c_char,
5710    ) -> ::core::ffi::c_int;
5711}
5712unsafe extern "C" {
5713    pub fn snd_ctl_elem_add_iec958(
5714        ctl: *mut snd_ctl_t,
5715        id: *const snd_ctl_elem_id_t,
5716    ) -> ::core::ffi::c_int;
5717}
5718unsafe extern "C" {
5719    pub fn snd_ctl_elem_remove(
5720        ctl: *mut snd_ctl_t,
5721        id: *mut snd_ctl_elem_id_t,
5722    ) -> ::core::ffi::c_int;
5723}
5724unsafe extern "C" {
5725    pub fn snd_ctl_elem_value_sizeof() -> usize;
5726}
5727unsafe extern "C" {
5728    pub fn snd_ctl_elem_value_malloc(ptr: *mut *mut snd_ctl_elem_value_t) -> ::core::ffi::c_int;
5729}
5730unsafe extern "C" {
5731    pub fn snd_ctl_elem_value_free(obj: *mut snd_ctl_elem_value_t);
5732}
5733unsafe extern "C" {
5734    pub fn snd_ctl_elem_value_clear(obj: *mut snd_ctl_elem_value_t);
5735}
5736unsafe extern "C" {
5737    pub fn snd_ctl_elem_value_copy(
5738        dst: *mut snd_ctl_elem_value_t,
5739        src: *const snd_ctl_elem_value_t,
5740    );
5741}
5742unsafe extern "C" {
5743    pub fn snd_ctl_elem_value_compare(
5744        left: *mut snd_ctl_elem_value_t,
5745        right: *const snd_ctl_elem_value_t,
5746    ) -> ::core::ffi::c_int;
5747}
5748unsafe extern "C" {
5749    pub fn snd_ctl_elem_value_get_id(obj: *const snd_ctl_elem_value_t, ptr: *mut snd_ctl_elem_id_t);
5750}
5751unsafe extern "C" {
5752    pub fn snd_ctl_elem_value_get_numid(obj: *const snd_ctl_elem_value_t) -> ::core::ffi::c_uint;
5753}
5754unsafe extern "C" {
5755    pub fn snd_ctl_elem_value_get_interface(
5756        obj: *const snd_ctl_elem_value_t,
5757    ) -> snd_ctl_elem_iface_t;
5758}
5759unsafe extern "C" {
5760    pub fn snd_ctl_elem_value_get_device(obj: *const snd_ctl_elem_value_t) -> ::core::ffi::c_uint;
5761}
5762unsafe extern "C" {
5763    pub fn snd_ctl_elem_value_get_subdevice(
5764        obj: *const snd_ctl_elem_value_t,
5765    ) -> ::core::ffi::c_uint;
5766}
5767unsafe extern "C" {
5768    pub fn snd_ctl_elem_value_get_name(
5769        obj: *const snd_ctl_elem_value_t,
5770    ) -> *const ::core::ffi::c_char;
5771}
5772unsafe extern "C" {
5773    pub fn snd_ctl_elem_value_get_index(obj: *const snd_ctl_elem_value_t) -> ::core::ffi::c_uint;
5774}
5775unsafe extern "C" {
5776    pub fn snd_ctl_elem_value_set_id(obj: *mut snd_ctl_elem_value_t, ptr: *const snd_ctl_elem_id_t);
5777}
5778unsafe extern "C" {
5779    pub fn snd_ctl_elem_value_set_numid(obj: *mut snd_ctl_elem_value_t, val: ::core::ffi::c_uint);
5780}
5781unsafe extern "C" {
5782    pub fn snd_ctl_elem_value_set_interface(
5783        obj: *mut snd_ctl_elem_value_t,
5784        val: snd_ctl_elem_iface_t,
5785    );
5786}
5787unsafe extern "C" {
5788    pub fn snd_ctl_elem_value_set_device(obj: *mut snd_ctl_elem_value_t, val: ::core::ffi::c_uint);
5789}
5790unsafe extern "C" {
5791    pub fn snd_ctl_elem_value_set_subdevice(
5792        obj: *mut snd_ctl_elem_value_t,
5793        val: ::core::ffi::c_uint,
5794    );
5795}
5796unsafe extern "C" {
5797    pub fn snd_ctl_elem_value_set_name(
5798        obj: *mut snd_ctl_elem_value_t,
5799        val: *const ::core::ffi::c_char,
5800    );
5801}
5802unsafe extern "C" {
5803    pub fn snd_ctl_elem_value_set_index(obj: *mut snd_ctl_elem_value_t, val: ::core::ffi::c_uint);
5804}
5805unsafe extern "C" {
5806    pub fn snd_ctl_elem_value_get_boolean(
5807        obj: *const snd_ctl_elem_value_t,
5808        idx: ::core::ffi::c_uint,
5809    ) -> ::core::ffi::c_int;
5810}
5811unsafe extern "C" {
5812    pub fn snd_ctl_elem_value_get_integer(
5813        obj: *const snd_ctl_elem_value_t,
5814        idx: ::core::ffi::c_uint,
5815    ) -> ::core::ffi::c_long;
5816}
5817unsafe extern "C" {
5818    pub fn snd_ctl_elem_value_get_integer64(
5819        obj: *const snd_ctl_elem_value_t,
5820        idx: ::core::ffi::c_uint,
5821    ) -> ::core::ffi::c_longlong;
5822}
5823unsafe extern "C" {
5824    pub fn snd_ctl_elem_value_get_enumerated(
5825        obj: *const snd_ctl_elem_value_t,
5826        idx: ::core::ffi::c_uint,
5827    ) -> ::core::ffi::c_uint;
5828}
5829unsafe extern "C" {
5830    pub fn snd_ctl_elem_value_get_byte(
5831        obj: *const snd_ctl_elem_value_t,
5832        idx: ::core::ffi::c_uint,
5833    ) -> ::core::ffi::c_uchar;
5834}
5835unsafe extern "C" {
5836    pub fn snd_ctl_elem_value_set_boolean(
5837        obj: *mut snd_ctl_elem_value_t,
5838        idx: ::core::ffi::c_uint,
5839        val: ::core::ffi::c_long,
5840    );
5841}
5842unsafe extern "C" {
5843    pub fn snd_ctl_elem_value_set_integer(
5844        obj: *mut snd_ctl_elem_value_t,
5845        idx: ::core::ffi::c_uint,
5846        val: ::core::ffi::c_long,
5847    );
5848}
5849unsafe extern "C" {
5850    pub fn snd_ctl_elem_value_set_integer64(
5851        obj: *mut snd_ctl_elem_value_t,
5852        idx: ::core::ffi::c_uint,
5853        val: ::core::ffi::c_longlong,
5854    );
5855}
5856unsafe extern "C" {
5857    pub fn snd_ctl_elem_value_set_enumerated(
5858        obj: *mut snd_ctl_elem_value_t,
5859        idx: ::core::ffi::c_uint,
5860        val: ::core::ffi::c_uint,
5861    );
5862}
5863unsafe extern "C" {
5864    pub fn snd_ctl_elem_value_set_byte(
5865        obj: *mut snd_ctl_elem_value_t,
5866        idx: ::core::ffi::c_uint,
5867        val: ::core::ffi::c_uchar,
5868    );
5869}
5870unsafe extern "C" {
5871    pub fn snd_ctl_elem_set_bytes(
5872        obj: *mut snd_ctl_elem_value_t,
5873        data: *mut ::core::ffi::c_void,
5874        size: usize,
5875    );
5876}
5877unsafe extern "C" {
5878    pub fn snd_ctl_elem_value_get_bytes(
5879        obj: *const snd_ctl_elem_value_t,
5880    ) -> *const ::core::ffi::c_void;
5881}
5882unsafe extern "C" {
5883    pub fn snd_ctl_elem_value_get_iec958(
5884        obj: *const snd_ctl_elem_value_t,
5885        ptr: *mut snd_aes_iec958_t,
5886    );
5887}
5888unsafe extern "C" {
5889    pub fn snd_ctl_elem_value_set_iec958(
5890        obj: *mut snd_ctl_elem_value_t,
5891        ptr: *const snd_aes_iec958_t,
5892    );
5893}
5894unsafe extern "C" {
5895    pub fn snd_tlv_parse_dB_info(
5896        tlv: *mut ::core::ffi::c_uint,
5897        tlv_size: ::core::ffi::c_uint,
5898        db_tlvp: *mut *mut ::core::ffi::c_uint,
5899    ) -> ::core::ffi::c_int;
5900}
5901unsafe extern "C" {
5902    pub fn snd_tlv_get_dB_range(
5903        tlv: *mut ::core::ffi::c_uint,
5904        rangemin: ::core::ffi::c_long,
5905        rangemax: ::core::ffi::c_long,
5906        min: *mut ::core::ffi::c_long,
5907        max: *mut ::core::ffi::c_long,
5908    ) -> ::core::ffi::c_int;
5909}
5910unsafe extern "C" {
5911    pub fn snd_tlv_convert_to_dB(
5912        tlv: *mut ::core::ffi::c_uint,
5913        rangemin: ::core::ffi::c_long,
5914        rangemax: ::core::ffi::c_long,
5915        volume: ::core::ffi::c_long,
5916        db_gain: *mut ::core::ffi::c_long,
5917    ) -> ::core::ffi::c_int;
5918}
5919unsafe extern "C" {
5920    pub fn snd_tlv_convert_from_dB(
5921        tlv: *mut ::core::ffi::c_uint,
5922        rangemin: ::core::ffi::c_long,
5923        rangemax: ::core::ffi::c_long,
5924        db_gain: ::core::ffi::c_long,
5925        value: *mut ::core::ffi::c_long,
5926        xdir: ::core::ffi::c_int,
5927    ) -> ::core::ffi::c_int;
5928}
5929unsafe extern "C" {
5930    pub fn snd_ctl_get_dB_range(
5931        ctl: *mut snd_ctl_t,
5932        id: *const snd_ctl_elem_id_t,
5933        min: *mut ::core::ffi::c_long,
5934        max: *mut ::core::ffi::c_long,
5935    ) -> ::core::ffi::c_int;
5936}
5937unsafe extern "C" {
5938    pub fn snd_ctl_convert_to_dB(
5939        ctl: *mut snd_ctl_t,
5940        id: *const snd_ctl_elem_id_t,
5941        volume: ::core::ffi::c_long,
5942        db_gain: *mut ::core::ffi::c_long,
5943    ) -> ::core::ffi::c_int;
5944}
5945unsafe extern "C" {
5946    pub fn snd_ctl_convert_from_dB(
5947        ctl: *mut snd_ctl_t,
5948        id: *const snd_ctl_elem_id_t,
5949        db_gain: ::core::ffi::c_long,
5950        value: *mut ::core::ffi::c_long,
5951        xdir: ::core::ffi::c_int,
5952    ) -> ::core::ffi::c_int;
5953}
5954#[repr(C)]
5955#[derive(Debug, Copy, Clone)]
5956pub struct _snd_hctl_elem {
5957    _unused: [u8; 0],
5958}
5959pub type snd_hctl_elem_t = _snd_hctl_elem;
5960#[repr(C)]
5961#[derive(Debug, Copy, Clone)]
5962pub struct _snd_hctl {
5963    _unused: [u8; 0],
5964}
5965pub type snd_hctl_t = _snd_hctl;
5966pub type snd_hctl_compare_t = ::core::option::Option<
5967    unsafe extern "C" fn(
5968        e1: *const snd_hctl_elem_t,
5969        e2: *const snd_hctl_elem_t,
5970    ) -> ::core::ffi::c_int,
5971>;
5972unsafe extern "C" {
5973    pub fn snd_hctl_compare_fast(
5974        c1: *const snd_hctl_elem_t,
5975        c2: *const snd_hctl_elem_t,
5976    ) -> ::core::ffi::c_int;
5977}
5978pub type snd_hctl_callback_t = ::core::option::Option<
5979    unsafe extern "C" fn(
5980        hctl: *mut snd_hctl_t,
5981        mask: ::core::ffi::c_uint,
5982        elem: *mut snd_hctl_elem_t,
5983    ) -> ::core::ffi::c_int,
5984>;
5985pub type snd_hctl_elem_callback_t = ::core::option::Option<
5986    unsafe extern "C" fn(
5987        elem: *mut snd_hctl_elem_t,
5988        mask: ::core::ffi::c_uint,
5989    ) -> ::core::ffi::c_int,
5990>;
5991unsafe extern "C" {
5992    pub fn snd_hctl_open(
5993        hctl: *mut *mut snd_hctl_t,
5994        name: *const ::core::ffi::c_char,
5995        mode: ::core::ffi::c_int,
5996    ) -> ::core::ffi::c_int;
5997}
5998unsafe extern "C" {
5999    pub fn snd_hctl_open_ctl(
6000        hctlp: *mut *mut snd_hctl_t,
6001        ctl: *mut snd_ctl_t,
6002    ) -> ::core::ffi::c_int;
6003}
6004unsafe extern "C" {
6005    pub fn snd_hctl_close(hctl: *mut snd_hctl_t) -> ::core::ffi::c_int;
6006}
6007unsafe extern "C" {
6008    pub fn snd_hctl_nonblock(
6009        hctl: *mut snd_hctl_t,
6010        nonblock: ::core::ffi::c_int,
6011    ) -> ::core::ffi::c_int;
6012}
6013unsafe extern "C" {
6014    pub fn snd_hctl_poll_descriptors_count(hctl: *mut snd_hctl_t) -> ::core::ffi::c_int;
6015}
6016unsafe extern "C" {
6017    pub fn snd_hctl_poll_descriptors(
6018        hctl: *mut snd_hctl_t,
6019        pfds: *mut pollfd,
6020        space: ::core::ffi::c_uint,
6021    ) -> ::core::ffi::c_int;
6022}
6023unsafe extern "C" {
6024    pub fn snd_hctl_poll_descriptors_revents(
6025        ctl: *mut snd_hctl_t,
6026        pfds: *mut pollfd,
6027        nfds: ::core::ffi::c_uint,
6028        revents: *mut ::core::ffi::c_ushort,
6029    ) -> ::core::ffi::c_int;
6030}
6031unsafe extern "C" {
6032    pub fn snd_hctl_get_count(hctl: *mut snd_hctl_t) -> ::core::ffi::c_uint;
6033}
6034unsafe extern "C" {
6035    pub fn snd_hctl_set_compare(
6036        hctl: *mut snd_hctl_t,
6037        hsort: snd_hctl_compare_t,
6038    ) -> ::core::ffi::c_int;
6039}
6040unsafe extern "C" {
6041    pub fn snd_hctl_first_elem(hctl: *mut snd_hctl_t) -> *mut snd_hctl_elem_t;
6042}
6043unsafe extern "C" {
6044    pub fn snd_hctl_last_elem(hctl: *mut snd_hctl_t) -> *mut snd_hctl_elem_t;
6045}
6046unsafe extern "C" {
6047    pub fn snd_hctl_find_elem(
6048        hctl: *mut snd_hctl_t,
6049        id: *const snd_ctl_elem_id_t,
6050    ) -> *mut snd_hctl_elem_t;
6051}
6052unsafe extern "C" {
6053    pub fn snd_hctl_set_callback(hctl: *mut snd_hctl_t, callback: snd_hctl_callback_t);
6054}
6055unsafe extern "C" {
6056    pub fn snd_hctl_set_callback_private(hctl: *mut snd_hctl_t, data: *mut ::core::ffi::c_void);
6057}
6058unsafe extern "C" {
6059    pub fn snd_hctl_get_callback_private(hctl: *mut snd_hctl_t) -> *mut ::core::ffi::c_void;
6060}
6061unsafe extern "C" {
6062    pub fn snd_hctl_load(hctl: *mut snd_hctl_t) -> ::core::ffi::c_int;
6063}
6064unsafe extern "C" {
6065    pub fn snd_hctl_free(hctl: *mut snd_hctl_t) -> ::core::ffi::c_int;
6066}
6067unsafe extern "C" {
6068    pub fn snd_hctl_handle_events(hctl: *mut snd_hctl_t) -> ::core::ffi::c_int;
6069}
6070unsafe extern "C" {
6071    pub fn snd_hctl_name(hctl: *mut snd_hctl_t) -> *const ::core::ffi::c_char;
6072}
6073unsafe extern "C" {
6074    pub fn snd_hctl_wait(hctl: *mut snd_hctl_t, timeout: ::core::ffi::c_int) -> ::core::ffi::c_int;
6075}
6076unsafe extern "C" {
6077    pub fn snd_hctl_ctl(hctl: *mut snd_hctl_t) -> *mut snd_ctl_t;
6078}
6079unsafe extern "C" {
6080    pub fn snd_hctl_elem_next(elem: *mut snd_hctl_elem_t) -> *mut snd_hctl_elem_t;
6081}
6082unsafe extern "C" {
6083    pub fn snd_hctl_elem_prev(elem: *mut snd_hctl_elem_t) -> *mut snd_hctl_elem_t;
6084}
6085unsafe extern "C" {
6086    pub fn snd_hctl_elem_info(
6087        elem: *mut snd_hctl_elem_t,
6088        info: *mut snd_ctl_elem_info_t,
6089    ) -> ::core::ffi::c_int;
6090}
6091unsafe extern "C" {
6092    pub fn snd_hctl_elem_read(
6093        elem: *mut snd_hctl_elem_t,
6094        value: *mut snd_ctl_elem_value_t,
6095    ) -> ::core::ffi::c_int;
6096}
6097unsafe extern "C" {
6098    pub fn snd_hctl_elem_write(
6099        elem: *mut snd_hctl_elem_t,
6100        value: *mut snd_ctl_elem_value_t,
6101    ) -> ::core::ffi::c_int;
6102}
6103unsafe extern "C" {
6104    pub fn snd_hctl_elem_tlv_read(
6105        elem: *mut snd_hctl_elem_t,
6106        tlv: *mut ::core::ffi::c_uint,
6107        tlv_size: ::core::ffi::c_uint,
6108    ) -> ::core::ffi::c_int;
6109}
6110unsafe extern "C" {
6111    pub fn snd_hctl_elem_tlv_write(
6112        elem: *mut snd_hctl_elem_t,
6113        tlv: *const ::core::ffi::c_uint,
6114    ) -> ::core::ffi::c_int;
6115}
6116unsafe extern "C" {
6117    pub fn snd_hctl_elem_tlv_command(
6118        elem: *mut snd_hctl_elem_t,
6119        tlv: *const ::core::ffi::c_uint,
6120    ) -> ::core::ffi::c_int;
6121}
6122unsafe extern "C" {
6123    pub fn snd_hctl_elem_get_hctl(elem: *mut snd_hctl_elem_t) -> *mut snd_hctl_t;
6124}
6125unsafe extern "C" {
6126    pub fn snd_hctl_elem_get_id(obj: *const snd_hctl_elem_t, ptr: *mut snd_ctl_elem_id_t);
6127}
6128unsafe extern "C" {
6129    pub fn snd_hctl_elem_get_numid(obj: *const snd_hctl_elem_t) -> ::core::ffi::c_uint;
6130}
6131unsafe extern "C" {
6132    pub fn snd_hctl_elem_get_interface(obj: *const snd_hctl_elem_t) -> snd_ctl_elem_iface_t;
6133}
6134unsafe extern "C" {
6135    pub fn snd_hctl_elem_get_device(obj: *const snd_hctl_elem_t) -> ::core::ffi::c_uint;
6136}
6137unsafe extern "C" {
6138    pub fn snd_hctl_elem_get_subdevice(obj: *const snd_hctl_elem_t) -> ::core::ffi::c_uint;
6139}
6140unsafe extern "C" {
6141    pub fn snd_hctl_elem_get_name(obj: *const snd_hctl_elem_t) -> *const ::core::ffi::c_char;
6142}
6143unsafe extern "C" {
6144    pub fn snd_hctl_elem_get_index(obj: *const snd_hctl_elem_t) -> ::core::ffi::c_uint;
6145}
6146unsafe extern "C" {
6147    pub fn snd_hctl_elem_set_callback(obj: *mut snd_hctl_elem_t, val: snd_hctl_elem_callback_t);
6148}
6149unsafe extern "C" {
6150    pub fn snd_hctl_elem_get_callback_private(
6151        obj: *const snd_hctl_elem_t,
6152    ) -> *mut ::core::ffi::c_void;
6153}
6154unsafe extern "C" {
6155    pub fn snd_hctl_elem_set_callback_private(
6156        obj: *mut snd_hctl_elem_t,
6157        val: *mut ::core::ffi::c_void,
6158    );
6159}
6160unsafe extern "C" {
6161    pub fn snd_sctl_build(
6162        ctl: *mut *mut snd_sctl_t,
6163        handle: *mut snd_ctl_t,
6164        config: *mut snd_config_t,
6165        private_data: *mut snd_config_t,
6166        mode: ::core::ffi::c_int,
6167    ) -> ::core::ffi::c_int;
6168}
6169unsafe extern "C" {
6170    pub fn snd_sctl_free(handle: *mut snd_sctl_t) -> ::core::ffi::c_int;
6171}
6172unsafe extern "C" {
6173    pub fn snd_sctl_install(handle: *mut snd_sctl_t) -> ::core::ffi::c_int;
6174}
6175unsafe extern "C" {
6176    pub fn snd_sctl_remove(handle: *mut snd_sctl_t) -> ::core::ffi::c_int;
6177}
6178unsafe extern "C" {
6179    pub fn snd_device_name_hint(
6180        card: ::core::ffi::c_int,
6181        iface: *const ::core::ffi::c_char,
6182        hints: *mut *mut *mut ::core::ffi::c_void,
6183    ) -> ::core::ffi::c_int;
6184}
6185unsafe extern "C" {
6186    pub fn snd_device_name_free_hint(hints: *mut *mut ::core::ffi::c_void) -> ::core::ffi::c_int;
6187}
6188unsafe extern "C" {
6189    pub fn snd_device_name_get_hint(
6190        hint: *const ::core::ffi::c_void,
6191        id: *const ::core::ffi::c_char,
6192    ) -> *mut ::core::ffi::c_char;
6193}
6194#[repr(C)]
6195#[derive(Debug, Copy, Clone)]
6196pub struct _snd_mixer {
6197    _unused: [u8; 0],
6198}
6199pub type snd_mixer_t = _snd_mixer;
6200#[repr(C)]
6201#[derive(Debug, Copy, Clone)]
6202pub struct _snd_mixer_class {
6203    _unused: [u8; 0],
6204}
6205pub type snd_mixer_class_t = _snd_mixer_class;
6206#[repr(C)]
6207#[derive(Debug, Copy, Clone)]
6208pub struct _snd_mixer_elem {
6209    _unused: [u8; 0],
6210}
6211pub type snd_mixer_elem_t = _snd_mixer_elem;
6212pub type snd_mixer_callback_t = ::core::option::Option<
6213    unsafe extern "C" fn(
6214        ctl: *mut snd_mixer_t,
6215        mask: ::core::ffi::c_uint,
6216        elem: *mut snd_mixer_elem_t,
6217    ) -> ::core::ffi::c_int,
6218>;
6219pub type snd_mixer_elem_callback_t = ::core::option::Option<
6220    unsafe extern "C" fn(
6221        elem: *mut snd_mixer_elem_t,
6222        mask: ::core::ffi::c_uint,
6223    ) -> ::core::ffi::c_int,
6224>;
6225pub type snd_mixer_compare_t = ::core::option::Option<
6226    unsafe extern "C" fn(
6227        e1: *const snd_mixer_elem_t,
6228        e2: *const snd_mixer_elem_t,
6229    ) -> ::core::ffi::c_int,
6230>;
6231pub type snd_mixer_event_t = ::core::option::Option<
6232    unsafe extern "C" fn(
6233        class_: *mut snd_mixer_class_t,
6234        mask: ::core::ffi::c_uint,
6235        helem: *mut snd_hctl_elem_t,
6236        melem: *mut snd_mixer_elem_t,
6237    ) -> ::core::ffi::c_int,
6238>;
6239pub const SND_MIXER_ELEM_SIMPLE: _snd_mixer_elem_type = 0;
6240pub const SND_MIXER_ELEM_LAST: _snd_mixer_elem_type = 0;
6241pub type _snd_mixer_elem_type = ::core::ffi::c_uint;
6242pub use self::_snd_mixer_elem_type as snd_mixer_elem_type_t;
6243unsafe extern "C" {
6244    pub fn snd_mixer_open(
6245        mixer: *mut *mut snd_mixer_t,
6246        mode: ::core::ffi::c_int,
6247    ) -> ::core::ffi::c_int;
6248}
6249unsafe extern "C" {
6250    pub fn snd_mixer_close(mixer: *mut snd_mixer_t) -> ::core::ffi::c_int;
6251}
6252unsafe extern "C" {
6253    pub fn snd_mixer_first_elem(mixer: *mut snd_mixer_t) -> *mut snd_mixer_elem_t;
6254}
6255unsafe extern "C" {
6256    pub fn snd_mixer_last_elem(mixer: *mut snd_mixer_t) -> *mut snd_mixer_elem_t;
6257}
6258unsafe extern "C" {
6259    pub fn snd_mixer_handle_events(mixer: *mut snd_mixer_t) -> ::core::ffi::c_int;
6260}
6261unsafe extern "C" {
6262    pub fn snd_mixer_attach(
6263        mixer: *mut snd_mixer_t,
6264        name: *const ::core::ffi::c_char,
6265    ) -> ::core::ffi::c_int;
6266}
6267unsafe extern "C" {
6268    pub fn snd_mixer_attach_hctl(
6269        mixer: *mut snd_mixer_t,
6270        hctl: *mut snd_hctl_t,
6271    ) -> ::core::ffi::c_int;
6272}
6273unsafe extern "C" {
6274    pub fn snd_mixer_detach(
6275        mixer: *mut snd_mixer_t,
6276        name: *const ::core::ffi::c_char,
6277    ) -> ::core::ffi::c_int;
6278}
6279unsafe extern "C" {
6280    pub fn snd_mixer_detach_hctl(
6281        mixer: *mut snd_mixer_t,
6282        hctl: *mut snd_hctl_t,
6283    ) -> ::core::ffi::c_int;
6284}
6285unsafe extern "C" {
6286    pub fn snd_mixer_get_hctl(
6287        mixer: *mut snd_mixer_t,
6288        name: *const ::core::ffi::c_char,
6289        hctl: *mut *mut snd_hctl_t,
6290    ) -> ::core::ffi::c_int;
6291}
6292unsafe extern "C" {
6293    pub fn snd_mixer_poll_descriptors_count(mixer: *mut snd_mixer_t) -> ::core::ffi::c_int;
6294}
6295unsafe extern "C" {
6296    pub fn snd_mixer_poll_descriptors(
6297        mixer: *mut snd_mixer_t,
6298        pfds: *mut pollfd,
6299        space: ::core::ffi::c_uint,
6300    ) -> ::core::ffi::c_int;
6301}
6302unsafe extern "C" {
6303    pub fn snd_mixer_poll_descriptors_revents(
6304        mixer: *mut snd_mixer_t,
6305        pfds: *mut pollfd,
6306        nfds: ::core::ffi::c_uint,
6307        revents: *mut ::core::ffi::c_ushort,
6308    ) -> ::core::ffi::c_int;
6309}
6310unsafe extern "C" {
6311    pub fn snd_mixer_load(mixer: *mut snd_mixer_t) -> ::core::ffi::c_int;
6312}
6313unsafe extern "C" {
6314    pub fn snd_mixer_free(mixer: *mut snd_mixer_t);
6315}
6316unsafe extern "C" {
6317    pub fn snd_mixer_wait(
6318        mixer: *mut snd_mixer_t,
6319        timeout: ::core::ffi::c_int,
6320    ) -> ::core::ffi::c_int;
6321}
6322unsafe extern "C" {
6323    pub fn snd_mixer_set_compare(
6324        mixer: *mut snd_mixer_t,
6325        msort: snd_mixer_compare_t,
6326    ) -> ::core::ffi::c_int;
6327}
6328unsafe extern "C" {
6329    pub fn snd_mixer_set_callback(obj: *mut snd_mixer_t, val: snd_mixer_callback_t);
6330}
6331unsafe extern "C" {
6332    pub fn snd_mixer_get_callback_private(obj: *const snd_mixer_t) -> *mut ::core::ffi::c_void;
6333}
6334unsafe extern "C" {
6335    pub fn snd_mixer_set_callback_private(obj: *mut snd_mixer_t, val: *mut ::core::ffi::c_void);
6336}
6337unsafe extern "C" {
6338    pub fn snd_mixer_get_count(obj: *const snd_mixer_t) -> ::core::ffi::c_uint;
6339}
6340unsafe extern "C" {
6341    pub fn snd_mixer_class_unregister(clss: *mut snd_mixer_class_t) -> ::core::ffi::c_int;
6342}
6343unsafe extern "C" {
6344    pub fn snd_mixer_elem_next(elem: *mut snd_mixer_elem_t) -> *mut snd_mixer_elem_t;
6345}
6346unsafe extern "C" {
6347    pub fn snd_mixer_elem_prev(elem: *mut snd_mixer_elem_t) -> *mut snd_mixer_elem_t;
6348}
6349unsafe extern "C" {
6350    pub fn snd_mixer_elem_set_callback(obj: *mut snd_mixer_elem_t, val: snd_mixer_elem_callback_t);
6351}
6352unsafe extern "C" {
6353    pub fn snd_mixer_elem_get_callback_private(
6354        obj: *const snd_mixer_elem_t,
6355    ) -> *mut ::core::ffi::c_void;
6356}
6357unsafe extern "C" {
6358    pub fn snd_mixer_elem_set_callback_private(
6359        obj: *mut snd_mixer_elem_t,
6360        val: *mut ::core::ffi::c_void,
6361    );
6362}
6363unsafe extern "C" {
6364    pub fn snd_mixer_elem_get_type(obj: *const snd_mixer_elem_t) -> snd_mixer_elem_type_t;
6365}
6366unsafe extern "C" {
6367    pub fn snd_mixer_class_register(
6368        class_: *mut snd_mixer_class_t,
6369        mixer: *mut snd_mixer_t,
6370    ) -> ::core::ffi::c_int;
6371}
6372unsafe extern "C" {
6373    pub fn snd_mixer_elem_new(
6374        elem: *mut *mut snd_mixer_elem_t,
6375        type_: snd_mixer_elem_type_t,
6376        compare_weight: ::core::ffi::c_int,
6377        private_data: *mut ::core::ffi::c_void,
6378        private_free: ::core::option::Option<unsafe extern "C" fn(elem: *mut snd_mixer_elem_t)>,
6379    ) -> ::core::ffi::c_int;
6380}
6381unsafe extern "C" {
6382    pub fn snd_mixer_elem_add(
6383        elem: *mut snd_mixer_elem_t,
6384        class_: *mut snd_mixer_class_t,
6385    ) -> ::core::ffi::c_int;
6386}
6387unsafe extern "C" {
6388    pub fn snd_mixer_elem_remove(elem: *mut snd_mixer_elem_t) -> ::core::ffi::c_int;
6389}
6390unsafe extern "C" {
6391    pub fn snd_mixer_elem_free(elem: *mut snd_mixer_elem_t);
6392}
6393unsafe extern "C" {
6394    pub fn snd_mixer_elem_info(elem: *mut snd_mixer_elem_t) -> ::core::ffi::c_int;
6395}
6396unsafe extern "C" {
6397    pub fn snd_mixer_elem_value(elem: *mut snd_mixer_elem_t) -> ::core::ffi::c_int;
6398}
6399unsafe extern "C" {
6400    pub fn snd_mixer_elem_attach(
6401        melem: *mut snd_mixer_elem_t,
6402        helem: *mut snd_hctl_elem_t,
6403    ) -> ::core::ffi::c_int;
6404}
6405unsafe extern "C" {
6406    pub fn snd_mixer_elem_detach(
6407        melem: *mut snd_mixer_elem_t,
6408        helem: *mut snd_hctl_elem_t,
6409    ) -> ::core::ffi::c_int;
6410}
6411unsafe extern "C" {
6412    pub fn snd_mixer_elem_empty(melem: *mut snd_mixer_elem_t) -> ::core::ffi::c_int;
6413}
6414unsafe extern "C" {
6415    pub fn snd_mixer_elem_get_private(melem: *const snd_mixer_elem_t) -> *mut ::core::ffi::c_void;
6416}
6417unsafe extern "C" {
6418    pub fn snd_mixer_class_sizeof() -> usize;
6419}
6420unsafe extern "C" {
6421    pub fn snd_mixer_class_malloc(ptr: *mut *mut snd_mixer_class_t) -> ::core::ffi::c_int;
6422}
6423unsafe extern "C" {
6424    pub fn snd_mixer_class_free(obj: *mut snd_mixer_class_t);
6425}
6426unsafe extern "C" {
6427    pub fn snd_mixer_class_copy(dst: *mut snd_mixer_class_t, src: *const snd_mixer_class_t);
6428}
6429unsafe extern "C" {
6430    pub fn snd_mixer_class_get_mixer(class_: *const snd_mixer_class_t) -> *mut snd_mixer_t;
6431}
6432unsafe extern "C" {
6433    pub fn snd_mixer_class_get_event(class_: *const snd_mixer_class_t) -> snd_mixer_event_t;
6434}
6435unsafe extern "C" {
6436    pub fn snd_mixer_class_get_private(
6437        class_: *const snd_mixer_class_t,
6438    ) -> *mut ::core::ffi::c_void;
6439}
6440unsafe extern "C" {
6441    pub fn snd_mixer_class_get_compare(class_: *const snd_mixer_class_t) -> snd_mixer_compare_t;
6442}
6443unsafe extern "C" {
6444    pub fn snd_mixer_class_set_event(
6445        class_: *mut snd_mixer_class_t,
6446        event: snd_mixer_event_t,
6447    ) -> ::core::ffi::c_int;
6448}
6449unsafe extern "C" {
6450    pub fn snd_mixer_class_set_private(
6451        class_: *mut snd_mixer_class_t,
6452        private_data: *mut ::core::ffi::c_void,
6453    ) -> ::core::ffi::c_int;
6454}
6455unsafe extern "C" {
6456    pub fn snd_mixer_class_set_private_free(
6457        class_: *mut snd_mixer_class_t,
6458        private_free: ::core::option::Option<unsafe extern "C" fn(arg1: *mut snd_mixer_class_t)>,
6459    ) -> ::core::ffi::c_int;
6460}
6461unsafe extern "C" {
6462    pub fn snd_mixer_class_set_compare(
6463        class_: *mut snd_mixer_class_t,
6464        compare: snd_mixer_compare_t,
6465    ) -> ::core::ffi::c_int;
6466}
6467pub const SND_MIXER_SCHN_UNKNOWN: _snd_mixer_selem_channel_id = -1;
6468pub const SND_MIXER_SCHN_FRONT_LEFT: _snd_mixer_selem_channel_id = 0;
6469pub const SND_MIXER_SCHN_FRONT_RIGHT: _snd_mixer_selem_channel_id = 1;
6470pub const SND_MIXER_SCHN_REAR_LEFT: _snd_mixer_selem_channel_id = 2;
6471pub const SND_MIXER_SCHN_REAR_RIGHT: _snd_mixer_selem_channel_id = 3;
6472pub const SND_MIXER_SCHN_FRONT_CENTER: _snd_mixer_selem_channel_id = 4;
6473pub const SND_MIXER_SCHN_WOOFER: _snd_mixer_selem_channel_id = 5;
6474pub const SND_MIXER_SCHN_SIDE_LEFT: _snd_mixer_selem_channel_id = 6;
6475pub const SND_MIXER_SCHN_SIDE_RIGHT: _snd_mixer_selem_channel_id = 7;
6476pub const SND_MIXER_SCHN_REAR_CENTER: _snd_mixer_selem_channel_id = 8;
6477pub const SND_MIXER_SCHN_LAST: _snd_mixer_selem_channel_id = 31;
6478pub const SND_MIXER_SCHN_MONO: _snd_mixer_selem_channel_id = 0;
6479pub type _snd_mixer_selem_channel_id = ::core::ffi::c_int;
6480pub use self::_snd_mixer_selem_channel_id as snd_mixer_selem_channel_id_t;
6481pub const SND_MIXER_SABSTRACT_NONE: snd_mixer_selem_regopt_abstract = 0;
6482pub const SND_MIXER_SABSTRACT_BASIC: snd_mixer_selem_regopt_abstract = 1;
6483pub type snd_mixer_selem_regopt_abstract = ::core::ffi::c_uint;
6484#[repr(C)]
6485#[derive(Debug, Copy, Clone)]
6486pub struct snd_mixer_selem_regopt {
6487    pub ver: ::core::ffi::c_int,
6488    pub abstract_: snd_mixer_selem_regopt_abstract,
6489    pub device: *const ::core::ffi::c_char,
6490    pub playback_pcm: *mut snd_pcm_t,
6491    pub capture_pcm: *mut snd_pcm_t,
6492}
6493#[repr(C)]
6494#[derive(Debug, Copy, Clone)]
6495pub struct _snd_mixer_selem_id {
6496    _unused: [u8; 0],
6497}
6498pub type snd_mixer_selem_id_t = _snd_mixer_selem_id;
6499unsafe extern "C" {
6500    pub fn snd_mixer_selem_channel_name(
6501        channel: snd_mixer_selem_channel_id_t,
6502    ) -> *const ::core::ffi::c_char;
6503}
6504unsafe extern "C" {
6505    pub fn snd_mixer_selem_register(
6506        mixer: *mut snd_mixer_t,
6507        options: *mut snd_mixer_selem_regopt,
6508        classp: *mut *mut snd_mixer_class_t,
6509    ) -> ::core::ffi::c_int;
6510}
6511unsafe extern "C" {
6512    pub fn snd_mixer_selem_get_id(element: *mut snd_mixer_elem_t, id: *mut snd_mixer_selem_id_t);
6513}
6514unsafe extern "C" {
6515    pub fn snd_mixer_selem_get_name(elem: *mut snd_mixer_elem_t) -> *const ::core::ffi::c_char;
6516}
6517unsafe extern "C" {
6518    pub fn snd_mixer_selem_get_index(elem: *mut snd_mixer_elem_t) -> ::core::ffi::c_uint;
6519}
6520unsafe extern "C" {
6521    pub fn snd_mixer_find_selem(
6522        mixer: *mut snd_mixer_t,
6523        id: *const snd_mixer_selem_id_t,
6524    ) -> *mut snd_mixer_elem_t;
6525}
6526unsafe extern "C" {
6527    pub fn snd_mixer_selem_is_active(elem: *mut snd_mixer_elem_t) -> ::core::ffi::c_int;
6528}
6529unsafe extern "C" {
6530    pub fn snd_mixer_selem_is_playback_mono(elem: *mut snd_mixer_elem_t) -> ::core::ffi::c_int;
6531}
6532unsafe extern "C" {
6533    pub fn snd_mixer_selem_has_playback_channel(
6534        obj: *mut snd_mixer_elem_t,
6535        channel: snd_mixer_selem_channel_id_t,
6536    ) -> ::core::ffi::c_int;
6537}
6538unsafe extern "C" {
6539    pub fn snd_mixer_selem_is_capture_mono(elem: *mut snd_mixer_elem_t) -> ::core::ffi::c_int;
6540}
6541unsafe extern "C" {
6542    pub fn snd_mixer_selem_has_capture_channel(
6543        obj: *mut snd_mixer_elem_t,
6544        channel: snd_mixer_selem_channel_id_t,
6545    ) -> ::core::ffi::c_int;
6546}
6547unsafe extern "C" {
6548    pub fn snd_mixer_selem_get_capture_group(elem: *mut snd_mixer_elem_t) -> ::core::ffi::c_int;
6549}
6550unsafe extern "C" {
6551    pub fn snd_mixer_selem_has_common_volume(elem: *mut snd_mixer_elem_t) -> ::core::ffi::c_int;
6552}
6553unsafe extern "C" {
6554    pub fn snd_mixer_selem_has_playback_volume(elem: *mut snd_mixer_elem_t) -> ::core::ffi::c_int;
6555}
6556unsafe extern "C" {
6557    pub fn snd_mixer_selem_has_playback_volume_joined(
6558        elem: *mut snd_mixer_elem_t,
6559    ) -> ::core::ffi::c_int;
6560}
6561unsafe extern "C" {
6562    pub fn snd_mixer_selem_has_capture_volume(elem: *mut snd_mixer_elem_t) -> ::core::ffi::c_int;
6563}
6564unsafe extern "C" {
6565    pub fn snd_mixer_selem_has_capture_volume_joined(
6566        elem: *mut snd_mixer_elem_t,
6567    ) -> ::core::ffi::c_int;
6568}
6569unsafe extern "C" {
6570    pub fn snd_mixer_selem_has_common_switch(elem: *mut snd_mixer_elem_t) -> ::core::ffi::c_int;
6571}
6572unsafe extern "C" {
6573    pub fn snd_mixer_selem_has_playback_switch(elem: *mut snd_mixer_elem_t) -> ::core::ffi::c_int;
6574}
6575unsafe extern "C" {
6576    pub fn snd_mixer_selem_has_playback_switch_joined(
6577        elem: *mut snd_mixer_elem_t,
6578    ) -> ::core::ffi::c_int;
6579}
6580unsafe extern "C" {
6581    pub fn snd_mixer_selem_has_capture_switch(elem: *mut snd_mixer_elem_t) -> ::core::ffi::c_int;
6582}
6583unsafe extern "C" {
6584    pub fn snd_mixer_selem_has_capture_switch_joined(
6585        elem: *mut snd_mixer_elem_t,
6586    ) -> ::core::ffi::c_int;
6587}
6588unsafe extern "C" {
6589    pub fn snd_mixer_selem_has_capture_switch_exclusive(
6590        elem: *mut snd_mixer_elem_t,
6591    ) -> ::core::ffi::c_int;
6592}
6593unsafe extern "C" {
6594    pub fn snd_mixer_selem_ask_playback_vol_dB(
6595        elem: *mut snd_mixer_elem_t,
6596        value: ::core::ffi::c_long,
6597        dBvalue: *mut ::core::ffi::c_long,
6598    ) -> ::core::ffi::c_int;
6599}
6600unsafe extern "C" {
6601    pub fn snd_mixer_selem_ask_capture_vol_dB(
6602        elem: *mut snd_mixer_elem_t,
6603        value: ::core::ffi::c_long,
6604        dBvalue: *mut ::core::ffi::c_long,
6605    ) -> ::core::ffi::c_int;
6606}
6607unsafe extern "C" {
6608    pub fn snd_mixer_selem_ask_playback_dB_vol(
6609        elem: *mut snd_mixer_elem_t,
6610        dBvalue: ::core::ffi::c_long,
6611        dir: ::core::ffi::c_int,
6612        value: *mut ::core::ffi::c_long,
6613    ) -> ::core::ffi::c_int;
6614}
6615unsafe extern "C" {
6616    pub fn snd_mixer_selem_ask_capture_dB_vol(
6617        elem: *mut snd_mixer_elem_t,
6618        dBvalue: ::core::ffi::c_long,
6619        dir: ::core::ffi::c_int,
6620        value: *mut ::core::ffi::c_long,
6621    ) -> ::core::ffi::c_int;
6622}
6623unsafe extern "C" {
6624    pub fn snd_mixer_selem_get_playback_volume(
6625        elem: *mut snd_mixer_elem_t,
6626        channel: snd_mixer_selem_channel_id_t,
6627        value: *mut ::core::ffi::c_long,
6628    ) -> ::core::ffi::c_int;
6629}
6630unsafe extern "C" {
6631    pub fn snd_mixer_selem_get_capture_volume(
6632        elem: *mut snd_mixer_elem_t,
6633        channel: snd_mixer_selem_channel_id_t,
6634        value: *mut ::core::ffi::c_long,
6635    ) -> ::core::ffi::c_int;
6636}
6637unsafe extern "C" {
6638    pub fn snd_mixer_selem_get_playback_dB(
6639        elem: *mut snd_mixer_elem_t,
6640        channel: snd_mixer_selem_channel_id_t,
6641        value: *mut ::core::ffi::c_long,
6642    ) -> ::core::ffi::c_int;
6643}
6644unsafe extern "C" {
6645    pub fn snd_mixer_selem_get_capture_dB(
6646        elem: *mut snd_mixer_elem_t,
6647        channel: snd_mixer_selem_channel_id_t,
6648        value: *mut ::core::ffi::c_long,
6649    ) -> ::core::ffi::c_int;
6650}
6651unsafe extern "C" {
6652    pub fn snd_mixer_selem_get_playback_switch(
6653        elem: *mut snd_mixer_elem_t,
6654        channel: snd_mixer_selem_channel_id_t,
6655        value: *mut ::core::ffi::c_int,
6656    ) -> ::core::ffi::c_int;
6657}
6658unsafe extern "C" {
6659    pub fn snd_mixer_selem_get_capture_switch(
6660        elem: *mut snd_mixer_elem_t,
6661        channel: snd_mixer_selem_channel_id_t,
6662        value: *mut ::core::ffi::c_int,
6663    ) -> ::core::ffi::c_int;
6664}
6665unsafe extern "C" {
6666    pub fn snd_mixer_selem_set_playback_volume(
6667        elem: *mut snd_mixer_elem_t,
6668        channel: snd_mixer_selem_channel_id_t,
6669        value: ::core::ffi::c_long,
6670    ) -> ::core::ffi::c_int;
6671}
6672unsafe extern "C" {
6673    pub fn snd_mixer_selem_set_capture_volume(
6674        elem: *mut snd_mixer_elem_t,
6675        channel: snd_mixer_selem_channel_id_t,
6676        value: ::core::ffi::c_long,
6677    ) -> ::core::ffi::c_int;
6678}
6679unsafe extern "C" {
6680    pub fn snd_mixer_selem_set_playback_dB(
6681        elem: *mut snd_mixer_elem_t,
6682        channel: snd_mixer_selem_channel_id_t,
6683        value: ::core::ffi::c_long,
6684        dir: ::core::ffi::c_int,
6685    ) -> ::core::ffi::c_int;
6686}
6687unsafe extern "C" {
6688    pub fn snd_mixer_selem_set_capture_dB(
6689        elem: *mut snd_mixer_elem_t,
6690        channel: snd_mixer_selem_channel_id_t,
6691        value: ::core::ffi::c_long,
6692        dir: ::core::ffi::c_int,
6693    ) -> ::core::ffi::c_int;
6694}
6695unsafe extern "C" {
6696    pub fn snd_mixer_selem_set_playback_volume_all(
6697        elem: *mut snd_mixer_elem_t,
6698        value: ::core::ffi::c_long,
6699    ) -> ::core::ffi::c_int;
6700}
6701unsafe extern "C" {
6702    pub fn snd_mixer_selem_set_capture_volume_all(
6703        elem: *mut snd_mixer_elem_t,
6704        value: ::core::ffi::c_long,
6705    ) -> ::core::ffi::c_int;
6706}
6707unsafe extern "C" {
6708    pub fn snd_mixer_selem_set_playback_dB_all(
6709        elem: *mut snd_mixer_elem_t,
6710        value: ::core::ffi::c_long,
6711        dir: ::core::ffi::c_int,
6712    ) -> ::core::ffi::c_int;
6713}
6714unsafe extern "C" {
6715    pub fn snd_mixer_selem_set_capture_dB_all(
6716        elem: *mut snd_mixer_elem_t,
6717        value: ::core::ffi::c_long,
6718        dir: ::core::ffi::c_int,
6719    ) -> ::core::ffi::c_int;
6720}
6721unsafe extern "C" {
6722    pub fn snd_mixer_selem_set_playback_switch(
6723        elem: *mut snd_mixer_elem_t,
6724        channel: snd_mixer_selem_channel_id_t,
6725        value: ::core::ffi::c_int,
6726    ) -> ::core::ffi::c_int;
6727}
6728unsafe extern "C" {
6729    pub fn snd_mixer_selem_set_capture_switch(
6730        elem: *mut snd_mixer_elem_t,
6731        channel: snd_mixer_selem_channel_id_t,
6732        value: ::core::ffi::c_int,
6733    ) -> ::core::ffi::c_int;
6734}
6735unsafe extern "C" {
6736    pub fn snd_mixer_selem_set_playback_switch_all(
6737        elem: *mut snd_mixer_elem_t,
6738        value: ::core::ffi::c_int,
6739    ) -> ::core::ffi::c_int;
6740}
6741unsafe extern "C" {
6742    pub fn snd_mixer_selem_set_capture_switch_all(
6743        elem: *mut snd_mixer_elem_t,
6744        value: ::core::ffi::c_int,
6745    ) -> ::core::ffi::c_int;
6746}
6747unsafe extern "C" {
6748    pub fn snd_mixer_selem_get_playback_volume_range(
6749        elem: *mut snd_mixer_elem_t,
6750        min: *mut ::core::ffi::c_long,
6751        max: *mut ::core::ffi::c_long,
6752    ) -> ::core::ffi::c_int;
6753}
6754unsafe extern "C" {
6755    pub fn snd_mixer_selem_get_playback_dB_range(
6756        elem: *mut snd_mixer_elem_t,
6757        min: *mut ::core::ffi::c_long,
6758        max: *mut ::core::ffi::c_long,
6759    ) -> ::core::ffi::c_int;
6760}
6761unsafe extern "C" {
6762    pub fn snd_mixer_selem_set_playback_volume_range(
6763        elem: *mut snd_mixer_elem_t,
6764        min: ::core::ffi::c_long,
6765        max: ::core::ffi::c_long,
6766    ) -> ::core::ffi::c_int;
6767}
6768unsafe extern "C" {
6769    pub fn snd_mixer_selem_get_capture_volume_range(
6770        elem: *mut snd_mixer_elem_t,
6771        min: *mut ::core::ffi::c_long,
6772        max: *mut ::core::ffi::c_long,
6773    ) -> ::core::ffi::c_int;
6774}
6775unsafe extern "C" {
6776    pub fn snd_mixer_selem_get_capture_dB_range(
6777        elem: *mut snd_mixer_elem_t,
6778        min: *mut ::core::ffi::c_long,
6779        max: *mut ::core::ffi::c_long,
6780    ) -> ::core::ffi::c_int;
6781}
6782unsafe extern "C" {
6783    pub fn snd_mixer_selem_set_capture_volume_range(
6784        elem: *mut snd_mixer_elem_t,
6785        min: ::core::ffi::c_long,
6786        max: ::core::ffi::c_long,
6787    ) -> ::core::ffi::c_int;
6788}
6789unsafe extern "C" {
6790    pub fn snd_mixer_selem_is_enumerated(elem: *mut snd_mixer_elem_t) -> ::core::ffi::c_int;
6791}
6792unsafe extern "C" {
6793    pub fn snd_mixer_selem_is_enum_playback(elem: *mut snd_mixer_elem_t) -> ::core::ffi::c_int;
6794}
6795unsafe extern "C" {
6796    pub fn snd_mixer_selem_is_enum_capture(elem: *mut snd_mixer_elem_t) -> ::core::ffi::c_int;
6797}
6798unsafe extern "C" {
6799    pub fn snd_mixer_selem_get_enum_items(elem: *mut snd_mixer_elem_t) -> ::core::ffi::c_int;
6800}
6801unsafe extern "C" {
6802    pub fn snd_mixer_selem_get_enum_item_name(
6803        elem: *mut snd_mixer_elem_t,
6804        idx: ::core::ffi::c_uint,
6805        maxlen: usize,
6806        str_: *mut ::core::ffi::c_char,
6807    ) -> ::core::ffi::c_int;
6808}
6809unsafe extern "C" {
6810    pub fn snd_mixer_selem_get_enum_item(
6811        elem: *mut snd_mixer_elem_t,
6812        channel: snd_mixer_selem_channel_id_t,
6813        idxp: *mut ::core::ffi::c_uint,
6814    ) -> ::core::ffi::c_int;
6815}
6816unsafe extern "C" {
6817    pub fn snd_mixer_selem_set_enum_item(
6818        elem: *mut snd_mixer_elem_t,
6819        channel: snd_mixer_selem_channel_id_t,
6820        idx: ::core::ffi::c_uint,
6821    ) -> ::core::ffi::c_int;
6822}
6823unsafe extern "C" {
6824    pub fn snd_mixer_selem_id_sizeof() -> usize;
6825}
6826unsafe extern "C" {
6827    pub fn snd_mixer_selem_id_malloc(ptr: *mut *mut snd_mixer_selem_id_t) -> ::core::ffi::c_int;
6828}
6829unsafe extern "C" {
6830    pub fn snd_mixer_selem_id_free(obj: *mut snd_mixer_selem_id_t);
6831}
6832unsafe extern "C" {
6833    pub fn snd_mixer_selem_id_copy(
6834        dst: *mut snd_mixer_selem_id_t,
6835        src: *const snd_mixer_selem_id_t,
6836    );
6837}
6838unsafe extern "C" {
6839    pub fn snd_mixer_selem_id_get_name(
6840        obj: *const snd_mixer_selem_id_t,
6841    ) -> *const ::core::ffi::c_char;
6842}
6843unsafe extern "C" {
6844    pub fn snd_mixer_selem_id_get_index(obj: *const snd_mixer_selem_id_t) -> ::core::ffi::c_uint;
6845}
6846unsafe extern "C" {
6847    pub fn snd_mixer_selem_id_set_name(
6848        obj: *mut snd_mixer_selem_id_t,
6849        val: *const ::core::ffi::c_char,
6850    );
6851}
6852unsafe extern "C" {
6853    pub fn snd_mixer_selem_id_set_index(obj: *mut snd_mixer_selem_id_t, val: ::core::ffi::c_uint);
6854}
6855unsafe extern "C" {
6856    pub fn snd_mixer_selem_id_parse(
6857        dst: *mut snd_mixer_selem_id_t,
6858        str_: *const ::core::ffi::c_char,
6859    ) -> ::core::ffi::c_int;
6860}
6861#[repr(C, packed)]
6862#[derive(Debug, Copy, Clone)]
6863pub struct _snd_ump_msg_hdr {
6864    pub byte2: u8,
6865    pub byte1: u8,
6866    pub _bitfield_align_1: [u8; 0],
6867    pub _bitfield_1: __BindgenBitfieldUnit<[u8; 2usize]>,
6868}
6869impl _snd_ump_msg_hdr {
6870    #[inline]
6871    pub fn channel(&self) -> u8 {
6872        unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 4u8) as u8) }
6873    }
6874    #[inline]
6875    pub fn set_channel(&mut self, val: u8) {
6876        unsafe {
6877            let val: u8 = ::core::mem::transmute(val);
6878            self._bitfield_1.set(0usize, 4u8, val as u64)
6879        }
6880    }
6881    #[inline]
6882    pub unsafe fn channel_raw(this: *const Self) -> u8 {
6883        unsafe {
6884            ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(
6885                ::core::ptr::addr_of!((*this)._bitfield_1),
6886                0usize,
6887                4u8,
6888            ) as u8)
6889        }
6890    }
6891    #[inline]
6892    pub unsafe fn set_channel_raw(this: *mut Self, val: u8) {
6893        unsafe {
6894            let val: u8 = ::core::mem::transmute(val);
6895            <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(
6896                ::core::ptr::addr_of_mut!((*this)._bitfield_1),
6897                0usize,
6898                4u8,
6899                val as u64,
6900            )
6901        }
6902    }
6903    #[inline]
6904    pub fn status(&self) -> u8 {
6905        unsafe { ::core::mem::transmute(self._bitfield_1.get(4usize, 4u8) as u8) }
6906    }
6907    #[inline]
6908    pub fn set_status(&mut self, val: u8) {
6909        unsafe {
6910            let val: u8 = ::core::mem::transmute(val);
6911            self._bitfield_1.set(4usize, 4u8, val as u64)
6912        }
6913    }
6914    #[inline]
6915    pub unsafe fn status_raw(this: *const Self) -> u8 {
6916        unsafe {
6917            ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(
6918                ::core::ptr::addr_of!((*this)._bitfield_1),
6919                4usize,
6920                4u8,
6921            ) as u8)
6922        }
6923    }
6924    #[inline]
6925    pub unsafe fn set_status_raw(this: *mut Self, val: u8) {
6926        unsafe {
6927            let val: u8 = ::core::mem::transmute(val);
6928            <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(
6929                ::core::ptr::addr_of_mut!((*this)._bitfield_1),
6930                4usize,
6931                4u8,
6932                val as u64,
6933            )
6934        }
6935    }
6936    #[inline]
6937    pub fn group(&self) -> u8 {
6938        unsafe { ::core::mem::transmute(self._bitfield_1.get(8usize, 4u8) as u8) }
6939    }
6940    #[inline]
6941    pub fn set_group(&mut self, val: u8) {
6942        unsafe {
6943            let val: u8 = ::core::mem::transmute(val);
6944            self._bitfield_1.set(8usize, 4u8, val as u64)
6945        }
6946    }
6947    #[inline]
6948    pub unsafe fn group_raw(this: *const Self) -> u8 {
6949        unsafe {
6950            ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(
6951                ::core::ptr::addr_of!((*this)._bitfield_1),
6952                8usize,
6953                4u8,
6954            ) as u8)
6955        }
6956    }
6957    #[inline]
6958    pub unsafe fn set_group_raw(this: *mut Self, val: u8) {
6959        unsafe {
6960            let val: u8 = ::core::mem::transmute(val);
6961            <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(
6962                ::core::ptr::addr_of_mut!((*this)._bitfield_1),
6963                8usize,
6964                4u8,
6965                val as u64,
6966            )
6967        }
6968    }
6969    #[inline]
6970    pub fn type_(&self) -> u8 {
6971        unsafe { ::core::mem::transmute(self._bitfield_1.get(12usize, 4u8) as u8) }
6972    }
6973    #[inline]
6974    pub fn set_type(&mut self, val: u8) {
6975        unsafe {
6976            let val: u8 = ::core::mem::transmute(val);
6977            self._bitfield_1.set(12usize, 4u8, val as u64)
6978        }
6979    }
6980    #[inline]
6981    pub unsafe fn type__raw(this: *const Self) -> u8 {
6982        unsafe {
6983            ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(
6984                ::core::ptr::addr_of!((*this)._bitfield_1),
6985                12usize,
6986                4u8,
6987            ) as u8)
6988        }
6989    }
6990    #[inline]
6991    pub unsafe fn set_type_raw(this: *mut Self, val: u8) {
6992        unsafe {
6993            let val: u8 = ::core::mem::transmute(val);
6994            <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(
6995                ::core::ptr::addr_of_mut!((*this)._bitfield_1),
6996                12usize,
6997                4u8,
6998                val as u64,
6999            )
7000        }
7001    }
7002    #[inline]
7003    pub fn new_bitfield_1(
7004        channel: u8,
7005        status: u8,
7006        group: u8,
7007        type_: u8,
7008    ) -> __BindgenBitfieldUnit<[u8; 2usize]> {
7009        let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 2usize]> = Default::default();
7010        __bindgen_bitfield_unit.set(0usize, 4u8, {
7011            let channel: u8 = unsafe { ::core::mem::transmute(channel) };
7012            channel as u64
7013        });
7014        __bindgen_bitfield_unit.set(4usize, 4u8, {
7015            let status: u8 = unsafe { ::core::mem::transmute(status) };
7016            status as u64
7017        });
7018        __bindgen_bitfield_unit.set(8usize, 4u8, {
7019            let group: u8 = unsafe { ::core::mem::transmute(group) };
7020            group as u64
7021        });
7022        __bindgen_bitfield_unit.set(12usize, 4u8, {
7023            let type_: u8 = unsafe { ::core::mem::transmute(type_) };
7024            type_ as u64
7025        });
7026        __bindgen_bitfield_unit
7027    }
7028}
7029pub type snd_ump_msg_hdr_t = _snd_ump_msg_hdr;
7030#[repr(C, packed)]
7031#[derive(Debug, Copy, Clone)]
7032pub struct _snd_ump_msg_midi1_note {
7033    pub velocity: u8,
7034    pub note: u8,
7035    pub _bitfield_align_1: [u8; 0],
7036    pub _bitfield_1: __BindgenBitfieldUnit<[u8; 2usize]>,
7037}
7038impl _snd_ump_msg_midi1_note {
7039    #[inline]
7040    pub fn channel(&self) -> u8 {
7041        unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 4u8) as u8) }
7042    }
7043    #[inline]
7044    pub fn set_channel(&mut self, val: u8) {
7045        unsafe {
7046            let val: u8 = ::core::mem::transmute(val);
7047            self._bitfield_1.set(0usize, 4u8, val as u64)
7048        }
7049    }
7050    #[inline]
7051    pub unsafe fn channel_raw(this: *const Self) -> u8 {
7052        unsafe {
7053            ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(
7054                ::core::ptr::addr_of!((*this)._bitfield_1),
7055                0usize,
7056                4u8,
7057            ) as u8)
7058        }
7059    }
7060    #[inline]
7061    pub unsafe fn set_channel_raw(this: *mut Self, val: u8) {
7062        unsafe {
7063            let val: u8 = ::core::mem::transmute(val);
7064            <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(
7065                ::core::ptr::addr_of_mut!((*this)._bitfield_1),
7066                0usize,
7067                4u8,
7068                val as u64,
7069            )
7070        }
7071    }
7072    #[inline]
7073    pub fn status(&self) -> u8 {
7074        unsafe { ::core::mem::transmute(self._bitfield_1.get(4usize, 4u8) as u8) }
7075    }
7076    #[inline]
7077    pub fn set_status(&mut self, val: u8) {
7078        unsafe {
7079            let val: u8 = ::core::mem::transmute(val);
7080            self._bitfield_1.set(4usize, 4u8, val as u64)
7081        }
7082    }
7083    #[inline]
7084    pub unsafe fn status_raw(this: *const Self) -> u8 {
7085        unsafe {
7086            ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(
7087                ::core::ptr::addr_of!((*this)._bitfield_1),
7088                4usize,
7089                4u8,
7090            ) as u8)
7091        }
7092    }
7093    #[inline]
7094    pub unsafe fn set_status_raw(this: *mut Self, val: u8) {
7095        unsafe {
7096            let val: u8 = ::core::mem::transmute(val);
7097            <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(
7098                ::core::ptr::addr_of_mut!((*this)._bitfield_1),
7099                4usize,
7100                4u8,
7101                val as u64,
7102            )
7103        }
7104    }
7105    #[inline]
7106    pub fn group(&self) -> u8 {
7107        unsafe { ::core::mem::transmute(self._bitfield_1.get(8usize, 4u8) as u8) }
7108    }
7109    #[inline]
7110    pub fn set_group(&mut self, val: u8) {
7111        unsafe {
7112            let val: u8 = ::core::mem::transmute(val);
7113            self._bitfield_1.set(8usize, 4u8, val as u64)
7114        }
7115    }
7116    #[inline]
7117    pub unsafe fn group_raw(this: *const Self) -> u8 {
7118        unsafe {
7119            ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(
7120                ::core::ptr::addr_of!((*this)._bitfield_1),
7121                8usize,
7122                4u8,
7123            ) as u8)
7124        }
7125    }
7126    #[inline]
7127    pub unsafe fn set_group_raw(this: *mut Self, val: u8) {
7128        unsafe {
7129            let val: u8 = ::core::mem::transmute(val);
7130            <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(
7131                ::core::ptr::addr_of_mut!((*this)._bitfield_1),
7132                8usize,
7133                4u8,
7134                val as u64,
7135            )
7136        }
7137    }
7138    #[inline]
7139    pub fn type_(&self) -> u8 {
7140        unsafe { ::core::mem::transmute(self._bitfield_1.get(12usize, 4u8) as u8) }
7141    }
7142    #[inline]
7143    pub fn set_type(&mut self, val: u8) {
7144        unsafe {
7145            let val: u8 = ::core::mem::transmute(val);
7146            self._bitfield_1.set(12usize, 4u8, val as u64)
7147        }
7148    }
7149    #[inline]
7150    pub unsafe fn type__raw(this: *const Self) -> u8 {
7151        unsafe {
7152            ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(
7153                ::core::ptr::addr_of!((*this)._bitfield_1),
7154                12usize,
7155                4u8,
7156            ) as u8)
7157        }
7158    }
7159    #[inline]
7160    pub unsafe fn set_type_raw(this: *mut Self, val: u8) {
7161        unsafe {
7162            let val: u8 = ::core::mem::transmute(val);
7163            <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(
7164                ::core::ptr::addr_of_mut!((*this)._bitfield_1),
7165                12usize,
7166                4u8,
7167                val as u64,
7168            )
7169        }
7170    }
7171    #[inline]
7172    pub fn new_bitfield_1(
7173        channel: u8,
7174        status: u8,
7175        group: u8,
7176        type_: u8,
7177    ) -> __BindgenBitfieldUnit<[u8; 2usize]> {
7178        let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 2usize]> = Default::default();
7179        __bindgen_bitfield_unit.set(0usize, 4u8, {
7180            let channel: u8 = unsafe { ::core::mem::transmute(channel) };
7181            channel as u64
7182        });
7183        __bindgen_bitfield_unit.set(4usize, 4u8, {
7184            let status: u8 = unsafe { ::core::mem::transmute(status) };
7185            status as u64
7186        });
7187        __bindgen_bitfield_unit.set(8usize, 4u8, {
7188            let group: u8 = unsafe { ::core::mem::transmute(group) };
7189            group as u64
7190        });
7191        __bindgen_bitfield_unit.set(12usize, 4u8, {
7192            let type_: u8 = unsafe { ::core::mem::transmute(type_) };
7193            type_ as u64
7194        });
7195        __bindgen_bitfield_unit
7196    }
7197}
7198pub type snd_ump_msg_midi1_note_t = _snd_ump_msg_midi1_note;
7199#[repr(C, packed)]
7200#[derive(Debug, Copy, Clone)]
7201pub struct _snd_ump_msg_midi1_paf {
7202    pub data: u8,
7203    pub note: u8,
7204    pub _bitfield_align_1: [u8; 0],
7205    pub _bitfield_1: __BindgenBitfieldUnit<[u8; 2usize]>,
7206}
7207impl _snd_ump_msg_midi1_paf {
7208    #[inline]
7209    pub fn channel(&self) -> u8 {
7210        unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 4u8) as u8) }
7211    }
7212    #[inline]
7213    pub fn set_channel(&mut self, val: u8) {
7214        unsafe {
7215            let val: u8 = ::core::mem::transmute(val);
7216            self._bitfield_1.set(0usize, 4u8, val as u64)
7217        }
7218    }
7219    #[inline]
7220    pub unsafe fn channel_raw(this: *const Self) -> u8 {
7221        unsafe {
7222            ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(
7223                ::core::ptr::addr_of!((*this)._bitfield_1),
7224                0usize,
7225                4u8,
7226            ) as u8)
7227        }
7228    }
7229    #[inline]
7230    pub unsafe fn set_channel_raw(this: *mut Self, val: u8) {
7231        unsafe {
7232            let val: u8 = ::core::mem::transmute(val);
7233            <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(
7234                ::core::ptr::addr_of_mut!((*this)._bitfield_1),
7235                0usize,
7236                4u8,
7237                val as u64,
7238            )
7239        }
7240    }
7241    #[inline]
7242    pub fn status(&self) -> u8 {
7243        unsafe { ::core::mem::transmute(self._bitfield_1.get(4usize, 4u8) as u8) }
7244    }
7245    #[inline]
7246    pub fn set_status(&mut self, val: u8) {
7247        unsafe {
7248            let val: u8 = ::core::mem::transmute(val);
7249            self._bitfield_1.set(4usize, 4u8, val as u64)
7250        }
7251    }
7252    #[inline]
7253    pub unsafe fn status_raw(this: *const Self) -> u8 {
7254        unsafe {
7255            ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(
7256                ::core::ptr::addr_of!((*this)._bitfield_1),
7257                4usize,
7258                4u8,
7259            ) as u8)
7260        }
7261    }
7262    #[inline]
7263    pub unsafe fn set_status_raw(this: *mut Self, val: u8) {
7264        unsafe {
7265            let val: u8 = ::core::mem::transmute(val);
7266            <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(
7267                ::core::ptr::addr_of_mut!((*this)._bitfield_1),
7268                4usize,
7269                4u8,
7270                val as u64,
7271            )
7272        }
7273    }
7274    #[inline]
7275    pub fn group(&self) -> u8 {
7276        unsafe { ::core::mem::transmute(self._bitfield_1.get(8usize, 4u8) as u8) }
7277    }
7278    #[inline]
7279    pub fn set_group(&mut self, val: u8) {
7280        unsafe {
7281            let val: u8 = ::core::mem::transmute(val);
7282            self._bitfield_1.set(8usize, 4u8, val as u64)
7283        }
7284    }
7285    #[inline]
7286    pub unsafe fn group_raw(this: *const Self) -> u8 {
7287        unsafe {
7288            ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(
7289                ::core::ptr::addr_of!((*this)._bitfield_1),
7290                8usize,
7291                4u8,
7292            ) as u8)
7293        }
7294    }
7295    #[inline]
7296    pub unsafe fn set_group_raw(this: *mut Self, val: u8) {
7297        unsafe {
7298            let val: u8 = ::core::mem::transmute(val);
7299            <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(
7300                ::core::ptr::addr_of_mut!((*this)._bitfield_1),
7301                8usize,
7302                4u8,
7303                val as u64,
7304            )
7305        }
7306    }
7307    #[inline]
7308    pub fn type_(&self) -> u8 {
7309        unsafe { ::core::mem::transmute(self._bitfield_1.get(12usize, 4u8) as u8) }
7310    }
7311    #[inline]
7312    pub fn set_type(&mut self, val: u8) {
7313        unsafe {
7314            let val: u8 = ::core::mem::transmute(val);
7315            self._bitfield_1.set(12usize, 4u8, val as u64)
7316        }
7317    }
7318    #[inline]
7319    pub unsafe fn type__raw(this: *const Self) -> u8 {
7320        unsafe {
7321            ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(
7322                ::core::ptr::addr_of!((*this)._bitfield_1),
7323                12usize,
7324                4u8,
7325            ) as u8)
7326        }
7327    }
7328    #[inline]
7329    pub unsafe fn set_type_raw(this: *mut Self, val: u8) {
7330        unsafe {
7331            let val: u8 = ::core::mem::transmute(val);
7332            <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(
7333                ::core::ptr::addr_of_mut!((*this)._bitfield_1),
7334                12usize,
7335                4u8,
7336                val as u64,
7337            )
7338        }
7339    }
7340    #[inline]
7341    pub fn new_bitfield_1(
7342        channel: u8,
7343        status: u8,
7344        group: u8,
7345        type_: u8,
7346    ) -> __BindgenBitfieldUnit<[u8; 2usize]> {
7347        let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 2usize]> = Default::default();
7348        __bindgen_bitfield_unit.set(0usize, 4u8, {
7349            let channel: u8 = unsafe { ::core::mem::transmute(channel) };
7350            channel as u64
7351        });
7352        __bindgen_bitfield_unit.set(4usize, 4u8, {
7353            let status: u8 = unsafe { ::core::mem::transmute(status) };
7354            status as u64
7355        });
7356        __bindgen_bitfield_unit.set(8usize, 4u8, {
7357            let group: u8 = unsafe { ::core::mem::transmute(group) };
7358            group as u64
7359        });
7360        __bindgen_bitfield_unit.set(12usize, 4u8, {
7361            let type_: u8 = unsafe { ::core::mem::transmute(type_) };
7362            type_ as u64
7363        });
7364        __bindgen_bitfield_unit
7365    }
7366}
7367pub type snd_ump_msg_midi1_paf_t = _snd_ump_msg_midi1_paf;
7368#[repr(C, packed)]
7369#[derive(Debug, Copy, Clone)]
7370pub struct _snd_ump_msg_midi1_cc {
7371    pub data: u8,
7372    pub index: u8,
7373    pub _bitfield_align_1: [u8; 0],
7374    pub _bitfield_1: __BindgenBitfieldUnit<[u8; 2usize]>,
7375}
7376impl _snd_ump_msg_midi1_cc {
7377    #[inline]
7378    pub fn channel(&self) -> u8 {
7379        unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 4u8) as u8) }
7380    }
7381    #[inline]
7382    pub fn set_channel(&mut self, val: u8) {
7383        unsafe {
7384            let val: u8 = ::core::mem::transmute(val);
7385            self._bitfield_1.set(0usize, 4u8, val as u64)
7386        }
7387    }
7388    #[inline]
7389    pub unsafe fn channel_raw(this: *const Self) -> u8 {
7390        unsafe {
7391            ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(
7392                ::core::ptr::addr_of!((*this)._bitfield_1),
7393                0usize,
7394                4u8,
7395            ) as u8)
7396        }
7397    }
7398    #[inline]
7399    pub unsafe fn set_channel_raw(this: *mut Self, val: u8) {
7400        unsafe {
7401            let val: u8 = ::core::mem::transmute(val);
7402            <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(
7403                ::core::ptr::addr_of_mut!((*this)._bitfield_1),
7404                0usize,
7405                4u8,
7406                val as u64,
7407            )
7408        }
7409    }
7410    #[inline]
7411    pub fn status(&self) -> u8 {
7412        unsafe { ::core::mem::transmute(self._bitfield_1.get(4usize, 4u8) as u8) }
7413    }
7414    #[inline]
7415    pub fn set_status(&mut self, val: u8) {
7416        unsafe {
7417            let val: u8 = ::core::mem::transmute(val);
7418            self._bitfield_1.set(4usize, 4u8, val as u64)
7419        }
7420    }
7421    #[inline]
7422    pub unsafe fn status_raw(this: *const Self) -> u8 {
7423        unsafe {
7424            ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(
7425                ::core::ptr::addr_of!((*this)._bitfield_1),
7426                4usize,
7427                4u8,
7428            ) as u8)
7429        }
7430    }
7431    #[inline]
7432    pub unsafe fn set_status_raw(this: *mut Self, val: u8) {
7433        unsafe {
7434            let val: u8 = ::core::mem::transmute(val);
7435            <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(
7436                ::core::ptr::addr_of_mut!((*this)._bitfield_1),
7437                4usize,
7438                4u8,
7439                val as u64,
7440            )
7441        }
7442    }
7443    #[inline]
7444    pub fn group(&self) -> u8 {
7445        unsafe { ::core::mem::transmute(self._bitfield_1.get(8usize, 4u8) as u8) }
7446    }
7447    #[inline]
7448    pub fn set_group(&mut self, val: u8) {
7449        unsafe {
7450            let val: u8 = ::core::mem::transmute(val);
7451            self._bitfield_1.set(8usize, 4u8, val as u64)
7452        }
7453    }
7454    #[inline]
7455    pub unsafe fn group_raw(this: *const Self) -> u8 {
7456        unsafe {
7457            ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(
7458                ::core::ptr::addr_of!((*this)._bitfield_1),
7459                8usize,
7460                4u8,
7461            ) as u8)
7462        }
7463    }
7464    #[inline]
7465    pub unsafe fn set_group_raw(this: *mut Self, val: u8) {
7466        unsafe {
7467            let val: u8 = ::core::mem::transmute(val);
7468            <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(
7469                ::core::ptr::addr_of_mut!((*this)._bitfield_1),
7470                8usize,
7471                4u8,
7472                val as u64,
7473            )
7474        }
7475    }
7476    #[inline]
7477    pub fn type_(&self) -> u8 {
7478        unsafe { ::core::mem::transmute(self._bitfield_1.get(12usize, 4u8) as u8) }
7479    }
7480    #[inline]
7481    pub fn set_type(&mut self, val: u8) {
7482        unsafe {
7483            let val: u8 = ::core::mem::transmute(val);
7484            self._bitfield_1.set(12usize, 4u8, val as u64)
7485        }
7486    }
7487    #[inline]
7488    pub unsafe fn type__raw(this: *const Self) -> u8 {
7489        unsafe {
7490            ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(
7491                ::core::ptr::addr_of!((*this)._bitfield_1),
7492                12usize,
7493                4u8,
7494            ) as u8)
7495        }
7496    }
7497    #[inline]
7498    pub unsafe fn set_type_raw(this: *mut Self, val: u8) {
7499        unsafe {
7500            let val: u8 = ::core::mem::transmute(val);
7501            <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(
7502                ::core::ptr::addr_of_mut!((*this)._bitfield_1),
7503                12usize,
7504                4u8,
7505                val as u64,
7506            )
7507        }
7508    }
7509    #[inline]
7510    pub fn new_bitfield_1(
7511        channel: u8,
7512        status: u8,
7513        group: u8,
7514        type_: u8,
7515    ) -> __BindgenBitfieldUnit<[u8; 2usize]> {
7516        let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 2usize]> = Default::default();
7517        __bindgen_bitfield_unit.set(0usize, 4u8, {
7518            let channel: u8 = unsafe { ::core::mem::transmute(channel) };
7519            channel as u64
7520        });
7521        __bindgen_bitfield_unit.set(4usize, 4u8, {
7522            let status: u8 = unsafe { ::core::mem::transmute(status) };
7523            status as u64
7524        });
7525        __bindgen_bitfield_unit.set(8usize, 4u8, {
7526            let group: u8 = unsafe { ::core::mem::transmute(group) };
7527            group as u64
7528        });
7529        __bindgen_bitfield_unit.set(12usize, 4u8, {
7530            let type_: u8 = unsafe { ::core::mem::transmute(type_) };
7531            type_ as u64
7532        });
7533        __bindgen_bitfield_unit
7534    }
7535}
7536pub type snd_ump_msg_midi1_cc_t = _snd_ump_msg_midi1_cc;
7537#[repr(C, packed)]
7538#[derive(Debug, Copy, Clone)]
7539pub struct _snd_ump_msg_midi1_program {
7540    pub reserved: u8,
7541    pub program: u8,
7542    pub _bitfield_align_1: [u8; 0],
7543    pub _bitfield_1: __BindgenBitfieldUnit<[u8; 2usize]>,
7544}
7545impl _snd_ump_msg_midi1_program {
7546    #[inline]
7547    pub fn channel(&self) -> u8 {
7548        unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 4u8) as u8) }
7549    }
7550    #[inline]
7551    pub fn set_channel(&mut self, val: u8) {
7552        unsafe {
7553            let val: u8 = ::core::mem::transmute(val);
7554            self._bitfield_1.set(0usize, 4u8, val as u64)
7555        }
7556    }
7557    #[inline]
7558    pub unsafe fn channel_raw(this: *const Self) -> u8 {
7559        unsafe {
7560            ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(
7561                ::core::ptr::addr_of!((*this)._bitfield_1),
7562                0usize,
7563                4u8,
7564            ) as u8)
7565        }
7566    }
7567    #[inline]
7568    pub unsafe fn set_channel_raw(this: *mut Self, val: u8) {
7569        unsafe {
7570            let val: u8 = ::core::mem::transmute(val);
7571            <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(
7572                ::core::ptr::addr_of_mut!((*this)._bitfield_1),
7573                0usize,
7574                4u8,
7575                val as u64,
7576            )
7577        }
7578    }
7579    #[inline]
7580    pub fn status(&self) -> u8 {
7581        unsafe { ::core::mem::transmute(self._bitfield_1.get(4usize, 4u8) as u8) }
7582    }
7583    #[inline]
7584    pub fn set_status(&mut self, val: u8) {
7585        unsafe {
7586            let val: u8 = ::core::mem::transmute(val);
7587            self._bitfield_1.set(4usize, 4u8, val as u64)
7588        }
7589    }
7590    #[inline]
7591    pub unsafe fn status_raw(this: *const Self) -> u8 {
7592        unsafe {
7593            ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(
7594                ::core::ptr::addr_of!((*this)._bitfield_1),
7595                4usize,
7596                4u8,
7597            ) as u8)
7598        }
7599    }
7600    #[inline]
7601    pub unsafe fn set_status_raw(this: *mut Self, val: u8) {
7602        unsafe {
7603            let val: u8 = ::core::mem::transmute(val);
7604            <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(
7605                ::core::ptr::addr_of_mut!((*this)._bitfield_1),
7606                4usize,
7607                4u8,
7608                val as u64,
7609            )
7610        }
7611    }
7612    #[inline]
7613    pub fn group(&self) -> u8 {
7614        unsafe { ::core::mem::transmute(self._bitfield_1.get(8usize, 4u8) as u8) }
7615    }
7616    #[inline]
7617    pub fn set_group(&mut self, val: u8) {
7618        unsafe {
7619            let val: u8 = ::core::mem::transmute(val);
7620            self._bitfield_1.set(8usize, 4u8, val as u64)
7621        }
7622    }
7623    #[inline]
7624    pub unsafe fn group_raw(this: *const Self) -> u8 {
7625        unsafe {
7626            ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(
7627                ::core::ptr::addr_of!((*this)._bitfield_1),
7628                8usize,
7629                4u8,
7630            ) as u8)
7631        }
7632    }
7633    #[inline]
7634    pub unsafe fn set_group_raw(this: *mut Self, val: u8) {
7635        unsafe {
7636            let val: u8 = ::core::mem::transmute(val);
7637            <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(
7638                ::core::ptr::addr_of_mut!((*this)._bitfield_1),
7639                8usize,
7640                4u8,
7641                val as u64,
7642            )
7643        }
7644    }
7645    #[inline]
7646    pub fn type_(&self) -> u8 {
7647        unsafe { ::core::mem::transmute(self._bitfield_1.get(12usize, 4u8) as u8) }
7648    }
7649    #[inline]
7650    pub fn set_type(&mut self, val: u8) {
7651        unsafe {
7652            let val: u8 = ::core::mem::transmute(val);
7653            self._bitfield_1.set(12usize, 4u8, val as u64)
7654        }
7655    }
7656    #[inline]
7657    pub unsafe fn type__raw(this: *const Self) -> u8 {
7658        unsafe {
7659            ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(
7660                ::core::ptr::addr_of!((*this)._bitfield_1),
7661                12usize,
7662                4u8,
7663            ) as u8)
7664        }
7665    }
7666    #[inline]
7667    pub unsafe fn set_type_raw(this: *mut Self, val: u8) {
7668        unsafe {
7669            let val: u8 = ::core::mem::transmute(val);
7670            <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(
7671                ::core::ptr::addr_of_mut!((*this)._bitfield_1),
7672                12usize,
7673                4u8,
7674                val as u64,
7675            )
7676        }
7677    }
7678    #[inline]
7679    pub fn new_bitfield_1(
7680        channel: u8,
7681        status: u8,
7682        group: u8,
7683        type_: u8,
7684    ) -> __BindgenBitfieldUnit<[u8; 2usize]> {
7685        let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 2usize]> = Default::default();
7686        __bindgen_bitfield_unit.set(0usize, 4u8, {
7687            let channel: u8 = unsafe { ::core::mem::transmute(channel) };
7688            channel as u64
7689        });
7690        __bindgen_bitfield_unit.set(4usize, 4u8, {
7691            let status: u8 = unsafe { ::core::mem::transmute(status) };
7692            status as u64
7693        });
7694        __bindgen_bitfield_unit.set(8usize, 4u8, {
7695            let group: u8 = unsafe { ::core::mem::transmute(group) };
7696            group as u64
7697        });
7698        __bindgen_bitfield_unit.set(12usize, 4u8, {
7699            let type_: u8 = unsafe { ::core::mem::transmute(type_) };
7700            type_ as u64
7701        });
7702        __bindgen_bitfield_unit
7703    }
7704}
7705pub type snd_ump_msg_midi1_program_t = _snd_ump_msg_midi1_program;
7706#[repr(C, packed)]
7707#[derive(Debug, Copy, Clone)]
7708pub struct _snd_ump_msg_midi1_caf {
7709    pub reserved: u8,
7710    pub data: u8,
7711    pub _bitfield_align_1: [u8; 0],
7712    pub _bitfield_1: __BindgenBitfieldUnit<[u8; 2usize]>,
7713}
7714impl _snd_ump_msg_midi1_caf {
7715    #[inline]
7716    pub fn channel(&self) -> u8 {
7717        unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 4u8) as u8) }
7718    }
7719    #[inline]
7720    pub fn set_channel(&mut self, val: u8) {
7721        unsafe {
7722            let val: u8 = ::core::mem::transmute(val);
7723            self._bitfield_1.set(0usize, 4u8, val as u64)
7724        }
7725    }
7726    #[inline]
7727    pub unsafe fn channel_raw(this: *const Self) -> u8 {
7728        unsafe {
7729            ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(
7730                ::core::ptr::addr_of!((*this)._bitfield_1),
7731                0usize,
7732                4u8,
7733            ) as u8)
7734        }
7735    }
7736    #[inline]
7737    pub unsafe fn set_channel_raw(this: *mut Self, val: u8) {
7738        unsafe {
7739            let val: u8 = ::core::mem::transmute(val);
7740            <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(
7741                ::core::ptr::addr_of_mut!((*this)._bitfield_1),
7742                0usize,
7743                4u8,
7744                val as u64,
7745            )
7746        }
7747    }
7748    #[inline]
7749    pub fn status(&self) -> u8 {
7750        unsafe { ::core::mem::transmute(self._bitfield_1.get(4usize, 4u8) as u8) }
7751    }
7752    #[inline]
7753    pub fn set_status(&mut self, val: u8) {
7754        unsafe {
7755            let val: u8 = ::core::mem::transmute(val);
7756            self._bitfield_1.set(4usize, 4u8, val as u64)
7757        }
7758    }
7759    #[inline]
7760    pub unsafe fn status_raw(this: *const Self) -> u8 {
7761        unsafe {
7762            ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(
7763                ::core::ptr::addr_of!((*this)._bitfield_1),
7764                4usize,
7765                4u8,
7766            ) as u8)
7767        }
7768    }
7769    #[inline]
7770    pub unsafe fn set_status_raw(this: *mut Self, val: u8) {
7771        unsafe {
7772            let val: u8 = ::core::mem::transmute(val);
7773            <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(
7774                ::core::ptr::addr_of_mut!((*this)._bitfield_1),
7775                4usize,
7776                4u8,
7777                val as u64,
7778            )
7779        }
7780    }
7781    #[inline]
7782    pub fn group(&self) -> u8 {
7783        unsafe { ::core::mem::transmute(self._bitfield_1.get(8usize, 4u8) as u8) }
7784    }
7785    #[inline]
7786    pub fn set_group(&mut self, val: u8) {
7787        unsafe {
7788            let val: u8 = ::core::mem::transmute(val);
7789            self._bitfield_1.set(8usize, 4u8, val as u64)
7790        }
7791    }
7792    #[inline]
7793    pub unsafe fn group_raw(this: *const Self) -> u8 {
7794        unsafe {
7795            ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(
7796                ::core::ptr::addr_of!((*this)._bitfield_1),
7797                8usize,
7798                4u8,
7799            ) as u8)
7800        }
7801    }
7802    #[inline]
7803    pub unsafe fn set_group_raw(this: *mut Self, val: u8) {
7804        unsafe {
7805            let val: u8 = ::core::mem::transmute(val);
7806            <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(
7807                ::core::ptr::addr_of_mut!((*this)._bitfield_1),
7808                8usize,
7809                4u8,
7810                val as u64,
7811            )
7812        }
7813    }
7814    #[inline]
7815    pub fn type_(&self) -> u8 {
7816        unsafe { ::core::mem::transmute(self._bitfield_1.get(12usize, 4u8) as u8) }
7817    }
7818    #[inline]
7819    pub fn set_type(&mut self, val: u8) {
7820        unsafe {
7821            let val: u8 = ::core::mem::transmute(val);
7822            self._bitfield_1.set(12usize, 4u8, val as u64)
7823        }
7824    }
7825    #[inline]
7826    pub unsafe fn type__raw(this: *const Self) -> u8 {
7827        unsafe {
7828            ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(
7829                ::core::ptr::addr_of!((*this)._bitfield_1),
7830                12usize,
7831                4u8,
7832            ) as u8)
7833        }
7834    }
7835    #[inline]
7836    pub unsafe fn set_type_raw(this: *mut Self, val: u8) {
7837        unsafe {
7838            let val: u8 = ::core::mem::transmute(val);
7839            <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(
7840                ::core::ptr::addr_of_mut!((*this)._bitfield_1),
7841                12usize,
7842                4u8,
7843                val as u64,
7844            )
7845        }
7846    }
7847    #[inline]
7848    pub fn new_bitfield_1(
7849        channel: u8,
7850        status: u8,
7851        group: u8,
7852        type_: u8,
7853    ) -> __BindgenBitfieldUnit<[u8; 2usize]> {
7854        let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 2usize]> = Default::default();
7855        __bindgen_bitfield_unit.set(0usize, 4u8, {
7856            let channel: u8 = unsafe { ::core::mem::transmute(channel) };
7857            channel as u64
7858        });
7859        __bindgen_bitfield_unit.set(4usize, 4u8, {
7860            let status: u8 = unsafe { ::core::mem::transmute(status) };
7861            status as u64
7862        });
7863        __bindgen_bitfield_unit.set(8usize, 4u8, {
7864            let group: u8 = unsafe { ::core::mem::transmute(group) };
7865            group as u64
7866        });
7867        __bindgen_bitfield_unit.set(12usize, 4u8, {
7868            let type_: u8 = unsafe { ::core::mem::transmute(type_) };
7869            type_ as u64
7870        });
7871        __bindgen_bitfield_unit
7872    }
7873}
7874pub type snd_ump_msg_midi1_caf_t = _snd_ump_msg_midi1_caf;
7875#[repr(C, packed)]
7876#[derive(Debug, Copy, Clone)]
7877pub struct _snd_ump_msg_midi1_pitchbend {
7878    pub data_msb: u8,
7879    pub data_lsb: u8,
7880    pub _bitfield_align_1: [u8; 0],
7881    pub _bitfield_1: __BindgenBitfieldUnit<[u8; 2usize]>,
7882}
7883impl _snd_ump_msg_midi1_pitchbend {
7884    #[inline]
7885    pub fn channel(&self) -> u8 {
7886        unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 4u8) as u8) }
7887    }
7888    #[inline]
7889    pub fn set_channel(&mut self, val: u8) {
7890        unsafe {
7891            let val: u8 = ::core::mem::transmute(val);
7892            self._bitfield_1.set(0usize, 4u8, val as u64)
7893        }
7894    }
7895    #[inline]
7896    pub unsafe fn channel_raw(this: *const Self) -> u8 {
7897        unsafe {
7898            ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(
7899                ::core::ptr::addr_of!((*this)._bitfield_1),
7900                0usize,
7901                4u8,
7902            ) as u8)
7903        }
7904    }
7905    #[inline]
7906    pub unsafe fn set_channel_raw(this: *mut Self, val: u8) {
7907        unsafe {
7908            let val: u8 = ::core::mem::transmute(val);
7909            <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(
7910                ::core::ptr::addr_of_mut!((*this)._bitfield_1),
7911                0usize,
7912                4u8,
7913                val as u64,
7914            )
7915        }
7916    }
7917    #[inline]
7918    pub fn status(&self) -> u8 {
7919        unsafe { ::core::mem::transmute(self._bitfield_1.get(4usize, 4u8) as u8) }
7920    }
7921    #[inline]
7922    pub fn set_status(&mut self, val: u8) {
7923        unsafe {
7924            let val: u8 = ::core::mem::transmute(val);
7925            self._bitfield_1.set(4usize, 4u8, val as u64)
7926        }
7927    }
7928    #[inline]
7929    pub unsafe fn status_raw(this: *const Self) -> u8 {
7930        unsafe {
7931            ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(
7932                ::core::ptr::addr_of!((*this)._bitfield_1),
7933                4usize,
7934                4u8,
7935            ) as u8)
7936        }
7937    }
7938    #[inline]
7939    pub unsafe fn set_status_raw(this: *mut Self, val: u8) {
7940        unsafe {
7941            let val: u8 = ::core::mem::transmute(val);
7942            <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(
7943                ::core::ptr::addr_of_mut!((*this)._bitfield_1),
7944                4usize,
7945                4u8,
7946                val as u64,
7947            )
7948        }
7949    }
7950    #[inline]
7951    pub fn group(&self) -> u8 {
7952        unsafe { ::core::mem::transmute(self._bitfield_1.get(8usize, 4u8) as u8) }
7953    }
7954    #[inline]
7955    pub fn set_group(&mut self, val: u8) {
7956        unsafe {
7957            let val: u8 = ::core::mem::transmute(val);
7958            self._bitfield_1.set(8usize, 4u8, val as u64)
7959        }
7960    }
7961    #[inline]
7962    pub unsafe fn group_raw(this: *const Self) -> u8 {
7963        unsafe {
7964            ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(
7965                ::core::ptr::addr_of!((*this)._bitfield_1),
7966                8usize,
7967                4u8,
7968            ) as u8)
7969        }
7970    }
7971    #[inline]
7972    pub unsafe fn set_group_raw(this: *mut Self, val: u8) {
7973        unsafe {
7974            let val: u8 = ::core::mem::transmute(val);
7975            <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(
7976                ::core::ptr::addr_of_mut!((*this)._bitfield_1),
7977                8usize,
7978                4u8,
7979                val as u64,
7980            )
7981        }
7982    }
7983    #[inline]
7984    pub fn type_(&self) -> u8 {
7985        unsafe { ::core::mem::transmute(self._bitfield_1.get(12usize, 4u8) as u8) }
7986    }
7987    #[inline]
7988    pub fn set_type(&mut self, val: u8) {
7989        unsafe {
7990            let val: u8 = ::core::mem::transmute(val);
7991            self._bitfield_1.set(12usize, 4u8, val as u64)
7992        }
7993    }
7994    #[inline]
7995    pub unsafe fn type__raw(this: *const Self) -> u8 {
7996        unsafe {
7997            ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(
7998                ::core::ptr::addr_of!((*this)._bitfield_1),
7999                12usize,
8000                4u8,
8001            ) as u8)
8002        }
8003    }
8004    #[inline]
8005    pub unsafe fn set_type_raw(this: *mut Self, val: u8) {
8006        unsafe {
8007            let val: u8 = ::core::mem::transmute(val);
8008            <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(
8009                ::core::ptr::addr_of_mut!((*this)._bitfield_1),
8010                12usize,
8011                4u8,
8012                val as u64,
8013            )
8014        }
8015    }
8016    #[inline]
8017    pub fn new_bitfield_1(
8018        channel: u8,
8019        status: u8,
8020        group: u8,
8021        type_: u8,
8022    ) -> __BindgenBitfieldUnit<[u8; 2usize]> {
8023        let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 2usize]> = Default::default();
8024        __bindgen_bitfield_unit.set(0usize, 4u8, {
8025            let channel: u8 = unsafe { ::core::mem::transmute(channel) };
8026            channel as u64
8027        });
8028        __bindgen_bitfield_unit.set(4usize, 4u8, {
8029            let status: u8 = unsafe { ::core::mem::transmute(status) };
8030            status as u64
8031        });
8032        __bindgen_bitfield_unit.set(8usize, 4u8, {
8033            let group: u8 = unsafe { ::core::mem::transmute(group) };
8034            group as u64
8035        });
8036        __bindgen_bitfield_unit.set(12usize, 4u8, {
8037            let type_: u8 = unsafe { ::core::mem::transmute(type_) };
8038            type_ as u64
8039        });
8040        __bindgen_bitfield_unit
8041    }
8042}
8043pub type snd_ump_msg_midi1_pitchbend_t = _snd_ump_msg_midi1_pitchbend;
8044#[repr(C, packed)]
8045#[derive(Debug, Copy, Clone)]
8046pub struct snd_ump_msg_system {
8047    pub parm2: u8,
8048    pub parm1: u8,
8049    pub status: u8,
8050    pub _bitfield_align_1: [u8; 0],
8051    pub _bitfield_1: __BindgenBitfieldUnit<[u8; 1usize]>,
8052}
8053impl snd_ump_msg_system {
8054    #[inline]
8055    pub fn group(&self) -> u8 {
8056        unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 4u8) as u8) }
8057    }
8058    #[inline]
8059    pub fn set_group(&mut self, val: u8) {
8060        unsafe {
8061            let val: u8 = ::core::mem::transmute(val);
8062            self._bitfield_1.set(0usize, 4u8, val as u64)
8063        }
8064    }
8065    #[inline]
8066    pub unsafe fn group_raw(this: *const Self) -> u8 {
8067        unsafe {
8068            ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get(
8069                ::core::ptr::addr_of!((*this)._bitfield_1),
8070                0usize,
8071                4u8,
8072            ) as u8)
8073        }
8074    }
8075    #[inline]
8076    pub unsafe fn set_group_raw(this: *mut Self, val: u8) {
8077        unsafe {
8078            let val: u8 = ::core::mem::transmute(val);
8079            <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set(
8080                ::core::ptr::addr_of_mut!((*this)._bitfield_1),
8081                0usize,
8082                4u8,
8083                val as u64,
8084            )
8085        }
8086    }
8087    #[inline]
8088    pub fn type_(&self) -> u8 {
8089        unsafe { ::core::mem::transmute(self._bitfield_1.get(4usize, 4u8) as u8) }
8090    }
8091    #[inline]
8092    pub fn set_type(&mut self, val: u8) {
8093        unsafe {
8094            let val: u8 = ::core::mem::transmute(val);
8095            self._bitfield_1.set(4usize, 4u8, val as u64)
8096        }
8097    }
8098    #[inline]
8099    pub unsafe fn type__raw(this: *const Self) -> u8 {
8100        unsafe {
8101            ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get(
8102                ::core::ptr::addr_of!((*this)._bitfield_1),
8103                4usize,
8104                4u8,
8105            ) as u8)
8106        }
8107    }
8108    #[inline]
8109    pub unsafe fn set_type_raw(this: *mut Self, val: u8) {
8110        unsafe {
8111            let val: u8 = ::core::mem::transmute(val);
8112            <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set(
8113                ::core::ptr::addr_of_mut!((*this)._bitfield_1),
8114                4usize,
8115                4u8,
8116                val as u64,
8117            )
8118        }
8119    }
8120    #[inline]
8121    pub fn new_bitfield_1(group: u8, type_: u8) -> __BindgenBitfieldUnit<[u8; 1usize]> {
8122        let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 1usize]> = Default::default();
8123        __bindgen_bitfield_unit.set(0usize, 4u8, {
8124            let group: u8 = unsafe { ::core::mem::transmute(group) };
8125            group as u64
8126        });
8127        __bindgen_bitfield_unit.set(4usize, 4u8, {
8128            let type_: u8 = unsafe { ::core::mem::transmute(type_) };
8129            type_ as u64
8130        });
8131        __bindgen_bitfield_unit
8132    }
8133}
8134pub type snd_ump_msg_system_t = snd_ump_msg_system;
8135#[repr(C)]
8136#[derive(Copy, Clone)]
8137pub union _snd_ump_msg_midi1 {
8138    pub note_on: snd_ump_msg_midi1_note_t,
8139    pub note_off: snd_ump_msg_midi1_note_t,
8140    pub poly_pressure: snd_ump_msg_midi1_paf_t,
8141    pub control_change: snd_ump_msg_midi1_cc_t,
8142    pub program_change: snd_ump_msg_midi1_program_t,
8143    pub channel_pressure: snd_ump_msg_midi1_caf_t,
8144    pub pitchbend: snd_ump_msg_midi1_pitchbend_t,
8145    pub system: snd_ump_msg_system_t,
8146    pub hdr: snd_ump_msg_hdr_t,
8147    pub raw: u32,
8148}
8149pub type snd_ump_msg_midi1_t = _snd_ump_msg_midi1;
8150#[repr(C, packed)]
8151#[derive(Debug, Copy, Clone)]
8152pub struct _snd_ump_msg_midi2_note {
8153    pub attr_type: u8,
8154    pub note: u8,
8155    pub _bitfield_align_1: [u8; 0],
8156    pub _bitfield_1: __BindgenBitfieldUnit<[u8; 2usize]>,
8157    pub attr_data: u16,
8158    pub velocity: u16,
8159}
8160impl _snd_ump_msg_midi2_note {
8161    #[inline]
8162    pub fn channel(&self) -> u8 {
8163        unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 4u8) as u8) }
8164    }
8165    #[inline]
8166    pub fn set_channel(&mut self, val: u8) {
8167        unsafe {
8168            let val: u8 = ::core::mem::transmute(val);
8169            self._bitfield_1.set(0usize, 4u8, val as u64)
8170        }
8171    }
8172    #[inline]
8173    pub unsafe fn channel_raw(this: *const Self) -> u8 {
8174        unsafe {
8175            ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(
8176                ::core::ptr::addr_of!((*this)._bitfield_1),
8177                0usize,
8178                4u8,
8179            ) as u8)
8180        }
8181    }
8182    #[inline]
8183    pub unsafe fn set_channel_raw(this: *mut Self, val: u8) {
8184        unsafe {
8185            let val: u8 = ::core::mem::transmute(val);
8186            <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(
8187                ::core::ptr::addr_of_mut!((*this)._bitfield_1),
8188                0usize,
8189                4u8,
8190                val as u64,
8191            )
8192        }
8193    }
8194    #[inline]
8195    pub fn status(&self) -> u8 {
8196        unsafe { ::core::mem::transmute(self._bitfield_1.get(4usize, 4u8) as u8) }
8197    }
8198    #[inline]
8199    pub fn set_status(&mut self, val: u8) {
8200        unsafe {
8201            let val: u8 = ::core::mem::transmute(val);
8202            self._bitfield_1.set(4usize, 4u8, val as u64)
8203        }
8204    }
8205    #[inline]
8206    pub unsafe fn status_raw(this: *const Self) -> u8 {
8207        unsafe {
8208            ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(
8209                ::core::ptr::addr_of!((*this)._bitfield_1),
8210                4usize,
8211                4u8,
8212            ) as u8)
8213        }
8214    }
8215    #[inline]
8216    pub unsafe fn set_status_raw(this: *mut Self, val: u8) {
8217        unsafe {
8218            let val: u8 = ::core::mem::transmute(val);
8219            <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(
8220                ::core::ptr::addr_of_mut!((*this)._bitfield_1),
8221                4usize,
8222                4u8,
8223                val as u64,
8224            )
8225        }
8226    }
8227    #[inline]
8228    pub fn group(&self) -> u8 {
8229        unsafe { ::core::mem::transmute(self._bitfield_1.get(8usize, 4u8) as u8) }
8230    }
8231    #[inline]
8232    pub fn set_group(&mut self, val: u8) {
8233        unsafe {
8234            let val: u8 = ::core::mem::transmute(val);
8235            self._bitfield_1.set(8usize, 4u8, val as u64)
8236        }
8237    }
8238    #[inline]
8239    pub unsafe fn group_raw(this: *const Self) -> u8 {
8240        unsafe {
8241            ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(
8242                ::core::ptr::addr_of!((*this)._bitfield_1),
8243                8usize,
8244                4u8,
8245            ) as u8)
8246        }
8247    }
8248    #[inline]
8249    pub unsafe fn set_group_raw(this: *mut Self, val: u8) {
8250        unsafe {
8251            let val: u8 = ::core::mem::transmute(val);
8252            <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(
8253                ::core::ptr::addr_of_mut!((*this)._bitfield_1),
8254                8usize,
8255                4u8,
8256                val as u64,
8257            )
8258        }
8259    }
8260    #[inline]
8261    pub fn type_(&self) -> u8 {
8262        unsafe { ::core::mem::transmute(self._bitfield_1.get(12usize, 4u8) as u8) }
8263    }
8264    #[inline]
8265    pub fn set_type(&mut self, val: u8) {
8266        unsafe {
8267            let val: u8 = ::core::mem::transmute(val);
8268            self._bitfield_1.set(12usize, 4u8, val as u64)
8269        }
8270    }
8271    #[inline]
8272    pub unsafe fn type__raw(this: *const Self) -> u8 {
8273        unsafe {
8274            ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(
8275                ::core::ptr::addr_of!((*this)._bitfield_1),
8276                12usize,
8277                4u8,
8278            ) as u8)
8279        }
8280    }
8281    #[inline]
8282    pub unsafe fn set_type_raw(this: *mut Self, val: u8) {
8283        unsafe {
8284            let val: u8 = ::core::mem::transmute(val);
8285            <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(
8286                ::core::ptr::addr_of_mut!((*this)._bitfield_1),
8287                12usize,
8288                4u8,
8289                val as u64,
8290            )
8291        }
8292    }
8293    #[inline]
8294    pub fn new_bitfield_1(
8295        channel: u8,
8296        status: u8,
8297        group: u8,
8298        type_: u8,
8299    ) -> __BindgenBitfieldUnit<[u8; 2usize]> {
8300        let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 2usize]> = Default::default();
8301        __bindgen_bitfield_unit.set(0usize, 4u8, {
8302            let channel: u8 = unsafe { ::core::mem::transmute(channel) };
8303            channel as u64
8304        });
8305        __bindgen_bitfield_unit.set(4usize, 4u8, {
8306            let status: u8 = unsafe { ::core::mem::transmute(status) };
8307            status as u64
8308        });
8309        __bindgen_bitfield_unit.set(8usize, 4u8, {
8310            let group: u8 = unsafe { ::core::mem::transmute(group) };
8311            group as u64
8312        });
8313        __bindgen_bitfield_unit.set(12usize, 4u8, {
8314            let type_: u8 = unsafe { ::core::mem::transmute(type_) };
8315            type_ as u64
8316        });
8317        __bindgen_bitfield_unit
8318    }
8319}
8320pub type snd_ump_msg_midi2_note_t = _snd_ump_msg_midi2_note;
8321#[repr(C, packed)]
8322#[derive(Debug, Copy, Clone)]
8323pub struct _snd_ump_msg_midi2_paf {
8324    pub reserved: u8,
8325    pub note: u8,
8326    pub _bitfield_align_1: [u8; 0],
8327    pub _bitfield_1: __BindgenBitfieldUnit<[u8; 2usize]>,
8328    pub data: u32,
8329}
8330impl _snd_ump_msg_midi2_paf {
8331    #[inline]
8332    pub fn channel(&self) -> u8 {
8333        unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 4u8) as u8) }
8334    }
8335    #[inline]
8336    pub fn set_channel(&mut self, val: u8) {
8337        unsafe {
8338            let val: u8 = ::core::mem::transmute(val);
8339            self._bitfield_1.set(0usize, 4u8, val as u64)
8340        }
8341    }
8342    #[inline]
8343    pub unsafe fn channel_raw(this: *const Self) -> u8 {
8344        unsafe {
8345            ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(
8346                ::core::ptr::addr_of!((*this)._bitfield_1),
8347                0usize,
8348                4u8,
8349            ) as u8)
8350        }
8351    }
8352    #[inline]
8353    pub unsafe fn set_channel_raw(this: *mut Self, val: u8) {
8354        unsafe {
8355            let val: u8 = ::core::mem::transmute(val);
8356            <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(
8357                ::core::ptr::addr_of_mut!((*this)._bitfield_1),
8358                0usize,
8359                4u8,
8360                val as u64,
8361            )
8362        }
8363    }
8364    #[inline]
8365    pub fn status(&self) -> u8 {
8366        unsafe { ::core::mem::transmute(self._bitfield_1.get(4usize, 4u8) as u8) }
8367    }
8368    #[inline]
8369    pub fn set_status(&mut self, val: u8) {
8370        unsafe {
8371            let val: u8 = ::core::mem::transmute(val);
8372            self._bitfield_1.set(4usize, 4u8, val as u64)
8373        }
8374    }
8375    #[inline]
8376    pub unsafe fn status_raw(this: *const Self) -> u8 {
8377        unsafe {
8378            ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(
8379                ::core::ptr::addr_of!((*this)._bitfield_1),
8380                4usize,
8381                4u8,
8382            ) as u8)
8383        }
8384    }
8385    #[inline]
8386    pub unsafe fn set_status_raw(this: *mut Self, val: u8) {
8387        unsafe {
8388            let val: u8 = ::core::mem::transmute(val);
8389            <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(
8390                ::core::ptr::addr_of_mut!((*this)._bitfield_1),
8391                4usize,
8392                4u8,
8393                val as u64,
8394            )
8395        }
8396    }
8397    #[inline]
8398    pub fn group(&self) -> u8 {
8399        unsafe { ::core::mem::transmute(self._bitfield_1.get(8usize, 4u8) as u8) }
8400    }
8401    #[inline]
8402    pub fn set_group(&mut self, val: u8) {
8403        unsafe {
8404            let val: u8 = ::core::mem::transmute(val);
8405            self._bitfield_1.set(8usize, 4u8, val as u64)
8406        }
8407    }
8408    #[inline]
8409    pub unsafe fn group_raw(this: *const Self) -> u8 {
8410        unsafe {
8411            ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(
8412                ::core::ptr::addr_of!((*this)._bitfield_1),
8413                8usize,
8414                4u8,
8415            ) as u8)
8416        }
8417    }
8418    #[inline]
8419    pub unsafe fn set_group_raw(this: *mut Self, val: u8) {
8420        unsafe {
8421            let val: u8 = ::core::mem::transmute(val);
8422            <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(
8423                ::core::ptr::addr_of_mut!((*this)._bitfield_1),
8424                8usize,
8425                4u8,
8426                val as u64,
8427            )
8428        }
8429    }
8430    #[inline]
8431    pub fn type_(&self) -> u8 {
8432        unsafe { ::core::mem::transmute(self._bitfield_1.get(12usize, 4u8) as u8) }
8433    }
8434    #[inline]
8435    pub fn set_type(&mut self, val: u8) {
8436        unsafe {
8437            let val: u8 = ::core::mem::transmute(val);
8438            self._bitfield_1.set(12usize, 4u8, val as u64)
8439        }
8440    }
8441    #[inline]
8442    pub unsafe fn type__raw(this: *const Self) -> u8 {
8443        unsafe {
8444            ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(
8445                ::core::ptr::addr_of!((*this)._bitfield_1),
8446                12usize,
8447                4u8,
8448            ) as u8)
8449        }
8450    }
8451    #[inline]
8452    pub unsafe fn set_type_raw(this: *mut Self, val: u8) {
8453        unsafe {
8454            let val: u8 = ::core::mem::transmute(val);
8455            <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(
8456                ::core::ptr::addr_of_mut!((*this)._bitfield_1),
8457                12usize,
8458                4u8,
8459                val as u64,
8460            )
8461        }
8462    }
8463    #[inline]
8464    pub fn new_bitfield_1(
8465        channel: u8,
8466        status: u8,
8467        group: u8,
8468        type_: u8,
8469    ) -> __BindgenBitfieldUnit<[u8; 2usize]> {
8470        let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 2usize]> = Default::default();
8471        __bindgen_bitfield_unit.set(0usize, 4u8, {
8472            let channel: u8 = unsafe { ::core::mem::transmute(channel) };
8473            channel as u64
8474        });
8475        __bindgen_bitfield_unit.set(4usize, 4u8, {
8476            let status: u8 = unsafe { ::core::mem::transmute(status) };
8477            status as u64
8478        });
8479        __bindgen_bitfield_unit.set(8usize, 4u8, {
8480            let group: u8 = unsafe { ::core::mem::transmute(group) };
8481            group as u64
8482        });
8483        __bindgen_bitfield_unit.set(12usize, 4u8, {
8484            let type_: u8 = unsafe { ::core::mem::transmute(type_) };
8485            type_ as u64
8486        });
8487        __bindgen_bitfield_unit
8488    }
8489}
8490pub type snd_ump_msg_midi2_paf_t = _snd_ump_msg_midi2_paf;
8491#[repr(C, packed)]
8492#[derive(Debug, Copy, Clone)]
8493pub struct _snd_ump_msg_midi2_per_note_cc {
8494    pub index: u8,
8495    pub note: u8,
8496    pub _bitfield_align_1: [u8; 0],
8497    pub _bitfield_1: __BindgenBitfieldUnit<[u8; 2usize]>,
8498    pub data: u32,
8499}
8500impl _snd_ump_msg_midi2_per_note_cc {
8501    #[inline]
8502    pub fn channel(&self) -> u8 {
8503        unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 4u8) as u8) }
8504    }
8505    #[inline]
8506    pub fn set_channel(&mut self, val: u8) {
8507        unsafe {
8508            let val: u8 = ::core::mem::transmute(val);
8509            self._bitfield_1.set(0usize, 4u8, val as u64)
8510        }
8511    }
8512    #[inline]
8513    pub unsafe fn channel_raw(this: *const Self) -> u8 {
8514        unsafe {
8515            ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(
8516                ::core::ptr::addr_of!((*this)._bitfield_1),
8517                0usize,
8518                4u8,
8519            ) as u8)
8520        }
8521    }
8522    #[inline]
8523    pub unsafe fn set_channel_raw(this: *mut Self, val: u8) {
8524        unsafe {
8525            let val: u8 = ::core::mem::transmute(val);
8526            <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(
8527                ::core::ptr::addr_of_mut!((*this)._bitfield_1),
8528                0usize,
8529                4u8,
8530                val as u64,
8531            )
8532        }
8533    }
8534    #[inline]
8535    pub fn status(&self) -> u8 {
8536        unsafe { ::core::mem::transmute(self._bitfield_1.get(4usize, 4u8) as u8) }
8537    }
8538    #[inline]
8539    pub fn set_status(&mut self, val: u8) {
8540        unsafe {
8541            let val: u8 = ::core::mem::transmute(val);
8542            self._bitfield_1.set(4usize, 4u8, val as u64)
8543        }
8544    }
8545    #[inline]
8546    pub unsafe fn status_raw(this: *const Self) -> u8 {
8547        unsafe {
8548            ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(
8549                ::core::ptr::addr_of!((*this)._bitfield_1),
8550                4usize,
8551                4u8,
8552            ) as u8)
8553        }
8554    }
8555    #[inline]
8556    pub unsafe fn set_status_raw(this: *mut Self, val: u8) {
8557        unsafe {
8558            let val: u8 = ::core::mem::transmute(val);
8559            <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(
8560                ::core::ptr::addr_of_mut!((*this)._bitfield_1),
8561                4usize,
8562                4u8,
8563                val as u64,
8564            )
8565        }
8566    }
8567    #[inline]
8568    pub fn group(&self) -> u8 {
8569        unsafe { ::core::mem::transmute(self._bitfield_1.get(8usize, 4u8) as u8) }
8570    }
8571    #[inline]
8572    pub fn set_group(&mut self, val: u8) {
8573        unsafe {
8574            let val: u8 = ::core::mem::transmute(val);
8575            self._bitfield_1.set(8usize, 4u8, val as u64)
8576        }
8577    }
8578    #[inline]
8579    pub unsafe fn group_raw(this: *const Self) -> u8 {
8580        unsafe {
8581            ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(
8582                ::core::ptr::addr_of!((*this)._bitfield_1),
8583                8usize,
8584                4u8,
8585            ) as u8)
8586        }
8587    }
8588    #[inline]
8589    pub unsafe fn set_group_raw(this: *mut Self, val: u8) {
8590        unsafe {
8591            let val: u8 = ::core::mem::transmute(val);
8592            <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(
8593                ::core::ptr::addr_of_mut!((*this)._bitfield_1),
8594                8usize,
8595                4u8,
8596                val as u64,
8597            )
8598        }
8599    }
8600    #[inline]
8601    pub fn type_(&self) -> u8 {
8602        unsafe { ::core::mem::transmute(self._bitfield_1.get(12usize, 4u8) as u8) }
8603    }
8604    #[inline]
8605    pub fn set_type(&mut self, val: u8) {
8606        unsafe {
8607            let val: u8 = ::core::mem::transmute(val);
8608            self._bitfield_1.set(12usize, 4u8, val as u64)
8609        }
8610    }
8611    #[inline]
8612    pub unsafe fn type__raw(this: *const Self) -> u8 {
8613        unsafe {
8614            ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(
8615                ::core::ptr::addr_of!((*this)._bitfield_1),
8616                12usize,
8617                4u8,
8618            ) as u8)
8619        }
8620    }
8621    #[inline]
8622    pub unsafe fn set_type_raw(this: *mut Self, val: u8) {
8623        unsafe {
8624            let val: u8 = ::core::mem::transmute(val);
8625            <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(
8626                ::core::ptr::addr_of_mut!((*this)._bitfield_1),
8627                12usize,
8628                4u8,
8629                val as u64,
8630            )
8631        }
8632    }
8633    #[inline]
8634    pub fn new_bitfield_1(
8635        channel: u8,
8636        status: u8,
8637        group: u8,
8638        type_: u8,
8639    ) -> __BindgenBitfieldUnit<[u8; 2usize]> {
8640        let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 2usize]> = Default::default();
8641        __bindgen_bitfield_unit.set(0usize, 4u8, {
8642            let channel: u8 = unsafe { ::core::mem::transmute(channel) };
8643            channel as u64
8644        });
8645        __bindgen_bitfield_unit.set(4usize, 4u8, {
8646            let status: u8 = unsafe { ::core::mem::transmute(status) };
8647            status as u64
8648        });
8649        __bindgen_bitfield_unit.set(8usize, 4u8, {
8650            let group: u8 = unsafe { ::core::mem::transmute(group) };
8651            group as u64
8652        });
8653        __bindgen_bitfield_unit.set(12usize, 4u8, {
8654            let type_: u8 = unsafe { ::core::mem::transmute(type_) };
8655            type_ as u64
8656        });
8657        __bindgen_bitfield_unit
8658    }
8659}
8660pub type snd_ump_msg_midi2_per_note_cc_t = _snd_ump_msg_midi2_per_note_cc;
8661#[repr(C, packed)]
8662#[derive(Debug, Copy, Clone)]
8663pub struct _snd_ump_msg_midi2_per_note_mgmt {
8664    pub flags: u8,
8665    pub note: u8,
8666    pub _bitfield_align_1: [u8; 0],
8667    pub _bitfield_1: __BindgenBitfieldUnit<[u8; 2usize]>,
8668    pub reserved: u32,
8669}
8670impl _snd_ump_msg_midi2_per_note_mgmt {
8671    #[inline]
8672    pub fn channel(&self) -> u8 {
8673        unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 4u8) as u8) }
8674    }
8675    #[inline]
8676    pub fn set_channel(&mut self, val: u8) {
8677        unsafe {
8678            let val: u8 = ::core::mem::transmute(val);
8679            self._bitfield_1.set(0usize, 4u8, val as u64)
8680        }
8681    }
8682    #[inline]
8683    pub unsafe fn channel_raw(this: *const Self) -> u8 {
8684        unsafe {
8685            ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(
8686                ::core::ptr::addr_of!((*this)._bitfield_1),
8687                0usize,
8688                4u8,
8689            ) as u8)
8690        }
8691    }
8692    #[inline]
8693    pub unsafe fn set_channel_raw(this: *mut Self, val: u8) {
8694        unsafe {
8695            let val: u8 = ::core::mem::transmute(val);
8696            <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(
8697                ::core::ptr::addr_of_mut!((*this)._bitfield_1),
8698                0usize,
8699                4u8,
8700                val as u64,
8701            )
8702        }
8703    }
8704    #[inline]
8705    pub fn status(&self) -> u8 {
8706        unsafe { ::core::mem::transmute(self._bitfield_1.get(4usize, 4u8) as u8) }
8707    }
8708    #[inline]
8709    pub fn set_status(&mut self, val: u8) {
8710        unsafe {
8711            let val: u8 = ::core::mem::transmute(val);
8712            self._bitfield_1.set(4usize, 4u8, val as u64)
8713        }
8714    }
8715    #[inline]
8716    pub unsafe fn status_raw(this: *const Self) -> u8 {
8717        unsafe {
8718            ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(
8719                ::core::ptr::addr_of!((*this)._bitfield_1),
8720                4usize,
8721                4u8,
8722            ) as u8)
8723        }
8724    }
8725    #[inline]
8726    pub unsafe fn set_status_raw(this: *mut Self, val: u8) {
8727        unsafe {
8728            let val: u8 = ::core::mem::transmute(val);
8729            <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(
8730                ::core::ptr::addr_of_mut!((*this)._bitfield_1),
8731                4usize,
8732                4u8,
8733                val as u64,
8734            )
8735        }
8736    }
8737    #[inline]
8738    pub fn group(&self) -> u8 {
8739        unsafe { ::core::mem::transmute(self._bitfield_1.get(8usize, 4u8) as u8) }
8740    }
8741    #[inline]
8742    pub fn set_group(&mut self, val: u8) {
8743        unsafe {
8744            let val: u8 = ::core::mem::transmute(val);
8745            self._bitfield_1.set(8usize, 4u8, val as u64)
8746        }
8747    }
8748    #[inline]
8749    pub unsafe fn group_raw(this: *const Self) -> u8 {
8750        unsafe {
8751            ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(
8752                ::core::ptr::addr_of!((*this)._bitfield_1),
8753                8usize,
8754                4u8,
8755            ) as u8)
8756        }
8757    }
8758    #[inline]
8759    pub unsafe fn set_group_raw(this: *mut Self, val: u8) {
8760        unsafe {
8761            let val: u8 = ::core::mem::transmute(val);
8762            <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(
8763                ::core::ptr::addr_of_mut!((*this)._bitfield_1),
8764                8usize,
8765                4u8,
8766                val as u64,
8767            )
8768        }
8769    }
8770    #[inline]
8771    pub fn type_(&self) -> u8 {
8772        unsafe { ::core::mem::transmute(self._bitfield_1.get(12usize, 4u8) as u8) }
8773    }
8774    #[inline]
8775    pub fn set_type(&mut self, val: u8) {
8776        unsafe {
8777            let val: u8 = ::core::mem::transmute(val);
8778            self._bitfield_1.set(12usize, 4u8, val as u64)
8779        }
8780    }
8781    #[inline]
8782    pub unsafe fn type__raw(this: *const Self) -> u8 {
8783        unsafe {
8784            ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(
8785                ::core::ptr::addr_of!((*this)._bitfield_1),
8786                12usize,
8787                4u8,
8788            ) as u8)
8789        }
8790    }
8791    #[inline]
8792    pub unsafe fn set_type_raw(this: *mut Self, val: u8) {
8793        unsafe {
8794            let val: u8 = ::core::mem::transmute(val);
8795            <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(
8796                ::core::ptr::addr_of_mut!((*this)._bitfield_1),
8797                12usize,
8798                4u8,
8799                val as u64,
8800            )
8801        }
8802    }
8803    #[inline]
8804    pub fn new_bitfield_1(
8805        channel: u8,
8806        status: u8,
8807        group: u8,
8808        type_: u8,
8809    ) -> __BindgenBitfieldUnit<[u8; 2usize]> {
8810        let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 2usize]> = Default::default();
8811        __bindgen_bitfield_unit.set(0usize, 4u8, {
8812            let channel: u8 = unsafe { ::core::mem::transmute(channel) };
8813            channel as u64
8814        });
8815        __bindgen_bitfield_unit.set(4usize, 4u8, {
8816            let status: u8 = unsafe { ::core::mem::transmute(status) };
8817            status as u64
8818        });
8819        __bindgen_bitfield_unit.set(8usize, 4u8, {
8820            let group: u8 = unsafe { ::core::mem::transmute(group) };
8821            group as u64
8822        });
8823        __bindgen_bitfield_unit.set(12usize, 4u8, {
8824            let type_: u8 = unsafe { ::core::mem::transmute(type_) };
8825            type_ as u64
8826        });
8827        __bindgen_bitfield_unit
8828    }
8829}
8830pub type snd_ump_msg_midi2_per_note_mgmt_t = _snd_ump_msg_midi2_per_note_mgmt;
8831#[repr(C, packed)]
8832#[derive(Debug, Copy, Clone)]
8833pub struct _snd_ump_msg_midi2_cc {
8834    pub reserved: u8,
8835    pub index: u8,
8836    pub _bitfield_align_1: [u8; 0],
8837    pub _bitfield_1: __BindgenBitfieldUnit<[u8; 2usize]>,
8838    pub data: u32,
8839}
8840impl _snd_ump_msg_midi2_cc {
8841    #[inline]
8842    pub fn channel(&self) -> u8 {
8843        unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 4u8) as u8) }
8844    }
8845    #[inline]
8846    pub fn set_channel(&mut self, val: u8) {
8847        unsafe {
8848            let val: u8 = ::core::mem::transmute(val);
8849            self._bitfield_1.set(0usize, 4u8, val as u64)
8850        }
8851    }
8852    #[inline]
8853    pub unsafe fn channel_raw(this: *const Self) -> u8 {
8854        unsafe {
8855            ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(
8856                ::core::ptr::addr_of!((*this)._bitfield_1),
8857                0usize,
8858                4u8,
8859            ) as u8)
8860        }
8861    }
8862    #[inline]
8863    pub unsafe fn set_channel_raw(this: *mut Self, val: u8) {
8864        unsafe {
8865            let val: u8 = ::core::mem::transmute(val);
8866            <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(
8867                ::core::ptr::addr_of_mut!((*this)._bitfield_1),
8868                0usize,
8869                4u8,
8870                val as u64,
8871            )
8872        }
8873    }
8874    #[inline]
8875    pub fn status(&self) -> u8 {
8876        unsafe { ::core::mem::transmute(self._bitfield_1.get(4usize, 4u8) as u8) }
8877    }
8878    #[inline]
8879    pub fn set_status(&mut self, val: u8) {
8880        unsafe {
8881            let val: u8 = ::core::mem::transmute(val);
8882            self._bitfield_1.set(4usize, 4u8, val as u64)
8883        }
8884    }
8885    #[inline]
8886    pub unsafe fn status_raw(this: *const Self) -> u8 {
8887        unsafe {
8888            ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(
8889                ::core::ptr::addr_of!((*this)._bitfield_1),
8890                4usize,
8891                4u8,
8892            ) as u8)
8893        }
8894    }
8895    #[inline]
8896    pub unsafe fn set_status_raw(this: *mut Self, val: u8) {
8897        unsafe {
8898            let val: u8 = ::core::mem::transmute(val);
8899            <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(
8900                ::core::ptr::addr_of_mut!((*this)._bitfield_1),
8901                4usize,
8902                4u8,
8903                val as u64,
8904            )
8905        }
8906    }
8907    #[inline]
8908    pub fn group(&self) -> u8 {
8909        unsafe { ::core::mem::transmute(self._bitfield_1.get(8usize, 4u8) as u8) }
8910    }
8911    #[inline]
8912    pub fn set_group(&mut self, val: u8) {
8913        unsafe {
8914            let val: u8 = ::core::mem::transmute(val);
8915            self._bitfield_1.set(8usize, 4u8, val as u64)
8916        }
8917    }
8918    #[inline]
8919    pub unsafe fn group_raw(this: *const Self) -> u8 {
8920        unsafe {
8921            ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(
8922                ::core::ptr::addr_of!((*this)._bitfield_1),
8923                8usize,
8924                4u8,
8925            ) as u8)
8926        }
8927    }
8928    #[inline]
8929    pub unsafe fn set_group_raw(this: *mut Self, val: u8) {
8930        unsafe {
8931            let val: u8 = ::core::mem::transmute(val);
8932            <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(
8933                ::core::ptr::addr_of_mut!((*this)._bitfield_1),
8934                8usize,
8935                4u8,
8936                val as u64,
8937            )
8938        }
8939    }
8940    #[inline]
8941    pub fn type_(&self) -> u8 {
8942        unsafe { ::core::mem::transmute(self._bitfield_1.get(12usize, 4u8) as u8) }
8943    }
8944    #[inline]
8945    pub fn set_type(&mut self, val: u8) {
8946        unsafe {
8947            let val: u8 = ::core::mem::transmute(val);
8948            self._bitfield_1.set(12usize, 4u8, val as u64)
8949        }
8950    }
8951    #[inline]
8952    pub unsafe fn type__raw(this: *const Self) -> u8 {
8953        unsafe {
8954            ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(
8955                ::core::ptr::addr_of!((*this)._bitfield_1),
8956                12usize,
8957                4u8,
8958            ) as u8)
8959        }
8960    }
8961    #[inline]
8962    pub unsafe fn set_type_raw(this: *mut Self, val: u8) {
8963        unsafe {
8964            let val: u8 = ::core::mem::transmute(val);
8965            <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(
8966                ::core::ptr::addr_of_mut!((*this)._bitfield_1),
8967                12usize,
8968                4u8,
8969                val as u64,
8970            )
8971        }
8972    }
8973    #[inline]
8974    pub fn new_bitfield_1(
8975        channel: u8,
8976        status: u8,
8977        group: u8,
8978        type_: u8,
8979    ) -> __BindgenBitfieldUnit<[u8; 2usize]> {
8980        let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 2usize]> = Default::default();
8981        __bindgen_bitfield_unit.set(0usize, 4u8, {
8982            let channel: u8 = unsafe { ::core::mem::transmute(channel) };
8983            channel as u64
8984        });
8985        __bindgen_bitfield_unit.set(4usize, 4u8, {
8986            let status: u8 = unsafe { ::core::mem::transmute(status) };
8987            status as u64
8988        });
8989        __bindgen_bitfield_unit.set(8usize, 4u8, {
8990            let group: u8 = unsafe { ::core::mem::transmute(group) };
8991            group as u64
8992        });
8993        __bindgen_bitfield_unit.set(12usize, 4u8, {
8994            let type_: u8 = unsafe { ::core::mem::transmute(type_) };
8995            type_ as u64
8996        });
8997        __bindgen_bitfield_unit
8998    }
8999}
9000pub type snd_ump_msg_midi2_cc_t = _snd_ump_msg_midi2_cc;
9001#[repr(C, packed)]
9002#[derive(Debug, Copy, Clone)]
9003pub struct _snd_ump_msg_midi2_rpn {
9004    pub index: u8,
9005    pub bank: u8,
9006    pub _bitfield_align_1: [u8; 0],
9007    pub _bitfield_1: __BindgenBitfieldUnit<[u8; 2usize]>,
9008    pub data: u32,
9009}
9010impl _snd_ump_msg_midi2_rpn {
9011    #[inline]
9012    pub fn channel(&self) -> u8 {
9013        unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 4u8) as u8) }
9014    }
9015    #[inline]
9016    pub fn set_channel(&mut self, val: u8) {
9017        unsafe {
9018            let val: u8 = ::core::mem::transmute(val);
9019            self._bitfield_1.set(0usize, 4u8, val as u64)
9020        }
9021    }
9022    #[inline]
9023    pub unsafe fn channel_raw(this: *const Self) -> u8 {
9024        unsafe {
9025            ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(
9026                ::core::ptr::addr_of!((*this)._bitfield_1),
9027                0usize,
9028                4u8,
9029            ) as u8)
9030        }
9031    }
9032    #[inline]
9033    pub unsafe fn set_channel_raw(this: *mut Self, val: u8) {
9034        unsafe {
9035            let val: u8 = ::core::mem::transmute(val);
9036            <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(
9037                ::core::ptr::addr_of_mut!((*this)._bitfield_1),
9038                0usize,
9039                4u8,
9040                val as u64,
9041            )
9042        }
9043    }
9044    #[inline]
9045    pub fn status(&self) -> u8 {
9046        unsafe { ::core::mem::transmute(self._bitfield_1.get(4usize, 4u8) as u8) }
9047    }
9048    #[inline]
9049    pub fn set_status(&mut self, val: u8) {
9050        unsafe {
9051            let val: u8 = ::core::mem::transmute(val);
9052            self._bitfield_1.set(4usize, 4u8, val as u64)
9053        }
9054    }
9055    #[inline]
9056    pub unsafe fn status_raw(this: *const Self) -> u8 {
9057        unsafe {
9058            ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(
9059                ::core::ptr::addr_of!((*this)._bitfield_1),
9060                4usize,
9061                4u8,
9062            ) as u8)
9063        }
9064    }
9065    #[inline]
9066    pub unsafe fn set_status_raw(this: *mut Self, val: u8) {
9067        unsafe {
9068            let val: u8 = ::core::mem::transmute(val);
9069            <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(
9070                ::core::ptr::addr_of_mut!((*this)._bitfield_1),
9071                4usize,
9072                4u8,
9073                val as u64,
9074            )
9075        }
9076    }
9077    #[inline]
9078    pub fn group(&self) -> u8 {
9079        unsafe { ::core::mem::transmute(self._bitfield_1.get(8usize, 4u8) as u8) }
9080    }
9081    #[inline]
9082    pub fn set_group(&mut self, val: u8) {
9083        unsafe {
9084            let val: u8 = ::core::mem::transmute(val);
9085            self._bitfield_1.set(8usize, 4u8, val as u64)
9086        }
9087    }
9088    #[inline]
9089    pub unsafe fn group_raw(this: *const Self) -> u8 {
9090        unsafe {
9091            ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(
9092                ::core::ptr::addr_of!((*this)._bitfield_1),
9093                8usize,
9094                4u8,
9095            ) as u8)
9096        }
9097    }
9098    #[inline]
9099    pub unsafe fn set_group_raw(this: *mut Self, val: u8) {
9100        unsafe {
9101            let val: u8 = ::core::mem::transmute(val);
9102            <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(
9103                ::core::ptr::addr_of_mut!((*this)._bitfield_1),
9104                8usize,
9105                4u8,
9106                val as u64,
9107            )
9108        }
9109    }
9110    #[inline]
9111    pub fn type_(&self) -> u8 {
9112        unsafe { ::core::mem::transmute(self._bitfield_1.get(12usize, 4u8) as u8) }
9113    }
9114    #[inline]
9115    pub fn set_type(&mut self, val: u8) {
9116        unsafe {
9117            let val: u8 = ::core::mem::transmute(val);
9118            self._bitfield_1.set(12usize, 4u8, val as u64)
9119        }
9120    }
9121    #[inline]
9122    pub unsafe fn type__raw(this: *const Self) -> u8 {
9123        unsafe {
9124            ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(
9125                ::core::ptr::addr_of!((*this)._bitfield_1),
9126                12usize,
9127                4u8,
9128            ) as u8)
9129        }
9130    }
9131    #[inline]
9132    pub unsafe fn set_type_raw(this: *mut Self, val: u8) {
9133        unsafe {
9134            let val: u8 = ::core::mem::transmute(val);
9135            <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(
9136                ::core::ptr::addr_of_mut!((*this)._bitfield_1),
9137                12usize,
9138                4u8,
9139                val as u64,
9140            )
9141        }
9142    }
9143    #[inline]
9144    pub fn new_bitfield_1(
9145        channel: u8,
9146        status: u8,
9147        group: u8,
9148        type_: u8,
9149    ) -> __BindgenBitfieldUnit<[u8; 2usize]> {
9150        let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 2usize]> = Default::default();
9151        __bindgen_bitfield_unit.set(0usize, 4u8, {
9152            let channel: u8 = unsafe { ::core::mem::transmute(channel) };
9153            channel as u64
9154        });
9155        __bindgen_bitfield_unit.set(4usize, 4u8, {
9156            let status: u8 = unsafe { ::core::mem::transmute(status) };
9157            status as u64
9158        });
9159        __bindgen_bitfield_unit.set(8usize, 4u8, {
9160            let group: u8 = unsafe { ::core::mem::transmute(group) };
9161            group as u64
9162        });
9163        __bindgen_bitfield_unit.set(12usize, 4u8, {
9164            let type_: u8 = unsafe { ::core::mem::transmute(type_) };
9165            type_ as u64
9166        });
9167        __bindgen_bitfield_unit
9168    }
9169}
9170pub type snd_ump_msg_midi2_rpn_t = _snd_ump_msg_midi2_rpn;
9171#[repr(C, packed)]
9172#[derive(Debug, Copy, Clone)]
9173pub struct _snd_ump_msg_midi2_program {
9174    pub _bitfield_align_1: [u8; 0],
9175    pub _bitfield_1: __BindgenBitfieldUnit<[u8; 4usize]>,
9176    pub bank_lsb: u8,
9177    pub bank_msb: u8,
9178    pub reserved2: u8,
9179    pub program: u8,
9180}
9181impl _snd_ump_msg_midi2_program {
9182    #[inline]
9183    pub fn bank_valid(&self) -> u16 {
9184        unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u16) }
9185    }
9186    #[inline]
9187    pub fn set_bank_valid(&mut self, val: u16) {
9188        unsafe {
9189            let val: u16 = ::core::mem::transmute(val);
9190            self._bitfield_1.set(0usize, 1u8, val as u64)
9191        }
9192    }
9193    #[inline]
9194    pub unsafe fn bank_valid_raw(this: *const Self) -> u16 {
9195        unsafe {
9196            ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(
9197                ::core::ptr::addr_of!((*this)._bitfield_1),
9198                0usize,
9199                1u8,
9200            ) as u16)
9201        }
9202    }
9203    #[inline]
9204    pub unsafe fn set_bank_valid_raw(this: *mut Self, val: u16) {
9205        unsafe {
9206            let val: u16 = ::core::mem::transmute(val);
9207            <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(
9208                ::core::ptr::addr_of_mut!((*this)._bitfield_1),
9209                0usize,
9210                1u8,
9211                val as u64,
9212            )
9213        }
9214    }
9215    #[inline]
9216    pub fn reserved(&self) -> u16 {
9217        unsafe { ::core::mem::transmute(self._bitfield_1.get(1usize, 15u8) as u16) }
9218    }
9219    #[inline]
9220    pub fn set_reserved(&mut self, val: u16) {
9221        unsafe {
9222            let val: u16 = ::core::mem::transmute(val);
9223            self._bitfield_1.set(1usize, 15u8, val as u64)
9224        }
9225    }
9226    #[inline]
9227    pub unsafe fn reserved_raw(this: *const Self) -> u16 {
9228        unsafe {
9229            ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(
9230                ::core::ptr::addr_of!((*this)._bitfield_1),
9231                1usize,
9232                15u8,
9233            ) as u16)
9234        }
9235    }
9236    #[inline]
9237    pub unsafe fn set_reserved_raw(this: *mut Self, val: u16) {
9238        unsafe {
9239            let val: u16 = ::core::mem::transmute(val);
9240            <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(
9241                ::core::ptr::addr_of_mut!((*this)._bitfield_1),
9242                1usize,
9243                15u8,
9244                val as u64,
9245            )
9246        }
9247    }
9248    #[inline]
9249    pub fn channel(&self) -> u8 {
9250        unsafe { ::core::mem::transmute(self._bitfield_1.get(16usize, 4u8) as u8) }
9251    }
9252    #[inline]
9253    pub fn set_channel(&mut self, val: u8) {
9254        unsafe {
9255            let val: u8 = ::core::mem::transmute(val);
9256            self._bitfield_1.set(16usize, 4u8, val as u64)
9257        }
9258    }
9259    #[inline]
9260    pub unsafe fn channel_raw(this: *const Self) -> u8 {
9261        unsafe {
9262            ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(
9263                ::core::ptr::addr_of!((*this)._bitfield_1),
9264                16usize,
9265                4u8,
9266            ) as u8)
9267        }
9268    }
9269    #[inline]
9270    pub unsafe fn set_channel_raw(this: *mut Self, val: u8) {
9271        unsafe {
9272            let val: u8 = ::core::mem::transmute(val);
9273            <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(
9274                ::core::ptr::addr_of_mut!((*this)._bitfield_1),
9275                16usize,
9276                4u8,
9277                val as u64,
9278            )
9279        }
9280    }
9281    #[inline]
9282    pub fn status(&self) -> u8 {
9283        unsafe { ::core::mem::transmute(self._bitfield_1.get(20usize, 4u8) as u8) }
9284    }
9285    #[inline]
9286    pub fn set_status(&mut self, val: u8) {
9287        unsafe {
9288            let val: u8 = ::core::mem::transmute(val);
9289            self._bitfield_1.set(20usize, 4u8, val as u64)
9290        }
9291    }
9292    #[inline]
9293    pub unsafe fn status_raw(this: *const Self) -> u8 {
9294        unsafe {
9295            ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(
9296                ::core::ptr::addr_of!((*this)._bitfield_1),
9297                20usize,
9298                4u8,
9299            ) as u8)
9300        }
9301    }
9302    #[inline]
9303    pub unsafe fn set_status_raw(this: *mut Self, val: u8) {
9304        unsafe {
9305            let val: u8 = ::core::mem::transmute(val);
9306            <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(
9307                ::core::ptr::addr_of_mut!((*this)._bitfield_1),
9308                20usize,
9309                4u8,
9310                val as u64,
9311            )
9312        }
9313    }
9314    #[inline]
9315    pub fn group(&self) -> u8 {
9316        unsafe { ::core::mem::transmute(self._bitfield_1.get(24usize, 4u8) as u8) }
9317    }
9318    #[inline]
9319    pub fn set_group(&mut self, val: u8) {
9320        unsafe {
9321            let val: u8 = ::core::mem::transmute(val);
9322            self._bitfield_1.set(24usize, 4u8, val as u64)
9323        }
9324    }
9325    #[inline]
9326    pub unsafe fn group_raw(this: *const Self) -> u8 {
9327        unsafe {
9328            ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(
9329                ::core::ptr::addr_of!((*this)._bitfield_1),
9330                24usize,
9331                4u8,
9332            ) as u8)
9333        }
9334    }
9335    #[inline]
9336    pub unsafe fn set_group_raw(this: *mut Self, val: u8) {
9337        unsafe {
9338            let val: u8 = ::core::mem::transmute(val);
9339            <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(
9340                ::core::ptr::addr_of_mut!((*this)._bitfield_1),
9341                24usize,
9342                4u8,
9343                val as u64,
9344            )
9345        }
9346    }
9347    #[inline]
9348    pub fn type_(&self) -> u8 {
9349        unsafe { ::core::mem::transmute(self._bitfield_1.get(28usize, 4u8) as u8) }
9350    }
9351    #[inline]
9352    pub fn set_type(&mut self, val: u8) {
9353        unsafe {
9354            let val: u8 = ::core::mem::transmute(val);
9355            self._bitfield_1.set(28usize, 4u8, val as u64)
9356        }
9357    }
9358    #[inline]
9359    pub unsafe fn type__raw(this: *const Self) -> u8 {
9360        unsafe {
9361            ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(
9362                ::core::ptr::addr_of!((*this)._bitfield_1),
9363                28usize,
9364                4u8,
9365            ) as u8)
9366        }
9367    }
9368    #[inline]
9369    pub unsafe fn set_type_raw(this: *mut Self, val: u8) {
9370        unsafe {
9371            let val: u8 = ::core::mem::transmute(val);
9372            <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(
9373                ::core::ptr::addr_of_mut!((*this)._bitfield_1),
9374                28usize,
9375                4u8,
9376                val as u64,
9377            )
9378        }
9379    }
9380    #[inline]
9381    pub fn new_bitfield_1(
9382        bank_valid: u16,
9383        reserved: u16,
9384        channel: u8,
9385        status: u8,
9386        group: u8,
9387        type_: u8,
9388    ) -> __BindgenBitfieldUnit<[u8; 4usize]> {
9389        let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 4usize]> = Default::default();
9390        __bindgen_bitfield_unit.set(0usize, 1u8, {
9391            let bank_valid: u16 = unsafe { ::core::mem::transmute(bank_valid) };
9392            bank_valid as u64
9393        });
9394        __bindgen_bitfield_unit.set(1usize, 15u8, {
9395            let reserved: u16 = unsafe { ::core::mem::transmute(reserved) };
9396            reserved as u64
9397        });
9398        __bindgen_bitfield_unit.set(16usize, 4u8, {
9399            let channel: u8 = unsafe { ::core::mem::transmute(channel) };
9400            channel as u64
9401        });
9402        __bindgen_bitfield_unit.set(20usize, 4u8, {
9403            let status: u8 = unsafe { ::core::mem::transmute(status) };
9404            status as u64
9405        });
9406        __bindgen_bitfield_unit.set(24usize, 4u8, {
9407            let group: u8 = unsafe { ::core::mem::transmute(group) };
9408            group as u64
9409        });
9410        __bindgen_bitfield_unit.set(28usize, 4u8, {
9411            let type_: u8 = unsafe { ::core::mem::transmute(type_) };
9412            type_ as u64
9413        });
9414        __bindgen_bitfield_unit
9415    }
9416}
9417pub type snd_ump_msg_midi2_program_t = _snd_ump_msg_midi2_program;
9418#[repr(C, packed)]
9419#[derive(Debug, Copy, Clone)]
9420pub struct _snd_ump_msg_midi2_caf {
9421    pub reserved: u16,
9422    pub _bitfield_align_1: [u8; 0],
9423    pub _bitfield_1: __BindgenBitfieldUnit<[u8; 2usize]>,
9424    pub data: u32,
9425}
9426impl _snd_ump_msg_midi2_caf {
9427    #[inline]
9428    pub fn channel(&self) -> u8 {
9429        unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 4u8) as u8) }
9430    }
9431    #[inline]
9432    pub fn set_channel(&mut self, val: u8) {
9433        unsafe {
9434            let val: u8 = ::core::mem::transmute(val);
9435            self._bitfield_1.set(0usize, 4u8, val as u64)
9436        }
9437    }
9438    #[inline]
9439    pub unsafe fn channel_raw(this: *const Self) -> u8 {
9440        unsafe {
9441            ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(
9442                ::core::ptr::addr_of!((*this)._bitfield_1),
9443                0usize,
9444                4u8,
9445            ) as u8)
9446        }
9447    }
9448    #[inline]
9449    pub unsafe fn set_channel_raw(this: *mut Self, val: u8) {
9450        unsafe {
9451            let val: u8 = ::core::mem::transmute(val);
9452            <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(
9453                ::core::ptr::addr_of_mut!((*this)._bitfield_1),
9454                0usize,
9455                4u8,
9456                val as u64,
9457            )
9458        }
9459    }
9460    #[inline]
9461    pub fn status(&self) -> u8 {
9462        unsafe { ::core::mem::transmute(self._bitfield_1.get(4usize, 4u8) as u8) }
9463    }
9464    #[inline]
9465    pub fn set_status(&mut self, val: u8) {
9466        unsafe {
9467            let val: u8 = ::core::mem::transmute(val);
9468            self._bitfield_1.set(4usize, 4u8, val as u64)
9469        }
9470    }
9471    #[inline]
9472    pub unsafe fn status_raw(this: *const Self) -> u8 {
9473        unsafe {
9474            ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(
9475                ::core::ptr::addr_of!((*this)._bitfield_1),
9476                4usize,
9477                4u8,
9478            ) as u8)
9479        }
9480    }
9481    #[inline]
9482    pub unsafe fn set_status_raw(this: *mut Self, val: u8) {
9483        unsafe {
9484            let val: u8 = ::core::mem::transmute(val);
9485            <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(
9486                ::core::ptr::addr_of_mut!((*this)._bitfield_1),
9487                4usize,
9488                4u8,
9489                val as u64,
9490            )
9491        }
9492    }
9493    #[inline]
9494    pub fn group(&self) -> u8 {
9495        unsafe { ::core::mem::transmute(self._bitfield_1.get(8usize, 4u8) as u8) }
9496    }
9497    #[inline]
9498    pub fn set_group(&mut self, val: u8) {
9499        unsafe {
9500            let val: u8 = ::core::mem::transmute(val);
9501            self._bitfield_1.set(8usize, 4u8, val as u64)
9502        }
9503    }
9504    #[inline]
9505    pub unsafe fn group_raw(this: *const Self) -> u8 {
9506        unsafe {
9507            ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(
9508                ::core::ptr::addr_of!((*this)._bitfield_1),
9509                8usize,
9510                4u8,
9511            ) as u8)
9512        }
9513    }
9514    #[inline]
9515    pub unsafe fn set_group_raw(this: *mut Self, val: u8) {
9516        unsafe {
9517            let val: u8 = ::core::mem::transmute(val);
9518            <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(
9519                ::core::ptr::addr_of_mut!((*this)._bitfield_1),
9520                8usize,
9521                4u8,
9522                val as u64,
9523            )
9524        }
9525    }
9526    #[inline]
9527    pub fn type_(&self) -> u8 {
9528        unsafe { ::core::mem::transmute(self._bitfield_1.get(12usize, 4u8) as u8) }
9529    }
9530    #[inline]
9531    pub fn set_type(&mut self, val: u8) {
9532        unsafe {
9533            let val: u8 = ::core::mem::transmute(val);
9534            self._bitfield_1.set(12usize, 4u8, val as u64)
9535        }
9536    }
9537    #[inline]
9538    pub unsafe fn type__raw(this: *const Self) -> u8 {
9539        unsafe {
9540            ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(
9541                ::core::ptr::addr_of!((*this)._bitfield_1),
9542                12usize,
9543                4u8,
9544            ) as u8)
9545        }
9546    }
9547    #[inline]
9548    pub unsafe fn set_type_raw(this: *mut Self, val: u8) {
9549        unsafe {
9550            let val: u8 = ::core::mem::transmute(val);
9551            <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(
9552                ::core::ptr::addr_of_mut!((*this)._bitfield_1),
9553                12usize,
9554                4u8,
9555                val as u64,
9556            )
9557        }
9558    }
9559    #[inline]
9560    pub fn new_bitfield_1(
9561        channel: u8,
9562        status: u8,
9563        group: u8,
9564        type_: u8,
9565    ) -> __BindgenBitfieldUnit<[u8; 2usize]> {
9566        let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 2usize]> = Default::default();
9567        __bindgen_bitfield_unit.set(0usize, 4u8, {
9568            let channel: u8 = unsafe { ::core::mem::transmute(channel) };
9569            channel as u64
9570        });
9571        __bindgen_bitfield_unit.set(4usize, 4u8, {
9572            let status: u8 = unsafe { ::core::mem::transmute(status) };
9573            status as u64
9574        });
9575        __bindgen_bitfield_unit.set(8usize, 4u8, {
9576            let group: u8 = unsafe { ::core::mem::transmute(group) };
9577            group as u64
9578        });
9579        __bindgen_bitfield_unit.set(12usize, 4u8, {
9580            let type_: u8 = unsafe { ::core::mem::transmute(type_) };
9581            type_ as u64
9582        });
9583        __bindgen_bitfield_unit
9584    }
9585}
9586pub type snd_ump_msg_midi2_caf_t = _snd_ump_msg_midi2_caf;
9587#[repr(C, packed)]
9588#[derive(Debug, Copy, Clone)]
9589pub struct _snd_ump_msg_midi2_pitchbend {
9590    pub reserved: u16,
9591    pub _bitfield_align_1: [u8; 0],
9592    pub _bitfield_1: __BindgenBitfieldUnit<[u8; 2usize]>,
9593    pub data: u32,
9594}
9595impl _snd_ump_msg_midi2_pitchbend {
9596    #[inline]
9597    pub fn channel(&self) -> u8 {
9598        unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 4u8) as u8) }
9599    }
9600    #[inline]
9601    pub fn set_channel(&mut self, val: u8) {
9602        unsafe {
9603            let val: u8 = ::core::mem::transmute(val);
9604            self._bitfield_1.set(0usize, 4u8, val as u64)
9605        }
9606    }
9607    #[inline]
9608    pub unsafe fn channel_raw(this: *const Self) -> u8 {
9609        unsafe {
9610            ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(
9611                ::core::ptr::addr_of!((*this)._bitfield_1),
9612                0usize,
9613                4u8,
9614            ) as u8)
9615        }
9616    }
9617    #[inline]
9618    pub unsafe fn set_channel_raw(this: *mut Self, val: u8) {
9619        unsafe {
9620            let val: u8 = ::core::mem::transmute(val);
9621            <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(
9622                ::core::ptr::addr_of_mut!((*this)._bitfield_1),
9623                0usize,
9624                4u8,
9625                val as u64,
9626            )
9627        }
9628    }
9629    #[inline]
9630    pub fn status(&self) -> u8 {
9631        unsafe { ::core::mem::transmute(self._bitfield_1.get(4usize, 4u8) as u8) }
9632    }
9633    #[inline]
9634    pub fn set_status(&mut self, val: u8) {
9635        unsafe {
9636            let val: u8 = ::core::mem::transmute(val);
9637            self._bitfield_1.set(4usize, 4u8, val as u64)
9638        }
9639    }
9640    #[inline]
9641    pub unsafe fn status_raw(this: *const Self) -> u8 {
9642        unsafe {
9643            ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(
9644                ::core::ptr::addr_of!((*this)._bitfield_1),
9645                4usize,
9646                4u8,
9647            ) as u8)
9648        }
9649    }
9650    #[inline]
9651    pub unsafe fn set_status_raw(this: *mut Self, val: u8) {
9652        unsafe {
9653            let val: u8 = ::core::mem::transmute(val);
9654            <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(
9655                ::core::ptr::addr_of_mut!((*this)._bitfield_1),
9656                4usize,
9657                4u8,
9658                val as u64,
9659            )
9660        }
9661    }
9662    #[inline]
9663    pub fn group(&self) -> u8 {
9664        unsafe { ::core::mem::transmute(self._bitfield_1.get(8usize, 4u8) as u8) }
9665    }
9666    #[inline]
9667    pub fn set_group(&mut self, val: u8) {
9668        unsafe {
9669            let val: u8 = ::core::mem::transmute(val);
9670            self._bitfield_1.set(8usize, 4u8, val as u64)
9671        }
9672    }
9673    #[inline]
9674    pub unsafe fn group_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                8usize,
9679                4u8,
9680            ) as u8)
9681        }
9682    }
9683    #[inline]
9684    pub unsafe fn set_group_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                8usize,
9690                4u8,
9691                val as u64,
9692            )
9693        }
9694    }
9695    #[inline]
9696    pub fn type_(&self) -> u8 {
9697        unsafe { ::core::mem::transmute(self._bitfield_1.get(12usize, 4u8) as u8) }
9698    }
9699    #[inline]
9700    pub fn set_type(&mut self, val: u8) {
9701        unsafe {
9702            let val: u8 = ::core::mem::transmute(val);
9703            self._bitfield_1.set(12usize, 4u8, val as u64)
9704        }
9705    }
9706    #[inline]
9707    pub unsafe fn type__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                12usize,
9712                4u8,
9713            ) as u8)
9714        }
9715    }
9716    #[inline]
9717    pub unsafe fn set_type_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                12usize,
9723                4u8,
9724                val as u64,
9725            )
9726        }
9727    }
9728    #[inline]
9729    pub fn new_bitfield_1(
9730        channel: u8,
9731        status: u8,
9732        group: u8,
9733        type_: u8,
9734    ) -> __BindgenBitfieldUnit<[u8; 2usize]> {
9735        let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 2usize]> = Default::default();
9736        __bindgen_bitfield_unit.set(0usize, 4u8, {
9737            let channel: u8 = unsafe { ::core::mem::transmute(channel) };
9738            channel as u64
9739        });
9740        __bindgen_bitfield_unit.set(4usize, 4u8, {
9741            let status: u8 = unsafe { ::core::mem::transmute(status) };
9742            status as u64
9743        });
9744        __bindgen_bitfield_unit.set(8usize, 4u8, {
9745            let group: u8 = unsafe { ::core::mem::transmute(group) };
9746            group as u64
9747        });
9748        __bindgen_bitfield_unit.set(12usize, 4u8, {
9749            let type_: u8 = unsafe { ::core::mem::transmute(type_) };
9750            type_ as u64
9751        });
9752        __bindgen_bitfield_unit
9753    }
9754}
9755pub type snd_ump_msg_midi2_pitchbend_t = _snd_ump_msg_midi2_pitchbend;
9756#[repr(C, packed)]
9757#[derive(Debug, Copy, Clone)]
9758pub struct _snd_ump_msg_midi2_per_note_pitchbend {
9759    pub reserved: u8,
9760    pub note: u8,
9761    pub _bitfield_align_1: [u8; 0],
9762    pub _bitfield_1: __BindgenBitfieldUnit<[u8; 2usize]>,
9763    pub data: u32,
9764}
9765impl _snd_ump_msg_midi2_per_note_pitchbend {
9766    #[inline]
9767    pub fn channel(&self) -> u8 {
9768        unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 4u8) as u8) }
9769    }
9770    #[inline]
9771    pub fn set_channel(&mut self, val: u8) {
9772        unsafe {
9773            let val: u8 = ::core::mem::transmute(val);
9774            self._bitfield_1.set(0usize, 4u8, val as u64)
9775        }
9776    }
9777    #[inline]
9778    pub unsafe fn channel_raw(this: *const Self) -> u8 {
9779        unsafe {
9780            ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(
9781                ::core::ptr::addr_of!((*this)._bitfield_1),
9782                0usize,
9783                4u8,
9784            ) as u8)
9785        }
9786    }
9787    #[inline]
9788    pub unsafe fn set_channel_raw(this: *mut Self, val: u8) {
9789        unsafe {
9790            let val: u8 = ::core::mem::transmute(val);
9791            <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(
9792                ::core::ptr::addr_of_mut!((*this)._bitfield_1),
9793                0usize,
9794                4u8,
9795                val as u64,
9796            )
9797        }
9798    }
9799    #[inline]
9800    pub fn status(&self) -> u8 {
9801        unsafe { ::core::mem::transmute(self._bitfield_1.get(4usize, 4u8) as u8) }
9802    }
9803    #[inline]
9804    pub fn set_status(&mut self, val: u8) {
9805        unsafe {
9806            let val: u8 = ::core::mem::transmute(val);
9807            self._bitfield_1.set(4usize, 4u8, val as u64)
9808        }
9809    }
9810    #[inline]
9811    pub unsafe fn status_raw(this: *const Self) -> u8 {
9812        unsafe {
9813            ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(
9814                ::core::ptr::addr_of!((*this)._bitfield_1),
9815                4usize,
9816                4u8,
9817            ) as u8)
9818        }
9819    }
9820    #[inline]
9821    pub unsafe fn set_status_raw(this: *mut Self, val: u8) {
9822        unsafe {
9823            let val: u8 = ::core::mem::transmute(val);
9824            <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(
9825                ::core::ptr::addr_of_mut!((*this)._bitfield_1),
9826                4usize,
9827                4u8,
9828                val as u64,
9829            )
9830        }
9831    }
9832    #[inline]
9833    pub fn group(&self) -> u8 {
9834        unsafe { ::core::mem::transmute(self._bitfield_1.get(8usize, 4u8) as u8) }
9835    }
9836    #[inline]
9837    pub fn set_group(&mut self, val: u8) {
9838        unsafe {
9839            let val: u8 = ::core::mem::transmute(val);
9840            self._bitfield_1.set(8usize, 4u8, val as u64)
9841        }
9842    }
9843    #[inline]
9844    pub unsafe fn group_raw(this: *const Self) -> u8 {
9845        unsafe {
9846            ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(
9847                ::core::ptr::addr_of!((*this)._bitfield_1),
9848                8usize,
9849                4u8,
9850            ) as u8)
9851        }
9852    }
9853    #[inline]
9854    pub unsafe fn set_group_raw(this: *mut Self, val: u8) {
9855        unsafe {
9856            let val: u8 = ::core::mem::transmute(val);
9857            <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(
9858                ::core::ptr::addr_of_mut!((*this)._bitfield_1),
9859                8usize,
9860                4u8,
9861                val as u64,
9862            )
9863        }
9864    }
9865    #[inline]
9866    pub fn type_(&self) -> u8 {
9867        unsafe { ::core::mem::transmute(self._bitfield_1.get(12usize, 4u8) as u8) }
9868    }
9869    #[inline]
9870    pub fn set_type(&mut self, val: u8) {
9871        unsafe {
9872            let val: u8 = ::core::mem::transmute(val);
9873            self._bitfield_1.set(12usize, 4u8, val as u64)
9874        }
9875    }
9876    #[inline]
9877    pub unsafe fn type__raw(this: *const Self) -> u8 {
9878        unsafe {
9879            ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(
9880                ::core::ptr::addr_of!((*this)._bitfield_1),
9881                12usize,
9882                4u8,
9883            ) as u8)
9884        }
9885    }
9886    #[inline]
9887    pub unsafe fn set_type_raw(this: *mut Self, val: u8) {
9888        unsafe {
9889            let val: u8 = ::core::mem::transmute(val);
9890            <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(
9891                ::core::ptr::addr_of_mut!((*this)._bitfield_1),
9892                12usize,
9893                4u8,
9894                val as u64,
9895            )
9896        }
9897    }
9898    #[inline]
9899    pub fn new_bitfield_1(
9900        channel: u8,
9901        status: u8,
9902        group: u8,
9903        type_: u8,
9904    ) -> __BindgenBitfieldUnit<[u8; 2usize]> {
9905        let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 2usize]> = Default::default();
9906        __bindgen_bitfield_unit.set(0usize, 4u8, {
9907            let channel: u8 = unsafe { ::core::mem::transmute(channel) };
9908            channel as u64
9909        });
9910        __bindgen_bitfield_unit.set(4usize, 4u8, {
9911            let status: u8 = unsafe { ::core::mem::transmute(status) };
9912            status as u64
9913        });
9914        __bindgen_bitfield_unit.set(8usize, 4u8, {
9915            let group: u8 = unsafe { ::core::mem::transmute(group) };
9916            group as u64
9917        });
9918        __bindgen_bitfield_unit.set(12usize, 4u8, {
9919            let type_: u8 = unsafe { ::core::mem::transmute(type_) };
9920            type_ as u64
9921        });
9922        __bindgen_bitfield_unit
9923    }
9924}
9925pub type snd_ump_msg_midi2_per_note_pitchbend_t = _snd_ump_msg_midi2_per_note_pitchbend;
9926#[repr(C)]
9927#[derive(Copy, Clone)]
9928pub union _snd_ump_msg_midi2 {
9929    pub note_on: snd_ump_msg_midi2_note_t,
9930    pub note_off: snd_ump_msg_midi2_note_t,
9931    pub poly_pressure: snd_ump_msg_midi2_paf_t,
9932    pub per_note_acc: snd_ump_msg_midi2_per_note_cc_t,
9933    pub per_note_rcc: snd_ump_msg_midi2_per_note_cc_t,
9934    pub per_note_mgmt: snd_ump_msg_midi2_per_note_mgmt_t,
9935    pub control_change: snd_ump_msg_midi2_cc_t,
9936    pub rpn: snd_ump_msg_midi2_rpn_t,
9937    pub nrpn: snd_ump_msg_midi2_rpn_t,
9938    pub relative_rpn: snd_ump_msg_midi2_rpn_t,
9939    pub relative_nrpn: snd_ump_msg_midi2_rpn_t,
9940    pub program_change: snd_ump_msg_midi2_program_t,
9941    pub channel_pressure: snd_ump_msg_midi2_caf_t,
9942    pub pitchbend: snd_ump_msg_midi2_pitchbend_t,
9943    pub per_note_pitchbend: snd_ump_msg_midi2_per_note_pitchbend_t,
9944    pub hdr: snd_ump_msg_hdr_t,
9945    pub raw: [u32; 2usize],
9946}
9947pub type snd_ump_msg_midi2_t = _snd_ump_msg_midi2;
9948#[repr(C, packed)]
9949#[derive(Debug, Copy, Clone)]
9950pub struct _snd_ump_msg_stream_gen {
9951    pub data1: u16,
9952    pub _bitfield_align_1: [u8; 0],
9953    pub _bitfield_1: __BindgenBitfieldUnit<[u8; 2usize]>,
9954    pub data2: u32,
9955    pub data3: u32,
9956    pub data4: u32,
9957}
9958impl _snd_ump_msg_stream_gen {
9959    #[inline]
9960    pub fn status(&self) -> u16 {
9961        unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 10u8) as u16) }
9962    }
9963    #[inline]
9964    pub fn set_status(&mut self, val: u16) {
9965        unsafe {
9966            let val: u16 = ::core::mem::transmute(val);
9967            self._bitfield_1.set(0usize, 10u8, val as u64)
9968        }
9969    }
9970    #[inline]
9971    pub unsafe fn status_raw(this: *const Self) -> u16 {
9972        unsafe {
9973            ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(
9974                ::core::ptr::addr_of!((*this)._bitfield_1),
9975                0usize,
9976                10u8,
9977            ) as u16)
9978        }
9979    }
9980    #[inline]
9981    pub unsafe fn set_status_raw(this: *mut Self, val: u16) {
9982        unsafe {
9983            let val: u16 = ::core::mem::transmute(val);
9984            <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(
9985                ::core::ptr::addr_of_mut!((*this)._bitfield_1),
9986                0usize,
9987                10u8,
9988                val as u64,
9989            )
9990        }
9991    }
9992    #[inline]
9993    pub fn format(&self) -> u16 {
9994        unsafe { ::core::mem::transmute(self._bitfield_1.get(10usize, 2u8) as u16) }
9995    }
9996    #[inline]
9997    pub fn set_format(&mut self, val: u16) {
9998        unsafe {
9999            let val: u16 = ::core::mem::transmute(val);
10000            self._bitfield_1.set(10usize, 2u8, val as u64)
10001        }
10002    }
10003    #[inline]
10004    pub unsafe fn format_raw(this: *const Self) -> u16 {
10005        unsafe {
10006            ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(
10007                ::core::ptr::addr_of!((*this)._bitfield_1),
10008                10usize,
10009                2u8,
10010            ) as u16)
10011        }
10012    }
10013    #[inline]
10014    pub unsafe fn set_format_raw(this: *mut Self, val: u16) {
10015        unsafe {
10016            let val: u16 = ::core::mem::transmute(val);
10017            <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(
10018                ::core::ptr::addr_of_mut!((*this)._bitfield_1),
10019                10usize,
10020                2u8,
10021                val as u64,
10022            )
10023        }
10024    }
10025    #[inline]
10026    pub fn type_(&self) -> u16 {
10027        unsafe { ::core::mem::transmute(self._bitfield_1.get(12usize, 4u8) as u16) }
10028    }
10029    #[inline]
10030    pub fn set_type(&mut self, val: u16) {
10031        unsafe {
10032            let val: u16 = ::core::mem::transmute(val);
10033            self._bitfield_1.set(12usize, 4u8, val as u64)
10034        }
10035    }
10036    #[inline]
10037    pub unsafe fn type__raw(this: *const Self) -> u16 {
10038        unsafe {
10039            ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(
10040                ::core::ptr::addr_of!((*this)._bitfield_1),
10041                12usize,
10042                4u8,
10043            ) as u16)
10044        }
10045    }
10046    #[inline]
10047    pub unsafe fn set_type_raw(this: *mut Self, val: u16) {
10048        unsafe {
10049            let val: u16 = ::core::mem::transmute(val);
10050            <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(
10051                ::core::ptr::addr_of_mut!((*this)._bitfield_1),
10052                12usize,
10053                4u8,
10054                val as u64,
10055            )
10056        }
10057    }
10058    #[inline]
10059    pub fn new_bitfield_1(
10060        status: u16,
10061        format: u16,
10062        type_: u16,
10063    ) -> __BindgenBitfieldUnit<[u8; 2usize]> {
10064        let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 2usize]> = Default::default();
10065        __bindgen_bitfield_unit.set(0usize, 10u8, {
10066            let status: u16 = unsafe { ::core::mem::transmute(status) };
10067            status as u64
10068        });
10069        __bindgen_bitfield_unit.set(10usize, 2u8, {
10070            let format: u16 = unsafe { ::core::mem::transmute(format) };
10071            format as u64
10072        });
10073        __bindgen_bitfield_unit.set(12usize, 4u8, {
10074            let type_: u16 = unsafe { ::core::mem::transmute(type_) };
10075            type_ as u64
10076        });
10077        __bindgen_bitfield_unit
10078    }
10079}
10080pub type snd_ump_msg_stream_gen_t = _snd_ump_msg_stream_gen;
10081#[repr(C)]
10082#[derive(Copy, Clone)]
10083pub union _snd_ump_msg_stream {
10084    pub gen_: snd_ump_msg_stream_gen_t,
10085    pub hdr: snd_ump_msg_hdr_t,
10086    pub raw: [u32; 4usize],
10087}
10088pub type snd_ump_msg_stream_t = _snd_ump_msg_stream;
10089#[repr(C, packed)]
10090#[derive(Debug, Copy, Clone)]
10091pub struct _snd_ump_msg_flex_data_meta {
10092    pub status: u8,
10093    pub status_bank: u8,
10094    pub _bitfield_align_1: [u8; 0],
10095    pub _bitfield_1: __BindgenBitfieldUnit<[u8; 2usize]>,
10096    pub data: [u32; 3usize],
10097}
10098impl _snd_ump_msg_flex_data_meta {
10099    #[inline]
10100    pub fn channel(&self) -> u8 {
10101        unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 4u8) as u8) }
10102    }
10103    #[inline]
10104    pub fn set_channel(&mut self, val: u8) {
10105        unsafe {
10106            let val: u8 = ::core::mem::transmute(val);
10107            self._bitfield_1.set(0usize, 4u8, val as u64)
10108        }
10109    }
10110    #[inline]
10111    pub unsafe fn channel_raw(this: *const Self) -> u8 {
10112        unsafe {
10113            ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(
10114                ::core::ptr::addr_of!((*this)._bitfield_1),
10115                0usize,
10116                4u8,
10117            ) as u8)
10118        }
10119    }
10120    #[inline]
10121    pub unsafe fn set_channel_raw(this: *mut Self, val: u8) {
10122        unsafe {
10123            let val: u8 = ::core::mem::transmute(val);
10124            <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(
10125                ::core::ptr::addr_of_mut!((*this)._bitfield_1),
10126                0usize,
10127                4u8,
10128                val as u64,
10129            )
10130        }
10131    }
10132    #[inline]
10133    pub fn addrs(&self) -> u8 {
10134        unsafe { ::core::mem::transmute(self._bitfield_1.get(4usize, 2u8) as u8) }
10135    }
10136    #[inline]
10137    pub fn set_addrs(&mut self, val: u8) {
10138        unsafe {
10139            let val: u8 = ::core::mem::transmute(val);
10140            self._bitfield_1.set(4usize, 2u8, val as u64)
10141        }
10142    }
10143    #[inline]
10144    pub unsafe fn addrs_raw(this: *const Self) -> u8 {
10145        unsafe {
10146            ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(
10147                ::core::ptr::addr_of!((*this)._bitfield_1),
10148                4usize,
10149                2u8,
10150            ) as u8)
10151        }
10152    }
10153    #[inline]
10154    pub unsafe fn set_addrs_raw(this: *mut Self, val: u8) {
10155        unsafe {
10156            let val: u8 = ::core::mem::transmute(val);
10157            <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(
10158                ::core::ptr::addr_of_mut!((*this)._bitfield_1),
10159                4usize,
10160                2u8,
10161                val as u64,
10162            )
10163        }
10164    }
10165    #[inline]
10166    pub fn format(&self) -> u8 {
10167        unsafe { ::core::mem::transmute(self._bitfield_1.get(6usize, 2u8) as u8) }
10168    }
10169    #[inline]
10170    pub fn set_format(&mut self, val: u8) {
10171        unsafe {
10172            let val: u8 = ::core::mem::transmute(val);
10173            self._bitfield_1.set(6usize, 2u8, val as u64)
10174        }
10175    }
10176    #[inline]
10177    pub unsafe fn format_raw(this: *const Self) -> u8 {
10178        unsafe {
10179            ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(
10180                ::core::ptr::addr_of!((*this)._bitfield_1),
10181                6usize,
10182                2u8,
10183            ) as u8)
10184        }
10185    }
10186    #[inline]
10187    pub unsafe fn set_format_raw(this: *mut Self, val: u8) {
10188        unsafe {
10189            let val: u8 = ::core::mem::transmute(val);
10190            <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(
10191                ::core::ptr::addr_of_mut!((*this)._bitfield_1),
10192                6usize,
10193                2u8,
10194                val as u64,
10195            )
10196        }
10197    }
10198    #[inline]
10199    pub fn group(&self) -> u8 {
10200        unsafe { ::core::mem::transmute(self._bitfield_1.get(8usize, 4u8) as u8) }
10201    }
10202    #[inline]
10203    pub fn set_group(&mut self, val: u8) {
10204        unsafe {
10205            let val: u8 = ::core::mem::transmute(val);
10206            self._bitfield_1.set(8usize, 4u8, val as u64)
10207        }
10208    }
10209    #[inline]
10210    pub unsafe fn group_raw(this: *const Self) -> u8 {
10211        unsafe {
10212            ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(
10213                ::core::ptr::addr_of!((*this)._bitfield_1),
10214                8usize,
10215                4u8,
10216            ) as u8)
10217        }
10218    }
10219    #[inline]
10220    pub unsafe fn set_group_raw(this: *mut Self, val: u8) {
10221        unsafe {
10222            let val: u8 = ::core::mem::transmute(val);
10223            <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(
10224                ::core::ptr::addr_of_mut!((*this)._bitfield_1),
10225                8usize,
10226                4u8,
10227                val as u64,
10228            )
10229        }
10230    }
10231    #[inline]
10232    pub fn type_(&self) -> u8 {
10233        unsafe { ::core::mem::transmute(self._bitfield_1.get(12usize, 4u8) as u8) }
10234    }
10235    #[inline]
10236    pub fn set_type(&mut self, val: u8) {
10237        unsafe {
10238            let val: u8 = ::core::mem::transmute(val);
10239            self._bitfield_1.set(12usize, 4u8, val as u64)
10240        }
10241    }
10242    #[inline]
10243    pub unsafe fn type__raw(this: *const Self) -> u8 {
10244        unsafe {
10245            ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(
10246                ::core::ptr::addr_of!((*this)._bitfield_1),
10247                12usize,
10248                4u8,
10249            ) as u8)
10250        }
10251    }
10252    #[inline]
10253    pub unsafe fn set_type_raw(this: *mut Self, val: u8) {
10254        unsafe {
10255            let val: u8 = ::core::mem::transmute(val);
10256            <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(
10257                ::core::ptr::addr_of_mut!((*this)._bitfield_1),
10258                12usize,
10259                4u8,
10260                val as u64,
10261            )
10262        }
10263    }
10264    #[inline]
10265    pub fn new_bitfield_1(
10266        channel: u8,
10267        addrs: u8,
10268        format: u8,
10269        group: u8,
10270        type_: u8,
10271    ) -> __BindgenBitfieldUnit<[u8; 2usize]> {
10272        let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 2usize]> = Default::default();
10273        __bindgen_bitfield_unit.set(0usize, 4u8, {
10274            let channel: u8 = unsafe { ::core::mem::transmute(channel) };
10275            channel as u64
10276        });
10277        __bindgen_bitfield_unit.set(4usize, 2u8, {
10278            let addrs: u8 = unsafe { ::core::mem::transmute(addrs) };
10279            addrs as u64
10280        });
10281        __bindgen_bitfield_unit.set(6usize, 2u8, {
10282            let format: u8 = unsafe { ::core::mem::transmute(format) };
10283            format as u64
10284        });
10285        __bindgen_bitfield_unit.set(8usize, 4u8, {
10286            let group: u8 = unsafe { ::core::mem::transmute(group) };
10287            group as u64
10288        });
10289        __bindgen_bitfield_unit.set(12usize, 4u8, {
10290            let type_: u8 = unsafe { ::core::mem::transmute(type_) };
10291            type_ as u64
10292        });
10293        __bindgen_bitfield_unit
10294    }
10295}
10296pub type snd_ump_msg_flex_data_meta_t = _snd_ump_msg_flex_data_meta;
10297#[repr(C, packed)]
10298#[derive(Debug, Copy, Clone)]
10299pub struct _snd_ump_msg_set_tempo {
10300    pub status: u8,
10301    pub status_bank: u8,
10302    pub _bitfield_align_1: [u8; 0],
10303    pub _bitfield_1: __BindgenBitfieldUnit<[u8; 2usize]>,
10304    pub tempo: u32,
10305    pub reserved: [u32; 2usize],
10306}
10307impl _snd_ump_msg_set_tempo {
10308    #[inline]
10309    pub fn channel(&self) -> u8 {
10310        unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 4u8) as u8) }
10311    }
10312    #[inline]
10313    pub fn set_channel(&mut self, val: u8) {
10314        unsafe {
10315            let val: u8 = ::core::mem::transmute(val);
10316            self._bitfield_1.set(0usize, 4u8, val as u64)
10317        }
10318    }
10319    #[inline]
10320    pub unsafe fn channel_raw(this: *const Self) -> u8 {
10321        unsafe {
10322            ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(
10323                ::core::ptr::addr_of!((*this)._bitfield_1),
10324                0usize,
10325                4u8,
10326            ) as u8)
10327        }
10328    }
10329    #[inline]
10330    pub unsafe fn set_channel_raw(this: *mut Self, val: u8) {
10331        unsafe {
10332            let val: u8 = ::core::mem::transmute(val);
10333            <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(
10334                ::core::ptr::addr_of_mut!((*this)._bitfield_1),
10335                0usize,
10336                4u8,
10337                val as u64,
10338            )
10339        }
10340    }
10341    #[inline]
10342    pub fn addrs(&self) -> u8 {
10343        unsafe { ::core::mem::transmute(self._bitfield_1.get(4usize, 2u8) as u8) }
10344    }
10345    #[inline]
10346    pub fn set_addrs(&mut self, val: u8) {
10347        unsafe {
10348            let val: u8 = ::core::mem::transmute(val);
10349            self._bitfield_1.set(4usize, 2u8, val as u64)
10350        }
10351    }
10352    #[inline]
10353    pub unsafe fn addrs_raw(this: *const Self) -> u8 {
10354        unsafe {
10355            ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(
10356                ::core::ptr::addr_of!((*this)._bitfield_1),
10357                4usize,
10358                2u8,
10359            ) as u8)
10360        }
10361    }
10362    #[inline]
10363    pub unsafe fn set_addrs_raw(this: *mut Self, val: u8) {
10364        unsafe {
10365            let val: u8 = ::core::mem::transmute(val);
10366            <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(
10367                ::core::ptr::addr_of_mut!((*this)._bitfield_1),
10368                4usize,
10369                2u8,
10370                val as u64,
10371            )
10372        }
10373    }
10374    #[inline]
10375    pub fn format(&self) -> u8 {
10376        unsafe { ::core::mem::transmute(self._bitfield_1.get(6usize, 2u8) as u8) }
10377    }
10378    #[inline]
10379    pub fn set_format(&mut self, val: u8) {
10380        unsafe {
10381            let val: u8 = ::core::mem::transmute(val);
10382            self._bitfield_1.set(6usize, 2u8, val as u64)
10383        }
10384    }
10385    #[inline]
10386    pub unsafe fn format_raw(this: *const Self) -> u8 {
10387        unsafe {
10388            ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(
10389                ::core::ptr::addr_of!((*this)._bitfield_1),
10390                6usize,
10391                2u8,
10392            ) as u8)
10393        }
10394    }
10395    #[inline]
10396    pub unsafe fn set_format_raw(this: *mut Self, val: u8) {
10397        unsafe {
10398            let val: u8 = ::core::mem::transmute(val);
10399            <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(
10400                ::core::ptr::addr_of_mut!((*this)._bitfield_1),
10401                6usize,
10402                2u8,
10403                val as u64,
10404            )
10405        }
10406    }
10407    #[inline]
10408    pub fn group(&self) -> u8 {
10409        unsafe { ::core::mem::transmute(self._bitfield_1.get(8usize, 4u8) as u8) }
10410    }
10411    #[inline]
10412    pub fn set_group(&mut self, val: u8) {
10413        unsafe {
10414            let val: u8 = ::core::mem::transmute(val);
10415            self._bitfield_1.set(8usize, 4u8, val as u64)
10416        }
10417    }
10418    #[inline]
10419    pub unsafe fn group_raw(this: *const Self) -> u8 {
10420        unsafe {
10421            ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(
10422                ::core::ptr::addr_of!((*this)._bitfield_1),
10423                8usize,
10424                4u8,
10425            ) as u8)
10426        }
10427    }
10428    #[inline]
10429    pub unsafe fn set_group_raw(this: *mut Self, val: u8) {
10430        unsafe {
10431            let val: u8 = ::core::mem::transmute(val);
10432            <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(
10433                ::core::ptr::addr_of_mut!((*this)._bitfield_1),
10434                8usize,
10435                4u8,
10436                val as u64,
10437            )
10438        }
10439    }
10440    #[inline]
10441    pub fn type_(&self) -> u8 {
10442        unsafe { ::core::mem::transmute(self._bitfield_1.get(12usize, 4u8) as u8) }
10443    }
10444    #[inline]
10445    pub fn set_type(&mut self, val: u8) {
10446        unsafe {
10447            let val: u8 = ::core::mem::transmute(val);
10448            self._bitfield_1.set(12usize, 4u8, val as u64)
10449        }
10450    }
10451    #[inline]
10452    pub unsafe fn type__raw(this: *const Self) -> u8 {
10453        unsafe {
10454            ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(
10455                ::core::ptr::addr_of!((*this)._bitfield_1),
10456                12usize,
10457                4u8,
10458            ) as u8)
10459        }
10460    }
10461    #[inline]
10462    pub unsafe fn set_type_raw(this: *mut Self, val: u8) {
10463        unsafe {
10464            let val: u8 = ::core::mem::transmute(val);
10465            <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(
10466                ::core::ptr::addr_of_mut!((*this)._bitfield_1),
10467                12usize,
10468                4u8,
10469                val as u64,
10470            )
10471        }
10472    }
10473    #[inline]
10474    pub fn new_bitfield_1(
10475        channel: u8,
10476        addrs: u8,
10477        format: u8,
10478        group: u8,
10479        type_: u8,
10480    ) -> __BindgenBitfieldUnit<[u8; 2usize]> {
10481        let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 2usize]> = Default::default();
10482        __bindgen_bitfield_unit.set(0usize, 4u8, {
10483            let channel: u8 = unsafe { ::core::mem::transmute(channel) };
10484            channel as u64
10485        });
10486        __bindgen_bitfield_unit.set(4usize, 2u8, {
10487            let addrs: u8 = unsafe { ::core::mem::transmute(addrs) };
10488            addrs as u64
10489        });
10490        __bindgen_bitfield_unit.set(6usize, 2u8, {
10491            let format: u8 = unsafe { ::core::mem::transmute(format) };
10492            format as u64
10493        });
10494        __bindgen_bitfield_unit.set(8usize, 4u8, {
10495            let group: u8 = unsafe { ::core::mem::transmute(group) };
10496            group as u64
10497        });
10498        __bindgen_bitfield_unit.set(12usize, 4u8, {
10499            let type_: u8 = unsafe { ::core::mem::transmute(type_) };
10500            type_ as u64
10501        });
10502        __bindgen_bitfield_unit
10503    }
10504}
10505pub type snd_ump_msg_set_tempo_t = _snd_ump_msg_set_tempo;
10506#[repr(C, packed)]
10507#[derive(Debug, Copy, Clone)]
10508pub struct _snd_ump_msg_set_time_sig {
10509    pub status: u8,
10510    pub status_bank: u8,
10511    pub _bitfield_align_1: [u8; 0],
10512    pub _bitfield_1: __BindgenBitfieldUnit<[u8; 2usize]>,
10513    pub reserved1: u8,
10514    pub num_notes: u8,
10515    pub denominator: u8,
10516    pub numerator: u8,
10517    pub reserved: [u32; 2usize],
10518}
10519impl _snd_ump_msg_set_time_sig {
10520    #[inline]
10521    pub fn channel(&self) -> u8 {
10522        unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 4u8) as u8) }
10523    }
10524    #[inline]
10525    pub fn set_channel(&mut self, val: u8) {
10526        unsafe {
10527            let val: u8 = ::core::mem::transmute(val);
10528            self._bitfield_1.set(0usize, 4u8, val as u64)
10529        }
10530    }
10531    #[inline]
10532    pub unsafe fn channel_raw(this: *const Self) -> u8 {
10533        unsafe {
10534            ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(
10535                ::core::ptr::addr_of!((*this)._bitfield_1),
10536                0usize,
10537                4u8,
10538            ) as u8)
10539        }
10540    }
10541    #[inline]
10542    pub unsafe fn set_channel_raw(this: *mut Self, val: u8) {
10543        unsafe {
10544            let val: u8 = ::core::mem::transmute(val);
10545            <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(
10546                ::core::ptr::addr_of_mut!((*this)._bitfield_1),
10547                0usize,
10548                4u8,
10549                val as u64,
10550            )
10551        }
10552    }
10553    #[inline]
10554    pub fn addrs(&self) -> u8 {
10555        unsafe { ::core::mem::transmute(self._bitfield_1.get(4usize, 2u8) as u8) }
10556    }
10557    #[inline]
10558    pub fn set_addrs(&mut self, val: u8) {
10559        unsafe {
10560            let val: u8 = ::core::mem::transmute(val);
10561            self._bitfield_1.set(4usize, 2u8, val as u64)
10562        }
10563    }
10564    #[inline]
10565    pub unsafe fn addrs_raw(this: *const Self) -> u8 {
10566        unsafe {
10567            ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(
10568                ::core::ptr::addr_of!((*this)._bitfield_1),
10569                4usize,
10570                2u8,
10571            ) as u8)
10572        }
10573    }
10574    #[inline]
10575    pub unsafe fn set_addrs_raw(this: *mut Self, val: u8) {
10576        unsafe {
10577            let val: u8 = ::core::mem::transmute(val);
10578            <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(
10579                ::core::ptr::addr_of_mut!((*this)._bitfield_1),
10580                4usize,
10581                2u8,
10582                val as u64,
10583            )
10584        }
10585    }
10586    #[inline]
10587    pub fn format(&self) -> u8 {
10588        unsafe { ::core::mem::transmute(self._bitfield_1.get(6usize, 2u8) as u8) }
10589    }
10590    #[inline]
10591    pub fn set_format(&mut self, val: u8) {
10592        unsafe {
10593            let val: u8 = ::core::mem::transmute(val);
10594            self._bitfield_1.set(6usize, 2u8, val as u64)
10595        }
10596    }
10597    #[inline]
10598    pub unsafe fn format_raw(this: *const Self) -> u8 {
10599        unsafe {
10600            ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(
10601                ::core::ptr::addr_of!((*this)._bitfield_1),
10602                6usize,
10603                2u8,
10604            ) as u8)
10605        }
10606    }
10607    #[inline]
10608    pub unsafe fn set_format_raw(this: *mut Self, val: u8) {
10609        unsafe {
10610            let val: u8 = ::core::mem::transmute(val);
10611            <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(
10612                ::core::ptr::addr_of_mut!((*this)._bitfield_1),
10613                6usize,
10614                2u8,
10615                val as u64,
10616            )
10617        }
10618    }
10619    #[inline]
10620    pub fn group(&self) -> u8 {
10621        unsafe { ::core::mem::transmute(self._bitfield_1.get(8usize, 4u8) as u8) }
10622    }
10623    #[inline]
10624    pub fn set_group(&mut self, val: u8) {
10625        unsafe {
10626            let val: u8 = ::core::mem::transmute(val);
10627            self._bitfield_1.set(8usize, 4u8, val as u64)
10628        }
10629    }
10630    #[inline]
10631    pub unsafe fn group_raw(this: *const Self) -> u8 {
10632        unsafe {
10633            ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(
10634                ::core::ptr::addr_of!((*this)._bitfield_1),
10635                8usize,
10636                4u8,
10637            ) as u8)
10638        }
10639    }
10640    #[inline]
10641    pub unsafe fn set_group_raw(this: *mut Self, val: u8) {
10642        unsafe {
10643            let val: u8 = ::core::mem::transmute(val);
10644            <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(
10645                ::core::ptr::addr_of_mut!((*this)._bitfield_1),
10646                8usize,
10647                4u8,
10648                val as u64,
10649            )
10650        }
10651    }
10652    #[inline]
10653    pub fn type_(&self) -> u8 {
10654        unsafe { ::core::mem::transmute(self._bitfield_1.get(12usize, 4u8) as u8) }
10655    }
10656    #[inline]
10657    pub fn set_type(&mut self, val: u8) {
10658        unsafe {
10659            let val: u8 = ::core::mem::transmute(val);
10660            self._bitfield_1.set(12usize, 4u8, val as u64)
10661        }
10662    }
10663    #[inline]
10664    pub unsafe fn type__raw(this: *const Self) -> u8 {
10665        unsafe {
10666            ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(
10667                ::core::ptr::addr_of!((*this)._bitfield_1),
10668                12usize,
10669                4u8,
10670            ) as u8)
10671        }
10672    }
10673    #[inline]
10674    pub unsafe fn set_type_raw(this: *mut Self, val: u8) {
10675        unsafe {
10676            let val: u8 = ::core::mem::transmute(val);
10677            <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(
10678                ::core::ptr::addr_of_mut!((*this)._bitfield_1),
10679                12usize,
10680                4u8,
10681                val as u64,
10682            )
10683        }
10684    }
10685    #[inline]
10686    pub fn new_bitfield_1(
10687        channel: u8,
10688        addrs: u8,
10689        format: u8,
10690        group: u8,
10691        type_: u8,
10692    ) -> __BindgenBitfieldUnit<[u8; 2usize]> {
10693        let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 2usize]> = Default::default();
10694        __bindgen_bitfield_unit.set(0usize, 4u8, {
10695            let channel: u8 = unsafe { ::core::mem::transmute(channel) };
10696            channel as u64
10697        });
10698        __bindgen_bitfield_unit.set(4usize, 2u8, {
10699            let addrs: u8 = unsafe { ::core::mem::transmute(addrs) };
10700            addrs as u64
10701        });
10702        __bindgen_bitfield_unit.set(6usize, 2u8, {
10703            let format: u8 = unsafe { ::core::mem::transmute(format) };
10704            format as u64
10705        });
10706        __bindgen_bitfield_unit.set(8usize, 4u8, {
10707            let group: u8 = unsafe { ::core::mem::transmute(group) };
10708            group as u64
10709        });
10710        __bindgen_bitfield_unit.set(12usize, 4u8, {
10711            let type_: u8 = unsafe { ::core::mem::transmute(type_) };
10712            type_ as u64
10713        });
10714        __bindgen_bitfield_unit
10715    }
10716}
10717pub type snd_ump_msg_set_time_sig_t = _snd_ump_msg_set_time_sig;
10718#[repr(C, packed)]
10719#[derive(Debug, Copy, Clone)]
10720pub struct _snd_ump_msg_set_metronome {
10721    pub status: u8,
10722    pub status_bank: u8,
10723    pub _bitfield_align_1: [u8; 0],
10724    pub _bitfield_1: __BindgenBitfieldUnit<[u8; 2usize]>,
10725    pub bar_accent_3: u8,
10726    pub bar_accent_2: u8,
10727    pub bar_accent_1: u8,
10728    pub clocks_primary: u8,
10729    pub reserved1: u16,
10730    pub subdivision_2: u8,
10731    pub subdivision_1: u8,
10732    pub reserved2: u32,
10733}
10734impl _snd_ump_msg_set_metronome {
10735    #[inline]
10736    pub fn channel(&self) -> u8 {
10737        unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 4u8) as u8) }
10738    }
10739    #[inline]
10740    pub fn set_channel(&mut self, val: u8) {
10741        unsafe {
10742            let val: u8 = ::core::mem::transmute(val);
10743            self._bitfield_1.set(0usize, 4u8, val as u64)
10744        }
10745    }
10746    #[inline]
10747    pub unsafe fn channel_raw(this: *const Self) -> u8 {
10748        unsafe {
10749            ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(
10750                ::core::ptr::addr_of!((*this)._bitfield_1),
10751                0usize,
10752                4u8,
10753            ) as u8)
10754        }
10755    }
10756    #[inline]
10757    pub unsafe fn set_channel_raw(this: *mut Self, val: u8) {
10758        unsafe {
10759            let val: u8 = ::core::mem::transmute(val);
10760            <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(
10761                ::core::ptr::addr_of_mut!((*this)._bitfield_1),
10762                0usize,
10763                4u8,
10764                val as u64,
10765            )
10766        }
10767    }
10768    #[inline]
10769    pub fn addrs(&self) -> u8 {
10770        unsafe { ::core::mem::transmute(self._bitfield_1.get(4usize, 2u8) as u8) }
10771    }
10772    #[inline]
10773    pub fn set_addrs(&mut self, val: u8) {
10774        unsafe {
10775            let val: u8 = ::core::mem::transmute(val);
10776            self._bitfield_1.set(4usize, 2u8, val as u64)
10777        }
10778    }
10779    #[inline]
10780    pub unsafe fn addrs_raw(this: *const Self) -> u8 {
10781        unsafe {
10782            ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(
10783                ::core::ptr::addr_of!((*this)._bitfield_1),
10784                4usize,
10785                2u8,
10786            ) as u8)
10787        }
10788    }
10789    #[inline]
10790    pub unsafe fn set_addrs_raw(this: *mut Self, val: u8) {
10791        unsafe {
10792            let val: u8 = ::core::mem::transmute(val);
10793            <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(
10794                ::core::ptr::addr_of_mut!((*this)._bitfield_1),
10795                4usize,
10796                2u8,
10797                val as u64,
10798            )
10799        }
10800    }
10801    #[inline]
10802    pub fn format(&self) -> u8 {
10803        unsafe { ::core::mem::transmute(self._bitfield_1.get(6usize, 2u8) as u8) }
10804    }
10805    #[inline]
10806    pub fn set_format(&mut self, val: u8) {
10807        unsafe {
10808            let val: u8 = ::core::mem::transmute(val);
10809            self._bitfield_1.set(6usize, 2u8, val as u64)
10810        }
10811    }
10812    #[inline]
10813    pub unsafe fn format_raw(this: *const Self) -> u8 {
10814        unsafe {
10815            ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(
10816                ::core::ptr::addr_of!((*this)._bitfield_1),
10817                6usize,
10818                2u8,
10819            ) as u8)
10820        }
10821    }
10822    #[inline]
10823    pub unsafe fn set_format_raw(this: *mut Self, val: u8) {
10824        unsafe {
10825            let val: u8 = ::core::mem::transmute(val);
10826            <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(
10827                ::core::ptr::addr_of_mut!((*this)._bitfield_1),
10828                6usize,
10829                2u8,
10830                val as u64,
10831            )
10832        }
10833    }
10834    #[inline]
10835    pub fn group(&self) -> u8 {
10836        unsafe { ::core::mem::transmute(self._bitfield_1.get(8usize, 4u8) as u8) }
10837    }
10838    #[inline]
10839    pub fn set_group(&mut self, val: u8) {
10840        unsafe {
10841            let val: u8 = ::core::mem::transmute(val);
10842            self._bitfield_1.set(8usize, 4u8, val as u64)
10843        }
10844    }
10845    #[inline]
10846    pub unsafe fn group_raw(this: *const Self) -> u8 {
10847        unsafe {
10848            ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(
10849                ::core::ptr::addr_of!((*this)._bitfield_1),
10850                8usize,
10851                4u8,
10852            ) as u8)
10853        }
10854    }
10855    #[inline]
10856    pub unsafe fn set_group_raw(this: *mut Self, val: u8) {
10857        unsafe {
10858            let val: u8 = ::core::mem::transmute(val);
10859            <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(
10860                ::core::ptr::addr_of_mut!((*this)._bitfield_1),
10861                8usize,
10862                4u8,
10863                val as u64,
10864            )
10865        }
10866    }
10867    #[inline]
10868    pub fn type_(&self) -> u8 {
10869        unsafe { ::core::mem::transmute(self._bitfield_1.get(12usize, 4u8) as u8) }
10870    }
10871    #[inline]
10872    pub fn set_type(&mut self, val: u8) {
10873        unsafe {
10874            let val: u8 = ::core::mem::transmute(val);
10875            self._bitfield_1.set(12usize, 4u8, val as u64)
10876        }
10877    }
10878    #[inline]
10879    pub unsafe fn type__raw(this: *const Self) -> u8 {
10880        unsafe {
10881            ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(
10882                ::core::ptr::addr_of!((*this)._bitfield_1),
10883                12usize,
10884                4u8,
10885            ) as u8)
10886        }
10887    }
10888    #[inline]
10889    pub unsafe fn set_type_raw(this: *mut Self, val: u8) {
10890        unsafe {
10891            let val: u8 = ::core::mem::transmute(val);
10892            <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(
10893                ::core::ptr::addr_of_mut!((*this)._bitfield_1),
10894                12usize,
10895                4u8,
10896                val as u64,
10897            )
10898        }
10899    }
10900    #[inline]
10901    pub fn new_bitfield_1(
10902        channel: u8,
10903        addrs: u8,
10904        format: u8,
10905        group: u8,
10906        type_: u8,
10907    ) -> __BindgenBitfieldUnit<[u8; 2usize]> {
10908        let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 2usize]> = Default::default();
10909        __bindgen_bitfield_unit.set(0usize, 4u8, {
10910            let channel: u8 = unsafe { ::core::mem::transmute(channel) };
10911            channel as u64
10912        });
10913        __bindgen_bitfield_unit.set(4usize, 2u8, {
10914            let addrs: u8 = unsafe { ::core::mem::transmute(addrs) };
10915            addrs as u64
10916        });
10917        __bindgen_bitfield_unit.set(6usize, 2u8, {
10918            let format: u8 = unsafe { ::core::mem::transmute(format) };
10919            format as u64
10920        });
10921        __bindgen_bitfield_unit.set(8usize, 4u8, {
10922            let group: u8 = unsafe { ::core::mem::transmute(group) };
10923            group as u64
10924        });
10925        __bindgen_bitfield_unit.set(12usize, 4u8, {
10926            let type_: u8 = unsafe { ::core::mem::transmute(type_) };
10927            type_ as u64
10928        });
10929        __bindgen_bitfield_unit
10930    }
10931}
10932pub type snd_ump_msg_set_metronome_t = _snd_ump_msg_set_metronome;
10933#[repr(C, packed)]
10934#[derive(Debug, Copy, Clone)]
10935pub struct _snd_ump_msg_set_key_sig {
10936    pub status: u8,
10937    pub status_bank: u8,
10938    pub _bitfield_align_1: [u8; 0],
10939    pub _bitfield_1: __BindgenBitfieldUnit<[u8; 2usize]>,
10940    pub reserved1: [u8; 3usize],
10941    pub _bitfield_align_2: [u8; 0],
10942    pub _bitfield_2: __BindgenBitfieldUnit<[u8; 1usize]>,
10943    pub reserved2: [u32; 2usize],
10944}
10945impl _snd_ump_msg_set_key_sig {
10946    #[inline]
10947    pub fn channel(&self) -> u8 {
10948        unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 4u8) as u8) }
10949    }
10950    #[inline]
10951    pub fn set_channel(&mut self, val: u8) {
10952        unsafe {
10953            let val: u8 = ::core::mem::transmute(val);
10954            self._bitfield_1.set(0usize, 4u8, val as u64)
10955        }
10956    }
10957    #[inline]
10958    pub unsafe fn channel_raw(this: *const Self) -> u8 {
10959        unsafe {
10960            ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(
10961                ::core::ptr::addr_of!((*this)._bitfield_1),
10962                0usize,
10963                4u8,
10964            ) as u8)
10965        }
10966    }
10967    #[inline]
10968    pub unsafe fn set_channel_raw(this: *mut Self, val: u8) {
10969        unsafe {
10970            let val: u8 = ::core::mem::transmute(val);
10971            <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(
10972                ::core::ptr::addr_of_mut!((*this)._bitfield_1),
10973                0usize,
10974                4u8,
10975                val as u64,
10976            )
10977        }
10978    }
10979    #[inline]
10980    pub fn addrs(&self) -> u8 {
10981        unsafe { ::core::mem::transmute(self._bitfield_1.get(4usize, 2u8) as u8) }
10982    }
10983    #[inline]
10984    pub fn set_addrs(&mut self, val: u8) {
10985        unsafe {
10986            let val: u8 = ::core::mem::transmute(val);
10987            self._bitfield_1.set(4usize, 2u8, val as u64)
10988        }
10989    }
10990    #[inline]
10991    pub unsafe fn addrs_raw(this: *const Self) -> u8 {
10992        unsafe {
10993            ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(
10994                ::core::ptr::addr_of!((*this)._bitfield_1),
10995                4usize,
10996                2u8,
10997            ) as u8)
10998        }
10999    }
11000    #[inline]
11001    pub unsafe fn set_addrs_raw(this: *mut Self, val: u8) {
11002        unsafe {
11003            let val: u8 = ::core::mem::transmute(val);
11004            <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(
11005                ::core::ptr::addr_of_mut!((*this)._bitfield_1),
11006                4usize,
11007                2u8,
11008                val as u64,
11009            )
11010        }
11011    }
11012    #[inline]
11013    pub fn format(&self) -> u8 {
11014        unsafe { ::core::mem::transmute(self._bitfield_1.get(6usize, 2u8) as u8) }
11015    }
11016    #[inline]
11017    pub fn set_format(&mut self, val: u8) {
11018        unsafe {
11019            let val: u8 = ::core::mem::transmute(val);
11020            self._bitfield_1.set(6usize, 2u8, val as u64)
11021        }
11022    }
11023    #[inline]
11024    pub unsafe fn format_raw(this: *const Self) -> u8 {
11025        unsafe {
11026            ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(
11027                ::core::ptr::addr_of!((*this)._bitfield_1),
11028                6usize,
11029                2u8,
11030            ) as u8)
11031        }
11032    }
11033    #[inline]
11034    pub unsafe fn set_format_raw(this: *mut Self, val: u8) {
11035        unsafe {
11036            let val: u8 = ::core::mem::transmute(val);
11037            <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(
11038                ::core::ptr::addr_of_mut!((*this)._bitfield_1),
11039                6usize,
11040                2u8,
11041                val as u64,
11042            )
11043        }
11044    }
11045    #[inline]
11046    pub fn group(&self) -> u8 {
11047        unsafe { ::core::mem::transmute(self._bitfield_1.get(8usize, 4u8) as u8) }
11048    }
11049    #[inline]
11050    pub fn set_group(&mut self, val: u8) {
11051        unsafe {
11052            let val: u8 = ::core::mem::transmute(val);
11053            self._bitfield_1.set(8usize, 4u8, val as u64)
11054        }
11055    }
11056    #[inline]
11057    pub unsafe fn group_raw(this: *const Self) -> u8 {
11058        unsafe {
11059            ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(
11060                ::core::ptr::addr_of!((*this)._bitfield_1),
11061                8usize,
11062                4u8,
11063            ) as u8)
11064        }
11065    }
11066    #[inline]
11067    pub unsafe fn set_group_raw(this: *mut Self, val: u8) {
11068        unsafe {
11069            let val: u8 = ::core::mem::transmute(val);
11070            <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(
11071                ::core::ptr::addr_of_mut!((*this)._bitfield_1),
11072                8usize,
11073                4u8,
11074                val as u64,
11075            )
11076        }
11077    }
11078    #[inline]
11079    pub fn type_(&self) -> u8 {
11080        unsafe { ::core::mem::transmute(self._bitfield_1.get(12usize, 4u8) as u8) }
11081    }
11082    #[inline]
11083    pub fn set_type(&mut self, val: u8) {
11084        unsafe {
11085            let val: u8 = ::core::mem::transmute(val);
11086            self._bitfield_1.set(12usize, 4u8, val as u64)
11087        }
11088    }
11089    #[inline]
11090    pub unsafe fn type__raw(this: *const Self) -> u8 {
11091        unsafe {
11092            ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(
11093                ::core::ptr::addr_of!((*this)._bitfield_1),
11094                12usize,
11095                4u8,
11096            ) as u8)
11097        }
11098    }
11099    #[inline]
11100    pub unsafe fn set_type_raw(this: *mut Self, val: u8) {
11101        unsafe {
11102            let val: u8 = ::core::mem::transmute(val);
11103            <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(
11104                ::core::ptr::addr_of_mut!((*this)._bitfield_1),
11105                12usize,
11106                4u8,
11107                val as u64,
11108            )
11109        }
11110    }
11111    #[inline]
11112    pub fn new_bitfield_1(
11113        channel: u8,
11114        addrs: u8,
11115        format: u8,
11116        group: u8,
11117        type_: u8,
11118    ) -> __BindgenBitfieldUnit<[u8; 2usize]> {
11119        let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 2usize]> = Default::default();
11120        __bindgen_bitfield_unit.set(0usize, 4u8, {
11121            let channel: u8 = unsafe { ::core::mem::transmute(channel) };
11122            channel as u64
11123        });
11124        __bindgen_bitfield_unit.set(4usize, 2u8, {
11125            let addrs: u8 = unsafe { ::core::mem::transmute(addrs) };
11126            addrs as u64
11127        });
11128        __bindgen_bitfield_unit.set(6usize, 2u8, {
11129            let format: u8 = unsafe { ::core::mem::transmute(format) };
11130            format as u64
11131        });
11132        __bindgen_bitfield_unit.set(8usize, 4u8, {
11133            let group: u8 = unsafe { ::core::mem::transmute(group) };
11134            group as u64
11135        });
11136        __bindgen_bitfield_unit.set(12usize, 4u8, {
11137            let type_: u8 = unsafe { ::core::mem::transmute(type_) };
11138            type_ as u64
11139        });
11140        __bindgen_bitfield_unit
11141    }
11142    #[inline]
11143    pub fn tonic_note(&self) -> u8 {
11144        unsafe { ::core::mem::transmute(self._bitfield_2.get(0usize, 4u8) as u8) }
11145    }
11146    #[inline]
11147    pub fn set_tonic_note(&mut self, val: u8) {
11148        unsafe {
11149            let val: u8 = ::core::mem::transmute(val);
11150            self._bitfield_2.set(0usize, 4u8, val as u64)
11151        }
11152    }
11153    #[inline]
11154    pub unsafe fn tonic_note_raw(this: *const Self) -> u8 {
11155        unsafe {
11156            ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get(
11157                ::core::ptr::addr_of!((*this)._bitfield_2),
11158                0usize,
11159                4u8,
11160            ) as u8)
11161        }
11162    }
11163    #[inline]
11164    pub unsafe fn set_tonic_note_raw(this: *mut Self, val: u8) {
11165        unsafe {
11166            let val: u8 = ::core::mem::transmute(val);
11167            <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set(
11168                ::core::ptr::addr_of_mut!((*this)._bitfield_2),
11169                0usize,
11170                4u8,
11171                val as u64,
11172            )
11173        }
11174    }
11175    #[inline]
11176    pub fn sharps_flats(&self) -> u8 {
11177        unsafe { ::core::mem::transmute(self._bitfield_2.get(4usize, 4u8) as u8) }
11178    }
11179    #[inline]
11180    pub fn set_sharps_flats(&mut self, val: u8) {
11181        unsafe {
11182            let val: u8 = ::core::mem::transmute(val);
11183            self._bitfield_2.set(4usize, 4u8, val as u64)
11184        }
11185    }
11186    #[inline]
11187    pub unsafe fn sharps_flats_raw(this: *const Self) -> u8 {
11188        unsafe {
11189            ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get(
11190                ::core::ptr::addr_of!((*this)._bitfield_2),
11191                4usize,
11192                4u8,
11193            ) as u8)
11194        }
11195    }
11196    #[inline]
11197    pub unsafe fn set_sharps_flats_raw(this: *mut Self, val: u8) {
11198        unsafe {
11199            let val: u8 = ::core::mem::transmute(val);
11200            <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set(
11201                ::core::ptr::addr_of_mut!((*this)._bitfield_2),
11202                4usize,
11203                4u8,
11204                val as u64,
11205            )
11206        }
11207    }
11208    #[inline]
11209    pub fn new_bitfield_2(tonic_note: u8, sharps_flats: u8) -> __BindgenBitfieldUnit<[u8; 1usize]> {
11210        let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 1usize]> = Default::default();
11211        __bindgen_bitfield_unit.set(0usize, 4u8, {
11212            let tonic_note: u8 = unsafe { ::core::mem::transmute(tonic_note) };
11213            tonic_note as u64
11214        });
11215        __bindgen_bitfield_unit.set(4usize, 4u8, {
11216            let sharps_flats: u8 = unsafe { ::core::mem::transmute(sharps_flats) };
11217            sharps_flats as u64
11218        });
11219        __bindgen_bitfield_unit
11220    }
11221}
11222pub type snd_ump_msg_set_key_sig_t = _snd_ump_msg_set_key_sig;
11223#[repr(C, packed)]
11224#[derive(Debug, Copy, Clone)]
11225pub struct _snd_ump_msg_set_chord_name {
11226    pub status: u8,
11227    pub status_bank: u8,
11228    pub _bitfield_align_1: [u8; 0],
11229    pub _bitfield_1: __BindgenBitfieldUnit<[u8; 4usize]>,
11230    pub chord_type: u8,
11231    pub _bitfield_align_2: [u8; 0],
11232    pub _bitfield_2: __BindgenBitfieldUnit<[u8; 1usize]>,
11233    pub reserved: u16,
11234    pub _bitfield_align_3: [u8; 0],
11235    pub _bitfield_3: __BindgenBitfieldUnit<[u8; 4usize]>,
11236    pub bass_type: u8,
11237    pub _bitfield_align_4: [u8; 0],
11238    pub _bitfield_4: __BindgenBitfieldUnit<[u8; 1usize]>,
11239}
11240impl _snd_ump_msg_set_chord_name {
11241    #[inline]
11242    pub fn channel(&self) -> u8 {
11243        unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 4u8) as u8) }
11244    }
11245    #[inline]
11246    pub fn set_channel(&mut self, val: u8) {
11247        unsafe {
11248            let val: u8 = ::core::mem::transmute(val);
11249            self._bitfield_1.set(0usize, 4u8, val as u64)
11250        }
11251    }
11252    #[inline]
11253    pub unsafe fn channel_raw(this: *const Self) -> u8 {
11254        unsafe {
11255            ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(
11256                ::core::ptr::addr_of!((*this)._bitfield_1),
11257                0usize,
11258                4u8,
11259            ) as u8)
11260        }
11261    }
11262    #[inline]
11263    pub unsafe fn set_channel_raw(this: *mut Self, val: u8) {
11264        unsafe {
11265            let val: u8 = ::core::mem::transmute(val);
11266            <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(
11267                ::core::ptr::addr_of_mut!((*this)._bitfield_1),
11268                0usize,
11269                4u8,
11270                val as u64,
11271            )
11272        }
11273    }
11274    #[inline]
11275    pub fn addrs(&self) -> u8 {
11276        unsafe { ::core::mem::transmute(self._bitfield_1.get(4usize, 2u8) as u8) }
11277    }
11278    #[inline]
11279    pub fn set_addrs(&mut self, val: u8) {
11280        unsafe {
11281            let val: u8 = ::core::mem::transmute(val);
11282            self._bitfield_1.set(4usize, 2u8, val as u64)
11283        }
11284    }
11285    #[inline]
11286    pub unsafe fn addrs_raw(this: *const Self) -> u8 {
11287        unsafe {
11288            ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(
11289                ::core::ptr::addr_of!((*this)._bitfield_1),
11290                4usize,
11291                2u8,
11292            ) as u8)
11293        }
11294    }
11295    #[inline]
11296    pub unsafe fn set_addrs_raw(this: *mut Self, val: u8) {
11297        unsafe {
11298            let val: u8 = ::core::mem::transmute(val);
11299            <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(
11300                ::core::ptr::addr_of_mut!((*this)._bitfield_1),
11301                4usize,
11302                2u8,
11303                val as u64,
11304            )
11305        }
11306    }
11307    #[inline]
11308    pub fn format(&self) -> u8 {
11309        unsafe { ::core::mem::transmute(self._bitfield_1.get(6usize, 2u8) as u8) }
11310    }
11311    #[inline]
11312    pub fn set_format(&mut self, val: u8) {
11313        unsafe {
11314            let val: u8 = ::core::mem::transmute(val);
11315            self._bitfield_1.set(6usize, 2u8, val as u64)
11316        }
11317    }
11318    #[inline]
11319    pub unsafe fn format_raw(this: *const Self) -> u8 {
11320        unsafe {
11321            ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(
11322                ::core::ptr::addr_of!((*this)._bitfield_1),
11323                6usize,
11324                2u8,
11325            ) as u8)
11326        }
11327    }
11328    #[inline]
11329    pub unsafe fn set_format_raw(this: *mut Self, val: u8) {
11330        unsafe {
11331            let val: u8 = ::core::mem::transmute(val);
11332            <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(
11333                ::core::ptr::addr_of_mut!((*this)._bitfield_1),
11334                6usize,
11335                2u8,
11336                val as u64,
11337            )
11338        }
11339    }
11340    #[inline]
11341    pub fn group(&self) -> u8 {
11342        unsafe { ::core::mem::transmute(self._bitfield_1.get(8usize, 4u8) as u8) }
11343    }
11344    #[inline]
11345    pub fn set_group(&mut self, val: u8) {
11346        unsafe {
11347            let val: u8 = ::core::mem::transmute(val);
11348            self._bitfield_1.set(8usize, 4u8, val as u64)
11349        }
11350    }
11351    #[inline]
11352    pub unsafe fn group_raw(this: *const Self) -> u8 {
11353        unsafe {
11354            ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(
11355                ::core::ptr::addr_of!((*this)._bitfield_1),
11356                8usize,
11357                4u8,
11358            ) as u8)
11359        }
11360    }
11361    #[inline]
11362    pub unsafe fn set_group_raw(this: *mut Self, val: u8) {
11363        unsafe {
11364            let val: u8 = ::core::mem::transmute(val);
11365            <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(
11366                ::core::ptr::addr_of_mut!((*this)._bitfield_1),
11367                8usize,
11368                4u8,
11369                val as u64,
11370            )
11371        }
11372    }
11373    #[inline]
11374    pub fn type_(&self) -> u8 {
11375        unsafe { ::core::mem::transmute(self._bitfield_1.get(12usize, 4u8) as u8) }
11376    }
11377    #[inline]
11378    pub fn set_type(&mut self, val: u8) {
11379        unsafe {
11380            let val: u8 = ::core::mem::transmute(val);
11381            self._bitfield_1.set(12usize, 4u8, val as u64)
11382        }
11383    }
11384    #[inline]
11385    pub unsafe fn type__raw(this: *const Self) -> u8 {
11386        unsafe {
11387            ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(
11388                ::core::ptr::addr_of!((*this)._bitfield_1),
11389                12usize,
11390                4u8,
11391            ) as u8)
11392        }
11393    }
11394    #[inline]
11395    pub unsafe fn set_type_raw(this: *mut Self, val: u8) {
11396        unsafe {
11397            let val: u8 = ::core::mem::transmute(val);
11398            <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(
11399                ::core::ptr::addr_of_mut!((*this)._bitfield_1),
11400                12usize,
11401                4u8,
11402                val as u64,
11403            )
11404        }
11405    }
11406    #[inline]
11407    pub fn alter2_degree(&self) -> u8 {
11408        unsafe { ::core::mem::transmute(self._bitfield_1.get(16usize, 4u8) as u8) }
11409    }
11410    #[inline]
11411    pub fn set_alter2_degree(&mut self, val: u8) {
11412        unsafe {
11413            let val: u8 = ::core::mem::transmute(val);
11414            self._bitfield_1.set(16usize, 4u8, val as u64)
11415        }
11416    }
11417    #[inline]
11418    pub unsafe fn alter2_degree_raw(this: *const Self) -> u8 {
11419        unsafe {
11420            ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(
11421                ::core::ptr::addr_of!((*this)._bitfield_1),
11422                16usize,
11423                4u8,
11424            ) as u8)
11425        }
11426    }
11427    #[inline]
11428    pub unsafe fn set_alter2_degree_raw(this: *mut Self, val: u8) {
11429        unsafe {
11430            let val: u8 = ::core::mem::transmute(val);
11431            <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(
11432                ::core::ptr::addr_of_mut!((*this)._bitfield_1),
11433                16usize,
11434                4u8,
11435                val as u64,
11436            )
11437        }
11438    }
11439    #[inline]
11440    pub fn alter2_type(&self) -> u8 {
11441        unsafe { ::core::mem::transmute(self._bitfield_1.get(20usize, 4u8) as u8) }
11442    }
11443    #[inline]
11444    pub fn set_alter2_type(&mut self, val: u8) {
11445        unsafe {
11446            let val: u8 = ::core::mem::transmute(val);
11447            self._bitfield_1.set(20usize, 4u8, val as u64)
11448        }
11449    }
11450    #[inline]
11451    pub unsafe fn alter2_type_raw(this: *const Self) -> u8 {
11452        unsafe {
11453            ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(
11454                ::core::ptr::addr_of!((*this)._bitfield_1),
11455                20usize,
11456                4u8,
11457            ) as u8)
11458        }
11459    }
11460    #[inline]
11461    pub unsafe fn set_alter2_type_raw(this: *mut Self, val: u8) {
11462        unsafe {
11463            let val: u8 = ::core::mem::transmute(val);
11464            <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(
11465                ::core::ptr::addr_of_mut!((*this)._bitfield_1),
11466                20usize,
11467                4u8,
11468                val as u64,
11469            )
11470        }
11471    }
11472    #[inline]
11473    pub fn alter1_degree(&self) -> u8 {
11474        unsafe { ::core::mem::transmute(self._bitfield_1.get(24usize, 4u8) as u8) }
11475    }
11476    #[inline]
11477    pub fn set_alter1_degree(&mut self, val: u8) {
11478        unsafe {
11479            let val: u8 = ::core::mem::transmute(val);
11480            self._bitfield_1.set(24usize, 4u8, val as u64)
11481        }
11482    }
11483    #[inline]
11484    pub unsafe fn alter1_degree_raw(this: *const Self) -> u8 {
11485        unsafe {
11486            ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(
11487                ::core::ptr::addr_of!((*this)._bitfield_1),
11488                24usize,
11489                4u8,
11490            ) as u8)
11491        }
11492    }
11493    #[inline]
11494    pub unsafe fn set_alter1_degree_raw(this: *mut Self, val: u8) {
11495        unsafe {
11496            let val: u8 = ::core::mem::transmute(val);
11497            <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(
11498                ::core::ptr::addr_of_mut!((*this)._bitfield_1),
11499                24usize,
11500                4u8,
11501                val as u64,
11502            )
11503        }
11504    }
11505    #[inline]
11506    pub fn alter1_type(&self) -> u8 {
11507        unsafe { ::core::mem::transmute(self._bitfield_1.get(28usize, 4u8) as u8) }
11508    }
11509    #[inline]
11510    pub fn set_alter1_type(&mut self, val: u8) {
11511        unsafe {
11512            let val: u8 = ::core::mem::transmute(val);
11513            self._bitfield_1.set(28usize, 4u8, val as u64)
11514        }
11515    }
11516    #[inline]
11517    pub unsafe fn alter1_type_raw(this: *const Self) -> u8 {
11518        unsafe {
11519            ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(
11520                ::core::ptr::addr_of!((*this)._bitfield_1),
11521                28usize,
11522                4u8,
11523            ) as u8)
11524        }
11525    }
11526    #[inline]
11527    pub unsafe fn set_alter1_type_raw(this: *mut Self, val: u8) {
11528        unsafe {
11529            let val: u8 = ::core::mem::transmute(val);
11530            <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(
11531                ::core::ptr::addr_of_mut!((*this)._bitfield_1),
11532                28usize,
11533                4u8,
11534                val as u64,
11535            )
11536        }
11537    }
11538    #[inline]
11539    pub fn new_bitfield_1(
11540        channel: u8,
11541        addrs: u8,
11542        format: u8,
11543        group: u8,
11544        type_: u8,
11545        alter2_degree: u8,
11546        alter2_type: u8,
11547        alter1_degree: u8,
11548        alter1_type: u8,
11549    ) -> __BindgenBitfieldUnit<[u8; 4usize]> {
11550        let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 4usize]> = Default::default();
11551        __bindgen_bitfield_unit.set(0usize, 4u8, {
11552            let channel: u8 = unsafe { ::core::mem::transmute(channel) };
11553            channel as u64
11554        });
11555        __bindgen_bitfield_unit.set(4usize, 2u8, {
11556            let addrs: u8 = unsafe { ::core::mem::transmute(addrs) };
11557            addrs as u64
11558        });
11559        __bindgen_bitfield_unit.set(6usize, 2u8, {
11560            let format: u8 = unsafe { ::core::mem::transmute(format) };
11561            format as u64
11562        });
11563        __bindgen_bitfield_unit.set(8usize, 4u8, {
11564            let group: u8 = unsafe { ::core::mem::transmute(group) };
11565            group as u64
11566        });
11567        __bindgen_bitfield_unit.set(12usize, 4u8, {
11568            let type_: u8 = unsafe { ::core::mem::transmute(type_) };
11569            type_ as u64
11570        });
11571        __bindgen_bitfield_unit.set(16usize, 4u8, {
11572            let alter2_degree: u8 = unsafe { ::core::mem::transmute(alter2_degree) };
11573            alter2_degree as u64
11574        });
11575        __bindgen_bitfield_unit.set(20usize, 4u8, {
11576            let alter2_type: u8 = unsafe { ::core::mem::transmute(alter2_type) };
11577            alter2_type as u64
11578        });
11579        __bindgen_bitfield_unit.set(24usize, 4u8, {
11580            let alter1_degree: u8 = unsafe { ::core::mem::transmute(alter1_degree) };
11581            alter1_degree as u64
11582        });
11583        __bindgen_bitfield_unit.set(28usize, 4u8, {
11584            let alter1_type: u8 = unsafe { ::core::mem::transmute(alter1_type) };
11585            alter1_type as u64
11586        });
11587        __bindgen_bitfield_unit
11588    }
11589    #[inline]
11590    pub fn chord_tonic(&self) -> u8 {
11591        unsafe { ::core::mem::transmute(self._bitfield_2.get(0usize, 4u8) as u8) }
11592    }
11593    #[inline]
11594    pub fn set_chord_tonic(&mut self, val: u8) {
11595        unsafe {
11596            let val: u8 = ::core::mem::transmute(val);
11597            self._bitfield_2.set(0usize, 4u8, val as u64)
11598        }
11599    }
11600    #[inline]
11601    pub unsafe fn chord_tonic_raw(this: *const Self) -> u8 {
11602        unsafe {
11603            ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get(
11604                ::core::ptr::addr_of!((*this)._bitfield_2),
11605                0usize,
11606                4u8,
11607            ) as u8)
11608        }
11609    }
11610    #[inline]
11611    pub unsafe fn set_chord_tonic_raw(this: *mut Self, val: u8) {
11612        unsafe {
11613            let val: u8 = ::core::mem::transmute(val);
11614            <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set(
11615                ::core::ptr::addr_of_mut!((*this)._bitfield_2),
11616                0usize,
11617                4u8,
11618                val as u64,
11619            )
11620        }
11621    }
11622    #[inline]
11623    pub fn tonic_sharp(&self) -> u8 {
11624        unsafe { ::core::mem::transmute(self._bitfield_2.get(4usize, 4u8) as u8) }
11625    }
11626    #[inline]
11627    pub fn set_tonic_sharp(&mut self, val: u8) {
11628        unsafe {
11629            let val: u8 = ::core::mem::transmute(val);
11630            self._bitfield_2.set(4usize, 4u8, val as u64)
11631        }
11632    }
11633    #[inline]
11634    pub unsafe fn tonic_sharp_raw(this: *const Self) -> u8 {
11635        unsafe {
11636            ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get(
11637                ::core::ptr::addr_of!((*this)._bitfield_2),
11638                4usize,
11639                4u8,
11640            ) as u8)
11641        }
11642    }
11643    #[inline]
11644    pub unsafe fn set_tonic_sharp_raw(this: *mut Self, val: u8) {
11645        unsafe {
11646            let val: u8 = ::core::mem::transmute(val);
11647            <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set(
11648                ::core::ptr::addr_of_mut!((*this)._bitfield_2),
11649                4usize,
11650                4u8,
11651                val as u64,
11652            )
11653        }
11654    }
11655    #[inline]
11656    pub fn new_bitfield_2(chord_tonic: u8, tonic_sharp: u8) -> __BindgenBitfieldUnit<[u8; 1usize]> {
11657        let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 1usize]> = Default::default();
11658        __bindgen_bitfield_unit.set(0usize, 4u8, {
11659            let chord_tonic: u8 = unsafe { ::core::mem::transmute(chord_tonic) };
11660            chord_tonic as u64
11661        });
11662        __bindgen_bitfield_unit.set(4usize, 4u8, {
11663            let tonic_sharp: u8 = unsafe { ::core::mem::transmute(tonic_sharp) };
11664            tonic_sharp as u64
11665        });
11666        __bindgen_bitfield_unit
11667    }
11668    #[inline]
11669    pub fn alter4_degree(&self) -> u8 {
11670        unsafe { ::core::mem::transmute(self._bitfield_3.get(0usize, 4u8) as u8) }
11671    }
11672    #[inline]
11673    pub fn set_alter4_degree(&mut self, val: u8) {
11674        unsafe {
11675            let val: u8 = ::core::mem::transmute(val);
11676            self._bitfield_3.set(0usize, 4u8, val as u64)
11677        }
11678    }
11679    #[inline]
11680    pub unsafe fn alter4_degree_raw(this: *const Self) -> u8 {
11681        unsafe {
11682            ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(
11683                ::core::ptr::addr_of!((*this)._bitfield_3),
11684                0usize,
11685                4u8,
11686            ) as u8)
11687        }
11688    }
11689    #[inline]
11690    pub unsafe fn set_alter4_degree_raw(this: *mut Self, val: u8) {
11691        unsafe {
11692            let val: u8 = ::core::mem::transmute(val);
11693            <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(
11694                ::core::ptr::addr_of_mut!((*this)._bitfield_3),
11695                0usize,
11696                4u8,
11697                val as u64,
11698            )
11699        }
11700    }
11701    #[inline]
11702    pub fn alter4_type(&self) -> u8 {
11703        unsafe { ::core::mem::transmute(self._bitfield_3.get(4usize, 4u8) as u8) }
11704    }
11705    #[inline]
11706    pub fn set_alter4_type(&mut self, val: u8) {
11707        unsafe {
11708            let val: u8 = ::core::mem::transmute(val);
11709            self._bitfield_3.set(4usize, 4u8, val as u64)
11710        }
11711    }
11712    #[inline]
11713    pub unsafe fn alter4_type_raw(this: *const Self) -> u8 {
11714        unsafe {
11715            ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(
11716                ::core::ptr::addr_of!((*this)._bitfield_3),
11717                4usize,
11718                4u8,
11719            ) as u8)
11720        }
11721    }
11722    #[inline]
11723    pub unsafe fn set_alter4_type_raw(this: *mut Self, val: u8) {
11724        unsafe {
11725            let val: u8 = ::core::mem::transmute(val);
11726            <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(
11727                ::core::ptr::addr_of_mut!((*this)._bitfield_3),
11728                4usize,
11729                4u8,
11730                val as u64,
11731            )
11732        }
11733    }
11734    #[inline]
11735    pub fn alter3_degree(&self) -> u8 {
11736        unsafe { ::core::mem::transmute(self._bitfield_3.get(8usize, 4u8) as u8) }
11737    }
11738    #[inline]
11739    pub fn set_alter3_degree(&mut self, val: u8) {
11740        unsafe {
11741            let val: u8 = ::core::mem::transmute(val);
11742            self._bitfield_3.set(8usize, 4u8, val as u64)
11743        }
11744    }
11745    #[inline]
11746    pub unsafe fn alter3_degree_raw(this: *const Self) -> u8 {
11747        unsafe {
11748            ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(
11749                ::core::ptr::addr_of!((*this)._bitfield_3),
11750                8usize,
11751                4u8,
11752            ) as u8)
11753        }
11754    }
11755    #[inline]
11756    pub unsafe fn set_alter3_degree_raw(this: *mut Self, val: u8) {
11757        unsafe {
11758            let val: u8 = ::core::mem::transmute(val);
11759            <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(
11760                ::core::ptr::addr_of_mut!((*this)._bitfield_3),
11761                8usize,
11762                4u8,
11763                val as u64,
11764            )
11765        }
11766    }
11767    #[inline]
11768    pub fn alter3_type(&self) -> u8 {
11769        unsafe { ::core::mem::transmute(self._bitfield_3.get(12usize, 4u8) as u8) }
11770    }
11771    #[inline]
11772    pub fn set_alter3_type(&mut self, val: u8) {
11773        unsafe {
11774            let val: u8 = ::core::mem::transmute(val);
11775            self._bitfield_3.set(12usize, 4u8, val as u64)
11776        }
11777    }
11778    #[inline]
11779    pub unsafe fn alter3_type_raw(this: *const Self) -> u8 {
11780        unsafe {
11781            ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(
11782                ::core::ptr::addr_of!((*this)._bitfield_3),
11783                12usize,
11784                4u8,
11785            ) as u8)
11786        }
11787    }
11788    #[inline]
11789    pub unsafe fn set_alter3_type_raw(this: *mut Self, val: u8) {
11790        unsafe {
11791            let val: u8 = ::core::mem::transmute(val);
11792            <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(
11793                ::core::ptr::addr_of_mut!((*this)._bitfield_3),
11794                12usize,
11795                4u8,
11796                val as u64,
11797            )
11798        }
11799    }
11800    #[inline]
11801    pub fn bass_alter2_degree(&self) -> u8 {
11802        unsafe { ::core::mem::transmute(self._bitfield_3.get(16usize, 4u8) as u8) }
11803    }
11804    #[inline]
11805    pub fn set_bass_alter2_degree(&mut self, val: u8) {
11806        unsafe {
11807            let val: u8 = ::core::mem::transmute(val);
11808            self._bitfield_3.set(16usize, 4u8, val as u64)
11809        }
11810    }
11811    #[inline]
11812    pub unsafe fn bass_alter2_degree_raw(this: *const Self) -> u8 {
11813        unsafe {
11814            ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(
11815                ::core::ptr::addr_of!((*this)._bitfield_3),
11816                16usize,
11817                4u8,
11818            ) as u8)
11819        }
11820    }
11821    #[inline]
11822    pub unsafe fn set_bass_alter2_degree_raw(this: *mut Self, val: u8) {
11823        unsafe {
11824            let val: u8 = ::core::mem::transmute(val);
11825            <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(
11826                ::core::ptr::addr_of_mut!((*this)._bitfield_3),
11827                16usize,
11828                4u8,
11829                val as u64,
11830            )
11831        }
11832    }
11833    #[inline]
11834    pub fn bass_alter2_type(&self) -> u8 {
11835        unsafe { ::core::mem::transmute(self._bitfield_3.get(20usize, 4u8) as u8) }
11836    }
11837    #[inline]
11838    pub fn set_bass_alter2_type(&mut self, val: u8) {
11839        unsafe {
11840            let val: u8 = ::core::mem::transmute(val);
11841            self._bitfield_3.set(20usize, 4u8, val as u64)
11842        }
11843    }
11844    #[inline]
11845    pub unsafe fn bass_alter2_type_raw(this: *const Self) -> u8 {
11846        unsafe {
11847            ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(
11848                ::core::ptr::addr_of!((*this)._bitfield_3),
11849                20usize,
11850                4u8,
11851            ) as u8)
11852        }
11853    }
11854    #[inline]
11855    pub unsafe fn set_bass_alter2_type_raw(this: *mut Self, val: u8) {
11856        unsafe {
11857            let val: u8 = ::core::mem::transmute(val);
11858            <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(
11859                ::core::ptr::addr_of_mut!((*this)._bitfield_3),
11860                20usize,
11861                4u8,
11862                val as u64,
11863            )
11864        }
11865    }
11866    #[inline]
11867    pub fn bass_alter1_degree(&self) -> u8 {
11868        unsafe { ::core::mem::transmute(self._bitfield_3.get(24usize, 4u8) as u8) }
11869    }
11870    #[inline]
11871    pub fn set_bass_alter1_degree(&mut self, val: u8) {
11872        unsafe {
11873            let val: u8 = ::core::mem::transmute(val);
11874            self._bitfield_3.set(24usize, 4u8, val as u64)
11875        }
11876    }
11877    #[inline]
11878    pub unsafe fn bass_alter1_degree_raw(this: *const Self) -> u8 {
11879        unsafe {
11880            ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(
11881                ::core::ptr::addr_of!((*this)._bitfield_3),
11882                24usize,
11883                4u8,
11884            ) as u8)
11885        }
11886    }
11887    #[inline]
11888    pub unsafe fn set_bass_alter1_degree_raw(this: *mut Self, val: u8) {
11889        unsafe {
11890            let val: u8 = ::core::mem::transmute(val);
11891            <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(
11892                ::core::ptr::addr_of_mut!((*this)._bitfield_3),
11893                24usize,
11894                4u8,
11895                val as u64,
11896            )
11897        }
11898    }
11899    #[inline]
11900    pub fn bass_alter1_type(&self) -> u8 {
11901        unsafe { ::core::mem::transmute(self._bitfield_3.get(28usize, 4u8) as u8) }
11902    }
11903    #[inline]
11904    pub fn set_bass_alter1_type(&mut self, val: u8) {
11905        unsafe {
11906            let val: u8 = ::core::mem::transmute(val);
11907            self._bitfield_3.set(28usize, 4u8, val as u64)
11908        }
11909    }
11910    #[inline]
11911    pub unsafe fn bass_alter1_type_raw(this: *const Self) -> u8 {
11912        unsafe {
11913            ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(
11914                ::core::ptr::addr_of!((*this)._bitfield_3),
11915                28usize,
11916                4u8,
11917            ) as u8)
11918        }
11919    }
11920    #[inline]
11921    pub unsafe fn set_bass_alter1_type_raw(this: *mut Self, val: u8) {
11922        unsafe {
11923            let val: u8 = ::core::mem::transmute(val);
11924            <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(
11925                ::core::ptr::addr_of_mut!((*this)._bitfield_3),
11926                28usize,
11927                4u8,
11928                val as u64,
11929            )
11930        }
11931    }
11932    #[inline]
11933    pub fn new_bitfield_3(
11934        alter4_degree: u8,
11935        alter4_type: u8,
11936        alter3_degree: u8,
11937        alter3_type: u8,
11938        bass_alter2_degree: u8,
11939        bass_alter2_type: u8,
11940        bass_alter1_degree: u8,
11941        bass_alter1_type: u8,
11942    ) -> __BindgenBitfieldUnit<[u8; 4usize]> {
11943        let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 4usize]> = Default::default();
11944        __bindgen_bitfield_unit.set(0usize, 4u8, {
11945            let alter4_degree: u8 = unsafe { ::core::mem::transmute(alter4_degree) };
11946            alter4_degree as u64
11947        });
11948        __bindgen_bitfield_unit.set(4usize, 4u8, {
11949            let alter4_type: u8 = unsafe { ::core::mem::transmute(alter4_type) };
11950            alter4_type as u64
11951        });
11952        __bindgen_bitfield_unit.set(8usize, 4u8, {
11953            let alter3_degree: u8 = unsafe { ::core::mem::transmute(alter3_degree) };
11954            alter3_degree as u64
11955        });
11956        __bindgen_bitfield_unit.set(12usize, 4u8, {
11957            let alter3_type: u8 = unsafe { ::core::mem::transmute(alter3_type) };
11958            alter3_type as u64
11959        });
11960        __bindgen_bitfield_unit.set(16usize, 4u8, {
11961            let bass_alter2_degree: u8 = unsafe { ::core::mem::transmute(bass_alter2_degree) };
11962            bass_alter2_degree as u64
11963        });
11964        __bindgen_bitfield_unit.set(20usize, 4u8, {
11965            let bass_alter2_type: u8 = unsafe { ::core::mem::transmute(bass_alter2_type) };
11966            bass_alter2_type as u64
11967        });
11968        __bindgen_bitfield_unit.set(24usize, 4u8, {
11969            let bass_alter1_degree: u8 = unsafe { ::core::mem::transmute(bass_alter1_degree) };
11970            bass_alter1_degree as u64
11971        });
11972        __bindgen_bitfield_unit.set(28usize, 4u8, {
11973            let bass_alter1_type: u8 = unsafe { ::core::mem::transmute(bass_alter1_type) };
11974            bass_alter1_type as u64
11975        });
11976        __bindgen_bitfield_unit
11977    }
11978    #[inline]
11979    pub fn bass_note(&self) -> u8 {
11980        unsafe { ::core::mem::transmute(self._bitfield_4.get(0usize, 4u8) as u8) }
11981    }
11982    #[inline]
11983    pub fn set_bass_note(&mut self, val: u8) {
11984        unsafe {
11985            let val: u8 = ::core::mem::transmute(val);
11986            self._bitfield_4.set(0usize, 4u8, val as u64)
11987        }
11988    }
11989    #[inline]
11990    pub unsafe fn bass_note_raw(this: *const Self) -> u8 {
11991        unsafe {
11992            ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get(
11993                ::core::ptr::addr_of!((*this)._bitfield_4),
11994                0usize,
11995                4u8,
11996            ) as u8)
11997        }
11998    }
11999    #[inline]
12000    pub unsafe fn set_bass_note_raw(this: *mut Self, val: u8) {
12001        unsafe {
12002            let val: u8 = ::core::mem::transmute(val);
12003            <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set(
12004                ::core::ptr::addr_of_mut!((*this)._bitfield_4),
12005                0usize,
12006                4u8,
12007                val as u64,
12008            )
12009        }
12010    }
12011    #[inline]
12012    pub fn bass_sharp(&self) -> u8 {
12013        unsafe { ::core::mem::transmute(self._bitfield_4.get(4usize, 4u8) as u8) }
12014    }
12015    #[inline]
12016    pub fn set_bass_sharp(&mut self, val: u8) {
12017        unsafe {
12018            let val: u8 = ::core::mem::transmute(val);
12019            self._bitfield_4.set(4usize, 4u8, val as u64)
12020        }
12021    }
12022    #[inline]
12023    pub unsafe fn bass_sharp_raw(this: *const Self) -> u8 {
12024        unsafe {
12025            ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get(
12026                ::core::ptr::addr_of!((*this)._bitfield_4),
12027                4usize,
12028                4u8,
12029            ) as u8)
12030        }
12031    }
12032    #[inline]
12033    pub unsafe fn set_bass_sharp_raw(this: *mut Self, val: u8) {
12034        unsafe {
12035            let val: u8 = ::core::mem::transmute(val);
12036            <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set(
12037                ::core::ptr::addr_of_mut!((*this)._bitfield_4),
12038                4usize,
12039                4u8,
12040                val as u64,
12041            )
12042        }
12043    }
12044    #[inline]
12045    pub fn new_bitfield_4(bass_note: u8, bass_sharp: u8) -> __BindgenBitfieldUnit<[u8; 1usize]> {
12046        let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 1usize]> = Default::default();
12047        __bindgen_bitfield_unit.set(0usize, 4u8, {
12048            let bass_note: u8 = unsafe { ::core::mem::transmute(bass_note) };
12049            bass_note as u64
12050        });
12051        __bindgen_bitfield_unit.set(4usize, 4u8, {
12052            let bass_sharp: u8 = unsafe { ::core::mem::transmute(bass_sharp) };
12053            bass_sharp as u64
12054        });
12055        __bindgen_bitfield_unit
12056    }
12057}
12058pub type snd_ump_msg_set_chord_name_t = _snd_ump_msg_set_chord_name;
12059#[repr(C)]
12060#[derive(Copy, Clone)]
12061pub union _snd_ump_msg_flex_data {
12062    pub meta: snd_ump_msg_flex_data_meta_t,
12063    pub text: snd_ump_msg_flex_data_meta_t,
12064    pub set_tempo: snd_ump_msg_set_tempo_t,
12065    pub set_time_sig: snd_ump_msg_set_time_sig_t,
12066    pub set_metronome: snd_ump_msg_set_metronome_t,
12067    pub set_key_sig: snd_ump_msg_set_key_sig_t,
12068    pub set_chord_name: snd_ump_msg_set_chord_name_t,
12069    pub hdr: snd_ump_msg_hdr_t,
12070    pub raw: [u32; 4usize],
12071}
12072pub type snd_ump_msg_flex_data_t = _snd_ump_msg_flex_data;
12073#[repr(C)]
12074#[derive(Debug, Copy, Clone)]
12075pub struct _snd_ump_msg_mixed_data_header {
12076    pub bytes: u16,
12077    pub _bitfield_align_1: [u8; 0],
12078    pub _bitfield_1: __BindgenBitfieldUnit<[u8; 2usize]>,
12079    pub chunk: u16,
12080    pub chunks: u16,
12081    pub device: u16,
12082    pub manufacturer: u16,
12083    pub sub_id_2: u16,
12084    pub sub_id_1: u16,
12085}
12086impl _snd_ump_msg_mixed_data_header {
12087    #[inline]
12088    pub fn mds_id(&self) -> u8 {
12089        unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 4u8) as u8) }
12090    }
12091    #[inline]
12092    pub fn set_mds_id(&mut self, val: u8) {
12093        unsafe {
12094            let val: u8 = ::core::mem::transmute(val);
12095            self._bitfield_1.set(0usize, 4u8, val as u64)
12096        }
12097    }
12098    #[inline]
12099    pub unsafe fn mds_id_raw(this: *const Self) -> u8 {
12100        unsafe {
12101            ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(
12102                ::core::ptr::addr_of!((*this)._bitfield_1),
12103                0usize,
12104                4u8,
12105            ) as u8)
12106        }
12107    }
12108    #[inline]
12109    pub unsafe fn set_mds_id_raw(this: *mut Self, val: u8) {
12110        unsafe {
12111            let val: u8 = ::core::mem::transmute(val);
12112            <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(
12113                ::core::ptr::addr_of_mut!((*this)._bitfield_1),
12114                0usize,
12115                4u8,
12116                val as u64,
12117            )
12118        }
12119    }
12120    #[inline]
12121    pub fn status(&self) -> u8 {
12122        unsafe { ::core::mem::transmute(self._bitfield_1.get(4usize, 4u8) as u8) }
12123    }
12124    #[inline]
12125    pub fn set_status(&mut self, val: u8) {
12126        unsafe {
12127            let val: u8 = ::core::mem::transmute(val);
12128            self._bitfield_1.set(4usize, 4u8, val as u64)
12129        }
12130    }
12131    #[inline]
12132    pub unsafe fn status_raw(this: *const Self) -> u8 {
12133        unsafe {
12134            ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(
12135                ::core::ptr::addr_of!((*this)._bitfield_1),
12136                4usize,
12137                4u8,
12138            ) as u8)
12139        }
12140    }
12141    #[inline]
12142    pub unsafe fn set_status_raw(this: *mut Self, val: u8) {
12143        unsafe {
12144            let val: u8 = ::core::mem::transmute(val);
12145            <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(
12146                ::core::ptr::addr_of_mut!((*this)._bitfield_1),
12147                4usize,
12148                4u8,
12149                val as u64,
12150            )
12151        }
12152    }
12153    #[inline]
12154    pub fn group(&self) -> u8 {
12155        unsafe { ::core::mem::transmute(self._bitfield_1.get(8usize, 4u8) as u8) }
12156    }
12157    #[inline]
12158    pub fn set_group(&mut self, val: u8) {
12159        unsafe {
12160            let val: u8 = ::core::mem::transmute(val);
12161            self._bitfield_1.set(8usize, 4u8, val as u64)
12162        }
12163    }
12164    #[inline]
12165    pub unsafe fn group_raw(this: *const Self) -> u8 {
12166        unsafe {
12167            ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(
12168                ::core::ptr::addr_of!((*this)._bitfield_1),
12169                8usize,
12170                4u8,
12171            ) as u8)
12172        }
12173    }
12174    #[inline]
12175    pub unsafe fn set_group_raw(this: *mut Self, val: u8) {
12176        unsafe {
12177            let val: u8 = ::core::mem::transmute(val);
12178            <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(
12179                ::core::ptr::addr_of_mut!((*this)._bitfield_1),
12180                8usize,
12181                4u8,
12182                val as u64,
12183            )
12184        }
12185    }
12186    #[inline]
12187    pub fn type_(&self) -> u8 {
12188        unsafe { ::core::mem::transmute(self._bitfield_1.get(12usize, 4u8) as u8) }
12189    }
12190    #[inline]
12191    pub fn set_type(&mut self, val: u8) {
12192        unsafe {
12193            let val: u8 = ::core::mem::transmute(val);
12194            self._bitfield_1.set(12usize, 4u8, val as u64)
12195        }
12196    }
12197    #[inline]
12198    pub unsafe fn type__raw(this: *const Self) -> u8 {
12199        unsafe {
12200            ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(
12201                ::core::ptr::addr_of!((*this)._bitfield_1),
12202                12usize,
12203                4u8,
12204            ) as u8)
12205        }
12206    }
12207    #[inline]
12208    pub unsafe fn set_type_raw(this: *mut Self, val: u8) {
12209        unsafe {
12210            let val: u8 = ::core::mem::transmute(val);
12211            <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(
12212                ::core::ptr::addr_of_mut!((*this)._bitfield_1),
12213                12usize,
12214                4u8,
12215                val as u64,
12216            )
12217        }
12218    }
12219    #[inline]
12220    pub fn new_bitfield_1(
12221        mds_id: u8,
12222        status: u8,
12223        group: u8,
12224        type_: u8,
12225    ) -> __BindgenBitfieldUnit<[u8; 2usize]> {
12226        let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 2usize]> = Default::default();
12227        __bindgen_bitfield_unit.set(0usize, 4u8, {
12228            let mds_id: u8 = unsafe { ::core::mem::transmute(mds_id) };
12229            mds_id as u64
12230        });
12231        __bindgen_bitfield_unit.set(4usize, 4u8, {
12232            let status: u8 = unsafe { ::core::mem::transmute(status) };
12233            status as u64
12234        });
12235        __bindgen_bitfield_unit.set(8usize, 4u8, {
12236            let group: u8 = unsafe { ::core::mem::transmute(group) };
12237            group as u64
12238        });
12239        __bindgen_bitfield_unit.set(12usize, 4u8, {
12240            let type_: u8 = unsafe { ::core::mem::transmute(type_) };
12241            type_ as u64
12242        });
12243        __bindgen_bitfield_unit
12244    }
12245}
12246pub type snd_ump_msg_mixed_data_header_t = _snd_ump_msg_mixed_data_header;
12247#[repr(C)]
12248#[derive(Debug, Copy, Clone)]
12249pub struct _snd_ump_msg_mixed_data_payload {
12250    pub payload1: u16,
12251    pub _bitfield_align_1: [u8; 0],
12252    pub _bitfield_1: __BindgenBitfieldUnit<[u8; 2usize]>,
12253    pub payloads: [u32; 3usize],
12254}
12255impl _snd_ump_msg_mixed_data_payload {
12256    #[inline]
12257    pub fn mds_id(&self) -> u8 {
12258        unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 4u8) as u8) }
12259    }
12260    #[inline]
12261    pub fn set_mds_id(&mut self, val: u8) {
12262        unsafe {
12263            let val: u8 = ::core::mem::transmute(val);
12264            self._bitfield_1.set(0usize, 4u8, val as u64)
12265        }
12266    }
12267    #[inline]
12268    pub unsafe fn mds_id_raw(this: *const Self) -> u8 {
12269        unsafe {
12270            ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(
12271                ::core::ptr::addr_of!((*this)._bitfield_1),
12272                0usize,
12273                4u8,
12274            ) as u8)
12275        }
12276    }
12277    #[inline]
12278    pub unsafe fn set_mds_id_raw(this: *mut Self, val: u8) {
12279        unsafe {
12280            let val: u8 = ::core::mem::transmute(val);
12281            <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(
12282                ::core::ptr::addr_of_mut!((*this)._bitfield_1),
12283                0usize,
12284                4u8,
12285                val as u64,
12286            )
12287        }
12288    }
12289    #[inline]
12290    pub fn status(&self) -> u8 {
12291        unsafe { ::core::mem::transmute(self._bitfield_1.get(4usize, 4u8) as u8) }
12292    }
12293    #[inline]
12294    pub fn set_status(&mut self, val: u8) {
12295        unsafe {
12296            let val: u8 = ::core::mem::transmute(val);
12297            self._bitfield_1.set(4usize, 4u8, val as u64)
12298        }
12299    }
12300    #[inline]
12301    pub unsafe fn status_raw(this: *const Self) -> u8 {
12302        unsafe {
12303            ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(
12304                ::core::ptr::addr_of!((*this)._bitfield_1),
12305                4usize,
12306                4u8,
12307            ) as u8)
12308        }
12309    }
12310    #[inline]
12311    pub unsafe fn set_status_raw(this: *mut Self, val: u8) {
12312        unsafe {
12313            let val: u8 = ::core::mem::transmute(val);
12314            <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(
12315                ::core::ptr::addr_of_mut!((*this)._bitfield_1),
12316                4usize,
12317                4u8,
12318                val as u64,
12319            )
12320        }
12321    }
12322    #[inline]
12323    pub fn group(&self) -> u8 {
12324        unsafe { ::core::mem::transmute(self._bitfield_1.get(8usize, 4u8) as u8) }
12325    }
12326    #[inline]
12327    pub fn set_group(&mut self, val: u8) {
12328        unsafe {
12329            let val: u8 = ::core::mem::transmute(val);
12330            self._bitfield_1.set(8usize, 4u8, val as u64)
12331        }
12332    }
12333    #[inline]
12334    pub unsafe fn group_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                8usize,
12339                4u8,
12340            ) as u8)
12341        }
12342    }
12343    #[inline]
12344    pub unsafe fn set_group_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                8usize,
12350                4u8,
12351                val as u64,
12352            )
12353        }
12354    }
12355    #[inline]
12356    pub fn type_(&self) -> u8 {
12357        unsafe { ::core::mem::transmute(self._bitfield_1.get(12usize, 4u8) as u8) }
12358    }
12359    #[inline]
12360    pub fn set_type(&mut self, val: u8) {
12361        unsafe {
12362            let val: u8 = ::core::mem::transmute(val);
12363            self._bitfield_1.set(12usize, 4u8, val as u64)
12364        }
12365    }
12366    #[inline]
12367    pub unsafe fn type__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                12usize,
12372                4u8,
12373            ) as u8)
12374        }
12375    }
12376    #[inline]
12377    pub unsafe fn set_type_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                12usize,
12383                4u8,
12384                val as u64,
12385            )
12386        }
12387    }
12388    #[inline]
12389    pub fn new_bitfield_1(
12390        mds_id: u8,
12391        status: u8,
12392        group: u8,
12393        type_: u8,
12394    ) -> __BindgenBitfieldUnit<[u8; 2usize]> {
12395        let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 2usize]> = Default::default();
12396        __bindgen_bitfield_unit.set(0usize, 4u8, {
12397            let mds_id: u8 = unsafe { ::core::mem::transmute(mds_id) };
12398            mds_id as u64
12399        });
12400        __bindgen_bitfield_unit.set(4usize, 4u8, {
12401            let status: u8 = unsafe { ::core::mem::transmute(status) };
12402            status as u64
12403        });
12404        __bindgen_bitfield_unit.set(8usize, 4u8, {
12405            let group: u8 = unsafe { ::core::mem::transmute(group) };
12406            group as u64
12407        });
12408        __bindgen_bitfield_unit.set(12usize, 4u8, {
12409            let type_: u8 = unsafe { ::core::mem::transmute(type_) };
12410            type_ as u64
12411        });
12412        __bindgen_bitfield_unit
12413    }
12414}
12415pub type snd_ump_msg_mixed_data_payload_t = _snd_ump_msg_mixed_data_payload;
12416#[repr(C)]
12417#[derive(Copy, Clone)]
12418pub union _snd_ump_msg_mixed_data {
12419    pub header: snd_ump_msg_mixed_data_header_t,
12420    pub payload: snd_ump_msg_mixed_data_payload_t,
12421    pub raw: [u32; 4usize],
12422}
12423pub type snd_ump_msg_mixed_data_t = _snd_ump_msg_mixed_data;
12424#[repr(C, packed)]
12425#[derive(Debug, Copy, Clone)]
12426pub struct _snd_ump_msg_jr_clock {
12427    pub time: u16,
12428    pub _bitfield_align_1: [u8; 0],
12429    pub _bitfield_1: __BindgenBitfieldUnit<[u8; 2usize]>,
12430}
12431impl _snd_ump_msg_jr_clock {
12432    #[inline]
12433    pub fn reserved(&self) -> u8 {
12434        unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 4u8) as u8) }
12435    }
12436    #[inline]
12437    pub fn set_reserved(&mut self, val: u8) {
12438        unsafe {
12439            let val: u8 = ::core::mem::transmute(val);
12440            self._bitfield_1.set(0usize, 4u8, val as u64)
12441        }
12442    }
12443    #[inline]
12444    pub unsafe fn reserved_raw(this: *const Self) -> u8 {
12445        unsafe {
12446            ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(
12447                ::core::ptr::addr_of!((*this)._bitfield_1),
12448                0usize,
12449                4u8,
12450            ) as u8)
12451        }
12452    }
12453    #[inline]
12454    pub unsafe fn set_reserved_raw(this: *mut Self, val: u8) {
12455        unsafe {
12456            let val: u8 = ::core::mem::transmute(val);
12457            <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(
12458                ::core::ptr::addr_of_mut!((*this)._bitfield_1),
12459                0usize,
12460                4u8,
12461                val as u64,
12462            )
12463        }
12464    }
12465    #[inline]
12466    pub fn status(&self) -> u8 {
12467        unsafe { ::core::mem::transmute(self._bitfield_1.get(4usize, 4u8) as u8) }
12468    }
12469    #[inline]
12470    pub fn set_status(&mut self, val: u8) {
12471        unsafe {
12472            let val: u8 = ::core::mem::transmute(val);
12473            self._bitfield_1.set(4usize, 4u8, val as u64)
12474        }
12475    }
12476    #[inline]
12477    pub unsafe fn status_raw(this: *const Self) -> u8 {
12478        unsafe {
12479            ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(
12480                ::core::ptr::addr_of!((*this)._bitfield_1),
12481                4usize,
12482                4u8,
12483            ) as u8)
12484        }
12485    }
12486    #[inline]
12487    pub unsafe fn set_status_raw(this: *mut Self, val: u8) {
12488        unsafe {
12489            let val: u8 = ::core::mem::transmute(val);
12490            <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(
12491                ::core::ptr::addr_of_mut!((*this)._bitfield_1),
12492                4usize,
12493                4u8,
12494                val as u64,
12495            )
12496        }
12497    }
12498    #[inline]
12499    pub fn group(&self) -> u8 {
12500        unsafe { ::core::mem::transmute(self._bitfield_1.get(8usize, 4u8) as u8) }
12501    }
12502    #[inline]
12503    pub fn set_group(&mut self, val: u8) {
12504        unsafe {
12505            let val: u8 = ::core::mem::transmute(val);
12506            self._bitfield_1.set(8usize, 4u8, val as u64)
12507        }
12508    }
12509    #[inline]
12510    pub unsafe fn group_raw(this: *const Self) -> u8 {
12511        unsafe {
12512            ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(
12513                ::core::ptr::addr_of!((*this)._bitfield_1),
12514                8usize,
12515                4u8,
12516            ) as u8)
12517        }
12518    }
12519    #[inline]
12520    pub unsafe fn set_group_raw(this: *mut Self, val: u8) {
12521        unsafe {
12522            let val: u8 = ::core::mem::transmute(val);
12523            <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(
12524                ::core::ptr::addr_of_mut!((*this)._bitfield_1),
12525                8usize,
12526                4u8,
12527                val as u64,
12528            )
12529        }
12530    }
12531    #[inline]
12532    pub fn type_(&self) -> u8 {
12533        unsafe { ::core::mem::transmute(self._bitfield_1.get(12usize, 4u8) as u8) }
12534    }
12535    #[inline]
12536    pub fn set_type(&mut self, val: u8) {
12537        unsafe {
12538            let val: u8 = ::core::mem::transmute(val);
12539            self._bitfield_1.set(12usize, 4u8, val as u64)
12540        }
12541    }
12542    #[inline]
12543    pub unsafe fn type__raw(this: *const Self) -> u8 {
12544        unsafe {
12545            ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(
12546                ::core::ptr::addr_of!((*this)._bitfield_1),
12547                12usize,
12548                4u8,
12549            ) as u8)
12550        }
12551    }
12552    #[inline]
12553    pub unsafe fn set_type_raw(this: *mut Self, val: u8) {
12554        unsafe {
12555            let val: u8 = ::core::mem::transmute(val);
12556            <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(
12557                ::core::ptr::addr_of_mut!((*this)._bitfield_1),
12558                12usize,
12559                4u8,
12560                val as u64,
12561            )
12562        }
12563    }
12564    #[inline]
12565    pub fn new_bitfield_1(
12566        reserved: u8,
12567        status: u8,
12568        group: u8,
12569        type_: u8,
12570    ) -> __BindgenBitfieldUnit<[u8; 2usize]> {
12571        let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 2usize]> = Default::default();
12572        __bindgen_bitfield_unit.set(0usize, 4u8, {
12573            let reserved: u8 = unsafe { ::core::mem::transmute(reserved) };
12574            reserved as u64
12575        });
12576        __bindgen_bitfield_unit.set(4usize, 4u8, {
12577            let status: u8 = unsafe { ::core::mem::transmute(status) };
12578            status as u64
12579        });
12580        __bindgen_bitfield_unit.set(8usize, 4u8, {
12581            let group: u8 = unsafe { ::core::mem::transmute(group) };
12582            group as u64
12583        });
12584        __bindgen_bitfield_unit.set(12usize, 4u8, {
12585            let type_: u8 = unsafe { ::core::mem::transmute(type_) };
12586            type_ as u64
12587        });
12588        __bindgen_bitfield_unit
12589    }
12590}
12591pub type snd_ump_msg_jr_clock_t = _snd_ump_msg_jr_clock;
12592#[repr(C, packed)]
12593#[derive(Debug, Copy, Clone)]
12594pub struct _snd_ump_msg_dctpq {
12595    pub ticks: u16,
12596    pub _bitfield_align_1: [u8; 0],
12597    pub _bitfield_1: __BindgenBitfieldUnit<[u8; 2usize]>,
12598}
12599impl _snd_ump_msg_dctpq {
12600    #[inline]
12601    pub fn reserved(&self) -> u8 {
12602        unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 4u8) as u8) }
12603    }
12604    #[inline]
12605    pub fn set_reserved(&mut self, val: u8) {
12606        unsafe {
12607            let val: u8 = ::core::mem::transmute(val);
12608            self._bitfield_1.set(0usize, 4u8, val as u64)
12609        }
12610    }
12611    #[inline]
12612    pub unsafe fn reserved_raw(this: *const Self) -> u8 {
12613        unsafe {
12614            ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(
12615                ::core::ptr::addr_of!((*this)._bitfield_1),
12616                0usize,
12617                4u8,
12618            ) as u8)
12619        }
12620    }
12621    #[inline]
12622    pub unsafe fn set_reserved_raw(this: *mut Self, val: u8) {
12623        unsafe {
12624            let val: u8 = ::core::mem::transmute(val);
12625            <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(
12626                ::core::ptr::addr_of_mut!((*this)._bitfield_1),
12627                0usize,
12628                4u8,
12629                val as u64,
12630            )
12631        }
12632    }
12633    #[inline]
12634    pub fn status(&self) -> u8 {
12635        unsafe { ::core::mem::transmute(self._bitfield_1.get(4usize, 4u8) as u8) }
12636    }
12637    #[inline]
12638    pub fn set_status(&mut self, val: u8) {
12639        unsafe {
12640            let val: u8 = ::core::mem::transmute(val);
12641            self._bitfield_1.set(4usize, 4u8, val as u64)
12642        }
12643    }
12644    #[inline]
12645    pub unsafe fn status_raw(this: *const Self) -> u8 {
12646        unsafe {
12647            ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(
12648                ::core::ptr::addr_of!((*this)._bitfield_1),
12649                4usize,
12650                4u8,
12651            ) as u8)
12652        }
12653    }
12654    #[inline]
12655    pub unsafe fn set_status_raw(this: *mut Self, val: u8) {
12656        unsafe {
12657            let val: u8 = ::core::mem::transmute(val);
12658            <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(
12659                ::core::ptr::addr_of_mut!((*this)._bitfield_1),
12660                4usize,
12661                4u8,
12662                val as u64,
12663            )
12664        }
12665    }
12666    #[inline]
12667    pub fn group(&self) -> u8 {
12668        unsafe { ::core::mem::transmute(self._bitfield_1.get(8usize, 4u8) as u8) }
12669    }
12670    #[inline]
12671    pub fn set_group(&mut self, val: u8) {
12672        unsafe {
12673            let val: u8 = ::core::mem::transmute(val);
12674            self._bitfield_1.set(8usize, 4u8, val as u64)
12675        }
12676    }
12677    #[inline]
12678    pub unsafe fn group_raw(this: *const Self) -> u8 {
12679        unsafe {
12680            ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(
12681                ::core::ptr::addr_of!((*this)._bitfield_1),
12682                8usize,
12683                4u8,
12684            ) as u8)
12685        }
12686    }
12687    #[inline]
12688    pub unsafe fn set_group_raw(this: *mut Self, val: u8) {
12689        unsafe {
12690            let val: u8 = ::core::mem::transmute(val);
12691            <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(
12692                ::core::ptr::addr_of_mut!((*this)._bitfield_1),
12693                8usize,
12694                4u8,
12695                val as u64,
12696            )
12697        }
12698    }
12699    #[inline]
12700    pub fn type_(&self) -> u8 {
12701        unsafe { ::core::mem::transmute(self._bitfield_1.get(12usize, 4u8) as u8) }
12702    }
12703    #[inline]
12704    pub fn set_type(&mut self, val: u8) {
12705        unsafe {
12706            let val: u8 = ::core::mem::transmute(val);
12707            self._bitfield_1.set(12usize, 4u8, val as u64)
12708        }
12709    }
12710    #[inline]
12711    pub unsafe fn type__raw(this: *const Self) -> u8 {
12712        unsafe {
12713            ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(
12714                ::core::ptr::addr_of!((*this)._bitfield_1),
12715                12usize,
12716                4u8,
12717            ) as u8)
12718        }
12719    }
12720    #[inline]
12721    pub unsafe fn set_type_raw(this: *mut Self, val: u8) {
12722        unsafe {
12723            let val: u8 = ::core::mem::transmute(val);
12724            <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(
12725                ::core::ptr::addr_of_mut!((*this)._bitfield_1),
12726                12usize,
12727                4u8,
12728                val as u64,
12729            )
12730        }
12731    }
12732    #[inline]
12733    pub fn new_bitfield_1(
12734        reserved: u8,
12735        status: u8,
12736        group: u8,
12737        type_: u8,
12738    ) -> __BindgenBitfieldUnit<[u8; 2usize]> {
12739        let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 2usize]> = Default::default();
12740        __bindgen_bitfield_unit.set(0usize, 4u8, {
12741            let reserved: u8 = unsafe { ::core::mem::transmute(reserved) };
12742            reserved as u64
12743        });
12744        __bindgen_bitfield_unit.set(4usize, 4u8, {
12745            let status: u8 = unsafe { ::core::mem::transmute(status) };
12746            status as u64
12747        });
12748        __bindgen_bitfield_unit.set(8usize, 4u8, {
12749            let group: u8 = unsafe { ::core::mem::transmute(group) };
12750            group as u64
12751        });
12752        __bindgen_bitfield_unit.set(12usize, 4u8, {
12753            let type_: u8 = unsafe { ::core::mem::transmute(type_) };
12754            type_ as u64
12755        });
12756        __bindgen_bitfield_unit
12757    }
12758}
12759pub type snd_ump_msg_dctpq_t = _snd_ump_msg_dctpq;
12760#[repr(C, packed)]
12761#[derive(Debug, Copy, Clone)]
12762pub struct _snd_ump_msg_dc {
12763    pub _bitfield_align_1: [u8; 0],
12764    pub _bitfield_1: __BindgenBitfieldUnit<[u8; 4usize]>,
12765}
12766impl _snd_ump_msg_dc {
12767    #[inline]
12768    pub fn ticks(&self) -> u32 {
12769        unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 20u8) as u32) }
12770    }
12771    #[inline]
12772    pub fn set_ticks(&mut self, val: u32) {
12773        unsafe {
12774            let val: u32 = ::core::mem::transmute(val);
12775            self._bitfield_1.set(0usize, 20u8, val as u64)
12776        }
12777    }
12778    #[inline]
12779    pub unsafe fn ticks_raw(this: *const Self) -> u32 {
12780        unsafe {
12781            ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(
12782                ::core::ptr::addr_of!((*this)._bitfield_1),
12783                0usize,
12784                20u8,
12785            ) as u32)
12786        }
12787    }
12788    #[inline]
12789    pub unsafe fn set_ticks_raw(this: *mut Self, val: u32) {
12790        unsafe {
12791            let val: u32 = ::core::mem::transmute(val);
12792            <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(
12793                ::core::ptr::addr_of_mut!((*this)._bitfield_1),
12794                0usize,
12795                20u8,
12796                val as u64,
12797            )
12798        }
12799    }
12800    #[inline]
12801    pub fn status(&self) -> u32 {
12802        unsafe { ::core::mem::transmute(self._bitfield_1.get(20usize, 4u8) as u32) }
12803    }
12804    #[inline]
12805    pub fn set_status(&mut self, val: u32) {
12806        unsafe {
12807            let val: u32 = ::core::mem::transmute(val);
12808            self._bitfield_1.set(20usize, 4u8, val as u64)
12809        }
12810    }
12811    #[inline]
12812    pub unsafe fn status_raw(this: *const Self) -> u32 {
12813        unsafe {
12814            ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(
12815                ::core::ptr::addr_of!((*this)._bitfield_1),
12816                20usize,
12817                4u8,
12818            ) as u32)
12819        }
12820    }
12821    #[inline]
12822    pub unsafe fn set_status_raw(this: *mut Self, val: u32) {
12823        unsafe {
12824            let val: u32 = ::core::mem::transmute(val);
12825            <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(
12826                ::core::ptr::addr_of_mut!((*this)._bitfield_1),
12827                20usize,
12828                4u8,
12829                val as u64,
12830            )
12831        }
12832    }
12833    #[inline]
12834    pub fn group(&self) -> u32 {
12835        unsafe { ::core::mem::transmute(self._bitfield_1.get(24usize, 4u8) as u32) }
12836    }
12837    #[inline]
12838    pub fn set_group(&mut self, val: u32) {
12839        unsafe {
12840            let val: u32 = ::core::mem::transmute(val);
12841            self._bitfield_1.set(24usize, 4u8, val as u64)
12842        }
12843    }
12844    #[inline]
12845    pub unsafe fn group_raw(this: *const Self) -> u32 {
12846        unsafe {
12847            ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(
12848                ::core::ptr::addr_of!((*this)._bitfield_1),
12849                24usize,
12850                4u8,
12851            ) as u32)
12852        }
12853    }
12854    #[inline]
12855    pub unsafe fn set_group_raw(this: *mut Self, val: u32) {
12856        unsafe {
12857            let val: u32 = ::core::mem::transmute(val);
12858            <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(
12859                ::core::ptr::addr_of_mut!((*this)._bitfield_1),
12860                24usize,
12861                4u8,
12862                val as u64,
12863            )
12864        }
12865    }
12866    #[inline]
12867    pub fn type_(&self) -> u32 {
12868        unsafe { ::core::mem::transmute(self._bitfield_1.get(28usize, 4u8) as u32) }
12869    }
12870    #[inline]
12871    pub fn set_type(&mut self, val: u32) {
12872        unsafe {
12873            let val: u32 = ::core::mem::transmute(val);
12874            self._bitfield_1.set(28usize, 4u8, val as u64)
12875        }
12876    }
12877    #[inline]
12878    pub unsafe fn type__raw(this: *const Self) -> u32 {
12879        unsafe {
12880            ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(
12881                ::core::ptr::addr_of!((*this)._bitfield_1),
12882                28usize,
12883                4u8,
12884            ) as u32)
12885        }
12886    }
12887    #[inline]
12888    pub unsafe fn set_type_raw(this: *mut Self, val: u32) {
12889        unsafe {
12890            let val: u32 = ::core::mem::transmute(val);
12891            <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(
12892                ::core::ptr::addr_of_mut!((*this)._bitfield_1),
12893                28usize,
12894                4u8,
12895                val as u64,
12896            )
12897        }
12898    }
12899    #[inline]
12900    pub fn new_bitfield_1(
12901        ticks: u32,
12902        status: u32,
12903        group: u32,
12904        type_: u32,
12905    ) -> __BindgenBitfieldUnit<[u8; 4usize]> {
12906        let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 4usize]> = Default::default();
12907        __bindgen_bitfield_unit.set(0usize, 20u8, {
12908            let ticks: u32 = unsafe { ::core::mem::transmute(ticks) };
12909            ticks as u64
12910        });
12911        __bindgen_bitfield_unit.set(20usize, 4u8, {
12912            let status: u32 = unsafe { ::core::mem::transmute(status) };
12913            status as u64
12914        });
12915        __bindgen_bitfield_unit.set(24usize, 4u8, {
12916            let group: u32 = unsafe { ::core::mem::transmute(group) };
12917            group as u64
12918        });
12919        __bindgen_bitfield_unit.set(28usize, 4u8, {
12920            let type_: u32 = unsafe { ::core::mem::transmute(type_) };
12921            type_ as u64
12922        });
12923        __bindgen_bitfield_unit
12924    }
12925}
12926pub type snd_ump_msg_dc_t = _snd_ump_msg_dc;
12927#[repr(C)]
12928#[derive(Copy, Clone)]
12929pub union _snd_ump_msg_utility {
12930    pub jr_clock: snd_ump_msg_jr_clock_t,
12931    pub dctpq: snd_ump_msg_dctpq_t,
12932    pub dc: snd_ump_msg_dc_t,
12933    pub hdr: snd_ump_msg_hdr_t,
12934    pub raw: u32,
12935}
12936pub type snd_ump_msg_utility_t = _snd_ump_msg_utility;
12937unsafe extern "C" {
12938    pub fn snd_ump_msg_sysex_expand(
12939        ump: *const u32,
12940        buf: *mut u8,
12941        maxlen: usize,
12942        filled: *mut usize,
12943    ) -> ::core::ffi::c_int;
12944}
12945unsafe extern "C" {
12946    pub fn snd_ump_packet_length(type_: ::core::ffi::c_uint) -> ::core::ffi::c_int;
12947}
12948pub type snd_seq_event_type_t = ::core::ffi::c_uchar;
12949pub const SND_SEQ_EVENT_SYSTEM: snd_seq_event_type = 0;
12950pub const SND_SEQ_EVENT_RESULT: snd_seq_event_type = 1;
12951pub const SND_SEQ_EVENT_NOTE: snd_seq_event_type = 5;
12952pub const SND_SEQ_EVENT_NOTEON: snd_seq_event_type = 6;
12953pub const SND_SEQ_EVENT_NOTEOFF: snd_seq_event_type = 7;
12954pub const SND_SEQ_EVENT_KEYPRESS: snd_seq_event_type = 8;
12955pub const SND_SEQ_EVENT_CONTROLLER: snd_seq_event_type = 10;
12956pub const SND_SEQ_EVENT_PGMCHANGE: snd_seq_event_type = 11;
12957pub const SND_SEQ_EVENT_CHANPRESS: snd_seq_event_type = 12;
12958pub const SND_SEQ_EVENT_PITCHBEND: snd_seq_event_type = 13;
12959pub const SND_SEQ_EVENT_CONTROL14: snd_seq_event_type = 14;
12960pub const SND_SEQ_EVENT_NONREGPARAM: snd_seq_event_type = 15;
12961pub const SND_SEQ_EVENT_REGPARAM: snd_seq_event_type = 16;
12962pub const SND_SEQ_EVENT_SONGPOS: snd_seq_event_type = 20;
12963pub const SND_SEQ_EVENT_SONGSEL: snd_seq_event_type = 21;
12964pub const SND_SEQ_EVENT_QFRAME: snd_seq_event_type = 22;
12965pub const SND_SEQ_EVENT_TIMESIGN: snd_seq_event_type = 23;
12966pub const SND_SEQ_EVENT_KEYSIGN: snd_seq_event_type = 24;
12967pub const SND_SEQ_EVENT_START: snd_seq_event_type = 30;
12968pub const SND_SEQ_EVENT_CONTINUE: snd_seq_event_type = 31;
12969pub const SND_SEQ_EVENT_STOP: snd_seq_event_type = 32;
12970pub const SND_SEQ_EVENT_SETPOS_TICK: snd_seq_event_type = 33;
12971pub const SND_SEQ_EVENT_SETPOS_TIME: snd_seq_event_type = 34;
12972pub const SND_SEQ_EVENT_TEMPO: snd_seq_event_type = 35;
12973pub const SND_SEQ_EVENT_CLOCK: snd_seq_event_type = 36;
12974pub const SND_SEQ_EVENT_TICK: snd_seq_event_type = 37;
12975pub const SND_SEQ_EVENT_QUEUE_SKEW: snd_seq_event_type = 38;
12976pub const SND_SEQ_EVENT_SYNC_POS: snd_seq_event_type = 39;
12977pub const SND_SEQ_EVENT_TUNE_REQUEST: snd_seq_event_type = 40;
12978pub const SND_SEQ_EVENT_RESET: snd_seq_event_type = 41;
12979pub const SND_SEQ_EVENT_SENSING: snd_seq_event_type = 42;
12980pub const SND_SEQ_EVENT_ECHO: snd_seq_event_type = 50;
12981pub const SND_SEQ_EVENT_OSS: snd_seq_event_type = 51;
12982pub const SND_SEQ_EVENT_CLIENT_START: snd_seq_event_type = 60;
12983pub const SND_SEQ_EVENT_CLIENT_EXIT: snd_seq_event_type = 61;
12984pub const SND_SEQ_EVENT_CLIENT_CHANGE: snd_seq_event_type = 62;
12985pub const SND_SEQ_EVENT_PORT_START: snd_seq_event_type = 63;
12986pub const SND_SEQ_EVENT_PORT_EXIT: snd_seq_event_type = 64;
12987pub const SND_SEQ_EVENT_PORT_CHANGE: snd_seq_event_type = 65;
12988pub const SND_SEQ_EVENT_PORT_SUBSCRIBED: snd_seq_event_type = 66;
12989pub const SND_SEQ_EVENT_PORT_UNSUBSCRIBED: snd_seq_event_type = 67;
12990pub const SND_SEQ_EVENT_UMP_EP_CHANGE: snd_seq_event_type = 68;
12991pub const SND_SEQ_EVENT_UMP_BLOCK_CHANGE: snd_seq_event_type = 69;
12992pub const SND_SEQ_EVENT_USR0: snd_seq_event_type = 90;
12993pub const SND_SEQ_EVENT_USR1: snd_seq_event_type = 91;
12994pub const SND_SEQ_EVENT_USR2: snd_seq_event_type = 92;
12995pub const SND_SEQ_EVENT_USR3: snd_seq_event_type = 93;
12996pub const SND_SEQ_EVENT_USR4: snd_seq_event_type = 94;
12997pub const SND_SEQ_EVENT_USR5: snd_seq_event_type = 95;
12998pub const SND_SEQ_EVENT_USR6: snd_seq_event_type = 96;
12999pub const SND_SEQ_EVENT_USR7: snd_seq_event_type = 97;
13000pub const SND_SEQ_EVENT_USR8: snd_seq_event_type = 98;
13001pub const SND_SEQ_EVENT_USR9: snd_seq_event_type = 99;
13002pub const SND_SEQ_EVENT_SYSEX: snd_seq_event_type = 130;
13003pub const SND_SEQ_EVENT_BOUNCE: snd_seq_event_type = 131;
13004pub const SND_SEQ_EVENT_USR_VAR0: snd_seq_event_type = 135;
13005pub const SND_SEQ_EVENT_USR_VAR1: snd_seq_event_type = 136;
13006pub const SND_SEQ_EVENT_USR_VAR2: snd_seq_event_type = 137;
13007pub const SND_SEQ_EVENT_USR_VAR3: snd_seq_event_type = 138;
13008pub const SND_SEQ_EVENT_USR_VAR4: snd_seq_event_type = 139;
13009pub const SND_SEQ_EVENT_NONE: snd_seq_event_type = 255;
13010pub type snd_seq_event_type = ::core::ffi::c_uint;
13011#[repr(C)]
13012#[derive(Debug, Copy, Clone)]
13013pub struct snd_seq_addr {
13014    pub client: ::core::ffi::c_uchar,
13015    pub port: ::core::ffi::c_uchar,
13016}
13017pub type snd_seq_addr_t = snd_seq_addr;
13018#[repr(C)]
13019#[derive(Debug, Copy, Clone)]
13020pub struct snd_seq_connect {
13021    pub sender: snd_seq_addr_t,
13022    pub dest: snd_seq_addr_t,
13023}
13024pub type snd_seq_connect_t = snd_seq_connect;
13025#[repr(C)]
13026#[derive(Debug, Copy, Clone)]
13027pub struct snd_seq_real_time {
13028    pub tv_sec: ::core::ffi::c_uint,
13029    pub tv_nsec: ::core::ffi::c_uint,
13030}
13031pub type snd_seq_real_time_t = snd_seq_real_time;
13032pub type snd_seq_tick_time_t = ::core::ffi::c_uint;
13033#[repr(C)]
13034#[derive(Copy, Clone)]
13035pub union snd_seq_timestamp {
13036    pub tick: snd_seq_tick_time_t,
13037    pub time: snd_seq_real_time,
13038}
13039pub type snd_seq_timestamp_t = snd_seq_timestamp;
13040#[repr(C)]
13041#[derive(Debug, Copy, Clone)]
13042pub struct snd_seq_ev_note {
13043    pub channel: ::core::ffi::c_uchar,
13044    pub note: ::core::ffi::c_uchar,
13045    pub velocity: ::core::ffi::c_uchar,
13046    pub off_velocity: ::core::ffi::c_uchar,
13047    pub duration: ::core::ffi::c_uint,
13048}
13049pub type snd_seq_ev_note_t = snd_seq_ev_note;
13050#[repr(C)]
13051#[derive(Debug, Copy, Clone)]
13052pub struct snd_seq_ev_ctrl {
13053    pub channel: ::core::ffi::c_uchar,
13054    pub unused: [::core::ffi::c_uchar; 3usize],
13055    pub param: ::core::ffi::c_uint,
13056    pub value: ::core::ffi::c_int,
13057}
13058pub type snd_seq_ev_ctrl_t = snd_seq_ev_ctrl;
13059#[repr(C)]
13060#[derive(Debug, Copy, Clone)]
13061pub struct snd_seq_ev_raw8 {
13062    pub d: [::core::ffi::c_uchar; 12usize],
13063}
13064pub type snd_seq_ev_raw8_t = snd_seq_ev_raw8;
13065#[repr(C)]
13066#[derive(Debug, Copy, Clone)]
13067pub struct snd_seq_ev_raw32 {
13068    pub d: [::core::ffi::c_uint; 3usize],
13069}
13070pub type snd_seq_ev_raw32_t = snd_seq_ev_raw32;
13071#[repr(C, packed)]
13072#[derive(Debug, Copy, Clone)]
13073pub struct snd_seq_ev_ext {
13074    pub len: ::core::ffi::c_uint,
13075    pub ptr: *mut ::core::ffi::c_void,
13076}
13077pub type snd_seq_ev_ext_t = snd_seq_ev_ext;
13078#[repr(C)]
13079#[derive(Debug, Copy, Clone)]
13080pub struct snd_seq_result {
13081    pub event: ::core::ffi::c_int,
13082    pub result: ::core::ffi::c_int,
13083}
13084pub type snd_seq_result_t = snd_seq_result;
13085#[repr(C)]
13086#[derive(Debug, Copy, Clone)]
13087pub struct snd_seq_queue_skew {
13088    pub value: ::core::ffi::c_uint,
13089    pub base: ::core::ffi::c_uint,
13090}
13091pub type snd_seq_queue_skew_t = snd_seq_queue_skew;
13092#[repr(C)]
13093#[derive(Copy, Clone)]
13094pub struct snd_seq_ev_queue_control {
13095    pub queue: ::core::ffi::c_uchar,
13096    pub unused: [::core::ffi::c_uchar; 3usize],
13097    pub param: snd_seq_ev_queue_control__bindgen_ty_1,
13098}
13099#[repr(C)]
13100#[derive(Copy, Clone)]
13101pub union snd_seq_ev_queue_control__bindgen_ty_1 {
13102    pub value: ::core::ffi::c_int,
13103    pub time: snd_seq_timestamp_t,
13104    pub position: ::core::ffi::c_uint,
13105    pub skew: snd_seq_queue_skew_t,
13106    pub d32: [::core::ffi::c_uint; 2usize],
13107    pub d8: [::core::ffi::c_uchar; 8usize],
13108}
13109pub type snd_seq_ev_queue_control_t = snd_seq_ev_queue_control;
13110#[repr(C)]
13111#[derive(Debug, Copy, Clone)]
13112pub struct snd_seq_ev_ump_notify {
13113    pub client: ::core::ffi::c_uchar,
13114    pub block: ::core::ffi::c_uchar,
13115}
13116pub type snd_seq_ev_ump_notify_t = snd_seq_ev_ump_notify;
13117#[repr(C)]
13118#[derive(Copy, Clone)]
13119pub union snd_seq_event_data {
13120    pub note: snd_seq_ev_note_t,
13121    pub control: snd_seq_ev_ctrl_t,
13122    pub raw8: snd_seq_ev_raw8_t,
13123    pub raw32: snd_seq_ev_raw32_t,
13124    pub ext: snd_seq_ev_ext_t,
13125    pub queue: snd_seq_ev_queue_control_t,
13126    pub time: snd_seq_timestamp_t,
13127    pub addr: snd_seq_addr_t,
13128    pub connect: snd_seq_connect_t,
13129    pub result: snd_seq_result_t,
13130    pub ump_notify: snd_seq_ev_ump_notify_t,
13131}
13132pub type snd_seq_event_data_t = snd_seq_event_data;
13133#[repr(C)]
13134#[derive(Copy, Clone)]
13135pub struct snd_seq_event {
13136    pub type_: snd_seq_event_type_t,
13137    pub flags: ::core::ffi::c_uchar,
13138    pub tag: ::core::ffi::c_uchar,
13139    pub queue: ::core::ffi::c_uchar,
13140    pub time: snd_seq_timestamp_t,
13141    pub source: snd_seq_addr_t,
13142    pub dest: snd_seq_addr_t,
13143    pub data: snd_seq_event_data_t,
13144}
13145pub type snd_seq_event_t = snd_seq_event;
13146#[repr(C)]
13147#[derive(Copy, Clone)]
13148pub struct snd_seq_ump_event {
13149    pub type_: snd_seq_event_type_t,
13150    pub flags: ::core::ffi::c_uchar,
13151    pub tag: ::core::ffi::c_uchar,
13152    pub queue: ::core::ffi::c_uchar,
13153    pub time: snd_seq_timestamp_t,
13154    pub source: snd_seq_addr_t,
13155    pub dest: snd_seq_addr_t,
13156    pub __bindgen_anon_1: snd_seq_ump_event__bindgen_ty_1,
13157}
13158#[repr(C)]
13159#[derive(Copy, Clone)]
13160pub union snd_seq_ump_event__bindgen_ty_1 {
13161    pub data: snd_seq_event_data_t,
13162    pub ump: [::core::ffi::c_uint; 4usize],
13163}
13164pub type snd_seq_ump_event_t = snd_seq_ump_event;
13165#[repr(C)]
13166#[derive(Debug, Copy, Clone)]
13167pub struct _snd_seq {
13168    _unused: [u8; 0],
13169}
13170pub type snd_seq_t = _snd_seq;
13171pub const SND_SEQ_TYPE_HW: _snd_seq_type = 0;
13172pub const SND_SEQ_TYPE_SHM: _snd_seq_type = 1;
13173pub const SND_SEQ_TYPE_INET: _snd_seq_type = 2;
13174pub type _snd_seq_type = ::core::ffi::c_uint;
13175pub use self::_snd_seq_type as snd_seq_type_t;
13176unsafe extern "C" {
13177    pub fn snd_seq_open(
13178        handle: *mut *mut snd_seq_t,
13179        name: *const ::core::ffi::c_char,
13180        streams: ::core::ffi::c_int,
13181        mode: ::core::ffi::c_int,
13182    ) -> ::core::ffi::c_int;
13183}
13184unsafe extern "C" {
13185    pub fn snd_seq_open_lconf(
13186        handle: *mut *mut snd_seq_t,
13187        name: *const ::core::ffi::c_char,
13188        streams: ::core::ffi::c_int,
13189        mode: ::core::ffi::c_int,
13190        lconf: *mut snd_config_t,
13191    ) -> ::core::ffi::c_int;
13192}
13193unsafe extern "C" {
13194    pub fn snd_seq_name(seq: *mut snd_seq_t) -> *const ::core::ffi::c_char;
13195}
13196unsafe extern "C" {
13197    pub fn snd_seq_type(seq: *mut snd_seq_t) -> snd_seq_type_t;
13198}
13199unsafe extern "C" {
13200    pub fn snd_seq_close(handle: *mut snd_seq_t) -> ::core::ffi::c_int;
13201}
13202unsafe extern "C" {
13203    pub fn snd_seq_poll_descriptors_count(
13204        handle: *mut snd_seq_t,
13205        events: ::core::ffi::c_short,
13206    ) -> ::core::ffi::c_int;
13207}
13208unsafe extern "C" {
13209    pub fn snd_seq_poll_descriptors(
13210        handle: *mut snd_seq_t,
13211        pfds: *mut pollfd,
13212        space: ::core::ffi::c_uint,
13213        events: ::core::ffi::c_short,
13214    ) -> ::core::ffi::c_int;
13215}
13216unsafe extern "C" {
13217    pub fn snd_seq_poll_descriptors_revents(
13218        seq: *mut snd_seq_t,
13219        pfds: *mut pollfd,
13220        nfds: ::core::ffi::c_uint,
13221        revents: *mut ::core::ffi::c_ushort,
13222    ) -> ::core::ffi::c_int;
13223}
13224unsafe extern "C" {
13225    pub fn snd_seq_nonblock(
13226        handle: *mut snd_seq_t,
13227        nonblock: ::core::ffi::c_int,
13228    ) -> ::core::ffi::c_int;
13229}
13230unsafe extern "C" {
13231    pub fn snd_seq_client_id(handle: *mut snd_seq_t) -> ::core::ffi::c_int;
13232}
13233unsafe extern "C" {
13234    pub fn snd_seq_get_output_buffer_size(handle: *mut snd_seq_t) -> usize;
13235}
13236unsafe extern "C" {
13237    pub fn snd_seq_get_input_buffer_size(handle: *mut snd_seq_t) -> usize;
13238}
13239unsafe extern "C" {
13240    pub fn snd_seq_set_output_buffer_size(
13241        handle: *mut snd_seq_t,
13242        size: usize,
13243    ) -> ::core::ffi::c_int;
13244}
13245unsafe extern "C" {
13246    pub fn snd_seq_set_input_buffer_size(handle: *mut snd_seq_t, size: usize)
13247    -> ::core::ffi::c_int;
13248}
13249#[repr(C)]
13250#[derive(Debug, Copy, Clone)]
13251pub struct _snd_seq_system_info {
13252    _unused: [u8; 0],
13253}
13254pub type snd_seq_system_info_t = _snd_seq_system_info;
13255unsafe extern "C" {
13256    pub fn snd_seq_system_info_sizeof() -> usize;
13257}
13258unsafe extern "C" {
13259    pub fn snd_seq_system_info_malloc(ptr: *mut *mut snd_seq_system_info_t) -> ::core::ffi::c_int;
13260}
13261unsafe extern "C" {
13262    pub fn snd_seq_system_info_free(ptr: *mut snd_seq_system_info_t);
13263}
13264unsafe extern "C" {
13265    pub fn snd_seq_system_info_copy(
13266        dst: *mut snd_seq_system_info_t,
13267        src: *const snd_seq_system_info_t,
13268    );
13269}
13270unsafe extern "C" {
13271    pub fn snd_seq_system_info_get_queues(info: *const snd_seq_system_info_t)
13272    -> ::core::ffi::c_int;
13273}
13274unsafe extern "C" {
13275    pub fn snd_seq_system_info_get_clients(
13276        info: *const snd_seq_system_info_t,
13277    ) -> ::core::ffi::c_int;
13278}
13279unsafe extern "C" {
13280    pub fn snd_seq_system_info_get_ports(info: *const snd_seq_system_info_t) -> ::core::ffi::c_int;
13281}
13282unsafe extern "C" {
13283    pub fn snd_seq_system_info_get_channels(
13284        info: *const snd_seq_system_info_t,
13285    ) -> ::core::ffi::c_int;
13286}
13287unsafe extern "C" {
13288    pub fn snd_seq_system_info_get_cur_clients(
13289        info: *const snd_seq_system_info_t,
13290    ) -> ::core::ffi::c_int;
13291}
13292unsafe extern "C" {
13293    pub fn snd_seq_system_info_get_cur_queues(
13294        info: *const snd_seq_system_info_t,
13295    ) -> ::core::ffi::c_int;
13296}
13297unsafe extern "C" {
13298    pub fn snd_seq_system_info(
13299        handle: *mut snd_seq_t,
13300        info: *mut snd_seq_system_info_t,
13301    ) -> ::core::ffi::c_int;
13302}
13303#[repr(C)]
13304#[derive(Debug, Copy, Clone)]
13305pub struct _snd_seq_client_info {
13306    _unused: [u8; 0],
13307}
13308pub type snd_seq_client_info_t = _snd_seq_client_info;
13309pub const SND_SEQ_USER_CLIENT: snd_seq_client_type = 1;
13310pub const SND_SEQ_KERNEL_CLIENT: snd_seq_client_type = 2;
13311pub type snd_seq_client_type = ::core::ffi::c_uint;
13312pub use self::snd_seq_client_type as snd_seq_client_type_t;
13313unsafe extern "C" {
13314    pub fn snd_seq_client_info_sizeof() -> usize;
13315}
13316unsafe extern "C" {
13317    pub fn snd_seq_client_info_malloc(ptr: *mut *mut snd_seq_client_info_t) -> ::core::ffi::c_int;
13318}
13319unsafe extern "C" {
13320    pub fn snd_seq_client_info_free(ptr: *mut snd_seq_client_info_t);
13321}
13322unsafe extern "C" {
13323    pub fn snd_seq_client_info_copy(
13324        dst: *mut snd_seq_client_info_t,
13325        src: *const snd_seq_client_info_t,
13326    );
13327}
13328unsafe extern "C" {
13329    pub fn snd_seq_client_info_get_client(info: *const snd_seq_client_info_t)
13330    -> ::core::ffi::c_int;
13331}
13332unsafe extern "C" {
13333    pub fn snd_seq_client_info_get_type(
13334        info: *const snd_seq_client_info_t,
13335    ) -> snd_seq_client_type_t;
13336}
13337unsafe extern "C" {
13338    pub fn snd_seq_client_info_get_name(
13339        info: *mut snd_seq_client_info_t,
13340    ) -> *const ::core::ffi::c_char;
13341}
13342unsafe extern "C" {
13343    pub fn snd_seq_client_info_get_broadcast_filter(
13344        info: *const snd_seq_client_info_t,
13345    ) -> ::core::ffi::c_int;
13346}
13347unsafe extern "C" {
13348    pub fn snd_seq_client_info_get_error_bounce(
13349        info: *const snd_seq_client_info_t,
13350    ) -> ::core::ffi::c_int;
13351}
13352unsafe extern "C" {
13353    pub fn snd_seq_client_info_get_card(info: *const snd_seq_client_info_t) -> ::core::ffi::c_int;
13354}
13355unsafe extern "C" {
13356    pub fn snd_seq_client_info_get_pid(info: *const snd_seq_client_info_t) -> ::core::ffi::c_int;
13357}
13358unsafe extern "C" {
13359    pub fn snd_seq_client_info_get_event_filter(
13360        info: *const snd_seq_client_info_t,
13361    ) -> *const ::core::ffi::c_uchar;
13362}
13363unsafe extern "C" {
13364    pub fn snd_seq_client_info_get_num_ports(
13365        info: *const snd_seq_client_info_t,
13366    ) -> ::core::ffi::c_int;
13367}
13368unsafe extern "C" {
13369    pub fn snd_seq_client_info_get_event_lost(
13370        info: *const snd_seq_client_info_t,
13371    ) -> ::core::ffi::c_int;
13372}
13373unsafe extern "C" {
13374    pub fn snd_seq_client_info_get_midi_version(
13375        info: *const snd_seq_client_info_t,
13376    ) -> ::core::ffi::c_int;
13377}
13378unsafe extern "C" {
13379    pub fn snd_seq_client_info_get_ump_group_enabled(
13380        info: *const snd_seq_client_info_t,
13381        group: ::core::ffi::c_int,
13382    ) -> ::core::ffi::c_int;
13383}
13384unsafe extern "C" {
13385    pub fn snd_seq_client_info_get_ump_groupless_enabled(
13386        info: *const snd_seq_client_info_t,
13387    ) -> ::core::ffi::c_int;
13388}
13389unsafe extern "C" {
13390    pub fn snd_seq_client_info_get_ump_conversion(
13391        info: *const snd_seq_client_info_t,
13392    ) -> ::core::ffi::c_int;
13393}
13394unsafe extern "C" {
13395    pub fn snd_seq_client_info_set_client(
13396        info: *mut snd_seq_client_info_t,
13397        client: ::core::ffi::c_int,
13398    );
13399}
13400unsafe extern "C" {
13401    pub fn snd_seq_client_info_set_name(
13402        info: *mut snd_seq_client_info_t,
13403        name: *const ::core::ffi::c_char,
13404    );
13405}
13406unsafe extern "C" {
13407    pub fn snd_seq_client_info_set_broadcast_filter(
13408        info: *mut snd_seq_client_info_t,
13409        val: ::core::ffi::c_int,
13410    );
13411}
13412unsafe extern "C" {
13413    pub fn snd_seq_client_info_set_error_bounce(
13414        info: *mut snd_seq_client_info_t,
13415        val: ::core::ffi::c_int,
13416    );
13417}
13418unsafe extern "C" {
13419    pub fn snd_seq_client_info_set_event_filter(
13420        info: *mut snd_seq_client_info_t,
13421        filter: *mut ::core::ffi::c_uchar,
13422    );
13423}
13424unsafe extern "C" {
13425    pub fn snd_seq_client_info_set_midi_version(
13426        info: *mut snd_seq_client_info_t,
13427        midi_version: ::core::ffi::c_int,
13428    );
13429}
13430unsafe extern "C" {
13431    pub fn snd_seq_client_info_set_ump_group_enabled(
13432        info: *mut snd_seq_client_info_t,
13433        group: ::core::ffi::c_int,
13434        enable: ::core::ffi::c_int,
13435    );
13436}
13437unsafe extern "C" {
13438    pub fn snd_seq_client_info_set_ump_groupless_enabled(
13439        info: *mut snd_seq_client_info_t,
13440        enable: ::core::ffi::c_int,
13441    );
13442}
13443unsafe extern "C" {
13444    pub fn snd_seq_client_info_set_ump_conversion(
13445        info: *mut snd_seq_client_info_t,
13446        enable: ::core::ffi::c_int,
13447    );
13448}
13449unsafe extern "C" {
13450    pub fn snd_seq_client_info_event_filter_clear(info: *mut snd_seq_client_info_t);
13451}
13452unsafe extern "C" {
13453    pub fn snd_seq_client_info_event_filter_add(
13454        info: *mut snd_seq_client_info_t,
13455        event_type: ::core::ffi::c_int,
13456    );
13457}
13458unsafe extern "C" {
13459    pub fn snd_seq_client_info_event_filter_del(
13460        info: *mut snd_seq_client_info_t,
13461        event_type: ::core::ffi::c_int,
13462    );
13463}
13464unsafe extern "C" {
13465    pub fn snd_seq_client_info_event_filter_check(
13466        info: *mut snd_seq_client_info_t,
13467        event_type: ::core::ffi::c_int,
13468    ) -> ::core::ffi::c_int;
13469}
13470unsafe extern "C" {
13471    pub fn snd_seq_get_client_info(
13472        handle: *mut snd_seq_t,
13473        info: *mut snd_seq_client_info_t,
13474    ) -> ::core::ffi::c_int;
13475}
13476unsafe extern "C" {
13477    pub fn snd_seq_get_any_client_info(
13478        handle: *mut snd_seq_t,
13479        client: ::core::ffi::c_int,
13480        info: *mut snd_seq_client_info_t,
13481    ) -> ::core::ffi::c_int;
13482}
13483unsafe extern "C" {
13484    pub fn snd_seq_set_client_info(
13485        handle: *mut snd_seq_t,
13486        info: *mut snd_seq_client_info_t,
13487    ) -> ::core::ffi::c_int;
13488}
13489unsafe extern "C" {
13490    pub fn snd_seq_query_next_client(
13491        handle: *mut snd_seq_t,
13492        info: *mut snd_seq_client_info_t,
13493    ) -> ::core::ffi::c_int;
13494}
13495unsafe extern "C" {
13496    pub fn snd_seq_get_ump_endpoint_info(
13497        seq: *mut snd_seq_t,
13498        client: ::core::ffi::c_int,
13499        info: *mut ::core::ffi::c_void,
13500    ) -> ::core::ffi::c_int;
13501}
13502unsafe extern "C" {
13503    pub fn snd_seq_get_ump_block_info(
13504        seq: *mut snd_seq_t,
13505        client: ::core::ffi::c_int,
13506        blk: ::core::ffi::c_int,
13507        info: *mut ::core::ffi::c_void,
13508    ) -> ::core::ffi::c_int;
13509}
13510unsafe extern "C" {
13511    pub fn snd_seq_set_ump_endpoint_info(
13512        seq: *mut snd_seq_t,
13513        info: *const ::core::ffi::c_void,
13514    ) -> ::core::ffi::c_int;
13515}
13516unsafe extern "C" {
13517    pub fn snd_seq_set_ump_block_info(
13518        seq: *mut snd_seq_t,
13519        blk: ::core::ffi::c_int,
13520        info: *const ::core::ffi::c_void,
13521    ) -> ::core::ffi::c_int;
13522}
13523#[repr(C)]
13524#[derive(Debug, Copy, Clone)]
13525pub struct _snd_seq_client_pool {
13526    _unused: [u8; 0],
13527}
13528pub type snd_seq_client_pool_t = _snd_seq_client_pool;
13529unsafe extern "C" {
13530    pub fn snd_seq_client_pool_sizeof() -> usize;
13531}
13532unsafe extern "C" {
13533    pub fn snd_seq_client_pool_malloc(ptr: *mut *mut snd_seq_client_pool_t) -> ::core::ffi::c_int;
13534}
13535unsafe extern "C" {
13536    pub fn snd_seq_client_pool_free(ptr: *mut snd_seq_client_pool_t);
13537}
13538unsafe extern "C" {
13539    pub fn snd_seq_client_pool_copy(
13540        dst: *mut snd_seq_client_pool_t,
13541        src: *const snd_seq_client_pool_t,
13542    );
13543}
13544unsafe extern "C" {
13545    pub fn snd_seq_client_pool_get_client(info: *const snd_seq_client_pool_t)
13546    -> ::core::ffi::c_int;
13547}
13548unsafe extern "C" {
13549    pub fn snd_seq_client_pool_get_output_pool(info: *const snd_seq_client_pool_t) -> usize;
13550}
13551unsafe extern "C" {
13552    pub fn snd_seq_client_pool_get_input_pool(info: *const snd_seq_client_pool_t) -> usize;
13553}
13554unsafe extern "C" {
13555    pub fn snd_seq_client_pool_get_output_room(info: *const snd_seq_client_pool_t) -> usize;
13556}
13557unsafe extern "C" {
13558    pub fn snd_seq_client_pool_get_output_free(info: *const snd_seq_client_pool_t) -> usize;
13559}
13560unsafe extern "C" {
13561    pub fn snd_seq_client_pool_get_input_free(info: *const snd_seq_client_pool_t) -> usize;
13562}
13563unsafe extern "C" {
13564    pub fn snd_seq_client_pool_set_output_pool(info: *mut snd_seq_client_pool_t, size: usize);
13565}
13566unsafe extern "C" {
13567    pub fn snd_seq_client_pool_set_input_pool(info: *mut snd_seq_client_pool_t, size: usize);
13568}
13569unsafe extern "C" {
13570    pub fn snd_seq_client_pool_set_output_room(info: *mut snd_seq_client_pool_t, size: usize);
13571}
13572unsafe extern "C" {
13573    pub fn snd_seq_get_client_pool(
13574        handle: *mut snd_seq_t,
13575        info: *mut snd_seq_client_pool_t,
13576    ) -> ::core::ffi::c_int;
13577}
13578unsafe extern "C" {
13579    pub fn snd_seq_set_client_pool(
13580        handle: *mut snd_seq_t,
13581        info: *mut snd_seq_client_pool_t,
13582    ) -> ::core::ffi::c_int;
13583}
13584#[repr(C)]
13585#[derive(Debug, Copy, Clone)]
13586pub struct _snd_seq_port_info {
13587    _unused: [u8; 0],
13588}
13589pub type snd_seq_port_info_t = _snd_seq_port_info;
13590unsafe extern "C" {
13591    pub fn snd_seq_port_info_sizeof() -> usize;
13592}
13593unsafe extern "C" {
13594    pub fn snd_seq_port_info_malloc(ptr: *mut *mut snd_seq_port_info_t) -> ::core::ffi::c_int;
13595}
13596unsafe extern "C" {
13597    pub fn snd_seq_port_info_free(ptr: *mut snd_seq_port_info_t);
13598}
13599unsafe extern "C" {
13600    pub fn snd_seq_port_info_copy(dst: *mut snd_seq_port_info_t, src: *const snd_seq_port_info_t);
13601}
13602unsafe extern "C" {
13603    pub fn snd_seq_port_info_get_client(info: *const snd_seq_port_info_t) -> ::core::ffi::c_int;
13604}
13605unsafe extern "C" {
13606    pub fn snd_seq_port_info_get_port(info: *const snd_seq_port_info_t) -> ::core::ffi::c_int;
13607}
13608unsafe extern "C" {
13609    pub fn snd_seq_port_info_get_addr(info: *const snd_seq_port_info_t) -> *const snd_seq_addr_t;
13610}
13611unsafe extern "C" {
13612    pub fn snd_seq_port_info_get_name(
13613        info: *const snd_seq_port_info_t,
13614    ) -> *const ::core::ffi::c_char;
13615}
13616unsafe extern "C" {
13617    pub fn snd_seq_port_info_get_capability(
13618        info: *const snd_seq_port_info_t,
13619    ) -> ::core::ffi::c_uint;
13620}
13621unsafe extern "C" {
13622    pub fn snd_seq_port_info_get_type(info: *const snd_seq_port_info_t) -> ::core::ffi::c_uint;
13623}
13624unsafe extern "C" {
13625    pub fn snd_seq_port_info_get_midi_channels(
13626        info: *const snd_seq_port_info_t,
13627    ) -> ::core::ffi::c_int;
13628}
13629unsafe extern "C" {
13630    pub fn snd_seq_port_info_get_midi_voices(
13631        info: *const snd_seq_port_info_t,
13632    ) -> ::core::ffi::c_int;
13633}
13634unsafe extern "C" {
13635    pub fn snd_seq_port_info_get_synth_voices(
13636        info: *const snd_seq_port_info_t,
13637    ) -> ::core::ffi::c_int;
13638}
13639unsafe extern "C" {
13640    pub fn snd_seq_port_info_get_read_use(info: *const snd_seq_port_info_t) -> ::core::ffi::c_int;
13641}
13642unsafe extern "C" {
13643    pub fn snd_seq_port_info_get_write_use(info: *const snd_seq_port_info_t) -> ::core::ffi::c_int;
13644}
13645unsafe extern "C" {
13646    pub fn snd_seq_port_info_get_port_specified(
13647        info: *const snd_seq_port_info_t,
13648    ) -> ::core::ffi::c_int;
13649}
13650unsafe extern "C" {
13651    pub fn snd_seq_port_info_get_timestamping(
13652        info: *const snd_seq_port_info_t,
13653    ) -> ::core::ffi::c_int;
13654}
13655unsafe extern "C" {
13656    pub fn snd_seq_port_info_get_timestamp_real(
13657        info: *const snd_seq_port_info_t,
13658    ) -> ::core::ffi::c_int;
13659}
13660unsafe extern "C" {
13661    pub fn snd_seq_port_info_get_timestamp_queue(
13662        info: *const snd_seq_port_info_t,
13663    ) -> ::core::ffi::c_int;
13664}
13665unsafe extern "C" {
13666    pub fn snd_seq_port_info_get_direction(info: *const snd_seq_port_info_t) -> ::core::ffi::c_int;
13667}
13668unsafe extern "C" {
13669    pub fn snd_seq_port_info_get_ump_group(info: *const snd_seq_port_info_t) -> ::core::ffi::c_int;
13670}
13671unsafe extern "C" {
13672    pub fn snd_seq_port_info_get_ump_is_midi1(
13673        info: *const snd_seq_port_info_t,
13674    ) -> ::core::ffi::c_int;
13675}
13676unsafe extern "C" {
13677    pub fn snd_seq_port_info_set_client(info: *mut snd_seq_port_info_t, client: ::core::ffi::c_int);
13678}
13679unsafe extern "C" {
13680    pub fn snd_seq_port_info_set_port(info: *mut snd_seq_port_info_t, port: ::core::ffi::c_int);
13681}
13682unsafe extern "C" {
13683    pub fn snd_seq_port_info_set_addr(info: *mut snd_seq_port_info_t, addr: *const snd_seq_addr_t);
13684}
13685unsafe extern "C" {
13686    pub fn snd_seq_port_info_set_name(
13687        info: *mut snd_seq_port_info_t,
13688        name: *const ::core::ffi::c_char,
13689    );
13690}
13691unsafe extern "C" {
13692    pub fn snd_seq_port_info_set_capability(
13693        info: *mut snd_seq_port_info_t,
13694        capability: ::core::ffi::c_uint,
13695    );
13696}
13697unsafe extern "C" {
13698    pub fn snd_seq_port_info_set_type(info: *mut snd_seq_port_info_t, type_: ::core::ffi::c_uint);
13699}
13700unsafe extern "C" {
13701    pub fn snd_seq_port_info_set_midi_channels(
13702        info: *mut snd_seq_port_info_t,
13703        channels: ::core::ffi::c_int,
13704    );
13705}
13706unsafe extern "C" {
13707    pub fn snd_seq_port_info_set_midi_voices(
13708        info: *mut snd_seq_port_info_t,
13709        voices: ::core::ffi::c_int,
13710    );
13711}
13712unsafe extern "C" {
13713    pub fn snd_seq_port_info_set_synth_voices(
13714        info: *mut snd_seq_port_info_t,
13715        voices: ::core::ffi::c_int,
13716    );
13717}
13718unsafe extern "C" {
13719    pub fn snd_seq_port_info_set_port_specified(
13720        info: *mut snd_seq_port_info_t,
13721        val: ::core::ffi::c_int,
13722    );
13723}
13724unsafe extern "C" {
13725    pub fn snd_seq_port_info_set_timestamping(
13726        info: *mut snd_seq_port_info_t,
13727        enable: ::core::ffi::c_int,
13728    );
13729}
13730unsafe extern "C" {
13731    pub fn snd_seq_port_info_set_timestamp_real(
13732        info: *mut snd_seq_port_info_t,
13733        realtime: ::core::ffi::c_int,
13734    );
13735}
13736unsafe extern "C" {
13737    pub fn snd_seq_port_info_set_timestamp_queue(
13738        info: *mut snd_seq_port_info_t,
13739        queue: ::core::ffi::c_int,
13740    );
13741}
13742unsafe extern "C" {
13743    pub fn snd_seq_port_info_set_direction(
13744        info: *mut snd_seq_port_info_t,
13745        direction: ::core::ffi::c_int,
13746    );
13747}
13748unsafe extern "C" {
13749    pub fn snd_seq_port_info_set_ump_group(
13750        info: *mut snd_seq_port_info_t,
13751        ump_group: ::core::ffi::c_int,
13752    );
13753}
13754unsafe extern "C" {
13755    pub fn snd_seq_port_info_set_ump_is_midi1(
13756        info: *mut snd_seq_port_info_t,
13757        is_midi1: ::core::ffi::c_int,
13758    );
13759}
13760unsafe extern "C" {
13761    pub fn snd_seq_create_port(
13762        handle: *mut snd_seq_t,
13763        info: *mut snd_seq_port_info_t,
13764    ) -> ::core::ffi::c_int;
13765}
13766unsafe extern "C" {
13767    pub fn snd_seq_delete_port(
13768        handle: *mut snd_seq_t,
13769        port: ::core::ffi::c_int,
13770    ) -> ::core::ffi::c_int;
13771}
13772unsafe extern "C" {
13773    pub fn snd_seq_get_port_info(
13774        handle: *mut snd_seq_t,
13775        port: ::core::ffi::c_int,
13776        info: *mut snd_seq_port_info_t,
13777    ) -> ::core::ffi::c_int;
13778}
13779unsafe extern "C" {
13780    pub fn snd_seq_get_any_port_info(
13781        handle: *mut snd_seq_t,
13782        client: ::core::ffi::c_int,
13783        port: ::core::ffi::c_int,
13784        info: *mut snd_seq_port_info_t,
13785    ) -> ::core::ffi::c_int;
13786}
13787unsafe extern "C" {
13788    pub fn snd_seq_set_port_info(
13789        handle: *mut snd_seq_t,
13790        port: ::core::ffi::c_int,
13791        info: *mut snd_seq_port_info_t,
13792    ) -> ::core::ffi::c_int;
13793}
13794unsafe extern "C" {
13795    pub fn snd_seq_query_next_port(
13796        handle: *mut snd_seq_t,
13797        info: *mut snd_seq_port_info_t,
13798    ) -> ::core::ffi::c_int;
13799}
13800#[repr(C)]
13801#[derive(Debug, Copy, Clone)]
13802pub struct _snd_seq_port_subscribe {
13803    _unused: [u8; 0],
13804}
13805pub type snd_seq_port_subscribe_t = _snd_seq_port_subscribe;
13806unsafe extern "C" {
13807    pub fn snd_seq_port_subscribe_sizeof() -> usize;
13808}
13809unsafe extern "C" {
13810    pub fn snd_seq_port_subscribe_malloc(
13811        ptr: *mut *mut snd_seq_port_subscribe_t,
13812    ) -> ::core::ffi::c_int;
13813}
13814unsafe extern "C" {
13815    pub fn snd_seq_port_subscribe_free(ptr: *mut snd_seq_port_subscribe_t);
13816}
13817unsafe extern "C" {
13818    pub fn snd_seq_port_subscribe_copy(
13819        dst: *mut snd_seq_port_subscribe_t,
13820        src: *const snd_seq_port_subscribe_t,
13821    );
13822}
13823unsafe extern "C" {
13824    pub fn snd_seq_port_subscribe_get_sender(
13825        info: *const snd_seq_port_subscribe_t,
13826    ) -> *const snd_seq_addr_t;
13827}
13828unsafe extern "C" {
13829    pub fn snd_seq_port_subscribe_get_dest(
13830        info: *const snd_seq_port_subscribe_t,
13831    ) -> *const snd_seq_addr_t;
13832}
13833unsafe extern "C" {
13834    pub fn snd_seq_port_subscribe_get_queue(
13835        info: *const snd_seq_port_subscribe_t,
13836    ) -> ::core::ffi::c_int;
13837}
13838unsafe extern "C" {
13839    pub fn snd_seq_port_subscribe_get_exclusive(
13840        info: *const snd_seq_port_subscribe_t,
13841    ) -> ::core::ffi::c_int;
13842}
13843unsafe extern "C" {
13844    pub fn snd_seq_port_subscribe_get_time_update(
13845        info: *const snd_seq_port_subscribe_t,
13846    ) -> ::core::ffi::c_int;
13847}
13848unsafe extern "C" {
13849    pub fn snd_seq_port_subscribe_get_time_real(
13850        info: *const snd_seq_port_subscribe_t,
13851    ) -> ::core::ffi::c_int;
13852}
13853unsafe extern "C" {
13854    pub fn snd_seq_port_subscribe_set_sender(
13855        info: *mut snd_seq_port_subscribe_t,
13856        addr: *const snd_seq_addr_t,
13857    );
13858}
13859unsafe extern "C" {
13860    pub fn snd_seq_port_subscribe_set_dest(
13861        info: *mut snd_seq_port_subscribe_t,
13862        addr: *const snd_seq_addr_t,
13863    );
13864}
13865unsafe extern "C" {
13866    pub fn snd_seq_port_subscribe_set_queue(
13867        info: *mut snd_seq_port_subscribe_t,
13868        q: ::core::ffi::c_int,
13869    );
13870}
13871unsafe extern "C" {
13872    pub fn snd_seq_port_subscribe_set_exclusive(
13873        info: *mut snd_seq_port_subscribe_t,
13874        val: ::core::ffi::c_int,
13875    );
13876}
13877unsafe extern "C" {
13878    pub fn snd_seq_port_subscribe_set_time_update(
13879        info: *mut snd_seq_port_subscribe_t,
13880        val: ::core::ffi::c_int,
13881    );
13882}
13883unsafe extern "C" {
13884    pub fn snd_seq_port_subscribe_set_time_real(
13885        info: *mut snd_seq_port_subscribe_t,
13886        val: ::core::ffi::c_int,
13887    );
13888}
13889unsafe extern "C" {
13890    pub fn snd_seq_get_port_subscription(
13891        handle: *mut snd_seq_t,
13892        sub: *mut snd_seq_port_subscribe_t,
13893    ) -> ::core::ffi::c_int;
13894}
13895unsafe extern "C" {
13896    pub fn snd_seq_subscribe_port(
13897        handle: *mut snd_seq_t,
13898        sub: *mut snd_seq_port_subscribe_t,
13899    ) -> ::core::ffi::c_int;
13900}
13901unsafe extern "C" {
13902    pub fn snd_seq_unsubscribe_port(
13903        handle: *mut snd_seq_t,
13904        sub: *mut snd_seq_port_subscribe_t,
13905    ) -> ::core::ffi::c_int;
13906}
13907#[repr(C)]
13908#[derive(Debug, Copy, Clone)]
13909pub struct _snd_seq_query_subscribe {
13910    _unused: [u8; 0],
13911}
13912pub type snd_seq_query_subscribe_t = _snd_seq_query_subscribe;
13913pub const SND_SEQ_QUERY_SUBS_READ: snd_seq_query_subs_type_t = 0;
13914pub const SND_SEQ_QUERY_SUBS_WRITE: snd_seq_query_subs_type_t = 1;
13915pub type snd_seq_query_subs_type_t = ::core::ffi::c_uint;
13916unsafe extern "C" {
13917    pub fn snd_seq_query_subscribe_sizeof() -> usize;
13918}
13919unsafe extern "C" {
13920    pub fn snd_seq_query_subscribe_malloc(
13921        ptr: *mut *mut snd_seq_query_subscribe_t,
13922    ) -> ::core::ffi::c_int;
13923}
13924unsafe extern "C" {
13925    pub fn snd_seq_query_subscribe_free(ptr: *mut snd_seq_query_subscribe_t);
13926}
13927unsafe extern "C" {
13928    pub fn snd_seq_query_subscribe_copy(
13929        dst: *mut snd_seq_query_subscribe_t,
13930        src: *const snd_seq_query_subscribe_t,
13931    );
13932}
13933unsafe extern "C" {
13934    pub fn snd_seq_query_subscribe_get_client(
13935        info: *const snd_seq_query_subscribe_t,
13936    ) -> ::core::ffi::c_int;
13937}
13938unsafe extern "C" {
13939    pub fn snd_seq_query_subscribe_get_port(
13940        info: *const snd_seq_query_subscribe_t,
13941    ) -> ::core::ffi::c_int;
13942}
13943unsafe extern "C" {
13944    pub fn snd_seq_query_subscribe_get_root(
13945        info: *const snd_seq_query_subscribe_t,
13946    ) -> *const snd_seq_addr_t;
13947}
13948unsafe extern "C" {
13949    pub fn snd_seq_query_subscribe_get_type(
13950        info: *const snd_seq_query_subscribe_t,
13951    ) -> snd_seq_query_subs_type_t;
13952}
13953unsafe extern "C" {
13954    pub fn snd_seq_query_subscribe_get_index(
13955        info: *const snd_seq_query_subscribe_t,
13956    ) -> ::core::ffi::c_int;
13957}
13958unsafe extern "C" {
13959    pub fn snd_seq_query_subscribe_get_num_subs(
13960        info: *const snd_seq_query_subscribe_t,
13961    ) -> ::core::ffi::c_int;
13962}
13963unsafe extern "C" {
13964    pub fn snd_seq_query_subscribe_get_addr(
13965        info: *const snd_seq_query_subscribe_t,
13966    ) -> *const snd_seq_addr_t;
13967}
13968unsafe extern "C" {
13969    pub fn snd_seq_query_subscribe_get_queue(
13970        info: *const snd_seq_query_subscribe_t,
13971    ) -> ::core::ffi::c_int;
13972}
13973unsafe extern "C" {
13974    pub fn snd_seq_query_subscribe_get_exclusive(
13975        info: *const snd_seq_query_subscribe_t,
13976    ) -> ::core::ffi::c_int;
13977}
13978unsafe extern "C" {
13979    pub fn snd_seq_query_subscribe_get_time_update(
13980        info: *const snd_seq_query_subscribe_t,
13981    ) -> ::core::ffi::c_int;
13982}
13983unsafe extern "C" {
13984    pub fn snd_seq_query_subscribe_get_time_real(
13985        info: *const snd_seq_query_subscribe_t,
13986    ) -> ::core::ffi::c_int;
13987}
13988unsafe extern "C" {
13989    pub fn snd_seq_query_subscribe_set_client(
13990        info: *mut snd_seq_query_subscribe_t,
13991        client: ::core::ffi::c_int,
13992    );
13993}
13994unsafe extern "C" {
13995    pub fn snd_seq_query_subscribe_set_port(
13996        info: *mut snd_seq_query_subscribe_t,
13997        port: ::core::ffi::c_int,
13998    );
13999}
14000unsafe extern "C" {
14001    pub fn snd_seq_query_subscribe_set_root(
14002        info: *mut snd_seq_query_subscribe_t,
14003        addr: *const snd_seq_addr_t,
14004    );
14005}
14006unsafe extern "C" {
14007    pub fn snd_seq_query_subscribe_set_type(
14008        info: *mut snd_seq_query_subscribe_t,
14009        type_: snd_seq_query_subs_type_t,
14010    );
14011}
14012unsafe extern "C" {
14013    pub fn snd_seq_query_subscribe_set_index(
14014        info: *mut snd_seq_query_subscribe_t,
14015        _index: ::core::ffi::c_int,
14016    );
14017}
14018unsafe extern "C" {
14019    pub fn snd_seq_query_port_subscribers(
14020        seq: *mut snd_seq_t,
14021        subs: *mut snd_seq_query_subscribe_t,
14022    ) -> ::core::ffi::c_int;
14023}
14024#[repr(C)]
14025#[derive(Debug, Copy, Clone)]
14026pub struct _snd_seq_queue_info {
14027    _unused: [u8; 0],
14028}
14029pub type snd_seq_queue_info_t = _snd_seq_queue_info;
14030#[repr(C)]
14031#[derive(Debug, Copy, Clone)]
14032pub struct _snd_seq_queue_status {
14033    _unused: [u8; 0],
14034}
14035pub type snd_seq_queue_status_t = _snd_seq_queue_status;
14036#[repr(C)]
14037#[derive(Debug, Copy, Clone)]
14038pub struct _snd_seq_queue_tempo {
14039    _unused: [u8; 0],
14040}
14041pub type snd_seq_queue_tempo_t = _snd_seq_queue_tempo;
14042#[repr(C)]
14043#[derive(Debug, Copy, Clone)]
14044pub struct _snd_seq_queue_timer {
14045    _unused: [u8; 0],
14046}
14047pub type snd_seq_queue_timer_t = _snd_seq_queue_timer;
14048unsafe extern "C" {
14049    pub fn snd_seq_queue_info_sizeof() -> usize;
14050}
14051unsafe extern "C" {
14052    pub fn snd_seq_queue_info_malloc(ptr: *mut *mut snd_seq_queue_info_t) -> ::core::ffi::c_int;
14053}
14054unsafe extern "C" {
14055    pub fn snd_seq_queue_info_free(ptr: *mut snd_seq_queue_info_t);
14056}
14057unsafe extern "C" {
14058    pub fn snd_seq_queue_info_copy(
14059        dst: *mut snd_seq_queue_info_t,
14060        src: *const snd_seq_queue_info_t,
14061    );
14062}
14063unsafe extern "C" {
14064    pub fn snd_seq_queue_info_get_queue(info: *const snd_seq_queue_info_t) -> ::core::ffi::c_int;
14065}
14066unsafe extern "C" {
14067    pub fn snd_seq_queue_info_get_name(
14068        info: *const snd_seq_queue_info_t,
14069    ) -> *const ::core::ffi::c_char;
14070}
14071unsafe extern "C" {
14072    pub fn snd_seq_queue_info_get_owner(info: *const snd_seq_queue_info_t) -> ::core::ffi::c_int;
14073}
14074unsafe extern "C" {
14075    pub fn snd_seq_queue_info_get_locked(info: *const snd_seq_queue_info_t) -> ::core::ffi::c_int;
14076}
14077unsafe extern "C" {
14078    pub fn snd_seq_queue_info_get_flags(info: *const snd_seq_queue_info_t) -> ::core::ffi::c_uint;
14079}
14080unsafe extern "C" {
14081    pub fn snd_seq_queue_info_set_name(
14082        info: *mut snd_seq_queue_info_t,
14083        name: *const ::core::ffi::c_char,
14084    );
14085}
14086unsafe extern "C" {
14087    pub fn snd_seq_queue_info_set_owner(info: *mut snd_seq_queue_info_t, owner: ::core::ffi::c_int);
14088}
14089unsafe extern "C" {
14090    pub fn snd_seq_queue_info_set_locked(
14091        info: *mut snd_seq_queue_info_t,
14092        locked: ::core::ffi::c_int,
14093    );
14094}
14095unsafe extern "C" {
14096    pub fn snd_seq_queue_info_set_flags(
14097        info: *mut snd_seq_queue_info_t,
14098        flags: ::core::ffi::c_uint,
14099    );
14100}
14101unsafe extern "C" {
14102    pub fn snd_seq_create_queue(
14103        seq: *mut snd_seq_t,
14104        info: *mut snd_seq_queue_info_t,
14105    ) -> ::core::ffi::c_int;
14106}
14107unsafe extern "C" {
14108    pub fn snd_seq_alloc_named_queue(
14109        seq: *mut snd_seq_t,
14110        name: *const ::core::ffi::c_char,
14111    ) -> ::core::ffi::c_int;
14112}
14113unsafe extern "C" {
14114    pub fn snd_seq_alloc_queue(handle: *mut snd_seq_t) -> ::core::ffi::c_int;
14115}
14116unsafe extern "C" {
14117    pub fn snd_seq_free_queue(handle: *mut snd_seq_t, q: ::core::ffi::c_int) -> ::core::ffi::c_int;
14118}
14119unsafe extern "C" {
14120    pub fn snd_seq_get_queue_info(
14121        seq: *mut snd_seq_t,
14122        q: ::core::ffi::c_int,
14123        info: *mut snd_seq_queue_info_t,
14124    ) -> ::core::ffi::c_int;
14125}
14126unsafe extern "C" {
14127    pub fn snd_seq_set_queue_info(
14128        seq: *mut snd_seq_t,
14129        q: ::core::ffi::c_int,
14130        info: *mut snd_seq_queue_info_t,
14131    ) -> ::core::ffi::c_int;
14132}
14133unsafe extern "C" {
14134    pub fn snd_seq_query_named_queue(
14135        seq: *mut snd_seq_t,
14136        name: *const ::core::ffi::c_char,
14137    ) -> ::core::ffi::c_int;
14138}
14139unsafe extern "C" {
14140    pub fn snd_seq_get_queue_usage(
14141        handle: *mut snd_seq_t,
14142        q: ::core::ffi::c_int,
14143    ) -> ::core::ffi::c_int;
14144}
14145unsafe extern "C" {
14146    pub fn snd_seq_set_queue_usage(
14147        handle: *mut snd_seq_t,
14148        q: ::core::ffi::c_int,
14149        used: ::core::ffi::c_int,
14150    ) -> ::core::ffi::c_int;
14151}
14152unsafe extern "C" {
14153    pub fn snd_seq_queue_status_sizeof() -> usize;
14154}
14155unsafe extern "C" {
14156    pub fn snd_seq_queue_status_malloc(ptr: *mut *mut snd_seq_queue_status_t)
14157    -> ::core::ffi::c_int;
14158}
14159unsafe extern "C" {
14160    pub fn snd_seq_queue_status_free(ptr: *mut snd_seq_queue_status_t);
14161}
14162unsafe extern "C" {
14163    pub fn snd_seq_queue_status_copy(
14164        dst: *mut snd_seq_queue_status_t,
14165        src: *const snd_seq_queue_status_t,
14166    );
14167}
14168unsafe extern "C" {
14169    pub fn snd_seq_queue_status_get_queue(
14170        info: *const snd_seq_queue_status_t,
14171    ) -> ::core::ffi::c_int;
14172}
14173unsafe extern "C" {
14174    pub fn snd_seq_queue_status_get_events(
14175        info: *const snd_seq_queue_status_t,
14176    ) -> ::core::ffi::c_int;
14177}
14178unsafe extern "C" {
14179    pub fn snd_seq_queue_status_get_tick_time(
14180        info: *const snd_seq_queue_status_t,
14181    ) -> snd_seq_tick_time_t;
14182}
14183unsafe extern "C" {
14184    pub fn snd_seq_queue_status_get_real_time(
14185        info: *const snd_seq_queue_status_t,
14186    ) -> *const snd_seq_real_time_t;
14187}
14188unsafe extern "C" {
14189    pub fn snd_seq_queue_status_get_status(
14190        info: *const snd_seq_queue_status_t,
14191    ) -> ::core::ffi::c_uint;
14192}
14193unsafe extern "C" {
14194    pub fn snd_seq_get_queue_status(
14195        handle: *mut snd_seq_t,
14196        q: ::core::ffi::c_int,
14197        status: *mut snd_seq_queue_status_t,
14198    ) -> ::core::ffi::c_int;
14199}
14200unsafe extern "C" {
14201    pub fn snd_seq_queue_tempo_sizeof() -> usize;
14202}
14203unsafe extern "C" {
14204    pub fn snd_seq_queue_tempo_malloc(ptr: *mut *mut snd_seq_queue_tempo_t) -> ::core::ffi::c_int;
14205}
14206unsafe extern "C" {
14207    pub fn snd_seq_queue_tempo_free(ptr: *mut snd_seq_queue_tempo_t);
14208}
14209unsafe extern "C" {
14210    pub fn snd_seq_queue_tempo_copy(
14211        dst: *mut snd_seq_queue_tempo_t,
14212        src: *const snd_seq_queue_tempo_t,
14213    );
14214}
14215unsafe extern "C" {
14216    pub fn snd_seq_queue_tempo_get_queue(info: *const snd_seq_queue_tempo_t) -> ::core::ffi::c_int;
14217}
14218unsafe extern "C" {
14219    pub fn snd_seq_queue_tempo_get_tempo(info: *const snd_seq_queue_tempo_t)
14220    -> ::core::ffi::c_uint;
14221}
14222unsafe extern "C" {
14223    pub fn snd_seq_queue_tempo_get_ppq(info: *const snd_seq_queue_tempo_t) -> ::core::ffi::c_int;
14224}
14225unsafe extern "C" {
14226    pub fn snd_seq_queue_tempo_get_skew(info: *const snd_seq_queue_tempo_t) -> ::core::ffi::c_uint;
14227}
14228unsafe extern "C" {
14229    pub fn snd_seq_queue_tempo_get_skew_base(
14230        info: *const snd_seq_queue_tempo_t,
14231    ) -> ::core::ffi::c_uint;
14232}
14233unsafe extern "C" {
14234    pub fn snd_seq_queue_tempo_get_tempo_base(
14235        info: *const snd_seq_queue_tempo_t,
14236    ) -> ::core::ffi::c_uint;
14237}
14238unsafe extern "C" {
14239    pub fn snd_seq_queue_tempo_set_tempo(
14240        info: *mut snd_seq_queue_tempo_t,
14241        tempo: ::core::ffi::c_uint,
14242    );
14243}
14244unsafe extern "C" {
14245    pub fn snd_seq_queue_tempo_set_ppq(info: *mut snd_seq_queue_tempo_t, ppq: ::core::ffi::c_int);
14246}
14247unsafe extern "C" {
14248    pub fn snd_seq_queue_tempo_set_skew(
14249        info: *mut snd_seq_queue_tempo_t,
14250        skew: ::core::ffi::c_uint,
14251    );
14252}
14253unsafe extern "C" {
14254    pub fn snd_seq_queue_tempo_set_skew_base(
14255        info: *mut snd_seq_queue_tempo_t,
14256        base: ::core::ffi::c_uint,
14257    );
14258}
14259unsafe extern "C" {
14260    pub fn snd_seq_queue_tempo_set_tempo_base(
14261        info: *mut snd_seq_queue_tempo_t,
14262        tempo_base: ::core::ffi::c_uint,
14263    );
14264}
14265unsafe extern "C" {
14266    pub fn snd_seq_get_queue_tempo(
14267        handle: *mut snd_seq_t,
14268        q: ::core::ffi::c_int,
14269        tempo: *mut snd_seq_queue_tempo_t,
14270    ) -> ::core::ffi::c_int;
14271}
14272unsafe extern "C" {
14273    pub fn snd_seq_set_queue_tempo(
14274        handle: *mut snd_seq_t,
14275        q: ::core::ffi::c_int,
14276        tempo: *mut snd_seq_queue_tempo_t,
14277    ) -> ::core::ffi::c_int;
14278}
14279unsafe extern "C" {
14280    pub fn snd_seq_has_queue_tempo_base(handle: *mut snd_seq_t) -> ::core::ffi::c_int;
14281}
14282pub const SND_SEQ_TIMER_ALSA: snd_seq_queue_timer_type_t = 0;
14283pub const SND_SEQ_TIMER_MIDI_CLOCK: snd_seq_queue_timer_type_t = 1;
14284pub const SND_SEQ_TIMER_MIDI_TICK: snd_seq_queue_timer_type_t = 2;
14285pub type snd_seq_queue_timer_type_t = ::core::ffi::c_uint;
14286unsafe extern "C" {
14287    pub fn snd_seq_queue_timer_sizeof() -> usize;
14288}
14289unsafe extern "C" {
14290    pub fn snd_seq_queue_timer_malloc(ptr: *mut *mut snd_seq_queue_timer_t) -> ::core::ffi::c_int;
14291}
14292unsafe extern "C" {
14293    pub fn snd_seq_queue_timer_free(ptr: *mut snd_seq_queue_timer_t);
14294}
14295unsafe extern "C" {
14296    pub fn snd_seq_queue_timer_copy(
14297        dst: *mut snd_seq_queue_timer_t,
14298        src: *const snd_seq_queue_timer_t,
14299    );
14300}
14301unsafe extern "C" {
14302    pub fn snd_seq_queue_timer_get_queue(info: *const snd_seq_queue_timer_t) -> ::core::ffi::c_int;
14303}
14304unsafe extern "C" {
14305    pub fn snd_seq_queue_timer_get_type(
14306        info: *const snd_seq_queue_timer_t,
14307    ) -> snd_seq_queue_timer_type_t;
14308}
14309unsafe extern "C" {
14310    pub fn snd_seq_queue_timer_get_id(info: *const snd_seq_queue_timer_t) -> *const snd_timer_id_t;
14311}
14312unsafe extern "C" {
14313    pub fn snd_seq_queue_timer_get_resolution(
14314        info: *const snd_seq_queue_timer_t,
14315    ) -> ::core::ffi::c_uint;
14316}
14317unsafe extern "C" {
14318    pub fn snd_seq_queue_timer_set_type(
14319        info: *mut snd_seq_queue_timer_t,
14320        type_: snd_seq_queue_timer_type_t,
14321    );
14322}
14323unsafe extern "C" {
14324    pub fn snd_seq_queue_timer_set_id(info: *mut snd_seq_queue_timer_t, id: *const snd_timer_id_t);
14325}
14326unsafe extern "C" {
14327    pub fn snd_seq_queue_timer_set_resolution(
14328        info: *mut snd_seq_queue_timer_t,
14329        resolution: ::core::ffi::c_uint,
14330    );
14331}
14332unsafe extern "C" {
14333    pub fn snd_seq_get_queue_timer(
14334        handle: *mut snd_seq_t,
14335        q: ::core::ffi::c_int,
14336        timer: *mut snd_seq_queue_timer_t,
14337    ) -> ::core::ffi::c_int;
14338}
14339unsafe extern "C" {
14340    pub fn snd_seq_set_queue_timer(
14341        handle: *mut snd_seq_t,
14342        q: ::core::ffi::c_int,
14343        timer: *mut snd_seq_queue_timer_t,
14344    ) -> ::core::ffi::c_int;
14345}
14346unsafe extern "C" {
14347    pub fn snd_seq_free_event(ev: *mut snd_seq_event_t) -> ::core::ffi::c_int;
14348}
14349unsafe extern "C" {
14350    pub fn snd_seq_event_length(ev: *mut snd_seq_event_t) -> isize;
14351}
14352unsafe extern "C" {
14353    pub fn snd_seq_event_output(
14354        handle: *mut snd_seq_t,
14355        ev: *mut snd_seq_event_t,
14356    ) -> ::core::ffi::c_int;
14357}
14358unsafe extern "C" {
14359    pub fn snd_seq_event_output_buffer(
14360        handle: *mut snd_seq_t,
14361        ev: *mut snd_seq_event_t,
14362    ) -> ::core::ffi::c_int;
14363}
14364unsafe extern "C" {
14365    pub fn snd_seq_event_output_direct(
14366        handle: *mut snd_seq_t,
14367        ev: *mut snd_seq_event_t,
14368    ) -> ::core::ffi::c_int;
14369}
14370unsafe extern "C" {
14371    pub fn snd_seq_event_input(
14372        handle: *mut snd_seq_t,
14373        ev: *mut *mut snd_seq_event_t,
14374    ) -> ::core::ffi::c_int;
14375}
14376unsafe extern "C" {
14377    pub fn snd_seq_event_input_pending(
14378        seq: *mut snd_seq_t,
14379        fetch_sequencer: ::core::ffi::c_int,
14380    ) -> ::core::ffi::c_int;
14381}
14382unsafe extern "C" {
14383    pub fn snd_seq_drain_output(handle: *mut snd_seq_t) -> ::core::ffi::c_int;
14384}
14385unsafe extern "C" {
14386    pub fn snd_seq_event_output_pending(seq: *mut snd_seq_t) -> ::core::ffi::c_int;
14387}
14388unsafe extern "C" {
14389    pub fn snd_seq_extract_output(
14390        handle: *mut snd_seq_t,
14391        ev: *mut *mut snd_seq_event_t,
14392    ) -> ::core::ffi::c_int;
14393}
14394unsafe extern "C" {
14395    pub fn snd_seq_drop_output(handle: *mut snd_seq_t) -> ::core::ffi::c_int;
14396}
14397unsafe extern "C" {
14398    pub fn snd_seq_drop_output_buffer(handle: *mut snd_seq_t) -> ::core::ffi::c_int;
14399}
14400unsafe extern "C" {
14401    pub fn snd_seq_drop_input(handle: *mut snd_seq_t) -> ::core::ffi::c_int;
14402}
14403unsafe extern "C" {
14404    pub fn snd_seq_drop_input_buffer(handle: *mut snd_seq_t) -> ::core::ffi::c_int;
14405}
14406#[repr(C)]
14407#[derive(Debug, Copy, Clone)]
14408pub struct _snd_seq_remove_events {
14409    _unused: [u8; 0],
14410}
14411pub type snd_seq_remove_events_t = _snd_seq_remove_events;
14412unsafe extern "C" {
14413    pub fn snd_seq_remove_events_sizeof() -> usize;
14414}
14415unsafe extern "C" {
14416    pub fn snd_seq_remove_events_malloc(
14417        ptr: *mut *mut snd_seq_remove_events_t,
14418    ) -> ::core::ffi::c_int;
14419}
14420unsafe extern "C" {
14421    pub fn snd_seq_remove_events_free(ptr: *mut snd_seq_remove_events_t);
14422}
14423unsafe extern "C" {
14424    pub fn snd_seq_remove_events_copy(
14425        dst: *mut snd_seq_remove_events_t,
14426        src: *const snd_seq_remove_events_t,
14427    );
14428}
14429unsafe extern "C" {
14430    pub fn snd_seq_remove_events_get_condition(
14431        info: *const snd_seq_remove_events_t,
14432    ) -> ::core::ffi::c_uint;
14433}
14434unsafe extern "C" {
14435    pub fn snd_seq_remove_events_get_queue(
14436        info: *const snd_seq_remove_events_t,
14437    ) -> ::core::ffi::c_int;
14438}
14439unsafe extern "C" {
14440    pub fn snd_seq_remove_events_get_time(
14441        info: *const snd_seq_remove_events_t,
14442    ) -> *const snd_seq_timestamp_t;
14443}
14444unsafe extern "C" {
14445    pub fn snd_seq_remove_events_get_dest(
14446        info: *const snd_seq_remove_events_t,
14447    ) -> *const snd_seq_addr_t;
14448}
14449unsafe extern "C" {
14450    pub fn snd_seq_remove_events_get_channel(
14451        info: *const snd_seq_remove_events_t,
14452    ) -> ::core::ffi::c_int;
14453}
14454unsafe extern "C" {
14455    pub fn snd_seq_remove_events_get_event_type(
14456        info: *const snd_seq_remove_events_t,
14457    ) -> ::core::ffi::c_int;
14458}
14459unsafe extern "C" {
14460    pub fn snd_seq_remove_events_get_tag(
14461        info: *const snd_seq_remove_events_t,
14462    ) -> ::core::ffi::c_int;
14463}
14464unsafe extern "C" {
14465    pub fn snd_seq_remove_events_set_condition(
14466        info: *mut snd_seq_remove_events_t,
14467        flags: ::core::ffi::c_uint,
14468    );
14469}
14470unsafe extern "C" {
14471    pub fn snd_seq_remove_events_set_queue(
14472        info: *mut snd_seq_remove_events_t,
14473        queue: ::core::ffi::c_int,
14474    );
14475}
14476unsafe extern "C" {
14477    pub fn snd_seq_remove_events_set_time(
14478        info: *mut snd_seq_remove_events_t,
14479        time: *const snd_seq_timestamp_t,
14480    );
14481}
14482unsafe extern "C" {
14483    pub fn snd_seq_remove_events_set_dest(
14484        info: *mut snd_seq_remove_events_t,
14485        addr: *const snd_seq_addr_t,
14486    );
14487}
14488unsafe extern "C" {
14489    pub fn snd_seq_remove_events_set_channel(
14490        info: *mut snd_seq_remove_events_t,
14491        channel: ::core::ffi::c_int,
14492    );
14493}
14494unsafe extern "C" {
14495    pub fn snd_seq_remove_events_set_event_type(
14496        info: *mut snd_seq_remove_events_t,
14497        type_: ::core::ffi::c_int,
14498    );
14499}
14500unsafe extern "C" {
14501    pub fn snd_seq_remove_events_set_tag(
14502        info: *mut snd_seq_remove_events_t,
14503        tag: ::core::ffi::c_int,
14504    );
14505}
14506unsafe extern "C" {
14507    pub fn snd_seq_remove_events(
14508        handle: *mut snd_seq_t,
14509        info: *mut snd_seq_remove_events_t,
14510    ) -> ::core::ffi::c_int;
14511}
14512unsafe extern "C" {
14513    pub fn snd_seq_ump_event_output(
14514        seq: *mut snd_seq_t,
14515        ev: *mut snd_seq_ump_event_t,
14516    ) -> ::core::ffi::c_int;
14517}
14518unsafe extern "C" {
14519    pub fn snd_seq_ump_event_output_buffer(
14520        seq: *mut snd_seq_t,
14521        ev: *mut snd_seq_ump_event_t,
14522    ) -> ::core::ffi::c_int;
14523}
14524unsafe extern "C" {
14525    pub fn snd_seq_ump_extract_output(
14526        seq: *mut snd_seq_t,
14527        ev_res: *mut *mut snd_seq_ump_event_t,
14528    ) -> ::core::ffi::c_int;
14529}
14530unsafe extern "C" {
14531    pub fn snd_seq_ump_event_output_direct(
14532        seq: *mut snd_seq_t,
14533        ev: *mut snd_seq_ump_event_t,
14534    ) -> ::core::ffi::c_int;
14535}
14536unsafe extern "C" {
14537    pub fn snd_seq_ump_event_input(
14538        seq: *mut snd_seq_t,
14539        ev: *mut *mut snd_seq_ump_event_t,
14540    ) -> ::core::ffi::c_int;
14541}
14542unsafe extern "C" {
14543    pub fn snd_seq_set_bit(nr: ::core::ffi::c_int, array: *mut ::core::ffi::c_void);
14544}
14545unsafe extern "C" {
14546    pub fn snd_seq_unset_bit(nr: ::core::ffi::c_int, array: *mut ::core::ffi::c_void);
14547}
14548unsafe extern "C" {
14549    pub fn snd_seq_change_bit(
14550        nr: ::core::ffi::c_int,
14551        array: *mut ::core::ffi::c_void,
14552    ) -> ::core::ffi::c_int;
14553}
14554unsafe extern "C" {
14555    pub fn snd_seq_get_bit(
14556        nr: ::core::ffi::c_int,
14557        array: *mut ::core::ffi::c_void,
14558    ) -> ::core::ffi::c_int;
14559}
14560unsafe extern "C" {
14561    pub fn snd_seq_control_queue(
14562        seq: *mut snd_seq_t,
14563        q: ::core::ffi::c_int,
14564        type_: ::core::ffi::c_int,
14565        value: ::core::ffi::c_int,
14566        ev: *mut snd_seq_event_t,
14567    ) -> ::core::ffi::c_int;
14568}
14569unsafe extern "C" {
14570    pub fn snd_seq_create_simple_port(
14571        seq: *mut snd_seq_t,
14572        name: *const ::core::ffi::c_char,
14573        caps: ::core::ffi::c_uint,
14574        type_: ::core::ffi::c_uint,
14575    ) -> ::core::ffi::c_int;
14576}
14577unsafe extern "C" {
14578    pub fn snd_seq_delete_simple_port(
14579        seq: *mut snd_seq_t,
14580        port: ::core::ffi::c_int,
14581    ) -> ::core::ffi::c_int;
14582}
14583unsafe extern "C" {
14584    pub fn snd_seq_connect_from(
14585        seq: *mut snd_seq_t,
14586        my_port: ::core::ffi::c_int,
14587        src_client: ::core::ffi::c_int,
14588        src_port: ::core::ffi::c_int,
14589    ) -> ::core::ffi::c_int;
14590}
14591unsafe extern "C" {
14592    pub fn snd_seq_connect_to(
14593        seq: *mut snd_seq_t,
14594        my_port: ::core::ffi::c_int,
14595        dest_client: ::core::ffi::c_int,
14596        dest_port: ::core::ffi::c_int,
14597    ) -> ::core::ffi::c_int;
14598}
14599unsafe extern "C" {
14600    pub fn snd_seq_disconnect_from(
14601        seq: *mut snd_seq_t,
14602        my_port: ::core::ffi::c_int,
14603        src_client: ::core::ffi::c_int,
14604        src_port: ::core::ffi::c_int,
14605    ) -> ::core::ffi::c_int;
14606}
14607unsafe extern "C" {
14608    pub fn snd_seq_disconnect_to(
14609        seq: *mut snd_seq_t,
14610        my_port: ::core::ffi::c_int,
14611        dest_client: ::core::ffi::c_int,
14612        dest_port: ::core::ffi::c_int,
14613    ) -> ::core::ffi::c_int;
14614}
14615unsafe extern "C" {
14616    pub fn snd_seq_set_client_name(
14617        seq: *mut snd_seq_t,
14618        name: *const ::core::ffi::c_char,
14619    ) -> ::core::ffi::c_int;
14620}
14621unsafe extern "C" {
14622    pub fn snd_seq_set_client_event_filter(
14623        seq: *mut snd_seq_t,
14624        event_type: ::core::ffi::c_int,
14625    ) -> ::core::ffi::c_int;
14626}
14627unsafe extern "C" {
14628    pub fn snd_seq_set_client_midi_version(
14629        seq: *mut snd_seq_t,
14630        midi_version: ::core::ffi::c_int,
14631    ) -> ::core::ffi::c_int;
14632}
14633unsafe extern "C" {
14634    pub fn snd_seq_set_client_ump_conversion(
14635        seq: *mut snd_seq_t,
14636        enable: ::core::ffi::c_int,
14637    ) -> ::core::ffi::c_int;
14638}
14639unsafe extern "C" {
14640    pub fn snd_seq_set_client_pool_output(seq: *mut snd_seq_t, size: usize) -> ::core::ffi::c_int;
14641}
14642unsafe extern "C" {
14643    pub fn snd_seq_set_client_pool_output_room(
14644        seq: *mut snd_seq_t,
14645        size: usize,
14646    ) -> ::core::ffi::c_int;
14647}
14648unsafe extern "C" {
14649    pub fn snd_seq_set_client_pool_input(seq: *mut snd_seq_t, size: usize) -> ::core::ffi::c_int;
14650}
14651unsafe extern "C" {
14652    pub fn snd_seq_sync_output_queue(seq: *mut snd_seq_t) -> ::core::ffi::c_int;
14653}
14654unsafe extern "C" {
14655    pub fn snd_seq_parse_address(
14656        seq: *mut snd_seq_t,
14657        addr: *mut snd_seq_addr_t,
14658        str_: *const ::core::ffi::c_char,
14659    ) -> ::core::ffi::c_int;
14660}
14661unsafe extern "C" {
14662    pub fn snd_seq_reset_pool_output(seq: *mut snd_seq_t) -> ::core::ffi::c_int;
14663}
14664unsafe extern "C" {
14665    pub fn snd_seq_reset_pool_input(seq: *mut snd_seq_t) -> ::core::ffi::c_int;
14666}
14667unsafe extern "C" {
14668    pub fn snd_seq_create_ump_endpoint(
14669        seq: *mut snd_seq_t,
14670        info: *const snd_ump_endpoint_info_t,
14671        num_groups: ::core::ffi::c_uint,
14672    ) -> ::core::ffi::c_int;
14673}
14674unsafe extern "C" {
14675    pub fn snd_seq_create_ump_block(
14676        seq: *mut snd_seq_t,
14677        blkid: ::core::ffi::c_int,
14678        info: *const snd_ump_block_info_t,
14679    ) -> ::core::ffi::c_int;
14680}
14681#[repr(C)]
14682#[derive(Debug, Copy, Clone)]
14683pub struct snd_midi_event {
14684    _unused: [u8; 0],
14685}
14686pub type snd_midi_event_t = snd_midi_event;
14687unsafe extern "C" {
14688    pub fn snd_midi_event_new(
14689        bufsize: usize,
14690        rdev: *mut *mut snd_midi_event_t,
14691    ) -> ::core::ffi::c_int;
14692}
14693unsafe extern "C" {
14694    pub fn snd_midi_event_resize_buffer(
14695        dev: *mut snd_midi_event_t,
14696        bufsize: usize,
14697    ) -> ::core::ffi::c_int;
14698}
14699unsafe extern "C" {
14700    pub fn snd_midi_event_free(dev: *mut snd_midi_event_t);
14701}
14702unsafe extern "C" {
14703    pub fn snd_midi_event_init(dev: *mut snd_midi_event_t);
14704}
14705unsafe extern "C" {
14706    pub fn snd_midi_event_reset_encode(dev: *mut snd_midi_event_t);
14707}
14708unsafe extern "C" {
14709    pub fn snd_midi_event_reset_decode(dev: *mut snd_midi_event_t);
14710}
14711unsafe extern "C" {
14712    pub fn snd_midi_event_no_status(dev: *mut snd_midi_event_t, on: ::core::ffi::c_int);
14713}
14714unsafe extern "C" {
14715    pub fn snd_midi_event_encode(
14716        dev: *mut snd_midi_event_t,
14717        buf: *const ::core::ffi::c_uchar,
14718        count: ::core::ffi::c_long,
14719        ev: *mut snd_seq_event_t,
14720    ) -> ::core::ffi::c_long;
14721}
14722unsafe extern "C" {
14723    pub fn snd_midi_event_encode_byte(
14724        dev: *mut snd_midi_event_t,
14725        c: ::core::ffi::c_int,
14726        ev: *mut snd_seq_event_t,
14727    ) -> ::core::ffi::c_int;
14728}
14729unsafe extern "C" {
14730    pub fn snd_midi_event_decode(
14731        dev: *mut snd_midi_event_t,
14732        buf: *mut ::core::ffi::c_uchar,
14733        count: ::core::ffi::c_long,
14734        ev: *const snd_seq_event_t,
14735    ) -> ::core::ffi::c_long;
14736}
14737pub type __builtin_va_list = [__va_list_tag; 1usize];
14738#[repr(C)]
14739#[derive(Debug, Copy, Clone)]
14740pub struct __va_list_tag {
14741    pub gp_offset: ::core::ffi::c_uint,
14742    pub fp_offset: ::core::ffi::c_uint,
14743    pub overflow_arg_area: *mut ::core::ffi::c_void,
14744    pub reg_save_area: *mut ::core::ffi::c_void,
14745}