gstreamer_video/auto/
video_overlay.rs1use crate::ffi;
7use glib::{prelude::*, translate::*};
8
9glib::wrapper! {
10 #[doc(alias = "GstVideoOverlay")]
11 pub struct VideoOverlay(Interface<ffi::GstVideoOverlay, ffi::GstVideoOverlayInterface>);
12
13 match fn {
14 type_ => || ffi::gst_video_overlay_get_type(),
15 }
16}
17
18impl VideoOverlay {
19 pub const NONE: Option<&'static VideoOverlay> = None;
20
21 }
26
27unsafe impl Send for VideoOverlay {}
28unsafe impl Sync for VideoOverlay {}
29
30mod sealed {
31 pub trait Sealed {}
32 impl<T: super::IsA<super::VideoOverlay>> Sealed for T {}
33}
34
35pub trait VideoOverlayExt: IsA<VideoOverlay> + sealed::Sealed + 'static {
36 #[doc(alias = "gst_video_overlay_expose")]
37 fn expose(&self) {
38 unsafe {
39 ffi::gst_video_overlay_expose(self.as_ref().to_glib_none().0);
40 }
41 }
42
43 #[doc(alias = "gst_video_overlay_handle_events")]
49 fn handle_events(&self, handle_events: bool) {
50 unsafe {
51 ffi::gst_video_overlay_handle_events(
52 self.as_ref().to_glib_none().0,
53 handle_events.into_glib(),
54 );
55 }
56 }
57
58 #[doc(alias = "gst_video_overlay_prepare_window_handle")]
59 fn prepare_window_handle(&self) {
60 unsafe {
61 ffi::gst_video_overlay_prepare_window_handle(self.as_ref().to_glib_none().0);
62 }
63 }
64
65 #[doc(alias = "gst_video_overlay_set_render_rectangle")]
66 fn set_render_rectangle(
67 &self,
68 x: i32,
69 y: i32,
70 width: i32,
71 height: i32,
72 ) -> Result<(), glib::error::BoolError> {
73 unsafe {
74 glib::result_from_gboolean!(
75 ffi::gst_video_overlay_set_render_rectangle(
76 self.as_ref().to_glib_none().0,
77 x,
78 y,
79 width,
80 height
81 ),
82 "Failed to set render rectangle"
83 )
84 }
85 }
86}
87
88impl<O: IsA<VideoOverlay>> VideoOverlayExt for O {}