alsactl_sys/
lib.rs

1// This file was generated by gir (https://github.com/gtk-rs/gir)
2// from
3// from gir-files (https://github.com/gtk-rs/gir-files)
4// DO NOT EDIT
5
6#![doc = include_str!("../README.md")]
7#![allow(non_camel_case_types, non_upper_case_globals, non_snake_case)]
8#![allow(
9    clippy::approx_constant,
10    clippy::type_complexity,
11    clippy::unreadable_literal,
12    clippy::upper_case_acronyms
13)]
14#![cfg_attr(docsrs, feature(doc_cfg))]
15
16use glib_sys as glib;
17use gobject_sys as gobject;
18
19#[cfg(unix)]
20#[allow(unused_imports)]
21use libc::{dev_t, gid_t, pid_t, socklen_t, uid_t};
22#[allow(unused_imports)]
23use libc::{intptr_t, off_t, size_t, ssize_t, time_t, uintptr_t, FILE};
24#[allow(unused_imports)]
25use std::ffi::{
26    c_char, c_double, c_float, c_int, c_long, c_short, c_uchar, c_uint, c_ulong, c_ushort, c_void,
27};
28
29#[allow(unused_imports)]
30use glib::{gboolean, gconstpointer, gpointer, GType};
31
32// Enums
33pub type ALSACtlCardError = c_int;
34pub const ALSACTL_CARD_ERROR_FAILED: ALSACtlCardError = 0;
35pub const ALSACTL_CARD_ERROR_DISCONNECTED: ALSACtlCardError = 1;
36pub const ALSACTL_CARD_ERROR_ELEM_NOT_FOUND: ALSACtlCardError = 2;
37pub const ALSACTL_CARD_ERROR_ELEM_NOT_SUPPORTED: ALSACtlCardError = 3;
38pub const ALSACTL_CARD_ERROR_ELEM_OWNED: ALSACtlCardError = 4;
39pub const ALSACTL_CARD_ERROR_ELEM_EXIST: ALSACtlCardError = 5;
40
41pub type ALSACtlElemIfaceType = c_int;
42pub const ALSACTL_ELEM_IFACE_TYPE_CARD: ALSACtlElemIfaceType = 0;
43pub const ALSACTL_ELEM_IFACE_TYPE_HWDEP: ALSACtlElemIfaceType = 1;
44pub const ALSACTL_ELEM_IFACE_TYPE_MIXER: ALSACtlElemIfaceType = 2;
45pub const ALSACTL_ELEM_IFACE_TYPE_PCM: ALSACtlElemIfaceType = 3;
46pub const ALSACTL_ELEM_IFACE_TYPE_RAWMIDI: ALSACtlElemIfaceType = 4;
47pub const ALSACTL_ELEM_IFACE_TYPE_TIMER: ALSACtlElemIfaceType = 5;
48pub const ALSACTL_ELEM_IFACE_TYPE_SEQUENCER: ALSACtlElemIfaceType = 6;
49
50pub type ALSACtlElemType = c_int;
51pub const ALSACTL_ELEM_TYPE_NONE: ALSACtlElemType = 0;
52pub const ALSACTL_ELEM_TYPE_BOOLEAN: ALSACtlElemType = 1;
53pub const ALSACTL_ELEM_TYPE_INTEGER: ALSACtlElemType = 2;
54pub const ALSACTL_ELEM_TYPE_ENUMERATED: ALSACtlElemType = 3;
55pub const ALSACTL_ELEM_TYPE_BYTES: ALSACtlElemType = 4;
56pub const ALSACTL_ELEM_TYPE_IEC60958: ALSACtlElemType = 5;
57pub const ALSACTL_ELEM_TYPE_INTEGER64: ALSACtlElemType = 6;
58
59pub type ALSACtlEventType = c_int;
60pub const ALSACTL_EVENT_TYPE_ELEM: ALSACtlEventType = 0;
61
62// Flags
63pub type ALSACtlElemAccessFlag = c_uint;
64pub const ALSACTL_ELEM_ACCESS_FLAG_READ: ALSACtlElemAccessFlag = 1;
65pub const ALSACTL_ELEM_ACCESS_FLAG_WRITE: ALSACtlElemAccessFlag = 2;
66pub const ALSACTL_ELEM_ACCESS_FLAG_VOLATILE: ALSACtlElemAccessFlag = 4;
67pub const ALSACTL_ELEM_ACCESS_FLAG_TLV_READ: ALSACtlElemAccessFlag = 16;
68pub const ALSACTL_ELEM_ACCESS_FLAG_TLV_WRITE: ALSACtlElemAccessFlag = 32;
69pub const ALSACTL_ELEM_ACCESS_FLAG_TLV_COMMAND: ALSACtlElemAccessFlag = 64;
70pub const ALSACTL_ELEM_ACCESS_FLAG_INACTIVE: ALSACtlElemAccessFlag = 256;
71pub const ALSACTL_ELEM_ACCESS_FLAG_LOCK: ALSACtlElemAccessFlag = 512;
72pub const ALSACTL_ELEM_ACCESS_FLAG_OWNER: ALSACtlElemAccessFlag = 1024;
73pub const ALSACTL_ELEM_ACCESS_FLAG_TLV_CALLBACK: ALSACtlElemAccessFlag = 268435456;
74pub const ALSACTL_ELEM_ACCESS_FLAG_USER: ALSACtlElemAccessFlag = 536870912;
75
76pub type ALSACtlElemEventMask = c_uint;
77pub const ALSACTL_ELEM_EVENT_MASK_VALUE: ALSACtlElemEventMask = 1;
78pub const ALSACTL_ELEM_EVENT_MASK_INFO: ALSACtlElemEventMask = 2;
79pub const ALSACTL_ELEM_EVENT_MASK_ADD: ALSACtlElemEventMask = 4;
80pub const ALSACTL_ELEM_EVENT_MASK_TLV: ALSACtlElemEventMask = 8;
81pub const ALSACTL_ELEM_EVENT_MASK_REMOVE: ALSACtlElemEventMask = 16;
82
83// Records
84#[derive(Copy, Clone)]
85#[repr(C)]
86pub struct ALSACtlCardClass {
87    pub parent_class: gobject::GObjectClass,
88    pub handle_elem_event:
89        Option<unsafe extern "C" fn(*mut ALSACtlCard, *const ALSACtlElemId, ALSACtlElemEventMask)>,
90    pub handle_disconnection: Option<unsafe extern "C" fn(*mut ALSACtlCard)>,
91}
92
93impl ::std::fmt::Debug for ALSACtlCardClass {
94    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
95        f.debug_struct(&format!("ALSACtlCardClass @ {self:p}"))
96            .field("parent_class", &self.parent_class)
97            .field("handle_elem_event", &self.handle_elem_event)
98            .field("handle_disconnection", &self.handle_disconnection)
99            .finish()
100    }
101}
102
103#[derive(Copy, Clone)]
104#[repr(C)]
105pub struct ALSACtlCardInfoClass {
106    pub parent_class: gobject::GObjectClass,
107}
108
109impl ::std::fmt::Debug for ALSACtlCardInfoClass {
110    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
111        f.debug_struct(&format!("ALSACtlCardInfoClass @ {self:p}"))
112            .field("parent_class", &self.parent_class)
113            .finish()
114    }
115}
116
117#[repr(C)]
118#[allow(dead_code)]
119pub struct ALSACtlElemId {
120    _data: [u8; 0],
121    _marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>,
122}
123
124impl ::std::fmt::Debug for ALSACtlElemId {
125    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
126        f.debug_struct(&format!("ALSACtlElemId @ {self:p}"))
127            .finish()
128    }
129}
130
131#[derive(Copy, Clone)]
132#[repr(C)]
133pub struct ALSACtlElemInfoBooleanClass {
134    pub parent_class: gobject::GObjectClass,
135}
136
137impl ::std::fmt::Debug for ALSACtlElemInfoBooleanClass {
138    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
139        f.debug_struct(&format!("ALSACtlElemInfoBooleanClass @ {self:p}"))
140            .field("parent_class", &self.parent_class)
141            .finish()
142    }
143}
144
145#[derive(Copy, Clone)]
146#[repr(C)]
147pub struct ALSACtlElemInfoBytesClass {
148    pub parent_class: gobject::GObjectClass,
149}
150
151impl ::std::fmt::Debug for ALSACtlElemInfoBytesClass {
152    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
153        f.debug_struct(&format!("ALSACtlElemInfoBytesClass @ {self:p}"))
154            .field("parent_class", &self.parent_class)
155            .finish()
156    }
157}
158
159#[derive(Copy, Clone)]
160#[repr(C)]
161pub struct ALSACtlElemInfoCommonInterface {
162    pub parent_iface: gobject::GTypeInterface,
163}
164
165impl ::std::fmt::Debug for ALSACtlElemInfoCommonInterface {
166    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
167        f.debug_struct(&format!("ALSACtlElemInfoCommonInterface @ {self:p}"))
168            .field("parent_iface", &self.parent_iface)
169            .finish()
170    }
171}
172
173#[derive(Copy, Clone)]
174#[repr(C)]
175pub struct ALSACtlElemInfoEnumeratedClass {
176    pub parent_class: gobject::GObjectClass,
177}
178
179impl ::std::fmt::Debug for ALSACtlElemInfoEnumeratedClass {
180    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
181        f.debug_struct(&format!("ALSACtlElemInfoEnumeratedClass @ {self:p}"))
182            .field("parent_class", &self.parent_class)
183            .finish()
184    }
185}
186
187#[derive(Copy, Clone)]
188#[repr(C)]
189pub struct ALSACtlElemInfoIec60958Class {
190    pub parent_class: gobject::GObjectClass,
191}
192
193impl ::std::fmt::Debug for ALSACtlElemInfoIec60958Class {
194    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
195        f.debug_struct(&format!("ALSACtlElemInfoIec60958Class @ {self:p}"))
196            .field("parent_class", &self.parent_class)
197            .finish()
198    }
199}
200
201#[derive(Copy, Clone)]
202#[repr(C)]
203pub struct ALSACtlElemInfoInteger64Class {
204    pub parent_class: gobject::GObjectClass,
205}
206
207impl ::std::fmt::Debug for ALSACtlElemInfoInteger64Class {
208    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
209        f.debug_struct(&format!("ALSACtlElemInfoInteger64Class @ {self:p}"))
210            .field("parent_class", &self.parent_class)
211            .finish()
212    }
213}
214
215#[derive(Copy, Clone)]
216#[repr(C)]
217pub struct ALSACtlElemInfoIntegerClass {
218    pub parent_class: gobject::GObjectClass,
219}
220
221impl ::std::fmt::Debug for ALSACtlElemInfoIntegerClass {
222    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
223        f.debug_struct(&format!("ALSACtlElemInfoIntegerClass @ {self:p}"))
224            .field("parent_class", &self.parent_class)
225            .finish()
226    }
227}
228
229#[derive(Copy, Clone)]
230#[repr(C)]
231pub struct ALSACtlElemInfoSingleArrayInterface {
232    pub parent_iface: gobject::GTypeInterface,
233}
234
235impl ::std::fmt::Debug for ALSACtlElemInfoSingleArrayInterface {
236    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
237        f.debug_struct(&format!("ALSACtlElemInfoSingleArrayInterface @ {self:p}"))
238            .field("parent_iface", &self.parent_iface)
239            .finish()
240    }
241}
242
243#[derive(Copy, Clone)]
244#[repr(C)]
245pub struct ALSACtlElemValueClass {
246    pub parent_class: gobject::GObjectClass,
247}
248
249impl ::std::fmt::Debug for ALSACtlElemValueClass {
250    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
251        f.debug_struct(&format!("ALSACtlElemValueClass @ {self:p}"))
252            .field("parent_class", &self.parent_class)
253            .finish()
254    }
255}
256
257// Classes
258#[derive(Copy, Clone)]
259#[repr(C)]
260pub struct ALSACtlCard {
261    pub parent_instance: gobject::GObject,
262}
263
264impl ::std::fmt::Debug for ALSACtlCard {
265    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
266        f.debug_struct(&format!("ALSACtlCard @ {self:p}"))
267            .field("parent_instance", &self.parent_instance)
268            .finish()
269    }
270}
271
272#[derive(Copy, Clone)]
273#[repr(C)]
274pub struct ALSACtlCardInfo {
275    pub parent_instance: gobject::GObject,
276}
277
278impl ::std::fmt::Debug for ALSACtlCardInfo {
279    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
280        f.debug_struct(&format!("ALSACtlCardInfo @ {self:p}"))
281            .field("parent_instance", &self.parent_instance)
282            .finish()
283    }
284}
285
286#[derive(Copy, Clone)]
287#[repr(C)]
288pub struct ALSACtlElemInfoBoolean {
289    pub parent_instance: gobject::GObject,
290}
291
292impl ::std::fmt::Debug for ALSACtlElemInfoBoolean {
293    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
294        f.debug_struct(&format!("ALSACtlElemInfoBoolean @ {self:p}"))
295            .field("parent_instance", &self.parent_instance)
296            .finish()
297    }
298}
299
300#[derive(Copy, Clone)]
301#[repr(C)]
302pub struct ALSACtlElemInfoBytes {
303    pub parent_instance: gobject::GObject,
304}
305
306impl ::std::fmt::Debug for ALSACtlElemInfoBytes {
307    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
308        f.debug_struct(&format!("ALSACtlElemInfoBytes @ {self:p}"))
309            .field("parent_instance", &self.parent_instance)
310            .finish()
311    }
312}
313
314#[derive(Copy, Clone)]
315#[repr(C)]
316pub struct ALSACtlElemInfoEnumerated {
317    pub parent_instance: gobject::GObject,
318}
319
320impl ::std::fmt::Debug for ALSACtlElemInfoEnumerated {
321    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
322        f.debug_struct(&format!("ALSACtlElemInfoEnumerated @ {self:p}"))
323            .field("parent_instance", &self.parent_instance)
324            .finish()
325    }
326}
327
328#[derive(Copy, Clone)]
329#[repr(C)]
330pub struct ALSACtlElemInfoIec60958 {
331    pub parent_instance: gobject::GObject,
332}
333
334impl ::std::fmt::Debug for ALSACtlElemInfoIec60958 {
335    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
336        f.debug_struct(&format!("ALSACtlElemInfoIec60958 @ {self:p}"))
337            .field("parent_instance", &self.parent_instance)
338            .finish()
339    }
340}
341
342#[derive(Copy, Clone)]
343#[repr(C)]
344pub struct ALSACtlElemInfoInteger {
345    pub parent_instance: gobject::GObject,
346}
347
348impl ::std::fmt::Debug for ALSACtlElemInfoInteger {
349    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
350        f.debug_struct(&format!("ALSACtlElemInfoInteger @ {self:p}"))
351            .field("parent_instance", &self.parent_instance)
352            .finish()
353    }
354}
355
356#[derive(Copy, Clone)]
357#[repr(C)]
358pub struct ALSACtlElemInfoInteger64 {
359    pub parent_instance: gobject::GObject,
360}
361
362impl ::std::fmt::Debug for ALSACtlElemInfoInteger64 {
363    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
364        f.debug_struct(&format!("ALSACtlElemInfoInteger64 @ {self:p}"))
365            .field("parent_instance", &self.parent_instance)
366            .finish()
367    }
368}
369
370#[derive(Copy, Clone)]
371#[repr(C)]
372pub struct ALSACtlElemValue {
373    pub parent_instance: gobject::GObject,
374}
375
376impl ::std::fmt::Debug for ALSACtlElemValue {
377    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
378        f.debug_struct(&format!("ALSACtlElemValue @ {self:p}"))
379            .field("parent_instance", &self.parent_instance)
380            .finish()
381    }
382}
383
384// Interfaces
385#[repr(C)]
386#[allow(dead_code)]
387pub struct ALSACtlElemInfoCommon {
388    _data: [u8; 0],
389    _marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>,
390}
391
392impl ::std::fmt::Debug for ALSACtlElemInfoCommon {
393    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
394        write!(f, "ALSACtlElemInfoCommon @ {self:p}")
395    }
396}
397
398#[repr(C)]
399#[allow(dead_code)]
400pub struct ALSACtlElemInfoSingleArray {
401    _data: [u8; 0],
402    _marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>,
403}
404
405impl ::std::fmt::Debug for ALSACtlElemInfoSingleArray {
406    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
407        write!(f, "ALSACtlElemInfoSingleArray @ {self:p}")
408    }
409}
410
411extern "C" {
412
413    //=========================================================================
414    // ALSACtlCardError
415    //=========================================================================
416    pub fn alsactl_card_error_get_type() -> GType;
417    pub fn alsactl_card_error_quark() -> glib::GQuark;
418
419    //=========================================================================
420    // ALSACtlElemIfaceType
421    //=========================================================================
422    pub fn alsactl_elem_iface_type_get_type() -> GType;
423
424    //=========================================================================
425    // ALSACtlElemType
426    //=========================================================================
427    pub fn alsactl_elem_type_get_type() -> GType;
428
429    //=========================================================================
430    // ALSACtlEventType
431    //=========================================================================
432    pub fn alsactl_event_type_get_type() -> GType;
433
434    //=========================================================================
435    // ALSACtlElemAccessFlag
436    //=========================================================================
437    pub fn alsactl_elem_access_flag_get_type() -> GType;
438
439    //=========================================================================
440    // ALSACtlElemEventMask
441    //=========================================================================
442    pub fn alsactl_elem_event_mask_get_type() -> GType;
443
444    //=========================================================================
445    // ALSACtlElemId
446    //=========================================================================
447    pub fn alsactl_elem_id_get_type() -> GType;
448    pub fn alsactl_elem_id_new_by_name(
449        iface: ALSACtlElemIfaceType,
450        device_id: c_uint,
451        subdevice_id: c_uint,
452        name: *const c_char,
453        index: c_uint,
454    ) -> *mut ALSACtlElemId;
455    pub fn alsactl_elem_id_new_by_numid(numid: c_uint) -> *mut ALSACtlElemId;
456    pub fn alsactl_elem_id_equal(
457        self_: *const ALSACtlElemId,
458        target: *const ALSACtlElemId,
459    ) -> gboolean;
460    pub fn alsactl_elem_id_get_device_id(self_: *const ALSACtlElemId, device_id: *mut c_uint);
461    pub fn alsactl_elem_id_get_iface(self_: *const ALSACtlElemId, iface: *mut ALSACtlElemIfaceType);
462    pub fn alsactl_elem_id_get_index(self_: *const ALSACtlElemId, index: *mut c_uint);
463    pub fn alsactl_elem_id_get_name(self_: *const ALSACtlElemId, name: *mut *const c_char);
464    pub fn alsactl_elem_id_get_numid(self_: *const ALSACtlElemId, numid: *mut c_uint);
465    pub fn alsactl_elem_id_get_subdevice_id(self_: *const ALSACtlElemId, subdevice_id: *mut c_uint);
466
467    //=========================================================================
468    // ALSACtlCard
469    //=========================================================================
470    pub fn alsactl_card_get_type() -> GType;
471    pub fn alsactl_card_new() -> *mut ALSACtlCard;
472    pub fn alsactl_card_add_elems(
473        self_: *mut ALSACtlCard,
474        elem_id: *const ALSACtlElemId,
475        elem_count: c_uint,
476        elem_info: *mut ALSACtlElemInfoCommon,
477        entries: *mut *mut glib::GList,
478        error: *mut *mut glib::GError,
479    ) -> gboolean;
480    pub fn alsactl_card_command_elem_tlv(
481        self_: *mut ALSACtlCard,
482        elem_id: *const ALSACtlElemId,
483        container: *const *mut u32,
484        container_count: *mut size_t,
485        error: *mut *mut glib::GError,
486    ) -> gboolean;
487    pub fn alsactl_card_create_source(
488        self_: *mut ALSACtlCard,
489        gsrc: *mut *mut glib::GSource,
490        error: *mut *mut glib::GError,
491    ) -> gboolean;
492    pub fn alsactl_card_get_elem_id_list(
493        self_: *mut ALSACtlCard,
494        entries: *mut *mut glib::GList,
495        error: *mut *mut glib::GError,
496    ) -> gboolean;
497    pub fn alsactl_card_get_elem_info(
498        self_: *mut ALSACtlCard,
499        elem_id: *const ALSACtlElemId,
500        elem_info: *mut *mut ALSACtlElemInfoCommon,
501        error: *mut *mut glib::GError,
502    ) -> gboolean;
503    pub fn alsactl_card_get_info(
504        self_: *mut ALSACtlCard,
505        card_info: *mut *mut ALSACtlCardInfo,
506        error: *mut *mut glib::GError,
507    ) -> gboolean;
508    pub fn alsactl_card_get_protocol_version(
509        self_: *mut ALSACtlCard,
510        proto_ver_triplet: *mut *const [u16; 3],
511        error: *mut *mut glib::GError,
512    ) -> gboolean;
513    pub fn alsactl_card_lock_elem(
514        self_: *mut ALSACtlCard,
515        elem_id: *const ALSACtlElemId,
516        lock: gboolean,
517        error: *mut *mut glib::GError,
518    ) -> gboolean;
519    pub fn alsactl_card_open(
520        self_: *mut ALSACtlCard,
521        card_id: c_uint,
522        open_flag: c_int,
523        error: *mut *mut glib::GError,
524    ) -> gboolean;
525    pub fn alsactl_card_read_elem_tlv(
526        self_: *mut ALSACtlCard,
527        elem_id: *const ALSACtlElemId,
528        container: *const *mut u32,
529        container_count: *mut size_t,
530        error: *mut *mut glib::GError,
531    ) -> gboolean;
532    pub fn alsactl_card_read_elem_value(
533        self_: *mut ALSACtlCard,
534        elem_id: *const ALSACtlElemId,
535        elem_value: *const *mut ALSACtlElemValue,
536        error: *mut *mut glib::GError,
537    ) -> gboolean;
538    pub fn alsactl_card_remove_elems(
539        self_: *mut ALSACtlCard,
540        elem_id: *const ALSACtlElemId,
541        error: *mut *mut glib::GError,
542    ) -> gboolean;
543    pub fn alsactl_card_replace_elems(
544        self_: *mut ALSACtlCard,
545        elem_id: *const ALSACtlElemId,
546        elem_count: c_uint,
547        elem_info: *mut ALSACtlElemInfoCommon,
548        entries: *mut *mut glib::GList,
549        error: *mut *mut glib::GError,
550    ) -> gboolean;
551    pub fn alsactl_card_write_elem_tlv(
552        self_: *mut ALSACtlCard,
553        elem_id: *const ALSACtlElemId,
554        container: *const u32,
555        container_count: size_t,
556        error: *mut *mut glib::GError,
557    ) -> gboolean;
558    pub fn alsactl_card_write_elem_value(
559        self_: *mut ALSACtlCard,
560        elem_id: *const ALSACtlElemId,
561        elem_value: *const ALSACtlElemValue,
562        error: *mut *mut glib::GError,
563    ) -> gboolean;
564
565    //=========================================================================
566    // ALSACtlCardInfo
567    //=========================================================================
568    pub fn alsactl_card_info_get_type() -> GType;
569
570    //=========================================================================
571    // ALSACtlElemInfoBoolean
572    //=========================================================================
573    pub fn alsactl_elem_info_boolean_get_type() -> GType;
574    pub fn alsactl_elem_info_boolean_new() -> *mut ALSACtlElemInfoBoolean;
575
576    //=========================================================================
577    // ALSACtlElemInfoBytes
578    //=========================================================================
579    pub fn alsactl_elem_info_bytes_get_type() -> GType;
580    pub fn alsactl_elem_info_bytes_new() -> *mut ALSACtlElemInfoBytes;
581
582    //=========================================================================
583    // ALSACtlElemInfoEnumerated
584    //=========================================================================
585    pub fn alsactl_elem_info_enumerated_get_type() -> GType;
586    pub fn alsactl_elem_info_enumerated_new() -> *mut ALSACtlElemInfoEnumerated;
587
588    //=========================================================================
589    // ALSACtlElemInfoIec60958
590    //=========================================================================
591    pub fn alsactl_elem_info_iec60958_get_type() -> GType;
592    pub fn alsactl_elem_info_iec60958_new() -> *mut ALSACtlElemInfoIec60958;
593
594    //=========================================================================
595    // ALSACtlElemInfoInteger
596    //=========================================================================
597    pub fn alsactl_elem_info_integer_get_type() -> GType;
598    pub fn alsactl_elem_info_integer_new() -> *mut ALSACtlElemInfoInteger;
599
600    //=========================================================================
601    // ALSACtlElemInfoInteger64
602    //=========================================================================
603    pub fn alsactl_elem_info_integer64_get_type() -> GType;
604    pub fn alsactl_elem_info_integer64_new() -> *mut ALSACtlElemInfoInteger64;
605
606    //=========================================================================
607    // ALSACtlElemValue
608    //=========================================================================
609    pub fn alsactl_elem_value_get_type() -> GType;
610    pub fn alsactl_elem_value_new() -> *mut ALSACtlElemValue;
611    pub fn alsactl_elem_value_equal(
612        self_: *const ALSACtlElemValue,
613        target: *const ALSACtlElemValue,
614    ) -> gboolean;
615    pub fn alsactl_elem_value_get_bool(
616        self_: *mut ALSACtlElemValue,
617        values: *mut *const [gboolean; 128],
618    );
619    pub fn alsactl_elem_value_get_bytes(
620        self_: *mut ALSACtlElemValue,
621        values: *mut *const [u8; 512],
622    );
623    pub fn alsactl_elem_value_get_enum(
624        self_: *mut ALSACtlElemValue,
625        values: *mut *const [u32; 128],
626    );
627    pub fn alsactl_elem_value_get_iec60958_channel_status(
628        self_: *mut ALSACtlElemValue,
629        status: *mut *const [u8; 24],
630    );
631    pub fn alsactl_elem_value_get_iec60958_user_data(
632        self_: *mut ALSACtlElemValue,
633        data: *mut *const [u8; 147],
634    );
635    pub fn alsactl_elem_value_get_int(self_: *mut ALSACtlElemValue, values: *mut *const [i32; 128]);
636    pub fn alsactl_elem_value_get_int64(
637        self_: *mut ALSACtlElemValue,
638        values: *mut *const [i64; 64],
639    );
640    pub fn alsactl_elem_value_set_bool(
641        self_: *mut ALSACtlElemValue,
642        values: *const gboolean,
643        value_count: size_t,
644    );
645    pub fn alsactl_elem_value_set_bytes(
646        self_: *mut ALSACtlElemValue,
647        values: *const u8,
648        value_count: size_t,
649    );
650    pub fn alsactl_elem_value_set_enum(
651        self_: *mut ALSACtlElemValue,
652        values: *const u32,
653        value_count: size_t,
654    );
655    pub fn alsactl_elem_value_set_iec60958_channel_status(
656        self_: *mut ALSACtlElemValue,
657        status: *const u8,
658        length: size_t,
659    );
660    pub fn alsactl_elem_value_set_iec60958_user_data(
661        self_: *mut ALSACtlElemValue,
662        data: *const u8,
663        length: size_t,
664    );
665    pub fn alsactl_elem_value_set_int(
666        self_: *mut ALSACtlElemValue,
667        values: *const i32,
668        value_count: size_t,
669    );
670    pub fn alsactl_elem_value_set_int64(
671        self_: *mut ALSACtlElemValue,
672        values: *const i64,
673        value_count: size_t,
674    );
675
676    //=========================================================================
677    // ALSACtlElemInfoCommon
678    //=========================================================================
679    pub fn alsactl_elem_info_common_get_type() -> GType;
680
681    //=========================================================================
682    // ALSACtlElemInfoSingleArray
683    //=========================================================================
684    pub fn alsactl_elem_info_single_array_get_type() -> GType;
685
686    //=========================================================================
687    // Other functions
688    //=========================================================================
689    pub fn alsactl_get_card_id_list(
690        entries: *mut *mut c_uint,
691        entry_count: *mut size_t,
692        error: *mut *mut glib::GError,
693    ) -> gboolean;
694    pub fn alsactl_get_card_sysname(
695        card_id: c_uint,
696        sysname: *mut *mut c_char,
697        error: *mut *mut glib::GError,
698    ) -> gboolean;
699    pub fn alsactl_get_control_devnode(
700        card_id: c_uint,
701        devnode: *mut *mut c_char,
702        error: *mut *mut glib::GError,
703    ) -> gboolean;
704    pub fn alsactl_get_control_sysname(
705        card_id: c_uint,
706        sysname: *mut *mut c_char,
707        error: *mut *mut glib::GError,
708    ) -> gboolean;
709    pub fn alsactl_sigs_marshal_VOID__BOXED_FLAGS(
710        closure: *mut gobject::GClosure,
711        return_value: *mut gobject::GValue,
712        n_param_values: c_uint,
713        param_values: *const gobject::GValue,
714        invocation_hint: gpointer,
715        marshal_data: gpointer,
716    );
717
718}