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