gstreamer_validate/auto/
runner.rs1use crate::{Report, ReportingDetails, ffi};
7use glib::{
8 object::ObjectType as _,
9 prelude::*,
10 signal::{SignalHandlerId, connect_raw},
11 translate::*,
12};
13use std::boxed::Box as Box_;
14
15glib::wrapper! {
16 #[doc(alias = "GstValidateRunner")]
17 pub struct Runner(Object<ffi::GstValidateRunner, ffi::GstValidateRunnerClass>) @extends gst::Object;
18
19 match fn {
20 type_ => || ffi::gst_validate_runner_get_type(),
21 }
22}
23
24impl Runner {
25 pub const NONE: Option<&'static Runner> = None;
26
27 #[doc(alias = "gst_validate_runner_new")]
28 pub fn new() -> Runner {
29 assert_initialized_main_thread!();
30 unsafe { from_glib_none(ffi::gst_validate_runner_new()) }
31 }
32}
33
34impl Default for Runner {
35 fn default() -> Self {
36 Self::new()
37 }
38}
39
40unsafe impl Send for Runner {}
41unsafe impl Sync for Runner {}
42
43pub trait RunnerExt: IsA<Runner> + 'static {
44 #[doc(alias = "gst_validate_runner_add_report")]
45 fn add_report(&self, report: &Report) {
46 unsafe {
47 ffi::gst_validate_runner_add_report(
48 self.as_ref().to_glib_none().0,
49 report.to_glib_none().0,
50 );
51 }
52 }
53
54 #[doc(alias = "gst_validate_runner_exit")]
55 fn exit(&self, print_result: bool) -> i32 {
56 unsafe {
57 ffi::gst_validate_runner_exit(self.as_ref().to_glib_none().0, print_result.into_glib())
58 }
59 }
60
61 #[doc(alias = "gst_validate_runner_get_default_reporting_level")]
62 #[doc(alias = "get_default_reporting_level")]
63 fn default_reporting_level(&self) -> ReportingDetails {
64 unsafe {
65 from_glib(ffi::gst_validate_runner_get_default_reporting_level(
66 self.as_ref().to_glib_none().0,
67 ))
68 }
69 }
70
71 #[doc(alias = "gst_validate_runner_get_reporting_level_for_name")]
72 #[doc(alias = "get_reporting_level_for_name")]
73 fn reporting_level_for_name(&self, name: &str) -> ReportingDetails {
74 unsafe {
75 from_glib(ffi::gst_validate_runner_get_reporting_level_for_name(
76 self.as_ref().to_glib_none().0,
77 name.to_glib_none().0,
78 ))
79 }
80 }
81
82 #[doc(alias = "gst_validate_runner_get_reports")]
83 #[doc(alias = "get_reports")]
84 fn reports(&self) -> Vec<Report> {
85 unsafe {
86 FromGlibPtrContainer::from_glib_full(ffi::gst_validate_runner_get_reports(
87 self.as_ref().to_glib_none().0,
88 ))
89 }
90 }
91
92 #[doc(alias = "gst_validate_runner_get_reports_count")]
93 #[doc(alias = "get_reports_count")]
94 fn reports_count(&self) -> u32 {
95 unsafe { ffi::gst_validate_runner_get_reports_count(self.as_ref().to_glib_none().0) }
96 }
97
98 #[doc(alias = "gst_validate_runner_printf")]
99 fn printf(&self) -> i32 {
100 unsafe { ffi::gst_validate_runner_printf(self.as_ref().to_glib_none().0) }
101 }
102
103 #[doc(alias = "report-added")]
104 fn connect_report_added<F: Fn(&Self, &Report) + Send + Sync + 'static>(
105 &self,
106 f: F,
107 ) -> SignalHandlerId {
108 unsafe extern "C" fn report_added_trampoline<
109 P: IsA<Runner>,
110 F: Fn(&P, &Report) + Send + Sync + 'static,
111 >(
112 this: *mut ffi::GstValidateRunner,
113 object: *mut ffi::GstValidateReport,
114 f: glib::ffi::gpointer,
115 ) {
116 unsafe {
117 let f: &F = &*(f as *const F);
118 f(
119 Runner::from_glib_borrow(this).unsafe_cast_ref(),
120 &from_glib_borrow(object),
121 )
122 }
123 }
124 unsafe {
125 let f: Box_<F> = Box_::new(f);
126 connect_raw(
127 self.as_ptr() as *mut _,
128 c"report-added".as_ptr() as *const _,
129 Some(std::mem::transmute::<*const (), unsafe extern "C" fn()>(
130 report_added_trampoline::<Self, F> as *const (),
131 )),
132 Box_::into_raw(f),
133 )
134 }
135 }
136
137 #[doc(alias = "stopping")]
138 fn connect_stopping<F: Fn(&Self) + Send + Sync + 'static>(&self, f: F) -> SignalHandlerId {
139 unsafe extern "C" fn stopping_trampoline<
140 P: IsA<Runner>,
141 F: Fn(&P) + Send + Sync + 'static,
142 >(
143 this: *mut ffi::GstValidateRunner,
144 f: glib::ffi::gpointer,
145 ) {
146 unsafe {
147 let f: &F = &*(f as *const F);
148 f(Runner::from_glib_borrow(this).unsafe_cast_ref())
149 }
150 }
151 unsafe {
152 let f: Box_<F> = Box_::new(f);
153 connect_raw(
154 self.as_ptr() as *mut _,
155 c"stopping".as_ptr() as *const _,
156 Some(std::mem::transmute::<*const (), unsafe extern "C" fn()>(
157 stopping_trampoline::<Self, F> as *const (),
158 )),
159 Box_::into_raw(f),
160 )
161 }
162 }
163}
164
165impl<O: IsA<Runner>> RunnerExt for O {}