1#![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
32pub type ALSAHwdepDeviceCommonError = c_int;
34pub const ALSAHWDEP_DEVICE_COMMON_ERROR_FAILED: ALSAHwdepDeviceCommonError = 1;
35pub const ALSAHWDEP_DEVICE_COMMON_ERROR_IS_OPENED: ALSAHwdepDeviceCommonError = 2;
36pub const ALSAHWDEP_DEVICE_COMMON_ERROR_IS_NOT_OPENED: ALSAHwdepDeviceCommonError = 3;
37pub const ALSAHWDEP_DEVICE_COMMON_ERROR_IS_USED: ALSAHwdepDeviceCommonError = 4;
38pub const ALSAHWDEP_DEVICE_COMMON_ERROR_IS_NOT_SUPPORTED: ALSAHwdepDeviceCommonError = 5;
39pub const ALSAHWDEP_DEVICE_COMMON_ERROR_IS_DISCONNECTED: ALSAHwdepDeviceCommonError = 6;
40
41pub type ALSAHwdepIfaceType = c_int;
42pub const ALSAHWDEP_IFACE_TYPE_OPL2: ALSAHwdepIfaceType = 0;
43pub const ALSAHWDEP_IFACE_TYPE_OPL3: ALSAHwdepIfaceType = 1;
44pub const ALSAHWDEP_IFACE_TYPE_OPL4: ALSAHwdepIfaceType = 2;
45pub const ALSAHWDEP_IFACE_TYPE_SB16CSP: ALSAHwdepIfaceType = 3;
46pub const ALSAHWDEP_IFACE_TYPE_EMU10K1: ALSAHwdepIfaceType = 4;
47pub const ALSAHWDEP_IFACE_TYPE_YSS225: ALSAHwdepIfaceType = 5;
48pub const ALSAHWDEP_IFACE_TYPE_ICS2115: ALSAHwdepIfaceType = 6;
49pub const ALSAHWDEP_IFACE_TYPE_SSCAPE: ALSAHwdepIfaceType = 7;
50pub const ALSAHWDEP_IFACE_TYPE_VX: ALSAHwdepIfaceType = 8;
51pub const ALSAHWDEP_IFACE_TYPE_MIXART: ALSAHwdepIfaceType = 9;
52pub const ALSAHWDEP_IFACE_TYPE_USX2Y: ALSAHwdepIfaceType = 10;
53pub const ALSAHWDEP_IFACE_TYPE_EMUX_WAVETABLE: ALSAHwdepIfaceType = 11;
54pub const ALSAHWDEP_IFACE_TYPE_BLUETOOTH: ALSAHwdepIfaceType = 12;
55pub const ALSAHWDEP_IFACE_TYPE_USX2Y_PCM: ALSAHwdepIfaceType = 13;
56pub const ALSAHWDEP_IFACE_TYPE_PCXHR: ALSAHwdepIfaceType = 14;
57pub const ALSAHWDEP_IFACE_TYPE_SB_RC: ALSAHwdepIfaceType = 15;
58pub const ALSAHWDEP_IFACE_TYPE_HDA: ALSAHwdepIfaceType = 16;
59pub const ALSAHWDEP_IFACE_TYPE_USB_STREAM: ALSAHwdepIfaceType = 17;
60pub const ALSAHWDEP_IFACE_TYPE_FW_DICE: ALSAHwdepIfaceType = 18;
61pub const ALSAHWDEP_IFACE_TYPE_FW_FIREWORKS: ALSAHwdepIfaceType = 19;
62pub const ALSAHWDEP_IFACE_TYPE_FW_BEBOB: ALSAHwdepIfaceType = 20;
63pub const ALSAHWDEP_IFACE_TYPE_FW_OXFW: ALSAHwdepIfaceType = 21;
64pub const ALSAHWDEP_IFACE_TYPE_FW_DIGI00X: ALSAHwdepIfaceType = 22;
65pub const ALSAHWDEP_IFACE_TYPE_FW_TASCAM: ALSAHwdepIfaceType = 23;
66pub const ALSAHWDEP_IFACE_TYPE_LINE6: ALSAHwdepIfaceType = 24;
67pub const ALSAHWDEP_IFACE_TYPE_FW_MOTU: ALSAHwdepIfaceType = 25;
68pub const ALSAHWDEP_IFACE_TYPE_FW_FIREFACE: ALSAHwdepIfaceType = 26;
69
70#[derive(Copy, Clone)]
72#[repr(C)]
73pub struct ALSAHwdepDeviceCommonInterface {
74 pub parent_iface: gobject::GTypeInterface,
75 pub open: Option<
76 unsafe extern "C" fn(
77 *mut ALSAHwdepDeviceCommon,
78 *const c_char,
79 c_int,
80 *mut *mut glib::GError,
81 ) -> gboolean,
82 >,
83 pub get_protocol_version: Option<
84 unsafe extern "C" fn(
85 *mut ALSAHwdepDeviceCommon,
86 *const *mut [u16; 3],
87 *mut *mut glib::GError,
88 ) -> gboolean,
89 >,
90 pub get_device_info: Option<
91 unsafe extern "C" fn(
92 *mut ALSAHwdepDeviceCommon,
93 *mut *mut ALSAHwdepDeviceInfo,
94 *mut *mut glib::GError,
95 ) -> gboolean,
96 >,
97 pub create_source: Option<
98 unsafe extern "C" fn(
99 *mut ALSAHwdepDeviceCommon,
100 *mut *mut glib::GSource,
101 *mut *mut glib::GError,
102 ) -> gboolean,
103 >,
104 pub handle_disconnection: Option<unsafe extern "C" fn(*mut ALSAHwdepDeviceCommon)>,
105}
106
107impl ::std::fmt::Debug for ALSAHwdepDeviceCommonInterface {
108 fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
109 f.debug_struct(&format!("ALSAHwdepDeviceCommonInterface @ {self:p}"))
110 .field("parent_iface", &self.parent_iface)
111 .field("open", &self.open)
112 .field("get_protocol_version", &self.get_protocol_version)
113 .field("get_device_info", &self.get_device_info)
114 .field("create_source", &self.create_source)
115 .field("handle_disconnection", &self.handle_disconnection)
116 .finish()
117 }
118}
119
120#[derive(Copy, Clone)]
121#[repr(C)]
122pub struct ALSAHwdepDeviceInfoClass {
123 pub parent_class: gobject::GObjectClass,
124}
125
126impl ::std::fmt::Debug for ALSAHwdepDeviceInfoClass {
127 fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
128 f.debug_struct(&format!("ALSAHwdepDeviceInfoClass @ {self:p}"))
129 .field("parent_class", &self.parent_class)
130 .finish()
131 }
132}
133
134#[derive(Copy, Clone)]
136#[repr(C)]
137pub struct ALSAHwdepDeviceInfo {
138 pub parent_instance: gobject::GObject,
139}
140
141impl ::std::fmt::Debug for ALSAHwdepDeviceInfo {
142 fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
143 f.debug_struct(&format!("ALSAHwdepDeviceInfo @ {self:p}"))
144 .field("parent_instance", &self.parent_instance)
145 .finish()
146 }
147}
148
149#[repr(C)]
151#[allow(dead_code)]
152pub struct ALSAHwdepDeviceCommon {
153 _data: [u8; 0],
154 _marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>,
155}
156
157impl ::std::fmt::Debug for ALSAHwdepDeviceCommon {
158 fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
159 write!(f, "ALSAHwdepDeviceCommon @ {self:p}")
160 }
161}
162
163extern "C" {
164
165 pub fn alsahwdep_device_common_error_get_type() -> GType;
169 pub fn alsahwdep_device_common_error_quark() -> glib::GQuark;
170 pub fn alsahwdep_device_common_error_to_label(
171 code: ALSAHwdepDeviceCommonError,
172 label: *mut *const c_char,
173 );
174
175 pub fn alsahwdep_iface_type_get_type() -> GType;
179
180 pub fn alsahwdep_device_info_get_type() -> GType;
184
185 pub fn alsahwdep_device_common_get_type() -> GType;
189 pub fn alsahwdep_device_common_create_source(
190 self_: *mut ALSAHwdepDeviceCommon,
191 source: *mut *mut glib::GSource,
192 error: *mut *mut glib::GError,
193 ) -> gboolean;
194 pub fn alsahwdep_device_common_get_device_info(
195 self_: *mut ALSAHwdepDeviceCommon,
196 device_info: *mut *mut ALSAHwdepDeviceInfo,
197 error: *mut *mut glib::GError,
198 ) -> gboolean;
199 pub fn alsahwdep_device_common_get_protocol_version(
200 self_: *mut ALSAHwdepDeviceCommon,
201 proto_ver_triplet: *const *mut [u16; 3],
202 error: *mut *mut glib::GError,
203 ) -> gboolean;
204 pub fn alsahwdep_device_common_open(
205 self_: *mut ALSAHwdepDeviceCommon,
206 card_id: c_uint,
207 device_id: c_uint,
208 open_flag: c_int,
209 error: *mut *mut glib::GError,
210 ) -> gboolean;
211
212 pub fn alsahwdep_get_device_id_list(
216 card_id: c_uint,
217 entries: *mut *mut c_uint,
218 entry_count: *mut size_t,
219 error: *mut *mut glib::GError,
220 ) -> gboolean;
221 pub fn alsahwdep_get_device_info(
222 card_id: c_uint,
223 device_id: c_uint,
224 device_info: *mut *mut ALSAHwdepDeviceInfo,
225 error: *mut *mut glib::GError,
226 ) -> gboolean;
227 pub fn alsahwdep_get_hwdep_devnode(
228 card_id: c_uint,
229 device_id: c_uint,
230 devnode: *mut *mut c_char,
231 error: *mut *mut glib::GError,
232 ) -> gboolean;
233 pub fn alsahwdep_get_hwdep_sysname(
234 card_id: c_uint,
235 device_id: c_uint,
236 sysname: *mut *mut c_char,
237 error: *mut *mut glib::GError,
238 ) -> gboolean;
239
240}