// This file was generated by gir (https://github.com/gtk-rs/gir) // from gir-files (https://github.com/gtk-rs/gir-files) // DO NOT EDIT use Object; use Pad; use PadDirection; use PadTemplate; use ProxyPad; use ffi; use glib; use glib::object::Cast; use glib::object::IsA; use glib::translate::*; glib_wrapper! { pub struct GhostPad(Object) @extends ProxyPad, Pad, Object; match fn { get_type => || ffi::gst_ghost_pad_get_type(), } } impl GhostPad { pub fn new_no_target<'a, P: Into>>(name: P, dir: PadDirection) -> GhostPad { assert_initialized_main_thread!(); let name = name.into(); unsafe { Pad::from_glib_none(ffi::gst_ghost_pad_new_no_target(name.to_glib_none().0, dir.to_glib())).unsafe_cast() } } pub fn new_no_target_from_template<'a, P: Into>, Q: IsA>(name: P, templ: &Q) -> GhostPad { skip_assert_initialized!(); let name = name.into(); unsafe { Pad::from_glib_none(ffi::gst_ghost_pad_new_no_target_from_template(name.to_glib_none().0, templ.as_ref().to_glib_none().0)).unsafe_cast() } } } unsafe impl Send for GhostPad {} unsafe impl Sync for GhostPad {} pub const NONE_GHOST_PAD: Option<&GhostPad> = None; pub trait GhostPadExt: 'static { fn get_target(&self) -> Option; fn set_target<'a, P: IsA + 'a, Q: Into>>(&self, newtarget: Q) -> Result<(), glib::error::BoolError>; } impl> GhostPadExt for O { fn get_target(&self) -> Option { unsafe { from_glib_full(ffi::gst_ghost_pad_get_target(self.as_ref().to_glib_none().0)) } } fn set_target<'a, P: IsA + 'a, Q: Into>>(&self, newtarget: Q) -> Result<(), glib::error::BoolError> { let newtarget = newtarget.into(); unsafe { glib_result_from_gboolean!(ffi::gst_ghost_pad_set_target(self.as_ref().to_glib_none().0, newtarget.map(|p| p.as_ref()).to_glib_none().0), "Failed to set target") } } }