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 ALSARawmidiStreamDirection = c_int;
34pub const ALSARAWMIDI_STREAM_DIRECTION_OUTPUT: ALSARawmidiStreamDirection = 0;
35pub const ALSARAWMIDI_STREAM_DIRECTION_INPUT: ALSARawmidiStreamDirection = 1;
36
37pub type ALSARawmidiStreamPairError = c_int;
38pub const ALSARAWMIDI_STREAM_PAIR_ERROR_FAILED: ALSARawmidiStreamPairError = 0;
39pub const ALSARAWMIDI_STREAM_PAIR_ERROR_DISCONNECTED: ALSARawmidiStreamPairError = 1;
40pub const ALSARAWMIDI_STREAM_PAIR_ERROR_UNREADABLE: ALSARawmidiStreamPairError = 2;
41
42pub type ALSARawmidiStreamPairInfoFlag = c_uint;
44pub const ALSARAWMIDI_STREAM_PAIR_INFO_FLAG_OUTPUT: ALSARawmidiStreamPairInfoFlag = 1;
45pub const ALSARAWMIDI_STREAM_PAIR_INFO_FLAG_INPUT: ALSARawmidiStreamPairInfoFlag = 2;
46pub const ALSARAWMIDI_STREAM_PAIR_INFO_FLAG_DUPLEX: ALSARawmidiStreamPairInfoFlag = 4;
47
48#[derive(Copy, Clone)]
50#[repr(C)]
51pub struct ALSARawmidiStreamPairClass {
52 pub parent_class: gobject::GObjectClass,
53 pub handle_messages: Option<unsafe extern "C" fn(*mut ALSARawmidiStreamPair)>,
54 pub handle_disconnection: Option<unsafe extern "C" fn(*mut ALSARawmidiStreamPair)>,
55}
56
57impl ::std::fmt::Debug for ALSARawmidiStreamPairClass {
58 fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
59 f.debug_struct(&format!("ALSARawmidiStreamPairClass @ {self:p}"))
60 .field("parent_class", &self.parent_class)
61 .field("handle_messages", &self.handle_messages)
62 .field("handle_disconnection", &self.handle_disconnection)
63 .finish()
64 }
65}
66
67#[derive(Copy, Clone)]
68#[repr(C)]
69pub struct ALSARawmidiSubstreamInfoClass {
70 pub parent_class: gobject::GObjectClass,
71}
72
73impl ::std::fmt::Debug for ALSARawmidiSubstreamInfoClass {
74 fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
75 f.debug_struct(&format!("ALSARawmidiSubstreamInfoClass @ {self:p}"))
76 .field("parent_class", &self.parent_class)
77 .finish()
78 }
79}
80
81#[derive(Copy, Clone)]
82#[repr(C)]
83pub struct ALSARawmidiSubstreamParamsClass {
84 pub parent_class: gobject::GObjectClass,
85}
86
87impl ::std::fmt::Debug for ALSARawmidiSubstreamParamsClass {
88 fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
89 f.debug_struct(&format!("ALSARawmidiSubstreamParamsClass @ {self:p}"))
90 .field("parent_class", &self.parent_class)
91 .finish()
92 }
93}
94
95#[derive(Copy, Clone)]
96#[repr(C)]
97pub struct ALSARawmidiSubstreamStatusClass {
98 pub parent_class: gobject::GObjectClass,
99}
100
101impl ::std::fmt::Debug for ALSARawmidiSubstreamStatusClass {
102 fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
103 f.debug_struct(&format!("ALSARawmidiSubstreamStatusClass @ {self:p}"))
104 .field("parent_class", &self.parent_class)
105 .finish()
106 }
107}
108
109#[derive(Copy, Clone)]
111#[repr(C)]
112pub struct ALSARawmidiStreamPair {
113 pub parent_instance: gobject::GObject,
114}
115
116impl ::std::fmt::Debug for ALSARawmidiStreamPair {
117 fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
118 f.debug_struct(&format!("ALSARawmidiStreamPair @ {self:p}"))
119 .field("parent_instance", &self.parent_instance)
120 .finish()
121 }
122}
123
124#[derive(Copy, Clone)]
125#[repr(C)]
126pub struct ALSARawmidiSubstreamInfo {
127 pub parent_instance: gobject::GObject,
128}
129
130impl ::std::fmt::Debug for ALSARawmidiSubstreamInfo {
131 fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
132 f.debug_struct(&format!("ALSARawmidiSubstreamInfo @ {self:p}"))
133 .field("parent_instance", &self.parent_instance)
134 .finish()
135 }
136}
137
138#[derive(Copy, Clone)]
139#[repr(C)]
140pub struct ALSARawmidiSubstreamParams {
141 pub parent_instance: gobject::GObject,
142}
143
144impl ::std::fmt::Debug for ALSARawmidiSubstreamParams {
145 fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
146 f.debug_struct(&format!("ALSARawmidiSubstreamParams @ {self:p}"))
147 .field("parent_instance", &self.parent_instance)
148 .finish()
149 }
150}
151
152#[derive(Copy, Clone)]
153#[repr(C)]
154pub struct ALSARawmidiSubstreamStatus {
155 pub parent_instance: gobject::GObject,
156}
157
158impl ::std::fmt::Debug for ALSARawmidiSubstreamStatus {
159 fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
160 f.debug_struct(&format!("ALSARawmidiSubstreamStatus @ {self:p}"))
161 .field("parent_instance", &self.parent_instance)
162 .finish()
163 }
164}
165
166extern "C" {
167
168 pub fn alsarawmidi_stream_direction_get_type() -> GType;
172
173 pub fn alsarawmidi_stream_pair_error_get_type() -> GType;
177 pub fn alsarawmidi_stream_pair_error_quark() -> glib::GQuark;
178
179 pub fn alsarawmidi_stream_pair_info_flag_get_type() -> GType;
183
184 pub fn alsarawmidi_stream_pair_get_type() -> GType;
188 pub fn alsarawmidi_stream_pair_new() -> *mut ALSARawmidiStreamPair;
189 pub fn alsarawmidi_stream_pair_create_source(
190 self_: *mut ALSARawmidiStreamPair,
191 gsrc: *mut *mut glib::GSource,
192 error: *mut *mut glib::GError,
193 ) -> gboolean;
194 pub fn alsarawmidi_stream_pair_drain_substream(
195 self_: *mut ALSARawmidiStreamPair,
196 direction: ALSARawmidiStreamDirection,
197 error: *mut *mut glib::GError,
198 ) -> gboolean;
199 pub fn alsarawmidi_stream_pair_drop_substream(
200 self_: *mut ALSARawmidiStreamPair,
201 direction: ALSARawmidiStreamDirection,
202 error: *mut *mut glib::GError,
203 ) -> gboolean;
204 pub fn alsarawmidi_stream_pair_get_protocol_version(
205 self_: *mut ALSARawmidiStreamPair,
206 proto_ver_triplet: *mut *const [u16; 3],
207 error: *mut *mut glib::GError,
208 ) -> gboolean;
209 pub fn alsarawmidi_stream_pair_get_substream_info(
210 self_: *mut ALSARawmidiStreamPair,
211 direction: ALSARawmidiStreamDirection,
212 substream_info: *mut *mut ALSARawmidiSubstreamInfo,
213 error: *mut *mut glib::GError,
214 ) -> gboolean;
215 pub fn alsarawmidi_stream_pair_get_substream_status(
216 self_: *mut ALSARawmidiStreamPair,
217 direction: ALSARawmidiStreamDirection,
218 substream_status: *const *mut ALSARawmidiSubstreamStatus,
219 error: *mut *mut glib::GError,
220 ) -> gboolean;
221 pub fn alsarawmidi_stream_pair_open(
222 self_: *mut ALSARawmidiStreamPair,
223 card_id: c_uint,
224 device_id: c_uint,
225 subdevice_id: c_uint,
226 access_modes: ALSARawmidiStreamPairInfoFlag,
227 open_flag: c_int,
228 error: *mut *mut glib::GError,
229 ) -> gboolean;
230 pub fn alsarawmidi_stream_pair_read_from_substream(
231 self_: *mut ALSARawmidiStreamPair,
232 buf: *const *mut u8,
233 buf_size: *mut size_t,
234 error: *mut *mut glib::GError,
235 ) -> gboolean;
236 pub fn alsarawmidi_stream_pair_set_substream_params(
237 self_: *mut ALSARawmidiStreamPair,
238 direction: ALSARawmidiStreamDirection,
239 substream_params: *mut ALSARawmidiSubstreamParams,
240 error: *mut *mut glib::GError,
241 ) -> gboolean;
242 pub fn alsarawmidi_stream_pair_write_to_substream(
243 self_: *mut ALSARawmidiStreamPair,
244 buf: *const u8,
245 buf_size: size_t,
246 error: *mut *mut glib::GError,
247 ) -> gboolean;
248
249 pub fn alsarawmidi_substream_info_get_type() -> GType;
253
254 pub fn alsarawmidi_substream_params_get_type() -> GType;
258 pub fn alsarawmidi_substream_params_new() -> *mut ALSARawmidiSubstreamParams;
259
260 pub fn alsarawmidi_substream_status_get_type() -> GType;
264 pub fn alsarawmidi_substream_status_new() -> *mut ALSARawmidiSubstreamStatus;
265
266 pub fn alsarawmidi_get_device_id_list(
270 card_id: c_uint,
271 entries: *mut *mut c_uint,
272 entry_count: *mut size_t,
273 error: *mut *mut glib::GError,
274 ) -> gboolean;
275 pub fn alsarawmidi_get_rawmidi_devnode(
276 card_id: c_uint,
277 device_id: c_uint,
278 devnode: *mut *mut c_char,
279 error: *mut *mut glib::GError,
280 ) -> gboolean;
281 pub fn alsarawmidi_get_rawmidi_sysname(
282 card_id: c_uint,
283 device_id: c_uint,
284 sysname: *mut *mut c_char,
285 error: *mut *mut glib::GError,
286 ) -> gboolean;
287 pub fn alsarawmidi_get_subdevice_id_list(
288 card_id: c_uint,
289 device_id: c_uint,
290 direction: ALSARawmidiStreamDirection,
291 entries: *mut *mut c_uint,
292 entry_count: *mut size_t,
293 error: *mut *mut glib::GError,
294 ) -> gboolean;
295 pub fn alsarawmidi_get_substream_info(
296 card_id: c_uint,
297 device_id: c_uint,
298 direction: ALSARawmidiStreamDirection,
299 subdevice_id: c_uint,
300 substream_info: *mut *mut ALSARawmidiSubstreamInfo,
301 error: *mut *mut glib::GError,
302 ) -> gboolean;
303
304}