gstreamer_net/auto/
net_time_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;
7use glib::{
8    prelude::*,
9    signal::{connect_raw, SignalHandlerId},
10    translate::*,
11};
12use std::boxed::Box as Box_;
13
14glib::wrapper! {
15    #[doc(alias = "GstNetTimeProvider")]
16    pub struct NetTimeProvider(Object<ffi::GstNetTimeProvider, ffi::GstNetTimeProviderClass>) @extends gst::Object;
17
18    match fn {
19        type_ => || ffi::gst_net_time_provider_get_type(),
20    }
21}
22
23impl NetTimeProvider {
24    #[doc(alias = "gst_net_time_provider_new")]
25    pub fn new(
26        clock: &impl IsA<gst::Clock>,
27        address: Option<&str>,
28        port: i32,
29    ) -> Result<NetTimeProvider, glib::BoolError> {
30        assert_initialized_main_thread!();
31        unsafe {
32            Option::<_>::from_glib_full(ffi::gst_net_time_provider_new(
33                clock.as_ref().to_glib_none().0,
34                address.to_glib_none().0,
35                port,
36            ))
37            .ok_or_else(|| glib::bool_error!("Failed to create NetTimeProvider"))
38        }
39    }
40
41    pub fn is_active(&self) -> bool {
42        ObjectExt::property(self, "active")
43    }
44
45    pub fn set_active(&self, active: bool) {
46        ObjectExt::set_property(self, "active", active)
47    }
48
49    pub fn address(&self) -> Option<glib::GString> {
50        ObjectExt::property(self, "address")
51    }
52
53    pub fn clock(&self) -> Option<gst::Clock> {
54        ObjectExt::property(self, "clock")
55    }
56
57    pub fn port(&self) -> i32 {
58        ObjectExt::property(self, "port")
59    }
60
61    #[doc(alias = "qos-dscp")]
62    pub fn qos_dscp(&self) -> i32 {
63        ObjectExt::property(self, "qos-dscp")
64    }
65
66    #[doc(alias = "qos-dscp")]
67    pub fn set_qos_dscp(&self, qos_dscp: i32) {
68        ObjectExt::set_property(self, "qos-dscp", qos_dscp)
69    }
70
71    #[doc(alias = "active")]
72    pub fn connect_active_notify<F: Fn(&Self) + Send + Sync + 'static>(
73        &self,
74        f: F,
75    ) -> SignalHandlerId {
76        unsafe extern "C" fn notify_active_trampoline<
77            F: Fn(&NetTimeProvider) + Send + Sync + 'static,
78        >(
79            this: *mut ffi::GstNetTimeProvider,
80            _param_spec: glib::ffi::gpointer,
81            f: glib::ffi::gpointer,
82        ) {
83            let f: &F = &*(f as *const F);
84            f(&from_glib_borrow(this))
85        }
86        unsafe {
87            let f: Box_<F> = Box_::new(f);
88            connect_raw(
89                self.as_ptr() as *mut _,
90                c"notify::active".as_ptr() as *const _,
91                Some(std::mem::transmute::<*const (), unsafe extern "C" fn()>(
92                    notify_active_trampoline::<F> as *const (),
93                )),
94                Box_::into_raw(f),
95            )
96        }
97    }
98
99    #[doc(alias = "qos-dscp")]
100    pub fn connect_qos_dscp_notify<F: Fn(&Self) + Send + Sync + 'static>(
101        &self,
102        f: F,
103    ) -> SignalHandlerId {
104        unsafe extern "C" fn notify_qos_dscp_trampoline<
105            F: Fn(&NetTimeProvider) + Send + Sync + 'static,
106        >(
107            this: *mut ffi::GstNetTimeProvider,
108            _param_spec: glib::ffi::gpointer,
109            f: glib::ffi::gpointer,
110        ) {
111            let f: &F = &*(f as *const F);
112            f(&from_glib_borrow(this))
113        }
114        unsafe {
115            let f: Box_<F> = Box_::new(f);
116            connect_raw(
117                self.as_ptr() as *mut _,
118                c"notify::qos-dscp".as_ptr() as *const _,
119                Some(std::mem::transmute::<*const (), unsafe extern "C" fn()>(
120                    notify_qos_dscp_trampoline::<F> as *const (),
121                )),
122                Box_::into_raw(f),
123            )
124        }
125    }
126}
127
128unsafe impl Send for NetTimeProvider {}
129unsafe impl Sync for NetTimeProvider {}