1#[repr(C)]
4#[derive(Copy, Clone, Debug, Default, Eq, Hash, Ord, PartialEq, PartialOrd)]
5pub struct __BindgenBitfieldUnit<Storage, Align> {
6 storage: Storage,
7 align: [Align; 0],
8}
9impl<Storage, Align> __BindgenBitfieldUnit<Storage, Align> {
10 #[inline]
11 pub const fn new(storage: Storage) -> Self {
12 Self { storage, align: [] }
13 }
14}
15impl<Storage, Align> __BindgenBitfieldUnit<Storage, Align>
16where
17 Storage: AsRef<[u8]> + AsMut<[u8]>,
18{
19 #[inline]
20 pub fn get_bit(&self, index: usize) -> bool {
21 debug_assert!(index / 8 < self.storage.as_ref().len());
22 let byte_index = index / 8;
23 let byte = self.storage.as_ref()[byte_index];
24 let bit_index = if cfg!(target_endian = "big") {
25 7 - (index % 8)
26 } else {
27 index % 8
28 };
29 let mask = 1 << bit_index;
30 byte & mask == mask
31 }
32 #[inline]
33 pub fn set_bit(&mut self, index: usize, val: bool) {
34 debug_assert!(index / 8 < self.storage.as_ref().len());
35 let byte_index = index / 8;
36 let byte = &mut self.storage.as_mut()[byte_index];
37 let bit_index = if cfg!(target_endian = "big") {
38 7 - (index % 8)
39 } else {
40 index % 8
41 };
42 let mask = 1 << bit_index;
43 if val {
44 *byte |= mask;
45 } else {
46 *byte &= !mask;
47 }
48 }
49 #[inline]
50 pub fn get(&self, bit_offset: usize, bit_width: u8) -> u64 {
51 debug_assert!(bit_width <= 64);
52 debug_assert!(bit_offset / 8 < self.storage.as_ref().len());
53 debug_assert!((bit_offset + (bit_width as usize)) / 8 <= self.storage.as_ref().len());
54 let mut val = 0;
55 for i in 0..(bit_width as usize) {
56 if self.get_bit(i + bit_offset) {
57 let index = if cfg!(target_endian = "big") {
58 bit_width as usize - 1 - i
59 } else {
60 i
61 };
62 val |= 1 << index;
63 }
64 }
65 val
66 }
67 #[inline]
68 pub fn set(&mut self, bit_offset: usize, bit_width: u8, val: u64) {
69 debug_assert!(bit_width <= 64);
70 debug_assert!(bit_offset / 8 < self.storage.as_ref().len());
71 debug_assert!((bit_offset + (bit_width as usize)) / 8 <= self.storage.as_ref().len());
72 for i in 0..(bit_width as usize) {
73 let mask = 1 << i;
74 let val_bit_is_set = val & mask == mask;
75 let index = if cfg!(target_endian = "big") {
76 bit_width as usize - 1 - i
77 } else {
78 i
79 };
80 self.set_bit(index + bit_offset, val_bit_is_set);
81 }
82 }
83}
84#[repr(C)]
85#[derive(Default)]
86pub struct __IncompleteArrayField<T>(::std::marker::PhantomData<T>, [T; 0]);
87impl<T> __IncompleteArrayField<T> {
88 #[inline]
89 pub const fn new() -> Self {
90 __IncompleteArrayField(::std::marker::PhantomData, [])
91 }
92 #[inline]
93 pub fn as_ptr(&self) -> *const T {
94 self as *const _ as *const T
95 }
96 #[inline]
97 pub fn as_mut_ptr(&mut self) -> *mut T {
98 self as *mut _ as *mut T
99 }
100 #[inline]
101 pub unsafe fn as_slice(&self, len: usize) -> &[T] {
102 ::std::slice::from_raw_parts(self.as_ptr(), len)
103 }
104 #[inline]
105 pub unsafe fn as_mut_slice(&mut self, len: usize) -> &mut [T] {
106 ::std::slice::from_raw_parts_mut(self.as_mut_ptr(), len)
107 }
108}
109impl<T> ::std::fmt::Debug for __IncompleteArrayField<T> {
110 fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
111 fmt.write_str("__IncompleteArrayField")
112 }
113}
114extern "C" {
115 #[doc = " \\defgroup Global Global defines and functions"]
116 #[doc = " Global defines and functions."]
117 #[doc = " \\par"]
118 #[doc = " The ALSA library implementation uses these macros and functions."]
119 #[doc = " Most applications probably do not need them."]
120 #[doc = " \\{"]
121 pub fn snd_asoundlib_version() -> *const ::std::os::raw::c_char;
122}
123#[repr(C)]
124#[derive(Debug, Copy, Clone)]
125pub struct snd_dlsym_link {
126 pub next: *mut snd_dlsym_link,
127 pub dlsym_name: *const ::std::os::raw::c_char,
128 pub dlsym_ptr: *const ::std::os::raw::c_void,
129}
130extern "C" {
131 pub fn snd_dlpath(
132 path: *mut ::std::os::raw::c_char,
133 path_len: usize,
134 name: *const ::std::os::raw::c_char,
135 ) -> ::std::os::raw::c_int;
136}
137extern "C" {
138 pub fn snd_dlopen(
139 file: *const ::std::os::raw::c_char,
140 mode: ::std::os::raw::c_int,
141 errbuf: *mut ::std::os::raw::c_char,
142 errbuflen: usize,
143 ) -> *mut ::std::os::raw::c_void;
144}
145extern "C" {
146 pub fn snd_dlsym(
147 handle: *mut ::std::os::raw::c_void,
148 name: *const ::std::os::raw::c_char,
149 version: *const ::std::os::raw::c_char,
150 ) -> *mut ::std::os::raw::c_void;
151}
152extern "C" {
153 pub fn snd_dlclose(handle: *mut ::std::os::raw::c_void) -> ::std::os::raw::c_int;
154}
155#[repr(C)]
156#[derive(Debug, Copy, Clone)]
157pub struct _snd_async_handler {
158 _unused: [u8; 0],
159}
160#[doc = " \\brief Internal structure for an async notification client handler."]
161#[doc = ""]
162#[doc = " The ALSA library uses a pointer to this structure as a handle to an async"]
163#[doc = " notification object. Applications don't access its contents directly."]
164pub type snd_async_handler_t = _snd_async_handler;
165#[doc = " \\brief Async notification callback."]
166#[doc = ""]
167#[doc = " See the #snd_async_add_handler function for details."]
168pub type snd_async_callback_t =
169 ::std::option::Option<unsafe extern "C" fn(handler: *mut snd_async_handler_t)>;
170extern "C" {
171 pub fn snd_async_add_handler(
172 handler: *mut *mut snd_async_handler_t,
173 fd: ::std::os::raw::c_int,
174 callback: snd_async_callback_t,
175 private_data: *mut ::std::os::raw::c_void,
176 ) -> ::std::os::raw::c_int;
177}
178extern "C" {
179 pub fn snd_async_del_handler(handler: *mut snd_async_handler_t) -> ::std::os::raw::c_int;
180}
181extern "C" {
182 pub fn snd_async_handler_get_fd(handler: *mut snd_async_handler_t) -> ::std::os::raw::c_int;
183}
184extern "C" {
185 pub fn snd_async_handler_get_signo(handler: *mut snd_async_handler_t) -> ::std::os::raw::c_int;
186}
187extern "C" {
188 pub fn snd_async_handler_get_callback_private(
189 handler: *mut snd_async_handler_t,
190 ) -> *mut ::std::os::raw::c_void;
191}
192#[repr(C)]
193#[derive(Debug, Copy, Clone)]
194pub struct snd_shm_area {
195 _unused: [u8; 0],
196}
197extern "C" {
198 pub fn snd_shm_area_create(
199 shmid: ::std::os::raw::c_int,
200 ptr: *mut ::std::os::raw::c_void,
201 ) -> *mut snd_shm_area;
202}
203extern "C" {
204 pub fn snd_shm_area_share(area: *mut snd_shm_area) -> *mut snd_shm_area;
205}
206extern "C" {
207 pub fn snd_shm_area_destroy(area: *mut snd_shm_area) -> ::std::os::raw::c_int;
208}
209extern "C" {
210 pub fn snd_user_file(
211 file: *const ::std::os::raw::c_char,
212 result: *mut *mut ::std::os::raw::c_char,
213 ) -> ::std::os::raw::c_int;
214}
215#[doc = " Timestamp"]
216pub type snd_timestamp_t = timeval;
217#[doc = " Hi-res timestamp"]
218pub type snd_htimestamp_t = timespec;
219#[repr(C)]
220#[derive(Debug, Copy, Clone)]
221pub struct _snd_input {
222 _unused: [u8; 0],
223}
224#[doc = " \\brief Internal structure for an input object."]
225#[doc = ""]
226#[doc = " The ALSA library uses a pointer to this structure as a handle to an"]
227#[doc = " input object. Applications don't access its contents directly."]
228pub type snd_input_t = _snd_input;
229#[doc = " Input from a stdio stream."]
230pub const SND_INPUT_STDIO: _snd_input_type = 0;
231#[doc = " Input from a memory buffer."]
232pub const SND_INPUT_BUFFER: _snd_input_type = 1;
233#[doc = " Input type."]
234pub type _snd_input_type = u32;
235#[doc = " Input type."]
236pub use self::_snd_input_type as snd_input_type_t;
237extern "C" {
238 pub fn snd_input_stdio_open(
239 inputp: *mut *mut snd_input_t,
240 file: *const ::std::os::raw::c_char,
241 mode: *const ::std::os::raw::c_char,
242 ) -> ::std::os::raw::c_int;
243}
244extern "C" {
245 pub fn snd_input_stdio_attach(
246 inputp: *mut *mut snd_input_t,
247 fp: *mut FILE,
248 _close: ::std::os::raw::c_int,
249 ) -> ::std::os::raw::c_int;
250}
251extern "C" {
252 pub fn snd_input_buffer_open(
253 inputp: *mut *mut snd_input_t,
254 buffer: *const ::std::os::raw::c_char,
255 size: isize,
256 ) -> ::std::os::raw::c_int;
257}
258extern "C" {
259 pub fn snd_input_close(input: *mut snd_input_t) -> ::std::os::raw::c_int;
260}
261extern "C" {
262 pub fn snd_input_scanf(
263 input: *mut snd_input_t,
264 format: *const ::std::os::raw::c_char,
265 ...
266 ) -> ::std::os::raw::c_int;
267}
268extern "C" {
269 pub fn snd_input_gets(
270 input: *mut snd_input_t,
271 str: *mut ::std::os::raw::c_char,
272 size: usize,
273 ) -> *mut ::std::os::raw::c_char;
274}
275extern "C" {
276 pub fn snd_input_getc(input: *mut snd_input_t) -> ::std::os::raw::c_int;
277}
278extern "C" {
279 pub fn snd_input_ungetc(
280 input: *mut snd_input_t,
281 c: ::std::os::raw::c_int,
282 ) -> ::std::os::raw::c_int;
283}
284#[repr(C)]
285#[derive(Debug, Copy, Clone)]
286pub struct _snd_output {
287 _unused: [u8; 0],
288}
289#[doc = " \\brief Internal structure for an output object."]
290#[doc = ""]
291#[doc = " The ALSA library uses a pointer to this structure as a handle to an"]
292#[doc = " output object. Applications don't access its contents directly."]
293pub type snd_output_t = _snd_output;
294#[doc = " Output to a stdio stream."]
295pub const SND_OUTPUT_STDIO: _snd_output_type = 0;
296#[doc = " Output to a memory buffer."]
297pub const SND_OUTPUT_BUFFER: _snd_output_type = 1;
298#[doc = " Output type."]
299pub type _snd_output_type = u32;
300#[doc = " Output type."]
301pub use self::_snd_output_type as snd_output_type_t;
302extern "C" {
303 pub fn snd_output_stdio_open(
304 outputp: *mut *mut snd_output_t,
305 file: *const ::std::os::raw::c_char,
306 mode: *const ::std::os::raw::c_char,
307 ) -> ::std::os::raw::c_int;
308}
309extern "C" {
310 pub fn snd_output_stdio_attach(
311 outputp: *mut *mut snd_output_t,
312 fp: *mut FILE,
313 _close: ::std::os::raw::c_int,
314 ) -> ::std::os::raw::c_int;
315}
316extern "C" {
317 pub fn snd_output_buffer_open(outputp: *mut *mut snd_output_t) -> ::std::os::raw::c_int;
318}
319extern "C" {
320 pub fn snd_output_buffer_string(
321 output: *mut snd_output_t,
322 buf: *mut *mut ::std::os::raw::c_char,
323 ) -> usize;
324}
325extern "C" {
326 pub fn snd_output_close(output: *mut snd_output_t) -> ::std::os::raw::c_int;
327}
328extern "C" {
329 pub fn snd_output_printf(
330 output: *mut snd_output_t,
331 format: *const ::std::os::raw::c_char,
332 ...
333 ) -> ::std::os::raw::c_int;
334}
335extern "C" {
336 pub fn snd_output_vprintf(
337 output: *mut snd_output_t,
338 format: *const ::std::os::raw::c_char,
339 args: *mut __va_list_tag,
340 ) -> ::std::os::raw::c_int;
341}
342extern "C" {
343 pub fn snd_output_puts(
344 output: *mut snd_output_t,
345 str: *const ::std::os::raw::c_char,
346 ) -> ::std::os::raw::c_int;
347}
348extern "C" {
349 pub fn snd_output_putc(
350 output: *mut snd_output_t,
351 c: ::std::os::raw::c_int,
352 ) -> ::std::os::raw::c_int;
353}
354extern "C" {
355 pub fn snd_output_flush(output: *mut snd_output_t) -> ::std::os::raw::c_int;
356}
357extern "C" {
358 pub fn snd_strerror(errnum: ::std::os::raw::c_int) -> *const ::std::os::raw::c_char;
359}
360#[doc = " \\brief Error handler callback."]
361#[doc = " \\param file Source file name."]
362#[doc = " \\param line Line number."]
363#[doc = " \\param function Function name."]
364#[doc = " \\param err Value of \\c errno, or 0 if not relevant."]
365#[doc = " \\param fmt \\c printf(3) format."]
366#[doc = " \\param ... \\c printf(3) arguments."]
367#[doc = ""]
368#[doc = " A function of this type is called by the ALSA library when an error occurs."]
369#[doc = " This function usually shows the message on the screen, and/or logs it."]
370pub type snd_lib_error_handler_t = ::std::option::Option<
371 unsafe extern "C" fn(
372 file: *const ::std::os::raw::c_char,
373 line: ::std::os::raw::c_int,
374 function: *const ::std::os::raw::c_char,
375 err: ::std::os::raw::c_int,
376 fmt: *const ::std::os::raw::c_char,
377 ...
378 ),
379>;
380extern "C" {
381 pub fn snd_lib_error_set_handler(handler: snd_lib_error_handler_t) -> ::std::os::raw::c_int;
382}
383#[doc = " Local error handler function type"]
384pub type snd_local_error_handler_t = ::std::option::Option<
385 unsafe extern "C" fn(
386 file: *const ::std::os::raw::c_char,
387 line: ::std::os::raw::c_int,
388 func: *const ::std::os::raw::c_char,
389 err: ::std::os::raw::c_int,
390 fmt: *const ::std::os::raw::c_char,
391 arg: *mut __va_list_tag,
392 ),
393>;
394extern "C" {
395 pub fn snd_lib_error_set_local(func: snd_local_error_handler_t) -> snd_local_error_handler_t;
396}
397#[doc = " Integer number."]
398pub const SND_CONFIG_TYPE_INTEGER: _snd_config_type = 0;
399#[doc = " 64-bit integer number."]
400pub const SND_CONFIG_TYPE_INTEGER64: _snd_config_type = 1;
401#[doc = " Real number."]
402pub const SND_CONFIG_TYPE_REAL: _snd_config_type = 2;
403#[doc = " Character string."]
404pub const SND_CONFIG_TYPE_STRING: _snd_config_type = 3;
405#[doc = " Pointer (runtime only, cannot be saved)."]
406pub const SND_CONFIG_TYPE_POINTER: _snd_config_type = 4;
407#[doc = " Compound node."]
408pub const SND_CONFIG_TYPE_COMPOUND: _snd_config_type = 1024;
409#[doc = " \\brief Configuration node type."]
410pub type _snd_config_type = u32;
411#[doc = " \\brief Configuration node type."]
412pub use self::_snd_config_type as snd_config_type_t;
413#[repr(C)]
414#[derive(Debug, Copy, Clone)]
415pub struct _snd_config {
416 _unused: [u8; 0],
417}
418#[doc = " \\brief Internal structure for a configuration node object."]
419#[doc = ""]
420#[doc = " The ALSA library uses a pointer to this structure as a handle to a"]
421#[doc = " configuration node. Applications don't access its contents directly."]
422pub type snd_config_t = _snd_config;
423#[repr(C)]
424#[derive(Debug, Copy, Clone)]
425pub struct _snd_config_iterator {
426 _unused: [u8; 0],
427}
428#[doc = " \\brief Type for a configuration compound iterator."]
429#[doc = ""]
430#[doc = " The ALSA library uses this pointer type as a handle to a configuration"]
431#[doc = " compound iterator. Applications don't directly access the contents of"]
432#[doc = " the structure pointed to by this type."]
433pub type snd_config_iterator_t = *mut _snd_config_iterator;
434#[repr(C)]
435#[derive(Debug, Copy, Clone)]
436pub struct _snd_config_update {
437 _unused: [u8; 0],
438}
439#[doc = " \\brief Internal structure for a configuration private update object."]
440#[doc = ""]
441#[doc = " The ALSA library uses this structure to save private update information."]
442pub type snd_config_update_t = _snd_config_update;
443extern "C" {
444 pub fn snd_config_topdir() -> *const ::std::os::raw::c_char;
445}
446extern "C" {
447 pub fn snd_config_top(config: *mut *mut snd_config_t) -> ::std::os::raw::c_int;
448}
449extern "C" {
450 pub fn snd_config_load(
451 config: *mut snd_config_t,
452 in_: *mut snd_input_t,
453 ) -> ::std::os::raw::c_int;
454}
455extern "C" {
456 pub fn snd_config_load_override(
457 config: *mut snd_config_t,
458 in_: *mut snd_input_t,
459 ) -> ::std::os::raw::c_int;
460}
461extern "C" {
462 pub fn snd_config_save(
463 config: *mut snd_config_t,
464 out: *mut snd_output_t,
465 ) -> ::std::os::raw::c_int;
466}
467extern "C" {
468 pub fn snd_config_update() -> ::std::os::raw::c_int;
469}
470extern "C" {
471 pub fn snd_config_update_r(
472 top: *mut *mut snd_config_t,
473 update: *mut *mut snd_config_update_t,
474 path: *const ::std::os::raw::c_char,
475 ) -> ::std::os::raw::c_int;
476}
477extern "C" {
478 pub fn snd_config_update_free(update: *mut snd_config_update_t) -> ::std::os::raw::c_int;
479}
480extern "C" {
481 pub fn snd_config_update_free_global() -> ::std::os::raw::c_int;
482}
483extern "C" {
484 pub fn snd_config_update_ref(top: *mut *mut snd_config_t) -> ::std::os::raw::c_int;
485}
486extern "C" {
487 pub fn snd_config_ref(top: *mut snd_config_t);
488}
489extern "C" {
490 pub fn snd_config_unref(top: *mut snd_config_t);
491}
492extern "C" {
493 pub fn snd_config_search(
494 config: *mut snd_config_t,
495 key: *const ::std::os::raw::c_char,
496 result: *mut *mut snd_config_t,
497 ) -> ::std::os::raw::c_int;
498}
499extern "C" {
500 pub fn snd_config_searchv(
501 config: *mut snd_config_t,
502 result: *mut *mut snd_config_t,
503 ...
504 ) -> ::std::os::raw::c_int;
505}
506extern "C" {
507 pub fn snd_config_search_definition(
508 config: *mut snd_config_t,
509 base: *const ::std::os::raw::c_char,
510 key: *const ::std::os::raw::c_char,
511 result: *mut *mut snd_config_t,
512 ) -> ::std::os::raw::c_int;
513}
514extern "C" {
515 pub fn snd_config_expand(
516 config: *mut snd_config_t,
517 root: *mut snd_config_t,
518 args: *const ::std::os::raw::c_char,
519 private_data: *mut snd_config_t,
520 result: *mut *mut snd_config_t,
521 ) -> ::std::os::raw::c_int;
522}
523extern "C" {
524 pub fn snd_config_evaluate(
525 config: *mut snd_config_t,
526 root: *mut snd_config_t,
527 private_data: *mut snd_config_t,
528 result: *mut *mut snd_config_t,
529 ) -> ::std::os::raw::c_int;
530}
531extern "C" {
532 pub fn snd_config_add(
533 config: *mut snd_config_t,
534 child: *mut snd_config_t,
535 ) -> ::std::os::raw::c_int;
536}
537extern "C" {
538 pub fn snd_config_add_before(
539 before: *mut snd_config_t,
540 child: *mut snd_config_t,
541 ) -> ::std::os::raw::c_int;
542}
543extern "C" {
544 pub fn snd_config_add_after(
545 after: *mut snd_config_t,
546 child: *mut snd_config_t,
547 ) -> ::std::os::raw::c_int;
548}
549extern "C" {
550 pub fn snd_config_remove(config: *mut snd_config_t) -> ::std::os::raw::c_int;
551}
552extern "C" {
553 pub fn snd_config_delete(config: *mut snd_config_t) -> ::std::os::raw::c_int;
554}
555extern "C" {
556 pub fn snd_config_delete_compound_members(config: *const snd_config_t)
557 -> ::std::os::raw::c_int;
558}
559extern "C" {
560 pub fn snd_config_copy(
561 dst: *mut *mut snd_config_t,
562 src: *mut snd_config_t,
563 ) -> ::std::os::raw::c_int;
564}
565extern "C" {
566 pub fn snd_config_make(
567 config: *mut *mut snd_config_t,
568 key: *const ::std::os::raw::c_char,
569 type_: snd_config_type_t,
570 ) -> ::std::os::raw::c_int;
571}
572extern "C" {
573 pub fn snd_config_make_integer(
574 config: *mut *mut snd_config_t,
575 key: *const ::std::os::raw::c_char,
576 ) -> ::std::os::raw::c_int;
577}
578extern "C" {
579 pub fn snd_config_make_integer64(
580 config: *mut *mut snd_config_t,
581 key: *const ::std::os::raw::c_char,
582 ) -> ::std::os::raw::c_int;
583}
584extern "C" {
585 pub fn snd_config_make_real(
586 config: *mut *mut snd_config_t,
587 key: *const ::std::os::raw::c_char,
588 ) -> ::std::os::raw::c_int;
589}
590extern "C" {
591 pub fn snd_config_make_string(
592 config: *mut *mut snd_config_t,
593 key: *const ::std::os::raw::c_char,
594 ) -> ::std::os::raw::c_int;
595}
596extern "C" {
597 pub fn snd_config_make_pointer(
598 config: *mut *mut snd_config_t,
599 key: *const ::std::os::raw::c_char,
600 ) -> ::std::os::raw::c_int;
601}
602extern "C" {
603 pub fn snd_config_make_compound(
604 config: *mut *mut snd_config_t,
605 key: *const ::std::os::raw::c_char,
606 join: ::std::os::raw::c_int,
607 ) -> ::std::os::raw::c_int;
608}
609extern "C" {
610 pub fn snd_config_imake_integer(
611 config: *mut *mut snd_config_t,
612 key: *const ::std::os::raw::c_char,
613 value: ::std::os::raw::c_long,
614 ) -> ::std::os::raw::c_int;
615}
616extern "C" {
617 pub fn snd_config_imake_integer64(
618 config: *mut *mut snd_config_t,
619 key: *const ::std::os::raw::c_char,
620 value: ::std::os::raw::c_longlong,
621 ) -> ::std::os::raw::c_int;
622}
623extern "C" {
624 pub fn snd_config_imake_real(
625 config: *mut *mut snd_config_t,
626 key: *const ::std::os::raw::c_char,
627 value: f64,
628 ) -> ::std::os::raw::c_int;
629}
630extern "C" {
631 pub fn snd_config_imake_string(
632 config: *mut *mut snd_config_t,
633 key: *const ::std::os::raw::c_char,
634 ascii: *const ::std::os::raw::c_char,
635 ) -> ::std::os::raw::c_int;
636}
637extern "C" {
638 pub fn snd_config_imake_safe_string(
639 config: *mut *mut snd_config_t,
640 key: *const ::std::os::raw::c_char,
641 ascii: *const ::std::os::raw::c_char,
642 ) -> ::std::os::raw::c_int;
643}
644extern "C" {
645 pub fn snd_config_imake_pointer(
646 config: *mut *mut snd_config_t,
647 key: *const ::std::os::raw::c_char,
648 ptr: *const ::std::os::raw::c_void,
649 ) -> ::std::os::raw::c_int;
650}
651extern "C" {
652 pub fn snd_config_get_type(config: *const snd_config_t) -> snd_config_type_t;
653}
654extern "C" {
655 pub fn snd_config_is_array(config: *const snd_config_t) -> ::std::os::raw::c_int;
656}
657extern "C" {
658 pub fn snd_config_set_id(
659 config: *mut snd_config_t,
660 id: *const ::std::os::raw::c_char,
661 ) -> ::std::os::raw::c_int;
662}
663extern "C" {
664 pub fn snd_config_set_integer(
665 config: *mut snd_config_t,
666 value: ::std::os::raw::c_long,
667 ) -> ::std::os::raw::c_int;
668}
669extern "C" {
670 pub fn snd_config_set_integer64(
671 config: *mut snd_config_t,
672 value: ::std::os::raw::c_longlong,
673 ) -> ::std::os::raw::c_int;
674}
675extern "C" {
676 pub fn snd_config_set_real(config: *mut snd_config_t, value: f64) -> ::std::os::raw::c_int;
677}
678extern "C" {
679 pub fn snd_config_set_string(
680 config: *mut snd_config_t,
681 value: *const ::std::os::raw::c_char,
682 ) -> ::std::os::raw::c_int;
683}
684extern "C" {
685 pub fn snd_config_set_ascii(
686 config: *mut snd_config_t,
687 ascii: *const ::std::os::raw::c_char,
688 ) -> ::std::os::raw::c_int;
689}
690extern "C" {
691 pub fn snd_config_set_pointer(
692 config: *mut snd_config_t,
693 ptr: *const ::std::os::raw::c_void,
694 ) -> ::std::os::raw::c_int;
695}
696extern "C" {
697 pub fn snd_config_get_id(
698 config: *const snd_config_t,
699 value: *mut *const ::std::os::raw::c_char,
700 ) -> ::std::os::raw::c_int;
701}
702extern "C" {
703 pub fn snd_config_get_integer(
704 config: *const snd_config_t,
705 value: *mut ::std::os::raw::c_long,
706 ) -> ::std::os::raw::c_int;
707}
708extern "C" {
709 pub fn snd_config_get_integer64(
710 config: *const snd_config_t,
711 value: *mut ::std::os::raw::c_longlong,
712 ) -> ::std::os::raw::c_int;
713}
714extern "C" {
715 pub fn snd_config_get_real(
716 config: *const snd_config_t,
717 value: *mut f64,
718 ) -> ::std::os::raw::c_int;
719}
720extern "C" {
721 pub fn snd_config_get_ireal(
722 config: *const snd_config_t,
723 value: *mut f64,
724 ) -> ::std::os::raw::c_int;
725}
726extern "C" {
727 pub fn snd_config_get_string(
728 config: *const snd_config_t,
729 value: *mut *const ::std::os::raw::c_char,
730 ) -> ::std::os::raw::c_int;
731}
732extern "C" {
733 pub fn snd_config_get_ascii(
734 config: *const snd_config_t,
735 value: *mut *mut ::std::os::raw::c_char,
736 ) -> ::std::os::raw::c_int;
737}
738extern "C" {
739 pub fn snd_config_get_pointer(
740 config: *const snd_config_t,
741 value: *mut *const ::std::os::raw::c_void,
742 ) -> ::std::os::raw::c_int;
743}
744extern "C" {
745 pub fn snd_config_test_id(
746 config: *const snd_config_t,
747 id: *const ::std::os::raw::c_char,
748 ) -> ::std::os::raw::c_int;
749}
750extern "C" {
751 pub fn snd_config_iterator_first(node: *const snd_config_t) -> snd_config_iterator_t;
752}
753extern "C" {
754 pub fn snd_config_iterator_next(iterator: snd_config_iterator_t) -> snd_config_iterator_t;
755}
756extern "C" {
757 pub fn snd_config_iterator_end(node: *const snd_config_t) -> snd_config_iterator_t;
758}
759extern "C" {
760 pub fn snd_config_iterator_entry(iterator: snd_config_iterator_t) -> *mut snd_config_t;
761}
762extern "C" {
763 pub fn snd_config_get_bool_ascii(ascii: *const ::std::os::raw::c_char)
764 -> ::std::os::raw::c_int;
765}
766extern "C" {
767 pub fn snd_config_get_bool(conf: *const snd_config_t) -> ::std::os::raw::c_int;
768}
769extern "C" {
770 pub fn snd_config_get_ctl_iface_ascii(
771 ascii: *const ::std::os::raw::c_char,
772 ) -> ::std::os::raw::c_int;
773}
774extern "C" {
775 pub fn snd_config_get_ctl_iface(conf: *const snd_config_t) -> ::std::os::raw::c_int;
776}
777#[doc = " Device-name list element"]
778pub type snd_devname_t = snd_devname;
779#[doc = " Device-name list element (definition)"]
780#[repr(C)]
781#[derive(Debug, Copy, Clone)]
782pub struct snd_devname {
783 #[doc = "< Device name string"]
784 pub name: *mut ::std::os::raw::c_char,
785 #[doc = "< Comments"]
786 pub comment: *mut ::std::os::raw::c_char,
787 #[doc = "< Next pointer"]
788 pub next: *mut snd_devname_t,
789}
790extern "C" {
791 pub fn snd_names_list(
792 iface: *const ::std::os::raw::c_char,
793 list: *mut *mut snd_devname_t,
794 ) -> ::std::os::raw::c_int;
795}
796extern "C" {
797 pub fn snd_names_list_free(list: *mut snd_devname_t);
798}
799#[repr(C)]
800#[derive(Debug, Copy, Clone)]
801pub struct _snd_pcm_info {
802 _unused: [u8; 0],
803}
804#[doc = " PCM generic info container"]
805pub type snd_pcm_info_t = _snd_pcm_info;
806#[repr(C)]
807#[derive(Debug, Copy, Clone)]
808pub struct _snd_pcm_hw_params {
809 _unused: [u8; 0],
810}
811#[doc = " PCM hardware configuration space container"]
812#[doc = ""]
813#[doc = " snd_pcm_hw_params_t is an opaque structure which contains a set of possible"]
814#[doc = " PCM hardware configurations. For example, a given instance might include a"]
815#[doc = " range of buffer sizes, a range of period sizes, and a set of several sample"]
816#[doc = " formats. Some subset of all possible combinations these sets may be valid,"]
817#[doc = " but not necessarily any combination will be valid."]
818#[doc = ""]
819#[doc = " When a parameter is set or restricted using a snd_pcm_hw_params_set*"]
820#[doc = " function, all of the other ranges will be updated to exclude as many"]
821#[doc = " impossible configurations as possible. Attempting to set a parameter"]
822#[doc = " outside of its acceptable range will result in the function failing"]
823#[doc = " and an error code being returned."]
824pub type snd_pcm_hw_params_t = _snd_pcm_hw_params;
825#[repr(C)]
826#[derive(Debug, Copy, Clone)]
827pub struct _snd_pcm_sw_params {
828 _unused: [u8; 0],
829}
830#[doc = " PCM software configuration container"]
831pub type snd_pcm_sw_params_t = _snd_pcm_sw_params;
832#[repr(C)]
833#[derive(Debug, Copy, Clone)]
834pub struct _snd_pcm_status {
835 _unused: [u8; 0],
836}
837#[doc = " PCM status container"]
838pub type snd_pcm_status_t = _snd_pcm_status;
839#[repr(C)]
840#[derive(Debug, Copy, Clone)]
841pub struct _snd_pcm_access_mask {
842 _unused: [u8; 0],
843}
844#[doc = " PCM access types mask"]
845pub type snd_pcm_access_mask_t = _snd_pcm_access_mask;
846#[repr(C)]
847#[derive(Debug, Copy, Clone)]
848pub struct _snd_pcm_format_mask {
849 _unused: [u8; 0],
850}
851#[doc = " PCM formats mask"]
852pub type snd_pcm_format_mask_t = _snd_pcm_format_mask;
853#[repr(C)]
854#[derive(Debug, Copy, Clone)]
855pub struct _snd_pcm_subformat_mask {
856 _unused: [u8; 0],
857}
858#[doc = " PCM subformats mask"]
859pub type snd_pcm_subformat_mask_t = _snd_pcm_subformat_mask;
860#[doc = " standard device"]
861pub const SND_PCM_CLASS_GENERIC: _snd_pcm_class = 0;
862#[doc = " multichannel device"]
863pub const SND_PCM_CLASS_MULTI: _snd_pcm_class = 1;
864#[doc = " software modem device"]
865pub const SND_PCM_CLASS_MODEM: _snd_pcm_class = 2;
866#[doc = " digitizer device"]
867pub const SND_PCM_CLASS_DIGITIZER: _snd_pcm_class = 3;
868#[doc = " digitizer device"]
869pub const SND_PCM_CLASS_LAST: _snd_pcm_class = 3;
870#[doc = " PCM class"]
871pub type _snd_pcm_class = u32;
872#[doc = " PCM class"]
873pub use self::_snd_pcm_class as snd_pcm_class_t;
874#[doc = " subdevices are mixed together"]
875pub const SND_PCM_SUBCLASS_GENERIC_MIX: _snd_pcm_subclass = 0;
876#[doc = " multichannel subdevices are mixed together"]
877pub const SND_PCM_SUBCLASS_MULTI_MIX: _snd_pcm_subclass = 1;
878#[doc = " multichannel subdevices are mixed together"]
879pub const SND_PCM_SUBCLASS_LAST: _snd_pcm_subclass = 1;
880#[doc = " PCM subclass"]
881pub type _snd_pcm_subclass = u32;
882#[doc = " PCM subclass"]
883pub use self::_snd_pcm_subclass as snd_pcm_subclass_t;
884#[doc = " Playback stream"]
885pub const SND_PCM_STREAM_PLAYBACK: _snd_pcm_stream = 0;
886#[doc = " Capture stream"]
887pub const SND_PCM_STREAM_CAPTURE: _snd_pcm_stream = 1;
888#[doc = " Capture stream"]
889pub const SND_PCM_STREAM_LAST: _snd_pcm_stream = 1;
890#[doc = " PCM stream (direction)"]
891pub type _snd_pcm_stream = u32;
892#[doc = " PCM stream (direction)"]
893pub use self::_snd_pcm_stream as snd_pcm_stream_t;
894#[doc = " mmap access with simple interleaved channels"]
895pub const SND_PCM_ACCESS_MMAP_INTERLEAVED: _snd_pcm_access = 0;
896#[doc = " mmap access with simple non interleaved channels"]
897pub const SND_PCM_ACCESS_MMAP_NONINTERLEAVED: _snd_pcm_access = 1;
898#[doc = " mmap access with complex placement"]
899pub const SND_PCM_ACCESS_MMAP_COMPLEX: _snd_pcm_access = 2;
900#[doc = " snd_pcm_readi/snd_pcm_writei access"]
901pub const SND_PCM_ACCESS_RW_INTERLEAVED: _snd_pcm_access = 3;
902#[doc = " snd_pcm_readn/snd_pcm_writen access"]
903pub const SND_PCM_ACCESS_RW_NONINTERLEAVED: _snd_pcm_access = 4;
904#[doc = " snd_pcm_readn/snd_pcm_writen access"]
905pub const SND_PCM_ACCESS_LAST: _snd_pcm_access = 4;
906#[doc = " PCM access type"]
907pub type _snd_pcm_access = u32;
908#[doc = " PCM access type"]
909pub use self::_snd_pcm_access as snd_pcm_access_t;
910#[doc = " Unknown"]
911pub const SND_PCM_FORMAT_UNKNOWN: _snd_pcm_format = -1;
912#[doc = " Signed 8 bit"]
913pub const SND_PCM_FORMAT_S8: _snd_pcm_format = 0;
914#[doc = " Unsigned 8 bit"]
915pub const SND_PCM_FORMAT_U8: _snd_pcm_format = 1;
916#[doc = " Signed 16 bit Little Endian"]
917pub const SND_PCM_FORMAT_S16_LE: _snd_pcm_format = 2;
918#[doc = " Signed 16 bit Big Endian"]
919pub const SND_PCM_FORMAT_S16_BE: _snd_pcm_format = 3;
920#[doc = " Unsigned 16 bit Little Endian"]
921pub const SND_PCM_FORMAT_U16_LE: _snd_pcm_format = 4;
922#[doc = " Unsigned 16 bit Big Endian"]
923pub const SND_PCM_FORMAT_U16_BE: _snd_pcm_format = 5;
924#[doc = " Signed 24 bit Little Endian using low three bytes in 32-bit word"]
925pub const SND_PCM_FORMAT_S24_LE: _snd_pcm_format = 6;
926#[doc = " Signed 24 bit Big Endian using low three bytes in 32-bit word"]
927pub const SND_PCM_FORMAT_S24_BE: _snd_pcm_format = 7;
928#[doc = " Unsigned 24 bit Little Endian using low three bytes in 32-bit word"]
929pub const SND_PCM_FORMAT_U24_LE: _snd_pcm_format = 8;
930#[doc = " Unsigned 24 bit Big Endian using low three bytes in 32-bit word"]
931pub const SND_PCM_FORMAT_U24_BE: _snd_pcm_format = 9;
932#[doc = " Signed 32 bit Little Endian"]
933pub const SND_PCM_FORMAT_S32_LE: _snd_pcm_format = 10;
934#[doc = " Signed 32 bit Big Endian"]
935pub const SND_PCM_FORMAT_S32_BE: _snd_pcm_format = 11;
936#[doc = " Unsigned 32 bit Little Endian"]
937pub const SND_PCM_FORMAT_U32_LE: _snd_pcm_format = 12;
938#[doc = " Unsigned 32 bit Big Endian"]
939pub const SND_PCM_FORMAT_U32_BE: _snd_pcm_format = 13;
940#[doc = " Float 32 bit Little Endian, Range -1.0 to 1.0"]
941pub const SND_PCM_FORMAT_FLOAT_LE: _snd_pcm_format = 14;
942#[doc = " Float 32 bit Big Endian, Range -1.0 to 1.0"]
943pub const SND_PCM_FORMAT_FLOAT_BE: _snd_pcm_format = 15;
944#[doc = " Float 64 bit Little Endian, Range -1.0 to 1.0"]
945pub const SND_PCM_FORMAT_FLOAT64_LE: _snd_pcm_format = 16;
946#[doc = " Float 64 bit Big Endian, Range -1.0 to 1.0"]
947pub const SND_PCM_FORMAT_FLOAT64_BE: _snd_pcm_format = 17;
948#[doc = " IEC-958 Little Endian"]
949pub const SND_PCM_FORMAT_IEC958_SUBFRAME_LE: _snd_pcm_format = 18;
950#[doc = " IEC-958 Big Endian"]
951pub const SND_PCM_FORMAT_IEC958_SUBFRAME_BE: _snd_pcm_format = 19;
952#[doc = " Mu-Law"]
953pub const SND_PCM_FORMAT_MU_LAW: _snd_pcm_format = 20;
954#[doc = " A-Law"]
955pub const SND_PCM_FORMAT_A_LAW: _snd_pcm_format = 21;
956#[doc = " Ima-ADPCM"]
957pub const SND_PCM_FORMAT_IMA_ADPCM: _snd_pcm_format = 22;
958#[doc = " MPEG"]
959pub const SND_PCM_FORMAT_MPEG: _snd_pcm_format = 23;
960#[doc = " GSM"]
961pub const SND_PCM_FORMAT_GSM: _snd_pcm_format = 24;
962#[doc = " Signed 20bit Little Endian in 4bytes format, LSB justified"]
963pub const SND_PCM_FORMAT_S20_LE: _snd_pcm_format = 25;
964#[doc = " Signed 20bit Big Endian in 4bytes format, LSB justified"]
965pub const SND_PCM_FORMAT_S20_BE: _snd_pcm_format = 26;
966#[doc = " Unsigned 20bit Little Endian in 4bytes format, LSB justified"]
967pub const SND_PCM_FORMAT_U20_LE: _snd_pcm_format = 27;
968#[doc = " Unsigned 20bit Big Endian in 4bytes format, LSB justified"]
969pub const SND_PCM_FORMAT_U20_BE: _snd_pcm_format = 28;
970#[doc = " Special"]
971pub const SND_PCM_FORMAT_SPECIAL: _snd_pcm_format = 31;
972#[doc = " Signed 24bit Little Endian in 3bytes format"]
973pub const SND_PCM_FORMAT_S24_3LE: _snd_pcm_format = 32;
974#[doc = " Signed 24bit Big Endian in 3bytes format"]
975pub const SND_PCM_FORMAT_S24_3BE: _snd_pcm_format = 33;
976#[doc = " Unsigned 24bit Little Endian in 3bytes format"]
977pub const SND_PCM_FORMAT_U24_3LE: _snd_pcm_format = 34;
978#[doc = " Unsigned 24bit Big Endian in 3bytes format"]
979pub const SND_PCM_FORMAT_U24_3BE: _snd_pcm_format = 35;
980#[doc = " Signed 20bit Little Endian in 3bytes format"]
981pub const SND_PCM_FORMAT_S20_3LE: _snd_pcm_format = 36;
982#[doc = " Signed 20bit Big Endian in 3bytes format"]
983pub const SND_PCM_FORMAT_S20_3BE: _snd_pcm_format = 37;
984#[doc = " Unsigned 20bit Little Endian in 3bytes format"]
985pub const SND_PCM_FORMAT_U20_3LE: _snd_pcm_format = 38;
986#[doc = " Unsigned 20bit Big Endian in 3bytes format"]
987pub const SND_PCM_FORMAT_U20_3BE: _snd_pcm_format = 39;
988#[doc = " Signed 18bit Little Endian in 3bytes format"]
989pub const SND_PCM_FORMAT_S18_3LE: _snd_pcm_format = 40;
990#[doc = " Signed 18bit Big Endian in 3bytes format"]
991pub const SND_PCM_FORMAT_S18_3BE: _snd_pcm_format = 41;
992#[doc = " Unsigned 18bit Little Endian in 3bytes format"]
993pub const SND_PCM_FORMAT_U18_3LE: _snd_pcm_format = 42;
994#[doc = " Unsigned 18bit Big Endian in 3bytes format"]
995pub const SND_PCM_FORMAT_U18_3BE: _snd_pcm_format = 43;
996#[doc = " Unsigned 18bit Big Endian in 3bytes format"]
997pub const SND_PCM_FORMAT_G723_24: _snd_pcm_format = 44;
998#[doc = " Unsigned 18bit Big Endian in 3bytes format"]
999pub const SND_PCM_FORMAT_G723_24_1B: _snd_pcm_format = 45;
1000#[doc = " Unsigned 18bit Big Endian in 3bytes format"]
1001pub const SND_PCM_FORMAT_G723_40: _snd_pcm_format = 46;
1002#[doc = " Unsigned 18bit Big Endian in 3bytes format"]
1003pub const SND_PCM_FORMAT_G723_40_1B: _snd_pcm_format = 47;
1004#[doc = " Unsigned 18bit Big Endian in 3bytes format"]
1005pub const SND_PCM_FORMAT_DSD_U8: _snd_pcm_format = 48;
1006#[doc = " Unsigned 18bit Big Endian in 3bytes format"]
1007pub const SND_PCM_FORMAT_DSD_U16_LE: _snd_pcm_format = 49;
1008#[doc = " Unsigned 18bit Big Endian in 3bytes format"]
1009pub const SND_PCM_FORMAT_DSD_U32_LE: _snd_pcm_format = 50;
1010#[doc = " Unsigned 18bit Big Endian in 3bytes format"]
1011pub const SND_PCM_FORMAT_DSD_U16_BE: _snd_pcm_format = 51;
1012#[doc = " Unsigned 18bit Big Endian in 3bytes format"]
1013pub const SND_PCM_FORMAT_DSD_U32_BE: _snd_pcm_format = 52;
1014#[doc = " Unsigned 18bit Big Endian in 3bytes format"]
1015pub const SND_PCM_FORMAT_LAST: _snd_pcm_format = 52;
1016#[doc = " Signed 16 bit CPU endian"]
1017pub const SND_PCM_FORMAT_S16: _snd_pcm_format = 2;
1018#[doc = " Unsigned 16 bit CPU endian"]
1019pub const SND_PCM_FORMAT_U16: _snd_pcm_format = 4;
1020#[doc = " Signed 24 bit CPU endian"]
1021pub const SND_PCM_FORMAT_S24: _snd_pcm_format = 6;
1022#[doc = " Unsigned 24 bit CPU endian"]
1023pub const SND_PCM_FORMAT_U24: _snd_pcm_format = 8;
1024#[doc = " Signed 32 bit CPU endian"]
1025pub const SND_PCM_FORMAT_S32: _snd_pcm_format = 10;
1026#[doc = " Unsigned 32 bit CPU endian"]
1027pub const SND_PCM_FORMAT_U32: _snd_pcm_format = 12;
1028#[doc = " Float 32 bit CPU endian"]
1029pub const SND_PCM_FORMAT_FLOAT: _snd_pcm_format = 14;
1030#[doc = " Float 64 bit CPU endian"]
1031pub const SND_PCM_FORMAT_FLOAT64: _snd_pcm_format = 16;
1032#[doc = " IEC-958 CPU Endian"]
1033pub const SND_PCM_FORMAT_IEC958_SUBFRAME: _snd_pcm_format = 18;
1034#[doc = " Signed 20bit in 4bytes format, LSB justified, CPU Endian"]
1035pub const SND_PCM_FORMAT_S20: _snd_pcm_format = 25;
1036#[doc = " Unsigned 20bit in 4bytes format, LSB justified, CPU Endian"]
1037pub const SND_PCM_FORMAT_U20: _snd_pcm_format = 27;
1038#[doc = " PCM sample format"]
1039pub type _snd_pcm_format = i32;
1040#[doc = " PCM sample format"]
1041pub use self::_snd_pcm_format as snd_pcm_format_t;
1042#[doc = " Standard"]
1043pub const SND_PCM_SUBFORMAT_STD: _snd_pcm_subformat = 0;
1044#[doc = " Standard"]
1045pub const SND_PCM_SUBFORMAT_LAST: _snd_pcm_subformat = 0;
1046#[doc = " PCM sample subformat"]
1047pub type _snd_pcm_subformat = u32;
1048#[doc = " PCM sample subformat"]
1049pub use self::_snd_pcm_subformat as snd_pcm_subformat_t;
1050#[doc = " Open"]
1051pub const SND_PCM_STATE_OPEN: _snd_pcm_state = 0;
1052#[doc = " Setup installed"]
1053pub const SND_PCM_STATE_SETUP: _snd_pcm_state = 1;
1054#[doc = " Ready to start"]
1055pub const SND_PCM_STATE_PREPARED: _snd_pcm_state = 2;
1056#[doc = " Running"]
1057pub const SND_PCM_STATE_RUNNING: _snd_pcm_state = 3;
1058#[doc = " Stopped: underrun (playback) or overrun (capture) detected"]
1059pub const SND_PCM_STATE_XRUN: _snd_pcm_state = 4;
1060#[doc = " Draining: running (playback) or stopped (capture)"]
1061pub const SND_PCM_STATE_DRAINING: _snd_pcm_state = 5;
1062#[doc = " Paused"]
1063pub const SND_PCM_STATE_PAUSED: _snd_pcm_state = 6;
1064#[doc = " Hardware is suspended"]
1065pub const SND_PCM_STATE_SUSPENDED: _snd_pcm_state = 7;
1066#[doc = " Hardware is disconnected"]
1067pub const SND_PCM_STATE_DISCONNECTED: _snd_pcm_state = 8;
1068#[doc = " Hardware is disconnected"]
1069pub const SND_PCM_STATE_LAST: _snd_pcm_state = 8;
1070#[doc = " Private - used internally in the library - do not use"]
1071pub const SND_PCM_STATE_PRIVATE1: _snd_pcm_state = 1024;
1072#[doc = " PCM state"]
1073pub type _snd_pcm_state = u32;
1074#[doc = " PCM state"]
1075pub use self::_snd_pcm_state as snd_pcm_state_t;
1076#[doc = " Automatic start on data read/write"]
1077pub const SND_PCM_START_DATA: _snd_pcm_start = 0;
1078#[doc = " Explicit start"]
1079pub const SND_PCM_START_EXPLICIT: _snd_pcm_start = 1;
1080#[doc = " Explicit start"]
1081pub const SND_PCM_START_LAST: _snd_pcm_start = 1;
1082#[doc = " PCM start mode"]
1083pub type _snd_pcm_start = u32;
1084#[doc = " PCM start mode"]
1085pub use self::_snd_pcm_start as snd_pcm_start_t;
1086#[doc = " Xrun detection disabled"]
1087pub const SND_PCM_XRUN_NONE: _snd_pcm_xrun = 0;
1088#[doc = " Stop on xrun detection"]
1089pub const SND_PCM_XRUN_STOP: _snd_pcm_xrun = 1;
1090#[doc = " Stop on xrun detection"]
1091pub const SND_PCM_XRUN_LAST: _snd_pcm_xrun = 1;
1092#[doc = " PCM xrun mode"]
1093pub type _snd_pcm_xrun = u32;
1094#[doc = " PCM xrun mode"]
1095pub use self::_snd_pcm_xrun as snd_pcm_xrun_t;
1096#[doc = " No timestamp"]
1097pub const SND_PCM_TSTAMP_NONE: _snd_pcm_tstamp = 0;
1098#[doc = " Update timestamp at every hardware position update"]
1099pub const SND_PCM_TSTAMP_ENABLE: _snd_pcm_tstamp = 1;
1100#[doc = " Equivalent with #SND_PCM_TSTAMP_ENABLE,"]
1101#[doc = " just for compatibility with older versions"]
1102pub const SND_PCM_TSTAMP_MMAP: _snd_pcm_tstamp = 1;
1103#[doc = " Equivalent with #SND_PCM_TSTAMP_ENABLE,"]
1104#[doc = " just for compatibility with older versions"]
1105pub const SND_PCM_TSTAMP_LAST: _snd_pcm_tstamp = 1;
1106#[doc = " PCM timestamp mode"]
1107pub type _snd_pcm_tstamp = u32;
1108#[doc = " PCM timestamp mode"]
1109pub use self::_snd_pcm_tstamp as snd_pcm_tstamp_t;
1110#[doc = "< gettimeofday equivalent"]
1111pub const SND_PCM_TSTAMP_TYPE_GETTIMEOFDAY: _snd_pcm_tstamp_type = 0;
1112#[doc = "< posix_clock_monotonic equivalent"]
1113pub const SND_PCM_TSTAMP_TYPE_MONOTONIC: _snd_pcm_tstamp_type = 1;
1114#[doc = "< monotonic_raw (no NTP)"]
1115pub const SND_PCM_TSTAMP_TYPE_MONOTONIC_RAW: _snd_pcm_tstamp_type = 2;
1116pub const SND_PCM_TSTAMP_TYPE_LAST: _snd_pcm_tstamp_type = 2;
1117pub type _snd_pcm_tstamp_type = u32;
1118pub use self::_snd_pcm_tstamp_type as snd_pcm_tstamp_type_t;
1119#[doc = " first definition for backwards compatibility only,"]
1120#[doc = " maps to wallclock/link time for HDAudio playback and DEFAULT/DMA time for everything else"]
1121pub const SND_PCM_AUDIO_TSTAMP_TYPE_COMPAT: _snd_pcm_audio_tstamp_type = 0;
1122#[doc = "< DMA time, reported as per hw_ptr"]
1123pub const SND_PCM_AUDIO_TSTAMP_TYPE_DEFAULT: _snd_pcm_audio_tstamp_type = 1;
1124#[doc = "< link time reported by sample or wallclock counter, reset on startup"]
1125pub const SND_PCM_AUDIO_TSTAMP_TYPE_LINK: _snd_pcm_audio_tstamp_type = 2;
1126#[doc = "< link time reported by sample or wallclock counter, not reset on startup"]
1127pub const SND_PCM_AUDIO_TSTAMP_TYPE_LINK_ABSOLUTE: _snd_pcm_audio_tstamp_type = 3;
1128#[doc = "< link time estimated indirectly"]
1129pub const SND_PCM_AUDIO_TSTAMP_TYPE_LINK_ESTIMATED: _snd_pcm_audio_tstamp_type = 4;
1130#[doc = "< link time synchronized with system time"]
1131pub const SND_PCM_AUDIO_TSTAMP_TYPE_LINK_SYNCHRONIZED: _snd_pcm_audio_tstamp_type = 5;
1132pub const SND_PCM_AUDIO_TSTAMP_TYPE_LAST: _snd_pcm_audio_tstamp_type = 5;
1133pub type _snd_pcm_audio_tstamp_type = u32;
1134pub use self::_snd_pcm_audio_tstamp_type as snd_pcm_audio_tstamp_type_t;
1135#[repr(C)]
1136#[repr(align(4))]
1137#[derive(Debug, Copy, Clone)]
1138pub struct _snd_pcm_audio_tstamp_config {
1139 pub _bitfield_1: __BindgenBitfieldUnit<[u8; 1usize], u8>,
1140 pub __bindgen_padding_0: [u8; 3usize],
1141}
1142impl _snd_pcm_audio_tstamp_config {
1143 #[inline]
1144 pub fn type_requested(&self) -> ::std::os::raw::c_uint {
1145 unsafe { ::std::mem::transmute(self._bitfield_1.get(0usize, 4u8) as u32) }
1146 }
1147 #[inline]
1148 pub fn set_type_requested(&mut self, val: ::std::os::raw::c_uint) {
1149 unsafe {
1150 let val: u32 = ::std::mem::transmute(val);
1151 self._bitfield_1.set(0usize, 4u8, val as u64)
1152 }
1153 }
1154 #[inline]
1155 pub fn report_delay(&self) -> ::std::os::raw::c_uint {
1156 unsafe { ::std::mem::transmute(self._bitfield_1.get(4usize, 1u8) as u32) }
1157 }
1158 #[inline]
1159 pub fn set_report_delay(&mut self, val: ::std::os::raw::c_uint) {
1160 unsafe {
1161 let val: u32 = ::std::mem::transmute(val);
1162 self._bitfield_1.set(4usize, 1u8, val as u64)
1163 }
1164 }
1165 #[inline]
1166 pub fn new_bitfield_1(
1167 type_requested: ::std::os::raw::c_uint,
1168 report_delay: ::std::os::raw::c_uint,
1169 ) -> __BindgenBitfieldUnit<[u8; 1usize], u8> {
1170 let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 1usize], u8> =
1171 Default::default();
1172 __bindgen_bitfield_unit.set(0usize, 4u8, {
1173 let type_requested: u32 = unsafe { ::std::mem::transmute(type_requested) };
1174 type_requested as u64
1175 });
1176 __bindgen_bitfield_unit.set(4usize, 1u8, {
1177 let report_delay: u32 = unsafe { ::std::mem::transmute(report_delay) };
1178 report_delay as u64
1179 });
1180 __bindgen_bitfield_unit
1181 }
1182}
1183pub type snd_pcm_audio_tstamp_config_t = _snd_pcm_audio_tstamp_config;
1184#[repr(C)]
1185#[derive(Debug, Copy, Clone)]
1186pub struct _snd_pcm_audio_tstamp_report {
1187 pub _bitfield_1: __BindgenBitfieldUnit<[u8; 1usize], u8>,
1188 pub accuracy: ::std::os::raw::c_uint,
1189}
1190impl _snd_pcm_audio_tstamp_report {
1191 #[inline]
1192 pub fn valid(&self) -> ::std::os::raw::c_uint {
1193 unsafe { ::std::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u32) }
1194 }
1195 #[inline]
1196 pub fn set_valid(&mut self, val: ::std::os::raw::c_uint) {
1197 unsafe {
1198 let val: u32 = ::std::mem::transmute(val);
1199 self._bitfield_1.set(0usize, 1u8, val as u64)
1200 }
1201 }
1202 #[inline]
1203 pub fn actual_type(&self) -> ::std::os::raw::c_uint {
1204 unsafe { ::std::mem::transmute(self._bitfield_1.get(1usize, 4u8) as u32) }
1205 }
1206 #[inline]
1207 pub fn set_actual_type(&mut self, val: ::std::os::raw::c_uint) {
1208 unsafe {
1209 let val: u32 = ::std::mem::transmute(val);
1210 self._bitfield_1.set(1usize, 4u8, val as u64)
1211 }
1212 }
1213 #[inline]
1214 pub fn accuracy_report(&self) -> ::std::os::raw::c_uint {
1215 unsafe { ::std::mem::transmute(self._bitfield_1.get(5usize, 1u8) as u32) }
1216 }
1217 #[inline]
1218 pub fn set_accuracy_report(&mut self, val: ::std::os::raw::c_uint) {
1219 unsafe {
1220 let val: u32 = ::std::mem::transmute(val);
1221 self._bitfield_1.set(5usize, 1u8, val as u64)
1222 }
1223 }
1224 #[inline]
1225 pub fn new_bitfield_1(
1226 valid: ::std::os::raw::c_uint,
1227 actual_type: ::std::os::raw::c_uint,
1228 accuracy_report: ::std::os::raw::c_uint,
1229 ) -> __BindgenBitfieldUnit<[u8; 1usize], u8> {
1230 let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 1usize], u8> =
1231 Default::default();
1232 __bindgen_bitfield_unit.set(0usize, 1u8, {
1233 let valid: u32 = unsafe { ::std::mem::transmute(valid) };
1234 valid as u64
1235 });
1236 __bindgen_bitfield_unit.set(1usize, 4u8, {
1237 let actual_type: u32 = unsafe { ::std::mem::transmute(actual_type) };
1238 actual_type as u64
1239 });
1240 __bindgen_bitfield_unit.set(5usize, 1u8, {
1241 let accuracy_report: u32 = unsafe { ::std::mem::transmute(accuracy_report) };
1242 accuracy_report as u64
1243 });
1244 __bindgen_bitfield_unit
1245 }
1246}
1247pub type snd_pcm_audio_tstamp_report_t = _snd_pcm_audio_tstamp_report;
1248#[doc = " Unsigned frames quantity"]
1249pub type snd_pcm_uframes_t = ::std::os::raw::c_ulong;
1250#[doc = " Signed frames quantity"]
1251pub type snd_pcm_sframes_t = ::std::os::raw::c_long;
1252#[repr(C)]
1253#[derive(Debug, Copy, Clone)]
1254pub struct _snd_pcm {
1255 _unused: [u8; 0],
1256}
1257#[doc = " PCM handle"]
1258pub type snd_pcm_t = _snd_pcm;
1259#[doc = " Kernel level PCM"]
1260pub const SND_PCM_TYPE_HW: _snd_pcm_type = 0;
1261#[doc = " Hooked PCM"]
1262pub const SND_PCM_TYPE_HOOKS: _snd_pcm_type = 1;
1263#[doc = " One or more linked PCM with exclusive access to selected"]
1264#[doc = "channels"]
1265pub const SND_PCM_TYPE_MULTI: _snd_pcm_type = 2;
1266#[doc = " File writing plugin"]
1267pub const SND_PCM_TYPE_FILE: _snd_pcm_type = 3;
1268#[doc = " Null endpoint PCM"]
1269pub const SND_PCM_TYPE_NULL: _snd_pcm_type = 4;
1270#[doc = " Shared memory client PCM"]
1271pub const SND_PCM_TYPE_SHM: _snd_pcm_type = 5;
1272#[doc = " INET client PCM (not yet implemented)"]
1273pub const SND_PCM_TYPE_INET: _snd_pcm_type = 6;
1274#[doc = " Copying plugin"]
1275pub const SND_PCM_TYPE_COPY: _snd_pcm_type = 7;
1276#[doc = " Linear format conversion PCM"]
1277pub const SND_PCM_TYPE_LINEAR: _snd_pcm_type = 8;
1278#[doc = " A-Law format conversion PCM"]
1279pub const SND_PCM_TYPE_ALAW: _snd_pcm_type = 9;
1280#[doc = " Mu-Law format conversion PCM"]
1281pub const SND_PCM_TYPE_MULAW: _snd_pcm_type = 10;
1282#[doc = " IMA-ADPCM format conversion PCM"]
1283pub const SND_PCM_TYPE_ADPCM: _snd_pcm_type = 11;
1284#[doc = " Rate conversion PCM"]
1285pub const SND_PCM_TYPE_RATE: _snd_pcm_type = 12;
1286#[doc = " Attenuated static route PCM"]
1287pub const SND_PCM_TYPE_ROUTE: _snd_pcm_type = 13;
1288#[doc = " Format adjusted PCM"]
1289pub const SND_PCM_TYPE_PLUG: _snd_pcm_type = 14;
1290#[doc = " Sharing PCM"]
1291pub const SND_PCM_TYPE_SHARE: _snd_pcm_type = 15;
1292#[doc = " Meter plugin"]
1293pub const SND_PCM_TYPE_METER: _snd_pcm_type = 16;
1294#[doc = " Mixing PCM"]
1295pub const SND_PCM_TYPE_MIX: _snd_pcm_type = 17;
1296#[doc = " Attenuated dynamic route PCM (not yet implemented)"]
1297pub const SND_PCM_TYPE_DROUTE: _snd_pcm_type = 18;
1298#[doc = " Loopback server plugin (not yet implemented)"]
1299pub const SND_PCM_TYPE_LBSERVER: _snd_pcm_type = 19;
1300#[doc = " Linear Integer <-> Linear Float format conversion PCM"]
1301pub const SND_PCM_TYPE_LINEAR_FLOAT: _snd_pcm_type = 20;
1302#[doc = " LADSPA integration plugin"]
1303pub const SND_PCM_TYPE_LADSPA: _snd_pcm_type = 21;
1304#[doc = " Direct Mixing plugin"]
1305pub const SND_PCM_TYPE_DMIX: _snd_pcm_type = 22;
1306#[doc = " Jack Audio Connection Kit plugin"]
1307pub const SND_PCM_TYPE_JACK: _snd_pcm_type = 23;
1308#[doc = " Direct Snooping plugin"]
1309pub const SND_PCM_TYPE_DSNOOP: _snd_pcm_type = 24;
1310#[doc = " Direct Sharing plugin"]
1311pub const SND_PCM_TYPE_DSHARE: _snd_pcm_type = 25;
1312#[doc = " IEC958 subframe plugin"]
1313pub const SND_PCM_TYPE_IEC958: _snd_pcm_type = 26;
1314#[doc = " Soft volume plugin"]
1315pub const SND_PCM_TYPE_SOFTVOL: _snd_pcm_type = 27;
1316#[doc = " External I/O plugin"]
1317pub const SND_PCM_TYPE_IOPLUG: _snd_pcm_type = 28;
1318#[doc = " External filter plugin"]
1319pub const SND_PCM_TYPE_EXTPLUG: _snd_pcm_type = 29;
1320#[doc = " Mmap-emulation plugin"]
1321pub const SND_PCM_TYPE_MMAP_EMUL: _snd_pcm_type = 30;
1322#[doc = " Mmap-emulation plugin"]
1323pub const SND_PCM_TYPE_LAST: _snd_pcm_type = 30;
1324#[doc = " PCM type"]
1325pub type _snd_pcm_type = u32;
1326#[doc = " PCM type"]
1327pub use self::_snd_pcm_type as snd_pcm_type_t;
1328#[doc = " PCM area specification"]
1329#[repr(C)]
1330#[derive(Debug, Copy, Clone)]
1331pub struct _snd_pcm_channel_area {
1332 #[doc = " base address of channel samples"]
1333 pub addr: *mut ::std::os::raw::c_void,
1334 #[doc = " offset to first sample in bits"]
1335 pub first: ::std::os::raw::c_uint,
1336 #[doc = " samples distance in bits"]
1337 pub step: ::std::os::raw::c_uint,
1338}
1339#[doc = " PCM area specification"]
1340pub type snd_pcm_channel_area_t = _snd_pcm_channel_area;
1341#[doc = " PCM synchronization ID"]
1342#[repr(C)]
1343#[derive(Copy, Clone)]
1344pub union _snd_pcm_sync_id {
1345 #[doc = " 8-bit ID"]
1346 pub id: [::std::os::raw::c_uchar; 16usize],
1347 #[doc = " 16-bit ID"]
1348 pub id16: [::std::os::raw::c_ushort; 8usize],
1349 #[doc = " 32-bit ID"]
1350 pub id32: [::std::os::raw::c_uint; 4usize],
1351 _bindgen_union_align: [u32; 4usize],
1352}
1353#[doc = " PCM synchronization ID"]
1354pub type snd_pcm_sync_id_t = _snd_pcm_sync_id;
1355#[repr(C)]
1356#[derive(Debug, Copy, Clone)]
1357pub struct _snd_pcm_scope {
1358 _unused: [u8; 0],
1359}
1360#[doc = " #SND_PCM_TYPE_METER scope handle"]
1361pub type snd_pcm_scope_t = _snd_pcm_scope;
1362extern "C" {
1363 pub fn snd_pcm_open(
1364 pcm: *mut *mut snd_pcm_t,
1365 name: *const ::std::os::raw::c_char,
1366 stream: snd_pcm_stream_t,
1367 mode: ::std::os::raw::c_int,
1368 ) -> ::std::os::raw::c_int;
1369}
1370extern "C" {
1371 pub fn snd_pcm_open_lconf(
1372 pcm: *mut *mut snd_pcm_t,
1373 name: *const ::std::os::raw::c_char,
1374 stream: snd_pcm_stream_t,
1375 mode: ::std::os::raw::c_int,
1376 lconf: *mut snd_config_t,
1377 ) -> ::std::os::raw::c_int;
1378}
1379extern "C" {
1380 pub fn snd_pcm_open_fallback(
1381 pcm: *mut *mut snd_pcm_t,
1382 root: *mut snd_config_t,
1383 name: *const ::std::os::raw::c_char,
1384 orig_name: *const ::std::os::raw::c_char,
1385 stream: snd_pcm_stream_t,
1386 mode: ::std::os::raw::c_int,
1387 ) -> ::std::os::raw::c_int;
1388}
1389extern "C" {
1390 pub fn snd_pcm_close(pcm: *mut snd_pcm_t) -> ::std::os::raw::c_int;
1391}
1392extern "C" {
1393 pub fn snd_pcm_name(pcm: *mut snd_pcm_t) -> *const ::std::os::raw::c_char;
1394}
1395extern "C" {
1396 pub fn snd_pcm_type(pcm: *mut snd_pcm_t) -> snd_pcm_type_t;
1397}
1398extern "C" {
1399 pub fn snd_pcm_stream(pcm: *mut snd_pcm_t) -> snd_pcm_stream_t;
1400}
1401extern "C" {
1402 pub fn snd_pcm_poll_descriptors_count(pcm: *mut snd_pcm_t) -> ::std::os::raw::c_int;
1403}
1404extern "C" {
1405 pub fn snd_pcm_poll_descriptors(
1406 pcm: *mut snd_pcm_t,
1407 pfds: *mut pollfd,
1408 space: ::std::os::raw::c_uint,
1409 ) -> ::std::os::raw::c_int;
1410}
1411extern "C" {
1412 pub fn snd_pcm_poll_descriptors_revents(
1413 pcm: *mut snd_pcm_t,
1414 pfds: *mut pollfd,
1415 nfds: ::std::os::raw::c_uint,
1416 revents: *mut ::std::os::raw::c_ushort,
1417 ) -> ::std::os::raw::c_int;
1418}
1419extern "C" {
1420 pub fn snd_pcm_nonblock(
1421 pcm: *mut snd_pcm_t,
1422 nonblock: ::std::os::raw::c_int,
1423 ) -> ::std::os::raw::c_int;
1424}
1425extern "C" {
1426 pub fn snd_async_add_pcm_handler(
1427 handler: *mut *mut snd_async_handler_t,
1428 pcm: *mut snd_pcm_t,
1429 callback: snd_async_callback_t,
1430 private_data: *mut ::std::os::raw::c_void,
1431 ) -> ::std::os::raw::c_int;
1432}
1433extern "C" {
1434 pub fn snd_async_handler_get_pcm(handler: *mut snd_async_handler_t) -> *mut snd_pcm_t;
1435}
1436extern "C" {
1437 pub fn snd_pcm_info(pcm: *mut snd_pcm_t, info: *mut snd_pcm_info_t) -> ::std::os::raw::c_int;
1438}
1439extern "C" {
1440 pub fn snd_pcm_hw_params_current(
1441 pcm: *mut snd_pcm_t,
1442 params: *mut snd_pcm_hw_params_t,
1443 ) -> ::std::os::raw::c_int;
1444}
1445extern "C" {
1446 pub fn snd_pcm_hw_params(
1447 pcm: *mut snd_pcm_t,
1448 params: *mut snd_pcm_hw_params_t,
1449 ) -> ::std::os::raw::c_int;
1450}
1451extern "C" {
1452 pub fn snd_pcm_hw_free(pcm: *mut snd_pcm_t) -> ::std::os::raw::c_int;
1453}
1454extern "C" {
1455 pub fn snd_pcm_sw_params_current(
1456 pcm: *mut snd_pcm_t,
1457 params: *mut snd_pcm_sw_params_t,
1458 ) -> ::std::os::raw::c_int;
1459}
1460extern "C" {
1461 pub fn snd_pcm_sw_params(
1462 pcm: *mut snd_pcm_t,
1463 params: *mut snd_pcm_sw_params_t,
1464 ) -> ::std::os::raw::c_int;
1465}
1466extern "C" {
1467 pub fn snd_pcm_prepare(pcm: *mut snd_pcm_t) -> ::std::os::raw::c_int;
1468}
1469extern "C" {
1470 pub fn snd_pcm_reset(pcm: *mut snd_pcm_t) -> ::std::os::raw::c_int;
1471}
1472extern "C" {
1473 pub fn snd_pcm_status(
1474 pcm: *mut snd_pcm_t,
1475 status: *mut snd_pcm_status_t,
1476 ) -> ::std::os::raw::c_int;
1477}
1478extern "C" {
1479 pub fn snd_pcm_start(pcm: *mut snd_pcm_t) -> ::std::os::raw::c_int;
1480}
1481extern "C" {
1482 pub fn snd_pcm_drop(pcm: *mut snd_pcm_t) -> ::std::os::raw::c_int;
1483}
1484extern "C" {
1485 pub fn snd_pcm_drain(pcm: *mut snd_pcm_t) -> ::std::os::raw::c_int;
1486}
1487extern "C" {
1488 pub fn snd_pcm_pause(
1489 pcm: *mut snd_pcm_t,
1490 enable: ::std::os::raw::c_int,
1491 ) -> ::std::os::raw::c_int;
1492}
1493extern "C" {
1494 pub fn snd_pcm_state(pcm: *mut snd_pcm_t) -> snd_pcm_state_t;
1495}
1496extern "C" {
1497 pub fn snd_pcm_hwsync(pcm: *mut snd_pcm_t) -> ::std::os::raw::c_int;
1498}
1499extern "C" {
1500 pub fn snd_pcm_delay(
1501 pcm: *mut snd_pcm_t,
1502 delayp: *mut snd_pcm_sframes_t,
1503 ) -> ::std::os::raw::c_int;
1504}
1505extern "C" {
1506 pub fn snd_pcm_resume(pcm: *mut snd_pcm_t) -> ::std::os::raw::c_int;
1507}
1508extern "C" {
1509 pub fn snd_pcm_htimestamp(
1510 pcm: *mut snd_pcm_t,
1511 avail: *mut snd_pcm_uframes_t,
1512 tstamp: *mut snd_htimestamp_t,
1513 ) -> ::std::os::raw::c_int;
1514}
1515extern "C" {
1516 pub fn snd_pcm_avail(pcm: *mut snd_pcm_t) -> snd_pcm_sframes_t;
1517}
1518extern "C" {
1519 pub fn snd_pcm_avail_update(pcm: *mut snd_pcm_t) -> snd_pcm_sframes_t;
1520}
1521extern "C" {
1522 pub fn snd_pcm_avail_delay(
1523 pcm: *mut snd_pcm_t,
1524 availp: *mut snd_pcm_sframes_t,
1525 delayp: *mut snd_pcm_sframes_t,
1526 ) -> ::std::os::raw::c_int;
1527}
1528extern "C" {
1529 pub fn snd_pcm_rewindable(pcm: *mut snd_pcm_t) -> snd_pcm_sframes_t;
1530}
1531extern "C" {
1532 pub fn snd_pcm_rewind(pcm: *mut snd_pcm_t, frames: snd_pcm_uframes_t) -> snd_pcm_sframes_t;
1533}
1534extern "C" {
1535 pub fn snd_pcm_forwardable(pcm: *mut snd_pcm_t) -> snd_pcm_sframes_t;
1536}
1537extern "C" {
1538 pub fn snd_pcm_forward(pcm: *mut snd_pcm_t, frames: snd_pcm_uframes_t) -> snd_pcm_sframes_t;
1539}
1540extern "C" {
1541 pub fn snd_pcm_writei(
1542 pcm: *mut snd_pcm_t,
1543 buffer: *const ::std::os::raw::c_void,
1544 size: snd_pcm_uframes_t,
1545 ) -> snd_pcm_sframes_t;
1546}
1547extern "C" {
1548 pub fn snd_pcm_readi(
1549 pcm: *mut snd_pcm_t,
1550 buffer: *mut ::std::os::raw::c_void,
1551 size: snd_pcm_uframes_t,
1552 ) -> snd_pcm_sframes_t;
1553}
1554extern "C" {
1555 pub fn snd_pcm_writen(
1556 pcm: *mut snd_pcm_t,
1557 bufs: *mut *mut ::std::os::raw::c_void,
1558 size: snd_pcm_uframes_t,
1559 ) -> snd_pcm_sframes_t;
1560}
1561extern "C" {
1562 pub fn snd_pcm_readn(
1563 pcm: *mut snd_pcm_t,
1564 bufs: *mut *mut ::std::os::raw::c_void,
1565 size: snd_pcm_uframes_t,
1566 ) -> snd_pcm_sframes_t;
1567}
1568extern "C" {
1569 pub fn snd_pcm_wait(
1570 pcm: *mut snd_pcm_t,
1571 timeout: ::std::os::raw::c_int,
1572 ) -> ::std::os::raw::c_int;
1573}
1574extern "C" {
1575 pub fn snd_pcm_link(pcm1: *mut snd_pcm_t, pcm2: *mut snd_pcm_t) -> ::std::os::raw::c_int;
1576}
1577extern "C" {
1578 pub fn snd_pcm_unlink(pcm: *mut snd_pcm_t) -> ::std::os::raw::c_int;
1579}
1580#[doc = "< unspecified channel position"]
1581pub const SND_CHMAP_TYPE_NONE: snd_pcm_chmap_type = 0;
1582#[doc = "< fixed channel position"]
1583pub const SND_CHMAP_TYPE_FIXED: snd_pcm_chmap_type = 1;
1584#[doc = "< freely swappable channel position"]
1585pub const SND_CHMAP_TYPE_VAR: snd_pcm_chmap_type = 2;
1586#[doc = "< pair-wise swappable channel position"]
1587pub const SND_CHMAP_TYPE_PAIRED: snd_pcm_chmap_type = 3;
1588#[doc = "< last entry"]
1589pub const SND_CHMAP_TYPE_LAST: snd_pcm_chmap_type = 3;
1590#[doc = " channel map list type"]
1591pub type snd_pcm_chmap_type = u32;
1592#[doc = "< unspecified"]
1593pub const SND_CHMAP_UNKNOWN: snd_pcm_chmap_position = 0;
1594#[doc = "< N/A, silent"]
1595pub const SND_CHMAP_NA: snd_pcm_chmap_position = 1;
1596#[doc = "< mono stream"]
1597pub const SND_CHMAP_MONO: snd_pcm_chmap_position = 2;
1598#[doc = "< front left"]
1599pub const SND_CHMAP_FL: snd_pcm_chmap_position = 3;
1600#[doc = "< front right"]
1601pub const SND_CHMAP_FR: snd_pcm_chmap_position = 4;
1602#[doc = "< rear left"]
1603pub const SND_CHMAP_RL: snd_pcm_chmap_position = 5;
1604#[doc = "< rear right"]
1605pub const SND_CHMAP_RR: snd_pcm_chmap_position = 6;
1606#[doc = "< front center"]
1607pub const SND_CHMAP_FC: snd_pcm_chmap_position = 7;
1608#[doc = "< LFE"]
1609pub const SND_CHMAP_LFE: snd_pcm_chmap_position = 8;
1610#[doc = "< side left"]
1611pub const SND_CHMAP_SL: snd_pcm_chmap_position = 9;
1612#[doc = "< side right"]
1613pub const SND_CHMAP_SR: snd_pcm_chmap_position = 10;
1614#[doc = "< rear center"]
1615pub const SND_CHMAP_RC: snd_pcm_chmap_position = 11;
1616#[doc = "< front left center"]
1617pub const SND_CHMAP_FLC: snd_pcm_chmap_position = 12;
1618#[doc = "< front right center"]
1619pub const SND_CHMAP_FRC: snd_pcm_chmap_position = 13;
1620#[doc = "< rear left center"]
1621pub const SND_CHMAP_RLC: snd_pcm_chmap_position = 14;
1622#[doc = "< rear right center"]
1623pub const SND_CHMAP_RRC: snd_pcm_chmap_position = 15;
1624#[doc = "< front left wide"]
1625pub const SND_CHMAP_FLW: snd_pcm_chmap_position = 16;
1626#[doc = "< front right wide"]
1627pub const SND_CHMAP_FRW: snd_pcm_chmap_position = 17;
1628#[doc = "< front left high"]
1629pub const SND_CHMAP_FLH: snd_pcm_chmap_position = 18;
1630#[doc = "< front center high"]
1631pub const SND_CHMAP_FCH: snd_pcm_chmap_position = 19;
1632#[doc = "< front right high"]
1633pub const SND_CHMAP_FRH: snd_pcm_chmap_position = 20;
1634#[doc = "< top center"]
1635pub const SND_CHMAP_TC: snd_pcm_chmap_position = 21;
1636#[doc = "< top front left"]
1637pub const SND_CHMAP_TFL: snd_pcm_chmap_position = 22;
1638#[doc = "< top front right"]
1639pub const SND_CHMAP_TFR: snd_pcm_chmap_position = 23;
1640#[doc = "< top front center"]
1641pub const SND_CHMAP_TFC: snd_pcm_chmap_position = 24;
1642#[doc = "< top rear left"]
1643pub const SND_CHMAP_TRL: snd_pcm_chmap_position = 25;
1644#[doc = "< top rear right"]
1645pub const SND_CHMAP_TRR: snd_pcm_chmap_position = 26;
1646#[doc = "< top rear center"]
1647pub const SND_CHMAP_TRC: snd_pcm_chmap_position = 27;
1648#[doc = "< top front left center"]
1649pub const SND_CHMAP_TFLC: snd_pcm_chmap_position = 28;
1650#[doc = "< top front right center"]
1651pub const SND_CHMAP_TFRC: snd_pcm_chmap_position = 29;
1652#[doc = "< top side left"]
1653pub const SND_CHMAP_TSL: snd_pcm_chmap_position = 30;
1654#[doc = "< top side right"]
1655pub const SND_CHMAP_TSR: snd_pcm_chmap_position = 31;
1656#[doc = "< left LFE"]
1657pub const SND_CHMAP_LLFE: snd_pcm_chmap_position = 32;
1658#[doc = "< right LFE"]
1659pub const SND_CHMAP_RLFE: snd_pcm_chmap_position = 33;
1660#[doc = "< bottom center"]
1661pub const SND_CHMAP_BC: snd_pcm_chmap_position = 34;
1662#[doc = "< bottom left center"]
1663pub const SND_CHMAP_BLC: snd_pcm_chmap_position = 35;
1664#[doc = "< bottom right center"]
1665pub const SND_CHMAP_BRC: snd_pcm_chmap_position = 36;
1666pub const SND_CHMAP_LAST: snd_pcm_chmap_position = 36;
1667#[doc = " channel positions"]
1668pub type snd_pcm_chmap_position = u32;
1669#[doc = " the channel map header"]
1670#[repr(C)]
1671#[derive(Debug)]
1672pub struct snd_pcm_chmap {
1673 #[doc = "< number of channels"]
1674 pub channels: ::std::os::raw::c_uint,
1675 #[doc = "< channel position array"]
1676 pub pos: __IncompleteArrayField<::std::os::raw::c_uint>,
1677}
1678#[doc = " the channel map header"]
1679pub type snd_pcm_chmap_t = snd_pcm_chmap;
1680#[doc = " the header of array items returned from snd_pcm_query_chmaps()"]
1681#[repr(C)]
1682#[derive(Debug)]
1683pub struct snd_pcm_chmap_query {
1684 #[doc = "< channel map type"]
1685 pub type_: snd_pcm_chmap_type,
1686 #[doc = "< available channel map"]
1687 pub map: snd_pcm_chmap_t,
1688}
1689#[doc = " the header of array items returned from snd_pcm_query_chmaps()"]
1690pub type snd_pcm_chmap_query_t = snd_pcm_chmap_query;
1691extern "C" {
1692 pub fn snd_pcm_query_chmaps(pcm: *mut snd_pcm_t) -> *mut *mut snd_pcm_chmap_query_t;
1693}
1694extern "C" {
1695 pub fn snd_pcm_query_chmaps_from_hw(
1696 card: ::std::os::raw::c_int,
1697 dev: ::std::os::raw::c_int,
1698 subdev: ::std::os::raw::c_int,
1699 stream: snd_pcm_stream_t,
1700 ) -> *mut *mut snd_pcm_chmap_query_t;
1701}
1702extern "C" {
1703 pub fn snd_pcm_free_chmaps(maps: *mut *mut snd_pcm_chmap_query_t);
1704}
1705extern "C" {
1706 pub fn snd_pcm_get_chmap(pcm: *mut snd_pcm_t) -> *mut snd_pcm_chmap_t;
1707}
1708extern "C" {
1709 pub fn snd_pcm_set_chmap(
1710 pcm: *mut snd_pcm_t,
1711 map: *const snd_pcm_chmap_t,
1712 ) -> ::std::os::raw::c_int;
1713}
1714extern "C" {
1715 pub fn snd_pcm_chmap_type_name(val: snd_pcm_chmap_type) -> *const ::std::os::raw::c_char;
1716}
1717extern "C" {
1718 pub fn snd_pcm_chmap_name(val: snd_pcm_chmap_position) -> *const ::std::os::raw::c_char;
1719}
1720extern "C" {
1721 pub fn snd_pcm_chmap_long_name(val: snd_pcm_chmap_position) -> *const ::std::os::raw::c_char;
1722}
1723extern "C" {
1724 pub fn snd_pcm_chmap_print(
1725 map: *const snd_pcm_chmap_t,
1726 maxlen: usize,
1727 buf: *mut ::std::os::raw::c_char,
1728 ) -> ::std::os::raw::c_int;
1729}
1730extern "C" {
1731 pub fn snd_pcm_chmap_from_string(str: *const ::std::os::raw::c_char) -> ::std::os::raw::c_uint;
1732}
1733extern "C" {
1734 pub fn snd_pcm_chmap_parse_string(str: *const ::std::os::raw::c_char) -> *mut snd_pcm_chmap_t;
1735}
1736extern "C" {
1737 pub fn snd_pcm_recover(
1738 pcm: *mut snd_pcm_t,
1739 err: ::std::os::raw::c_int,
1740 silent: ::std::os::raw::c_int,
1741 ) -> ::std::os::raw::c_int;
1742}
1743extern "C" {
1744 pub fn snd_pcm_set_params(
1745 pcm: *mut snd_pcm_t,
1746 format: snd_pcm_format_t,
1747 access: snd_pcm_access_t,
1748 channels: ::std::os::raw::c_uint,
1749 rate: ::std::os::raw::c_uint,
1750 soft_resample: ::std::os::raw::c_int,
1751 latency: ::std::os::raw::c_uint,
1752 ) -> ::std::os::raw::c_int;
1753}
1754extern "C" {
1755 pub fn snd_pcm_get_params(
1756 pcm: *mut snd_pcm_t,
1757 buffer_size: *mut snd_pcm_uframes_t,
1758 period_size: *mut snd_pcm_uframes_t,
1759 ) -> ::std::os::raw::c_int;
1760}
1761extern "C" {
1762 #[doc = " \\defgroup PCM_Info Stream Information"]
1763 #[doc = " \\ingroup PCM"]
1764 #[doc = " See the \\ref pcm page for more details."]
1765 #[doc = " \\{"]
1766 pub fn snd_pcm_info_sizeof() -> usize;
1767}
1768extern "C" {
1769 pub fn snd_pcm_info_malloc(ptr: *mut *mut snd_pcm_info_t) -> ::std::os::raw::c_int;
1770}
1771extern "C" {
1772 pub fn snd_pcm_info_free(obj: *mut snd_pcm_info_t);
1773}
1774extern "C" {
1775 pub fn snd_pcm_info_copy(dst: *mut snd_pcm_info_t, src: *const snd_pcm_info_t);
1776}
1777extern "C" {
1778 pub fn snd_pcm_info_get_device(obj: *const snd_pcm_info_t) -> ::std::os::raw::c_uint;
1779}
1780extern "C" {
1781 pub fn snd_pcm_info_get_subdevice(obj: *const snd_pcm_info_t) -> ::std::os::raw::c_uint;
1782}
1783extern "C" {
1784 pub fn snd_pcm_info_get_stream(obj: *const snd_pcm_info_t) -> snd_pcm_stream_t;
1785}
1786extern "C" {
1787 pub fn snd_pcm_info_get_card(obj: *const snd_pcm_info_t) -> ::std::os::raw::c_int;
1788}
1789extern "C" {
1790 pub fn snd_pcm_info_get_id(obj: *const snd_pcm_info_t) -> *const ::std::os::raw::c_char;
1791}
1792extern "C" {
1793 pub fn snd_pcm_info_get_name(obj: *const snd_pcm_info_t) -> *const ::std::os::raw::c_char;
1794}
1795extern "C" {
1796 pub fn snd_pcm_info_get_subdevice_name(
1797 obj: *const snd_pcm_info_t,
1798 ) -> *const ::std::os::raw::c_char;
1799}
1800extern "C" {
1801 pub fn snd_pcm_info_get_class(obj: *const snd_pcm_info_t) -> snd_pcm_class_t;
1802}
1803extern "C" {
1804 pub fn snd_pcm_info_get_subclass(obj: *const snd_pcm_info_t) -> snd_pcm_subclass_t;
1805}
1806extern "C" {
1807 pub fn snd_pcm_info_get_subdevices_count(obj: *const snd_pcm_info_t) -> ::std::os::raw::c_uint;
1808}
1809extern "C" {
1810 pub fn snd_pcm_info_get_subdevices_avail(obj: *const snd_pcm_info_t) -> ::std::os::raw::c_uint;
1811}
1812extern "C" {
1813 pub fn snd_pcm_info_get_sync(obj: *const snd_pcm_info_t) -> snd_pcm_sync_id_t;
1814}
1815extern "C" {
1816 pub fn snd_pcm_info_set_device(obj: *mut snd_pcm_info_t, val: ::std::os::raw::c_uint);
1817}
1818extern "C" {
1819 pub fn snd_pcm_info_set_subdevice(obj: *mut snd_pcm_info_t, val: ::std::os::raw::c_uint);
1820}
1821extern "C" {
1822 pub fn snd_pcm_info_set_stream(obj: *mut snd_pcm_info_t, val: snd_pcm_stream_t);
1823}
1824extern "C" {
1825 #[doc = " \\defgroup PCM_HW_Params Hardware Parameters"]
1826 #[doc = " \\ingroup PCM"]
1827 #[doc = " See the \\ref pcm page for more details."]
1828 #[doc = " \\{"]
1829 pub fn snd_pcm_hw_params_any(
1830 pcm: *mut snd_pcm_t,
1831 params: *mut snd_pcm_hw_params_t,
1832 ) -> ::std::os::raw::c_int;
1833}
1834extern "C" {
1835 pub fn snd_pcm_hw_params_can_mmap_sample_resolution(
1836 params: *const snd_pcm_hw_params_t,
1837 ) -> ::std::os::raw::c_int;
1838}
1839extern "C" {
1840 pub fn snd_pcm_hw_params_is_double(params: *const snd_pcm_hw_params_t)
1841 -> ::std::os::raw::c_int;
1842}
1843extern "C" {
1844 pub fn snd_pcm_hw_params_is_batch(params: *const snd_pcm_hw_params_t) -> ::std::os::raw::c_int;
1845}
1846extern "C" {
1847 pub fn snd_pcm_hw_params_is_block_transfer(
1848 params: *const snd_pcm_hw_params_t,
1849 ) -> ::std::os::raw::c_int;
1850}
1851extern "C" {
1852 pub fn snd_pcm_hw_params_is_monotonic(
1853 params: *const snd_pcm_hw_params_t,
1854 ) -> ::std::os::raw::c_int;
1855}
1856extern "C" {
1857 pub fn snd_pcm_hw_params_can_overrange(
1858 params: *const snd_pcm_hw_params_t,
1859 ) -> ::std::os::raw::c_int;
1860}
1861extern "C" {
1862 pub fn snd_pcm_hw_params_can_pause(params: *const snd_pcm_hw_params_t)
1863 -> ::std::os::raw::c_int;
1864}
1865extern "C" {
1866 pub fn snd_pcm_hw_params_can_resume(
1867 params: *const snd_pcm_hw_params_t,
1868 ) -> ::std::os::raw::c_int;
1869}
1870extern "C" {
1871 pub fn snd_pcm_hw_params_is_half_duplex(
1872 params: *const snd_pcm_hw_params_t,
1873 ) -> ::std::os::raw::c_int;
1874}
1875extern "C" {
1876 pub fn snd_pcm_hw_params_is_joint_duplex(
1877 params: *const snd_pcm_hw_params_t,
1878 ) -> ::std::os::raw::c_int;
1879}
1880extern "C" {
1881 pub fn snd_pcm_hw_params_can_sync_start(
1882 params: *const snd_pcm_hw_params_t,
1883 ) -> ::std::os::raw::c_int;
1884}
1885extern "C" {
1886 pub fn snd_pcm_hw_params_can_disable_period_wakeup(
1887 params: *const snd_pcm_hw_params_t,
1888 ) -> ::std::os::raw::c_int;
1889}
1890extern "C" {
1891 pub fn snd_pcm_hw_params_supports_audio_wallclock_ts(
1892 params: *const snd_pcm_hw_params_t,
1893 ) -> ::std::os::raw::c_int;
1894}
1895extern "C" {
1896 pub fn snd_pcm_hw_params_supports_audio_ts_type(
1897 params: *const snd_pcm_hw_params_t,
1898 type_: ::std::os::raw::c_int,
1899 ) -> ::std::os::raw::c_int;
1900}
1901extern "C" {
1902 pub fn snd_pcm_hw_params_get_rate_numden(
1903 params: *const snd_pcm_hw_params_t,
1904 rate_num: *mut ::std::os::raw::c_uint,
1905 rate_den: *mut ::std::os::raw::c_uint,
1906 ) -> ::std::os::raw::c_int;
1907}
1908extern "C" {
1909 pub fn snd_pcm_hw_params_get_sbits(params: *const snd_pcm_hw_params_t)
1910 -> ::std::os::raw::c_int;
1911}
1912extern "C" {
1913 pub fn snd_pcm_hw_params_get_fifo_size(
1914 params: *const snd_pcm_hw_params_t,
1915 ) -> ::std::os::raw::c_int;
1916}
1917extern "C" {
1918 pub fn snd_pcm_hw_params_sizeof() -> usize;
1919}
1920extern "C" {
1921 pub fn snd_pcm_hw_params_malloc(ptr: *mut *mut snd_pcm_hw_params_t) -> ::std::os::raw::c_int;
1922}
1923extern "C" {
1924 pub fn snd_pcm_hw_params_free(obj: *mut snd_pcm_hw_params_t);
1925}
1926extern "C" {
1927 pub fn snd_pcm_hw_params_copy(dst: *mut snd_pcm_hw_params_t, src: *const snd_pcm_hw_params_t);
1928}
1929extern "C" {
1930 pub fn snd_pcm_hw_params_get_access(
1931 params: *const snd_pcm_hw_params_t,
1932 _access: *mut snd_pcm_access_t,
1933 ) -> ::std::os::raw::c_int;
1934}
1935extern "C" {
1936 pub fn snd_pcm_hw_params_test_access(
1937 pcm: *mut snd_pcm_t,
1938 params: *mut snd_pcm_hw_params_t,
1939 _access: snd_pcm_access_t,
1940 ) -> ::std::os::raw::c_int;
1941}
1942extern "C" {
1943 pub fn snd_pcm_hw_params_set_access(
1944 pcm: *mut snd_pcm_t,
1945 params: *mut snd_pcm_hw_params_t,
1946 _access: snd_pcm_access_t,
1947 ) -> ::std::os::raw::c_int;
1948}
1949extern "C" {
1950 pub fn snd_pcm_hw_params_set_access_first(
1951 pcm: *mut snd_pcm_t,
1952 params: *mut snd_pcm_hw_params_t,
1953 _access: *mut snd_pcm_access_t,
1954 ) -> ::std::os::raw::c_int;
1955}
1956extern "C" {
1957 pub fn snd_pcm_hw_params_set_access_last(
1958 pcm: *mut snd_pcm_t,
1959 params: *mut snd_pcm_hw_params_t,
1960 _access: *mut snd_pcm_access_t,
1961 ) -> ::std::os::raw::c_int;
1962}
1963extern "C" {
1964 pub fn snd_pcm_hw_params_set_access_mask(
1965 pcm: *mut snd_pcm_t,
1966 params: *mut snd_pcm_hw_params_t,
1967 mask: *mut snd_pcm_access_mask_t,
1968 ) -> ::std::os::raw::c_int;
1969}
1970extern "C" {
1971 pub fn snd_pcm_hw_params_get_access_mask(
1972 params: *mut snd_pcm_hw_params_t,
1973 mask: *mut snd_pcm_access_mask_t,
1974 ) -> ::std::os::raw::c_int;
1975}
1976extern "C" {
1977 pub fn snd_pcm_hw_params_get_format(
1978 params: *const snd_pcm_hw_params_t,
1979 val: *mut snd_pcm_format_t,
1980 ) -> ::std::os::raw::c_int;
1981}
1982extern "C" {
1983 pub fn snd_pcm_hw_params_test_format(
1984 pcm: *mut snd_pcm_t,
1985 params: *mut snd_pcm_hw_params_t,
1986 val: snd_pcm_format_t,
1987 ) -> ::std::os::raw::c_int;
1988}
1989extern "C" {
1990 pub fn snd_pcm_hw_params_set_format(
1991 pcm: *mut snd_pcm_t,
1992 params: *mut snd_pcm_hw_params_t,
1993 val: snd_pcm_format_t,
1994 ) -> ::std::os::raw::c_int;
1995}
1996extern "C" {
1997 pub fn snd_pcm_hw_params_set_format_first(
1998 pcm: *mut snd_pcm_t,
1999 params: *mut snd_pcm_hw_params_t,
2000 format: *mut snd_pcm_format_t,
2001 ) -> ::std::os::raw::c_int;
2002}
2003extern "C" {
2004 pub fn snd_pcm_hw_params_set_format_last(
2005 pcm: *mut snd_pcm_t,
2006 params: *mut snd_pcm_hw_params_t,
2007 format: *mut snd_pcm_format_t,
2008 ) -> ::std::os::raw::c_int;
2009}
2010extern "C" {
2011 pub fn snd_pcm_hw_params_set_format_mask(
2012 pcm: *mut snd_pcm_t,
2013 params: *mut snd_pcm_hw_params_t,
2014 mask: *mut snd_pcm_format_mask_t,
2015 ) -> ::std::os::raw::c_int;
2016}
2017extern "C" {
2018 pub fn snd_pcm_hw_params_get_format_mask(
2019 params: *mut snd_pcm_hw_params_t,
2020 mask: *mut snd_pcm_format_mask_t,
2021 );
2022}
2023extern "C" {
2024 pub fn snd_pcm_hw_params_get_subformat(
2025 params: *const snd_pcm_hw_params_t,
2026 subformat: *mut snd_pcm_subformat_t,
2027 ) -> ::std::os::raw::c_int;
2028}
2029extern "C" {
2030 pub fn snd_pcm_hw_params_test_subformat(
2031 pcm: *mut snd_pcm_t,
2032 params: *mut snd_pcm_hw_params_t,
2033 subformat: snd_pcm_subformat_t,
2034 ) -> ::std::os::raw::c_int;
2035}
2036extern "C" {
2037 pub fn snd_pcm_hw_params_set_subformat(
2038 pcm: *mut snd_pcm_t,
2039 params: *mut snd_pcm_hw_params_t,
2040 subformat: snd_pcm_subformat_t,
2041 ) -> ::std::os::raw::c_int;
2042}
2043extern "C" {
2044 pub fn snd_pcm_hw_params_set_subformat_first(
2045 pcm: *mut snd_pcm_t,
2046 params: *mut snd_pcm_hw_params_t,
2047 subformat: *mut snd_pcm_subformat_t,
2048 ) -> ::std::os::raw::c_int;
2049}
2050extern "C" {
2051 pub fn snd_pcm_hw_params_set_subformat_last(
2052 pcm: *mut snd_pcm_t,
2053 params: *mut snd_pcm_hw_params_t,
2054 subformat: *mut snd_pcm_subformat_t,
2055 ) -> ::std::os::raw::c_int;
2056}
2057extern "C" {
2058 pub fn snd_pcm_hw_params_set_subformat_mask(
2059 pcm: *mut snd_pcm_t,
2060 params: *mut snd_pcm_hw_params_t,
2061 mask: *mut snd_pcm_subformat_mask_t,
2062 ) -> ::std::os::raw::c_int;
2063}
2064extern "C" {
2065 pub fn snd_pcm_hw_params_get_subformat_mask(
2066 params: *mut snd_pcm_hw_params_t,
2067 mask: *mut snd_pcm_subformat_mask_t,
2068 );
2069}
2070extern "C" {
2071 pub fn snd_pcm_hw_params_get_channels(
2072 params: *const snd_pcm_hw_params_t,
2073 val: *mut ::std::os::raw::c_uint,
2074 ) -> ::std::os::raw::c_int;
2075}
2076extern "C" {
2077 pub fn snd_pcm_hw_params_get_channels_min(
2078 params: *const snd_pcm_hw_params_t,
2079 val: *mut ::std::os::raw::c_uint,
2080 ) -> ::std::os::raw::c_int;
2081}
2082extern "C" {
2083 pub fn snd_pcm_hw_params_get_channels_max(
2084 params: *const snd_pcm_hw_params_t,
2085 val: *mut ::std::os::raw::c_uint,
2086 ) -> ::std::os::raw::c_int;
2087}
2088extern "C" {
2089 pub fn snd_pcm_hw_params_test_channels(
2090 pcm: *mut snd_pcm_t,
2091 params: *mut snd_pcm_hw_params_t,
2092 val: ::std::os::raw::c_uint,
2093 ) -> ::std::os::raw::c_int;
2094}
2095extern "C" {
2096 pub fn snd_pcm_hw_params_set_channels(
2097 pcm: *mut snd_pcm_t,
2098 params: *mut snd_pcm_hw_params_t,
2099 val: ::std::os::raw::c_uint,
2100 ) -> ::std::os::raw::c_int;
2101}
2102extern "C" {
2103 pub fn snd_pcm_hw_params_set_channels_min(
2104 pcm: *mut snd_pcm_t,
2105 params: *mut snd_pcm_hw_params_t,
2106 val: *mut ::std::os::raw::c_uint,
2107 ) -> ::std::os::raw::c_int;
2108}
2109extern "C" {
2110 pub fn snd_pcm_hw_params_set_channels_max(
2111 pcm: *mut snd_pcm_t,
2112 params: *mut snd_pcm_hw_params_t,
2113 val: *mut ::std::os::raw::c_uint,
2114 ) -> ::std::os::raw::c_int;
2115}
2116extern "C" {
2117 pub fn snd_pcm_hw_params_set_channels_minmax(
2118 pcm: *mut snd_pcm_t,
2119 params: *mut snd_pcm_hw_params_t,
2120 min: *mut ::std::os::raw::c_uint,
2121 max: *mut ::std::os::raw::c_uint,
2122 ) -> ::std::os::raw::c_int;
2123}
2124extern "C" {
2125 pub fn snd_pcm_hw_params_set_channels_near(
2126 pcm: *mut snd_pcm_t,
2127 params: *mut snd_pcm_hw_params_t,
2128 val: *mut ::std::os::raw::c_uint,
2129 ) -> ::std::os::raw::c_int;
2130}
2131extern "C" {
2132 pub fn snd_pcm_hw_params_set_channels_first(
2133 pcm: *mut snd_pcm_t,
2134 params: *mut snd_pcm_hw_params_t,
2135 val: *mut ::std::os::raw::c_uint,
2136 ) -> ::std::os::raw::c_int;
2137}
2138extern "C" {
2139 pub fn snd_pcm_hw_params_set_channels_last(
2140 pcm: *mut snd_pcm_t,
2141 params: *mut snd_pcm_hw_params_t,
2142 val: *mut ::std::os::raw::c_uint,
2143 ) -> ::std::os::raw::c_int;
2144}
2145extern "C" {
2146 pub fn snd_pcm_hw_params_get_rate(
2147 params: *const snd_pcm_hw_params_t,
2148 val: *mut ::std::os::raw::c_uint,
2149 dir: *mut ::std::os::raw::c_int,
2150 ) -> ::std::os::raw::c_int;
2151}
2152extern "C" {
2153 pub fn snd_pcm_hw_params_get_rate_min(
2154 params: *const snd_pcm_hw_params_t,
2155 val: *mut ::std::os::raw::c_uint,
2156 dir: *mut ::std::os::raw::c_int,
2157 ) -> ::std::os::raw::c_int;
2158}
2159extern "C" {
2160 pub fn snd_pcm_hw_params_get_rate_max(
2161 params: *const snd_pcm_hw_params_t,
2162 val: *mut ::std::os::raw::c_uint,
2163 dir: *mut ::std::os::raw::c_int,
2164 ) -> ::std::os::raw::c_int;
2165}
2166extern "C" {
2167 pub fn snd_pcm_hw_params_test_rate(
2168 pcm: *mut snd_pcm_t,
2169 params: *mut snd_pcm_hw_params_t,
2170 val: ::std::os::raw::c_uint,
2171 dir: ::std::os::raw::c_int,
2172 ) -> ::std::os::raw::c_int;
2173}
2174extern "C" {
2175 pub fn snd_pcm_hw_params_set_rate(
2176 pcm: *mut snd_pcm_t,
2177 params: *mut snd_pcm_hw_params_t,
2178 val: ::std::os::raw::c_uint,
2179 dir: ::std::os::raw::c_int,
2180 ) -> ::std::os::raw::c_int;
2181}
2182extern "C" {
2183 pub fn snd_pcm_hw_params_set_rate_min(
2184 pcm: *mut snd_pcm_t,
2185 params: *mut snd_pcm_hw_params_t,
2186 val: *mut ::std::os::raw::c_uint,
2187 dir: *mut ::std::os::raw::c_int,
2188 ) -> ::std::os::raw::c_int;
2189}
2190extern "C" {
2191 pub fn snd_pcm_hw_params_set_rate_max(
2192 pcm: *mut snd_pcm_t,
2193 params: *mut snd_pcm_hw_params_t,
2194 val: *mut ::std::os::raw::c_uint,
2195 dir: *mut ::std::os::raw::c_int,
2196 ) -> ::std::os::raw::c_int;
2197}
2198extern "C" {
2199 pub fn snd_pcm_hw_params_set_rate_minmax(
2200 pcm: *mut snd_pcm_t,
2201 params: *mut snd_pcm_hw_params_t,
2202 min: *mut ::std::os::raw::c_uint,
2203 mindir: *mut ::std::os::raw::c_int,
2204 max: *mut ::std::os::raw::c_uint,
2205 maxdir: *mut ::std::os::raw::c_int,
2206 ) -> ::std::os::raw::c_int;
2207}
2208extern "C" {
2209 pub fn snd_pcm_hw_params_set_rate_near(
2210 pcm: *mut snd_pcm_t,
2211 params: *mut snd_pcm_hw_params_t,
2212 val: *mut ::std::os::raw::c_uint,
2213 dir: *mut ::std::os::raw::c_int,
2214 ) -> ::std::os::raw::c_int;
2215}
2216extern "C" {
2217 pub fn snd_pcm_hw_params_set_rate_first(
2218 pcm: *mut snd_pcm_t,
2219 params: *mut snd_pcm_hw_params_t,
2220 val: *mut ::std::os::raw::c_uint,
2221 dir: *mut ::std::os::raw::c_int,
2222 ) -> ::std::os::raw::c_int;
2223}
2224extern "C" {
2225 pub fn snd_pcm_hw_params_set_rate_last(
2226 pcm: *mut snd_pcm_t,
2227 params: *mut snd_pcm_hw_params_t,
2228 val: *mut ::std::os::raw::c_uint,
2229 dir: *mut ::std::os::raw::c_int,
2230 ) -> ::std::os::raw::c_int;
2231}
2232extern "C" {
2233 pub fn snd_pcm_hw_params_set_rate_resample(
2234 pcm: *mut snd_pcm_t,
2235 params: *mut snd_pcm_hw_params_t,
2236 val: ::std::os::raw::c_uint,
2237 ) -> ::std::os::raw::c_int;
2238}
2239extern "C" {
2240 pub fn snd_pcm_hw_params_get_rate_resample(
2241 pcm: *mut snd_pcm_t,
2242 params: *mut snd_pcm_hw_params_t,
2243 val: *mut ::std::os::raw::c_uint,
2244 ) -> ::std::os::raw::c_int;
2245}
2246extern "C" {
2247 pub fn snd_pcm_hw_params_set_export_buffer(
2248 pcm: *mut snd_pcm_t,
2249 params: *mut snd_pcm_hw_params_t,
2250 val: ::std::os::raw::c_uint,
2251 ) -> ::std::os::raw::c_int;
2252}
2253extern "C" {
2254 pub fn snd_pcm_hw_params_get_export_buffer(
2255 pcm: *mut snd_pcm_t,
2256 params: *mut snd_pcm_hw_params_t,
2257 val: *mut ::std::os::raw::c_uint,
2258 ) -> ::std::os::raw::c_int;
2259}
2260extern "C" {
2261 pub fn snd_pcm_hw_params_set_period_wakeup(
2262 pcm: *mut snd_pcm_t,
2263 params: *mut snd_pcm_hw_params_t,
2264 val: ::std::os::raw::c_uint,
2265 ) -> ::std::os::raw::c_int;
2266}
2267extern "C" {
2268 pub fn snd_pcm_hw_params_get_period_wakeup(
2269 pcm: *mut snd_pcm_t,
2270 params: *mut snd_pcm_hw_params_t,
2271 val: *mut ::std::os::raw::c_uint,
2272 ) -> ::std::os::raw::c_int;
2273}
2274extern "C" {
2275 pub fn snd_pcm_hw_params_get_period_time(
2276 params: *const snd_pcm_hw_params_t,
2277 val: *mut ::std::os::raw::c_uint,
2278 dir: *mut ::std::os::raw::c_int,
2279 ) -> ::std::os::raw::c_int;
2280}
2281extern "C" {
2282 pub fn snd_pcm_hw_params_get_period_time_min(
2283 params: *const snd_pcm_hw_params_t,
2284 val: *mut ::std::os::raw::c_uint,
2285 dir: *mut ::std::os::raw::c_int,
2286 ) -> ::std::os::raw::c_int;
2287}
2288extern "C" {
2289 pub fn snd_pcm_hw_params_get_period_time_max(
2290 params: *const snd_pcm_hw_params_t,
2291 val: *mut ::std::os::raw::c_uint,
2292 dir: *mut ::std::os::raw::c_int,
2293 ) -> ::std::os::raw::c_int;
2294}
2295extern "C" {
2296 pub fn snd_pcm_hw_params_test_period_time(
2297 pcm: *mut snd_pcm_t,
2298 params: *mut snd_pcm_hw_params_t,
2299 val: ::std::os::raw::c_uint,
2300 dir: ::std::os::raw::c_int,
2301 ) -> ::std::os::raw::c_int;
2302}
2303extern "C" {
2304 pub fn snd_pcm_hw_params_set_period_time(
2305 pcm: *mut snd_pcm_t,
2306 params: *mut snd_pcm_hw_params_t,
2307 val: ::std::os::raw::c_uint,
2308 dir: ::std::os::raw::c_int,
2309 ) -> ::std::os::raw::c_int;
2310}
2311extern "C" {
2312 pub fn snd_pcm_hw_params_set_period_time_min(
2313 pcm: *mut snd_pcm_t,
2314 params: *mut snd_pcm_hw_params_t,
2315 val: *mut ::std::os::raw::c_uint,
2316 dir: *mut ::std::os::raw::c_int,
2317 ) -> ::std::os::raw::c_int;
2318}
2319extern "C" {
2320 pub fn snd_pcm_hw_params_set_period_time_max(
2321 pcm: *mut snd_pcm_t,
2322 params: *mut snd_pcm_hw_params_t,
2323 val: *mut ::std::os::raw::c_uint,
2324 dir: *mut ::std::os::raw::c_int,
2325 ) -> ::std::os::raw::c_int;
2326}
2327extern "C" {
2328 pub fn snd_pcm_hw_params_set_period_time_minmax(
2329 pcm: *mut snd_pcm_t,
2330 params: *mut snd_pcm_hw_params_t,
2331 min: *mut ::std::os::raw::c_uint,
2332 mindir: *mut ::std::os::raw::c_int,
2333 max: *mut ::std::os::raw::c_uint,
2334 maxdir: *mut ::std::os::raw::c_int,
2335 ) -> ::std::os::raw::c_int;
2336}
2337extern "C" {
2338 pub fn snd_pcm_hw_params_set_period_time_near(
2339 pcm: *mut snd_pcm_t,
2340 params: *mut snd_pcm_hw_params_t,
2341 val: *mut ::std::os::raw::c_uint,
2342 dir: *mut ::std::os::raw::c_int,
2343 ) -> ::std::os::raw::c_int;
2344}
2345extern "C" {
2346 pub fn snd_pcm_hw_params_set_period_time_first(
2347 pcm: *mut snd_pcm_t,
2348 params: *mut snd_pcm_hw_params_t,
2349 val: *mut ::std::os::raw::c_uint,
2350 dir: *mut ::std::os::raw::c_int,
2351 ) -> ::std::os::raw::c_int;
2352}
2353extern "C" {
2354 pub fn snd_pcm_hw_params_set_period_time_last(
2355 pcm: *mut snd_pcm_t,
2356 params: *mut snd_pcm_hw_params_t,
2357 val: *mut ::std::os::raw::c_uint,
2358 dir: *mut ::std::os::raw::c_int,
2359 ) -> ::std::os::raw::c_int;
2360}
2361extern "C" {
2362 pub fn snd_pcm_hw_params_get_period_size(
2363 params: *const snd_pcm_hw_params_t,
2364 frames: *mut snd_pcm_uframes_t,
2365 dir: *mut ::std::os::raw::c_int,
2366 ) -> ::std::os::raw::c_int;
2367}
2368extern "C" {
2369 pub fn snd_pcm_hw_params_get_period_size_min(
2370 params: *const snd_pcm_hw_params_t,
2371 frames: *mut snd_pcm_uframes_t,
2372 dir: *mut ::std::os::raw::c_int,
2373 ) -> ::std::os::raw::c_int;
2374}
2375extern "C" {
2376 pub fn snd_pcm_hw_params_get_period_size_max(
2377 params: *const snd_pcm_hw_params_t,
2378 frames: *mut snd_pcm_uframes_t,
2379 dir: *mut ::std::os::raw::c_int,
2380 ) -> ::std::os::raw::c_int;
2381}
2382extern "C" {
2383 pub fn snd_pcm_hw_params_test_period_size(
2384 pcm: *mut snd_pcm_t,
2385 params: *mut snd_pcm_hw_params_t,
2386 val: snd_pcm_uframes_t,
2387 dir: ::std::os::raw::c_int,
2388 ) -> ::std::os::raw::c_int;
2389}
2390extern "C" {
2391 pub fn snd_pcm_hw_params_set_period_size(
2392 pcm: *mut snd_pcm_t,
2393 params: *mut snd_pcm_hw_params_t,
2394 val: snd_pcm_uframes_t,
2395 dir: ::std::os::raw::c_int,
2396 ) -> ::std::os::raw::c_int;
2397}
2398extern "C" {
2399 pub fn snd_pcm_hw_params_set_period_size_min(
2400 pcm: *mut snd_pcm_t,
2401 params: *mut snd_pcm_hw_params_t,
2402 val: *mut snd_pcm_uframes_t,
2403 dir: *mut ::std::os::raw::c_int,
2404 ) -> ::std::os::raw::c_int;
2405}
2406extern "C" {
2407 pub fn snd_pcm_hw_params_set_period_size_max(
2408 pcm: *mut snd_pcm_t,
2409 params: *mut snd_pcm_hw_params_t,
2410 val: *mut snd_pcm_uframes_t,
2411 dir: *mut ::std::os::raw::c_int,
2412 ) -> ::std::os::raw::c_int;
2413}
2414extern "C" {
2415 pub fn snd_pcm_hw_params_set_period_size_minmax(
2416 pcm: *mut snd_pcm_t,
2417 params: *mut snd_pcm_hw_params_t,
2418 min: *mut snd_pcm_uframes_t,
2419 mindir: *mut ::std::os::raw::c_int,
2420 max: *mut snd_pcm_uframes_t,
2421 maxdir: *mut ::std::os::raw::c_int,
2422 ) -> ::std::os::raw::c_int;
2423}
2424extern "C" {
2425 pub fn snd_pcm_hw_params_set_period_size_near(
2426 pcm: *mut snd_pcm_t,
2427 params: *mut snd_pcm_hw_params_t,
2428 val: *mut snd_pcm_uframes_t,
2429 dir: *mut ::std::os::raw::c_int,
2430 ) -> ::std::os::raw::c_int;
2431}
2432extern "C" {
2433 pub fn snd_pcm_hw_params_set_period_size_first(
2434 pcm: *mut snd_pcm_t,
2435 params: *mut snd_pcm_hw_params_t,
2436 val: *mut snd_pcm_uframes_t,
2437 dir: *mut ::std::os::raw::c_int,
2438 ) -> ::std::os::raw::c_int;
2439}
2440extern "C" {
2441 pub fn snd_pcm_hw_params_set_period_size_last(
2442 pcm: *mut snd_pcm_t,
2443 params: *mut snd_pcm_hw_params_t,
2444 val: *mut snd_pcm_uframes_t,
2445 dir: *mut ::std::os::raw::c_int,
2446 ) -> ::std::os::raw::c_int;
2447}
2448extern "C" {
2449 pub fn snd_pcm_hw_params_set_period_size_integer(
2450 pcm: *mut snd_pcm_t,
2451 params: *mut snd_pcm_hw_params_t,
2452 ) -> ::std::os::raw::c_int;
2453}
2454extern "C" {
2455 pub fn snd_pcm_hw_params_get_periods(
2456 params: *const snd_pcm_hw_params_t,
2457 val: *mut ::std::os::raw::c_uint,
2458 dir: *mut ::std::os::raw::c_int,
2459 ) -> ::std::os::raw::c_int;
2460}
2461extern "C" {
2462 pub fn snd_pcm_hw_params_get_periods_min(
2463 params: *const snd_pcm_hw_params_t,
2464 val: *mut ::std::os::raw::c_uint,
2465 dir: *mut ::std::os::raw::c_int,
2466 ) -> ::std::os::raw::c_int;
2467}
2468extern "C" {
2469 pub fn snd_pcm_hw_params_get_periods_max(
2470 params: *const snd_pcm_hw_params_t,
2471 val: *mut ::std::os::raw::c_uint,
2472 dir: *mut ::std::os::raw::c_int,
2473 ) -> ::std::os::raw::c_int;
2474}
2475extern "C" {
2476 pub fn snd_pcm_hw_params_test_periods(
2477 pcm: *mut snd_pcm_t,
2478 params: *mut snd_pcm_hw_params_t,
2479 val: ::std::os::raw::c_uint,
2480 dir: ::std::os::raw::c_int,
2481 ) -> ::std::os::raw::c_int;
2482}
2483extern "C" {
2484 pub fn snd_pcm_hw_params_set_periods(
2485 pcm: *mut snd_pcm_t,
2486 params: *mut snd_pcm_hw_params_t,
2487 val: ::std::os::raw::c_uint,
2488 dir: ::std::os::raw::c_int,
2489 ) -> ::std::os::raw::c_int;
2490}
2491extern "C" {
2492 pub fn snd_pcm_hw_params_set_periods_min(
2493 pcm: *mut snd_pcm_t,
2494 params: *mut snd_pcm_hw_params_t,
2495 val: *mut ::std::os::raw::c_uint,
2496 dir: *mut ::std::os::raw::c_int,
2497 ) -> ::std::os::raw::c_int;
2498}
2499extern "C" {
2500 pub fn snd_pcm_hw_params_set_periods_max(
2501 pcm: *mut snd_pcm_t,
2502 params: *mut snd_pcm_hw_params_t,
2503 val: *mut ::std::os::raw::c_uint,
2504 dir: *mut ::std::os::raw::c_int,
2505 ) -> ::std::os::raw::c_int;
2506}
2507extern "C" {
2508 pub fn snd_pcm_hw_params_set_periods_minmax(
2509 pcm: *mut snd_pcm_t,
2510 params: *mut snd_pcm_hw_params_t,
2511 min: *mut ::std::os::raw::c_uint,
2512 mindir: *mut ::std::os::raw::c_int,
2513 max: *mut ::std::os::raw::c_uint,
2514 maxdir: *mut ::std::os::raw::c_int,
2515 ) -> ::std::os::raw::c_int;
2516}
2517extern "C" {
2518 pub fn snd_pcm_hw_params_set_periods_near(
2519 pcm: *mut snd_pcm_t,
2520 params: *mut snd_pcm_hw_params_t,
2521 val: *mut ::std::os::raw::c_uint,
2522 dir: *mut ::std::os::raw::c_int,
2523 ) -> ::std::os::raw::c_int;
2524}
2525extern "C" {
2526 pub fn snd_pcm_hw_params_set_periods_first(
2527 pcm: *mut snd_pcm_t,
2528 params: *mut snd_pcm_hw_params_t,
2529 val: *mut ::std::os::raw::c_uint,
2530 dir: *mut ::std::os::raw::c_int,
2531 ) -> ::std::os::raw::c_int;
2532}
2533extern "C" {
2534 pub fn snd_pcm_hw_params_set_periods_last(
2535 pcm: *mut snd_pcm_t,
2536 params: *mut snd_pcm_hw_params_t,
2537 val: *mut ::std::os::raw::c_uint,
2538 dir: *mut ::std::os::raw::c_int,
2539 ) -> ::std::os::raw::c_int;
2540}
2541extern "C" {
2542 pub fn snd_pcm_hw_params_set_periods_integer(
2543 pcm: *mut snd_pcm_t,
2544 params: *mut snd_pcm_hw_params_t,
2545 ) -> ::std::os::raw::c_int;
2546}
2547extern "C" {
2548 pub fn snd_pcm_hw_params_get_buffer_time(
2549 params: *const snd_pcm_hw_params_t,
2550 val: *mut ::std::os::raw::c_uint,
2551 dir: *mut ::std::os::raw::c_int,
2552 ) -> ::std::os::raw::c_int;
2553}
2554extern "C" {
2555 pub fn snd_pcm_hw_params_get_buffer_time_min(
2556 params: *const snd_pcm_hw_params_t,
2557 val: *mut ::std::os::raw::c_uint,
2558 dir: *mut ::std::os::raw::c_int,
2559 ) -> ::std::os::raw::c_int;
2560}
2561extern "C" {
2562 pub fn snd_pcm_hw_params_get_buffer_time_max(
2563 params: *const snd_pcm_hw_params_t,
2564 val: *mut ::std::os::raw::c_uint,
2565 dir: *mut ::std::os::raw::c_int,
2566 ) -> ::std::os::raw::c_int;
2567}
2568extern "C" {
2569 pub fn snd_pcm_hw_params_test_buffer_time(
2570 pcm: *mut snd_pcm_t,
2571 params: *mut snd_pcm_hw_params_t,
2572 val: ::std::os::raw::c_uint,
2573 dir: ::std::os::raw::c_int,
2574 ) -> ::std::os::raw::c_int;
2575}
2576extern "C" {
2577 pub fn snd_pcm_hw_params_set_buffer_time(
2578 pcm: *mut snd_pcm_t,
2579 params: *mut snd_pcm_hw_params_t,
2580 val: ::std::os::raw::c_uint,
2581 dir: ::std::os::raw::c_int,
2582 ) -> ::std::os::raw::c_int;
2583}
2584extern "C" {
2585 pub fn snd_pcm_hw_params_set_buffer_time_min(
2586 pcm: *mut snd_pcm_t,
2587 params: *mut snd_pcm_hw_params_t,
2588 val: *mut ::std::os::raw::c_uint,
2589 dir: *mut ::std::os::raw::c_int,
2590 ) -> ::std::os::raw::c_int;
2591}
2592extern "C" {
2593 pub fn snd_pcm_hw_params_set_buffer_time_max(
2594 pcm: *mut snd_pcm_t,
2595 params: *mut snd_pcm_hw_params_t,
2596 val: *mut ::std::os::raw::c_uint,
2597 dir: *mut ::std::os::raw::c_int,
2598 ) -> ::std::os::raw::c_int;
2599}
2600extern "C" {
2601 pub fn snd_pcm_hw_params_set_buffer_time_minmax(
2602 pcm: *mut snd_pcm_t,
2603 params: *mut snd_pcm_hw_params_t,
2604 min: *mut ::std::os::raw::c_uint,
2605 mindir: *mut ::std::os::raw::c_int,
2606 max: *mut ::std::os::raw::c_uint,
2607 maxdir: *mut ::std::os::raw::c_int,
2608 ) -> ::std::os::raw::c_int;
2609}
2610extern "C" {
2611 pub fn snd_pcm_hw_params_set_buffer_time_near(
2612 pcm: *mut snd_pcm_t,
2613 params: *mut snd_pcm_hw_params_t,
2614 val: *mut ::std::os::raw::c_uint,
2615 dir: *mut ::std::os::raw::c_int,
2616 ) -> ::std::os::raw::c_int;
2617}
2618extern "C" {
2619 pub fn snd_pcm_hw_params_set_buffer_time_first(
2620 pcm: *mut snd_pcm_t,
2621 params: *mut snd_pcm_hw_params_t,
2622 val: *mut ::std::os::raw::c_uint,
2623 dir: *mut ::std::os::raw::c_int,
2624 ) -> ::std::os::raw::c_int;
2625}
2626extern "C" {
2627 pub fn snd_pcm_hw_params_set_buffer_time_last(
2628 pcm: *mut snd_pcm_t,
2629 params: *mut snd_pcm_hw_params_t,
2630 val: *mut ::std::os::raw::c_uint,
2631 dir: *mut ::std::os::raw::c_int,
2632 ) -> ::std::os::raw::c_int;
2633}
2634extern "C" {
2635 pub fn snd_pcm_hw_params_get_buffer_size(
2636 params: *const snd_pcm_hw_params_t,
2637 val: *mut snd_pcm_uframes_t,
2638 ) -> ::std::os::raw::c_int;
2639}
2640extern "C" {
2641 pub fn snd_pcm_hw_params_get_buffer_size_min(
2642 params: *const snd_pcm_hw_params_t,
2643 val: *mut snd_pcm_uframes_t,
2644 ) -> ::std::os::raw::c_int;
2645}
2646extern "C" {
2647 pub fn snd_pcm_hw_params_get_buffer_size_max(
2648 params: *const snd_pcm_hw_params_t,
2649 val: *mut snd_pcm_uframes_t,
2650 ) -> ::std::os::raw::c_int;
2651}
2652extern "C" {
2653 pub fn snd_pcm_hw_params_test_buffer_size(
2654 pcm: *mut snd_pcm_t,
2655 params: *mut snd_pcm_hw_params_t,
2656 val: snd_pcm_uframes_t,
2657 ) -> ::std::os::raw::c_int;
2658}
2659extern "C" {
2660 pub fn snd_pcm_hw_params_set_buffer_size(
2661 pcm: *mut snd_pcm_t,
2662 params: *mut snd_pcm_hw_params_t,
2663 val: snd_pcm_uframes_t,
2664 ) -> ::std::os::raw::c_int;
2665}
2666extern "C" {
2667 pub fn snd_pcm_hw_params_set_buffer_size_min(
2668 pcm: *mut snd_pcm_t,
2669 params: *mut snd_pcm_hw_params_t,
2670 val: *mut snd_pcm_uframes_t,
2671 ) -> ::std::os::raw::c_int;
2672}
2673extern "C" {
2674 pub fn snd_pcm_hw_params_set_buffer_size_max(
2675 pcm: *mut snd_pcm_t,
2676 params: *mut snd_pcm_hw_params_t,
2677 val: *mut snd_pcm_uframes_t,
2678 ) -> ::std::os::raw::c_int;
2679}
2680extern "C" {
2681 pub fn snd_pcm_hw_params_set_buffer_size_minmax(
2682 pcm: *mut snd_pcm_t,
2683 params: *mut snd_pcm_hw_params_t,
2684 min: *mut snd_pcm_uframes_t,
2685 max: *mut snd_pcm_uframes_t,
2686 ) -> ::std::os::raw::c_int;
2687}
2688extern "C" {
2689 pub fn snd_pcm_hw_params_set_buffer_size_near(
2690 pcm: *mut snd_pcm_t,
2691 params: *mut snd_pcm_hw_params_t,
2692 val: *mut snd_pcm_uframes_t,
2693 ) -> ::std::os::raw::c_int;
2694}
2695extern "C" {
2696 pub fn snd_pcm_hw_params_set_buffer_size_first(
2697 pcm: *mut snd_pcm_t,
2698 params: *mut snd_pcm_hw_params_t,
2699 val: *mut snd_pcm_uframes_t,
2700 ) -> ::std::os::raw::c_int;
2701}
2702extern "C" {
2703 pub fn snd_pcm_hw_params_set_buffer_size_last(
2704 pcm: *mut snd_pcm_t,
2705 params: *mut snd_pcm_hw_params_t,
2706 val: *mut snd_pcm_uframes_t,
2707 ) -> ::std::os::raw::c_int;
2708}
2709extern "C" {
2710 pub fn snd_pcm_hw_params_get_min_align(
2711 params: *const snd_pcm_hw_params_t,
2712 val: *mut snd_pcm_uframes_t,
2713 ) -> ::std::os::raw::c_int;
2714}
2715extern "C" {
2716 #[doc = " \\defgroup PCM_SW_Params Software Parameters"]
2717 #[doc = " \\ingroup PCM"]
2718 #[doc = " See the \\ref pcm page for more details."]
2719 #[doc = " \\{"]
2720 pub fn snd_pcm_sw_params_sizeof() -> usize;
2721}
2722extern "C" {
2723 pub fn snd_pcm_sw_params_malloc(ptr: *mut *mut snd_pcm_sw_params_t) -> ::std::os::raw::c_int;
2724}
2725extern "C" {
2726 pub fn snd_pcm_sw_params_free(obj: *mut snd_pcm_sw_params_t);
2727}
2728extern "C" {
2729 pub fn snd_pcm_sw_params_copy(dst: *mut snd_pcm_sw_params_t, src: *const snd_pcm_sw_params_t);
2730}
2731extern "C" {
2732 pub fn snd_pcm_sw_params_get_boundary(
2733 params: *const snd_pcm_sw_params_t,
2734 val: *mut snd_pcm_uframes_t,
2735 ) -> ::std::os::raw::c_int;
2736}
2737extern "C" {
2738 pub fn snd_pcm_sw_params_set_tstamp_mode(
2739 pcm: *mut snd_pcm_t,
2740 params: *mut snd_pcm_sw_params_t,
2741 val: snd_pcm_tstamp_t,
2742 ) -> ::std::os::raw::c_int;
2743}
2744extern "C" {
2745 pub fn snd_pcm_sw_params_get_tstamp_mode(
2746 params: *const snd_pcm_sw_params_t,
2747 val: *mut snd_pcm_tstamp_t,
2748 ) -> ::std::os::raw::c_int;
2749}
2750extern "C" {
2751 pub fn snd_pcm_sw_params_set_tstamp_type(
2752 pcm: *mut snd_pcm_t,
2753 params: *mut snd_pcm_sw_params_t,
2754 val: snd_pcm_tstamp_type_t,
2755 ) -> ::std::os::raw::c_int;
2756}
2757extern "C" {
2758 pub fn snd_pcm_sw_params_get_tstamp_type(
2759 params: *const snd_pcm_sw_params_t,
2760 val: *mut snd_pcm_tstamp_type_t,
2761 ) -> ::std::os::raw::c_int;
2762}
2763extern "C" {
2764 pub fn snd_pcm_sw_params_set_avail_min(
2765 pcm: *mut snd_pcm_t,
2766 params: *mut snd_pcm_sw_params_t,
2767 val: snd_pcm_uframes_t,
2768 ) -> ::std::os::raw::c_int;
2769}
2770extern "C" {
2771 pub fn snd_pcm_sw_params_get_avail_min(
2772 params: *const snd_pcm_sw_params_t,
2773 val: *mut snd_pcm_uframes_t,
2774 ) -> ::std::os::raw::c_int;
2775}
2776extern "C" {
2777 pub fn snd_pcm_sw_params_set_period_event(
2778 pcm: *mut snd_pcm_t,
2779 params: *mut snd_pcm_sw_params_t,
2780 val: ::std::os::raw::c_int,
2781 ) -> ::std::os::raw::c_int;
2782}
2783extern "C" {
2784 pub fn snd_pcm_sw_params_get_period_event(
2785 params: *const snd_pcm_sw_params_t,
2786 val: *mut ::std::os::raw::c_int,
2787 ) -> ::std::os::raw::c_int;
2788}
2789extern "C" {
2790 pub fn snd_pcm_sw_params_set_start_threshold(
2791 pcm: *mut snd_pcm_t,
2792 params: *mut snd_pcm_sw_params_t,
2793 val: snd_pcm_uframes_t,
2794 ) -> ::std::os::raw::c_int;
2795}
2796extern "C" {
2797 pub fn snd_pcm_sw_params_get_start_threshold(
2798 paramsm: *const snd_pcm_sw_params_t,
2799 val: *mut snd_pcm_uframes_t,
2800 ) -> ::std::os::raw::c_int;
2801}
2802extern "C" {
2803 pub fn snd_pcm_sw_params_set_stop_threshold(
2804 pcm: *mut snd_pcm_t,
2805 params: *mut snd_pcm_sw_params_t,
2806 val: snd_pcm_uframes_t,
2807 ) -> ::std::os::raw::c_int;
2808}
2809extern "C" {
2810 pub fn snd_pcm_sw_params_get_stop_threshold(
2811 params: *const snd_pcm_sw_params_t,
2812 val: *mut snd_pcm_uframes_t,
2813 ) -> ::std::os::raw::c_int;
2814}
2815extern "C" {
2816 pub fn snd_pcm_sw_params_set_silence_threshold(
2817 pcm: *mut snd_pcm_t,
2818 params: *mut snd_pcm_sw_params_t,
2819 val: snd_pcm_uframes_t,
2820 ) -> ::std::os::raw::c_int;
2821}
2822extern "C" {
2823 pub fn snd_pcm_sw_params_get_silence_threshold(
2824 params: *const snd_pcm_sw_params_t,
2825 val: *mut snd_pcm_uframes_t,
2826 ) -> ::std::os::raw::c_int;
2827}
2828extern "C" {
2829 pub fn snd_pcm_sw_params_set_silence_size(
2830 pcm: *mut snd_pcm_t,
2831 params: *mut snd_pcm_sw_params_t,
2832 val: snd_pcm_uframes_t,
2833 ) -> ::std::os::raw::c_int;
2834}
2835extern "C" {
2836 pub fn snd_pcm_sw_params_get_silence_size(
2837 params: *const snd_pcm_sw_params_t,
2838 val: *mut snd_pcm_uframes_t,
2839 ) -> ::std::os::raw::c_int;
2840}
2841extern "C" {
2842 #[doc = " \\defgroup PCM_Access Access Mask Functions"]
2843 #[doc = " \\ingroup PCM"]
2844 #[doc = " See the \\ref pcm page for more details."]
2845 #[doc = " \\{"]
2846 pub fn snd_pcm_access_mask_sizeof() -> usize;
2847}
2848extern "C" {
2849 pub fn snd_pcm_access_mask_malloc(
2850 ptr: *mut *mut snd_pcm_access_mask_t,
2851 ) -> ::std::os::raw::c_int;
2852}
2853extern "C" {
2854 pub fn snd_pcm_access_mask_free(obj: *mut snd_pcm_access_mask_t);
2855}
2856extern "C" {
2857 pub fn snd_pcm_access_mask_copy(
2858 dst: *mut snd_pcm_access_mask_t,
2859 src: *const snd_pcm_access_mask_t,
2860 );
2861}
2862extern "C" {
2863 pub fn snd_pcm_access_mask_none(mask: *mut snd_pcm_access_mask_t);
2864}
2865extern "C" {
2866 pub fn snd_pcm_access_mask_any(mask: *mut snd_pcm_access_mask_t);
2867}
2868extern "C" {
2869 pub fn snd_pcm_access_mask_test(
2870 mask: *const snd_pcm_access_mask_t,
2871 val: snd_pcm_access_t,
2872 ) -> ::std::os::raw::c_int;
2873}
2874extern "C" {
2875 pub fn snd_pcm_access_mask_empty(mask: *const snd_pcm_access_mask_t) -> ::std::os::raw::c_int;
2876}
2877extern "C" {
2878 pub fn snd_pcm_access_mask_set(mask: *mut snd_pcm_access_mask_t, val: snd_pcm_access_t);
2879}
2880extern "C" {
2881 pub fn snd_pcm_access_mask_reset(mask: *mut snd_pcm_access_mask_t, val: snd_pcm_access_t);
2882}
2883extern "C" {
2884 #[doc = " \\defgroup PCM_Format Format Mask Functions"]
2885 #[doc = " \\ingroup PCM"]
2886 #[doc = " See the \\ref pcm page for more details."]
2887 #[doc = " \\{"]
2888 pub fn snd_pcm_format_mask_sizeof() -> usize;
2889}
2890extern "C" {
2891 pub fn snd_pcm_format_mask_malloc(
2892 ptr: *mut *mut snd_pcm_format_mask_t,
2893 ) -> ::std::os::raw::c_int;
2894}
2895extern "C" {
2896 pub fn snd_pcm_format_mask_free(obj: *mut snd_pcm_format_mask_t);
2897}
2898extern "C" {
2899 pub fn snd_pcm_format_mask_copy(
2900 dst: *mut snd_pcm_format_mask_t,
2901 src: *const snd_pcm_format_mask_t,
2902 );
2903}
2904extern "C" {
2905 pub fn snd_pcm_format_mask_none(mask: *mut snd_pcm_format_mask_t);
2906}
2907extern "C" {
2908 pub fn snd_pcm_format_mask_any(mask: *mut snd_pcm_format_mask_t);
2909}
2910extern "C" {
2911 pub fn snd_pcm_format_mask_test(
2912 mask: *const snd_pcm_format_mask_t,
2913 val: snd_pcm_format_t,
2914 ) -> ::std::os::raw::c_int;
2915}
2916extern "C" {
2917 pub fn snd_pcm_format_mask_empty(mask: *const snd_pcm_format_mask_t) -> ::std::os::raw::c_int;
2918}
2919extern "C" {
2920 pub fn snd_pcm_format_mask_set(mask: *mut snd_pcm_format_mask_t, val: snd_pcm_format_t);
2921}
2922extern "C" {
2923 pub fn snd_pcm_format_mask_reset(mask: *mut snd_pcm_format_mask_t, val: snd_pcm_format_t);
2924}
2925extern "C" {
2926 #[doc = " \\defgroup PCM_SubFormat Subformat Mask Functions"]
2927 #[doc = " \\ingroup PCM"]
2928 #[doc = " See the \\ref pcm page for more details."]
2929 #[doc = " \\{"]
2930 pub fn snd_pcm_subformat_mask_sizeof() -> usize;
2931}
2932extern "C" {
2933 pub fn snd_pcm_subformat_mask_malloc(
2934 ptr: *mut *mut snd_pcm_subformat_mask_t,
2935 ) -> ::std::os::raw::c_int;
2936}
2937extern "C" {
2938 pub fn snd_pcm_subformat_mask_free(obj: *mut snd_pcm_subformat_mask_t);
2939}
2940extern "C" {
2941 pub fn snd_pcm_subformat_mask_copy(
2942 dst: *mut snd_pcm_subformat_mask_t,
2943 src: *const snd_pcm_subformat_mask_t,
2944 );
2945}
2946extern "C" {
2947 pub fn snd_pcm_subformat_mask_none(mask: *mut snd_pcm_subformat_mask_t);
2948}
2949extern "C" {
2950 pub fn snd_pcm_subformat_mask_any(mask: *mut snd_pcm_subformat_mask_t);
2951}
2952extern "C" {
2953 pub fn snd_pcm_subformat_mask_test(
2954 mask: *const snd_pcm_subformat_mask_t,
2955 val: snd_pcm_subformat_t,
2956 ) -> ::std::os::raw::c_int;
2957}
2958extern "C" {
2959 pub fn snd_pcm_subformat_mask_empty(
2960 mask: *const snd_pcm_subformat_mask_t,
2961 ) -> ::std::os::raw::c_int;
2962}
2963extern "C" {
2964 pub fn snd_pcm_subformat_mask_set(
2965 mask: *mut snd_pcm_subformat_mask_t,
2966 val: snd_pcm_subformat_t,
2967 );
2968}
2969extern "C" {
2970 pub fn snd_pcm_subformat_mask_reset(
2971 mask: *mut snd_pcm_subformat_mask_t,
2972 val: snd_pcm_subformat_t,
2973 );
2974}
2975extern "C" {
2976 #[doc = " \\defgroup PCM_Status Status Functions"]
2977 #[doc = " \\ingroup PCM"]
2978 #[doc = " See the \\ref pcm page for more details."]
2979 #[doc = " \\{"]
2980 pub fn snd_pcm_status_sizeof() -> usize;
2981}
2982extern "C" {
2983 pub fn snd_pcm_status_malloc(ptr: *mut *mut snd_pcm_status_t) -> ::std::os::raw::c_int;
2984}
2985extern "C" {
2986 pub fn snd_pcm_status_free(obj: *mut snd_pcm_status_t);
2987}
2988extern "C" {
2989 pub fn snd_pcm_status_copy(dst: *mut snd_pcm_status_t, src: *const snd_pcm_status_t);
2990}
2991extern "C" {
2992 pub fn snd_pcm_status_get_state(obj: *const snd_pcm_status_t) -> snd_pcm_state_t;
2993}
2994extern "C" {
2995 pub fn snd_pcm_status_get_trigger_tstamp(
2996 obj: *const snd_pcm_status_t,
2997 ptr: *mut snd_timestamp_t,
2998 );
2999}
3000extern "C" {
3001 pub fn snd_pcm_status_get_trigger_htstamp(
3002 obj: *const snd_pcm_status_t,
3003 ptr: *mut snd_htimestamp_t,
3004 );
3005}
3006extern "C" {
3007 pub fn snd_pcm_status_get_tstamp(obj: *const snd_pcm_status_t, ptr: *mut snd_timestamp_t);
3008}
3009extern "C" {
3010 pub fn snd_pcm_status_get_htstamp(obj: *const snd_pcm_status_t, ptr: *mut snd_htimestamp_t);
3011}
3012extern "C" {
3013 pub fn snd_pcm_status_get_audio_htstamp(
3014 obj: *const snd_pcm_status_t,
3015 ptr: *mut snd_htimestamp_t,
3016 );
3017}
3018extern "C" {
3019 pub fn snd_pcm_status_get_driver_htstamp(
3020 obj: *const snd_pcm_status_t,
3021 ptr: *mut snd_htimestamp_t,
3022 );
3023}
3024extern "C" {
3025 pub fn snd_pcm_status_get_audio_htstamp_report(
3026 obj: *const snd_pcm_status_t,
3027 audio_tstamp_report: *mut snd_pcm_audio_tstamp_report_t,
3028 );
3029}
3030extern "C" {
3031 pub fn snd_pcm_status_set_audio_htstamp_config(
3032 obj: *mut snd_pcm_status_t,
3033 audio_tstamp_config: *mut snd_pcm_audio_tstamp_config_t,
3034 );
3035}
3036extern "C" {
3037 pub fn snd_pcm_status_get_delay(obj: *const snd_pcm_status_t) -> snd_pcm_sframes_t;
3038}
3039extern "C" {
3040 pub fn snd_pcm_status_get_avail(obj: *const snd_pcm_status_t) -> snd_pcm_uframes_t;
3041}
3042extern "C" {
3043 pub fn snd_pcm_status_get_avail_max(obj: *const snd_pcm_status_t) -> snd_pcm_uframes_t;
3044}
3045extern "C" {
3046 pub fn snd_pcm_status_get_overrange(obj: *const snd_pcm_status_t) -> snd_pcm_uframes_t;
3047}
3048extern "C" {
3049 #[doc = " \\defgroup PCM_Description Description Functions"]
3050 #[doc = " \\ingroup PCM"]
3051 #[doc = " See the \\ref pcm page for more details."]
3052 #[doc = " \\{"]
3053 pub fn snd_pcm_type_name(type_: snd_pcm_type_t) -> *const ::std::os::raw::c_char;
3054}
3055extern "C" {
3056 pub fn snd_pcm_stream_name(stream: snd_pcm_stream_t) -> *const ::std::os::raw::c_char;
3057}
3058extern "C" {
3059 pub fn snd_pcm_access_name(_access: snd_pcm_access_t) -> *const ::std::os::raw::c_char;
3060}
3061extern "C" {
3062 pub fn snd_pcm_format_name(format: snd_pcm_format_t) -> *const ::std::os::raw::c_char;
3063}
3064extern "C" {
3065 pub fn snd_pcm_format_description(format: snd_pcm_format_t) -> *const ::std::os::raw::c_char;
3066}
3067extern "C" {
3068 pub fn snd_pcm_subformat_name(subformat: snd_pcm_subformat_t) -> *const ::std::os::raw::c_char;
3069}
3070extern "C" {
3071 pub fn snd_pcm_subformat_description(
3072 subformat: snd_pcm_subformat_t,
3073 ) -> *const ::std::os::raw::c_char;
3074}
3075extern "C" {
3076 pub fn snd_pcm_format_value(name: *const ::std::os::raw::c_char) -> snd_pcm_format_t;
3077}
3078extern "C" {
3079 pub fn snd_pcm_tstamp_mode_name(mode: snd_pcm_tstamp_t) -> *const ::std::os::raw::c_char;
3080}
3081extern "C" {
3082 pub fn snd_pcm_state_name(state: snd_pcm_state_t) -> *const ::std::os::raw::c_char;
3083}
3084extern "C" {
3085 #[doc = " \\defgroup PCM_Dump Debug Functions"]
3086 #[doc = " \\ingroup PCM"]
3087 #[doc = " See the \\ref pcm page for more details."]
3088 #[doc = " \\{"]
3089 pub fn snd_pcm_dump(pcm: *mut snd_pcm_t, out: *mut snd_output_t) -> ::std::os::raw::c_int;
3090}
3091extern "C" {
3092 pub fn snd_pcm_dump_hw_setup(
3093 pcm: *mut snd_pcm_t,
3094 out: *mut snd_output_t,
3095 ) -> ::std::os::raw::c_int;
3096}
3097extern "C" {
3098 pub fn snd_pcm_dump_sw_setup(
3099 pcm: *mut snd_pcm_t,
3100 out: *mut snd_output_t,
3101 ) -> ::std::os::raw::c_int;
3102}
3103extern "C" {
3104 pub fn snd_pcm_dump_setup(pcm: *mut snd_pcm_t, out: *mut snd_output_t)
3105 -> ::std::os::raw::c_int;
3106}
3107extern "C" {
3108 pub fn snd_pcm_hw_params_dump(
3109 params: *mut snd_pcm_hw_params_t,
3110 out: *mut snd_output_t,
3111 ) -> ::std::os::raw::c_int;
3112}
3113extern "C" {
3114 pub fn snd_pcm_sw_params_dump(
3115 params: *mut snd_pcm_sw_params_t,
3116 out: *mut snd_output_t,
3117 ) -> ::std::os::raw::c_int;
3118}
3119extern "C" {
3120 pub fn snd_pcm_status_dump(
3121 status: *mut snd_pcm_status_t,
3122 out: *mut snd_output_t,
3123 ) -> ::std::os::raw::c_int;
3124}
3125extern "C" {
3126 #[doc = " \\defgroup PCM_Direct Direct Access (MMAP) Functions"]
3127 #[doc = " \\ingroup PCM"]
3128 #[doc = " See the \\ref pcm page for more details."]
3129 #[doc = " \\{"]
3130 pub fn snd_pcm_mmap_begin(
3131 pcm: *mut snd_pcm_t,
3132 areas: *mut *const snd_pcm_channel_area_t,
3133 offset: *mut snd_pcm_uframes_t,
3134 frames: *mut snd_pcm_uframes_t,
3135 ) -> ::std::os::raw::c_int;
3136}
3137extern "C" {
3138 pub fn snd_pcm_mmap_commit(
3139 pcm: *mut snd_pcm_t,
3140 offset: snd_pcm_uframes_t,
3141 frames: snd_pcm_uframes_t,
3142 ) -> snd_pcm_sframes_t;
3143}
3144extern "C" {
3145 pub fn snd_pcm_mmap_writei(
3146 pcm: *mut snd_pcm_t,
3147 buffer: *const ::std::os::raw::c_void,
3148 size: snd_pcm_uframes_t,
3149 ) -> snd_pcm_sframes_t;
3150}
3151extern "C" {
3152 pub fn snd_pcm_mmap_readi(
3153 pcm: *mut snd_pcm_t,
3154 buffer: *mut ::std::os::raw::c_void,
3155 size: snd_pcm_uframes_t,
3156 ) -> snd_pcm_sframes_t;
3157}
3158extern "C" {
3159 pub fn snd_pcm_mmap_writen(
3160 pcm: *mut snd_pcm_t,
3161 bufs: *mut *mut ::std::os::raw::c_void,
3162 size: snd_pcm_uframes_t,
3163 ) -> snd_pcm_sframes_t;
3164}
3165extern "C" {
3166 pub fn snd_pcm_mmap_readn(
3167 pcm: *mut snd_pcm_t,
3168 bufs: *mut *mut ::std::os::raw::c_void,
3169 size: snd_pcm_uframes_t,
3170 ) -> snd_pcm_sframes_t;
3171}
3172extern "C" {
3173 #[doc = " \\defgroup PCM_Helpers Helper Functions"]
3174 #[doc = " \\ingroup PCM"]
3175 #[doc = " See the \\ref pcm page for more details."]
3176 #[doc = " \\{"]
3177 pub fn snd_pcm_format_signed(format: snd_pcm_format_t) -> ::std::os::raw::c_int;
3178}
3179extern "C" {
3180 pub fn snd_pcm_format_unsigned(format: snd_pcm_format_t) -> ::std::os::raw::c_int;
3181}
3182extern "C" {
3183 pub fn snd_pcm_format_linear(format: snd_pcm_format_t) -> ::std::os::raw::c_int;
3184}
3185extern "C" {
3186 pub fn snd_pcm_format_float(format: snd_pcm_format_t) -> ::std::os::raw::c_int;
3187}
3188extern "C" {
3189 pub fn snd_pcm_format_little_endian(format: snd_pcm_format_t) -> ::std::os::raw::c_int;
3190}
3191extern "C" {
3192 pub fn snd_pcm_format_big_endian(format: snd_pcm_format_t) -> ::std::os::raw::c_int;
3193}
3194extern "C" {
3195 pub fn snd_pcm_format_cpu_endian(format: snd_pcm_format_t) -> ::std::os::raw::c_int;
3196}
3197extern "C" {
3198 pub fn snd_pcm_format_width(format: snd_pcm_format_t) -> ::std::os::raw::c_int;
3199}
3200extern "C" {
3201 pub fn snd_pcm_format_physical_width(format: snd_pcm_format_t) -> ::std::os::raw::c_int;
3202}
3203extern "C" {
3204 pub fn snd_pcm_build_linear_format(
3205 width: ::std::os::raw::c_int,
3206 pwidth: ::std::os::raw::c_int,
3207 unsignd: ::std::os::raw::c_int,
3208 big_endian: ::std::os::raw::c_int,
3209 ) -> snd_pcm_format_t;
3210}
3211extern "C" {
3212 pub fn snd_pcm_format_size(format: snd_pcm_format_t, samples: usize) -> isize;
3213}
3214extern "C" {
3215 pub fn snd_pcm_format_silence(format: snd_pcm_format_t) -> u8;
3216}
3217extern "C" {
3218 pub fn snd_pcm_format_silence_16(format: snd_pcm_format_t) -> u16;
3219}
3220extern "C" {
3221 pub fn snd_pcm_format_silence_32(format: snd_pcm_format_t) -> u32;
3222}
3223extern "C" {
3224 pub fn snd_pcm_format_silence_64(format: snd_pcm_format_t) -> u64;
3225}
3226extern "C" {
3227 pub fn snd_pcm_format_set_silence(
3228 format: snd_pcm_format_t,
3229 buf: *mut ::std::os::raw::c_void,
3230 samples: ::std::os::raw::c_uint,
3231 ) -> ::std::os::raw::c_int;
3232}
3233extern "C" {
3234 pub fn snd_pcm_bytes_to_frames(pcm: *mut snd_pcm_t, bytes: isize) -> snd_pcm_sframes_t;
3235}
3236extern "C" {
3237 pub fn snd_pcm_frames_to_bytes(pcm: *mut snd_pcm_t, frames: snd_pcm_sframes_t) -> isize;
3238}
3239extern "C" {
3240 pub fn snd_pcm_bytes_to_samples(pcm: *mut snd_pcm_t, bytes: isize) -> ::std::os::raw::c_long;
3241}
3242extern "C" {
3243 pub fn snd_pcm_samples_to_bytes(pcm: *mut snd_pcm_t, samples: ::std::os::raw::c_long) -> isize;
3244}
3245extern "C" {
3246 pub fn snd_pcm_area_silence(
3247 dst_channel: *const snd_pcm_channel_area_t,
3248 dst_offset: snd_pcm_uframes_t,
3249 samples: ::std::os::raw::c_uint,
3250 format: snd_pcm_format_t,
3251 ) -> ::std::os::raw::c_int;
3252}
3253extern "C" {
3254 pub fn snd_pcm_areas_silence(
3255 dst_channels: *const snd_pcm_channel_area_t,
3256 dst_offset: snd_pcm_uframes_t,
3257 channels: ::std::os::raw::c_uint,
3258 frames: snd_pcm_uframes_t,
3259 format: snd_pcm_format_t,
3260 ) -> ::std::os::raw::c_int;
3261}
3262extern "C" {
3263 pub fn snd_pcm_area_copy(
3264 dst_channel: *const snd_pcm_channel_area_t,
3265 dst_offset: snd_pcm_uframes_t,
3266 src_channel: *const snd_pcm_channel_area_t,
3267 src_offset: snd_pcm_uframes_t,
3268 samples: ::std::os::raw::c_uint,
3269 format: snd_pcm_format_t,
3270 ) -> ::std::os::raw::c_int;
3271}
3272extern "C" {
3273 pub fn snd_pcm_areas_copy(
3274 dst_channels: *const snd_pcm_channel_area_t,
3275 dst_offset: snd_pcm_uframes_t,
3276 src_channels: *const snd_pcm_channel_area_t,
3277 src_offset: snd_pcm_uframes_t,
3278 channels: ::std::os::raw::c_uint,
3279 frames: snd_pcm_uframes_t,
3280 format: snd_pcm_format_t,
3281 ) -> ::std::os::raw::c_int;
3282}
3283extern "C" {
3284 pub fn snd_pcm_areas_copy_wrap(
3285 dst_channels: *const snd_pcm_channel_area_t,
3286 dst_offset: snd_pcm_uframes_t,
3287 dst_size: snd_pcm_uframes_t,
3288 src_channels: *const snd_pcm_channel_area_t,
3289 src_offset: snd_pcm_uframes_t,
3290 src_size: snd_pcm_uframes_t,
3291 channels: ::std::os::raw::c_uint,
3292 frames: snd_pcm_uframes_t,
3293 format: snd_pcm_format_t,
3294 ) -> ::std::os::raw::c_int;
3295}
3296pub const SND_PCM_HOOK_TYPE_HW_PARAMS: _snd_pcm_hook_type = 0;
3297pub const SND_PCM_HOOK_TYPE_HW_FREE: _snd_pcm_hook_type = 1;
3298pub const SND_PCM_HOOK_TYPE_CLOSE: _snd_pcm_hook_type = 2;
3299pub const SND_PCM_HOOK_TYPE_LAST: _snd_pcm_hook_type = 2;
3300#[doc = " type of pcm hook"]
3301pub type _snd_pcm_hook_type = u32;
3302#[doc = " type of pcm hook"]
3303pub use self::_snd_pcm_hook_type as snd_pcm_hook_type_t;
3304#[repr(C)]
3305#[derive(Debug, Copy, Clone)]
3306pub struct _snd_pcm_hook {
3307 _unused: [u8; 0],
3308}
3309#[doc = " PCM hook container"]
3310pub type snd_pcm_hook_t = _snd_pcm_hook;
3311#[doc = " PCM hook callback function"]
3312pub type snd_pcm_hook_func_t =
3313 ::std::option::Option<unsafe extern "C" fn(hook: *mut snd_pcm_hook_t) -> ::std::os::raw::c_int>;
3314extern "C" {
3315 pub fn snd_pcm_hook_get_pcm(hook: *mut snd_pcm_hook_t) -> *mut snd_pcm_t;
3316}
3317extern "C" {
3318 pub fn snd_pcm_hook_get_private(hook: *mut snd_pcm_hook_t) -> *mut ::std::os::raw::c_void;
3319}
3320extern "C" {
3321 pub fn snd_pcm_hook_set_private(
3322 hook: *mut snd_pcm_hook_t,
3323 private_data: *mut ::std::os::raw::c_void,
3324 );
3325}
3326extern "C" {
3327 pub fn snd_pcm_hook_add(
3328 hookp: *mut *mut snd_pcm_hook_t,
3329 pcm: *mut snd_pcm_t,
3330 type_: snd_pcm_hook_type_t,
3331 func: snd_pcm_hook_func_t,
3332 private_data: *mut ::std::os::raw::c_void,
3333 ) -> ::std::os::raw::c_int;
3334}
3335extern "C" {
3336 pub fn snd_pcm_hook_remove(hook: *mut snd_pcm_hook_t) -> ::std::os::raw::c_int;
3337}
3338#[doc = " #SND_PCM_TYPE_METER scope functions"]
3339#[repr(C)]
3340#[derive(Debug, Copy, Clone)]
3341pub struct _snd_pcm_scope_ops {
3342 #[doc = " \\brief Enable and prepare it using current params"]
3343 #[doc = " \\param scope scope handle"]
3344 pub enable: ::std::option::Option<
3345 unsafe extern "C" fn(scope: *mut snd_pcm_scope_t) -> ::std::os::raw::c_int,
3346 >,
3347 #[doc = " \\brief Disable"]
3348 #[doc = " \\param scope scope handle"]
3349 pub disable: ::std::option::Option<unsafe extern "C" fn(scope: *mut snd_pcm_scope_t)>,
3350 #[doc = " \\brief PCM has been started"]
3351 #[doc = " \\param scope scope handle"]
3352 pub start: ::std::option::Option<unsafe extern "C" fn(scope: *mut snd_pcm_scope_t)>,
3353 #[doc = " \\brief PCM has been stopped"]
3354 #[doc = " \\param scope scope handle"]
3355 pub stop: ::std::option::Option<unsafe extern "C" fn(scope: *mut snd_pcm_scope_t)>,
3356 #[doc = " \\brief New frames are present"]
3357 #[doc = " \\param scope scope handle"]
3358 pub update: ::std::option::Option<unsafe extern "C" fn(scope: *mut snd_pcm_scope_t)>,
3359 #[doc = " \\brief Reset status"]
3360 #[doc = " \\param scope scope handle"]
3361 pub reset: ::std::option::Option<unsafe extern "C" fn(scope: *mut snd_pcm_scope_t)>,
3362 #[doc = " \\brief PCM is closing"]
3363 #[doc = " \\param scope scope handle"]
3364 pub close: ::std::option::Option<unsafe extern "C" fn(scope: *mut snd_pcm_scope_t)>,
3365}
3366#[doc = " #SND_PCM_TYPE_METER scope functions"]
3367pub type snd_pcm_scope_ops_t = _snd_pcm_scope_ops;
3368extern "C" {
3369 pub fn snd_pcm_meter_get_bufsize(pcm: *mut snd_pcm_t) -> snd_pcm_uframes_t;
3370}
3371extern "C" {
3372 pub fn snd_pcm_meter_get_channels(pcm: *mut snd_pcm_t) -> ::std::os::raw::c_uint;
3373}
3374extern "C" {
3375 pub fn snd_pcm_meter_get_rate(pcm: *mut snd_pcm_t) -> ::std::os::raw::c_uint;
3376}
3377extern "C" {
3378 pub fn snd_pcm_meter_get_now(pcm: *mut snd_pcm_t) -> snd_pcm_uframes_t;
3379}
3380extern "C" {
3381 pub fn snd_pcm_meter_get_boundary(pcm: *mut snd_pcm_t) -> snd_pcm_uframes_t;
3382}
3383extern "C" {
3384 pub fn snd_pcm_meter_add_scope(
3385 pcm: *mut snd_pcm_t,
3386 scope: *mut snd_pcm_scope_t,
3387 ) -> ::std::os::raw::c_int;
3388}
3389extern "C" {
3390 pub fn snd_pcm_meter_search_scope(
3391 pcm: *mut snd_pcm_t,
3392 name: *const ::std::os::raw::c_char,
3393 ) -> *mut snd_pcm_scope_t;
3394}
3395extern "C" {
3396 pub fn snd_pcm_scope_malloc(ptr: *mut *mut snd_pcm_scope_t) -> ::std::os::raw::c_int;
3397}
3398extern "C" {
3399 pub fn snd_pcm_scope_set_ops(scope: *mut snd_pcm_scope_t, val: *const snd_pcm_scope_ops_t);
3400}
3401extern "C" {
3402 pub fn snd_pcm_scope_set_name(scope: *mut snd_pcm_scope_t, val: *const ::std::os::raw::c_char);
3403}
3404extern "C" {
3405 pub fn snd_pcm_scope_get_name(scope: *mut snd_pcm_scope_t) -> *const ::std::os::raw::c_char;
3406}
3407extern "C" {
3408 pub fn snd_pcm_scope_get_callback_private(
3409 scope: *mut snd_pcm_scope_t,
3410 ) -> *mut ::std::os::raw::c_void;
3411}
3412extern "C" {
3413 pub fn snd_pcm_scope_set_callback_private(
3414 scope: *mut snd_pcm_scope_t,
3415 val: *mut ::std::os::raw::c_void,
3416 );
3417}
3418extern "C" {
3419 pub fn snd_pcm_scope_s16_open(
3420 pcm: *mut snd_pcm_t,
3421 name: *const ::std::os::raw::c_char,
3422 scopep: *mut *mut snd_pcm_scope_t,
3423 ) -> ::std::os::raw::c_int;
3424}
3425extern "C" {
3426 pub fn snd_pcm_scope_s16_get_channel_buffer(
3427 scope: *mut snd_pcm_scope_t,
3428 channel: ::std::os::raw::c_uint,
3429 ) -> *mut i16;
3430}
3431#[doc = " standard latency - for standard playback or capture"]
3432#[doc = "(estimated latency in one direction 350ms)"]
3433pub const SND_SPCM_LATENCY_STANDARD: _snd_spcm_latency = 0;
3434#[doc = " medium latency - software phones etc."]
3435#[doc = "(estimated latency in one direction maximally 25ms"]
3436pub const SND_SPCM_LATENCY_MEDIUM: _snd_spcm_latency = 1;
3437#[doc = " realtime latency - realtime applications (effect processors etc.)"]
3438#[doc = "(estimated latency in one direction 5ms and better)"]
3439pub const SND_SPCM_LATENCY_REALTIME: _snd_spcm_latency = 2;
3440#[doc = " Simple PCM latency type"]
3441pub type _snd_spcm_latency = u32;
3442#[doc = " Simple PCM latency type"]
3443pub use self::_snd_spcm_latency as snd_spcm_latency_t;
3444#[doc = " driver / library will ignore all xruns, the stream runs forever"]
3445pub const SND_SPCM_XRUN_IGNORE: _snd_spcm_xrun_type = 0;
3446#[doc = " driver / library stops the stream when an xrun occurs"]
3447pub const SND_SPCM_XRUN_STOP: _snd_spcm_xrun_type = 1;
3448#[doc = " Simple PCM xrun type"]
3449pub type _snd_spcm_xrun_type = u32;
3450#[doc = " Simple PCM xrun type"]
3451pub use self::_snd_spcm_xrun_type as snd_spcm_xrun_type_t;
3452#[doc = " liberal duplex - the buffer and period sizes might not match"]
3453pub const SND_SPCM_DUPLEX_LIBERAL: _snd_spcm_duplex_type = 0;
3454#[doc = " pedantic duplex - the buffer and period sizes MUST match"]
3455pub const SND_SPCM_DUPLEX_PEDANTIC: _snd_spcm_duplex_type = 1;
3456#[doc = " Simple PCM duplex type"]
3457pub type _snd_spcm_duplex_type = u32;
3458#[doc = " Simple PCM duplex type"]
3459pub use self::_snd_spcm_duplex_type as snd_spcm_duplex_type_t;
3460extern "C" {
3461 pub fn snd_spcm_init(
3462 pcm: *mut snd_pcm_t,
3463 rate: ::std::os::raw::c_uint,
3464 channels: ::std::os::raw::c_uint,
3465 format: snd_pcm_format_t,
3466 subformat: snd_pcm_subformat_t,
3467 latency: snd_spcm_latency_t,
3468 _access: snd_pcm_access_t,
3469 xrun_type: snd_spcm_xrun_type_t,
3470 ) -> ::std::os::raw::c_int;
3471}
3472extern "C" {
3473 pub fn snd_spcm_init_duplex(
3474 playback_pcm: *mut snd_pcm_t,
3475 capture_pcm: *mut snd_pcm_t,
3476 rate: ::std::os::raw::c_uint,
3477 channels: ::std::os::raw::c_uint,
3478 format: snd_pcm_format_t,
3479 subformat: snd_pcm_subformat_t,
3480 latency: snd_spcm_latency_t,
3481 _access: snd_pcm_access_t,
3482 xrun_type: snd_spcm_xrun_type_t,
3483 duplex_type: snd_spcm_duplex_type_t,
3484 ) -> ::std::os::raw::c_int;
3485}
3486extern "C" {
3487 pub fn snd_spcm_init_get_params(
3488 pcm: *mut snd_pcm_t,
3489 rate: *mut ::std::os::raw::c_uint,
3490 buffer_size: *mut snd_pcm_uframes_t,
3491 period_size: *mut snd_pcm_uframes_t,
3492 ) -> ::std::os::raw::c_int;
3493}
3494extern "C" {
3495 #[doc = " \\defgroup PCM_Deprecated Deprecated Functions"]
3496 #[doc = " \\ingroup PCM"]
3497 #[doc = " See the \\ref pcm page for more details."]
3498 #[doc = " \\{"]
3499 pub fn snd_pcm_start_mode_name(mode: snd_pcm_start_t) -> *const ::std::os::raw::c_char;
3500}
3501extern "C" {
3502 pub fn snd_pcm_xrun_mode_name(mode: snd_pcm_xrun_t) -> *const ::std::os::raw::c_char;
3503}
3504extern "C" {
3505 pub fn snd_pcm_sw_params_set_start_mode(
3506 pcm: *mut snd_pcm_t,
3507 params: *mut snd_pcm_sw_params_t,
3508 val: snd_pcm_start_t,
3509 ) -> ::std::os::raw::c_int;
3510}
3511extern "C" {
3512 pub fn snd_pcm_sw_params_get_start_mode(params: *const snd_pcm_sw_params_t) -> snd_pcm_start_t;
3513}
3514extern "C" {
3515 pub fn snd_pcm_sw_params_set_xrun_mode(
3516 pcm: *mut snd_pcm_t,
3517 params: *mut snd_pcm_sw_params_t,
3518 val: snd_pcm_xrun_t,
3519 ) -> ::std::os::raw::c_int;
3520}
3521extern "C" {
3522 pub fn snd_pcm_sw_params_get_xrun_mode(params: *const snd_pcm_sw_params_t) -> snd_pcm_xrun_t;
3523}
3524extern "C" {
3525 pub fn snd_pcm_sw_params_set_xfer_align(
3526 pcm: *mut snd_pcm_t,
3527 params: *mut snd_pcm_sw_params_t,
3528 val: snd_pcm_uframes_t,
3529 ) -> ::std::os::raw::c_int;
3530}
3531extern "C" {
3532 pub fn snd_pcm_sw_params_get_xfer_align(
3533 params: *const snd_pcm_sw_params_t,
3534 val: *mut snd_pcm_uframes_t,
3535 ) -> ::std::os::raw::c_int;
3536}
3537extern "C" {
3538 pub fn snd_pcm_sw_params_set_sleep_min(
3539 pcm: *mut snd_pcm_t,
3540 params: *mut snd_pcm_sw_params_t,
3541 val: ::std::os::raw::c_uint,
3542 ) -> ::std::os::raw::c_int;
3543}
3544extern "C" {
3545 pub fn snd_pcm_sw_params_get_sleep_min(
3546 params: *const snd_pcm_sw_params_t,
3547 val: *mut ::std::os::raw::c_uint,
3548 ) -> ::std::os::raw::c_int;
3549}
3550extern "C" {
3551 pub fn snd_pcm_hw_params_get_tick_time(
3552 params: *const snd_pcm_hw_params_t,
3553 val: *mut ::std::os::raw::c_uint,
3554 dir: *mut ::std::os::raw::c_int,
3555 ) -> ::std::os::raw::c_int;
3556}
3557extern "C" {
3558 pub fn snd_pcm_hw_params_get_tick_time_min(
3559 params: *const snd_pcm_hw_params_t,
3560 val: *mut ::std::os::raw::c_uint,
3561 dir: *mut ::std::os::raw::c_int,
3562 ) -> ::std::os::raw::c_int;
3563}
3564extern "C" {
3565 pub fn snd_pcm_hw_params_get_tick_time_max(
3566 params: *const snd_pcm_hw_params_t,
3567 val: *mut ::std::os::raw::c_uint,
3568 dir: *mut ::std::os::raw::c_int,
3569 ) -> ::std::os::raw::c_int;
3570}
3571extern "C" {
3572 pub fn snd_pcm_hw_params_test_tick_time(
3573 pcm: *mut snd_pcm_t,
3574 params: *mut snd_pcm_hw_params_t,
3575 val: ::std::os::raw::c_uint,
3576 dir: ::std::os::raw::c_int,
3577 ) -> ::std::os::raw::c_int;
3578}
3579extern "C" {
3580 pub fn snd_pcm_hw_params_set_tick_time(
3581 pcm: *mut snd_pcm_t,
3582 params: *mut snd_pcm_hw_params_t,
3583 val: ::std::os::raw::c_uint,
3584 dir: ::std::os::raw::c_int,
3585 ) -> ::std::os::raw::c_int;
3586}
3587extern "C" {
3588 pub fn snd_pcm_hw_params_set_tick_time_min(
3589 pcm: *mut snd_pcm_t,
3590 params: *mut snd_pcm_hw_params_t,
3591 val: *mut ::std::os::raw::c_uint,
3592 dir: *mut ::std::os::raw::c_int,
3593 ) -> ::std::os::raw::c_int;
3594}
3595extern "C" {
3596 pub fn snd_pcm_hw_params_set_tick_time_max(
3597 pcm: *mut snd_pcm_t,
3598 params: *mut snd_pcm_hw_params_t,
3599 val: *mut ::std::os::raw::c_uint,
3600 dir: *mut ::std::os::raw::c_int,
3601 ) -> ::std::os::raw::c_int;
3602}
3603extern "C" {
3604 pub fn snd_pcm_hw_params_set_tick_time_minmax(
3605 pcm: *mut snd_pcm_t,
3606 params: *mut snd_pcm_hw_params_t,
3607 min: *mut ::std::os::raw::c_uint,
3608 mindir: *mut ::std::os::raw::c_int,
3609 max: *mut ::std::os::raw::c_uint,
3610 maxdir: *mut ::std::os::raw::c_int,
3611 ) -> ::std::os::raw::c_int;
3612}
3613extern "C" {
3614 pub fn snd_pcm_hw_params_set_tick_time_near(
3615 pcm: *mut snd_pcm_t,
3616 params: *mut snd_pcm_hw_params_t,
3617 val: *mut ::std::os::raw::c_uint,
3618 dir: *mut ::std::os::raw::c_int,
3619 ) -> ::std::os::raw::c_int;
3620}
3621extern "C" {
3622 pub fn snd_pcm_hw_params_set_tick_time_first(
3623 pcm: *mut snd_pcm_t,
3624 params: *mut snd_pcm_hw_params_t,
3625 val: *mut ::std::os::raw::c_uint,
3626 dir: *mut ::std::os::raw::c_int,
3627 ) -> ::std::os::raw::c_int;
3628}
3629extern "C" {
3630 pub fn snd_pcm_hw_params_set_tick_time_last(
3631 pcm: *mut snd_pcm_t,
3632 params: *mut snd_pcm_hw_params_t,
3633 val: *mut ::std::os::raw::c_uint,
3634 dir: *mut ::std::os::raw::c_int,
3635 ) -> ::std::os::raw::c_int;
3636}
3637#[repr(C)]
3638#[derive(Debug, Copy, Clone)]
3639pub struct _snd_rawmidi_info {
3640 _unused: [u8; 0],
3641}
3642#[doc = " RawMidi information container"]
3643pub type snd_rawmidi_info_t = _snd_rawmidi_info;
3644#[repr(C)]
3645#[derive(Debug, Copy, Clone)]
3646pub struct _snd_rawmidi_params {
3647 _unused: [u8; 0],
3648}
3649#[doc = " RawMidi settings container"]
3650pub type snd_rawmidi_params_t = _snd_rawmidi_params;
3651#[repr(C)]
3652#[derive(Debug, Copy, Clone)]
3653pub struct _snd_rawmidi_status {
3654 _unused: [u8; 0],
3655}
3656#[doc = " RawMidi status container"]
3657pub type snd_rawmidi_status_t = _snd_rawmidi_status;
3658#[doc = " Output stream"]
3659pub const SND_RAWMIDI_STREAM_OUTPUT: _snd_rawmidi_stream = 0;
3660#[doc = " Input stream"]
3661pub const SND_RAWMIDI_STREAM_INPUT: _snd_rawmidi_stream = 1;
3662#[doc = " Input stream"]
3663pub const SND_RAWMIDI_STREAM_LAST: _snd_rawmidi_stream = 1;
3664#[doc = " RawMidi stream (direction)"]
3665pub type _snd_rawmidi_stream = u32;
3666#[doc = " RawMidi stream (direction)"]
3667pub use self::_snd_rawmidi_stream as snd_rawmidi_stream_t;
3668#[repr(C)]
3669#[derive(Debug, Copy, Clone)]
3670pub struct _snd_rawmidi {
3671 _unused: [u8; 0],
3672}
3673#[doc = " RawMidi handle"]
3674pub type snd_rawmidi_t = _snd_rawmidi;
3675#[doc = " Kernel level RawMidi"]
3676pub const SND_RAWMIDI_TYPE_HW: _snd_rawmidi_type = 0;
3677#[doc = " Shared memory client RawMidi (not yet implemented)"]
3678pub const SND_RAWMIDI_TYPE_SHM: _snd_rawmidi_type = 1;
3679#[doc = " INET client RawMidi (not yet implemented)"]
3680pub const SND_RAWMIDI_TYPE_INET: _snd_rawmidi_type = 2;
3681#[doc = " Virtual (sequencer) RawMidi"]
3682pub const SND_RAWMIDI_TYPE_VIRTUAL: _snd_rawmidi_type = 3;
3683#[doc = " RawMidi type"]
3684pub type _snd_rawmidi_type = u32;
3685#[doc = " RawMidi type"]
3686pub use self::_snd_rawmidi_type as snd_rawmidi_type_t;
3687extern "C" {
3688 pub fn snd_rawmidi_open(
3689 in_rmidi: *mut *mut snd_rawmidi_t,
3690 out_rmidi: *mut *mut snd_rawmidi_t,
3691 name: *const ::std::os::raw::c_char,
3692 mode: ::std::os::raw::c_int,
3693 ) -> ::std::os::raw::c_int;
3694}
3695extern "C" {
3696 pub fn snd_rawmidi_open_lconf(
3697 in_rmidi: *mut *mut snd_rawmidi_t,
3698 out_rmidi: *mut *mut snd_rawmidi_t,
3699 name: *const ::std::os::raw::c_char,
3700 mode: ::std::os::raw::c_int,
3701 lconf: *mut snd_config_t,
3702 ) -> ::std::os::raw::c_int;
3703}
3704extern "C" {
3705 pub fn snd_rawmidi_close(rmidi: *mut snd_rawmidi_t) -> ::std::os::raw::c_int;
3706}
3707extern "C" {
3708 pub fn snd_rawmidi_poll_descriptors_count(rmidi: *mut snd_rawmidi_t) -> ::std::os::raw::c_int;
3709}
3710extern "C" {
3711 pub fn snd_rawmidi_poll_descriptors(
3712 rmidi: *mut snd_rawmidi_t,
3713 pfds: *mut pollfd,
3714 space: ::std::os::raw::c_uint,
3715 ) -> ::std::os::raw::c_int;
3716}
3717extern "C" {
3718 pub fn snd_rawmidi_poll_descriptors_revents(
3719 rawmidi: *mut snd_rawmidi_t,
3720 pfds: *mut pollfd,
3721 nfds: ::std::os::raw::c_uint,
3722 revent: *mut ::std::os::raw::c_ushort,
3723 ) -> ::std::os::raw::c_int;
3724}
3725extern "C" {
3726 pub fn snd_rawmidi_nonblock(
3727 rmidi: *mut snd_rawmidi_t,
3728 nonblock: ::std::os::raw::c_int,
3729 ) -> ::std::os::raw::c_int;
3730}
3731extern "C" {
3732 pub fn snd_rawmidi_info_sizeof() -> usize;
3733}
3734extern "C" {
3735 pub fn snd_rawmidi_info_malloc(ptr: *mut *mut snd_rawmidi_info_t) -> ::std::os::raw::c_int;
3736}
3737extern "C" {
3738 pub fn snd_rawmidi_info_free(obj: *mut snd_rawmidi_info_t);
3739}
3740extern "C" {
3741 pub fn snd_rawmidi_info_copy(dst: *mut snd_rawmidi_info_t, src: *const snd_rawmidi_info_t);
3742}
3743extern "C" {
3744 pub fn snd_rawmidi_info_get_device(obj: *const snd_rawmidi_info_t) -> ::std::os::raw::c_uint;
3745}
3746extern "C" {
3747 pub fn snd_rawmidi_info_get_subdevice(obj: *const snd_rawmidi_info_t)
3748 -> ::std::os::raw::c_uint;
3749}
3750extern "C" {
3751 pub fn snd_rawmidi_info_get_stream(obj: *const snd_rawmidi_info_t) -> snd_rawmidi_stream_t;
3752}
3753extern "C" {
3754 pub fn snd_rawmidi_info_get_card(obj: *const snd_rawmidi_info_t) -> ::std::os::raw::c_int;
3755}
3756extern "C" {
3757 pub fn snd_rawmidi_info_get_flags(obj: *const snd_rawmidi_info_t) -> ::std::os::raw::c_uint;
3758}
3759extern "C" {
3760 pub fn snd_rawmidi_info_get_id(obj: *const snd_rawmidi_info_t)
3761 -> *const ::std::os::raw::c_char;
3762}
3763extern "C" {
3764 pub fn snd_rawmidi_info_get_name(
3765 obj: *const snd_rawmidi_info_t,
3766 ) -> *const ::std::os::raw::c_char;
3767}
3768extern "C" {
3769 pub fn snd_rawmidi_info_get_subdevice_name(
3770 obj: *const snd_rawmidi_info_t,
3771 ) -> *const ::std::os::raw::c_char;
3772}
3773extern "C" {
3774 pub fn snd_rawmidi_info_get_subdevices_count(
3775 obj: *const snd_rawmidi_info_t,
3776 ) -> ::std::os::raw::c_uint;
3777}
3778extern "C" {
3779 pub fn snd_rawmidi_info_get_subdevices_avail(
3780 obj: *const snd_rawmidi_info_t,
3781 ) -> ::std::os::raw::c_uint;
3782}
3783extern "C" {
3784 pub fn snd_rawmidi_info_set_device(obj: *mut snd_rawmidi_info_t, val: ::std::os::raw::c_uint);
3785}
3786extern "C" {
3787 pub fn snd_rawmidi_info_set_subdevice(
3788 obj: *mut snd_rawmidi_info_t,
3789 val: ::std::os::raw::c_uint,
3790 );
3791}
3792extern "C" {
3793 pub fn snd_rawmidi_info_set_stream(obj: *mut snd_rawmidi_info_t, val: snd_rawmidi_stream_t);
3794}
3795extern "C" {
3796 pub fn snd_rawmidi_info(
3797 rmidi: *mut snd_rawmidi_t,
3798 info: *mut snd_rawmidi_info_t,
3799 ) -> ::std::os::raw::c_int;
3800}
3801extern "C" {
3802 pub fn snd_rawmidi_params_sizeof() -> usize;
3803}
3804extern "C" {
3805 pub fn snd_rawmidi_params_malloc(ptr: *mut *mut snd_rawmidi_params_t) -> ::std::os::raw::c_int;
3806}
3807extern "C" {
3808 pub fn snd_rawmidi_params_free(obj: *mut snd_rawmidi_params_t);
3809}
3810extern "C" {
3811 pub fn snd_rawmidi_params_copy(
3812 dst: *mut snd_rawmidi_params_t,
3813 src: *const snd_rawmidi_params_t,
3814 );
3815}
3816extern "C" {
3817 pub fn snd_rawmidi_params_set_buffer_size(
3818 rmidi: *mut snd_rawmidi_t,
3819 params: *mut snd_rawmidi_params_t,
3820 val: usize,
3821 ) -> ::std::os::raw::c_int;
3822}
3823extern "C" {
3824 pub fn snd_rawmidi_params_get_buffer_size(params: *const snd_rawmidi_params_t) -> usize;
3825}
3826extern "C" {
3827 pub fn snd_rawmidi_params_set_avail_min(
3828 rmidi: *mut snd_rawmidi_t,
3829 params: *mut snd_rawmidi_params_t,
3830 val: usize,
3831 ) -> ::std::os::raw::c_int;
3832}
3833extern "C" {
3834 pub fn snd_rawmidi_params_get_avail_min(params: *const snd_rawmidi_params_t) -> usize;
3835}
3836extern "C" {
3837 pub fn snd_rawmidi_params_set_no_active_sensing(
3838 rmidi: *mut snd_rawmidi_t,
3839 params: *mut snd_rawmidi_params_t,
3840 val: ::std::os::raw::c_int,
3841 ) -> ::std::os::raw::c_int;
3842}
3843extern "C" {
3844 pub fn snd_rawmidi_params_get_no_active_sensing(
3845 params: *const snd_rawmidi_params_t,
3846 ) -> ::std::os::raw::c_int;
3847}
3848extern "C" {
3849 pub fn snd_rawmidi_params(
3850 rmidi: *mut snd_rawmidi_t,
3851 params: *mut snd_rawmidi_params_t,
3852 ) -> ::std::os::raw::c_int;
3853}
3854extern "C" {
3855 pub fn snd_rawmidi_params_current(
3856 rmidi: *mut snd_rawmidi_t,
3857 params: *mut snd_rawmidi_params_t,
3858 ) -> ::std::os::raw::c_int;
3859}
3860extern "C" {
3861 pub fn snd_rawmidi_status_sizeof() -> usize;
3862}
3863extern "C" {
3864 pub fn snd_rawmidi_status_malloc(ptr: *mut *mut snd_rawmidi_status_t) -> ::std::os::raw::c_int;
3865}
3866extern "C" {
3867 pub fn snd_rawmidi_status_free(obj: *mut snd_rawmidi_status_t);
3868}
3869extern "C" {
3870 pub fn snd_rawmidi_status_copy(
3871 dst: *mut snd_rawmidi_status_t,
3872 src: *const snd_rawmidi_status_t,
3873 );
3874}
3875extern "C" {
3876 pub fn snd_rawmidi_status_get_tstamp(
3877 obj: *const snd_rawmidi_status_t,
3878 ptr: *mut snd_htimestamp_t,
3879 );
3880}
3881extern "C" {
3882 pub fn snd_rawmidi_status_get_avail(obj: *const snd_rawmidi_status_t) -> usize;
3883}
3884extern "C" {
3885 pub fn snd_rawmidi_status_get_xruns(obj: *const snd_rawmidi_status_t) -> usize;
3886}
3887extern "C" {
3888 pub fn snd_rawmidi_status(
3889 rmidi: *mut snd_rawmidi_t,
3890 status: *mut snd_rawmidi_status_t,
3891 ) -> ::std::os::raw::c_int;
3892}
3893extern "C" {
3894 pub fn snd_rawmidi_drain(rmidi: *mut snd_rawmidi_t) -> ::std::os::raw::c_int;
3895}
3896extern "C" {
3897 pub fn snd_rawmidi_drop(rmidi: *mut snd_rawmidi_t) -> ::std::os::raw::c_int;
3898}
3899extern "C" {
3900 pub fn snd_rawmidi_write(
3901 rmidi: *mut snd_rawmidi_t,
3902 buffer: *const ::std::os::raw::c_void,
3903 size: usize,
3904 ) -> isize;
3905}
3906extern "C" {
3907 pub fn snd_rawmidi_read(
3908 rmidi: *mut snd_rawmidi_t,
3909 buffer: *mut ::std::os::raw::c_void,
3910 size: usize,
3911 ) -> isize;
3912}
3913extern "C" {
3914 pub fn snd_rawmidi_name(rmidi: *mut snd_rawmidi_t) -> *const ::std::os::raw::c_char;
3915}
3916extern "C" {
3917 pub fn snd_rawmidi_type(rmidi: *mut snd_rawmidi_t) -> snd_rawmidi_type_t;
3918}
3919extern "C" {
3920 pub fn snd_rawmidi_stream(rawmidi: *mut snd_rawmidi_t) -> snd_rawmidi_stream_t;
3921}
3922#[repr(C)]
3923#[derive(Debug, Copy, Clone)]
3924pub struct _snd_timer_id {
3925 _unused: [u8; 0],
3926}
3927#[doc = " timer identification structure"]
3928pub type snd_timer_id_t = _snd_timer_id;
3929#[repr(C)]
3930#[derive(Debug, Copy, Clone)]
3931pub struct _snd_timer_ginfo {
3932 _unused: [u8; 0],
3933}
3934#[doc = " timer global info structure"]
3935pub type snd_timer_ginfo_t = _snd_timer_ginfo;
3936#[repr(C)]
3937#[derive(Debug, Copy, Clone)]
3938pub struct _snd_timer_gparams {
3939 _unused: [u8; 0],
3940}
3941#[doc = " timer global params structure"]
3942pub type snd_timer_gparams_t = _snd_timer_gparams;
3943#[repr(C)]
3944#[derive(Debug, Copy, Clone)]
3945pub struct _snd_timer_gstatus {
3946 _unused: [u8; 0],
3947}
3948#[doc = " timer global status structure"]
3949pub type snd_timer_gstatus_t = _snd_timer_gstatus;
3950#[repr(C)]
3951#[derive(Debug, Copy, Clone)]
3952pub struct _snd_timer_info {
3953 _unused: [u8; 0],
3954}
3955#[doc = " timer info structure"]
3956pub type snd_timer_info_t = _snd_timer_info;
3957#[repr(C)]
3958#[derive(Debug, Copy, Clone)]
3959pub struct _snd_timer_params {
3960 _unused: [u8; 0],
3961}
3962#[doc = " timer params structure"]
3963pub type snd_timer_params_t = _snd_timer_params;
3964#[repr(C)]
3965#[derive(Debug, Copy, Clone)]
3966pub struct _snd_timer_status {
3967 _unused: [u8; 0],
3968}
3969#[doc = " timer status structure"]
3970pub type snd_timer_status_t = _snd_timer_status;
3971#[doc = "< invalid"]
3972pub const SND_TIMER_CLASS_NONE: _snd_timer_class = -1;
3973#[doc = "< slave timer"]
3974pub const SND_TIMER_CLASS_SLAVE: _snd_timer_class = 0;
3975#[doc = "< global timer"]
3976pub const SND_TIMER_CLASS_GLOBAL: _snd_timer_class = 1;
3977#[doc = "< card timer"]
3978pub const SND_TIMER_CLASS_CARD: _snd_timer_class = 2;
3979#[doc = "< PCM timer"]
3980pub const SND_TIMER_CLASS_PCM: _snd_timer_class = 3;
3981#[doc = "< last timer"]
3982pub const SND_TIMER_CLASS_LAST: _snd_timer_class = 3;
3983#[doc = " timer master class"]
3984pub type _snd_timer_class = i32;
3985#[doc = " timer master class"]
3986pub use self::_snd_timer_class as snd_timer_class_t;
3987#[doc = "< none"]
3988pub const SND_TIMER_SCLASS_NONE: _snd_timer_slave_class = 0;
3989#[doc = "< for internal use"]
3990pub const SND_TIMER_SCLASS_APPLICATION: _snd_timer_slave_class = 1;
3991#[doc = "< sequencer timer"]
3992pub const SND_TIMER_SCLASS_SEQUENCER: _snd_timer_slave_class = 2;
3993#[doc = "< OSS sequencer timer"]
3994pub const SND_TIMER_SCLASS_OSS_SEQUENCER: _snd_timer_slave_class = 3;
3995#[doc = "< last slave timer"]
3996pub const SND_TIMER_SCLASS_LAST: _snd_timer_slave_class = 3;
3997#[doc = " timer slave class"]
3998pub type _snd_timer_slave_class = u32;
3999#[doc = " timer slave class"]
4000pub use self::_snd_timer_slave_class as snd_timer_slave_class_t;
4001pub const SND_TIMER_EVENT_RESOLUTION: _snd_timer_event = 0;
4002pub const SND_TIMER_EVENT_TICK: _snd_timer_event = 1;
4003pub const SND_TIMER_EVENT_START: _snd_timer_event = 2;
4004pub const SND_TIMER_EVENT_STOP: _snd_timer_event = 3;
4005pub const SND_TIMER_EVENT_CONTINUE: _snd_timer_event = 4;
4006pub const SND_TIMER_EVENT_PAUSE: _snd_timer_event = 5;
4007pub const SND_TIMER_EVENT_EARLY: _snd_timer_event = 6;
4008pub const SND_TIMER_EVENT_SUSPEND: _snd_timer_event = 7;
4009pub const SND_TIMER_EVENT_RESUME: _snd_timer_event = 8;
4010pub const SND_TIMER_EVENT_MSTART: _snd_timer_event = 12;
4011pub const SND_TIMER_EVENT_MSTOP: _snd_timer_event = 13;
4012pub const SND_TIMER_EVENT_MCONTINUE: _snd_timer_event = 14;
4013pub const SND_TIMER_EVENT_MPAUSE: _snd_timer_event = 15;
4014pub const SND_TIMER_EVENT_MSUSPEND: _snd_timer_event = 17;
4015pub const SND_TIMER_EVENT_MRESUME: _snd_timer_event = 18;
4016#[doc = " timer read event identification"]
4017pub type _snd_timer_event = u32;
4018#[doc = " timer read event identification"]
4019pub use self::_snd_timer_event as snd_timer_event_t;
4020#[doc = " timer read structure"]
4021#[repr(C)]
4022#[derive(Debug, Copy, Clone)]
4023pub struct _snd_timer_read {
4024 #[doc = "< tick resolution in nanoseconds"]
4025 pub resolution: ::std::os::raw::c_uint,
4026 #[doc = "< count of happened ticks"]
4027 pub ticks: ::std::os::raw::c_uint,
4028}
4029#[doc = " timer read structure"]
4030pub type snd_timer_read_t = _snd_timer_read;
4031#[doc = " timer tstamp + event read structure"]
4032#[repr(C)]
4033pub struct _snd_timer_tread {
4034 #[doc = "< Timer event"]
4035 pub event: snd_timer_event_t,
4036 #[doc = "< Time stamp of each event"]
4037 pub tstamp: snd_htimestamp_t,
4038 #[doc = "< Event value"]
4039 pub val: ::std::os::raw::c_uint,
4040}
4041#[doc = " timer tstamp + event read structure"]
4042pub type snd_timer_tread_t = _snd_timer_tread;
4043#[doc = " Kernel level HwDep"]
4044pub const SND_TIMER_TYPE_HW: _snd_timer_type = 0;
4045#[doc = " Shared memory client timer (not yet implemented)"]
4046pub const SND_TIMER_TYPE_SHM: _snd_timer_type = 1;
4047#[doc = " INET client timer (not yet implemented)"]
4048pub const SND_TIMER_TYPE_INET: _snd_timer_type = 2;
4049#[doc = " timer handle type"]
4050pub type _snd_timer_type = u32;
4051#[doc = " timer handle type"]
4052pub use self::_snd_timer_type as snd_timer_type_t;
4053#[repr(C)]
4054#[derive(Debug, Copy, Clone)]
4055pub struct _snd_timer_query {
4056 _unused: [u8; 0],
4057}
4058#[doc = " timer query handle"]
4059pub type snd_timer_query_t = _snd_timer_query;
4060#[repr(C)]
4061#[derive(Debug, Copy, Clone)]
4062pub struct _snd_timer {
4063 _unused: [u8; 0],
4064}
4065#[doc = " timer handle"]
4066pub type snd_timer_t = _snd_timer;
4067extern "C" {
4068 pub fn snd_timer_query_open(
4069 handle: *mut *mut snd_timer_query_t,
4070 name: *const ::std::os::raw::c_char,
4071 mode: ::std::os::raw::c_int,
4072 ) -> ::std::os::raw::c_int;
4073}
4074extern "C" {
4075 pub fn snd_timer_query_open_lconf(
4076 handle: *mut *mut snd_timer_query_t,
4077 name: *const ::std::os::raw::c_char,
4078 mode: ::std::os::raw::c_int,
4079 lconf: *mut snd_config_t,
4080 ) -> ::std::os::raw::c_int;
4081}
4082extern "C" {
4083 pub fn snd_timer_query_close(handle: *mut snd_timer_query_t) -> ::std::os::raw::c_int;
4084}
4085extern "C" {
4086 pub fn snd_timer_query_next_device(
4087 handle: *mut snd_timer_query_t,
4088 tid: *mut snd_timer_id_t,
4089 ) -> ::std::os::raw::c_int;
4090}
4091extern "C" {
4092 pub fn snd_timer_query_info(
4093 handle: *mut snd_timer_query_t,
4094 info: *mut snd_timer_ginfo_t,
4095 ) -> ::std::os::raw::c_int;
4096}
4097extern "C" {
4098 pub fn snd_timer_query_params(
4099 handle: *mut snd_timer_query_t,
4100 params: *mut snd_timer_gparams_t,
4101 ) -> ::std::os::raw::c_int;
4102}
4103extern "C" {
4104 pub fn snd_timer_query_status(
4105 handle: *mut snd_timer_query_t,
4106 status: *mut snd_timer_gstatus_t,
4107 ) -> ::std::os::raw::c_int;
4108}
4109extern "C" {
4110 pub fn snd_timer_open(
4111 handle: *mut *mut snd_timer_t,
4112 name: *const ::std::os::raw::c_char,
4113 mode: ::std::os::raw::c_int,
4114 ) -> ::std::os::raw::c_int;
4115}
4116extern "C" {
4117 pub fn snd_timer_open_lconf(
4118 handle: *mut *mut snd_timer_t,
4119 name: *const ::std::os::raw::c_char,
4120 mode: ::std::os::raw::c_int,
4121 lconf: *mut snd_config_t,
4122 ) -> ::std::os::raw::c_int;
4123}
4124extern "C" {
4125 pub fn snd_timer_close(handle: *mut snd_timer_t) -> ::std::os::raw::c_int;
4126}
4127extern "C" {
4128 pub fn snd_async_add_timer_handler(
4129 handler: *mut *mut snd_async_handler_t,
4130 timer: *mut snd_timer_t,
4131 callback: snd_async_callback_t,
4132 private_data: *mut ::std::os::raw::c_void,
4133 ) -> ::std::os::raw::c_int;
4134}
4135extern "C" {
4136 pub fn snd_async_handler_get_timer(handler: *mut snd_async_handler_t) -> *mut snd_timer_t;
4137}
4138extern "C" {
4139 pub fn snd_timer_poll_descriptors_count(handle: *mut snd_timer_t) -> ::std::os::raw::c_int;
4140}
4141extern "C" {
4142 pub fn snd_timer_poll_descriptors(
4143 handle: *mut snd_timer_t,
4144 pfds: *mut pollfd,
4145 space: ::std::os::raw::c_uint,
4146 ) -> ::std::os::raw::c_int;
4147}
4148extern "C" {
4149 pub fn snd_timer_poll_descriptors_revents(
4150 timer: *mut snd_timer_t,
4151 pfds: *mut pollfd,
4152 nfds: ::std::os::raw::c_uint,
4153 revents: *mut ::std::os::raw::c_ushort,
4154 ) -> ::std::os::raw::c_int;
4155}
4156extern "C" {
4157 pub fn snd_timer_info(
4158 handle: *mut snd_timer_t,
4159 timer: *mut snd_timer_info_t,
4160 ) -> ::std::os::raw::c_int;
4161}
4162extern "C" {
4163 pub fn snd_timer_params(
4164 handle: *mut snd_timer_t,
4165 params: *mut snd_timer_params_t,
4166 ) -> ::std::os::raw::c_int;
4167}
4168extern "C" {
4169 pub fn snd_timer_status(
4170 handle: *mut snd_timer_t,
4171 status: *mut snd_timer_status_t,
4172 ) -> ::std::os::raw::c_int;
4173}
4174extern "C" {
4175 pub fn snd_timer_start(handle: *mut snd_timer_t) -> ::std::os::raw::c_int;
4176}
4177extern "C" {
4178 pub fn snd_timer_stop(handle: *mut snd_timer_t) -> ::std::os::raw::c_int;
4179}
4180extern "C" {
4181 pub fn snd_timer_continue(handle: *mut snd_timer_t) -> ::std::os::raw::c_int;
4182}
4183extern "C" {
4184 pub fn snd_timer_read(
4185 handle: *mut snd_timer_t,
4186 buffer: *mut ::std::os::raw::c_void,
4187 size: usize,
4188 ) -> isize;
4189}
4190extern "C" {
4191 pub fn snd_timer_id_sizeof() -> usize;
4192}
4193extern "C" {
4194 pub fn snd_timer_id_malloc(ptr: *mut *mut snd_timer_id_t) -> ::std::os::raw::c_int;
4195}
4196extern "C" {
4197 pub fn snd_timer_id_free(obj: *mut snd_timer_id_t);
4198}
4199extern "C" {
4200 pub fn snd_timer_id_copy(dst: *mut snd_timer_id_t, src: *const snd_timer_id_t);
4201}
4202extern "C" {
4203 pub fn snd_timer_id_set_class(id: *mut snd_timer_id_t, dev_class: ::std::os::raw::c_int);
4204}
4205extern "C" {
4206 pub fn snd_timer_id_get_class(id: *mut snd_timer_id_t) -> ::std::os::raw::c_int;
4207}
4208extern "C" {
4209 pub fn snd_timer_id_set_sclass(id: *mut snd_timer_id_t, dev_sclass: ::std::os::raw::c_int);
4210}
4211extern "C" {
4212 pub fn snd_timer_id_get_sclass(id: *mut snd_timer_id_t) -> ::std::os::raw::c_int;
4213}
4214extern "C" {
4215 pub fn snd_timer_id_set_card(id: *mut snd_timer_id_t, card: ::std::os::raw::c_int);
4216}
4217extern "C" {
4218 pub fn snd_timer_id_get_card(id: *mut snd_timer_id_t) -> ::std::os::raw::c_int;
4219}
4220extern "C" {
4221 pub fn snd_timer_id_set_device(id: *mut snd_timer_id_t, device: ::std::os::raw::c_int);
4222}
4223extern "C" {
4224 pub fn snd_timer_id_get_device(id: *mut snd_timer_id_t) -> ::std::os::raw::c_int;
4225}
4226extern "C" {
4227 pub fn snd_timer_id_set_subdevice(id: *mut snd_timer_id_t, subdevice: ::std::os::raw::c_int);
4228}
4229extern "C" {
4230 pub fn snd_timer_id_get_subdevice(id: *mut snd_timer_id_t) -> ::std::os::raw::c_int;
4231}
4232extern "C" {
4233 pub fn snd_timer_ginfo_sizeof() -> usize;
4234}
4235extern "C" {
4236 pub fn snd_timer_ginfo_malloc(ptr: *mut *mut snd_timer_ginfo_t) -> ::std::os::raw::c_int;
4237}
4238extern "C" {
4239 pub fn snd_timer_ginfo_free(obj: *mut snd_timer_ginfo_t);
4240}
4241extern "C" {
4242 pub fn snd_timer_ginfo_copy(dst: *mut snd_timer_ginfo_t, src: *const snd_timer_ginfo_t);
4243}
4244extern "C" {
4245 pub fn snd_timer_ginfo_set_tid(
4246 obj: *mut snd_timer_ginfo_t,
4247 tid: *mut snd_timer_id_t,
4248 ) -> ::std::os::raw::c_int;
4249}
4250extern "C" {
4251 pub fn snd_timer_ginfo_get_tid(obj: *mut snd_timer_ginfo_t) -> *mut snd_timer_id_t;
4252}
4253extern "C" {
4254 pub fn snd_timer_ginfo_get_flags(obj: *mut snd_timer_ginfo_t) -> ::std::os::raw::c_uint;
4255}
4256extern "C" {
4257 pub fn snd_timer_ginfo_get_card(obj: *mut snd_timer_ginfo_t) -> ::std::os::raw::c_int;
4258}
4259extern "C" {
4260 pub fn snd_timer_ginfo_get_id(obj: *mut snd_timer_ginfo_t) -> *mut ::std::os::raw::c_char;
4261}
4262extern "C" {
4263 pub fn snd_timer_ginfo_get_name(obj: *mut snd_timer_ginfo_t) -> *mut ::std::os::raw::c_char;
4264}
4265extern "C" {
4266 pub fn snd_timer_ginfo_get_resolution(obj: *mut snd_timer_ginfo_t) -> ::std::os::raw::c_ulong;
4267}
4268extern "C" {
4269 pub fn snd_timer_ginfo_get_resolution_min(
4270 obj: *mut snd_timer_ginfo_t,
4271 ) -> ::std::os::raw::c_ulong;
4272}
4273extern "C" {
4274 pub fn snd_timer_ginfo_get_resolution_max(
4275 obj: *mut snd_timer_ginfo_t,
4276 ) -> ::std::os::raw::c_ulong;
4277}
4278extern "C" {
4279 pub fn snd_timer_ginfo_get_clients(obj: *mut snd_timer_ginfo_t) -> ::std::os::raw::c_uint;
4280}
4281extern "C" {
4282 pub fn snd_timer_info_sizeof() -> usize;
4283}
4284extern "C" {
4285 pub fn snd_timer_info_malloc(ptr: *mut *mut snd_timer_info_t) -> ::std::os::raw::c_int;
4286}
4287extern "C" {
4288 pub fn snd_timer_info_free(obj: *mut snd_timer_info_t);
4289}
4290extern "C" {
4291 pub fn snd_timer_info_copy(dst: *mut snd_timer_info_t, src: *const snd_timer_info_t);
4292}
4293extern "C" {
4294 pub fn snd_timer_info_is_slave(info: *mut snd_timer_info_t) -> ::std::os::raw::c_int;
4295}
4296extern "C" {
4297 pub fn snd_timer_info_get_card(info: *mut snd_timer_info_t) -> ::std::os::raw::c_int;
4298}
4299extern "C" {
4300 pub fn snd_timer_info_get_id(info: *mut snd_timer_info_t) -> *const ::std::os::raw::c_char;
4301}
4302extern "C" {
4303 pub fn snd_timer_info_get_name(info: *mut snd_timer_info_t) -> *const ::std::os::raw::c_char;
4304}
4305extern "C" {
4306 pub fn snd_timer_info_get_resolution(info: *mut snd_timer_info_t) -> ::std::os::raw::c_long;
4307}
4308extern "C" {
4309 pub fn snd_timer_params_sizeof() -> usize;
4310}
4311extern "C" {
4312 pub fn snd_timer_params_malloc(ptr: *mut *mut snd_timer_params_t) -> ::std::os::raw::c_int;
4313}
4314extern "C" {
4315 pub fn snd_timer_params_free(obj: *mut snd_timer_params_t);
4316}
4317extern "C" {
4318 pub fn snd_timer_params_copy(dst: *mut snd_timer_params_t, src: *const snd_timer_params_t);
4319}
4320extern "C" {
4321 pub fn snd_timer_params_set_auto_start(
4322 params: *mut snd_timer_params_t,
4323 auto_start: ::std::os::raw::c_int,
4324 ) -> ::std::os::raw::c_int;
4325}
4326extern "C" {
4327 pub fn snd_timer_params_get_auto_start(
4328 params: *mut snd_timer_params_t,
4329 ) -> ::std::os::raw::c_int;
4330}
4331extern "C" {
4332 pub fn snd_timer_params_set_exclusive(
4333 params: *mut snd_timer_params_t,
4334 exclusive: ::std::os::raw::c_int,
4335 ) -> ::std::os::raw::c_int;
4336}
4337extern "C" {
4338 pub fn snd_timer_params_get_exclusive(params: *mut snd_timer_params_t)
4339 -> ::std::os::raw::c_int;
4340}
4341extern "C" {
4342 pub fn snd_timer_params_set_early_event(
4343 params: *mut snd_timer_params_t,
4344 early_event: ::std::os::raw::c_int,
4345 ) -> ::std::os::raw::c_int;
4346}
4347extern "C" {
4348 pub fn snd_timer_params_get_early_event(
4349 params: *mut snd_timer_params_t,
4350 ) -> ::std::os::raw::c_int;
4351}
4352extern "C" {
4353 pub fn snd_timer_params_set_ticks(
4354 params: *mut snd_timer_params_t,
4355 ticks: ::std::os::raw::c_long,
4356 );
4357}
4358extern "C" {
4359 pub fn snd_timer_params_get_ticks(params: *mut snd_timer_params_t) -> ::std::os::raw::c_long;
4360}
4361extern "C" {
4362 pub fn snd_timer_params_set_queue_size(
4363 params: *mut snd_timer_params_t,
4364 queue_size: ::std::os::raw::c_long,
4365 );
4366}
4367extern "C" {
4368 pub fn snd_timer_params_get_queue_size(
4369 params: *mut snd_timer_params_t,
4370 ) -> ::std::os::raw::c_long;
4371}
4372extern "C" {
4373 pub fn snd_timer_params_set_filter(
4374 params: *mut snd_timer_params_t,
4375 filter: ::std::os::raw::c_uint,
4376 );
4377}
4378extern "C" {
4379 pub fn snd_timer_params_get_filter(params: *mut snd_timer_params_t) -> ::std::os::raw::c_uint;
4380}
4381extern "C" {
4382 pub fn snd_timer_status_sizeof() -> usize;
4383}
4384extern "C" {
4385 pub fn snd_timer_status_malloc(ptr: *mut *mut snd_timer_status_t) -> ::std::os::raw::c_int;
4386}
4387extern "C" {
4388 pub fn snd_timer_status_free(obj: *mut snd_timer_status_t);
4389}
4390extern "C" {
4391 pub fn snd_timer_status_copy(dst: *mut snd_timer_status_t, src: *const snd_timer_status_t);
4392}
4393extern "C" {
4394 pub fn snd_timer_status_get_timestamp(status: *mut snd_timer_status_t) -> snd_htimestamp_t;
4395}
4396extern "C" {
4397 pub fn snd_timer_status_get_resolution(
4398 status: *mut snd_timer_status_t,
4399 ) -> ::std::os::raw::c_long;
4400}
4401extern "C" {
4402 pub fn snd_timer_status_get_lost(status: *mut snd_timer_status_t) -> ::std::os::raw::c_long;
4403}
4404extern "C" {
4405 pub fn snd_timer_status_get_overrun(status: *mut snd_timer_status_t) -> ::std::os::raw::c_long;
4406}
4407extern "C" {
4408 pub fn snd_timer_status_get_queue(status: *mut snd_timer_status_t) -> ::std::os::raw::c_long;
4409}
4410extern "C" {
4411 pub fn snd_timer_info_get_ticks(info: *mut snd_timer_info_t) -> ::std::os::raw::c_long;
4412}
4413#[repr(C)]
4414#[derive(Debug, Copy, Clone)]
4415pub struct _snd_hwdep_info {
4416 _unused: [u8; 0],
4417}
4418#[doc = " HwDep information container"]
4419pub type snd_hwdep_info_t = _snd_hwdep_info;
4420#[repr(C)]
4421#[derive(Debug, Copy, Clone)]
4422pub struct _snd_hwdep_dsp_status {
4423 _unused: [u8; 0],
4424}
4425#[doc = " HwDep DSP status container"]
4426pub type snd_hwdep_dsp_status_t = _snd_hwdep_dsp_status;
4427#[repr(C)]
4428#[derive(Debug, Copy, Clone)]
4429pub struct _snd_hwdep_dsp_image {
4430 _unused: [u8; 0],
4431}
4432#[doc = " HwDep DSP image container"]
4433pub type snd_hwdep_dsp_image_t = _snd_hwdep_dsp_image;
4434#[doc = "< OPL2 raw driver"]
4435pub const SND_HWDEP_IFACE_OPL2: _snd_hwdep_iface = 0;
4436#[doc = "< OPL3 raw driver"]
4437pub const SND_HWDEP_IFACE_OPL3: _snd_hwdep_iface = 1;
4438#[doc = "< OPL4 raw driver"]
4439pub const SND_HWDEP_IFACE_OPL4: _snd_hwdep_iface = 2;
4440#[doc = "< SB16CSP driver"]
4441pub const SND_HWDEP_IFACE_SB16CSP: _snd_hwdep_iface = 3;
4442#[doc = "< EMU10K1 driver"]
4443pub const SND_HWDEP_IFACE_EMU10K1: _snd_hwdep_iface = 4;
4444#[doc = "< YSS225 driver"]
4445pub const SND_HWDEP_IFACE_YSS225: _snd_hwdep_iface = 5;
4446#[doc = "< ICS2115 driver"]
4447pub const SND_HWDEP_IFACE_ICS2115: _snd_hwdep_iface = 6;
4448#[doc = "< Ensoniq SoundScape ISA card (MC68EC000)"]
4449pub const SND_HWDEP_IFACE_SSCAPE: _snd_hwdep_iface = 7;
4450#[doc = "< Digigram VX cards"]
4451pub const SND_HWDEP_IFACE_VX: _snd_hwdep_iface = 8;
4452#[doc = "< Digigram miXart cards"]
4453pub const SND_HWDEP_IFACE_MIXART: _snd_hwdep_iface = 9;
4454#[doc = "< Tascam US122, US224 & US428 usb"]
4455pub const SND_HWDEP_IFACE_USX2Y: _snd_hwdep_iface = 10;
4456#[doc = "< EmuX wavetable"]
4457pub const SND_HWDEP_IFACE_EMUX_WAVETABLE: _snd_hwdep_iface = 11;
4458#[doc = "< Bluetooth audio"]
4459pub const SND_HWDEP_IFACE_BLUETOOTH: _snd_hwdep_iface = 12;
4460#[doc = "< Tascam US122, US224 & US428 raw USB PCM"]
4461pub const SND_HWDEP_IFACE_USX2Y_PCM: _snd_hwdep_iface = 13;
4462#[doc = "< Digigram PCXHR"]
4463pub const SND_HWDEP_IFACE_PCXHR: _snd_hwdep_iface = 14;
4464#[doc = "< SB Extigy/Audigy2NX remote control"]
4465pub const SND_HWDEP_IFACE_SB_RC: _snd_hwdep_iface = 15;
4466#[doc = "< HD-audio"]
4467pub const SND_HWDEP_IFACE_HDA: _snd_hwdep_iface = 16;
4468#[doc = "< direct access to usb stream"]
4469pub const SND_HWDEP_IFACE_USB_STREAM: _snd_hwdep_iface = 17;
4470#[doc = "< TC DICE FireWire device"]
4471pub const SND_HWDEP_IFACE_FW_DICE: _snd_hwdep_iface = 18;
4472#[doc = "< Echo Audio Fireworks based device"]
4473pub const SND_HWDEP_IFACE_FW_FIREWORKS: _snd_hwdep_iface = 19;
4474#[doc = "< BridgeCo BeBoB based device"]
4475pub const SND_HWDEP_IFACE_FW_BEBOB: _snd_hwdep_iface = 20;
4476#[doc = "< Oxford OXFW970/971 based device"]
4477pub const SND_HWDEP_IFACE_FW_OXFW: _snd_hwdep_iface = 21;
4478pub const SND_HWDEP_IFACE_FW_DIGI00X: _snd_hwdep_iface = 22;
4479pub const SND_HWDEP_IFACE_FW_TASCAM: _snd_hwdep_iface = 23;
4480pub const SND_HWDEP_IFACE_LINE6: _snd_hwdep_iface = 24;
4481pub const SND_HWDEP_IFACE_FW_MOTU: _snd_hwdep_iface = 25;
4482pub const SND_HWDEP_IFACE_FW_FIREFACE: _snd_hwdep_iface = 26;
4483#[doc = "< last known hwdep interface"]
4484pub const SND_HWDEP_IFACE_LAST: _snd_hwdep_iface = 26;
4485#[doc = " HwDep interface"]
4486pub type _snd_hwdep_iface = u32;
4487#[doc = " HwDep interface"]
4488pub use self::_snd_hwdep_iface as snd_hwdep_iface_t;
4489#[doc = " Kernel level HwDep"]
4490pub const SND_HWDEP_TYPE_HW: _snd_hwdep_type = 0;
4491#[doc = " Shared memory client HwDep (not yet implemented)"]
4492pub const SND_HWDEP_TYPE_SHM: _snd_hwdep_type = 1;
4493#[doc = " INET client HwDep (not yet implemented)"]
4494pub const SND_HWDEP_TYPE_INET: _snd_hwdep_type = 2;
4495#[doc = " HwDep handle type"]
4496pub type _snd_hwdep_type = u32;
4497#[doc = " HwDep handle type"]
4498pub use self::_snd_hwdep_type as snd_hwdep_type_t;
4499#[repr(C)]
4500#[derive(Debug, Copy, Clone)]
4501pub struct _snd_hwdep {
4502 _unused: [u8; 0],
4503}
4504#[doc = " HwDep handle"]
4505pub type snd_hwdep_t = _snd_hwdep;
4506extern "C" {
4507 pub fn snd_hwdep_open(
4508 hwdep: *mut *mut snd_hwdep_t,
4509 name: *const ::std::os::raw::c_char,
4510 mode: ::std::os::raw::c_int,
4511 ) -> ::std::os::raw::c_int;
4512}
4513extern "C" {
4514 pub fn snd_hwdep_close(hwdep: *mut snd_hwdep_t) -> ::std::os::raw::c_int;
4515}
4516extern "C" {
4517 pub fn snd_hwdep_poll_descriptors(
4518 hwdep: *mut snd_hwdep_t,
4519 pfds: *mut pollfd,
4520 space: ::std::os::raw::c_uint,
4521 ) -> ::std::os::raw::c_int;
4522}
4523extern "C" {
4524 pub fn snd_hwdep_poll_descriptors_count(hwdep: *mut snd_hwdep_t) -> ::std::os::raw::c_int;
4525}
4526extern "C" {
4527 pub fn snd_hwdep_poll_descriptors_revents(
4528 hwdep: *mut snd_hwdep_t,
4529 pfds: *mut pollfd,
4530 nfds: ::std::os::raw::c_uint,
4531 revents: *mut ::std::os::raw::c_ushort,
4532 ) -> ::std::os::raw::c_int;
4533}
4534extern "C" {
4535 pub fn snd_hwdep_nonblock(
4536 hwdep: *mut snd_hwdep_t,
4537 nonblock: ::std::os::raw::c_int,
4538 ) -> ::std::os::raw::c_int;
4539}
4540extern "C" {
4541 pub fn snd_hwdep_info(
4542 hwdep: *mut snd_hwdep_t,
4543 info: *mut snd_hwdep_info_t,
4544 ) -> ::std::os::raw::c_int;
4545}
4546extern "C" {
4547 pub fn snd_hwdep_dsp_status(
4548 hwdep: *mut snd_hwdep_t,
4549 status: *mut snd_hwdep_dsp_status_t,
4550 ) -> ::std::os::raw::c_int;
4551}
4552extern "C" {
4553 pub fn snd_hwdep_dsp_load(
4554 hwdep: *mut snd_hwdep_t,
4555 block: *mut snd_hwdep_dsp_image_t,
4556 ) -> ::std::os::raw::c_int;
4557}
4558extern "C" {
4559 pub fn snd_hwdep_ioctl(
4560 hwdep: *mut snd_hwdep_t,
4561 request: ::std::os::raw::c_uint,
4562 arg: *mut ::std::os::raw::c_void,
4563 ) -> ::std::os::raw::c_int;
4564}
4565extern "C" {
4566 pub fn snd_hwdep_write(
4567 hwdep: *mut snd_hwdep_t,
4568 buffer: *const ::std::os::raw::c_void,
4569 size: usize,
4570 ) -> isize;
4571}
4572extern "C" {
4573 pub fn snd_hwdep_read(
4574 hwdep: *mut snd_hwdep_t,
4575 buffer: *mut ::std::os::raw::c_void,
4576 size: usize,
4577 ) -> isize;
4578}
4579extern "C" {
4580 pub fn snd_hwdep_info_sizeof() -> usize;
4581}
4582extern "C" {
4583 pub fn snd_hwdep_info_malloc(ptr: *mut *mut snd_hwdep_info_t) -> ::std::os::raw::c_int;
4584}
4585extern "C" {
4586 pub fn snd_hwdep_info_free(obj: *mut snd_hwdep_info_t);
4587}
4588extern "C" {
4589 pub fn snd_hwdep_info_copy(dst: *mut snd_hwdep_info_t, src: *const snd_hwdep_info_t);
4590}
4591extern "C" {
4592 pub fn snd_hwdep_info_get_device(obj: *const snd_hwdep_info_t) -> ::std::os::raw::c_uint;
4593}
4594extern "C" {
4595 pub fn snd_hwdep_info_get_card(obj: *const snd_hwdep_info_t) -> ::std::os::raw::c_int;
4596}
4597extern "C" {
4598 pub fn snd_hwdep_info_get_id(obj: *const snd_hwdep_info_t) -> *const ::std::os::raw::c_char;
4599}
4600extern "C" {
4601 pub fn snd_hwdep_info_get_name(obj: *const snd_hwdep_info_t) -> *const ::std::os::raw::c_char;
4602}
4603extern "C" {
4604 pub fn snd_hwdep_info_get_iface(obj: *const snd_hwdep_info_t) -> snd_hwdep_iface_t;
4605}
4606extern "C" {
4607 pub fn snd_hwdep_info_set_device(obj: *mut snd_hwdep_info_t, val: ::std::os::raw::c_uint);
4608}
4609extern "C" {
4610 pub fn snd_hwdep_dsp_status_sizeof() -> usize;
4611}
4612extern "C" {
4613 pub fn snd_hwdep_dsp_status_malloc(
4614 ptr: *mut *mut snd_hwdep_dsp_status_t,
4615 ) -> ::std::os::raw::c_int;
4616}
4617extern "C" {
4618 pub fn snd_hwdep_dsp_status_free(obj: *mut snd_hwdep_dsp_status_t);
4619}
4620extern "C" {
4621 pub fn snd_hwdep_dsp_status_copy(
4622 dst: *mut snd_hwdep_dsp_status_t,
4623 src: *const snd_hwdep_dsp_status_t,
4624 );
4625}
4626extern "C" {
4627 pub fn snd_hwdep_dsp_status_get_version(
4628 obj: *const snd_hwdep_dsp_status_t,
4629 ) -> ::std::os::raw::c_uint;
4630}
4631extern "C" {
4632 pub fn snd_hwdep_dsp_status_get_id(
4633 obj: *const snd_hwdep_dsp_status_t,
4634 ) -> *const ::std::os::raw::c_char;
4635}
4636extern "C" {
4637 pub fn snd_hwdep_dsp_status_get_num_dsps(
4638 obj: *const snd_hwdep_dsp_status_t,
4639 ) -> ::std::os::raw::c_uint;
4640}
4641extern "C" {
4642 pub fn snd_hwdep_dsp_status_get_dsp_loaded(
4643 obj: *const snd_hwdep_dsp_status_t,
4644 ) -> ::std::os::raw::c_uint;
4645}
4646extern "C" {
4647 pub fn snd_hwdep_dsp_status_get_chip_ready(
4648 obj: *const snd_hwdep_dsp_status_t,
4649 ) -> ::std::os::raw::c_uint;
4650}
4651extern "C" {
4652 pub fn snd_hwdep_dsp_image_sizeof() -> usize;
4653}
4654extern "C" {
4655 pub fn snd_hwdep_dsp_image_malloc(
4656 ptr: *mut *mut snd_hwdep_dsp_image_t,
4657 ) -> ::std::os::raw::c_int;
4658}
4659extern "C" {
4660 pub fn snd_hwdep_dsp_image_free(obj: *mut snd_hwdep_dsp_image_t);
4661}
4662extern "C" {
4663 pub fn snd_hwdep_dsp_image_copy(
4664 dst: *mut snd_hwdep_dsp_image_t,
4665 src: *const snd_hwdep_dsp_image_t,
4666 );
4667}
4668extern "C" {
4669 pub fn snd_hwdep_dsp_image_get_index(
4670 obj: *const snd_hwdep_dsp_image_t,
4671 ) -> ::std::os::raw::c_uint;
4672}
4673extern "C" {
4674 pub fn snd_hwdep_dsp_image_get_name(
4675 obj: *const snd_hwdep_dsp_image_t,
4676 ) -> *const ::std::os::raw::c_char;
4677}
4678extern "C" {
4679 pub fn snd_hwdep_dsp_image_get_image(
4680 obj: *const snd_hwdep_dsp_image_t,
4681 ) -> *const ::std::os::raw::c_void;
4682}
4683extern "C" {
4684 pub fn snd_hwdep_dsp_image_get_length(obj: *const snd_hwdep_dsp_image_t) -> usize;
4685}
4686extern "C" {
4687 pub fn snd_hwdep_dsp_image_set_index(
4688 obj: *mut snd_hwdep_dsp_image_t,
4689 _index: ::std::os::raw::c_uint,
4690 );
4691}
4692extern "C" {
4693 pub fn snd_hwdep_dsp_image_set_name(
4694 obj: *mut snd_hwdep_dsp_image_t,
4695 name: *const ::std::os::raw::c_char,
4696 );
4697}
4698extern "C" {
4699 pub fn snd_hwdep_dsp_image_set_image(
4700 obj: *mut snd_hwdep_dsp_image_t,
4701 buffer: *mut ::std::os::raw::c_void,
4702 );
4703}
4704extern "C" {
4705 pub fn snd_hwdep_dsp_image_set_length(obj: *mut snd_hwdep_dsp_image_t, length: usize);
4706}
4707#[doc = " IEC958 structure"]
4708#[repr(C)]
4709#[derive(Copy, Clone)]
4710pub struct snd_aes_iec958 {
4711 #[doc = "< AES/IEC958 channel status bits"]
4712 pub status: [::std::os::raw::c_uchar; 24usize],
4713 #[doc = "< AES/IEC958 subcode bits"]
4714 pub subcode: [::std::os::raw::c_uchar; 147usize],
4715 #[doc = "< nothing"]
4716 pub pad: ::std::os::raw::c_uchar,
4717 #[doc = "< AES/IEC958 subframe bits"]
4718 pub dig_subframe: [::std::os::raw::c_uchar; 4usize],
4719}
4720#[doc = " IEC958 structure"]
4721pub type snd_aes_iec958_t = snd_aes_iec958;
4722#[repr(C)]
4723#[derive(Debug, Copy, Clone)]
4724pub struct _snd_ctl_card_info {
4725 _unused: [u8; 0],
4726}
4727#[doc = " CTL card info container"]
4728pub type snd_ctl_card_info_t = _snd_ctl_card_info;
4729#[repr(C)]
4730#[derive(Debug, Copy, Clone)]
4731pub struct _snd_ctl_elem_id {
4732 _unused: [u8; 0],
4733}
4734#[doc = " CTL element identifier container"]
4735pub type snd_ctl_elem_id_t = _snd_ctl_elem_id;
4736#[repr(C)]
4737#[derive(Debug, Copy, Clone)]
4738pub struct _snd_ctl_elem_list {
4739 _unused: [u8; 0],
4740}
4741#[doc = " CTL element list container"]
4742#[doc = ""]
4743#[doc = " This is a list of CTL elements. The list contains management"]
4744#[doc = " information (e.g. how many elements the sound card has) as well as"]
4745#[doc = " the element identifiers. All functions which operate on the list"]
4746#[doc = " are named snd_ctl_elem_list_*()."]
4747#[doc = ""]
4748#[doc = " \\par Memory management"]
4749#[doc = ""]
4750#[doc = " There are two memory areas to deal with: The list container itself"]
4751#[doc = " and the memory for the element identifiers."]
4752#[doc = ""]
4753#[doc = " To manage the area for the list container, the following functions"]
4754#[doc = " are used:"]
4755#[doc = ""]
4756#[doc = " - snd_ctl_elem_list_malloc() / snd_ctl_elem_list_free() to allocate"]
4757#[doc = " and free memory on the heap, or"]
4758#[doc = " - snd_ctl_elem_list_alloca() to allocate the memory on the"]
4759#[doc = " stack. This memory is auto-released when the stack is unwound."]
4760#[doc = ""]
4761#[doc = " To manage the space for the element identifiers, the"]
4762#[doc = " snd_ctl_elem_list_alloc_space() and snd_ctl_elem_list_free_space()"]
4763#[doc = " are used. Allocating the right amount of space can be achieved by"]
4764#[doc = " first obtaining the number of elements and then calling"]
4765#[doc = " snd_ctl_elem_list_alloc_space():"]
4766#[doc = ""]
4767#[doc = " \\code"]
4768#[doc = " snd_ctl_elem_list_t* list;"]
4769#[doc = " int count;"]
4770#[doc = ""]
4771#[doc = " // Initialise list"]
4772#[doc = " snd_ctl_elem_list_malloc(&list);"]
4773#[doc = ""]
4774#[doc = " // Get number of elements"]
4775#[doc = " snd_ctl_elem_list(ctl, list);"]
4776#[doc = " count = snd_ctl_elem_list_get_count(list);"]
4777#[doc = ""]
4778#[doc = " // Allocate space for identifiers"]
4779#[doc = " snd_ctl_elem_list_alloc_space(list, count);"]
4780#[doc = ""]
4781#[doc = " // Get identifiers"]
4782#[doc = " snd_ctl_elem_list(ctl, list); // yes, this is same as above :)"]
4783#[doc = ""]
4784#[doc = " // Do something useful with the list..."]
4785#[doc = ""]
4786#[doc = " // Cleanup"]
4787#[doc = " snd_ctl_elem_list_free_space(list);"]
4788#[doc = " snd_ctl_elem_list_free(list);"]
4789#[doc = " \\endcode"]
4790#[doc = ""]
4791#[doc = ""]
4792#[doc = " \\par The Elements"]
4793#[doc = ""]
4794#[doc = " The elements in the list are accessed using an index. This index is"]
4795#[doc = " the location in the list; Don't confuse it with the 'index' of the"]
4796#[doc = " element identifier. For example:"]
4797#[doc = ""]
4798#[doc = " \\code"]
4799#[doc = " snd_ctl_elem_list_t list;"]
4800#[doc = " unsigned int element_index;"]
4801#[doc = ""]
4802#[doc = " // Allocate space, fill list ..."]
4803#[doc = ""]
4804#[doc = " element_index = snd_ctl_elem_list_get_index(&list, 2);"]
4805#[doc = " \\endcode"]
4806#[doc = ""]
4807#[doc = " This will access the 3rd element in the list (index=2) and get the"]
4808#[doc = " elements index from the driver (which might be 13, for example)."]
4809pub type snd_ctl_elem_list_t = _snd_ctl_elem_list;
4810#[repr(C)]
4811#[derive(Debug, Copy, Clone)]
4812pub struct _snd_ctl_elem_info {
4813 _unused: [u8; 0],
4814}
4815#[doc = " CTL element info container"]
4816pub type snd_ctl_elem_info_t = _snd_ctl_elem_info;
4817#[repr(C)]
4818#[derive(Debug, Copy, Clone)]
4819pub struct _snd_ctl_elem_value {
4820 _unused: [u8; 0],
4821}
4822#[doc = " CTL element value container"]
4823#[doc = ""]
4824#[doc = " Contains the value(s) (i.e. members) of a single element. All"]
4825#[doc = " values of a given element are of the same type."]
4826#[doc = ""]
4827#[doc = " \\par Memory management"]
4828#[doc = ""]
4829#[doc = " To access a value, a snd_ctl_elem_value_t must be allocated using"]
4830#[doc = " snd_ctl_elem_value_alloca() or snd_ctl_elem_value_malloc(). When"]
4831#[doc = " using the latter, it must be freed again using"]
4832#[doc = " snd_ctl_elem_value_free()."]
4833#[doc = ""]
4834#[doc = " \\par Identifier"]
4835#[doc = ""]
4836#[doc = " Then, the ID must be filled. It is sufficient to fill only the"]
4837#[doc = " numid, if known. Otherwise, interface type, device, subdevice,"]
4838#[doc = " name, index must all be given. The following functions can be used"]
4839#[doc = " to fill the ID:"]
4840#[doc = ""]
4841#[doc = " - snd_ctl_elem_value_set_id(): Set the ID. Requires an"]
4842#[doc = " snd_ctl_elem_id_t object."]
4843#[doc = " - snd_ctl_elem_value_set_numid(): Set the numid."]
4844#[doc = " - Or use all of the following:"]
4845#[doc = ""]
4846#[doc = " - snd_ctl_elem_value_set_interface()"]
4847#[doc = " - snd_ctl_elem_value_set_device()"]
4848#[doc = " - snd_ctl_elem_value_set_subdevice()"]
4849#[doc = " - snd_ctl_elem_value_set_name()"]
4850#[doc = " - snd_ctl_elem_value_set_index()"]
4851#[doc = ""]
4852#[doc = " When communicating with the driver (snd_ctl_elem_read(),"]
4853#[doc = " snd_ctl_elem_write()), and the numid was given, the interface,"]
4854#[doc = " device, ... are filled (even if you set the before). When the numid"]
4855#[doc = " is unset (i.e. it is 0), it is filled."]
4856#[doc = ""]
4857#[doc = " \\par Communicating with the driver"]
4858#[doc = ""]
4859#[doc = " After the value container was created and filled with the ID of the"]
4860#[doc = " desired element, the value(s) can be fetched from the driver (and"]
4861#[doc = " thus from the hardware) or written to the driver."]
4862#[doc = ""]
4863#[doc = " To fetch a value, use snd_ctl_elem_read(). Thereafter, use the"]
4864#[doc = " snd_ctl_elem_value_get_*() functions to obtain the actual value."]
4865#[doc = ""]
4866#[doc = " To write a new value, first use a snd_ctl_elem_value_set_*() to set"]
4867#[doc = " it, then call snd_ctl_elem_write() to write it to the driver."]
4868pub type snd_ctl_elem_value_t = _snd_ctl_elem_value;
4869#[repr(C)]
4870#[derive(Debug, Copy, Clone)]
4871pub struct _snd_ctl_event {
4872 _unused: [u8; 0],
4873}
4874#[doc = " CTL event container"]
4875pub type snd_ctl_event_t = _snd_ctl_event;
4876#[doc = " Invalid type"]
4877pub const SND_CTL_ELEM_TYPE_NONE: _snd_ctl_elem_type = 0;
4878#[doc = " Boolean contents"]
4879pub const SND_CTL_ELEM_TYPE_BOOLEAN: _snd_ctl_elem_type = 1;
4880#[doc = " Integer contents"]
4881pub const SND_CTL_ELEM_TYPE_INTEGER: _snd_ctl_elem_type = 2;
4882#[doc = " Enumerated contents"]
4883pub const SND_CTL_ELEM_TYPE_ENUMERATED: _snd_ctl_elem_type = 3;
4884#[doc = " Bytes contents"]
4885pub const SND_CTL_ELEM_TYPE_BYTES: _snd_ctl_elem_type = 4;
4886#[doc = " IEC958 (S/PDIF) setting content"]
4887pub const SND_CTL_ELEM_TYPE_IEC958: _snd_ctl_elem_type = 5;
4888#[doc = " 64-bit integer contents"]
4889pub const SND_CTL_ELEM_TYPE_INTEGER64: _snd_ctl_elem_type = 6;
4890#[doc = " 64-bit integer contents"]
4891pub const SND_CTL_ELEM_TYPE_LAST: _snd_ctl_elem_type = 6;
4892#[doc = " CTL element type"]
4893pub type _snd_ctl_elem_type = u32;
4894#[doc = " CTL element type"]
4895pub use self::_snd_ctl_elem_type as snd_ctl_elem_type_t;
4896#[doc = " Card level"]
4897pub const SND_CTL_ELEM_IFACE_CARD: _snd_ctl_elem_iface = 0;
4898#[doc = " Hardware dependent device"]
4899pub const SND_CTL_ELEM_IFACE_HWDEP: _snd_ctl_elem_iface = 1;
4900#[doc = " Mixer"]
4901pub const SND_CTL_ELEM_IFACE_MIXER: _snd_ctl_elem_iface = 2;
4902#[doc = " PCM"]
4903pub const SND_CTL_ELEM_IFACE_PCM: _snd_ctl_elem_iface = 3;
4904#[doc = " RawMidi"]
4905pub const SND_CTL_ELEM_IFACE_RAWMIDI: _snd_ctl_elem_iface = 4;
4906#[doc = " Timer"]
4907pub const SND_CTL_ELEM_IFACE_TIMER: _snd_ctl_elem_iface = 5;
4908#[doc = " Sequencer"]
4909pub const SND_CTL_ELEM_IFACE_SEQUENCER: _snd_ctl_elem_iface = 6;
4910#[doc = " Sequencer"]
4911pub const SND_CTL_ELEM_IFACE_LAST: _snd_ctl_elem_iface = 6;
4912#[doc = " CTL related interface"]
4913pub type _snd_ctl_elem_iface = u32;
4914#[doc = " CTL related interface"]
4915pub use self::_snd_ctl_elem_iface as snd_ctl_elem_iface_t;
4916#[doc = " Elements related event"]
4917pub const SND_CTL_EVENT_ELEM: _snd_ctl_event_type = 0;
4918#[doc = " Elements related event"]
4919pub const SND_CTL_EVENT_LAST: _snd_ctl_event_type = 0;
4920#[doc = " Event class"]
4921pub type _snd_ctl_event_type = u32;
4922#[doc = " Event class"]
4923pub use self::_snd_ctl_event_type as snd_ctl_event_type_t;
4924#[doc = " Kernel level CTL"]
4925pub const SND_CTL_TYPE_HW: _snd_ctl_type = 0;
4926#[doc = " Shared memory client CTL"]
4927pub const SND_CTL_TYPE_SHM: _snd_ctl_type = 1;
4928#[doc = " INET client CTL (not yet implemented)"]
4929pub const SND_CTL_TYPE_INET: _snd_ctl_type = 2;
4930#[doc = " External control plugin"]
4931pub const SND_CTL_TYPE_EXT: _snd_ctl_type = 3;
4932#[doc = " CTL type"]
4933pub type _snd_ctl_type = u32;
4934#[doc = " CTL type"]
4935pub use self::_snd_ctl_type as snd_ctl_type_t;
4936#[repr(C)]
4937#[derive(Debug, Copy, Clone)]
4938pub struct _snd_ctl {
4939 _unused: [u8; 0],
4940}
4941#[doc = " CTL handle"]
4942pub type snd_ctl_t = _snd_ctl;
4943#[repr(C)]
4944#[derive(Debug, Copy, Clone)]
4945pub struct _snd_sctl {
4946 _unused: [u8; 0],
4947}
4948#[doc = " SCTL type"]
4949pub type snd_sctl_t = _snd_sctl;
4950extern "C" {
4951 pub fn snd_card_load(card: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
4952}
4953extern "C" {
4954 pub fn snd_card_next(card: *mut ::std::os::raw::c_int) -> ::std::os::raw::c_int;
4955}
4956extern "C" {
4957 pub fn snd_card_get_index(name: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int;
4958}
4959extern "C" {
4960 pub fn snd_card_get_name(
4961 card: ::std::os::raw::c_int,
4962 name: *mut *mut ::std::os::raw::c_char,
4963 ) -> ::std::os::raw::c_int;
4964}
4965extern "C" {
4966 pub fn snd_card_get_longname(
4967 card: ::std::os::raw::c_int,
4968 name: *mut *mut ::std::os::raw::c_char,
4969 ) -> ::std::os::raw::c_int;
4970}
4971extern "C" {
4972 pub fn snd_device_name_hint(
4973 card: ::std::os::raw::c_int,
4974 iface: *const ::std::os::raw::c_char,
4975 hints: *mut *mut *mut ::std::os::raw::c_void,
4976 ) -> ::std::os::raw::c_int;
4977}
4978extern "C" {
4979 pub fn snd_device_name_free_hint(
4980 hints: *mut *mut ::std::os::raw::c_void,
4981 ) -> ::std::os::raw::c_int;
4982}
4983extern "C" {
4984 pub fn snd_device_name_get_hint(
4985 hint: *const ::std::os::raw::c_void,
4986 id: *const ::std::os::raw::c_char,
4987 ) -> *mut ::std::os::raw::c_char;
4988}
4989extern "C" {
4990 pub fn snd_ctl_open(
4991 ctl: *mut *mut snd_ctl_t,
4992 name: *const ::std::os::raw::c_char,
4993 mode: ::std::os::raw::c_int,
4994 ) -> ::std::os::raw::c_int;
4995}
4996extern "C" {
4997 pub fn snd_ctl_open_lconf(
4998 ctl: *mut *mut snd_ctl_t,
4999 name: *const ::std::os::raw::c_char,
5000 mode: ::std::os::raw::c_int,
5001 lconf: *mut snd_config_t,
5002 ) -> ::std::os::raw::c_int;
5003}
5004extern "C" {
5005 pub fn snd_ctl_open_fallback(
5006 ctl: *mut *mut snd_ctl_t,
5007 root: *mut snd_config_t,
5008 name: *const ::std::os::raw::c_char,
5009 orig_name: *const ::std::os::raw::c_char,
5010 mode: ::std::os::raw::c_int,
5011 ) -> ::std::os::raw::c_int;
5012}
5013extern "C" {
5014 pub fn snd_ctl_close(ctl: *mut snd_ctl_t) -> ::std::os::raw::c_int;
5015}
5016extern "C" {
5017 pub fn snd_ctl_nonblock(
5018 ctl: *mut snd_ctl_t,
5019 nonblock: ::std::os::raw::c_int,
5020 ) -> ::std::os::raw::c_int;
5021}
5022extern "C" {
5023 pub fn snd_async_add_ctl_handler(
5024 handler: *mut *mut snd_async_handler_t,
5025 ctl: *mut snd_ctl_t,
5026 callback: snd_async_callback_t,
5027 private_data: *mut ::std::os::raw::c_void,
5028 ) -> ::std::os::raw::c_int;
5029}
5030extern "C" {
5031 pub fn snd_async_handler_get_ctl(handler: *mut snd_async_handler_t) -> *mut snd_ctl_t;
5032}
5033extern "C" {
5034 pub fn snd_ctl_poll_descriptors_count(ctl: *mut snd_ctl_t) -> ::std::os::raw::c_int;
5035}
5036extern "C" {
5037 pub fn snd_ctl_poll_descriptors(
5038 ctl: *mut snd_ctl_t,
5039 pfds: *mut pollfd,
5040 space: ::std::os::raw::c_uint,
5041 ) -> ::std::os::raw::c_int;
5042}
5043extern "C" {
5044 pub fn snd_ctl_poll_descriptors_revents(
5045 ctl: *mut snd_ctl_t,
5046 pfds: *mut pollfd,
5047 nfds: ::std::os::raw::c_uint,
5048 revents: *mut ::std::os::raw::c_ushort,
5049 ) -> ::std::os::raw::c_int;
5050}
5051extern "C" {
5052 pub fn snd_ctl_subscribe_events(
5053 ctl: *mut snd_ctl_t,
5054 subscribe: ::std::os::raw::c_int,
5055 ) -> ::std::os::raw::c_int;
5056}
5057extern "C" {
5058 pub fn snd_ctl_card_info(
5059 ctl: *mut snd_ctl_t,
5060 info: *mut snd_ctl_card_info_t,
5061 ) -> ::std::os::raw::c_int;
5062}
5063extern "C" {
5064 pub fn snd_ctl_elem_list(
5065 ctl: *mut snd_ctl_t,
5066 list: *mut snd_ctl_elem_list_t,
5067 ) -> ::std::os::raw::c_int;
5068}
5069extern "C" {
5070 pub fn snd_ctl_elem_info(
5071 ctl: *mut snd_ctl_t,
5072 info: *mut snd_ctl_elem_info_t,
5073 ) -> ::std::os::raw::c_int;
5074}
5075extern "C" {
5076 pub fn snd_ctl_elem_read(
5077 ctl: *mut snd_ctl_t,
5078 data: *mut snd_ctl_elem_value_t,
5079 ) -> ::std::os::raw::c_int;
5080}
5081extern "C" {
5082 pub fn snd_ctl_elem_write(
5083 ctl: *mut snd_ctl_t,
5084 data: *mut snd_ctl_elem_value_t,
5085 ) -> ::std::os::raw::c_int;
5086}
5087extern "C" {
5088 pub fn snd_ctl_elem_lock(
5089 ctl: *mut snd_ctl_t,
5090 id: *mut snd_ctl_elem_id_t,
5091 ) -> ::std::os::raw::c_int;
5092}
5093extern "C" {
5094 pub fn snd_ctl_elem_unlock(
5095 ctl: *mut snd_ctl_t,
5096 id: *mut snd_ctl_elem_id_t,
5097 ) -> ::std::os::raw::c_int;
5098}
5099extern "C" {
5100 pub fn snd_ctl_elem_tlv_read(
5101 ctl: *mut snd_ctl_t,
5102 id: *const snd_ctl_elem_id_t,
5103 tlv: *mut ::std::os::raw::c_uint,
5104 tlv_size: ::std::os::raw::c_uint,
5105 ) -> ::std::os::raw::c_int;
5106}
5107extern "C" {
5108 pub fn snd_ctl_elem_tlv_write(
5109 ctl: *mut snd_ctl_t,
5110 id: *const snd_ctl_elem_id_t,
5111 tlv: *const ::std::os::raw::c_uint,
5112 ) -> ::std::os::raw::c_int;
5113}
5114extern "C" {
5115 pub fn snd_ctl_elem_tlv_command(
5116 ctl: *mut snd_ctl_t,
5117 id: *const snd_ctl_elem_id_t,
5118 tlv: *const ::std::os::raw::c_uint,
5119 ) -> ::std::os::raw::c_int;
5120}
5121extern "C" {
5122 pub fn snd_ctl_hwdep_next_device(
5123 ctl: *mut snd_ctl_t,
5124 device: *mut ::std::os::raw::c_int,
5125 ) -> ::std::os::raw::c_int;
5126}
5127extern "C" {
5128 pub fn snd_ctl_hwdep_info(
5129 ctl: *mut snd_ctl_t,
5130 info: *mut snd_hwdep_info_t,
5131 ) -> ::std::os::raw::c_int;
5132}
5133extern "C" {
5134 pub fn snd_ctl_pcm_next_device(
5135 ctl: *mut snd_ctl_t,
5136 device: *mut ::std::os::raw::c_int,
5137 ) -> ::std::os::raw::c_int;
5138}
5139extern "C" {
5140 pub fn snd_ctl_pcm_info(
5141 ctl: *mut snd_ctl_t,
5142 info: *mut snd_pcm_info_t,
5143 ) -> ::std::os::raw::c_int;
5144}
5145extern "C" {
5146 pub fn snd_ctl_pcm_prefer_subdevice(
5147 ctl: *mut snd_ctl_t,
5148 subdev: ::std::os::raw::c_int,
5149 ) -> ::std::os::raw::c_int;
5150}
5151extern "C" {
5152 pub fn snd_ctl_rawmidi_next_device(
5153 ctl: *mut snd_ctl_t,
5154 device: *mut ::std::os::raw::c_int,
5155 ) -> ::std::os::raw::c_int;
5156}
5157extern "C" {
5158 pub fn snd_ctl_rawmidi_info(
5159 ctl: *mut snd_ctl_t,
5160 info: *mut snd_rawmidi_info_t,
5161 ) -> ::std::os::raw::c_int;
5162}
5163extern "C" {
5164 pub fn snd_ctl_rawmidi_prefer_subdevice(
5165 ctl: *mut snd_ctl_t,
5166 subdev: ::std::os::raw::c_int,
5167 ) -> ::std::os::raw::c_int;
5168}
5169extern "C" {
5170 pub fn snd_ctl_set_power_state(
5171 ctl: *mut snd_ctl_t,
5172 state: ::std::os::raw::c_uint,
5173 ) -> ::std::os::raw::c_int;
5174}
5175extern "C" {
5176 pub fn snd_ctl_get_power_state(
5177 ctl: *mut snd_ctl_t,
5178 state: *mut ::std::os::raw::c_uint,
5179 ) -> ::std::os::raw::c_int;
5180}
5181extern "C" {
5182 pub fn snd_ctl_read(ctl: *mut snd_ctl_t, event: *mut snd_ctl_event_t) -> ::std::os::raw::c_int;
5183}
5184extern "C" {
5185 pub fn snd_ctl_wait(
5186 ctl: *mut snd_ctl_t,
5187 timeout: ::std::os::raw::c_int,
5188 ) -> ::std::os::raw::c_int;
5189}
5190extern "C" {
5191 pub fn snd_ctl_name(ctl: *mut snd_ctl_t) -> *const ::std::os::raw::c_char;
5192}
5193extern "C" {
5194 pub fn snd_ctl_type(ctl: *mut snd_ctl_t) -> snd_ctl_type_t;
5195}
5196extern "C" {
5197 pub fn snd_ctl_elem_type_name(type_: snd_ctl_elem_type_t) -> *const ::std::os::raw::c_char;
5198}
5199extern "C" {
5200 pub fn snd_ctl_elem_iface_name(iface: snd_ctl_elem_iface_t) -> *const ::std::os::raw::c_char;
5201}
5202extern "C" {
5203 pub fn snd_ctl_event_type_name(type_: snd_ctl_event_type_t) -> *const ::std::os::raw::c_char;
5204}
5205extern "C" {
5206 pub fn snd_ctl_event_elem_get_mask(obj: *const snd_ctl_event_t) -> ::std::os::raw::c_uint;
5207}
5208extern "C" {
5209 pub fn snd_ctl_event_elem_get_numid(obj: *const snd_ctl_event_t) -> ::std::os::raw::c_uint;
5210}
5211extern "C" {
5212 pub fn snd_ctl_event_elem_get_id(obj: *const snd_ctl_event_t, ptr: *mut snd_ctl_elem_id_t);
5213}
5214extern "C" {
5215 pub fn snd_ctl_event_elem_get_interface(obj: *const snd_ctl_event_t) -> snd_ctl_elem_iface_t;
5216}
5217extern "C" {
5218 pub fn snd_ctl_event_elem_get_device(obj: *const snd_ctl_event_t) -> ::std::os::raw::c_uint;
5219}
5220extern "C" {
5221 pub fn snd_ctl_event_elem_get_subdevice(obj: *const snd_ctl_event_t) -> ::std::os::raw::c_uint;
5222}
5223extern "C" {
5224 pub fn snd_ctl_event_elem_get_name(
5225 obj: *const snd_ctl_event_t,
5226 ) -> *const ::std::os::raw::c_char;
5227}
5228extern "C" {
5229 pub fn snd_ctl_event_elem_get_index(obj: *const snd_ctl_event_t) -> ::std::os::raw::c_uint;
5230}
5231extern "C" {
5232 pub fn snd_ctl_elem_list_alloc_space(
5233 obj: *mut snd_ctl_elem_list_t,
5234 entries: ::std::os::raw::c_uint,
5235 ) -> ::std::os::raw::c_int;
5236}
5237extern "C" {
5238 pub fn snd_ctl_elem_list_free_space(obj: *mut snd_ctl_elem_list_t);
5239}
5240extern "C" {
5241 pub fn snd_ctl_ascii_elem_id_get(id: *mut snd_ctl_elem_id_t) -> *mut ::std::os::raw::c_char;
5242}
5243extern "C" {
5244 pub fn snd_ctl_ascii_elem_id_parse(
5245 dst: *mut snd_ctl_elem_id_t,
5246 str: *const ::std::os::raw::c_char,
5247 ) -> ::std::os::raw::c_int;
5248}
5249extern "C" {
5250 pub fn snd_ctl_ascii_value_parse(
5251 handle: *mut snd_ctl_t,
5252 dst: *mut snd_ctl_elem_value_t,
5253 info: *mut snd_ctl_elem_info_t,
5254 value: *const ::std::os::raw::c_char,
5255 ) -> ::std::os::raw::c_int;
5256}
5257extern "C" {
5258 pub fn snd_ctl_elem_id_sizeof() -> usize;
5259}
5260extern "C" {
5261 pub fn snd_ctl_elem_id_malloc(ptr: *mut *mut snd_ctl_elem_id_t) -> ::std::os::raw::c_int;
5262}
5263extern "C" {
5264 pub fn snd_ctl_elem_id_free(obj: *mut snd_ctl_elem_id_t);
5265}
5266extern "C" {
5267 pub fn snd_ctl_elem_id_clear(obj: *mut snd_ctl_elem_id_t);
5268}
5269extern "C" {
5270 pub fn snd_ctl_elem_id_copy(dst: *mut snd_ctl_elem_id_t, src: *const snd_ctl_elem_id_t);
5271}
5272extern "C" {
5273 pub fn snd_ctl_elem_id_get_numid(obj: *const snd_ctl_elem_id_t) -> ::std::os::raw::c_uint;
5274}
5275extern "C" {
5276 pub fn snd_ctl_elem_id_get_interface(obj: *const snd_ctl_elem_id_t) -> snd_ctl_elem_iface_t;
5277}
5278extern "C" {
5279 pub fn snd_ctl_elem_id_get_device(obj: *const snd_ctl_elem_id_t) -> ::std::os::raw::c_uint;
5280}
5281extern "C" {
5282 pub fn snd_ctl_elem_id_get_subdevice(obj: *const snd_ctl_elem_id_t) -> ::std::os::raw::c_uint;
5283}
5284extern "C" {
5285 pub fn snd_ctl_elem_id_get_name(obj: *const snd_ctl_elem_id_t)
5286 -> *const ::std::os::raw::c_char;
5287}
5288extern "C" {
5289 pub fn snd_ctl_elem_id_get_index(obj: *const snd_ctl_elem_id_t) -> ::std::os::raw::c_uint;
5290}
5291extern "C" {
5292 pub fn snd_ctl_elem_id_set_numid(obj: *mut snd_ctl_elem_id_t, val: ::std::os::raw::c_uint);
5293}
5294extern "C" {
5295 pub fn snd_ctl_elem_id_set_interface(obj: *mut snd_ctl_elem_id_t, val: snd_ctl_elem_iface_t);
5296}
5297extern "C" {
5298 pub fn snd_ctl_elem_id_set_device(obj: *mut snd_ctl_elem_id_t, val: ::std::os::raw::c_uint);
5299}
5300extern "C" {
5301 pub fn snd_ctl_elem_id_set_subdevice(obj: *mut snd_ctl_elem_id_t, val: ::std::os::raw::c_uint);
5302}
5303extern "C" {
5304 pub fn snd_ctl_elem_id_set_name(
5305 obj: *mut snd_ctl_elem_id_t,
5306 val: *const ::std::os::raw::c_char,
5307 );
5308}
5309extern "C" {
5310 pub fn snd_ctl_elem_id_set_index(obj: *mut snd_ctl_elem_id_t, val: ::std::os::raw::c_uint);
5311}
5312extern "C" {
5313 pub fn snd_ctl_card_info_sizeof() -> usize;
5314}
5315extern "C" {
5316 pub fn snd_ctl_card_info_malloc(ptr: *mut *mut snd_ctl_card_info_t) -> ::std::os::raw::c_int;
5317}
5318extern "C" {
5319 pub fn snd_ctl_card_info_free(obj: *mut snd_ctl_card_info_t);
5320}
5321extern "C" {
5322 pub fn snd_ctl_card_info_clear(obj: *mut snd_ctl_card_info_t);
5323}
5324extern "C" {
5325 pub fn snd_ctl_card_info_copy(dst: *mut snd_ctl_card_info_t, src: *const snd_ctl_card_info_t);
5326}
5327extern "C" {
5328 pub fn snd_ctl_card_info_get_card(obj: *const snd_ctl_card_info_t) -> ::std::os::raw::c_int;
5329}
5330extern "C" {
5331 pub fn snd_ctl_card_info_get_id(
5332 obj: *const snd_ctl_card_info_t,
5333 ) -> *const ::std::os::raw::c_char;
5334}
5335extern "C" {
5336 pub fn snd_ctl_card_info_get_driver(
5337 obj: *const snd_ctl_card_info_t,
5338 ) -> *const ::std::os::raw::c_char;
5339}
5340extern "C" {
5341 pub fn snd_ctl_card_info_get_name(
5342 obj: *const snd_ctl_card_info_t,
5343 ) -> *const ::std::os::raw::c_char;
5344}
5345extern "C" {
5346 pub fn snd_ctl_card_info_get_longname(
5347 obj: *const snd_ctl_card_info_t,
5348 ) -> *const ::std::os::raw::c_char;
5349}
5350extern "C" {
5351 pub fn snd_ctl_card_info_get_mixername(
5352 obj: *const snd_ctl_card_info_t,
5353 ) -> *const ::std::os::raw::c_char;
5354}
5355extern "C" {
5356 pub fn snd_ctl_card_info_get_components(
5357 obj: *const snd_ctl_card_info_t,
5358 ) -> *const ::std::os::raw::c_char;
5359}
5360extern "C" {
5361 pub fn snd_ctl_event_sizeof() -> usize;
5362}
5363extern "C" {
5364 pub fn snd_ctl_event_malloc(ptr: *mut *mut snd_ctl_event_t) -> ::std::os::raw::c_int;
5365}
5366extern "C" {
5367 pub fn snd_ctl_event_free(obj: *mut snd_ctl_event_t);
5368}
5369extern "C" {
5370 pub fn snd_ctl_event_clear(obj: *mut snd_ctl_event_t);
5371}
5372extern "C" {
5373 pub fn snd_ctl_event_copy(dst: *mut snd_ctl_event_t, src: *const snd_ctl_event_t);
5374}
5375extern "C" {
5376 pub fn snd_ctl_event_get_type(obj: *const snd_ctl_event_t) -> snd_ctl_event_type_t;
5377}
5378extern "C" {
5379 pub fn snd_ctl_elem_list_sizeof() -> usize;
5380}
5381extern "C" {
5382 pub fn snd_ctl_elem_list_malloc(ptr: *mut *mut snd_ctl_elem_list_t) -> ::std::os::raw::c_int;
5383}
5384extern "C" {
5385 pub fn snd_ctl_elem_list_free(obj: *mut snd_ctl_elem_list_t);
5386}
5387extern "C" {
5388 pub fn snd_ctl_elem_list_clear(obj: *mut snd_ctl_elem_list_t);
5389}
5390extern "C" {
5391 pub fn snd_ctl_elem_list_copy(dst: *mut snd_ctl_elem_list_t, src: *const snd_ctl_elem_list_t);
5392}
5393extern "C" {
5394 pub fn snd_ctl_elem_list_set_offset(obj: *mut snd_ctl_elem_list_t, val: ::std::os::raw::c_uint);
5395}
5396extern "C" {
5397 pub fn snd_ctl_elem_list_get_used(obj: *const snd_ctl_elem_list_t) -> ::std::os::raw::c_uint;
5398}
5399extern "C" {
5400 pub fn snd_ctl_elem_list_get_count(obj: *const snd_ctl_elem_list_t) -> ::std::os::raw::c_uint;
5401}
5402extern "C" {
5403 pub fn snd_ctl_elem_list_get_id(
5404 obj: *const snd_ctl_elem_list_t,
5405 idx: ::std::os::raw::c_uint,
5406 ptr: *mut snd_ctl_elem_id_t,
5407 );
5408}
5409extern "C" {
5410 pub fn snd_ctl_elem_list_get_numid(
5411 obj: *const snd_ctl_elem_list_t,
5412 idx: ::std::os::raw::c_uint,
5413 ) -> ::std::os::raw::c_uint;
5414}
5415extern "C" {
5416 pub fn snd_ctl_elem_list_get_interface(
5417 obj: *const snd_ctl_elem_list_t,
5418 idx: ::std::os::raw::c_uint,
5419 ) -> snd_ctl_elem_iface_t;
5420}
5421extern "C" {
5422 pub fn snd_ctl_elem_list_get_device(
5423 obj: *const snd_ctl_elem_list_t,
5424 idx: ::std::os::raw::c_uint,
5425 ) -> ::std::os::raw::c_uint;
5426}
5427extern "C" {
5428 pub fn snd_ctl_elem_list_get_subdevice(
5429 obj: *const snd_ctl_elem_list_t,
5430 idx: ::std::os::raw::c_uint,
5431 ) -> ::std::os::raw::c_uint;
5432}
5433extern "C" {
5434 pub fn snd_ctl_elem_list_get_name(
5435 obj: *const snd_ctl_elem_list_t,
5436 idx: ::std::os::raw::c_uint,
5437 ) -> *const ::std::os::raw::c_char;
5438}
5439extern "C" {
5440 pub fn snd_ctl_elem_list_get_index(
5441 obj: *const snd_ctl_elem_list_t,
5442 idx: ::std::os::raw::c_uint,
5443 ) -> ::std::os::raw::c_uint;
5444}
5445extern "C" {
5446 pub fn snd_ctl_elem_info_sizeof() -> usize;
5447}
5448extern "C" {
5449 pub fn snd_ctl_elem_info_malloc(ptr: *mut *mut snd_ctl_elem_info_t) -> ::std::os::raw::c_int;
5450}
5451extern "C" {
5452 pub fn snd_ctl_elem_info_free(obj: *mut snd_ctl_elem_info_t);
5453}
5454extern "C" {
5455 pub fn snd_ctl_elem_info_clear(obj: *mut snd_ctl_elem_info_t);
5456}
5457extern "C" {
5458 pub fn snd_ctl_elem_info_copy(dst: *mut snd_ctl_elem_info_t, src: *const snd_ctl_elem_info_t);
5459}
5460extern "C" {
5461 pub fn snd_ctl_elem_info_get_type(obj: *const snd_ctl_elem_info_t) -> snd_ctl_elem_type_t;
5462}
5463extern "C" {
5464 pub fn snd_ctl_elem_info_is_readable(obj: *const snd_ctl_elem_info_t) -> ::std::os::raw::c_int;
5465}
5466extern "C" {
5467 pub fn snd_ctl_elem_info_is_writable(obj: *const snd_ctl_elem_info_t) -> ::std::os::raw::c_int;
5468}
5469extern "C" {
5470 pub fn snd_ctl_elem_info_is_volatile(obj: *const snd_ctl_elem_info_t) -> ::std::os::raw::c_int;
5471}
5472extern "C" {
5473 pub fn snd_ctl_elem_info_is_inactive(obj: *const snd_ctl_elem_info_t) -> ::std::os::raw::c_int;
5474}
5475extern "C" {
5476 pub fn snd_ctl_elem_info_is_locked(obj: *const snd_ctl_elem_info_t) -> ::std::os::raw::c_int;
5477}
5478extern "C" {
5479 pub fn snd_ctl_elem_info_is_tlv_readable(
5480 obj: *const snd_ctl_elem_info_t,
5481 ) -> ::std::os::raw::c_int;
5482}
5483extern "C" {
5484 pub fn snd_ctl_elem_info_is_tlv_writable(
5485 obj: *const snd_ctl_elem_info_t,
5486 ) -> ::std::os::raw::c_int;
5487}
5488extern "C" {
5489 pub fn snd_ctl_elem_info_is_tlv_commandable(
5490 obj: *const snd_ctl_elem_info_t,
5491 ) -> ::std::os::raw::c_int;
5492}
5493extern "C" {
5494 pub fn snd_ctl_elem_info_is_owner(obj: *const snd_ctl_elem_info_t) -> ::std::os::raw::c_int;
5495}
5496extern "C" {
5497 pub fn snd_ctl_elem_info_is_user(obj: *const snd_ctl_elem_info_t) -> ::std::os::raw::c_int;
5498}
5499extern "C" {
5500 pub fn snd_ctl_elem_info_get_owner(obj: *const snd_ctl_elem_info_t) -> pid_t;
5501}
5502extern "C" {
5503 pub fn snd_ctl_elem_info_get_count(obj: *const snd_ctl_elem_info_t) -> ::std::os::raw::c_uint;
5504}
5505extern "C" {
5506 pub fn snd_ctl_elem_info_get_min(obj: *const snd_ctl_elem_info_t) -> ::std::os::raw::c_long;
5507}
5508extern "C" {
5509 pub fn snd_ctl_elem_info_get_max(obj: *const snd_ctl_elem_info_t) -> ::std::os::raw::c_long;
5510}
5511extern "C" {
5512 pub fn snd_ctl_elem_info_get_step(obj: *const snd_ctl_elem_info_t) -> ::std::os::raw::c_long;
5513}
5514extern "C" {
5515 pub fn snd_ctl_elem_info_get_min64(
5516 obj: *const snd_ctl_elem_info_t,
5517 ) -> ::std::os::raw::c_longlong;
5518}
5519extern "C" {
5520 pub fn snd_ctl_elem_info_get_max64(
5521 obj: *const snd_ctl_elem_info_t,
5522 ) -> ::std::os::raw::c_longlong;
5523}
5524extern "C" {
5525 pub fn snd_ctl_elem_info_get_step64(
5526 obj: *const snd_ctl_elem_info_t,
5527 ) -> ::std::os::raw::c_longlong;
5528}
5529extern "C" {
5530 pub fn snd_ctl_elem_info_get_items(obj: *const snd_ctl_elem_info_t) -> ::std::os::raw::c_uint;
5531}
5532extern "C" {
5533 pub fn snd_ctl_elem_info_set_item(obj: *mut snd_ctl_elem_info_t, val: ::std::os::raw::c_uint);
5534}
5535extern "C" {
5536 pub fn snd_ctl_elem_info_get_item_name(
5537 obj: *const snd_ctl_elem_info_t,
5538 ) -> *const ::std::os::raw::c_char;
5539}
5540extern "C" {
5541 pub fn snd_ctl_elem_info_get_dimensions(
5542 obj: *const snd_ctl_elem_info_t,
5543 ) -> ::std::os::raw::c_int;
5544}
5545extern "C" {
5546 pub fn snd_ctl_elem_info_get_dimension(
5547 obj: *const snd_ctl_elem_info_t,
5548 idx: ::std::os::raw::c_uint,
5549 ) -> ::std::os::raw::c_int;
5550}
5551extern "C" {
5552 pub fn snd_ctl_elem_info_set_dimension(
5553 info: *mut snd_ctl_elem_info_t,
5554 dimension: *const ::std::os::raw::c_int,
5555 ) -> ::std::os::raw::c_int;
5556}
5557extern "C" {
5558 pub fn snd_ctl_elem_info_get_id(obj: *const snd_ctl_elem_info_t, ptr: *mut snd_ctl_elem_id_t);
5559}
5560extern "C" {
5561 pub fn snd_ctl_elem_info_get_numid(obj: *const snd_ctl_elem_info_t) -> ::std::os::raw::c_uint;
5562}
5563extern "C" {
5564 pub fn snd_ctl_elem_info_get_interface(obj: *const snd_ctl_elem_info_t)
5565 -> snd_ctl_elem_iface_t;
5566}
5567extern "C" {
5568 pub fn snd_ctl_elem_info_get_device(obj: *const snd_ctl_elem_info_t) -> ::std::os::raw::c_uint;
5569}
5570extern "C" {
5571 pub fn snd_ctl_elem_info_get_subdevice(
5572 obj: *const snd_ctl_elem_info_t,
5573 ) -> ::std::os::raw::c_uint;
5574}
5575extern "C" {
5576 pub fn snd_ctl_elem_info_get_name(
5577 obj: *const snd_ctl_elem_info_t,
5578 ) -> *const ::std::os::raw::c_char;
5579}
5580extern "C" {
5581 pub fn snd_ctl_elem_info_get_index(obj: *const snd_ctl_elem_info_t) -> ::std::os::raw::c_uint;
5582}
5583extern "C" {
5584 pub fn snd_ctl_elem_info_set_id(obj: *mut snd_ctl_elem_info_t, ptr: *const snd_ctl_elem_id_t);
5585}
5586extern "C" {
5587 pub fn snd_ctl_elem_info_set_numid(obj: *mut snd_ctl_elem_info_t, val: ::std::os::raw::c_uint);
5588}
5589extern "C" {
5590 pub fn snd_ctl_elem_info_set_interface(
5591 obj: *mut snd_ctl_elem_info_t,
5592 val: snd_ctl_elem_iface_t,
5593 );
5594}
5595extern "C" {
5596 pub fn snd_ctl_elem_info_set_device(obj: *mut snd_ctl_elem_info_t, val: ::std::os::raw::c_uint);
5597}
5598extern "C" {
5599 pub fn snd_ctl_elem_info_set_subdevice(
5600 obj: *mut snd_ctl_elem_info_t,
5601 val: ::std::os::raw::c_uint,
5602 );
5603}
5604extern "C" {
5605 pub fn snd_ctl_elem_info_set_name(
5606 obj: *mut snd_ctl_elem_info_t,
5607 val: *const ::std::os::raw::c_char,
5608 );
5609}
5610extern "C" {
5611 pub fn snd_ctl_elem_info_set_index(obj: *mut snd_ctl_elem_info_t, val: ::std::os::raw::c_uint);
5612}
5613extern "C" {
5614 pub fn snd_ctl_add_integer_elem_set(
5615 ctl: *mut snd_ctl_t,
5616 info: *mut snd_ctl_elem_info_t,
5617 element_count: ::std::os::raw::c_uint,
5618 member_count: ::std::os::raw::c_uint,
5619 min: ::std::os::raw::c_long,
5620 max: ::std::os::raw::c_long,
5621 step: ::std::os::raw::c_long,
5622 ) -> ::std::os::raw::c_int;
5623}
5624extern "C" {
5625 pub fn snd_ctl_add_integer64_elem_set(
5626 ctl: *mut snd_ctl_t,
5627 info: *mut snd_ctl_elem_info_t,
5628 element_count: ::std::os::raw::c_uint,
5629 member_count: ::std::os::raw::c_uint,
5630 min: ::std::os::raw::c_longlong,
5631 max: ::std::os::raw::c_longlong,
5632 step: ::std::os::raw::c_longlong,
5633 ) -> ::std::os::raw::c_int;
5634}
5635extern "C" {
5636 pub fn snd_ctl_add_boolean_elem_set(
5637 ctl: *mut snd_ctl_t,
5638 info: *mut snd_ctl_elem_info_t,
5639 element_count: ::std::os::raw::c_uint,
5640 member_count: ::std::os::raw::c_uint,
5641 ) -> ::std::os::raw::c_int;
5642}
5643extern "C" {
5644 pub fn snd_ctl_add_enumerated_elem_set(
5645 ctl: *mut snd_ctl_t,
5646 info: *mut snd_ctl_elem_info_t,
5647 element_count: ::std::os::raw::c_uint,
5648 member_count: ::std::os::raw::c_uint,
5649 items: ::std::os::raw::c_uint,
5650 labels: *const *const ::std::os::raw::c_char,
5651 ) -> ::std::os::raw::c_int;
5652}
5653extern "C" {
5654 pub fn snd_ctl_add_bytes_elem_set(
5655 ctl: *mut snd_ctl_t,
5656 info: *mut snd_ctl_elem_info_t,
5657 element_count: ::std::os::raw::c_uint,
5658 member_count: ::std::os::raw::c_uint,
5659 ) -> ::std::os::raw::c_int;
5660}
5661extern "C" {
5662 pub fn snd_ctl_elem_add_integer(
5663 ctl: *mut snd_ctl_t,
5664 id: *const snd_ctl_elem_id_t,
5665 count: ::std::os::raw::c_uint,
5666 imin: ::std::os::raw::c_long,
5667 imax: ::std::os::raw::c_long,
5668 istep: ::std::os::raw::c_long,
5669 ) -> ::std::os::raw::c_int;
5670}
5671extern "C" {
5672 pub fn snd_ctl_elem_add_integer64(
5673 ctl: *mut snd_ctl_t,
5674 id: *const snd_ctl_elem_id_t,
5675 count: ::std::os::raw::c_uint,
5676 imin: ::std::os::raw::c_longlong,
5677 imax: ::std::os::raw::c_longlong,
5678 istep: ::std::os::raw::c_longlong,
5679 ) -> ::std::os::raw::c_int;
5680}
5681extern "C" {
5682 pub fn snd_ctl_elem_add_boolean(
5683 ctl: *mut snd_ctl_t,
5684 id: *const snd_ctl_elem_id_t,
5685 count: ::std::os::raw::c_uint,
5686 ) -> ::std::os::raw::c_int;
5687}
5688extern "C" {
5689 pub fn snd_ctl_elem_add_enumerated(
5690 ctl: *mut snd_ctl_t,
5691 id: *const snd_ctl_elem_id_t,
5692 count: ::std::os::raw::c_uint,
5693 items: ::std::os::raw::c_uint,
5694 names: *const *const ::std::os::raw::c_char,
5695 ) -> ::std::os::raw::c_int;
5696}
5697extern "C" {
5698 pub fn snd_ctl_elem_add_iec958(
5699 ctl: *mut snd_ctl_t,
5700 id: *const snd_ctl_elem_id_t,
5701 ) -> ::std::os::raw::c_int;
5702}
5703extern "C" {
5704 pub fn snd_ctl_elem_remove(
5705 ctl: *mut snd_ctl_t,
5706 id: *mut snd_ctl_elem_id_t,
5707 ) -> ::std::os::raw::c_int;
5708}
5709extern "C" {
5710 pub fn snd_ctl_elem_value_sizeof() -> usize;
5711}
5712extern "C" {
5713 pub fn snd_ctl_elem_value_malloc(ptr: *mut *mut snd_ctl_elem_value_t) -> ::std::os::raw::c_int;
5714}
5715extern "C" {
5716 pub fn snd_ctl_elem_value_free(obj: *mut snd_ctl_elem_value_t);
5717}
5718extern "C" {
5719 pub fn snd_ctl_elem_value_clear(obj: *mut snd_ctl_elem_value_t);
5720}
5721extern "C" {
5722 pub fn snd_ctl_elem_value_copy(
5723 dst: *mut snd_ctl_elem_value_t,
5724 src: *const snd_ctl_elem_value_t,
5725 );
5726}
5727extern "C" {
5728 pub fn snd_ctl_elem_value_compare(
5729 left: *mut snd_ctl_elem_value_t,
5730 right: *const snd_ctl_elem_value_t,
5731 ) -> ::std::os::raw::c_int;
5732}
5733extern "C" {
5734 pub fn snd_ctl_elem_value_get_id(obj: *const snd_ctl_elem_value_t, ptr: *mut snd_ctl_elem_id_t);
5735}
5736extern "C" {
5737 pub fn snd_ctl_elem_value_get_numid(obj: *const snd_ctl_elem_value_t)
5738 -> ::std::os::raw::c_uint;
5739}
5740extern "C" {
5741 pub fn snd_ctl_elem_value_get_interface(
5742 obj: *const snd_ctl_elem_value_t,
5743 ) -> snd_ctl_elem_iface_t;
5744}
5745extern "C" {
5746 pub fn snd_ctl_elem_value_get_device(
5747 obj: *const snd_ctl_elem_value_t,
5748 ) -> ::std::os::raw::c_uint;
5749}
5750extern "C" {
5751 pub fn snd_ctl_elem_value_get_subdevice(
5752 obj: *const snd_ctl_elem_value_t,
5753 ) -> ::std::os::raw::c_uint;
5754}
5755extern "C" {
5756 pub fn snd_ctl_elem_value_get_name(
5757 obj: *const snd_ctl_elem_value_t,
5758 ) -> *const ::std::os::raw::c_char;
5759}
5760extern "C" {
5761 pub fn snd_ctl_elem_value_get_index(obj: *const snd_ctl_elem_value_t)
5762 -> ::std::os::raw::c_uint;
5763}
5764extern "C" {
5765 pub fn snd_ctl_elem_value_set_id(obj: *mut snd_ctl_elem_value_t, ptr: *const snd_ctl_elem_id_t);
5766}
5767extern "C" {
5768 pub fn snd_ctl_elem_value_set_numid(
5769 obj: *mut snd_ctl_elem_value_t,
5770 val: ::std::os::raw::c_uint,
5771 );
5772}
5773extern "C" {
5774 pub fn snd_ctl_elem_value_set_interface(
5775 obj: *mut snd_ctl_elem_value_t,
5776 val: snd_ctl_elem_iface_t,
5777 );
5778}
5779extern "C" {
5780 pub fn snd_ctl_elem_value_set_device(
5781 obj: *mut snd_ctl_elem_value_t,
5782 val: ::std::os::raw::c_uint,
5783 );
5784}
5785extern "C" {
5786 pub fn snd_ctl_elem_value_set_subdevice(
5787 obj: *mut snd_ctl_elem_value_t,
5788 val: ::std::os::raw::c_uint,
5789 );
5790}
5791extern "C" {
5792 pub fn snd_ctl_elem_value_set_name(
5793 obj: *mut snd_ctl_elem_value_t,
5794 val: *const ::std::os::raw::c_char,
5795 );
5796}
5797extern "C" {
5798 pub fn snd_ctl_elem_value_set_index(
5799 obj: *mut snd_ctl_elem_value_t,
5800 val: ::std::os::raw::c_uint,
5801 );
5802}
5803extern "C" {
5804 pub fn snd_ctl_elem_value_get_boolean(
5805 obj: *const snd_ctl_elem_value_t,
5806 idx: ::std::os::raw::c_uint,
5807 ) -> ::std::os::raw::c_int;
5808}
5809extern "C" {
5810 pub fn snd_ctl_elem_value_get_integer(
5811 obj: *const snd_ctl_elem_value_t,
5812 idx: ::std::os::raw::c_uint,
5813 ) -> ::std::os::raw::c_long;
5814}
5815extern "C" {
5816 pub fn snd_ctl_elem_value_get_integer64(
5817 obj: *const snd_ctl_elem_value_t,
5818 idx: ::std::os::raw::c_uint,
5819 ) -> ::std::os::raw::c_longlong;
5820}
5821extern "C" {
5822 pub fn snd_ctl_elem_value_get_enumerated(
5823 obj: *const snd_ctl_elem_value_t,
5824 idx: ::std::os::raw::c_uint,
5825 ) -> ::std::os::raw::c_uint;
5826}
5827extern "C" {
5828 pub fn snd_ctl_elem_value_get_byte(
5829 obj: *const snd_ctl_elem_value_t,
5830 idx: ::std::os::raw::c_uint,
5831 ) -> ::std::os::raw::c_uchar;
5832}
5833extern "C" {
5834 pub fn snd_ctl_elem_value_set_boolean(
5835 obj: *mut snd_ctl_elem_value_t,
5836 idx: ::std::os::raw::c_uint,
5837 val: ::std::os::raw::c_long,
5838 );
5839}
5840extern "C" {
5841 pub fn snd_ctl_elem_value_set_integer(
5842 obj: *mut snd_ctl_elem_value_t,
5843 idx: ::std::os::raw::c_uint,
5844 val: ::std::os::raw::c_long,
5845 );
5846}
5847extern "C" {
5848 pub fn snd_ctl_elem_value_set_integer64(
5849 obj: *mut snd_ctl_elem_value_t,
5850 idx: ::std::os::raw::c_uint,
5851 val: ::std::os::raw::c_longlong,
5852 );
5853}
5854extern "C" {
5855 pub fn snd_ctl_elem_value_set_enumerated(
5856 obj: *mut snd_ctl_elem_value_t,
5857 idx: ::std::os::raw::c_uint,
5858 val: ::std::os::raw::c_uint,
5859 );
5860}
5861extern "C" {
5862 pub fn snd_ctl_elem_value_set_byte(
5863 obj: *mut snd_ctl_elem_value_t,
5864 idx: ::std::os::raw::c_uint,
5865 val: ::std::os::raw::c_uchar,
5866 );
5867}
5868extern "C" {
5869 pub fn snd_ctl_elem_set_bytes(
5870 obj: *mut snd_ctl_elem_value_t,
5871 data: *mut ::std::os::raw::c_void,
5872 size: usize,
5873 );
5874}
5875extern "C" {
5876 pub fn snd_ctl_elem_value_get_bytes(
5877 obj: *const snd_ctl_elem_value_t,
5878 ) -> *const ::std::os::raw::c_void;
5879}
5880extern "C" {
5881 pub fn snd_ctl_elem_value_get_iec958(
5882 obj: *const snd_ctl_elem_value_t,
5883 ptr: *mut snd_aes_iec958_t,
5884 );
5885}
5886extern "C" {
5887 pub fn snd_ctl_elem_value_set_iec958(
5888 obj: *mut snd_ctl_elem_value_t,
5889 ptr: *const snd_aes_iec958_t,
5890 );
5891}
5892extern "C" {
5893 pub fn snd_tlv_parse_dB_info(
5894 tlv: *mut ::std::os::raw::c_uint,
5895 tlv_size: ::std::os::raw::c_uint,
5896 db_tlvp: *mut *mut ::std::os::raw::c_uint,
5897 ) -> ::std::os::raw::c_int;
5898}
5899extern "C" {
5900 pub fn snd_tlv_get_dB_range(
5901 tlv: *mut ::std::os::raw::c_uint,
5902 rangemin: ::std::os::raw::c_long,
5903 rangemax: ::std::os::raw::c_long,
5904 min: *mut ::std::os::raw::c_long,
5905 max: *mut ::std::os::raw::c_long,
5906 ) -> ::std::os::raw::c_int;
5907}
5908extern "C" {
5909 pub fn snd_tlv_convert_to_dB(
5910 tlv: *mut ::std::os::raw::c_uint,
5911 rangemin: ::std::os::raw::c_long,
5912 rangemax: ::std::os::raw::c_long,
5913 volume: ::std::os::raw::c_long,
5914 db_gain: *mut ::std::os::raw::c_long,
5915 ) -> ::std::os::raw::c_int;
5916}
5917extern "C" {
5918 pub fn snd_tlv_convert_from_dB(
5919 tlv: *mut ::std::os::raw::c_uint,
5920 rangemin: ::std::os::raw::c_long,
5921 rangemax: ::std::os::raw::c_long,
5922 db_gain: ::std::os::raw::c_long,
5923 value: *mut ::std::os::raw::c_long,
5924 xdir: ::std::os::raw::c_int,
5925 ) -> ::std::os::raw::c_int;
5926}
5927extern "C" {
5928 pub fn snd_ctl_get_dB_range(
5929 ctl: *mut snd_ctl_t,
5930 id: *const snd_ctl_elem_id_t,
5931 min: *mut ::std::os::raw::c_long,
5932 max: *mut ::std::os::raw::c_long,
5933 ) -> ::std::os::raw::c_int;
5934}
5935extern "C" {
5936 pub fn snd_ctl_convert_to_dB(
5937 ctl: *mut snd_ctl_t,
5938 id: *const snd_ctl_elem_id_t,
5939 volume: ::std::os::raw::c_long,
5940 db_gain: *mut ::std::os::raw::c_long,
5941 ) -> ::std::os::raw::c_int;
5942}
5943extern "C" {
5944 pub fn snd_ctl_convert_from_dB(
5945 ctl: *mut snd_ctl_t,
5946 id: *const snd_ctl_elem_id_t,
5947 db_gain: ::std::os::raw::c_long,
5948 value: *mut ::std::os::raw::c_long,
5949 xdir: ::std::os::raw::c_int,
5950 ) -> ::std::os::raw::c_int;
5951}
5952#[repr(C)]
5953#[derive(Debug, Copy, Clone)]
5954pub struct _snd_hctl_elem {
5955 _unused: [u8; 0],
5956}
5957#[doc = " HCTL element handle"]
5958pub type snd_hctl_elem_t = _snd_hctl_elem;
5959#[repr(C)]
5960#[derive(Debug, Copy, Clone)]
5961pub struct _snd_hctl {
5962 _unused: [u8; 0],
5963}
5964#[doc = " HCTL handle"]
5965pub type snd_hctl_t = _snd_hctl;
5966#[doc = " \\brief Compare function for sorting HCTL elements"]
5967#[doc = " \\param e1 First element"]
5968#[doc = " \\param e2 Second element"]
5969#[doc = " \\return -1 if e1 < e2, 0 if e1 == e2, 1 if e1 > e2"]
5970pub type snd_hctl_compare_t = ::std::option::Option<
5971 unsafe extern "C" fn(
5972 e1: *const snd_hctl_elem_t,
5973 e2: *const snd_hctl_elem_t,
5974 ) -> ::std::os::raw::c_int,
5975>;
5976extern "C" {
5977 pub fn snd_hctl_compare_fast(
5978 c1: *const snd_hctl_elem_t,
5979 c2: *const snd_hctl_elem_t,
5980 ) -> ::std::os::raw::c_int;
5981}
5982#[doc = " \\brief HCTL callback function"]
5983#[doc = " \\param hctl HCTL handle"]
5984#[doc = " \\param mask event mask"]
5985#[doc = " \\param elem related HCTL element (if any)"]
5986#[doc = " \\return 0 on success otherwise a negative error code"]
5987pub type snd_hctl_callback_t = ::std::option::Option<
5988 unsafe extern "C" fn(
5989 hctl: *mut snd_hctl_t,
5990 mask: ::std::os::raw::c_uint,
5991 elem: *mut snd_hctl_elem_t,
5992 ) -> ::std::os::raw::c_int,
5993>;
5994#[doc = " \\brief HCTL element callback function"]
5995#[doc = " \\param elem HCTL element"]
5996#[doc = " \\param mask event mask"]
5997#[doc = " \\return 0 on success otherwise a negative error code"]
5998pub type snd_hctl_elem_callback_t = ::std::option::Option<
5999 unsafe extern "C" fn(
6000 elem: *mut snd_hctl_elem_t,
6001 mask: ::std::os::raw::c_uint,
6002 ) -> ::std::os::raw::c_int,
6003>;
6004extern "C" {
6005 pub fn snd_hctl_open(
6006 hctl: *mut *mut snd_hctl_t,
6007 name: *const ::std::os::raw::c_char,
6008 mode: ::std::os::raw::c_int,
6009 ) -> ::std::os::raw::c_int;
6010}
6011extern "C" {
6012 pub fn snd_hctl_open_ctl(
6013 hctlp: *mut *mut snd_hctl_t,
6014 ctl: *mut snd_ctl_t,
6015 ) -> ::std::os::raw::c_int;
6016}
6017extern "C" {
6018 pub fn snd_hctl_close(hctl: *mut snd_hctl_t) -> ::std::os::raw::c_int;
6019}
6020extern "C" {
6021 pub fn snd_hctl_nonblock(
6022 hctl: *mut snd_hctl_t,
6023 nonblock: ::std::os::raw::c_int,
6024 ) -> ::std::os::raw::c_int;
6025}
6026extern "C" {
6027 pub fn snd_hctl_poll_descriptors_count(hctl: *mut snd_hctl_t) -> ::std::os::raw::c_int;
6028}
6029extern "C" {
6030 pub fn snd_hctl_poll_descriptors(
6031 hctl: *mut snd_hctl_t,
6032 pfds: *mut pollfd,
6033 space: ::std::os::raw::c_uint,
6034 ) -> ::std::os::raw::c_int;
6035}
6036extern "C" {
6037 pub fn snd_hctl_poll_descriptors_revents(
6038 ctl: *mut snd_hctl_t,
6039 pfds: *mut pollfd,
6040 nfds: ::std::os::raw::c_uint,
6041 revents: *mut ::std::os::raw::c_ushort,
6042 ) -> ::std::os::raw::c_int;
6043}
6044extern "C" {
6045 pub fn snd_hctl_get_count(hctl: *mut snd_hctl_t) -> ::std::os::raw::c_uint;
6046}
6047extern "C" {
6048 pub fn snd_hctl_set_compare(
6049 hctl: *mut snd_hctl_t,
6050 hsort: snd_hctl_compare_t,
6051 ) -> ::std::os::raw::c_int;
6052}
6053extern "C" {
6054 pub fn snd_hctl_first_elem(hctl: *mut snd_hctl_t) -> *mut snd_hctl_elem_t;
6055}
6056extern "C" {
6057 pub fn snd_hctl_last_elem(hctl: *mut snd_hctl_t) -> *mut snd_hctl_elem_t;
6058}
6059extern "C" {
6060 pub fn snd_hctl_find_elem(
6061 hctl: *mut snd_hctl_t,
6062 id: *const snd_ctl_elem_id_t,
6063 ) -> *mut snd_hctl_elem_t;
6064}
6065extern "C" {
6066 pub fn snd_hctl_set_callback(hctl: *mut snd_hctl_t, callback: snd_hctl_callback_t);
6067}
6068extern "C" {
6069 pub fn snd_hctl_set_callback_private(hctl: *mut snd_hctl_t, data: *mut ::std::os::raw::c_void);
6070}
6071extern "C" {
6072 pub fn snd_hctl_get_callback_private(hctl: *mut snd_hctl_t) -> *mut ::std::os::raw::c_void;
6073}
6074extern "C" {
6075 pub fn snd_hctl_load(hctl: *mut snd_hctl_t) -> ::std::os::raw::c_int;
6076}
6077extern "C" {
6078 pub fn snd_hctl_free(hctl: *mut snd_hctl_t) -> ::std::os::raw::c_int;
6079}
6080extern "C" {
6081 pub fn snd_hctl_handle_events(hctl: *mut snd_hctl_t) -> ::std::os::raw::c_int;
6082}
6083extern "C" {
6084 pub fn snd_hctl_name(hctl: *mut snd_hctl_t) -> *const ::std::os::raw::c_char;
6085}
6086extern "C" {
6087 pub fn snd_hctl_wait(
6088 hctl: *mut snd_hctl_t,
6089 timeout: ::std::os::raw::c_int,
6090 ) -> ::std::os::raw::c_int;
6091}
6092extern "C" {
6093 pub fn snd_hctl_ctl(hctl: *mut snd_hctl_t) -> *mut snd_ctl_t;
6094}
6095extern "C" {
6096 pub fn snd_hctl_elem_next(elem: *mut snd_hctl_elem_t) -> *mut snd_hctl_elem_t;
6097}
6098extern "C" {
6099 pub fn snd_hctl_elem_prev(elem: *mut snd_hctl_elem_t) -> *mut snd_hctl_elem_t;
6100}
6101extern "C" {
6102 pub fn snd_hctl_elem_info(
6103 elem: *mut snd_hctl_elem_t,
6104 info: *mut snd_ctl_elem_info_t,
6105 ) -> ::std::os::raw::c_int;
6106}
6107extern "C" {
6108 pub fn snd_hctl_elem_read(
6109 elem: *mut snd_hctl_elem_t,
6110 value: *mut snd_ctl_elem_value_t,
6111 ) -> ::std::os::raw::c_int;
6112}
6113extern "C" {
6114 pub fn snd_hctl_elem_write(
6115 elem: *mut snd_hctl_elem_t,
6116 value: *mut snd_ctl_elem_value_t,
6117 ) -> ::std::os::raw::c_int;
6118}
6119extern "C" {
6120 pub fn snd_hctl_elem_tlv_read(
6121 elem: *mut snd_hctl_elem_t,
6122 tlv: *mut ::std::os::raw::c_uint,
6123 tlv_size: ::std::os::raw::c_uint,
6124 ) -> ::std::os::raw::c_int;
6125}
6126extern "C" {
6127 pub fn snd_hctl_elem_tlv_write(
6128 elem: *mut snd_hctl_elem_t,
6129 tlv: *const ::std::os::raw::c_uint,
6130 ) -> ::std::os::raw::c_int;
6131}
6132extern "C" {
6133 pub fn snd_hctl_elem_tlv_command(
6134 elem: *mut snd_hctl_elem_t,
6135 tlv: *const ::std::os::raw::c_uint,
6136 ) -> ::std::os::raw::c_int;
6137}
6138extern "C" {
6139 pub fn snd_hctl_elem_get_hctl(elem: *mut snd_hctl_elem_t) -> *mut snd_hctl_t;
6140}
6141extern "C" {
6142 pub fn snd_hctl_elem_get_id(obj: *const snd_hctl_elem_t, ptr: *mut snd_ctl_elem_id_t);
6143}
6144extern "C" {
6145 pub fn snd_hctl_elem_get_numid(obj: *const snd_hctl_elem_t) -> ::std::os::raw::c_uint;
6146}
6147extern "C" {
6148 pub fn snd_hctl_elem_get_interface(obj: *const snd_hctl_elem_t) -> snd_ctl_elem_iface_t;
6149}
6150extern "C" {
6151 pub fn snd_hctl_elem_get_device(obj: *const snd_hctl_elem_t) -> ::std::os::raw::c_uint;
6152}
6153extern "C" {
6154 pub fn snd_hctl_elem_get_subdevice(obj: *const snd_hctl_elem_t) -> ::std::os::raw::c_uint;
6155}
6156extern "C" {
6157 pub fn snd_hctl_elem_get_name(obj: *const snd_hctl_elem_t) -> *const ::std::os::raw::c_char;
6158}
6159extern "C" {
6160 pub fn snd_hctl_elem_get_index(obj: *const snd_hctl_elem_t) -> ::std::os::raw::c_uint;
6161}
6162extern "C" {
6163 pub fn snd_hctl_elem_set_callback(obj: *mut snd_hctl_elem_t, val: snd_hctl_elem_callback_t);
6164}
6165extern "C" {
6166 pub fn snd_hctl_elem_get_callback_private(
6167 obj: *const snd_hctl_elem_t,
6168 ) -> *mut ::std::os::raw::c_void;
6169}
6170extern "C" {
6171 pub fn snd_hctl_elem_set_callback_private(
6172 obj: *mut snd_hctl_elem_t,
6173 val: *mut ::std::os::raw::c_void,
6174 );
6175}
6176extern "C" {
6177 #[doc = " \\defgroup SControl Setup Control Interface"]
6178 #[doc = " \\ingroup Control"]
6179 #[doc = " The setup control interface - set or modify control elements from a configuration file."]
6180 #[doc = " \\{"]
6181 pub fn snd_sctl_build(
6182 ctl: *mut *mut snd_sctl_t,
6183 handle: *mut snd_ctl_t,
6184 config: *mut snd_config_t,
6185 private_data: *mut snd_config_t,
6186 mode: ::std::os::raw::c_int,
6187 ) -> ::std::os::raw::c_int;
6188}
6189extern "C" {
6190 pub fn snd_sctl_free(handle: *mut snd_sctl_t) -> ::std::os::raw::c_int;
6191}
6192extern "C" {
6193 pub fn snd_sctl_install(handle: *mut snd_sctl_t) -> ::std::os::raw::c_int;
6194}
6195extern "C" {
6196 pub fn snd_sctl_remove(handle: *mut snd_sctl_t) -> ::std::os::raw::c_int;
6197}
6198#[repr(C)]
6199#[derive(Debug, Copy, Clone)]
6200pub struct _snd_mixer {
6201 _unused: [u8; 0],
6202}
6203#[doc = " Mixer handle"]
6204pub type snd_mixer_t = _snd_mixer;
6205#[repr(C)]
6206#[derive(Debug, Copy, Clone)]
6207pub struct _snd_mixer_class {
6208 _unused: [u8; 0],
6209}
6210#[doc = " Mixer elements class handle"]
6211pub type snd_mixer_class_t = _snd_mixer_class;
6212#[repr(C)]
6213#[derive(Debug, Copy, Clone)]
6214pub struct _snd_mixer_elem {
6215 _unused: [u8; 0],
6216}
6217#[doc = " Mixer element handle"]
6218pub type snd_mixer_elem_t = _snd_mixer_elem;
6219#[doc = " \\brief Mixer callback function"]
6220#[doc = " \\param mixer Mixer handle"]
6221#[doc = " \\param mask event mask"]
6222#[doc = " \\param elem related mixer element (if any)"]
6223#[doc = " \\return 0 on success otherwise a negative error code"]
6224pub type snd_mixer_callback_t = ::std::option::Option<
6225 unsafe extern "C" fn(
6226 ctl: *mut snd_mixer_t,
6227 mask: ::std::os::raw::c_uint,
6228 elem: *mut snd_mixer_elem_t,
6229 ) -> ::std::os::raw::c_int,
6230>;
6231#[doc = " \\brief Mixer element callback function"]
6232#[doc = " \\param elem Mixer element"]
6233#[doc = " \\param mask event mask"]
6234#[doc = " \\return 0 on success otherwise a negative error code"]
6235pub type snd_mixer_elem_callback_t = ::std::option::Option<
6236 unsafe extern "C" fn(
6237 elem: *mut snd_mixer_elem_t,
6238 mask: ::std::os::raw::c_uint,
6239 ) -> ::std::os::raw::c_int,
6240>;
6241#[doc = " \\brief Compare function for sorting mixer elements"]
6242#[doc = " \\param e1 First element"]
6243#[doc = " \\param e2 Second element"]
6244#[doc = " \\return -1 if e1 < e2, 0 if e1 == e2, 1 if e1 > e2"]
6245pub type snd_mixer_compare_t = ::std::option::Option<
6246 unsafe extern "C" fn(
6247 e1: *const snd_mixer_elem_t,
6248 e2: *const snd_mixer_elem_t,
6249 ) -> ::std::os::raw::c_int,
6250>;
6251#[doc = " \\brief Event callback for the mixer class"]
6252#[doc = " \\param class_ Mixer class"]
6253#[doc = " \\param mask Event mask (SND_CTL_EVENT_*)"]
6254#[doc = " \\param helem HCTL element which invoked the event"]
6255#[doc = " \\param melem Mixer element associated to HCTL element"]
6256#[doc = " \\return zero if success, otherwise a negative error value"]
6257pub type snd_mixer_event_t = ::std::option::Option<
6258 unsafe extern "C" fn(
6259 class_: *mut snd_mixer_class_t,
6260 mask: ::std::os::raw::c_uint,
6261 helem: *mut snd_hctl_elem_t,
6262 melem: *mut snd_mixer_elem_t,
6263 ) -> ::std::os::raw::c_int,
6264>;
6265pub const SND_MIXER_ELEM_SIMPLE: _snd_mixer_elem_type = 0;
6266pub const SND_MIXER_ELEM_LAST: _snd_mixer_elem_type = 0;
6267#[doc = " Mixer element type"]
6268pub type _snd_mixer_elem_type = u32;
6269#[doc = " Mixer element type"]
6270pub use self::_snd_mixer_elem_type as snd_mixer_elem_type_t;
6271extern "C" {
6272 pub fn snd_mixer_open(
6273 mixer: *mut *mut snd_mixer_t,
6274 mode: ::std::os::raw::c_int,
6275 ) -> ::std::os::raw::c_int;
6276}
6277extern "C" {
6278 pub fn snd_mixer_close(mixer: *mut snd_mixer_t) -> ::std::os::raw::c_int;
6279}
6280extern "C" {
6281 pub fn snd_mixer_first_elem(mixer: *mut snd_mixer_t) -> *mut snd_mixer_elem_t;
6282}
6283extern "C" {
6284 pub fn snd_mixer_last_elem(mixer: *mut snd_mixer_t) -> *mut snd_mixer_elem_t;
6285}
6286extern "C" {
6287 pub fn snd_mixer_handle_events(mixer: *mut snd_mixer_t) -> ::std::os::raw::c_int;
6288}
6289extern "C" {
6290 pub fn snd_mixer_attach(
6291 mixer: *mut snd_mixer_t,
6292 name: *const ::std::os::raw::c_char,
6293 ) -> ::std::os::raw::c_int;
6294}
6295extern "C" {
6296 pub fn snd_mixer_attach_hctl(
6297 mixer: *mut snd_mixer_t,
6298 hctl: *mut snd_hctl_t,
6299 ) -> ::std::os::raw::c_int;
6300}
6301extern "C" {
6302 pub fn snd_mixer_detach(
6303 mixer: *mut snd_mixer_t,
6304 name: *const ::std::os::raw::c_char,
6305 ) -> ::std::os::raw::c_int;
6306}
6307extern "C" {
6308 pub fn snd_mixer_detach_hctl(
6309 mixer: *mut snd_mixer_t,
6310 hctl: *mut snd_hctl_t,
6311 ) -> ::std::os::raw::c_int;
6312}
6313extern "C" {
6314 pub fn snd_mixer_get_hctl(
6315 mixer: *mut snd_mixer_t,
6316 name: *const ::std::os::raw::c_char,
6317 hctl: *mut *mut snd_hctl_t,
6318 ) -> ::std::os::raw::c_int;
6319}
6320extern "C" {
6321 pub fn snd_mixer_poll_descriptors_count(mixer: *mut snd_mixer_t) -> ::std::os::raw::c_int;
6322}
6323extern "C" {
6324 pub fn snd_mixer_poll_descriptors(
6325 mixer: *mut snd_mixer_t,
6326 pfds: *mut pollfd,
6327 space: ::std::os::raw::c_uint,
6328 ) -> ::std::os::raw::c_int;
6329}
6330extern "C" {
6331 pub fn snd_mixer_poll_descriptors_revents(
6332 mixer: *mut snd_mixer_t,
6333 pfds: *mut pollfd,
6334 nfds: ::std::os::raw::c_uint,
6335 revents: *mut ::std::os::raw::c_ushort,
6336 ) -> ::std::os::raw::c_int;
6337}
6338extern "C" {
6339 pub fn snd_mixer_load(mixer: *mut snd_mixer_t) -> ::std::os::raw::c_int;
6340}
6341extern "C" {
6342 pub fn snd_mixer_free(mixer: *mut snd_mixer_t);
6343}
6344extern "C" {
6345 pub fn snd_mixer_wait(
6346 mixer: *mut snd_mixer_t,
6347 timeout: ::std::os::raw::c_int,
6348 ) -> ::std::os::raw::c_int;
6349}
6350extern "C" {
6351 pub fn snd_mixer_set_compare(
6352 mixer: *mut snd_mixer_t,
6353 msort: snd_mixer_compare_t,
6354 ) -> ::std::os::raw::c_int;
6355}
6356extern "C" {
6357 pub fn snd_mixer_set_callback(obj: *mut snd_mixer_t, val: snd_mixer_callback_t);
6358}
6359extern "C" {
6360 pub fn snd_mixer_get_callback_private(obj: *const snd_mixer_t) -> *mut ::std::os::raw::c_void;
6361}
6362extern "C" {
6363 pub fn snd_mixer_set_callback_private(obj: *mut snd_mixer_t, val: *mut ::std::os::raw::c_void);
6364}
6365extern "C" {
6366 pub fn snd_mixer_get_count(obj: *const snd_mixer_t) -> ::std::os::raw::c_uint;
6367}
6368extern "C" {
6369 pub fn snd_mixer_class_unregister(clss: *mut snd_mixer_class_t) -> ::std::os::raw::c_int;
6370}
6371extern "C" {
6372 pub fn snd_mixer_elem_next(elem: *mut snd_mixer_elem_t) -> *mut snd_mixer_elem_t;
6373}
6374extern "C" {
6375 pub fn snd_mixer_elem_prev(elem: *mut snd_mixer_elem_t) -> *mut snd_mixer_elem_t;
6376}
6377extern "C" {
6378 pub fn snd_mixer_elem_set_callback(obj: *mut snd_mixer_elem_t, val: snd_mixer_elem_callback_t);
6379}
6380extern "C" {
6381 pub fn snd_mixer_elem_get_callback_private(
6382 obj: *const snd_mixer_elem_t,
6383 ) -> *mut ::std::os::raw::c_void;
6384}
6385extern "C" {
6386 pub fn snd_mixer_elem_set_callback_private(
6387 obj: *mut snd_mixer_elem_t,
6388 val: *mut ::std::os::raw::c_void,
6389 );
6390}
6391extern "C" {
6392 pub fn snd_mixer_elem_get_type(obj: *const snd_mixer_elem_t) -> snd_mixer_elem_type_t;
6393}
6394extern "C" {
6395 pub fn snd_mixer_class_register(
6396 class_: *mut snd_mixer_class_t,
6397 mixer: *mut snd_mixer_t,
6398 ) -> ::std::os::raw::c_int;
6399}
6400extern "C" {
6401 pub fn snd_mixer_elem_new(
6402 elem: *mut *mut snd_mixer_elem_t,
6403 type_: snd_mixer_elem_type_t,
6404 compare_weight: ::std::os::raw::c_int,
6405 private_data: *mut ::std::os::raw::c_void,
6406 private_free: ::std::option::Option<unsafe extern "C" fn(elem: *mut snd_mixer_elem_t)>,
6407 ) -> ::std::os::raw::c_int;
6408}
6409extern "C" {
6410 pub fn snd_mixer_elem_add(
6411 elem: *mut snd_mixer_elem_t,
6412 class_: *mut snd_mixer_class_t,
6413 ) -> ::std::os::raw::c_int;
6414}
6415extern "C" {
6416 pub fn snd_mixer_elem_remove(elem: *mut snd_mixer_elem_t) -> ::std::os::raw::c_int;
6417}
6418extern "C" {
6419 pub fn snd_mixer_elem_free(elem: *mut snd_mixer_elem_t);
6420}
6421extern "C" {
6422 pub fn snd_mixer_elem_info(elem: *mut snd_mixer_elem_t) -> ::std::os::raw::c_int;
6423}
6424extern "C" {
6425 pub fn snd_mixer_elem_value(elem: *mut snd_mixer_elem_t) -> ::std::os::raw::c_int;
6426}
6427extern "C" {
6428 pub fn snd_mixer_elem_attach(
6429 melem: *mut snd_mixer_elem_t,
6430 helem: *mut snd_hctl_elem_t,
6431 ) -> ::std::os::raw::c_int;
6432}
6433extern "C" {
6434 pub fn snd_mixer_elem_detach(
6435 melem: *mut snd_mixer_elem_t,
6436 helem: *mut snd_hctl_elem_t,
6437 ) -> ::std::os::raw::c_int;
6438}
6439extern "C" {
6440 pub fn snd_mixer_elem_empty(melem: *mut snd_mixer_elem_t) -> ::std::os::raw::c_int;
6441}
6442extern "C" {
6443 pub fn snd_mixer_elem_get_private(
6444 melem: *const snd_mixer_elem_t,
6445 ) -> *mut ::std::os::raw::c_void;
6446}
6447extern "C" {
6448 pub fn snd_mixer_class_sizeof() -> usize;
6449}
6450extern "C" {
6451 pub fn snd_mixer_class_malloc(ptr: *mut *mut snd_mixer_class_t) -> ::std::os::raw::c_int;
6452}
6453extern "C" {
6454 pub fn snd_mixer_class_free(obj: *mut snd_mixer_class_t);
6455}
6456extern "C" {
6457 pub fn snd_mixer_class_copy(dst: *mut snd_mixer_class_t, src: *const snd_mixer_class_t);
6458}
6459extern "C" {
6460 pub fn snd_mixer_class_get_mixer(class_: *const snd_mixer_class_t) -> *mut snd_mixer_t;
6461}
6462extern "C" {
6463 pub fn snd_mixer_class_get_event(class_: *const snd_mixer_class_t) -> snd_mixer_event_t;
6464}
6465extern "C" {
6466 pub fn snd_mixer_class_get_private(
6467 class_: *const snd_mixer_class_t,
6468 ) -> *mut ::std::os::raw::c_void;
6469}
6470extern "C" {
6471 pub fn snd_mixer_class_get_compare(class_: *const snd_mixer_class_t) -> snd_mixer_compare_t;
6472}
6473extern "C" {
6474 pub fn snd_mixer_class_set_event(
6475 class_: *mut snd_mixer_class_t,
6476 event: snd_mixer_event_t,
6477 ) -> ::std::os::raw::c_int;
6478}
6479extern "C" {
6480 pub fn snd_mixer_class_set_private(
6481 class_: *mut snd_mixer_class_t,
6482 private_data: *mut ::std::os::raw::c_void,
6483 ) -> ::std::os::raw::c_int;
6484}
6485extern "C" {
6486 pub fn snd_mixer_class_set_private_free(
6487 class_: *mut snd_mixer_class_t,
6488 private_free: ::std::option::Option<unsafe extern "C" fn(arg1: *mut snd_mixer_class_t)>,
6489 ) -> ::std::os::raw::c_int;
6490}
6491extern "C" {
6492 pub fn snd_mixer_class_set_compare(
6493 class_: *mut snd_mixer_class_t,
6494 compare: snd_mixer_compare_t,
6495 ) -> ::std::os::raw::c_int;
6496}
6497#[doc = " Unknown"]
6498pub const SND_MIXER_SCHN_UNKNOWN: _snd_mixer_selem_channel_id = -1;
6499#[doc = " Front left"]
6500pub const SND_MIXER_SCHN_FRONT_LEFT: _snd_mixer_selem_channel_id = 0;
6501#[doc = " Front right"]
6502pub const SND_MIXER_SCHN_FRONT_RIGHT: _snd_mixer_selem_channel_id = 1;
6503#[doc = " Rear left"]
6504pub const SND_MIXER_SCHN_REAR_LEFT: _snd_mixer_selem_channel_id = 2;
6505#[doc = " Rear right"]
6506pub const SND_MIXER_SCHN_REAR_RIGHT: _snd_mixer_selem_channel_id = 3;
6507#[doc = " Front center"]
6508pub const SND_MIXER_SCHN_FRONT_CENTER: _snd_mixer_selem_channel_id = 4;
6509#[doc = " Woofer"]
6510pub const SND_MIXER_SCHN_WOOFER: _snd_mixer_selem_channel_id = 5;
6511#[doc = " Side Left"]
6512pub const SND_MIXER_SCHN_SIDE_LEFT: _snd_mixer_selem_channel_id = 6;
6513#[doc = " Side Right"]
6514pub const SND_MIXER_SCHN_SIDE_RIGHT: _snd_mixer_selem_channel_id = 7;
6515#[doc = " Rear Center"]
6516pub const SND_MIXER_SCHN_REAR_CENTER: _snd_mixer_selem_channel_id = 8;
6517#[doc = " Rear Center"]
6518pub const SND_MIXER_SCHN_LAST: _snd_mixer_selem_channel_id = 31;
6519#[doc = " Mono (Front left alias)"]
6520pub const SND_MIXER_SCHN_MONO: _snd_mixer_selem_channel_id = 0;
6521#[doc = " Mixer simple element channel identifier"]
6522pub type _snd_mixer_selem_channel_id = i32;
6523#[doc = " Mixer simple element channel identifier"]
6524pub use self::_snd_mixer_selem_channel_id as snd_mixer_selem_channel_id_t;
6525#[doc = " no abstraction - try use all universal controls from driver"]
6526pub const SND_MIXER_SABSTRACT_NONE: snd_mixer_selem_regopt_abstract = 0;
6527#[doc = " basic abstraction - Master,PCM,CD,Aux,Record-Gain etc."]
6528pub const SND_MIXER_SABSTRACT_BASIC: snd_mixer_selem_regopt_abstract = 1;
6529#[doc = " Mixer simple element - register options - abstraction level"]
6530pub type snd_mixer_selem_regopt_abstract = u32;
6531#[doc = " Mixer simple element - register options"]
6532#[repr(C)]
6533#[derive(Debug, Copy, Clone)]
6534pub struct snd_mixer_selem_regopt {
6535 #[doc = " structure version"]
6536 pub ver: ::std::os::raw::c_int,
6537 #[doc = " v1: abstract layer selection"]
6538 pub abstract_: snd_mixer_selem_regopt_abstract,
6539 #[doc = " v1: device name (must be NULL when playback_pcm or capture_pcm != NULL)"]
6540 pub device: *const ::std::os::raw::c_char,
6541 #[doc = " v1: playback PCM connected to mixer device (NULL == none)"]
6542 pub playback_pcm: *mut snd_pcm_t,
6543 #[doc = " v1: capture PCM connected to mixer device (NULL == none)"]
6544 pub capture_pcm: *mut snd_pcm_t,
6545}
6546#[repr(C)]
6547#[derive(Debug, Copy, Clone)]
6548pub struct _snd_mixer_selem_id {
6549 _unused: [u8; 0],
6550}
6551#[doc = " Mixer simple element identifier"]
6552pub type snd_mixer_selem_id_t = _snd_mixer_selem_id;
6553extern "C" {
6554 pub fn snd_mixer_selem_channel_name(
6555 channel: snd_mixer_selem_channel_id_t,
6556 ) -> *const ::std::os::raw::c_char;
6557}
6558extern "C" {
6559 pub fn snd_mixer_selem_register(
6560 mixer: *mut snd_mixer_t,
6561 options: *mut snd_mixer_selem_regopt,
6562 classp: *mut *mut snd_mixer_class_t,
6563 ) -> ::std::os::raw::c_int;
6564}
6565extern "C" {
6566 pub fn snd_mixer_selem_get_id(element: *mut snd_mixer_elem_t, id: *mut snd_mixer_selem_id_t);
6567}
6568extern "C" {
6569 pub fn snd_mixer_selem_get_name(elem: *mut snd_mixer_elem_t) -> *const ::std::os::raw::c_char;
6570}
6571extern "C" {
6572 pub fn snd_mixer_selem_get_index(elem: *mut snd_mixer_elem_t) -> ::std::os::raw::c_uint;
6573}
6574extern "C" {
6575 pub fn snd_mixer_find_selem(
6576 mixer: *mut snd_mixer_t,
6577 id: *const snd_mixer_selem_id_t,
6578 ) -> *mut snd_mixer_elem_t;
6579}
6580extern "C" {
6581 pub fn snd_mixer_selem_is_active(elem: *mut snd_mixer_elem_t) -> ::std::os::raw::c_int;
6582}
6583extern "C" {
6584 pub fn snd_mixer_selem_is_playback_mono(elem: *mut snd_mixer_elem_t) -> ::std::os::raw::c_int;
6585}
6586extern "C" {
6587 pub fn snd_mixer_selem_has_playback_channel(
6588 obj: *mut snd_mixer_elem_t,
6589 channel: snd_mixer_selem_channel_id_t,
6590 ) -> ::std::os::raw::c_int;
6591}
6592extern "C" {
6593 pub fn snd_mixer_selem_is_capture_mono(elem: *mut snd_mixer_elem_t) -> ::std::os::raw::c_int;
6594}
6595extern "C" {
6596 pub fn snd_mixer_selem_has_capture_channel(
6597 obj: *mut snd_mixer_elem_t,
6598 channel: snd_mixer_selem_channel_id_t,
6599 ) -> ::std::os::raw::c_int;
6600}
6601extern "C" {
6602 pub fn snd_mixer_selem_get_capture_group(elem: *mut snd_mixer_elem_t) -> ::std::os::raw::c_int;
6603}
6604extern "C" {
6605 pub fn snd_mixer_selem_has_common_volume(elem: *mut snd_mixer_elem_t) -> ::std::os::raw::c_int;
6606}
6607extern "C" {
6608 pub fn snd_mixer_selem_has_playback_volume(
6609 elem: *mut snd_mixer_elem_t,
6610 ) -> ::std::os::raw::c_int;
6611}
6612extern "C" {
6613 pub fn snd_mixer_selem_has_playback_volume_joined(
6614 elem: *mut snd_mixer_elem_t,
6615 ) -> ::std::os::raw::c_int;
6616}
6617extern "C" {
6618 pub fn snd_mixer_selem_has_capture_volume(elem: *mut snd_mixer_elem_t)
6619 -> ::std::os::raw::c_int;
6620}
6621extern "C" {
6622 pub fn snd_mixer_selem_has_capture_volume_joined(
6623 elem: *mut snd_mixer_elem_t,
6624 ) -> ::std::os::raw::c_int;
6625}
6626extern "C" {
6627 pub fn snd_mixer_selem_has_common_switch(elem: *mut snd_mixer_elem_t) -> ::std::os::raw::c_int;
6628}
6629extern "C" {
6630 pub fn snd_mixer_selem_has_playback_switch(
6631 elem: *mut snd_mixer_elem_t,
6632 ) -> ::std::os::raw::c_int;
6633}
6634extern "C" {
6635 pub fn snd_mixer_selem_has_playback_switch_joined(
6636 elem: *mut snd_mixer_elem_t,
6637 ) -> ::std::os::raw::c_int;
6638}
6639extern "C" {
6640 pub fn snd_mixer_selem_has_capture_switch(elem: *mut snd_mixer_elem_t)
6641 -> ::std::os::raw::c_int;
6642}
6643extern "C" {
6644 pub fn snd_mixer_selem_has_capture_switch_joined(
6645 elem: *mut snd_mixer_elem_t,
6646 ) -> ::std::os::raw::c_int;
6647}
6648extern "C" {
6649 pub fn snd_mixer_selem_has_capture_switch_exclusive(
6650 elem: *mut snd_mixer_elem_t,
6651 ) -> ::std::os::raw::c_int;
6652}
6653extern "C" {
6654 pub fn snd_mixer_selem_ask_playback_vol_dB(
6655 elem: *mut snd_mixer_elem_t,
6656 value: ::std::os::raw::c_long,
6657 dBvalue: *mut ::std::os::raw::c_long,
6658 ) -> ::std::os::raw::c_int;
6659}
6660extern "C" {
6661 pub fn snd_mixer_selem_ask_capture_vol_dB(
6662 elem: *mut snd_mixer_elem_t,
6663 value: ::std::os::raw::c_long,
6664 dBvalue: *mut ::std::os::raw::c_long,
6665 ) -> ::std::os::raw::c_int;
6666}
6667extern "C" {
6668 pub fn snd_mixer_selem_ask_playback_dB_vol(
6669 elem: *mut snd_mixer_elem_t,
6670 dBvalue: ::std::os::raw::c_long,
6671 dir: ::std::os::raw::c_int,
6672 value: *mut ::std::os::raw::c_long,
6673 ) -> ::std::os::raw::c_int;
6674}
6675extern "C" {
6676 pub fn snd_mixer_selem_ask_capture_dB_vol(
6677 elem: *mut snd_mixer_elem_t,
6678 dBvalue: ::std::os::raw::c_long,
6679 dir: ::std::os::raw::c_int,
6680 value: *mut ::std::os::raw::c_long,
6681 ) -> ::std::os::raw::c_int;
6682}
6683extern "C" {
6684 pub fn snd_mixer_selem_get_playback_volume(
6685 elem: *mut snd_mixer_elem_t,
6686 channel: snd_mixer_selem_channel_id_t,
6687 value: *mut ::std::os::raw::c_long,
6688 ) -> ::std::os::raw::c_int;
6689}
6690extern "C" {
6691 pub fn snd_mixer_selem_get_capture_volume(
6692 elem: *mut snd_mixer_elem_t,
6693 channel: snd_mixer_selem_channel_id_t,
6694 value: *mut ::std::os::raw::c_long,
6695 ) -> ::std::os::raw::c_int;
6696}
6697extern "C" {
6698 pub fn snd_mixer_selem_get_playback_dB(
6699 elem: *mut snd_mixer_elem_t,
6700 channel: snd_mixer_selem_channel_id_t,
6701 value: *mut ::std::os::raw::c_long,
6702 ) -> ::std::os::raw::c_int;
6703}
6704extern "C" {
6705 pub fn snd_mixer_selem_get_capture_dB(
6706 elem: *mut snd_mixer_elem_t,
6707 channel: snd_mixer_selem_channel_id_t,
6708 value: *mut ::std::os::raw::c_long,
6709 ) -> ::std::os::raw::c_int;
6710}
6711extern "C" {
6712 pub fn snd_mixer_selem_get_playback_switch(
6713 elem: *mut snd_mixer_elem_t,
6714 channel: snd_mixer_selem_channel_id_t,
6715 value: *mut ::std::os::raw::c_int,
6716 ) -> ::std::os::raw::c_int;
6717}
6718extern "C" {
6719 pub fn snd_mixer_selem_get_capture_switch(
6720 elem: *mut snd_mixer_elem_t,
6721 channel: snd_mixer_selem_channel_id_t,
6722 value: *mut ::std::os::raw::c_int,
6723 ) -> ::std::os::raw::c_int;
6724}
6725extern "C" {
6726 pub fn snd_mixer_selem_set_playback_volume(
6727 elem: *mut snd_mixer_elem_t,
6728 channel: snd_mixer_selem_channel_id_t,
6729 value: ::std::os::raw::c_long,
6730 ) -> ::std::os::raw::c_int;
6731}
6732extern "C" {
6733 pub fn snd_mixer_selem_set_capture_volume(
6734 elem: *mut snd_mixer_elem_t,
6735 channel: snd_mixer_selem_channel_id_t,
6736 value: ::std::os::raw::c_long,
6737 ) -> ::std::os::raw::c_int;
6738}
6739extern "C" {
6740 pub fn snd_mixer_selem_set_playback_dB(
6741 elem: *mut snd_mixer_elem_t,
6742 channel: snd_mixer_selem_channel_id_t,
6743 value: ::std::os::raw::c_long,
6744 dir: ::std::os::raw::c_int,
6745 ) -> ::std::os::raw::c_int;
6746}
6747extern "C" {
6748 pub fn snd_mixer_selem_set_capture_dB(
6749 elem: *mut snd_mixer_elem_t,
6750 channel: snd_mixer_selem_channel_id_t,
6751 value: ::std::os::raw::c_long,
6752 dir: ::std::os::raw::c_int,
6753 ) -> ::std::os::raw::c_int;
6754}
6755extern "C" {
6756 pub fn snd_mixer_selem_set_playback_volume_all(
6757 elem: *mut snd_mixer_elem_t,
6758 value: ::std::os::raw::c_long,
6759 ) -> ::std::os::raw::c_int;
6760}
6761extern "C" {
6762 pub fn snd_mixer_selem_set_capture_volume_all(
6763 elem: *mut snd_mixer_elem_t,
6764 value: ::std::os::raw::c_long,
6765 ) -> ::std::os::raw::c_int;
6766}
6767extern "C" {
6768 pub fn snd_mixer_selem_set_playback_dB_all(
6769 elem: *mut snd_mixer_elem_t,
6770 value: ::std::os::raw::c_long,
6771 dir: ::std::os::raw::c_int,
6772 ) -> ::std::os::raw::c_int;
6773}
6774extern "C" {
6775 pub fn snd_mixer_selem_set_capture_dB_all(
6776 elem: *mut snd_mixer_elem_t,
6777 value: ::std::os::raw::c_long,
6778 dir: ::std::os::raw::c_int,
6779 ) -> ::std::os::raw::c_int;
6780}
6781extern "C" {
6782 pub fn snd_mixer_selem_set_playback_switch(
6783 elem: *mut snd_mixer_elem_t,
6784 channel: snd_mixer_selem_channel_id_t,
6785 value: ::std::os::raw::c_int,
6786 ) -> ::std::os::raw::c_int;
6787}
6788extern "C" {
6789 pub fn snd_mixer_selem_set_capture_switch(
6790 elem: *mut snd_mixer_elem_t,
6791 channel: snd_mixer_selem_channel_id_t,
6792 value: ::std::os::raw::c_int,
6793 ) -> ::std::os::raw::c_int;
6794}
6795extern "C" {
6796 pub fn snd_mixer_selem_set_playback_switch_all(
6797 elem: *mut snd_mixer_elem_t,
6798 value: ::std::os::raw::c_int,
6799 ) -> ::std::os::raw::c_int;
6800}
6801extern "C" {
6802 pub fn snd_mixer_selem_set_capture_switch_all(
6803 elem: *mut snd_mixer_elem_t,
6804 value: ::std::os::raw::c_int,
6805 ) -> ::std::os::raw::c_int;
6806}
6807extern "C" {
6808 pub fn snd_mixer_selem_get_playback_volume_range(
6809 elem: *mut snd_mixer_elem_t,
6810 min: *mut ::std::os::raw::c_long,
6811 max: *mut ::std::os::raw::c_long,
6812 ) -> ::std::os::raw::c_int;
6813}
6814extern "C" {
6815 pub fn snd_mixer_selem_get_playback_dB_range(
6816 elem: *mut snd_mixer_elem_t,
6817 min: *mut ::std::os::raw::c_long,
6818 max: *mut ::std::os::raw::c_long,
6819 ) -> ::std::os::raw::c_int;
6820}
6821extern "C" {
6822 pub fn snd_mixer_selem_set_playback_volume_range(
6823 elem: *mut snd_mixer_elem_t,
6824 min: ::std::os::raw::c_long,
6825 max: ::std::os::raw::c_long,
6826 ) -> ::std::os::raw::c_int;
6827}
6828extern "C" {
6829 pub fn snd_mixer_selem_get_capture_volume_range(
6830 elem: *mut snd_mixer_elem_t,
6831 min: *mut ::std::os::raw::c_long,
6832 max: *mut ::std::os::raw::c_long,
6833 ) -> ::std::os::raw::c_int;
6834}
6835extern "C" {
6836 pub fn snd_mixer_selem_get_capture_dB_range(
6837 elem: *mut snd_mixer_elem_t,
6838 min: *mut ::std::os::raw::c_long,
6839 max: *mut ::std::os::raw::c_long,
6840 ) -> ::std::os::raw::c_int;
6841}
6842extern "C" {
6843 pub fn snd_mixer_selem_set_capture_volume_range(
6844 elem: *mut snd_mixer_elem_t,
6845 min: ::std::os::raw::c_long,
6846 max: ::std::os::raw::c_long,
6847 ) -> ::std::os::raw::c_int;
6848}
6849extern "C" {
6850 pub fn snd_mixer_selem_is_enumerated(elem: *mut snd_mixer_elem_t) -> ::std::os::raw::c_int;
6851}
6852extern "C" {
6853 pub fn snd_mixer_selem_is_enum_playback(elem: *mut snd_mixer_elem_t) -> ::std::os::raw::c_int;
6854}
6855extern "C" {
6856 pub fn snd_mixer_selem_is_enum_capture(elem: *mut snd_mixer_elem_t) -> ::std::os::raw::c_int;
6857}
6858extern "C" {
6859 pub fn snd_mixer_selem_get_enum_items(elem: *mut snd_mixer_elem_t) -> ::std::os::raw::c_int;
6860}
6861extern "C" {
6862 pub fn snd_mixer_selem_get_enum_item_name(
6863 elem: *mut snd_mixer_elem_t,
6864 idx: ::std::os::raw::c_uint,
6865 maxlen: usize,
6866 str: *mut ::std::os::raw::c_char,
6867 ) -> ::std::os::raw::c_int;
6868}
6869extern "C" {
6870 pub fn snd_mixer_selem_get_enum_item(
6871 elem: *mut snd_mixer_elem_t,
6872 channel: snd_mixer_selem_channel_id_t,
6873 idxp: *mut ::std::os::raw::c_uint,
6874 ) -> ::std::os::raw::c_int;
6875}
6876extern "C" {
6877 pub fn snd_mixer_selem_set_enum_item(
6878 elem: *mut snd_mixer_elem_t,
6879 channel: snd_mixer_selem_channel_id_t,
6880 idx: ::std::os::raw::c_uint,
6881 ) -> ::std::os::raw::c_int;
6882}
6883extern "C" {
6884 pub fn snd_mixer_selem_id_sizeof() -> usize;
6885}
6886extern "C" {
6887 pub fn snd_mixer_selem_id_malloc(ptr: *mut *mut snd_mixer_selem_id_t) -> ::std::os::raw::c_int;
6888}
6889extern "C" {
6890 pub fn snd_mixer_selem_id_free(obj: *mut snd_mixer_selem_id_t);
6891}
6892extern "C" {
6893 pub fn snd_mixer_selem_id_copy(
6894 dst: *mut snd_mixer_selem_id_t,
6895 src: *const snd_mixer_selem_id_t,
6896 );
6897}
6898extern "C" {
6899 pub fn snd_mixer_selem_id_get_name(
6900 obj: *const snd_mixer_selem_id_t,
6901 ) -> *const ::std::os::raw::c_char;
6902}
6903extern "C" {
6904 pub fn snd_mixer_selem_id_get_index(obj: *const snd_mixer_selem_id_t)
6905 -> ::std::os::raw::c_uint;
6906}
6907extern "C" {
6908 pub fn snd_mixer_selem_id_set_name(
6909 obj: *mut snd_mixer_selem_id_t,
6910 val: *const ::std::os::raw::c_char,
6911 );
6912}
6913extern "C" {
6914 pub fn snd_mixer_selem_id_set_index(
6915 obj: *mut snd_mixer_selem_id_t,
6916 val: ::std::os::raw::c_uint,
6917 );
6918}
6919extern "C" {
6920 pub fn snd_mixer_selem_id_parse(
6921 dst: *mut snd_mixer_selem_id_t,
6922 str: *const ::std::os::raw::c_char,
6923 ) -> ::std::os::raw::c_int;
6924}
6925#[doc = " Sequencer event data type"]
6926pub type snd_seq_event_type_t = ::std::os::raw::c_uchar;
6927#[doc = " system status; event data type = #snd_seq_result_t"]
6928pub const SND_SEQ_EVENT_SYSTEM: snd_seq_event_type = 0;
6929#[doc = " returned result status; event data type = #snd_seq_result_t"]
6930pub const SND_SEQ_EVENT_RESULT: snd_seq_event_type = 1;
6931#[doc = " note on and off with duration; event data type = #snd_seq_ev_note_t"]
6932pub const SND_SEQ_EVENT_NOTE: snd_seq_event_type = 5;
6933#[doc = " note on; event data type = #snd_seq_ev_note_t"]
6934pub const SND_SEQ_EVENT_NOTEON: snd_seq_event_type = 6;
6935#[doc = " note off; event data type = #snd_seq_ev_note_t"]
6936pub const SND_SEQ_EVENT_NOTEOFF: snd_seq_event_type = 7;
6937#[doc = " key pressure change (aftertouch); event data type = #snd_seq_ev_note_t"]
6938pub const SND_SEQ_EVENT_KEYPRESS: snd_seq_event_type = 8;
6939#[doc = " controller; event data type = #snd_seq_ev_ctrl_t"]
6940pub const SND_SEQ_EVENT_CONTROLLER: snd_seq_event_type = 10;
6941#[doc = " program change; event data type = #snd_seq_ev_ctrl_t"]
6942pub const SND_SEQ_EVENT_PGMCHANGE: snd_seq_event_type = 11;
6943#[doc = " channel pressure; event data type = #snd_seq_ev_ctrl_t"]
6944pub const SND_SEQ_EVENT_CHANPRESS: snd_seq_event_type = 12;
6945#[doc = " pitchwheel; event data type = #snd_seq_ev_ctrl_t; data is from -8192 to 8191)"]
6946pub const SND_SEQ_EVENT_PITCHBEND: snd_seq_event_type = 13;
6947#[doc = " 14 bit controller value; event data type = #snd_seq_ev_ctrl_t"]
6948pub const SND_SEQ_EVENT_CONTROL14: snd_seq_event_type = 14;
6949#[doc = " 14 bit NRPN; event data type = #snd_seq_ev_ctrl_t"]
6950pub const SND_SEQ_EVENT_NONREGPARAM: snd_seq_event_type = 15;
6951#[doc = " 14 bit RPN; event data type = #snd_seq_ev_ctrl_t"]
6952pub const SND_SEQ_EVENT_REGPARAM: snd_seq_event_type = 16;
6953#[doc = " SPP with LSB and MSB values; event data type = #snd_seq_ev_ctrl_t"]
6954pub const SND_SEQ_EVENT_SONGPOS: snd_seq_event_type = 20;
6955#[doc = " Song Select with song ID number; event data type = #snd_seq_ev_ctrl_t"]
6956pub const SND_SEQ_EVENT_SONGSEL: snd_seq_event_type = 21;
6957#[doc = " midi time code quarter frame; event data type = #snd_seq_ev_ctrl_t"]
6958pub const SND_SEQ_EVENT_QFRAME: snd_seq_event_type = 22;
6959#[doc = " SMF Time Signature event; event data type = #snd_seq_ev_ctrl_t"]
6960pub const SND_SEQ_EVENT_TIMESIGN: snd_seq_event_type = 23;
6961#[doc = " SMF Key Signature event; event data type = #snd_seq_ev_ctrl_t"]
6962pub const SND_SEQ_EVENT_KEYSIGN: snd_seq_event_type = 24;
6963#[doc = " MIDI Real Time Start message; event data type = #snd_seq_ev_queue_control_t"]
6964pub const SND_SEQ_EVENT_START: snd_seq_event_type = 30;
6965#[doc = " MIDI Real Time Continue message; event data type = #snd_seq_ev_queue_control_t"]
6966pub const SND_SEQ_EVENT_CONTINUE: snd_seq_event_type = 31;
6967#[doc = " MIDI Real Time Stop message; event data type = #snd_seq_ev_queue_control_t"]
6968pub const SND_SEQ_EVENT_STOP: snd_seq_event_type = 32;
6969#[doc = " Set tick queue position; event data type = #snd_seq_ev_queue_control_t"]
6970pub const SND_SEQ_EVENT_SETPOS_TICK: snd_seq_event_type = 33;
6971#[doc = " Set real-time queue position; event data type = #snd_seq_ev_queue_control_t"]
6972pub const SND_SEQ_EVENT_SETPOS_TIME: snd_seq_event_type = 34;
6973#[doc = " (SMF) Tempo event; event data type = #snd_seq_ev_queue_control_t"]
6974pub const SND_SEQ_EVENT_TEMPO: snd_seq_event_type = 35;
6975#[doc = " MIDI Real Time Clock message; event data type = #snd_seq_ev_queue_control_t"]
6976pub const SND_SEQ_EVENT_CLOCK: snd_seq_event_type = 36;
6977#[doc = " MIDI Real Time Tick message; event data type = #snd_seq_ev_queue_control_t"]
6978pub const SND_SEQ_EVENT_TICK: snd_seq_event_type = 37;
6979#[doc = " Queue timer skew; event data type = #snd_seq_ev_queue_control_t"]
6980pub const SND_SEQ_EVENT_QUEUE_SKEW: snd_seq_event_type = 38;
6981#[doc = " Sync position changed; event data type = #snd_seq_ev_queue_control_t"]
6982pub const SND_SEQ_EVENT_SYNC_POS: snd_seq_event_type = 39;
6983#[doc = " Tune request; event data type = none"]
6984pub const SND_SEQ_EVENT_TUNE_REQUEST: snd_seq_event_type = 40;
6985#[doc = " Reset to power-on state; event data type = none"]
6986pub const SND_SEQ_EVENT_RESET: snd_seq_event_type = 41;
6987#[doc = " Active sensing event; event data type = none"]
6988pub const SND_SEQ_EVENT_SENSING: snd_seq_event_type = 42;
6989#[doc = " Echo-back event; event data type = any type"]
6990pub const SND_SEQ_EVENT_ECHO: snd_seq_event_type = 50;
6991#[doc = " OSS emulation raw event; event data type = any type"]
6992pub const SND_SEQ_EVENT_OSS: snd_seq_event_type = 51;
6993#[doc = " New client has connected; event data type = #snd_seq_addr_t"]
6994pub const SND_SEQ_EVENT_CLIENT_START: snd_seq_event_type = 60;
6995#[doc = " Client has left the system; event data type = #snd_seq_addr_t"]
6996pub const SND_SEQ_EVENT_CLIENT_EXIT: snd_seq_event_type = 61;
6997#[doc = " Client status/info has changed; event data type = #snd_seq_addr_t"]
6998pub const SND_SEQ_EVENT_CLIENT_CHANGE: snd_seq_event_type = 62;
6999#[doc = " New port was created; event data type = #snd_seq_addr_t"]
7000pub const SND_SEQ_EVENT_PORT_START: snd_seq_event_type = 63;
7001#[doc = " Port was deleted from system; event data type = #snd_seq_addr_t"]
7002pub const SND_SEQ_EVENT_PORT_EXIT: snd_seq_event_type = 64;
7003#[doc = " Port status/info has changed; event data type = #snd_seq_addr_t"]
7004pub const SND_SEQ_EVENT_PORT_CHANGE: snd_seq_event_type = 65;
7005#[doc = " Ports connected; event data type = #snd_seq_connect_t"]
7006pub const SND_SEQ_EVENT_PORT_SUBSCRIBED: snd_seq_event_type = 66;
7007#[doc = " Ports disconnected; event data type = #snd_seq_connect_t"]
7008pub const SND_SEQ_EVENT_PORT_UNSUBSCRIBED: snd_seq_event_type = 67;
7009#[doc = " user-defined event; event data type = any (fixed size)"]
7010pub const SND_SEQ_EVENT_USR0: snd_seq_event_type = 90;
7011#[doc = " user-defined event; event data type = any (fixed size)"]
7012pub const SND_SEQ_EVENT_USR1: snd_seq_event_type = 91;
7013#[doc = " user-defined event; event data type = any (fixed size)"]
7014pub const SND_SEQ_EVENT_USR2: snd_seq_event_type = 92;
7015#[doc = " user-defined event; event data type = any (fixed size)"]
7016pub const SND_SEQ_EVENT_USR3: snd_seq_event_type = 93;
7017#[doc = " user-defined event; event data type = any (fixed size)"]
7018pub const SND_SEQ_EVENT_USR4: snd_seq_event_type = 94;
7019#[doc = " user-defined event; event data type = any (fixed size)"]
7020pub const SND_SEQ_EVENT_USR5: snd_seq_event_type = 95;
7021#[doc = " user-defined event; event data type = any (fixed size)"]
7022pub const SND_SEQ_EVENT_USR6: snd_seq_event_type = 96;
7023#[doc = " user-defined event; event data type = any (fixed size)"]
7024pub const SND_SEQ_EVENT_USR7: snd_seq_event_type = 97;
7025#[doc = " user-defined event; event data type = any (fixed size)"]
7026pub const SND_SEQ_EVENT_USR8: snd_seq_event_type = 98;
7027#[doc = " user-defined event; event data type = any (fixed size)"]
7028pub const SND_SEQ_EVENT_USR9: snd_seq_event_type = 99;
7029#[doc = " system exclusive data (variable length); event data type = #snd_seq_ev_ext_t"]
7030pub const SND_SEQ_EVENT_SYSEX: snd_seq_event_type = 130;
7031#[doc = " error event; event data type = #snd_seq_ev_ext_t"]
7032pub const SND_SEQ_EVENT_BOUNCE: snd_seq_event_type = 131;
7033#[doc = " reserved for user apps; event data type = #snd_seq_ev_ext_t"]
7034pub const SND_SEQ_EVENT_USR_VAR0: snd_seq_event_type = 135;
7035#[doc = " reserved for user apps; event data type = #snd_seq_ev_ext_t"]
7036pub const SND_SEQ_EVENT_USR_VAR1: snd_seq_event_type = 136;
7037#[doc = " reserved for user apps; event data type = #snd_seq_ev_ext_t"]
7038pub const SND_SEQ_EVENT_USR_VAR2: snd_seq_event_type = 137;
7039#[doc = " reserved for user apps; event data type = #snd_seq_ev_ext_t"]
7040pub const SND_SEQ_EVENT_USR_VAR3: snd_seq_event_type = 138;
7041#[doc = " reserved for user apps; event data type = #snd_seq_ev_ext_t"]
7042pub const SND_SEQ_EVENT_USR_VAR4: snd_seq_event_type = 139;
7043#[doc = " NOP; ignored in any case"]
7044pub const SND_SEQ_EVENT_NONE: snd_seq_event_type = 255;
7045#[doc = " Sequencer event type"]
7046pub type snd_seq_event_type = u32;
7047#[doc = " Sequencer event address"]
7048#[repr(C)]
7049#[derive(Debug, Copy, Clone)]
7050pub struct snd_seq_addr {
7051 #[doc = "< Client id"]
7052 pub client: ::std::os::raw::c_uchar,
7053 #[doc = "< Port id"]
7054 pub port: ::std::os::raw::c_uchar,
7055}
7056#[doc = " Sequencer event address"]
7057pub type snd_seq_addr_t = snd_seq_addr;
7058#[doc = " Connection (subscription) between ports"]
7059#[repr(C)]
7060#[derive(Debug, Copy, Clone)]
7061pub struct snd_seq_connect {
7062 #[doc = "< sender address"]
7063 pub sender: snd_seq_addr_t,
7064 #[doc = "< destination address"]
7065 pub dest: snd_seq_addr_t,
7066}
7067#[doc = " Connection (subscription) between ports"]
7068pub type snd_seq_connect_t = snd_seq_connect;
7069#[doc = " Real-time data record"]
7070#[repr(C)]
7071#[derive(Debug, Copy, Clone)]
7072pub struct snd_seq_real_time {
7073 #[doc = "< seconds"]
7074 pub tv_sec: ::std::os::raw::c_uint,
7075 #[doc = "< nanoseconds"]
7076 pub tv_nsec: ::std::os::raw::c_uint,
7077}
7078#[doc = " Real-time data record"]
7079pub type snd_seq_real_time_t = snd_seq_real_time;
7080#[doc = " (MIDI) Tick-time data record"]
7081pub type snd_seq_tick_time_t = ::std::os::raw::c_uint;
7082#[doc = " unioned time stamp"]
7083#[repr(C)]
7084#[derive(Copy, Clone)]
7085pub union snd_seq_timestamp {
7086 #[doc = "< tick-time"]
7087 pub tick: snd_seq_tick_time_t,
7088 #[doc = "< real-time"]
7089 pub time: snd_seq_real_time,
7090 _bindgen_union_align: [u32; 2usize],
7091}
7092#[doc = " unioned time stamp"]
7093pub type snd_seq_timestamp_t = snd_seq_timestamp;
7094#[doc = " Note event"]
7095#[repr(C)]
7096#[derive(Debug, Copy, Clone)]
7097pub struct snd_seq_ev_note {
7098 #[doc = "< channel number"]
7099 pub channel: ::std::os::raw::c_uchar,
7100 #[doc = "< note"]
7101 pub note: ::std::os::raw::c_uchar,
7102 #[doc = "< velocity"]
7103 pub velocity: ::std::os::raw::c_uchar,
7104 #[doc = "< note-off velocity; only for #SND_SEQ_EVENT_NOTE"]
7105 pub off_velocity: ::std::os::raw::c_uchar,
7106 #[doc = "< duration until note-off; only for #SND_SEQ_EVENT_NOTE"]
7107 pub duration: ::std::os::raw::c_uint,
7108}
7109#[doc = " Note event"]
7110pub type snd_seq_ev_note_t = snd_seq_ev_note;
7111#[doc = " Controller event"]
7112#[repr(C)]
7113#[derive(Debug, Copy, Clone)]
7114pub struct snd_seq_ev_ctrl {
7115 #[doc = "< channel number"]
7116 pub channel: ::std::os::raw::c_uchar,
7117 #[doc = "< reserved"]
7118 pub unused: [::std::os::raw::c_uchar; 3usize],
7119 #[doc = "< control parameter"]
7120 pub param: ::std::os::raw::c_uint,
7121 #[doc = "< control value"]
7122 pub value: ::std::os::raw::c_int,
7123}
7124#[doc = " Controller event"]
7125pub type snd_seq_ev_ctrl_t = snd_seq_ev_ctrl;
7126#[doc = " generic set of bytes (12x8 bit)"]
7127#[repr(C)]
7128#[derive(Debug, Copy, Clone)]
7129pub struct snd_seq_ev_raw8 {
7130 #[doc = "< 8 bit value"]
7131 pub d: [::std::os::raw::c_uchar; 12usize],
7132}
7133#[doc = " generic set of bytes (12x8 bit)"]
7134pub type snd_seq_ev_raw8_t = snd_seq_ev_raw8;
7135#[doc = " generic set of integers (3x32 bit)"]
7136#[repr(C)]
7137#[derive(Debug, Copy, Clone)]
7138pub struct snd_seq_ev_raw32 {
7139 #[doc = "< 32 bit value"]
7140 pub d: [::std::os::raw::c_uint; 3usize],
7141}
7142#[doc = " generic set of integers (3x32 bit)"]
7143pub type snd_seq_ev_raw32_t = snd_seq_ev_raw32;
7144#[doc = " external stored data"]
7145#[repr(C, packed)]
7146#[derive(Debug, Copy, Clone)]
7147pub struct snd_seq_ev_ext {
7148 #[doc = "< length of data"]
7149 pub len: ::std::os::raw::c_uint,
7150 #[doc = "< pointer to data (note: can be 64-bit)"]
7151 pub ptr: *mut ::std::os::raw::c_void,
7152}
7153#[doc = " external stored data"]
7154pub type snd_seq_ev_ext_t = snd_seq_ev_ext;
7155#[doc = " Result events"]
7156#[repr(C)]
7157#[derive(Debug, Copy, Clone)]
7158pub struct snd_seq_result {
7159 #[doc = "< processed event type"]
7160 pub event: ::std::os::raw::c_int,
7161 #[doc = "< status"]
7162 pub result: ::std::os::raw::c_int,
7163}
7164#[doc = " Result events"]
7165pub type snd_seq_result_t = snd_seq_result;
7166#[doc = " Queue skew values"]
7167#[repr(C)]
7168#[derive(Debug, Copy, Clone)]
7169pub struct snd_seq_queue_skew {
7170 #[doc = "< skew value"]
7171 pub value: ::std::os::raw::c_uint,
7172 #[doc = "< skew base"]
7173 pub base: ::std::os::raw::c_uint,
7174}
7175#[doc = " Queue skew values"]
7176pub type snd_seq_queue_skew_t = snd_seq_queue_skew;
7177#[doc = " queue timer control"]
7178#[repr(C)]
7179#[derive(Copy, Clone)]
7180pub struct snd_seq_ev_queue_control {
7181 #[doc = "< affected queue"]
7182 pub queue: ::std::os::raw::c_uchar,
7183 #[doc = "< reserved"]
7184 pub unused: [::std::os::raw::c_uchar; 3usize],
7185 #[doc = "< data value union"]
7186 pub param: snd_seq_ev_queue_control__bindgen_ty_1,
7187}
7188#[repr(C)]
7189#[derive(Copy, Clone)]
7190pub union snd_seq_ev_queue_control__bindgen_ty_1 {
7191 #[doc = "< affected value (e.g. tempo)"]
7192 pub value: ::std::os::raw::c_int,
7193 #[doc = "< time"]
7194 pub time: snd_seq_timestamp_t,
7195 #[doc = "< sync position"]
7196 pub position: ::std::os::raw::c_uint,
7197 #[doc = "< queue skew"]
7198 pub skew: snd_seq_queue_skew_t,
7199 #[doc = "< any data"]
7200 pub d32: [::std::os::raw::c_uint; 2usize],
7201 #[doc = "< any data"]
7202 pub d8: [::std::os::raw::c_uchar; 8usize],
7203 _bindgen_union_align: [u32; 2usize],
7204}
7205#[doc = " queue timer control"]
7206pub type snd_seq_ev_queue_control_t = snd_seq_ev_queue_control;
7207#[doc = " Sequencer event"]
7208#[repr(C)]
7209#[derive(Copy, Clone)]
7210pub struct snd_seq_event {
7211 #[doc = "< event type"]
7212 pub type_: snd_seq_event_type_t,
7213 #[doc = "< event flags"]
7214 pub flags: ::std::os::raw::c_uchar,
7215 #[doc = "< tag"]
7216 pub tag: ::std::os::raw::c_uchar,
7217 #[doc = "< schedule queue"]
7218 pub queue: ::std::os::raw::c_uchar,
7219 #[doc = "< schedule time"]
7220 pub time: snd_seq_timestamp_t,
7221 #[doc = "< source address"]
7222 pub source: snd_seq_addr_t,
7223 #[doc = "< destination address"]
7224 pub dest: snd_seq_addr_t,
7225 #[doc = "< event data..."]
7226 pub data: snd_seq_event__bindgen_ty_1,
7227}
7228#[repr(C)]
7229#[derive(Copy, Clone)]
7230pub union snd_seq_event__bindgen_ty_1 {
7231 #[doc = "< note information"]
7232 pub note: snd_seq_ev_note_t,
7233 #[doc = "< MIDI control information"]
7234 pub control: snd_seq_ev_ctrl_t,
7235 #[doc = "< raw8 data"]
7236 pub raw8: snd_seq_ev_raw8_t,
7237 #[doc = "< raw32 data"]
7238 pub raw32: snd_seq_ev_raw32_t,
7239 #[doc = "< external data"]
7240 pub ext: snd_seq_ev_ext_t,
7241 #[doc = "< queue control"]
7242 pub queue: snd_seq_ev_queue_control_t,
7243 #[doc = "< timestamp"]
7244 pub time: snd_seq_timestamp_t,
7245 #[doc = "< address"]
7246 pub addr: snd_seq_addr_t,
7247 #[doc = "< connect information"]
7248 pub connect: snd_seq_connect_t,
7249 #[doc = "< operation result code"]
7250 pub result: snd_seq_result_t,
7251 _bindgen_union_align: [u32; 3usize],
7252}
7253#[doc = " Sequencer event"]
7254pub type snd_seq_event_t = snd_seq_event;
7255#[repr(C)]
7256#[derive(Debug, Copy, Clone)]
7257pub struct _snd_seq {
7258 _unused: [u8; 0],
7259}
7260#[doc = " Sequencer handle"]
7261pub type snd_seq_t = _snd_seq;
7262#[doc = "< hardware"]
7263pub const SND_SEQ_TYPE_HW: _snd_seq_type = 0;
7264#[doc = "< shared memory (NYI)"]
7265pub const SND_SEQ_TYPE_SHM: _snd_seq_type = 1;
7266#[doc = "< network (NYI)"]
7267pub const SND_SEQ_TYPE_INET: _snd_seq_type = 2;
7268#[doc = " sequencer handle type"]
7269pub type _snd_seq_type = u32;
7270#[doc = " sequencer handle type"]
7271pub use self::_snd_seq_type as snd_seq_type_t;
7272extern "C" {
7273 pub fn snd_seq_open(
7274 handle: *mut *mut snd_seq_t,
7275 name: *const ::std::os::raw::c_char,
7276 streams: ::std::os::raw::c_int,
7277 mode: ::std::os::raw::c_int,
7278 ) -> ::std::os::raw::c_int;
7279}
7280extern "C" {
7281 pub fn snd_seq_open_lconf(
7282 handle: *mut *mut snd_seq_t,
7283 name: *const ::std::os::raw::c_char,
7284 streams: ::std::os::raw::c_int,
7285 mode: ::std::os::raw::c_int,
7286 lconf: *mut snd_config_t,
7287 ) -> ::std::os::raw::c_int;
7288}
7289extern "C" {
7290 pub fn snd_seq_name(seq: *mut snd_seq_t) -> *const ::std::os::raw::c_char;
7291}
7292extern "C" {
7293 pub fn snd_seq_type(seq: *mut snd_seq_t) -> snd_seq_type_t;
7294}
7295extern "C" {
7296 pub fn snd_seq_close(handle: *mut snd_seq_t) -> ::std::os::raw::c_int;
7297}
7298extern "C" {
7299 pub fn snd_seq_poll_descriptors_count(
7300 handle: *mut snd_seq_t,
7301 events: ::std::os::raw::c_short,
7302 ) -> ::std::os::raw::c_int;
7303}
7304extern "C" {
7305 pub fn snd_seq_poll_descriptors(
7306 handle: *mut snd_seq_t,
7307 pfds: *mut pollfd,
7308 space: ::std::os::raw::c_uint,
7309 events: ::std::os::raw::c_short,
7310 ) -> ::std::os::raw::c_int;
7311}
7312extern "C" {
7313 pub fn snd_seq_poll_descriptors_revents(
7314 seq: *mut snd_seq_t,
7315 pfds: *mut pollfd,
7316 nfds: ::std::os::raw::c_uint,
7317 revents: *mut ::std::os::raw::c_ushort,
7318 ) -> ::std::os::raw::c_int;
7319}
7320extern "C" {
7321 pub fn snd_seq_nonblock(
7322 handle: *mut snd_seq_t,
7323 nonblock: ::std::os::raw::c_int,
7324 ) -> ::std::os::raw::c_int;
7325}
7326extern "C" {
7327 pub fn snd_seq_client_id(handle: *mut snd_seq_t) -> ::std::os::raw::c_int;
7328}
7329extern "C" {
7330 pub fn snd_seq_get_output_buffer_size(handle: *mut snd_seq_t) -> usize;
7331}
7332extern "C" {
7333 pub fn snd_seq_get_input_buffer_size(handle: *mut snd_seq_t) -> usize;
7334}
7335extern "C" {
7336 pub fn snd_seq_set_output_buffer_size(
7337 handle: *mut snd_seq_t,
7338 size: usize,
7339 ) -> ::std::os::raw::c_int;
7340}
7341extern "C" {
7342 pub fn snd_seq_set_input_buffer_size(
7343 handle: *mut snd_seq_t,
7344 size: usize,
7345 ) -> ::std::os::raw::c_int;
7346}
7347#[repr(C)]
7348#[derive(Debug, Copy, Clone)]
7349pub struct _snd_seq_system_info {
7350 _unused: [u8; 0],
7351}
7352#[doc = " system information container"]
7353pub type snd_seq_system_info_t = _snd_seq_system_info;
7354extern "C" {
7355 pub fn snd_seq_system_info_sizeof() -> usize;
7356}
7357extern "C" {
7358 pub fn snd_seq_system_info_malloc(
7359 ptr: *mut *mut snd_seq_system_info_t,
7360 ) -> ::std::os::raw::c_int;
7361}
7362extern "C" {
7363 pub fn snd_seq_system_info_free(ptr: *mut snd_seq_system_info_t);
7364}
7365extern "C" {
7366 pub fn snd_seq_system_info_copy(
7367 dst: *mut snd_seq_system_info_t,
7368 src: *const snd_seq_system_info_t,
7369 );
7370}
7371extern "C" {
7372 pub fn snd_seq_system_info_get_queues(
7373 info: *const snd_seq_system_info_t,
7374 ) -> ::std::os::raw::c_int;
7375}
7376extern "C" {
7377 pub fn snd_seq_system_info_get_clients(
7378 info: *const snd_seq_system_info_t,
7379 ) -> ::std::os::raw::c_int;
7380}
7381extern "C" {
7382 pub fn snd_seq_system_info_get_ports(
7383 info: *const snd_seq_system_info_t,
7384 ) -> ::std::os::raw::c_int;
7385}
7386extern "C" {
7387 pub fn snd_seq_system_info_get_channels(
7388 info: *const snd_seq_system_info_t,
7389 ) -> ::std::os::raw::c_int;
7390}
7391extern "C" {
7392 pub fn snd_seq_system_info_get_cur_clients(
7393 info: *const snd_seq_system_info_t,
7394 ) -> ::std::os::raw::c_int;
7395}
7396extern "C" {
7397 pub fn snd_seq_system_info_get_cur_queues(
7398 info: *const snd_seq_system_info_t,
7399 ) -> ::std::os::raw::c_int;
7400}
7401extern "C" {
7402 pub fn snd_seq_system_info(
7403 handle: *mut snd_seq_t,
7404 info: *mut snd_seq_system_info_t,
7405 ) -> ::std::os::raw::c_int;
7406}
7407#[repr(C)]
7408#[derive(Debug, Copy, Clone)]
7409pub struct _snd_seq_client_info {
7410 _unused: [u8; 0],
7411}
7412#[doc = " client information container"]
7413pub type snd_seq_client_info_t = _snd_seq_client_info;
7414#[doc = "< user client"]
7415pub const SND_SEQ_USER_CLIENT: snd_seq_client_type = 1;
7416#[doc = "< kernel client"]
7417pub const SND_SEQ_KERNEL_CLIENT: snd_seq_client_type = 2;
7418#[doc = " client types"]
7419pub type snd_seq_client_type = u32;
7420#[doc = " client types"]
7421pub use self::snd_seq_client_type as snd_seq_client_type_t;
7422extern "C" {
7423 pub fn snd_seq_client_info_sizeof() -> usize;
7424}
7425extern "C" {
7426 pub fn snd_seq_client_info_malloc(
7427 ptr: *mut *mut snd_seq_client_info_t,
7428 ) -> ::std::os::raw::c_int;
7429}
7430extern "C" {
7431 pub fn snd_seq_client_info_free(ptr: *mut snd_seq_client_info_t);
7432}
7433extern "C" {
7434 pub fn snd_seq_client_info_copy(
7435 dst: *mut snd_seq_client_info_t,
7436 src: *const snd_seq_client_info_t,
7437 );
7438}
7439extern "C" {
7440 pub fn snd_seq_client_info_get_client(
7441 info: *const snd_seq_client_info_t,
7442 ) -> ::std::os::raw::c_int;
7443}
7444extern "C" {
7445 pub fn snd_seq_client_info_get_type(
7446 info: *const snd_seq_client_info_t,
7447 ) -> snd_seq_client_type_t;
7448}
7449extern "C" {
7450 pub fn snd_seq_client_info_get_name(
7451 info: *mut snd_seq_client_info_t,
7452 ) -> *const ::std::os::raw::c_char;
7453}
7454extern "C" {
7455 pub fn snd_seq_client_info_get_broadcast_filter(
7456 info: *const snd_seq_client_info_t,
7457 ) -> ::std::os::raw::c_int;
7458}
7459extern "C" {
7460 pub fn snd_seq_client_info_get_error_bounce(
7461 info: *const snd_seq_client_info_t,
7462 ) -> ::std::os::raw::c_int;
7463}
7464extern "C" {
7465 pub fn snd_seq_client_info_get_card(
7466 info: *const snd_seq_client_info_t,
7467 ) -> ::std::os::raw::c_int;
7468}
7469extern "C" {
7470 pub fn snd_seq_client_info_get_pid(info: *const snd_seq_client_info_t)
7471 -> ::std::os::raw::c_int;
7472}
7473extern "C" {
7474 pub fn snd_seq_client_info_get_event_filter(
7475 info: *const snd_seq_client_info_t,
7476 ) -> *const ::std::os::raw::c_uchar;
7477}
7478extern "C" {
7479 pub fn snd_seq_client_info_get_num_ports(
7480 info: *const snd_seq_client_info_t,
7481 ) -> ::std::os::raw::c_int;
7482}
7483extern "C" {
7484 pub fn snd_seq_client_info_get_event_lost(
7485 info: *const snd_seq_client_info_t,
7486 ) -> ::std::os::raw::c_int;
7487}
7488extern "C" {
7489 pub fn snd_seq_client_info_set_client(
7490 info: *mut snd_seq_client_info_t,
7491 client: ::std::os::raw::c_int,
7492 );
7493}
7494extern "C" {
7495 pub fn snd_seq_client_info_set_name(
7496 info: *mut snd_seq_client_info_t,
7497 name: *const ::std::os::raw::c_char,
7498 );
7499}
7500extern "C" {
7501 pub fn snd_seq_client_info_set_broadcast_filter(
7502 info: *mut snd_seq_client_info_t,
7503 val: ::std::os::raw::c_int,
7504 );
7505}
7506extern "C" {
7507 pub fn snd_seq_client_info_set_error_bounce(
7508 info: *mut snd_seq_client_info_t,
7509 val: ::std::os::raw::c_int,
7510 );
7511}
7512extern "C" {
7513 pub fn snd_seq_client_info_set_event_filter(
7514 info: *mut snd_seq_client_info_t,
7515 filter: *mut ::std::os::raw::c_uchar,
7516 );
7517}
7518extern "C" {
7519 pub fn snd_seq_client_info_event_filter_clear(info: *mut snd_seq_client_info_t);
7520}
7521extern "C" {
7522 pub fn snd_seq_client_info_event_filter_add(
7523 info: *mut snd_seq_client_info_t,
7524 event_type: ::std::os::raw::c_int,
7525 );
7526}
7527extern "C" {
7528 pub fn snd_seq_client_info_event_filter_del(
7529 info: *mut snd_seq_client_info_t,
7530 event_type: ::std::os::raw::c_int,
7531 );
7532}
7533extern "C" {
7534 pub fn snd_seq_client_info_event_filter_check(
7535 info: *mut snd_seq_client_info_t,
7536 event_type: ::std::os::raw::c_int,
7537 ) -> ::std::os::raw::c_int;
7538}
7539extern "C" {
7540 pub fn snd_seq_get_client_info(
7541 handle: *mut snd_seq_t,
7542 info: *mut snd_seq_client_info_t,
7543 ) -> ::std::os::raw::c_int;
7544}
7545extern "C" {
7546 pub fn snd_seq_get_any_client_info(
7547 handle: *mut snd_seq_t,
7548 client: ::std::os::raw::c_int,
7549 info: *mut snd_seq_client_info_t,
7550 ) -> ::std::os::raw::c_int;
7551}
7552extern "C" {
7553 pub fn snd_seq_set_client_info(
7554 handle: *mut snd_seq_t,
7555 info: *mut snd_seq_client_info_t,
7556 ) -> ::std::os::raw::c_int;
7557}
7558extern "C" {
7559 pub fn snd_seq_query_next_client(
7560 handle: *mut snd_seq_t,
7561 info: *mut snd_seq_client_info_t,
7562 ) -> ::std::os::raw::c_int;
7563}
7564#[repr(C)]
7565#[derive(Debug, Copy, Clone)]
7566pub struct _snd_seq_client_pool {
7567 _unused: [u8; 0],
7568}
7569#[doc = " client pool information container"]
7570pub type snd_seq_client_pool_t = _snd_seq_client_pool;
7571extern "C" {
7572 pub fn snd_seq_client_pool_sizeof() -> usize;
7573}
7574extern "C" {
7575 pub fn snd_seq_client_pool_malloc(
7576 ptr: *mut *mut snd_seq_client_pool_t,
7577 ) -> ::std::os::raw::c_int;
7578}
7579extern "C" {
7580 pub fn snd_seq_client_pool_free(ptr: *mut snd_seq_client_pool_t);
7581}
7582extern "C" {
7583 pub fn snd_seq_client_pool_copy(
7584 dst: *mut snd_seq_client_pool_t,
7585 src: *const snd_seq_client_pool_t,
7586 );
7587}
7588extern "C" {
7589 pub fn snd_seq_client_pool_get_client(
7590 info: *const snd_seq_client_pool_t,
7591 ) -> ::std::os::raw::c_int;
7592}
7593extern "C" {
7594 pub fn snd_seq_client_pool_get_output_pool(info: *const snd_seq_client_pool_t) -> usize;
7595}
7596extern "C" {
7597 pub fn snd_seq_client_pool_get_input_pool(info: *const snd_seq_client_pool_t) -> usize;
7598}
7599extern "C" {
7600 pub fn snd_seq_client_pool_get_output_room(info: *const snd_seq_client_pool_t) -> usize;
7601}
7602extern "C" {
7603 pub fn snd_seq_client_pool_get_output_free(info: *const snd_seq_client_pool_t) -> usize;
7604}
7605extern "C" {
7606 pub fn snd_seq_client_pool_get_input_free(info: *const snd_seq_client_pool_t) -> usize;
7607}
7608extern "C" {
7609 pub fn snd_seq_client_pool_set_output_pool(info: *mut snd_seq_client_pool_t, size: usize);
7610}
7611extern "C" {
7612 pub fn snd_seq_client_pool_set_input_pool(info: *mut snd_seq_client_pool_t, size: usize);
7613}
7614extern "C" {
7615 pub fn snd_seq_client_pool_set_output_room(info: *mut snd_seq_client_pool_t, size: usize);
7616}
7617extern "C" {
7618 pub fn snd_seq_get_client_pool(
7619 handle: *mut snd_seq_t,
7620 info: *mut snd_seq_client_pool_t,
7621 ) -> ::std::os::raw::c_int;
7622}
7623extern "C" {
7624 pub fn snd_seq_set_client_pool(
7625 handle: *mut snd_seq_t,
7626 info: *mut snd_seq_client_pool_t,
7627 ) -> ::std::os::raw::c_int;
7628}
7629#[repr(C)]
7630#[derive(Debug, Copy, Clone)]
7631pub struct _snd_seq_port_info {
7632 _unused: [u8; 0],
7633}
7634#[doc = " port information container"]
7635pub type snd_seq_port_info_t = _snd_seq_port_info;
7636extern "C" {
7637 pub fn snd_seq_port_info_sizeof() -> usize;
7638}
7639extern "C" {
7640 pub fn snd_seq_port_info_malloc(ptr: *mut *mut snd_seq_port_info_t) -> ::std::os::raw::c_int;
7641}
7642extern "C" {
7643 pub fn snd_seq_port_info_free(ptr: *mut snd_seq_port_info_t);
7644}
7645extern "C" {
7646 pub fn snd_seq_port_info_copy(dst: *mut snd_seq_port_info_t, src: *const snd_seq_port_info_t);
7647}
7648extern "C" {
7649 pub fn snd_seq_port_info_get_client(info: *const snd_seq_port_info_t) -> ::std::os::raw::c_int;
7650}
7651extern "C" {
7652 pub fn snd_seq_port_info_get_port(info: *const snd_seq_port_info_t) -> ::std::os::raw::c_int;
7653}
7654extern "C" {
7655 pub fn snd_seq_port_info_get_addr(info: *const snd_seq_port_info_t) -> *const snd_seq_addr_t;
7656}
7657extern "C" {
7658 pub fn snd_seq_port_info_get_name(
7659 info: *const snd_seq_port_info_t,
7660 ) -> *const ::std::os::raw::c_char;
7661}
7662extern "C" {
7663 pub fn snd_seq_port_info_get_capability(
7664 info: *const snd_seq_port_info_t,
7665 ) -> ::std::os::raw::c_uint;
7666}
7667extern "C" {
7668 pub fn snd_seq_port_info_get_type(info: *const snd_seq_port_info_t) -> ::std::os::raw::c_uint;
7669}
7670extern "C" {
7671 pub fn snd_seq_port_info_get_midi_channels(
7672 info: *const snd_seq_port_info_t,
7673 ) -> ::std::os::raw::c_int;
7674}
7675extern "C" {
7676 pub fn snd_seq_port_info_get_midi_voices(
7677 info: *const snd_seq_port_info_t,
7678 ) -> ::std::os::raw::c_int;
7679}
7680extern "C" {
7681 pub fn snd_seq_port_info_get_synth_voices(
7682 info: *const snd_seq_port_info_t,
7683 ) -> ::std::os::raw::c_int;
7684}
7685extern "C" {
7686 pub fn snd_seq_port_info_get_read_use(
7687 info: *const snd_seq_port_info_t,
7688 ) -> ::std::os::raw::c_int;
7689}
7690extern "C" {
7691 pub fn snd_seq_port_info_get_write_use(
7692 info: *const snd_seq_port_info_t,
7693 ) -> ::std::os::raw::c_int;
7694}
7695extern "C" {
7696 pub fn snd_seq_port_info_get_port_specified(
7697 info: *const snd_seq_port_info_t,
7698 ) -> ::std::os::raw::c_int;
7699}
7700extern "C" {
7701 pub fn snd_seq_port_info_get_timestamping(
7702 info: *const snd_seq_port_info_t,
7703 ) -> ::std::os::raw::c_int;
7704}
7705extern "C" {
7706 pub fn snd_seq_port_info_get_timestamp_real(
7707 info: *const snd_seq_port_info_t,
7708 ) -> ::std::os::raw::c_int;
7709}
7710extern "C" {
7711 pub fn snd_seq_port_info_get_timestamp_queue(
7712 info: *const snd_seq_port_info_t,
7713 ) -> ::std::os::raw::c_int;
7714}
7715extern "C" {
7716 pub fn snd_seq_port_info_set_client(
7717 info: *mut snd_seq_port_info_t,
7718 client: ::std::os::raw::c_int,
7719 );
7720}
7721extern "C" {
7722 pub fn snd_seq_port_info_set_port(info: *mut snd_seq_port_info_t, port: ::std::os::raw::c_int);
7723}
7724extern "C" {
7725 pub fn snd_seq_port_info_set_addr(info: *mut snd_seq_port_info_t, addr: *const snd_seq_addr_t);
7726}
7727extern "C" {
7728 pub fn snd_seq_port_info_set_name(
7729 info: *mut snd_seq_port_info_t,
7730 name: *const ::std::os::raw::c_char,
7731 );
7732}
7733extern "C" {
7734 pub fn snd_seq_port_info_set_capability(
7735 info: *mut snd_seq_port_info_t,
7736 capability: ::std::os::raw::c_uint,
7737 );
7738}
7739extern "C" {
7740 pub fn snd_seq_port_info_set_type(
7741 info: *mut snd_seq_port_info_t,
7742 type_: ::std::os::raw::c_uint,
7743 );
7744}
7745extern "C" {
7746 pub fn snd_seq_port_info_set_midi_channels(
7747 info: *mut snd_seq_port_info_t,
7748 channels: ::std::os::raw::c_int,
7749 );
7750}
7751extern "C" {
7752 pub fn snd_seq_port_info_set_midi_voices(
7753 info: *mut snd_seq_port_info_t,
7754 voices: ::std::os::raw::c_int,
7755 );
7756}
7757extern "C" {
7758 pub fn snd_seq_port_info_set_synth_voices(
7759 info: *mut snd_seq_port_info_t,
7760 voices: ::std::os::raw::c_int,
7761 );
7762}
7763extern "C" {
7764 pub fn snd_seq_port_info_set_port_specified(
7765 info: *mut snd_seq_port_info_t,
7766 val: ::std::os::raw::c_int,
7767 );
7768}
7769extern "C" {
7770 pub fn snd_seq_port_info_set_timestamping(
7771 info: *mut snd_seq_port_info_t,
7772 enable: ::std::os::raw::c_int,
7773 );
7774}
7775extern "C" {
7776 pub fn snd_seq_port_info_set_timestamp_real(
7777 info: *mut snd_seq_port_info_t,
7778 realtime: ::std::os::raw::c_int,
7779 );
7780}
7781extern "C" {
7782 pub fn snd_seq_port_info_set_timestamp_queue(
7783 info: *mut snd_seq_port_info_t,
7784 queue: ::std::os::raw::c_int,
7785 );
7786}
7787extern "C" {
7788 pub fn snd_seq_create_port(
7789 handle: *mut snd_seq_t,
7790 info: *mut snd_seq_port_info_t,
7791 ) -> ::std::os::raw::c_int;
7792}
7793extern "C" {
7794 pub fn snd_seq_delete_port(
7795 handle: *mut snd_seq_t,
7796 port: ::std::os::raw::c_int,
7797 ) -> ::std::os::raw::c_int;
7798}
7799extern "C" {
7800 pub fn snd_seq_get_port_info(
7801 handle: *mut snd_seq_t,
7802 port: ::std::os::raw::c_int,
7803 info: *mut snd_seq_port_info_t,
7804 ) -> ::std::os::raw::c_int;
7805}
7806extern "C" {
7807 pub fn snd_seq_get_any_port_info(
7808 handle: *mut snd_seq_t,
7809 client: ::std::os::raw::c_int,
7810 port: ::std::os::raw::c_int,
7811 info: *mut snd_seq_port_info_t,
7812 ) -> ::std::os::raw::c_int;
7813}
7814extern "C" {
7815 pub fn snd_seq_set_port_info(
7816 handle: *mut snd_seq_t,
7817 port: ::std::os::raw::c_int,
7818 info: *mut snd_seq_port_info_t,
7819 ) -> ::std::os::raw::c_int;
7820}
7821extern "C" {
7822 pub fn snd_seq_query_next_port(
7823 handle: *mut snd_seq_t,
7824 info: *mut snd_seq_port_info_t,
7825 ) -> ::std::os::raw::c_int;
7826}
7827#[repr(C)]
7828#[derive(Debug, Copy, Clone)]
7829pub struct _snd_seq_port_subscribe {
7830 _unused: [u8; 0],
7831}
7832#[doc = " port subscription container"]
7833pub type snd_seq_port_subscribe_t = _snd_seq_port_subscribe;
7834extern "C" {
7835 pub fn snd_seq_port_subscribe_sizeof() -> usize;
7836}
7837extern "C" {
7838 pub fn snd_seq_port_subscribe_malloc(
7839 ptr: *mut *mut snd_seq_port_subscribe_t,
7840 ) -> ::std::os::raw::c_int;
7841}
7842extern "C" {
7843 pub fn snd_seq_port_subscribe_free(ptr: *mut snd_seq_port_subscribe_t);
7844}
7845extern "C" {
7846 pub fn snd_seq_port_subscribe_copy(
7847 dst: *mut snd_seq_port_subscribe_t,
7848 src: *const snd_seq_port_subscribe_t,
7849 );
7850}
7851extern "C" {
7852 pub fn snd_seq_port_subscribe_get_sender(
7853 info: *const snd_seq_port_subscribe_t,
7854 ) -> *const snd_seq_addr_t;
7855}
7856extern "C" {
7857 pub fn snd_seq_port_subscribe_get_dest(
7858 info: *const snd_seq_port_subscribe_t,
7859 ) -> *const snd_seq_addr_t;
7860}
7861extern "C" {
7862 pub fn snd_seq_port_subscribe_get_queue(
7863 info: *const snd_seq_port_subscribe_t,
7864 ) -> ::std::os::raw::c_int;
7865}
7866extern "C" {
7867 pub fn snd_seq_port_subscribe_get_exclusive(
7868 info: *const snd_seq_port_subscribe_t,
7869 ) -> ::std::os::raw::c_int;
7870}
7871extern "C" {
7872 pub fn snd_seq_port_subscribe_get_time_update(
7873 info: *const snd_seq_port_subscribe_t,
7874 ) -> ::std::os::raw::c_int;
7875}
7876extern "C" {
7877 pub fn snd_seq_port_subscribe_get_time_real(
7878 info: *const snd_seq_port_subscribe_t,
7879 ) -> ::std::os::raw::c_int;
7880}
7881extern "C" {
7882 pub fn snd_seq_port_subscribe_set_sender(
7883 info: *mut snd_seq_port_subscribe_t,
7884 addr: *const snd_seq_addr_t,
7885 );
7886}
7887extern "C" {
7888 pub fn snd_seq_port_subscribe_set_dest(
7889 info: *mut snd_seq_port_subscribe_t,
7890 addr: *const snd_seq_addr_t,
7891 );
7892}
7893extern "C" {
7894 pub fn snd_seq_port_subscribe_set_queue(
7895 info: *mut snd_seq_port_subscribe_t,
7896 q: ::std::os::raw::c_int,
7897 );
7898}
7899extern "C" {
7900 pub fn snd_seq_port_subscribe_set_exclusive(
7901 info: *mut snd_seq_port_subscribe_t,
7902 val: ::std::os::raw::c_int,
7903 );
7904}
7905extern "C" {
7906 pub fn snd_seq_port_subscribe_set_time_update(
7907 info: *mut snd_seq_port_subscribe_t,
7908 val: ::std::os::raw::c_int,
7909 );
7910}
7911extern "C" {
7912 pub fn snd_seq_port_subscribe_set_time_real(
7913 info: *mut snd_seq_port_subscribe_t,
7914 val: ::std::os::raw::c_int,
7915 );
7916}
7917extern "C" {
7918 pub fn snd_seq_get_port_subscription(
7919 handle: *mut snd_seq_t,
7920 sub: *mut snd_seq_port_subscribe_t,
7921 ) -> ::std::os::raw::c_int;
7922}
7923extern "C" {
7924 pub fn snd_seq_subscribe_port(
7925 handle: *mut snd_seq_t,
7926 sub: *mut snd_seq_port_subscribe_t,
7927 ) -> ::std::os::raw::c_int;
7928}
7929extern "C" {
7930 pub fn snd_seq_unsubscribe_port(
7931 handle: *mut snd_seq_t,
7932 sub: *mut snd_seq_port_subscribe_t,
7933 ) -> ::std::os::raw::c_int;
7934}
7935#[repr(C)]
7936#[derive(Debug, Copy, Clone)]
7937pub struct _snd_seq_query_subscribe {
7938 _unused: [u8; 0],
7939}
7940#[doc = " subscription query container"]
7941pub type snd_seq_query_subscribe_t = _snd_seq_query_subscribe;
7942#[doc = "< query read subscriptions"]
7943pub const SND_SEQ_QUERY_SUBS_READ: snd_seq_query_subs_type_t = 0;
7944#[doc = "< query write subscriptions"]
7945pub const SND_SEQ_QUERY_SUBS_WRITE: snd_seq_query_subs_type_t = 1;
7946#[doc = " type of query subscription"]
7947pub type snd_seq_query_subs_type_t = u32;
7948extern "C" {
7949 pub fn snd_seq_query_subscribe_sizeof() -> usize;
7950}
7951extern "C" {
7952 pub fn snd_seq_query_subscribe_malloc(
7953 ptr: *mut *mut snd_seq_query_subscribe_t,
7954 ) -> ::std::os::raw::c_int;
7955}
7956extern "C" {
7957 pub fn snd_seq_query_subscribe_free(ptr: *mut snd_seq_query_subscribe_t);
7958}
7959extern "C" {
7960 pub fn snd_seq_query_subscribe_copy(
7961 dst: *mut snd_seq_query_subscribe_t,
7962 src: *const snd_seq_query_subscribe_t,
7963 );
7964}
7965extern "C" {
7966 pub fn snd_seq_query_subscribe_get_client(
7967 info: *const snd_seq_query_subscribe_t,
7968 ) -> ::std::os::raw::c_int;
7969}
7970extern "C" {
7971 pub fn snd_seq_query_subscribe_get_port(
7972 info: *const snd_seq_query_subscribe_t,
7973 ) -> ::std::os::raw::c_int;
7974}
7975extern "C" {
7976 pub fn snd_seq_query_subscribe_get_root(
7977 info: *const snd_seq_query_subscribe_t,
7978 ) -> *const snd_seq_addr_t;
7979}
7980extern "C" {
7981 pub fn snd_seq_query_subscribe_get_type(
7982 info: *const snd_seq_query_subscribe_t,
7983 ) -> snd_seq_query_subs_type_t;
7984}
7985extern "C" {
7986 pub fn snd_seq_query_subscribe_get_index(
7987 info: *const snd_seq_query_subscribe_t,
7988 ) -> ::std::os::raw::c_int;
7989}
7990extern "C" {
7991 pub fn snd_seq_query_subscribe_get_num_subs(
7992 info: *const snd_seq_query_subscribe_t,
7993 ) -> ::std::os::raw::c_int;
7994}
7995extern "C" {
7996 pub fn snd_seq_query_subscribe_get_addr(
7997 info: *const snd_seq_query_subscribe_t,
7998 ) -> *const snd_seq_addr_t;
7999}
8000extern "C" {
8001 pub fn snd_seq_query_subscribe_get_queue(
8002 info: *const snd_seq_query_subscribe_t,
8003 ) -> ::std::os::raw::c_int;
8004}
8005extern "C" {
8006 pub fn snd_seq_query_subscribe_get_exclusive(
8007 info: *const snd_seq_query_subscribe_t,
8008 ) -> ::std::os::raw::c_int;
8009}
8010extern "C" {
8011 pub fn snd_seq_query_subscribe_get_time_update(
8012 info: *const snd_seq_query_subscribe_t,
8013 ) -> ::std::os::raw::c_int;
8014}
8015extern "C" {
8016 pub fn snd_seq_query_subscribe_get_time_real(
8017 info: *const snd_seq_query_subscribe_t,
8018 ) -> ::std::os::raw::c_int;
8019}
8020extern "C" {
8021 pub fn snd_seq_query_subscribe_set_client(
8022 info: *mut snd_seq_query_subscribe_t,
8023 client: ::std::os::raw::c_int,
8024 );
8025}
8026extern "C" {
8027 pub fn snd_seq_query_subscribe_set_port(
8028 info: *mut snd_seq_query_subscribe_t,
8029 port: ::std::os::raw::c_int,
8030 );
8031}
8032extern "C" {
8033 pub fn snd_seq_query_subscribe_set_root(
8034 info: *mut snd_seq_query_subscribe_t,
8035 addr: *const snd_seq_addr_t,
8036 );
8037}
8038extern "C" {
8039 pub fn snd_seq_query_subscribe_set_type(
8040 info: *mut snd_seq_query_subscribe_t,
8041 type_: snd_seq_query_subs_type_t,
8042 );
8043}
8044extern "C" {
8045 pub fn snd_seq_query_subscribe_set_index(
8046 info: *mut snd_seq_query_subscribe_t,
8047 _index: ::std::os::raw::c_int,
8048 );
8049}
8050extern "C" {
8051 pub fn snd_seq_query_port_subscribers(
8052 seq: *mut snd_seq_t,
8053 subs: *mut snd_seq_query_subscribe_t,
8054 ) -> ::std::os::raw::c_int;
8055}
8056#[repr(C)]
8057#[derive(Debug, Copy, Clone)]
8058pub struct _snd_seq_queue_info {
8059 _unused: [u8; 0],
8060}
8061#[doc = " queue information container"]
8062pub type snd_seq_queue_info_t = _snd_seq_queue_info;
8063#[repr(C)]
8064#[derive(Debug, Copy, Clone)]
8065pub struct _snd_seq_queue_status {
8066 _unused: [u8; 0],
8067}
8068#[doc = " queue status container"]
8069pub type snd_seq_queue_status_t = _snd_seq_queue_status;
8070#[repr(C)]
8071#[derive(Debug, Copy, Clone)]
8072pub struct _snd_seq_queue_tempo {
8073 _unused: [u8; 0],
8074}
8075#[doc = " queue tempo container"]
8076pub type snd_seq_queue_tempo_t = _snd_seq_queue_tempo;
8077#[repr(C)]
8078#[derive(Debug, Copy, Clone)]
8079pub struct _snd_seq_queue_timer {
8080 _unused: [u8; 0],
8081}
8082#[doc = " queue timer information container"]
8083pub type snd_seq_queue_timer_t = _snd_seq_queue_timer;
8084extern "C" {
8085 pub fn snd_seq_queue_info_sizeof() -> usize;
8086}
8087extern "C" {
8088 pub fn snd_seq_queue_info_malloc(ptr: *mut *mut snd_seq_queue_info_t) -> ::std::os::raw::c_int;
8089}
8090extern "C" {
8091 pub fn snd_seq_queue_info_free(ptr: *mut snd_seq_queue_info_t);
8092}
8093extern "C" {
8094 pub fn snd_seq_queue_info_copy(
8095 dst: *mut snd_seq_queue_info_t,
8096 src: *const snd_seq_queue_info_t,
8097 );
8098}
8099extern "C" {
8100 pub fn snd_seq_queue_info_get_queue(info: *const snd_seq_queue_info_t)
8101 -> ::std::os::raw::c_int;
8102}
8103extern "C" {
8104 pub fn snd_seq_queue_info_get_name(
8105 info: *const snd_seq_queue_info_t,
8106 ) -> *const ::std::os::raw::c_char;
8107}
8108extern "C" {
8109 pub fn snd_seq_queue_info_get_owner(info: *const snd_seq_queue_info_t)
8110 -> ::std::os::raw::c_int;
8111}
8112extern "C" {
8113 pub fn snd_seq_queue_info_get_locked(
8114 info: *const snd_seq_queue_info_t,
8115 ) -> ::std::os::raw::c_int;
8116}
8117extern "C" {
8118 pub fn snd_seq_queue_info_get_flags(
8119 info: *const snd_seq_queue_info_t,
8120 ) -> ::std::os::raw::c_uint;
8121}
8122extern "C" {
8123 pub fn snd_seq_queue_info_set_name(
8124 info: *mut snd_seq_queue_info_t,
8125 name: *const ::std::os::raw::c_char,
8126 );
8127}
8128extern "C" {
8129 pub fn snd_seq_queue_info_set_owner(
8130 info: *mut snd_seq_queue_info_t,
8131 owner: ::std::os::raw::c_int,
8132 );
8133}
8134extern "C" {
8135 pub fn snd_seq_queue_info_set_locked(
8136 info: *mut snd_seq_queue_info_t,
8137 locked: ::std::os::raw::c_int,
8138 );
8139}
8140extern "C" {
8141 pub fn snd_seq_queue_info_set_flags(
8142 info: *mut snd_seq_queue_info_t,
8143 flags: ::std::os::raw::c_uint,
8144 );
8145}
8146extern "C" {
8147 pub fn snd_seq_create_queue(
8148 seq: *mut snd_seq_t,
8149 info: *mut snd_seq_queue_info_t,
8150 ) -> ::std::os::raw::c_int;
8151}
8152extern "C" {
8153 pub fn snd_seq_alloc_named_queue(
8154 seq: *mut snd_seq_t,
8155 name: *const ::std::os::raw::c_char,
8156 ) -> ::std::os::raw::c_int;
8157}
8158extern "C" {
8159 pub fn snd_seq_alloc_queue(handle: *mut snd_seq_t) -> ::std::os::raw::c_int;
8160}
8161extern "C" {
8162 pub fn snd_seq_free_queue(
8163 handle: *mut snd_seq_t,
8164 q: ::std::os::raw::c_int,
8165 ) -> ::std::os::raw::c_int;
8166}
8167extern "C" {
8168 pub fn snd_seq_get_queue_info(
8169 seq: *mut snd_seq_t,
8170 q: ::std::os::raw::c_int,
8171 info: *mut snd_seq_queue_info_t,
8172 ) -> ::std::os::raw::c_int;
8173}
8174extern "C" {
8175 pub fn snd_seq_set_queue_info(
8176 seq: *mut snd_seq_t,
8177 q: ::std::os::raw::c_int,
8178 info: *mut snd_seq_queue_info_t,
8179 ) -> ::std::os::raw::c_int;
8180}
8181extern "C" {
8182 pub fn snd_seq_query_named_queue(
8183 seq: *mut snd_seq_t,
8184 name: *const ::std::os::raw::c_char,
8185 ) -> ::std::os::raw::c_int;
8186}
8187extern "C" {
8188 pub fn snd_seq_get_queue_usage(
8189 handle: *mut snd_seq_t,
8190 q: ::std::os::raw::c_int,
8191 ) -> ::std::os::raw::c_int;
8192}
8193extern "C" {
8194 pub fn snd_seq_set_queue_usage(
8195 handle: *mut snd_seq_t,
8196 q: ::std::os::raw::c_int,
8197 used: ::std::os::raw::c_int,
8198 ) -> ::std::os::raw::c_int;
8199}
8200extern "C" {
8201 pub fn snd_seq_queue_status_sizeof() -> usize;
8202}
8203extern "C" {
8204 pub fn snd_seq_queue_status_malloc(
8205 ptr: *mut *mut snd_seq_queue_status_t,
8206 ) -> ::std::os::raw::c_int;
8207}
8208extern "C" {
8209 pub fn snd_seq_queue_status_free(ptr: *mut snd_seq_queue_status_t);
8210}
8211extern "C" {
8212 pub fn snd_seq_queue_status_copy(
8213 dst: *mut snd_seq_queue_status_t,
8214 src: *const snd_seq_queue_status_t,
8215 );
8216}
8217extern "C" {
8218 pub fn snd_seq_queue_status_get_queue(
8219 info: *const snd_seq_queue_status_t,
8220 ) -> ::std::os::raw::c_int;
8221}
8222extern "C" {
8223 pub fn snd_seq_queue_status_get_events(
8224 info: *const snd_seq_queue_status_t,
8225 ) -> ::std::os::raw::c_int;
8226}
8227extern "C" {
8228 pub fn snd_seq_queue_status_get_tick_time(
8229 info: *const snd_seq_queue_status_t,
8230 ) -> snd_seq_tick_time_t;
8231}
8232extern "C" {
8233 pub fn snd_seq_queue_status_get_real_time(
8234 info: *const snd_seq_queue_status_t,
8235 ) -> *const snd_seq_real_time_t;
8236}
8237extern "C" {
8238 pub fn snd_seq_queue_status_get_status(
8239 info: *const snd_seq_queue_status_t,
8240 ) -> ::std::os::raw::c_uint;
8241}
8242extern "C" {
8243 pub fn snd_seq_get_queue_status(
8244 handle: *mut snd_seq_t,
8245 q: ::std::os::raw::c_int,
8246 status: *mut snd_seq_queue_status_t,
8247 ) -> ::std::os::raw::c_int;
8248}
8249extern "C" {
8250 pub fn snd_seq_queue_tempo_sizeof() -> usize;
8251}
8252extern "C" {
8253 pub fn snd_seq_queue_tempo_malloc(
8254 ptr: *mut *mut snd_seq_queue_tempo_t,
8255 ) -> ::std::os::raw::c_int;
8256}
8257extern "C" {
8258 pub fn snd_seq_queue_tempo_free(ptr: *mut snd_seq_queue_tempo_t);
8259}
8260extern "C" {
8261 pub fn snd_seq_queue_tempo_copy(
8262 dst: *mut snd_seq_queue_tempo_t,
8263 src: *const snd_seq_queue_tempo_t,
8264 );
8265}
8266extern "C" {
8267 pub fn snd_seq_queue_tempo_get_queue(
8268 info: *const snd_seq_queue_tempo_t,
8269 ) -> ::std::os::raw::c_int;
8270}
8271extern "C" {
8272 pub fn snd_seq_queue_tempo_get_tempo(
8273 info: *const snd_seq_queue_tempo_t,
8274 ) -> ::std::os::raw::c_uint;
8275}
8276extern "C" {
8277 pub fn snd_seq_queue_tempo_get_ppq(info: *const snd_seq_queue_tempo_t)
8278 -> ::std::os::raw::c_int;
8279}
8280extern "C" {
8281 pub fn snd_seq_queue_tempo_get_skew(
8282 info: *const snd_seq_queue_tempo_t,
8283 ) -> ::std::os::raw::c_uint;
8284}
8285extern "C" {
8286 pub fn snd_seq_queue_tempo_get_skew_base(
8287 info: *const snd_seq_queue_tempo_t,
8288 ) -> ::std::os::raw::c_uint;
8289}
8290extern "C" {
8291 pub fn snd_seq_queue_tempo_set_tempo(
8292 info: *mut snd_seq_queue_tempo_t,
8293 tempo: ::std::os::raw::c_uint,
8294 );
8295}
8296extern "C" {
8297 pub fn snd_seq_queue_tempo_set_ppq(
8298 info: *mut snd_seq_queue_tempo_t,
8299 ppq: ::std::os::raw::c_int,
8300 );
8301}
8302extern "C" {
8303 pub fn snd_seq_queue_tempo_set_skew(
8304 info: *mut snd_seq_queue_tempo_t,
8305 skew: ::std::os::raw::c_uint,
8306 );
8307}
8308extern "C" {
8309 pub fn snd_seq_queue_tempo_set_skew_base(
8310 info: *mut snd_seq_queue_tempo_t,
8311 base: ::std::os::raw::c_uint,
8312 );
8313}
8314extern "C" {
8315 pub fn snd_seq_get_queue_tempo(
8316 handle: *mut snd_seq_t,
8317 q: ::std::os::raw::c_int,
8318 tempo: *mut snd_seq_queue_tempo_t,
8319 ) -> ::std::os::raw::c_int;
8320}
8321extern "C" {
8322 pub fn snd_seq_set_queue_tempo(
8323 handle: *mut snd_seq_t,
8324 q: ::std::os::raw::c_int,
8325 tempo: *mut snd_seq_queue_tempo_t,
8326 ) -> ::std::os::raw::c_int;
8327}
8328pub const SND_SEQ_TIMER_ALSA: snd_seq_queue_timer_type_t = 0;
8329pub const SND_SEQ_TIMER_MIDI_CLOCK: snd_seq_queue_timer_type_t = 1;
8330pub const SND_SEQ_TIMER_MIDI_TICK: snd_seq_queue_timer_type_t = 2;
8331#[doc = " sequencer timer sources"]
8332pub type snd_seq_queue_timer_type_t = u32;
8333extern "C" {
8334 pub fn snd_seq_queue_timer_sizeof() -> usize;
8335}
8336extern "C" {
8337 pub fn snd_seq_queue_timer_malloc(
8338 ptr: *mut *mut snd_seq_queue_timer_t,
8339 ) -> ::std::os::raw::c_int;
8340}
8341extern "C" {
8342 pub fn snd_seq_queue_timer_free(ptr: *mut snd_seq_queue_timer_t);
8343}
8344extern "C" {
8345 pub fn snd_seq_queue_timer_copy(
8346 dst: *mut snd_seq_queue_timer_t,
8347 src: *const snd_seq_queue_timer_t,
8348 );
8349}
8350extern "C" {
8351 pub fn snd_seq_queue_timer_get_queue(
8352 info: *const snd_seq_queue_timer_t,
8353 ) -> ::std::os::raw::c_int;
8354}
8355extern "C" {
8356 pub fn snd_seq_queue_timer_get_type(
8357 info: *const snd_seq_queue_timer_t,
8358 ) -> snd_seq_queue_timer_type_t;
8359}
8360extern "C" {
8361 pub fn snd_seq_queue_timer_get_id(info: *const snd_seq_queue_timer_t) -> *const snd_timer_id_t;
8362}
8363extern "C" {
8364 pub fn snd_seq_queue_timer_get_resolution(
8365 info: *const snd_seq_queue_timer_t,
8366 ) -> ::std::os::raw::c_uint;
8367}
8368extern "C" {
8369 pub fn snd_seq_queue_timer_set_type(
8370 info: *mut snd_seq_queue_timer_t,
8371 type_: snd_seq_queue_timer_type_t,
8372 );
8373}
8374extern "C" {
8375 pub fn snd_seq_queue_timer_set_id(info: *mut snd_seq_queue_timer_t, id: *const snd_timer_id_t);
8376}
8377extern "C" {
8378 pub fn snd_seq_queue_timer_set_resolution(
8379 info: *mut snd_seq_queue_timer_t,
8380 resolution: ::std::os::raw::c_uint,
8381 );
8382}
8383extern "C" {
8384 pub fn snd_seq_get_queue_timer(
8385 handle: *mut snd_seq_t,
8386 q: ::std::os::raw::c_int,
8387 timer: *mut snd_seq_queue_timer_t,
8388 ) -> ::std::os::raw::c_int;
8389}
8390extern "C" {
8391 pub fn snd_seq_set_queue_timer(
8392 handle: *mut snd_seq_t,
8393 q: ::std::os::raw::c_int,
8394 timer: *mut snd_seq_queue_timer_t,
8395 ) -> ::std::os::raw::c_int;
8396}
8397extern "C" {
8398 #[doc = " \\defgroup SeqEvent Sequencer Event API"]
8399 #[doc = " Sequencer Event API"]
8400 #[doc = " \\ingroup Sequencer"]
8401 #[doc = " \\{"]
8402 pub fn snd_seq_free_event(ev: *mut snd_seq_event_t) -> ::std::os::raw::c_int;
8403}
8404extern "C" {
8405 pub fn snd_seq_event_length(ev: *mut snd_seq_event_t) -> isize;
8406}
8407extern "C" {
8408 pub fn snd_seq_event_output(
8409 handle: *mut snd_seq_t,
8410 ev: *mut snd_seq_event_t,
8411 ) -> ::std::os::raw::c_int;
8412}
8413extern "C" {
8414 pub fn snd_seq_event_output_buffer(
8415 handle: *mut snd_seq_t,
8416 ev: *mut snd_seq_event_t,
8417 ) -> ::std::os::raw::c_int;
8418}
8419extern "C" {
8420 pub fn snd_seq_event_output_direct(
8421 handle: *mut snd_seq_t,
8422 ev: *mut snd_seq_event_t,
8423 ) -> ::std::os::raw::c_int;
8424}
8425extern "C" {
8426 pub fn snd_seq_event_input(
8427 handle: *mut snd_seq_t,
8428 ev: *mut *mut snd_seq_event_t,
8429 ) -> ::std::os::raw::c_int;
8430}
8431extern "C" {
8432 pub fn snd_seq_event_input_pending(
8433 seq: *mut snd_seq_t,
8434 fetch_sequencer: ::std::os::raw::c_int,
8435 ) -> ::std::os::raw::c_int;
8436}
8437extern "C" {
8438 pub fn snd_seq_drain_output(handle: *mut snd_seq_t) -> ::std::os::raw::c_int;
8439}
8440extern "C" {
8441 pub fn snd_seq_event_output_pending(seq: *mut snd_seq_t) -> ::std::os::raw::c_int;
8442}
8443extern "C" {
8444 pub fn snd_seq_extract_output(
8445 handle: *mut snd_seq_t,
8446 ev: *mut *mut snd_seq_event_t,
8447 ) -> ::std::os::raw::c_int;
8448}
8449extern "C" {
8450 pub fn snd_seq_drop_output(handle: *mut snd_seq_t) -> ::std::os::raw::c_int;
8451}
8452extern "C" {
8453 pub fn snd_seq_drop_output_buffer(handle: *mut snd_seq_t) -> ::std::os::raw::c_int;
8454}
8455extern "C" {
8456 pub fn snd_seq_drop_input(handle: *mut snd_seq_t) -> ::std::os::raw::c_int;
8457}
8458extern "C" {
8459 pub fn snd_seq_drop_input_buffer(handle: *mut snd_seq_t) -> ::std::os::raw::c_int;
8460}
8461#[repr(C)]
8462#[derive(Debug, Copy, Clone)]
8463pub struct _snd_seq_remove_events {
8464 _unused: [u8; 0],
8465}
8466#[doc = " event removal conditionals"]
8467pub type snd_seq_remove_events_t = _snd_seq_remove_events;
8468extern "C" {
8469 pub fn snd_seq_remove_events_sizeof() -> usize;
8470}
8471extern "C" {
8472 pub fn snd_seq_remove_events_malloc(
8473 ptr: *mut *mut snd_seq_remove_events_t,
8474 ) -> ::std::os::raw::c_int;
8475}
8476extern "C" {
8477 pub fn snd_seq_remove_events_free(ptr: *mut snd_seq_remove_events_t);
8478}
8479extern "C" {
8480 pub fn snd_seq_remove_events_copy(
8481 dst: *mut snd_seq_remove_events_t,
8482 src: *const snd_seq_remove_events_t,
8483 );
8484}
8485extern "C" {
8486 pub fn snd_seq_remove_events_get_condition(
8487 info: *const snd_seq_remove_events_t,
8488 ) -> ::std::os::raw::c_uint;
8489}
8490extern "C" {
8491 pub fn snd_seq_remove_events_get_queue(
8492 info: *const snd_seq_remove_events_t,
8493 ) -> ::std::os::raw::c_int;
8494}
8495extern "C" {
8496 pub fn snd_seq_remove_events_get_time(
8497 info: *const snd_seq_remove_events_t,
8498 ) -> *const snd_seq_timestamp_t;
8499}
8500extern "C" {
8501 pub fn snd_seq_remove_events_get_dest(
8502 info: *const snd_seq_remove_events_t,
8503 ) -> *const snd_seq_addr_t;
8504}
8505extern "C" {
8506 pub fn snd_seq_remove_events_get_channel(
8507 info: *const snd_seq_remove_events_t,
8508 ) -> ::std::os::raw::c_int;
8509}
8510extern "C" {
8511 pub fn snd_seq_remove_events_get_event_type(
8512 info: *const snd_seq_remove_events_t,
8513 ) -> ::std::os::raw::c_int;
8514}
8515extern "C" {
8516 pub fn snd_seq_remove_events_get_tag(
8517 info: *const snd_seq_remove_events_t,
8518 ) -> ::std::os::raw::c_int;
8519}
8520extern "C" {
8521 pub fn snd_seq_remove_events_set_condition(
8522 info: *mut snd_seq_remove_events_t,
8523 flags: ::std::os::raw::c_uint,
8524 );
8525}
8526extern "C" {
8527 pub fn snd_seq_remove_events_set_queue(
8528 info: *mut snd_seq_remove_events_t,
8529 queue: ::std::os::raw::c_int,
8530 );
8531}
8532extern "C" {
8533 pub fn snd_seq_remove_events_set_time(
8534 info: *mut snd_seq_remove_events_t,
8535 time: *const snd_seq_timestamp_t,
8536 );
8537}
8538extern "C" {
8539 pub fn snd_seq_remove_events_set_dest(
8540 info: *mut snd_seq_remove_events_t,
8541 addr: *const snd_seq_addr_t,
8542 );
8543}
8544extern "C" {
8545 pub fn snd_seq_remove_events_set_channel(
8546 info: *mut snd_seq_remove_events_t,
8547 channel: ::std::os::raw::c_int,
8548 );
8549}
8550extern "C" {
8551 pub fn snd_seq_remove_events_set_event_type(
8552 info: *mut snd_seq_remove_events_t,
8553 type_: ::std::os::raw::c_int,
8554 );
8555}
8556extern "C" {
8557 pub fn snd_seq_remove_events_set_tag(
8558 info: *mut snd_seq_remove_events_t,
8559 tag: ::std::os::raw::c_int,
8560 );
8561}
8562extern "C" {
8563 pub fn snd_seq_remove_events(
8564 handle: *mut snd_seq_t,
8565 info: *mut snd_seq_remove_events_t,
8566 ) -> ::std::os::raw::c_int;
8567}
8568extern "C" {
8569 #[doc = " \\defgroup SeqMisc Sequencer Miscellaneous"]
8570 #[doc = " Sequencer Miscellaneous"]
8571 #[doc = " \\ingroup Sequencer"]
8572 #[doc = " \\{"]
8573 pub fn snd_seq_set_bit(nr: ::std::os::raw::c_int, array: *mut ::std::os::raw::c_void);
8574}
8575extern "C" {
8576 pub fn snd_seq_unset_bit(nr: ::std::os::raw::c_int, array: *mut ::std::os::raw::c_void);
8577}
8578extern "C" {
8579 pub fn snd_seq_change_bit(
8580 nr: ::std::os::raw::c_int,
8581 array: *mut ::std::os::raw::c_void,
8582 ) -> ::std::os::raw::c_int;
8583}
8584extern "C" {
8585 pub fn snd_seq_get_bit(
8586 nr: ::std::os::raw::c_int,
8587 array: *mut ::std::os::raw::c_void,
8588 ) -> ::std::os::raw::c_int;
8589}
8590extern "C" {
8591 pub fn snd_seq_control_queue(
8592 seq: *mut snd_seq_t,
8593 q: ::std::os::raw::c_int,
8594 type_: ::std::os::raw::c_int,
8595 value: ::std::os::raw::c_int,
8596 ev: *mut snd_seq_event_t,
8597 ) -> ::std::os::raw::c_int;
8598}
8599extern "C" {
8600 pub fn snd_seq_create_simple_port(
8601 seq: *mut snd_seq_t,
8602 name: *const ::std::os::raw::c_char,
8603 caps: ::std::os::raw::c_uint,
8604 type_: ::std::os::raw::c_uint,
8605 ) -> ::std::os::raw::c_int;
8606}
8607extern "C" {
8608 pub fn snd_seq_delete_simple_port(
8609 seq: *mut snd_seq_t,
8610 port: ::std::os::raw::c_int,
8611 ) -> ::std::os::raw::c_int;
8612}
8613extern "C" {
8614 pub fn snd_seq_connect_from(
8615 seq: *mut snd_seq_t,
8616 my_port: ::std::os::raw::c_int,
8617 src_client: ::std::os::raw::c_int,
8618 src_port: ::std::os::raw::c_int,
8619 ) -> ::std::os::raw::c_int;
8620}
8621extern "C" {
8622 pub fn snd_seq_connect_to(
8623 seq: *mut snd_seq_t,
8624 my_port: ::std::os::raw::c_int,
8625 dest_client: ::std::os::raw::c_int,
8626 dest_port: ::std::os::raw::c_int,
8627 ) -> ::std::os::raw::c_int;
8628}
8629extern "C" {
8630 pub fn snd_seq_disconnect_from(
8631 seq: *mut snd_seq_t,
8632 my_port: ::std::os::raw::c_int,
8633 src_client: ::std::os::raw::c_int,
8634 src_port: ::std::os::raw::c_int,
8635 ) -> ::std::os::raw::c_int;
8636}
8637extern "C" {
8638 pub fn snd_seq_disconnect_to(
8639 seq: *mut snd_seq_t,
8640 my_port: ::std::os::raw::c_int,
8641 dest_client: ::std::os::raw::c_int,
8642 dest_port: ::std::os::raw::c_int,
8643 ) -> ::std::os::raw::c_int;
8644}
8645extern "C" {
8646 pub fn snd_seq_set_client_name(
8647 seq: *mut snd_seq_t,
8648 name: *const ::std::os::raw::c_char,
8649 ) -> ::std::os::raw::c_int;
8650}
8651extern "C" {
8652 pub fn snd_seq_set_client_event_filter(
8653 seq: *mut snd_seq_t,
8654 event_type: ::std::os::raw::c_int,
8655 ) -> ::std::os::raw::c_int;
8656}
8657extern "C" {
8658 pub fn snd_seq_set_client_pool_output(
8659 seq: *mut snd_seq_t,
8660 size: usize,
8661 ) -> ::std::os::raw::c_int;
8662}
8663extern "C" {
8664 pub fn snd_seq_set_client_pool_output_room(
8665 seq: *mut snd_seq_t,
8666 size: usize,
8667 ) -> ::std::os::raw::c_int;
8668}
8669extern "C" {
8670 pub fn snd_seq_set_client_pool_input(seq: *mut snd_seq_t, size: usize)
8671 -> ::std::os::raw::c_int;
8672}
8673extern "C" {
8674 pub fn snd_seq_sync_output_queue(seq: *mut snd_seq_t) -> ::std::os::raw::c_int;
8675}
8676extern "C" {
8677 pub fn snd_seq_parse_address(
8678 seq: *mut snd_seq_t,
8679 addr: *mut snd_seq_addr_t,
8680 str: *const ::std::os::raw::c_char,
8681 ) -> ::std::os::raw::c_int;
8682}
8683extern "C" {
8684 pub fn snd_seq_reset_pool_output(seq: *mut snd_seq_t) -> ::std::os::raw::c_int;
8685}
8686extern "C" {
8687 pub fn snd_seq_reset_pool_input(seq: *mut snd_seq_t) -> ::std::os::raw::c_int;
8688}
8689#[repr(C)]
8690#[derive(Debug, Copy, Clone)]
8691pub struct snd_midi_event {
8692 _unused: [u8; 0],
8693}
8694#[doc = " container for sequencer midi event parsers"]
8695pub type snd_midi_event_t = snd_midi_event;
8696extern "C" {
8697 pub fn snd_midi_event_new(
8698 bufsize: usize,
8699 rdev: *mut *mut snd_midi_event_t,
8700 ) -> ::std::os::raw::c_int;
8701}
8702extern "C" {
8703 pub fn snd_midi_event_resize_buffer(
8704 dev: *mut snd_midi_event_t,
8705 bufsize: usize,
8706 ) -> ::std::os::raw::c_int;
8707}
8708extern "C" {
8709 pub fn snd_midi_event_free(dev: *mut snd_midi_event_t);
8710}
8711extern "C" {
8712 pub fn snd_midi_event_init(dev: *mut snd_midi_event_t);
8713}
8714extern "C" {
8715 pub fn snd_midi_event_reset_encode(dev: *mut snd_midi_event_t);
8716}
8717extern "C" {
8718 pub fn snd_midi_event_reset_decode(dev: *mut snd_midi_event_t);
8719}
8720extern "C" {
8721 pub fn snd_midi_event_no_status(dev: *mut snd_midi_event_t, on: ::std::os::raw::c_int);
8722}
8723extern "C" {
8724 pub fn snd_midi_event_encode(
8725 dev: *mut snd_midi_event_t,
8726 buf: *const ::std::os::raw::c_uchar,
8727 count: ::std::os::raw::c_long,
8728 ev: *mut snd_seq_event_t,
8729 ) -> ::std::os::raw::c_long;
8730}
8731extern "C" {
8732 pub fn snd_midi_event_encode_byte(
8733 dev: *mut snd_midi_event_t,
8734 c: ::std::os::raw::c_int,
8735 ev: *mut snd_seq_event_t,
8736 ) -> ::std::os::raw::c_int;
8737}
8738extern "C" {
8739 pub fn snd_midi_event_decode(
8740 dev: *mut snd_midi_event_t,
8741 buf: *mut ::std::os::raw::c_uchar,
8742 count: ::std::os::raw::c_long,
8743 ev: *const snd_seq_event_t,
8744 ) -> ::std::os::raw::c_long;
8745}