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 6 use crate::PlayerVideoRenderer; 7 use glib::object::IsA; 8 use glib::object::ObjectType as ObjectType_; 9 use glib::signal::connect_raw; 10 use glib::signal::SignalHandlerId; 11 use glib::translate::*; 12 use glib::StaticType; 13 use glib::ToValue; 14 use std::boxed::Box as Box_; 15 use std::mem; 16 use std::mem::transmute; 17 18 glib::wrapper! { 19 #[doc(alias = "GstPlayerVideoOverlayVideoRenderer")] 20 pub struct PlayerVideoOverlayVideoRenderer(Object<ffi::GstPlayerVideoOverlayVideoRenderer, ffi::GstPlayerVideoOverlayVideoRendererClass>) @implements PlayerVideoRenderer; 21 22 match fn { 23 type_ => || ffi::gst_player_video_overlay_video_renderer_get_type(), 24 } 25 } 26 27 impl PlayerVideoOverlayVideoRenderer { 28 #[doc(alias = "gst_player_video_overlay_video_renderer_expose")] expose(&self)29 pub fn expose(&self) { 30 unsafe { 31 ffi::gst_player_video_overlay_video_renderer_expose(self.to_glib_none().0); 32 } 33 } 34 35 #[doc(alias = "gst_player_video_overlay_video_renderer_get_render_rectangle")] 36 #[doc(alias = "get_render_rectangle")] render_rectangle(&self) -> (i32, i32, i32, i32)37 pub fn render_rectangle(&self) -> (i32, i32, i32, i32) { 38 unsafe { 39 let mut x = mem::MaybeUninit::uninit(); 40 let mut y = mem::MaybeUninit::uninit(); 41 let mut width = mem::MaybeUninit::uninit(); 42 let mut height = mem::MaybeUninit::uninit(); 43 ffi::gst_player_video_overlay_video_renderer_get_render_rectangle( 44 self.to_glib_none().0, 45 x.as_mut_ptr(), 46 y.as_mut_ptr(), 47 width.as_mut_ptr(), 48 height.as_mut_ptr(), 49 ); 50 let x = x.assume_init(); 51 let y = y.assume_init(); 52 let width = width.assume_init(); 53 let height = height.assume_init(); 54 (x, y, width, height) 55 } 56 } 57 58 #[doc(alias = "gst_player_video_overlay_video_renderer_set_render_rectangle")] set_render_rectangle(&self, x: i32, y: i32, width: i32, height: i32)59 pub fn set_render_rectangle(&self, x: i32, y: i32, width: i32, height: i32) { 60 unsafe { 61 ffi::gst_player_video_overlay_video_renderer_set_render_rectangle( 62 self.to_glib_none().0, 63 x, 64 y, 65 width, 66 height, 67 ); 68 } 69 } 70 71 #[doc(alias = "video-sink")] video_sink(&self) -> Option<gst::Element>72 pub fn video_sink(&self) -> Option<gst::Element> { 73 unsafe { 74 let mut value = glib::Value::from_type(<gst::Element as StaticType>::static_type()); 75 glib::gobject_ffi::g_object_get_property( 76 self.as_ptr() as *mut glib::gobject_ffi::GObject, 77 b"video-sink\0".as_ptr() as *const _, 78 value.to_glib_none_mut().0, 79 ); 80 value 81 .get() 82 .expect("Return Value for property `video-sink` getter") 83 } 84 } 85 86 #[doc(alias = "video-sink")] set_video_sink<P: IsA<gst::Element>>(&self, video_sink: Option<&P>)87 pub fn set_video_sink<P: IsA<gst::Element>>(&self, video_sink: Option<&P>) { 88 unsafe { 89 glib::gobject_ffi::g_object_set_property( 90 self.as_ptr() as *mut glib::gobject_ffi::GObject, 91 b"video-sink\0".as_ptr() as *const _, 92 video_sink.to_value().to_glib_none().0, 93 ); 94 } 95 } 96 97 #[doc(alias = "video-sink")] connect_video_sink_notify<F: Fn(&Self) + Send + Sync + 'static>( &self, f: F, ) -> SignalHandlerId98 pub fn connect_video_sink_notify<F: Fn(&Self) + Send + Sync + 'static>( 99 &self, 100 f: F, 101 ) -> SignalHandlerId { 102 unsafe extern "C" fn notify_video_sink_trampoline< 103 F: Fn(&PlayerVideoOverlayVideoRenderer) + Send + Sync + 'static, 104 >( 105 this: *mut ffi::GstPlayerVideoOverlayVideoRenderer, 106 _param_spec: glib::ffi::gpointer, 107 f: glib::ffi::gpointer, 108 ) { 109 let f: &F = &*(f as *const F); 110 f(&from_glib_borrow(this)) 111 } 112 unsafe { 113 let f: Box_<F> = Box_::new(f); 114 connect_raw( 115 self.as_ptr() as *mut _, 116 b"notify::video-sink\0".as_ptr() as *const _, 117 Some(transmute::<_, unsafe extern "C" fn()>( 118 notify_video_sink_trampoline::<F> as *const (), 119 )), 120 Box_::into_raw(f), 121 ) 122 } 123 } 124 125 #[doc(alias = "window-handle")] connect_window_handle_notify<F: Fn(&Self) + Send + Sync + 'static>( &self, f: F, ) -> SignalHandlerId126 pub fn connect_window_handle_notify<F: Fn(&Self) + Send + Sync + 'static>( 127 &self, 128 f: F, 129 ) -> SignalHandlerId { 130 unsafe extern "C" fn notify_window_handle_trampoline< 131 F: Fn(&PlayerVideoOverlayVideoRenderer) + Send + Sync + 'static, 132 >( 133 this: *mut ffi::GstPlayerVideoOverlayVideoRenderer, 134 _param_spec: glib::ffi::gpointer, 135 f: glib::ffi::gpointer, 136 ) { 137 let f: &F = &*(f as *const F); 138 f(&from_glib_borrow(this)) 139 } 140 unsafe { 141 let f: Box_<F> = Box_::new(f); 142 connect_raw( 143 self.as_ptr() as *mut _, 144 b"notify::window-handle\0".as_ptr() as *const _, 145 Some(transmute::<_, unsafe extern "C" fn()>( 146 notify_window_handle_trampoline::<F> as *const (), 147 )), 148 Box_::into_raw(f), 149 ) 150 } 151 } 152 } 153 154 unsafe impl Send for PlayerVideoOverlayVideoRenderer {} 155 unsafe impl Sync for PlayerVideoOverlayVideoRenderer {} 156