// This file was generated by gir (https://github.com/gtk-rs/gir) // from gir-files (https://github.com/gtk-rs/gir-files) // from gst-gir-files (https://gitlab.freedesktop.org/gstreamer/gir-files-rs.git) // DO NOT EDIT use glib::{ prelude::*, signal::{connect_raw, SignalHandlerId}, translate::*, }; use std::{boxed::Box as Box_, mem::transmute}; glib::wrapper! { #[doc(alias = "GstNetTimeProvider")] pub struct NetTimeProvider(Object) @extends gst::Object; match fn { type_ => || ffi::gst_net_time_provider_get_type(), } } impl NetTimeProvider { #[doc(alias = "gst_net_time_provider_new")] pub fn new( clock: &impl IsA, address: Option<&str>, port: i32, ) -> Result { assert_initialized_main_thread!(); unsafe { Option::<_>::from_glib_full(ffi::gst_net_time_provider_new( clock.as_ref().to_glib_none().0, address.to_glib_none().0, port, )) .ok_or_else(|| glib::bool_error!("Failed to create NetTimeProvider")) } } pub fn is_active(&self) -> bool { glib::ObjectExt::property(self, "active") } pub fn set_active(&self, active: bool) { glib::ObjectExt::set_property(self, "active", active) } pub fn address(&self) -> Option { glib::ObjectExt::property(self, "address") } pub fn clock(&self) -> Option { glib::ObjectExt::property(self, "clock") } pub fn port(&self) -> i32 { glib::ObjectExt::property(self, "port") } #[doc(alias = "qos-dscp")] pub fn qos_dscp(&self) -> i32 { glib::ObjectExt::property(self, "qos-dscp") } #[doc(alias = "qos-dscp")] pub fn set_qos_dscp(&self, qos_dscp: i32) { glib::ObjectExt::set_property(self, "qos-dscp", qos_dscp) } #[doc(alias = "active")] pub fn connect_active_notify( &self, f: F, ) -> SignalHandlerId { unsafe extern "C" fn notify_active_trampoline< F: Fn(&NetTimeProvider) + Send + Sync + 'static, >( this: *mut ffi::GstNetTimeProvider, _param_spec: glib::ffi::gpointer, f: glib::ffi::gpointer, ) { let f: &F = &*(f as *const F); f(&from_glib_borrow(this)) } unsafe { let f: Box_ = Box_::new(f); connect_raw( self.as_ptr() as *mut _, b"notify::active\0".as_ptr() as *const _, Some(transmute::<_, unsafe extern "C" fn()>( notify_active_trampoline:: as *const (), )), Box_::into_raw(f), ) } } #[doc(alias = "qos-dscp")] pub fn connect_qos_dscp_notify( &self, f: F, ) -> SignalHandlerId { unsafe extern "C" fn notify_qos_dscp_trampoline< F: Fn(&NetTimeProvider) + Send + Sync + 'static, >( this: *mut ffi::GstNetTimeProvider, _param_spec: glib::ffi::gpointer, f: glib::ffi::gpointer, ) { let f: &F = &*(f as *const F); f(&from_glib_borrow(this)) } unsafe { let f: Box_ = Box_::new(f); connect_raw( self.as_ptr() as *mut _, b"notify::qos-dscp\0".as_ptr() as *const _, Some(transmute::<_, unsafe extern "C" fn()>( notify_qos_dscp_trampoline:: as *const (), )), Box_::into_raw(f), ) } } } unsafe impl Send for NetTimeProvider {} unsafe impl Sync for NetTimeProvider {}