Skip to main content

astal_wp_sys/
lib.rs

1// This file was generated by gir (https://github.com/gtk-rs/gir)
2// from ../../../girs
3// from ../../../gtk-girs
4// DO NOT EDIT
5
6#![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
31// Enums
32pub 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
90// Constants
91pub 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// Records
97#[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// Classes
243#[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    //=========================================================================
382    // AstalWpAvailable
383    //=========================================================================
384    pub fn astal_wp_available_get_type() -> GType;
385
386    //=========================================================================
387    // AstalWpDeviceType
388    //=========================================================================
389    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    //=========================================================================
394    // AstalWpDirection
395    //=========================================================================
396    pub fn astal_wp_direction_get_type() -> GType;
397
398    //=========================================================================
399    // AstalWpMediaCategory
400    //=========================================================================
401    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    //=========================================================================
406    // AstalWpMediaClass
407    //=========================================================================
408    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    //=========================================================================
413    // AstalWpMediaRole
414    //=========================================================================
415    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    //=========================================================================
420    // AstalWpNodeState
421    //=========================================================================
422    pub fn astal_wp_node_state_get_type() -> GType;
423
424    //=========================================================================
425    // AstalWpScale
426    //=========================================================================
427    pub fn astal_wp_scale_get_type() -> GType;
428
429    //=========================================================================
430    // AstalWpAudio
431    //=========================================================================
432    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    //=========================================================================
453    // AstalWpChannel
454    //=========================================================================
455    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    //=========================================================================
462    // AstalWpDevice
463    //=========================================================================
464    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    //=========================================================================
492    // AstalWpEndpoint
493    //=========================================================================
494    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    //=========================================================================
506    // AstalWpNode
507    //=========================================================================
508    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    //=========================================================================
538    // AstalWpProfile
539    //=========================================================================
540    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    //=========================================================================
548    // AstalWpRoute
549    //=========================================================================
550    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    //=========================================================================
560    // AstalWpStream
561    //=========================================================================
562    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    //=========================================================================
574    // AstalWpVideo
575    //=========================================================================
576    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    //=========================================================================
590    // AstalWpWp
591    //=========================================================================
592    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    //=========================================================================
608    // Other functions
609    //=========================================================================
610    pub fn astal_wp_get_default() -> *mut AstalWpWp;
611
612}