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::{ffi, Bus, Device, DeviceProviderFactory, Object};
7use glib::{
8    object::ObjectType as _,
9    prelude::*,
10    signal::{connect_raw, SignalHandlerId},
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            let f: &F = &*(f as *const F);
166            f(
167                DeviceProvider::from_glib_borrow(this).unsafe_cast_ref(),
168                &glib::GString::from_glib_borrow(object),
169            )
170        }
171        unsafe {
172            let f: Box_<F> = Box_::new(f);
173            connect_raw(
174                self.as_ptr() as *mut _,
175                c"provider-hidden".as_ptr() as *const _,
176                Some(std::mem::transmute::<*const (), unsafe extern "C" fn()>(
177                    provider_hidden_trampoline::<Self, F> as *const (),
178                )),
179                Box_::into_raw(f),
180            )
181        }
182    }
183
184    #[doc(alias = "provider-unhidden")]
185    fn connect_provider_unhidden<F: Fn(&Self, &str) + Send + Sync + 'static>(
186        &self,
187        f: F,
188    ) -> SignalHandlerId {
189        unsafe extern "C" fn provider_unhidden_trampoline<
190            P: IsA<DeviceProvider>,
191            F: Fn(&P, &str) + Send + Sync + 'static,
192        >(
193            this: *mut ffi::GstDeviceProvider,
194            object: *mut std::ffi::c_char,
195            f: glib::ffi::gpointer,
196        ) {
197            let f: &F = &*(f as *const F);
198            f(
199                DeviceProvider::from_glib_borrow(this).unsafe_cast_ref(),
200                &glib::GString::from_glib_borrow(object),
201            )
202        }
203        unsafe {
204            let f: Box_<F> = Box_::new(f);
205            connect_raw(
206                self.as_ptr() as *mut _,
207                c"provider-unhidden".as_ptr() as *const _,
208                Some(std::mem::transmute::<*const (), unsafe extern "C" fn()>(
209                    provider_unhidden_trampoline::<Self, F> as *const (),
210                )),
211                Box_::into_raw(f),
212            )
213        }
214    }
215}
216
217impl<O: IsA<DeviceProvider>> DeviceProviderExt for O {}