1#![allow(non_camel_case_types, non_upper_case_globals, non_snake_case)]
7#![allow(
8 clippy::approx_constant,
9 clippy::type_complexity,
10 clippy::unreadable_literal,
11 clippy::upper_case_acronyms
12)]
13#![cfg_attr(docsrs, feature(doc_cfg))]
14
15use glib_sys as glib;
16use gobject_sys as gobject;
17
18#[cfg(unix)]
19#[allow(unused_imports)]
20use libc::{dev_t, gid_t, pid_t, socklen_t, uid_t};
21#[allow(unused_imports)]
22use libc::{intptr_t, off_t, size_t, ssize_t, time_t, uintptr_t, FILE};
23#[allow(unused_imports)]
24use std::ffi::{
25 c_char, c_double, c_float, c_int, c_long, c_short, c_uchar, c_uint, c_ulong, c_ushort, c_void,
26};
27
28#[allow(unused_imports)]
29use glib::{gboolean, gconstpointer, gpointer, GType};
30
31pub type AstalWpAvailable = c_int;
33pub const ASTAL_WP_AVAILABLE_UNKNOWN: AstalWpAvailable = 0;
34pub const ASTAL_WP_AVAILABLE_NO: AstalWpAvailable = 1;
35pub const ASTAL_WP_AVAILABLE_YES: AstalWpAvailable = 2;
36
37pub type AstalWpDeviceType = c_int;
38pub const ASTAL_WP_DEVICE_TYPE_UNKNOWN: AstalWpDeviceType = 0;
39pub const ASTAL_WP_DEVICE_TYPE_AUDIO: AstalWpDeviceType = 1;
40pub const ASTAL_WP_DEVICE_TYPE_VIDEO: AstalWpDeviceType = 2;
41
42pub type AstalWpDirection = c_int;
43pub const ASTAL_WP_DIRECTION_INPUT: AstalWpDirection = 0;
44pub const ASTAL_WP_DIRECTION_OUTPUT: AstalWpDirection = 1;
45
46pub type AstalWpMediaCategory = c_int;
47pub const ASTAL_WP_MEDIA_CATEGORY_UNKNOWN: AstalWpMediaCategory = 0;
48pub const ASTAL_WP_MEDIA_CATEGORY_PLAYBACK: AstalWpMediaCategory = 1;
49pub const ASTAL_WP_MEDIA_CATEGORY_CAPTURE: AstalWpMediaCategory = 2;
50pub const ASTAL_WP_MEDIA_CATEGORY_DUPLEX: AstalWpMediaCategory = 3;
51pub const ASTAL_WP_MEDIA_CATEGORY_MONITOR: AstalWpMediaCategory = 4;
52pub const ASTAL_WP_MEDIA_CATEGORY_MANAGER: AstalWpMediaCategory = 5;
53
54pub type AstalWpMediaClass = c_int;
55pub const ASTAL_WP_MEDIA_CLASS_UNKNOWN: AstalWpMediaClass = 0;
56pub const ASTAL_WP_MEDIA_CLASS_AUDIO_MICROPHONE: AstalWpMediaClass = 1;
57pub const ASTAL_WP_MEDIA_CLASS_AUDIO_SPEAKER: AstalWpMediaClass = 2;
58pub const ASTAL_WP_MEDIA_CLASS_AUDIO_RECORDER: AstalWpMediaClass = 3;
59pub const ASTAL_WP_MEDIA_CLASS_AUDIO_STREAM: AstalWpMediaClass = 4;
60pub const ASTAL_WP_MEDIA_CLASS_VIDEO_SOURCE: AstalWpMediaClass = 5;
61pub const ASTAL_WP_MEDIA_CLASS_VIDEO_SINK: AstalWpMediaClass = 6;
62pub const ASTAL_WP_MEDIA_CLASS_VIDEO_RECORDER: AstalWpMediaClass = 7;
63pub const ASTAL_WP_MEDIA_CLASS_VIDEO_STREAM: AstalWpMediaClass = 8;
64
65pub type AstalWpMediaRole = c_int;
66pub const ASTAL_WP_MEDIA_ROLE_UNKNOWN: AstalWpMediaRole = 0;
67pub const ASTAL_WP_MEDIA_ROLE_MOVIE: AstalWpMediaRole = 1;
68pub const ASTAL_WP_MEDIA_ROLE_MUSIC: AstalWpMediaRole = 2;
69pub const ASTAL_WP_MEDIA_ROLE_CAMERA: AstalWpMediaRole = 3;
70pub const ASTAL_WP_MEDIA_ROLE_SCREEN: AstalWpMediaRole = 4;
71pub const ASTAL_WP_MEDIA_ROLE_COMMUNICATION: AstalWpMediaRole = 5;
72pub const ASTAL_WP_MEDIA_ROLE_GAME: AstalWpMediaRole = 6;
73pub const ASTAL_WP_MEDIA_ROLE_NOTIFICATION: AstalWpMediaRole = 7;
74pub const ASTAL_WP_MEDIA_ROLE_DSP: AstalWpMediaRole = 8;
75pub const ASTAL_WP_MEDIA_ROLE_PRODUCTION: AstalWpMediaRole = 9;
76pub const ASTAL_WP_MEDIA_ROLE_ACCESSIBILITY: AstalWpMediaRole = 10;
77pub const ASTAL_WP_MEDIA_ROLE_TEST: AstalWpMediaRole = 11;
78
79pub type AstalWpNodeState = c_int;
80pub const ASTAL_WP_NODE_STATE_ERROR: AstalWpNodeState = -1;
81pub const ASTAL_WP_NODE_STATE_CREATING: AstalWpNodeState = 0;
82pub const ASTAL_WP_NODE_STATE_SUSPENDED: AstalWpNodeState = 1;
83pub const ASTAL_WP_NODE_STATE_IDLE: AstalWpNodeState = 2;
84pub const ASTAL_WP_NODE_STATE_RUNNING: AstalWpNodeState = 3;
85
86pub type AstalWpScale = c_int;
87pub const ASTAL_WP_SCALE_LINEAR: AstalWpScale = 0;
88pub const ASTAL_WP_SCALE_CUBIC: AstalWpScale = 1;
89
90pub const ASTAL_WP_MAJOR_VERSION: c_int = 0;
92pub const ASTAL_WP_MICRO_VERSION: c_int = 0;
93pub const ASTAL_WP_MINOR_VERSION: c_int = 1;
94pub const ASTAL_WP_VERSION: &[u8] = b"0.1.0\0";
95
96#[derive(Copy, Clone)]
98#[repr(C)]
99pub struct AstalWpAudioClass {
100 pub parent_class: gobject::GObjectClass,
101}
102
103impl ::std::fmt::Debug for AstalWpAudioClass {
104 fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
105 f.debug_struct(&format!("AstalWpAudioClass @ {self:p}"))
106 .field("parent_class", &self.parent_class)
107 .finish()
108 }
109}
110
111#[derive(Copy, Clone)]
112#[repr(C)]
113pub struct AstalWpChannelClass {
114 pub parent_class: gobject::GObjectClass,
115}
116
117impl ::std::fmt::Debug for AstalWpChannelClass {
118 fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
119 f.debug_struct(&format!("AstalWpChannelClass @ {self:p}"))
120 .field("parent_class", &self.parent_class)
121 .finish()
122 }
123}
124
125#[derive(Copy, Clone)]
126#[repr(C)]
127pub struct AstalWpDeviceClass {
128 pub parent_class: gobject::GObjectClass,
129}
130
131impl ::std::fmt::Debug for AstalWpDeviceClass {
132 fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
133 f.debug_struct(&format!("AstalWpDeviceClass @ {self:p}"))
134 .field("parent_class", &self.parent_class)
135 .finish()
136 }
137}
138
139#[derive(Copy, Clone)]
140#[repr(C)]
141pub struct AstalWpEndpointClass {
142 pub parent_class: AstalWpNodeClass,
143}
144
145impl ::std::fmt::Debug for AstalWpEndpointClass {
146 fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
147 f.debug_struct(&format!("AstalWpEndpointClass @ {self:p}"))
148 .field("parent_class", &self.parent_class)
149 .finish()
150 }
151}
152
153#[derive(Copy, Clone)]
154#[repr(C)]
155pub struct AstalWpNodeClass {
156 pub parent_class: gobject::GObjectClass,
157 pub params_changed: Option<unsafe extern "C" fn(*mut AstalWpNode, *const c_char)>,
158 pub metadata_changed:
159 Option<unsafe extern "C" fn(*mut AstalWpNode, *const c_char, *const c_char, *const c_char)>,
160}
161
162impl ::std::fmt::Debug for AstalWpNodeClass {
163 fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
164 f.debug_struct(&format!("AstalWpNodeClass @ {self:p}"))
165 .field("parent_class", &self.parent_class)
166 .field("params_changed", &self.params_changed)
167 .field("metadata_changed", &self.metadata_changed)
168 .finish()
169 }
170}
171
172#[derive(Copy, Clone)]
173#[repr(C)]
174pub struct AstalWpProfileClass {
175 pub parent_class: gobject::GObjectClass,
176}
177
178impl ::std::fmt::Debug for AstalWpProfileClass {
179 fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
180 f.debug_struct(&format!("AstalWpProfileClass @ {self:p}"))
181 .field("parent_class", &self.parent_class)
182 .finish()
183 }
184}
185
186#[derive(Copy, Clone)]
187#[repr(C)]
188pub struct AstalWpRouteClass {
189 pub parent_class: gobject::GObjectClass,
190}
191
192impl ::std::fmt::Debug for AstalWpRouteClass {
193 fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
194 f.debug_struct(&format!("AstalWpRouteClass @ {self:p}"))
195 .field("parent_class", &self.parent_class)
196 .finish()
197 }
198}
199
200#[derive(Copy, Clone)]
201#[repr(C)]
202pub struct AstalWpStreamClass {
203 pub parent_class: AstalWpNodeClass,
204}
205
206impl ::std::fmt::Debug for AstalWpStreamClass {
207 fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
208 f.debug_struct(&format!("AstalWpStreamClass @ {self:p}"))
209 .field("parent_class", &self.parent_class)
210 .finish()
211 }
212}
213
214#[derive(Copy, Clone)]
215#[repr(C)]
216pub struct AstalWpVideoClass {
217 pub parent_class: gobject::GObjectClass,
218}
219
220impl ::std::fmt::Debug for AstalWpVideoClass {
221 fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
222 f.debug_struct(&format!("AstalWpVideoClass @ {self:p}"))
223 .field("parent_class", &self.parent_class)
224 .finish()
225 }
226}
227
228#[derive(Copy, Clone)]
229#[repr(C)]
230pub struct AstalWpWpClass {
231 pub parent_class: gobject::GObjectClass,
232}
233
234impl ::std::fmt::Debug for AstalWpWpClass {
235 fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
236 f.debug_struct(&format!("AstalWpWpClass @ {self:p}"))
237 .field("parent_class", &self.parent_class)
238 .finish()
239 }
240}
241
242#[repr(C)]
244#[allow(dead_code)]
245pub struct AstalWpAudio {
246 _data: [u8; 0],
247 _marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>,
248}
249
250impl ::std::fmt::Debug for AstalWpAudio {
251 fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
252 f.debug_struct(&format!("AstalWpAudio @ {self:p}")).finish()
253 }
254}
255
256#[repr(C)]
257#[allow(dead_code)]
258pub struct AstalWpChannel {
259 _data: [u8; 0],
260 _marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>,
261}
262
263impl ::std::fmt::Debug for AstalWpChannel {
264 fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
265 f.debug_struct(&format!("AstalWpChannel @ {self:p}"))
266 .finish()
267 }
268}
269
270#[repr(C)]
271#[allow(dead_code)]
272pub struct AstalWpDevice {
273 _data: [u8; 0],
274 _marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>,
275}
276
277impl ::std::fmt::Debug for AstalWpDevice {
278 fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
279 f.debug_struct(&format!("AstalWpDevice @ {self:p}"))
280 .finish()
281 }
282}
283
284#[repr(C)]
285#[allow(dead_code)]
286pub struct AstalWpEndpoint {
287 _data: [u8; 0],
288 _marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>,
289}
290
291impl ::std::fmt::Debug for AstalWpEndpoint {
292 fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
293 f.debug_struct(&format!("AstalWpEndpoint @ {self:p}"))
294 .finish()
295 }
296}
297
298#[derive(Copy, Clone)]
299#[repr(C)]
300pub struct AstalWpNode {
301 pub parent_instance: gobject::GObject,
302}
303
304impl ::std::fmt::Debug for AstalWpNode {
305 fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
306 f.debug_struct(&format!("AstalWpNode @ {self:p}"))
307 .field("parent_instance", &self.parent_instance)
308 .finish()
309 }
310}
311
312#[repr(C)]
313#[allow(dead_code)]
314pub struct AstalWpProfile {
315 _data: [u8; 0],
316 _marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>,
317}
318
319impl ::std::fmt::Debug for AstalWpProfile {
320 fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
321 f.debug_struct(&format!("AstalWpProfile @ {self:p}"))
322 .finish()
323 }
324}
325
326#[repr(C)]
327#[allow(dead_code)]
328pub struct AstalWpRoute {
329 _data: [u8; 0],
330 _marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>,
331}
332
333impl ::std::fmt::Debug for AstalWpRoute {
334 fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
335 f.debug_struct(&format!("AstalWpRoute @ {self:p}")).finish()
336 }
337}
338
339#[repr(C)]
340#[allow(dead_code)]
341pub struct AstalWpStream {
342 _data: [u8; 0],
343 _marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>,
344}
345
346impl ::std::fmt::Debug for AstalWpStream {
347 fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
348 f.debug_struct(&format!("AstalWpStream @ {self:p}"))
349 .finish()
350 }
351}
352
353#[repr(C)]
354#[allow(dead_code)]
355pub struct AstalWpVideo {
356 _data: [u8; 0],
357 _marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>,
358}
359
360impl ::std::fmt::Debug for AstalWpVideo {
361 fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
362 f.debug_struct(&format!("AstalWpVideo @ {self:p}")).finish()
363 }
364}
365
366#[repr(C)]
367#[allow(dead_code)]
368pub struct AstalWpWp {
369 _data: [u8; 0],
370 _marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>,
371}
372
373impl ::std::fmt::Debug for AstalWpWp {
374 fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
375 f.debug_struct(&format!("AstalWpWp @ {self:p}")).finish()
376 }
377}
378
379extern "C" {
380
381 pub fn astal_wp_available_get_type() -> GType;
385
386 pub fn astal_wp_device_type_get_type() -> GType;
390 pub fn astal_wp_device_type_from_string(string: *const c_char) -> AstalWpDeviceType;
391 pub fn astal_wp_device_type_to_string(device_type: AstalWpDeviceType) -> *mut c_char;
392
393 pub fn astal_wp_direction_get_type() -> GType;
397
398 pub fn astal_wp_media_category_get_type() -> GType;
402 pub fn astal_wp_media_category_from_string(string: *const c_char) -> AstalWpMediaCategory;
403 pub fn astal_wp_media_category_to_string(category: AstalWpMediaCategory) -> *mut c_char;
404
405 pub fn astal_wp_media_class_get_type() -> GType;
409 pub fn astal_wp_media_class_from_string(string: *const c_char) -> AstalWpMediaClass;
410 pub fn astal_wp_media_class_to_string(media_class: AstalWpMediaClass) -> *mut c_char;
411
412 pub fn astal_wp_media_role_get_type() -> GType;
416 pub fn astal_wp_media_role_from_string(string: *const c_char) -> AstalWpMediaRole;
417 pub fn astal_wp_media_role_to_string(role: AstalWpMediaRole) -> *mut c_char;
418
419 pub fn astal_wp_node_state_get_type() -> GType;
423
424 pub fn astal_wp_scale_get_type() -> GType;
428
429 pub fn astal_wp_audio_get_type() -> GType;
433 pub fn astal_wp_audio_new(wp: *mut AstalWpWp) -> *mut AstalWpAudio;
434 pub fn astal_wp_audio_get_default_microphone(self_: *mut AstalWpAudio) -> *mut AstalWpEndpoint;
435 pub fn astal_wp_audio_get_default_speaker(self_: *mut AstalWpAudio) -> *mut AstalWpEndpoint;
436 pub fn astal_wp_audio_get_device(self_: *mut AstalWpAudio, id: c_uint) -> *mut AstalWpDevice;
437 pub fn astal_wp_audio_get_devices(self_: *mut AstalWpAudio) -> *mut glib::GList;
438 pub fn astal_wp_audio_get_microphone(
439 self_: *mut AstalWpAudio,
440 id: c_uint,
441 ) -> *mut AstalWpEndpoint;
442 pub fn astal_wp_audio_get_microphones(self_: *mut AstalWpAudio) -> *mut glib::GList;
443 pub fn astal_wp_audio_get_node(self_: *mut AstalWpAudio, id: c_uint) -> *mut AstalWpNode;
444 pub fn astal_wp_audio_get_recorder(self_: *mut AstalWpAudio, id: c_uint) -> *mut AstalWpStream;
445 pub fn astal_wp_audio_get_recorders(self_: *mut AstalWpAudio) -> *mut glib::GList;
446 pub fn astal_wp_audio_get_speaker(self_: *mut AstalWpAudio, id: c_uint)
447 -> *mut AstalWpEndpoint;
448 pub fn astal_wp_audio_get_speakers(self_: *mut AstalWpAudio) -> *mut glib::GList;
449 pub fn astal_wp_audio_get_stream(self_: *mut AstalWpAudio, id: c_uint) -> *mut AstalWpStream;
450 pub fn astal_wp_audio_get_streams(self_: *mut AstalWpAudio) -> *mut glib::GList;
451
452 pub fn astal_wp_channel_get_type() -> GType;
456 pub fn astal_wp_channel_get_name(self_: *mut AstalWpChannel) -> *const c_char;
457 pub fn astal_wp_channel_get_volume(self_: *mut AstalWpChannel) -> c_double;
458 pub fn astal_wp_channel_get_volume_icon(self_: *mut AstalWpChannel) -> *const c_char;
459 pub fn astal_wp_channel_set_volume(self_: *mut AstalWpChannel, volume: c_double);
460
461 pub fn astal_wp_device_get_type() -> GType;
465 pub fn astal_wp_device_get_active_profile_id(self_: *mut AstalWpDevice) -> c_int;
466 pub fn astal_wp_device_get_description(self_: *mut AstalWpDevice) -> *const c_char;
467 pub fn astal_wp_device_get_device_type(self_: *mut AstalWpDevice) -> AstalWpDeviceType;
468 pub fn astal_wp_device_get_form_factor(self_: *mut AstalWpDevice) -> *const c_char;
469 pub fn astal_wp_device_get_icon(self_: *mut AstalWpDevice) -> *const c_char;
470 pub fn astal_wp_device_get_id(self_: *mut AstalWpDevice) -> c_uint;
471 pub fn astal_wp_device_get_input_route_id(self_: *mut AstalWpDevice) -> c_int;
472 pub fn astal_wp_device_get_input_routes(self_: *mut AstalWpDevice) -> *mut glib::GList;
473 pub fn astal_wp_device_get_output_route_id(self_: *mut AstalWpDevice) -> c_int;
474 pub fn astal_wp_device_get_output_routes(self_: *mut AstalWpDevice) -> *mut glib::GList;
475 pub fn astal_wp_device_get_profile(self_: *mut AstalWpDevice, id: c_int)
476 -> *mut AstalWpProfile;
477 pub fn astal_wp_device_get_profiles(self_: *mut AstalWpDevice) -> *mut glib::GList;
478 pub fn astal_wp_device_get_pw_property(
479 self_: *mut AstalWpDevice,
480 key: *const c_char,
481 ) -> *mut c_char;
482 pub fn astal_wp_device_get_route(self_: *mut AstalWpDevice, id: c_int) -> *mut AstalWpRoute;
483 pub fn astal_wp_device_get_routes(self_: *mut AstalWpDevice) -> *mut glib::GList;
484 pub fn astal_wp_device_set_active_profile_id(self_: *mut AstalWpDevice, profile_id: c_int);
485 pub fn astal_wp_device_set_route(
486 self_: *mut AstalWpDevice,
487 route: *mut AstalWpRoute,
488 card_device: c_uint,
489 );
490
491 pub fn astal_wp_endpoint_get_type() -> GType;
495 pub fn astal_wp_endpoint_get_device(self_: *mut AstalWpEndpoint) -> *mut AstalWpDevice;
496 pub fn astal_wp_endpoint_get_device_id(self_: *mut AstalWpEndpoint) -> c_uint;
497 pub fn astal_wp_endpoint_get_is_default(self_: *mut AstalWpEndpoint) -> gboolean;
498 pub fn astal_wp_endpoint_get_route(self_: *mut AstalWpEndpoint) -> *mut AstalWpRoute;
499 pub fn astal_wp_endpoint_get_route_id(self_: *mut AstalWpEndpoint) -> c_uint;
500 pub fn astal_wp_endpoint_get_routes(self_: *mut AstalWpEndpoint) -> *mut glib::GList;
501 pub fn astal_wp_endpoint_set_is_default(self_: *mut AstalWpEndpoint, is_default: gboolean);
502 pub fn astal_wp_endpoint_set_route(self_: *mut AstalWpEndpoint, route: *mut AstalWpRoute);
503 pub fn astal_wp_endpoint_set_route_id(self_: *mut AstalWpEndpoint, route_id: c_uint);
504
505 pub fn astal_wp_node_get_type() -> GType;
509 pub fn astal_wp_node_get_channels(self_: *mut AstalWpNode) -> *mut glib::GList;
510 pub fn astal_wp_node_get_description(self_: *mut AstalWpNode) -> *const c_char;
511 pub fn astal_wp_node_get_icon(self_: *mut AstalWpNode) -> *const c_char;
512 pub fn astal_wp_node_get_id(self_: *mut AstalWpNode) -> c_uint;
513 pub fn astal_wp_node_get_lock_channels(self_: *mut AstalWpNode) -> gboolean;
514 pub fn astal_wp_node_get_media_class(self_: *mut AstalWpNode) -> AstalWpMediaClass;
515 pub fn astal_wp_node_get_mute(self_: *mut AstalWpNode) -> gboolean;
516 pub fn astal_wp_node_get_name(self_: *mut AstalWpNode) -> *const c_char;
517 pub fn astal_wp_node_get_path(self_: *mut AstalWpNode) -> *const c_char;
518 pub fn astal_wp_node_get_pw_property(
519 self_: *mut AstalWpNode,
520 key: *const c_char,
521 ) -> *mut c_char;
522 pub fn astal_wp_node_get_serial(self_: *mut AstalWpNode) -> c_int;
523 pub fn astal_wp_node_get_state(self_: *mut AstalWpNode) -> AstalWpNodeState;
524 pub fn astal_wp_node_get_volume(self_: *mut AstalWpNode) -> c_double;
525 pub fn astal_wp_node_get_volume_icon(self_: *mut AstalWpNode) -> *const c_char;
526 pub fn astal_wp_node_metadata_changed(
527 self_: *mut AstalWpNode,
528 key: *const c_char,
529 type_: *const c_char,
530 value: *const c_char,
531 );
532 pub fn astal_wp_node_params_changed(self_: *mut AstalWpNode, id: *const c_char);
533 pub fn astal_wp_node_set_lock_channels(self_: *mut AstalWpNode, lock_channels: gboolean);
534 pub fn astal_wp_node_set_mute(self_: *mut AstalWpNode, mute: gboolean);
535 pub fn astal_wp_node_set_volume(self_: *mut AstalWpNode, volume: c_double);
536
537 pub fn astal_wp_profile_get_type() -> GType;
541 pub fn astal_wp_profile_get_available(self_: *mut AstalWpProfile) -> AstalWpAvailable;
542 pub fn astal_wp_profile_get_description(self_: *mut AstalWpProfile) -> *const c_char;
543 pub fn astal_wp_profile_get_index(self_: *mut AstalWpProfile) -> c_int;
544 pub fn astal_wp_profile_get_name(self_: *mut AstalWpProfile) -> *const c_char;
545 pub fn astal_wp_profile_get_priority(self_: *mut AstalWpProfile) -> c_int;
546
547 pub fn astal_wp_route_get_type() -> GType;
551 pub fn astal_wp_route_get_available(self_: *mut AstalWpRoute) -> AstalWpAvailable;
552 pub fn astal_wp_route_get_description(self_: *mut AstalWpRoute) -> *const c_char;
553 pub fn astal_wp_route_get_device(self_: *mut AstalWpRoute) -> c_int;
554 pub fn astal_wp_route_get_direction(self_: *mut AstalWpRoute) -> AstalWpDirection;
555 pub fn astal_wp_route_get_index(self_: *mut AstalWpRoute) -> c_int;
556 pub fn astal_wp_route_get_name(self_: *mut AstalWpRoute) -> *const c_char;
557 pub fn astal_wp_route_get_priority(self_: *mut AstalWpRoute) -> c_int;
558
559 pub fn astal_wp_stream_get_type() -> GType;
563 pub fn astal_wp_stream_get_media_category(self_: *mut AstalWpStream) -> AstalWpMediaCategory;
564 pub fn astal_wp_stream_get_media_role(self_: *mut AstalWpStream) -> AstalWpMediaRole;
565 pub fn astal_wp_stream_get_target_endpoint(self_: *mut AstalWpStream) -> *mut AstalWpEndpoint;
566 pub fn astal_wp_stream_get_target_serial(self_: *mut AstalWpStream) -> c_int;
567 pub fn astal_wp_stream_set_target_endpoint(
568 self_: *mut AstalWpStream,
569 target: *mut AstalWpEndpoint,
570 );
571 pub fn astal_wp_stream_set_target_serial(self_: *mut AstalWpStream, serial: c_int);
572
573 pub fn astal_wp_video_get_type() -> GType;
577 pub fn astal_wp_video_new(wp: *mut AstalWpWp) -> *mut AstalWpVideo;
578 pub fn astal_wp_video_get_device(self_: *mut AstalWpVideo, id: c_uint) -> *mut AstalWpDevice;
579 pub fn astal_wp_video_get_devices(self_: *mut AstalWpVideo) -> *mut glib::GList;
580 pub fn astal_wp_video_get_recorder(self_: *mut AstalWpVideo, id: c_uint) -> *mut AstalWpStream;
581 pub fn astal_wp_video_get_recorders(self_: *mut AstalWpVideo) -> *mut glib::GList;
582 pub fn astal_wp_video_get_sink(self_: *mut AstalWpVideo, id: c_uint) -> *mut AstalWpEndpoint;
583 pub fn astal_wp_video_get_sinks(self_: *mut AstalWpVideo) -> *mut glib::GList;
584 pub fn astal_wp_video_get_source(self_: *mut AstalWpVideo, id: c_uint) -> *mut AstalWpEndpoint;
585 pub fn astal_wp_video_get_sources(self_: *mut AstalWpVideo) -> *mut glib::GList;
586 pub fn astal_wp_video_get_stream(self_: *mut AstalWpVideo, id: c_uint) -> *mut AstalWpStream;
587 pub fn astal_wp_video_get_streams(self_: *mut AstalWpVideo) -> *mut glib::GList;
588
589 pub fn astal_wp_wp_get_type() -> GType;
593 pub fn astal_wp_wp_get_default() -> *mut AstalWpWp;
594 pub fn astal_wp_wp_get_audio(self_: *mut AstalWpWp) -> *mut AstalWpAudio;
595 pub fn astal_wp_wp_get_default_microphone(self_: *mut AstalWpWp) -> *mut AstalWpEndpoint;
596 pub fn astal_wp_wp_get_default_speaker(self_: *mut AstalWpWp) -> *mut AstalWpEndpoint;
597 pub fn astal_wp_wp_get_device(self_: *mut AstalWpWp, id: c_uint) -> *mut AstalWpDevice;
598 pub fn astal_wp_wp_get_devices(self_: *mut AstalWpWp) -> *mut glib::GList;
599 pub fn astal_wp_wp_get_node(self_: *mut AstalWpWp, id: c_uint) -> *mut AstalWpNode;
600 pub fn astal_wp_wp_get_node_by_serial(self_: *mut AstalWpWp, serial: c_int)
601 -> *mut AstalWpNode;
602 pub fn astal_wp_wp_get_nodes(self_: *mut AstalWpWp) -> *mut glib::GList;
603 pub fn astal_wp_wp_get_scale(self_: *mut AstalWpWp) -> AstalWpScale;
604 pub fn astal_wp_wp_get_video(self_: *mut AstalWpWp) -> *mut AstalWpVideo;
605 pub fn astal_wp_wp_set_scale(self_: *mut AstalWpWp, scale: AstalWpScale);
606
607 pub fn astal_wp_get_default() -> *mut AstalWpWp;
611
612}