// Copyright (C) 2017 Sebastian Dröge // // Licensed under the Apache License, Version 2.0 or the MIT license // , at your // option. This file may not be copied, modified, or distributed // except according to those terms. use Pad; use PadTemplate; use GhostPad; use ffi; use glib::object::Downcast; use glib::object::IsA; use glib::translate::*; impl GhostPad { pub fn new<'a, P: Into>, Q: IsA>(name: P, target: &Q) -> Option { skip_assert_initialized!(); let name = name.into(); let name = name.to_glib_none(); unsafe { Option::::from_glib_none(ffi::gst_ghost_pad_new(name.0, target.to_glib_none().0)) .map(|o| Downcast::downcast_unchecked(o)) } } pub fn new_from_template<'a, P: Into>, Q: IsA>( name: P, target: &Q, templ: &PadTemplate, ) -> Option { skip_assert_initialized!(); let name = name.into(); let name = name.to_glib_none(); unsafe { Option::::from_glib_none(ffi::gst_ghost_pad_new_from_template( name.0, target.to_glib_none().0, templ.to_glib_none().0, )).map(|o| Downcast::downcast_unchecked(o)) } } }