gstreamer/auto/
device_provider.rs

1// This file was generated by gir (https://github.com/gtk-rs/gir)
2// from gir-files (https://github.com/gtk-rs/gir-files)
3// from gst-gir-files (https://gitlab.freedesktop.org/gstreamer/gir-files-rs.git)
4// DO NOT EDIT
5
6use crate::{Bus, Device, DeviceProviderFactory, Object, ffi};
7use glib::{
8    object::ObjectType as _,
9    prelude::*,
10    signal::{SignalHandlerId, connect_raw},
11    translate::*,
12};
13use std::boxed::Box as Box_;
14
15glib::wrapper! {
16    #[doc(alias = "GstDeviceProvider")]
17    pub struct DeviceProvider(Object<ffi::GstDeviceProvider, ffi::GstDeviceProviderClass>) @extends Object;
18
19    match fn {
20        type_ => || ffi::gst_device_provider_get_type(),
21    }
22}
23
24impl DeviceProvider {
25    pub const NONE: Option<&'static DeviceProvider> = None;
26}
27
28unsafe impl Send for DeviceProvider {}
29unsafe impl Sync for DeviceProvider {}
30
31pub trait DeviceProviderExt: IsA<DeviceProvider> + 'static {
32    #[doc(alias = "gst_device_provider_can_monitor")]
33    fn can_monitor(&self) -> bool {
34        unsafe {
35            from_glib(ffi::gst_device_provider_can_monitor(
36                self.as_ref().to_glib_none().0,
37            ))
38        }
39    }
40
41    #[doc(alias = "gst_device_provider_device_add")]
42    fn device_add(&self, device: &impl IsA<Device>) {
43        unsafe {
44            ffi::gst_device_provider_device_add(
45                self.as_ref().to_glib_none().0,
46                device.as_ref().to_glib_none().0,
47            );
48        }
49    }
50
51    #[cfg(feature = "v1_16")]
52    #[cfg_attr(docsrs, doc(cfg(feature = "v1_16")))]
53    #[doc(alias = "gst_device_provider_device_changed")]
54    fn device_changed(&self, device: &impl IsA<Device>, changed_device: &impl IsA<Device>) {
55        unsafe {
56            ffi::gst_device_provider_device_changed(
57                self.as_ref().to_glib_none().0,
58                device.as_ref().to_glib_none().0,
59                changed_device.as_ref().to_glib_none().0,
60            );
61        }
62    }
63
64    #[doc(alias = "gst_device_provider_device_remove")]
65    fn device_remove(&self, device: &impl IsA<Device>) {
66        unsafe {
67            ffi::gst_device_provider_device_remove(
68                self.as_ref().to_glib_none().0,
69                device.as_ref().to_glib_none().0,
70            );
71        }
72    }
73
74    #[doc(alias = "gst_device_provider_get_bus")]
75    #[doc(alias = "get_bus")]
76    fn bus(&self) -> Bus {
77        unsafe {
78            from_glib_full(ffi::gst_device_provider_get_bus(
79                self.as_ref().to_glib_none().0,
80            ))
81        }
82    }
83
84    #[doc(alias = "gst_device_provider_get_factory")]
85    #[doc(alias = "get_factory")]
86    fn factory(&self) -> Option<DeviceProviderFactory> {
87        unsafe {
88            from_glib_none(ffi::gst_device_provider_get_factory(
89                self.as_ref().to_glib_none().0,
90            ))
91        }
92    }
93
94    #[doc(alias = "gst_device_provider_get_hidden_providers")]
95    #[doc(alias = "get_hidden_providers")]
96    fn hidden_providers(&self) -> Vec<glib::GString> {
97        unsafe {
98            FromGlibPtrContainer::from_glib_full(ffi::gst_device_provider_get_hidden_providers(
99                self.as_ref().to_glib_none().0,
100            ))
101        }
102    }
103
104    #[doc(alias = "gst_device_provider_hide_provider")]
105    fn hide_provider(&self, name: &str) {
106        unsafe {
107            ffi::gst_device_provider_hide_provider(
108                self.as_ref().to_glib_none().0,
109                name.to_glib_none().0,
110            );
111        }
112    }
113
114    #[cfg(feature = "v1_20")]
115    #[cfg_attr(docsrs, doc(cfg(feature = "v1_20")))]
116    #[doc(alias = "gst_device_provider_is_started")]
117    fn is_started(&self) -> bool {
118        unsafe {
119            from_glib(ffi::gst_device_provider_is_started(
120                self.as_ref().to_glib_none().0,
121            ))
122        }
123    }
124
125    #[doc(alias = "gst_device_provider_start")]
126    fn start(&self) -> Result<(), glib::error::BoolError> {
127        unsafe {
128            glib::result_from_gboolean!(
129                ffi::gst_device_provider_start(self.as_ref().to_glib_none().0),
130                "Failed to start"
131            )
132        }
133    }
134
135    #[doc(alias = "gst_device_provider_stop")]
136    fn stop(&self) {
137        unsafe {
138            ffi::gst_device_provider_stop(self.as_ref().to_glib_none().0);
139        }
140    }
141
142    #[doc(alias = "gst_device_provider_unhide_provider")]
143    fn unhide_provider(&self, name: &str) {
144        unsafe {
145            ffi::gst_device_provider_unhide_provider(
146                self.as_ref().to_glib_none().0,
147                name.to_glib_none().0,
148            );
149        }
150    }
151
152    #[doc(alias = "provider-hidden")]
153    fn connect_provider_hidden<F: Fn(&Self, &str) + Send + Sync + 'static>(
154        &self,
155        f: F,
156    ) -> SignalHandlerId {
157        unsafe extern "C" fn provider_hidden_trampoline<
158            P: IsA<DeviceProvider>,
159            F: Fn(&P, &str) + Send + Sync + 'static,
160        >(
161            this: *mut ffi::GstDeviceProvider,
162            object: *mut std::ffi::c_char,
163            f: glib::ffi::gpointer,
164        ) {
165            unsafe {
166                let f: &F = &*(f as *const F);
167                f(
168                    DeviceProvider::from_glib_borrow(this).unsafe_cast_ref(),
169                    &glib::GString::from_glib_borrow(object),
170                )
171            }
172        }
173        unsafe {
174            let f: Box_<F> = Box_::new(f);
175            connect_raw(
176                self.as_ptr() as *mut _,
177                c"provider-hidden".as_ptr(),
178                Some(std::mem::transmute::<*const (), unsafe extern "C" fn()>(
179                    provider_hidden_trampoline::<Self, F> as *const (),
180                )),
181                Box_::into_raw(f),
182            )
183        }
184    }
185
186    #[doc(alias = "provider-unhidden")]
187    fn connect_provider_unhidden<F: Fn(&Self, &str) + Send + Sync + 'static>(
188        &self,
189        f: F,
190    ) -> SignalHandlerId {
191        unsafe extern "C" fn provider_unhidden_trampoline<
192            P: IsA<DeviceProvider>,
193            F: Fn(&P, &str) + Send + Sync + 'static,
194        >(
195            this: *mut ffi::GstDeviceProvider,
196            object: *mut std::ffi::c_char,
197            f: glib::ffi::gpointer,
198        ) {
199            unsafe {
200                let f: &F = &*(f as *const F);
201                f(
202                    DeviceProvider::from_glib_borrow(this).unsafe_cast_ref(),
203                    &glib::GString::from_glib_borrow(object),
204                )
205            }
206        }
207        unsafe {
208            let f: Box_<F> = Box_::new(f);
209            connect_raw(
210                self.as_ptr() as *mut _,
211                c"provider-unhidden".as_ptr(),
212                Some(std::mem::transmute::<*const (), unsafe extern "C" fn()>(
213                    provider_unhidden_trampoline::<Self, F> as *const (),
214                )),
215                Box_::into_raw(f),
216            )
217        }
218    }
219}
220
221impl<O: IsA<DeviceProvider>> DeviceProviderExt for O {}