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