use crate::{ElementMonitor, Monitor, Reporter, Runner};
use glib::{prelude::*, translate::*};
glib::wrapper! {
#[doc(alias = "GstValidatePadMonitor")]
pub struct PadMonitor(Object<ffi::GstValidatePadMonitor, ffi::GstValidatePadMonitorClass>) @extends Monitor, gst::Object, @implements Reporter;
match fn {
type_ => || ffi::gst_validate_pad_monitor_get_type(),
}
}
impl PadMonitor {
pub const NONE: Option<&'static PadMonitor> = None;
#[doc(alias = "gst_validate_pad_monitor_new")]
pub fn new(
pad: &impl IsA<gst::Pad>,
runner: &impl IsA<Runner>,
parent: Option<&impl IsA<ElementMonitor>>,
) -> PadMonitor {
skip_assert_initialized!();
unsafe {
from_glib_full(ffi::gst_validate_pad_monitor_new(
pad.as_ref().to_glib_none().0,
runner.as_ref().to_glib_none().0,
parent.map(|p| p.as_ref()).to_glib_none().0,
))
}
}
}
unsafe impl Send for PadMonitor {}
unsafe impl Sync for PadMonitor {}