2017-06-29 06:02:08 +00:00
// This file was generated by gir (33e9567) from gir-files (???)
2017-05-12 12:24:03 +00:00
// DO NOT EDIT
use Element ;
#[ cfg(feature = " v1_4 " ) ]
use FlowReturn ;
use Format ;
use Object ;
use PadDirection ;
use PadTemplate ;
use ffi ;
use glib ;
use glib ::Value ;
use glib ::object ::Downcast ;
use glib ::object ::IsA ;
use glib ::signal ::connect ;
use glib ::translate ::* ;
use glib_ffi ;
use gobject_ffi ;
use libc ;
use std ::boxed ::Box as Box_ ;
use std ::mem ;
use std ::mem ::transmute ;
glib_wrapper! {
pub struct Pad ( Object < ffi ::GstPad > ) : Object ;
match fn {
get_type = > | | ffi ::gst_pad_get_type ( ) ,
}
}
impl Pad {
pub fn new < ' a , P : Into < Option < & ' a str > > > ( name : P , direction : PadDirection ) -> Pad {
let name = name . into ( ) ;
let name = name . to_glib_none ( ) ;
unsafe {
from_glib_none ( ffi ::gst_pad_new ( name . 0 , direction . to_glib ( ) ) )
}
}
//pub fn new_from_static_template(templ: /*Ignored*/&mut StaticPadTemplate, name: &str) -> Pad {
// unsafe { TODO: call ffi::gst_pad_new_from_static_template() }
//}
pub fn new_from_template < ' a , P : Into < Option < & ' a str > > > ( templ : & PadTemplate , name : P ) -> Pad {
let name = name . into ( ) ;
let name = name . to_glib_none ( ) ;
unsafe {
from_glib_none ( ffi ::gst_pad_new_from_template ( templ . to_glib_none ( ) . 0 , name . 0 ) )
}
}
//#[cfg(feature = "v1_4")]
//pub fn link_get_name(ret: /*Ignored*/PadLinkReturn) -> Option<String> {
// unsafe { TODO: call ffi::gst_pad_link_get_name() }
//}
}
2017-06-25 08:04:37 +00:00
unsafe impl Send for Pad { }
unsafe impl Sync for Pad { }
2017-05-12 12:24:03 +00:00
pub trait PadExt {
//fn activate_mode(&self, mode: /*Ignored*/PadMode, active: bool) -> bool;
//fn add_probe<P: Into<Option</*Unimplemented*/Fundamental: Pointer>>>(&self, mask: /*Ignored*/PadProbeType, callback: /*Unknown conversion*//*Unimplemented*/PadProbeCallback, user_data: P, destroy_data: /*Unknown conversion*//*Unimplemented*/DestroyNotify) -> libc::c_ulong;
fn can_link < P : IsA < Pad > > ( & self , sinkpad : & P ) -> bool ;
//fn chain(&self, buffer: /*Ignored*/&mut Buffer) -> FlowReturn;
//fn chain_list(&self, list: /*Ignored*/&mut BufferList) -> FlowReturn;
fn check_reconfigure ( & self ) -> bool ;
fn create_stream_id < ' a , P : IsA < Element > , Q : Into < Option < & ' a str > > > ( & self , parent : & P , stream_id : Q ) -> Option < String > ;
//fn create_stream_id_printf<'a, P: IsA<Element>, Q: Into<Option<&'a str>>>(&self, parent: &P, stream_id: Q, : /*Unknown conversion*//*Unimplemented*/Fundamental: VarArgs) -> Option<String>;
//fn create_stream_id_printf_valist<'a, P: IsA<Element>, Q: Into<Option<&'a str>>>(&self, parent: &P, stream_id: Q, var_args: /*Unknown conversion*//*Unimplemented*/Unsupported) -> Option<String>;
//fn event_default<'a, P: IsA<Object> + 'a, Q: Into<Option<&'a P>>>(&self, parent: Q, event: /*Ignored*/&mut Event) -> bool;
//fn forward<P: Into<Option</*Unimplemented*/Fundamental: Pointer>>>(&self, forward: /*Unknown conversion*//*Unimplemented*/PadForwardFunction, user_data: P) -> bool;
//fn get_allowed_caps(&self) -> /*Ignored*/Option<Caps>;
//fn get_current_caps(&self) -> /*Ignored*/Option<Caps>;
fn get_direction ( & self ) -> PadDirection ;
//fn get_element_private(&self) -> /*Unimplemented*/Option<Fundamental: Pointer>;
#[ cfg(feature = " v1_4 " ) ]
fn get_last_flow_return ( & self ) -> FlowReturn ;
fn get_offset ( & self ) -> i64 ;
fn get_pad_template ( & self ) -> Option < PadTemplate > ;
//fn get_pad_template_caps(&self) -> /*Ignored*/Option<Caps>;
fn get_parent_element ( & self ) -> Option < Element > ;
fn get_peer ( & self ) -> Option < Pad > ;
//fn get_range(&self, offset: u64, size: u32, buffer: /*Ignored*/Buffer) -> FlowReturn;
//fn get_sticky_event(&self, event_type: /*Ignored*/EventType, idx: u32) -> /*Ignored*/Option<Event>;
//#[cfg(feature = "v1_10")]
//fn get_stream(&self) -> /*Ignored*/Option<Stream>;
#[ cfg(feature = " v1_2 " ) ]
fn get_stream_id ( & self ) -> Option < String > ;
//#[cfg(feature = "v1_12")]
//fn get_task_state(&self) -> /*Ignored*/TaskState;
fn has_current_caps ( & self ) -> bool ;
fn is_active ( & self ) -> bool ;
fn is_blocked ( & self ) -> bool ;
fn is_blocking ( & self ) -> bool ;
fn is_linked ( & self ) -> bool ;
//fn iterate_internal_links(&self) -> /*Ignored*/Option<Iterator>;
//fn iterate_internal_links_default<'a, P: IsA<Object> + 'a, Q: Into<Option<&'a P>>>(&self, parent: Q) -> /*Ignored*/Option<Iterator>;
//fn link<P: IsA<Pad>>(&self, sinkpad: &P) -> /*Ignored*/PadLinkReturn;
//fn link_full<P: IsA<Pad>>(&self, sinkpad: &P, flags: /*Ignored*/PadLinkCheck) -> /*Ignored*/PadLinkReturn;
#[ cfg(feature = " v1_10 " ) ]
2017-06-24 09:02:24 +00:00
fn link_maybe_ghosting < P : IsA < Pad > > ( & self , sink : & P ) -> Result < ( ) , glib ::error ::BoolError > ;
2017-05-12 12:24:03 +00:00
//#[cfg(feature = "v1_10")]
//fn link_maybe_ghosting_full<P: IsA<Pad>>(&self, sink: &P, flags: /*Ignored*/PadLinkCheck) -> bool;
fn mark_reconfigure ( & self ) ;
fn needs_reconfigure ( & self ) -> bool ;
2017-06-24 09:02:24 +00:00
fn pause_task ( & self ) -> Result < ( ) , glib ::error ::BoolError > ;
2017-05-12 12:24:03 +00:00
//fn peer_query(&self, query: /*Ignored*/&mut Query) -> bool;
//fn peer_query_accept_caps(&self, caps: /*Ignored*/&mut Caps) -> bool;
//fn peer_query_caps<'a, P: Into<Option<&'a /*Ignored*/Caps>>>(&self, filter: P) -> /*Ignored*/Option<Caps>;
fn peer_query_convert ( & self , src_format : Format , src_val : i64 , dest_format : Format ) -> Option < i64 > ;
fn peer_query_duration ( & self , format : Format ) -> Option < i64 > ;
fn peer_query_position ( & self , format : Format ) -> Option < i64 > ;
//fn proxy_query_accept_caps(&self, query: /*Ignored*/&mut Query) -> bool;
//fn proxy_query_caps(&self, query: /*Ignored*/&mut Query) -> bool;
//fn pull_range(&self, offset: u64, size: u32, buffer: /*Ignored*/Buffer) -> FlowReturn;
//fn push(&self, buffer: /*Ignored*/&mut Buffer) -> FlowReturn;
//fn push_event(&self, event: /*Ignored*/&mut Event) -> bool;
//fn push_list(&self, list: /*Ignored*/&mut BufferList) -> FlowReturn;
//fn query(&self, query: /*Ignored*/&mut Query) -> bool;
//fn query_accept_caps(&self, caps: /*Ignored*/&mut Caps) -> bool;
//fn query_caps<'a, P: Into<Option<&'a /*Ignored*/Caps>>>(&self, filter: P) -> /*Ignored*/Option<Caps>;
fn query_convert ( & self , src_format : Format , src_val : i64 , dest_format : Format ) -> Option < i64 > ;
//fn query_default<'a, P: IsA<Object> + 'a, Q: Into<Option<&'a P>>>(&self, parent: Q, query: /*Ignored*/&mut Query) -> bool;
fn query_duration ( & self , format : Format ) -> Option < i64 > ;
fn query_position ( & self , format : Format ) -> Option < i64 > ;
fn remove_probe ( & self , id : libc ::c_ulong ) ;
//fn send_event(&self, event: /*Ignored*/&mut Event) -> bool;
//fn set_activate_function_full<P: Into<Option</*Unimplemented*/Fundamental: Pointer>>>(&self, activate: /*Unknown conversion*//*Unimplemented*/PadActivateFunction, user_data: P, notify: /*Unknown conversion*//*Unimplemented*/DestroyNotify);
//fn set_activatemode_function_full<P: Into<Option</*Unimplemented*/Fundamental: Pointer>>>(&self, activatemode: /*Unknown conversion*//*Unimplemented*/PadActivateModeFunction, user_data: P, notify: /*Unknown conversion*//*Unimplemented*/DestroyNotify);
2017-06-24 09:02:24 +00:00
fn set_active ( & self , active : bool ) -> Result < ( ) , glib ::error ::BoolError > ;
2017-05-12 12:24:03 +00:00
//fn set_chain_function_full<P: Into<Option</*Unimplemented*/Fundamental: Pointer>>>(&self, chain: /*Unknown conversion*//*Unimplemented*/PadChainFunction, user_data: P, notify: /*Unknown conversion*//*Unimplemented*/DestroyNotify);
//fn set_chain_list_function_full<P: Into<Option</*Unimplemented*/Fundamental: Pointer>>>(&self, chainlist: /*Unknown conversion*//*Unimplemented*/PadChainListFunction, user_data: P, notify: /*Unknown conversion*//*Unimplemented*/DestroyNotify);
//fn set_element_private<P: Into<Option</*Unimplemented*/Fundamental: Pointer>>>(&self, priv_: P);
//#[cfg(feature = "v1_8")]
//fn set_event_full_function_full<P: Into<Option</*Unimplemented*/Fundamental: Pointer>>>(&self, event: /*Unknown conversion*//*Unimplemented*/PadEventFullFunction, user_data: P, notify: /*Unknown conversion*//*Unimplemented*/DestroyNotify);
//fn set_event_function_full<P: Into<Option</*Unimplemented*/Fundamental: Pointer>>>(&self, event: /*Unknown conversion*//*Unimplemented*/PadEventFunction, user_data: P, notify: /*Unknown conversion*//*Unimplemented*/DestroyNotify);
//fn set_getrange_function_full<P: Into<Option</*Unimplemented*/Fundamental: Pointer>>>(&self, get: /*Unknown conversion*//*Unimplemented*/PadGetRangeFunction, user_data: P, notify: /*Unknown conversion*//*Unimplemented*/DestroyNotify);
//fn set_iterate_internal_links_function_full<P: Into<Option</*Unimplemented*/Fundamental: Pointer>>>(&self, iterintlink: /*Unknown conversion*//*Unimplemented*/PadIterIntLinkFunction, user_data: P, notify: /*Unknown conversion*//*Unimplemented*/DestroyNotify);
//fn set_link_function_full<P: Into<Option</*Unimplemented*/Fundamental: Pointer>>>(&self, link: /*Unknown conversion*//*Unimplemented*/PadLinkFunction, user_data: P, notify: /*Unknown conversion*//*Unimplemented*/DestroyNotify);
fn set_offset ( & self , offset : i64 ) ;
//fn set_query_function_full<P: Into<Option</*Unimplemented*/Fundamental: Pointer>>>(&self, query: /*Unknown conversion*//*Unimplemented*/PadQueryFunction, user_data: P, notify: /*Unknown conversion*//*Unimplemented*/DestroyNotify);
//fn set_unlink_function_full<P: Into<Option</*Unimplemented*/Fundamental: Pointer>>>(&self, unlink: /*Unknown conversion*//*Unimplemented*/PadUnlinkFunction, user_data: P, notify: /*Unknown conversion*//*Unimplemented*/DestroyNotify);
//fn start_task<P: Into<Option</*Unimplemented*/Fundamental: Pointer>>>(&self, func: /*Unknown conversion*//*Unimplemented*/TaskFunction, user_data: P, notify: /*Unknown conversion*//*Unimplemented*/DestroyNotify) -> bool;
//fn sticky_events_foreach<P: Into<Option</*Unimplemented*/Fundamental: Pointer>>>(&self, foreach_func: /*Unknown conversion*//*Unimplemented*/PadStickyEventsForeachFunction, user_data: P);
2017-06-24 09:02:24 +00:00
fn stop_task ( & self ) -> Result < ( ) , glib ::error ::BoolError > ;
2017-05-12 12:24:03 +00:00
//#[cfg(feature = "v1_2")]
//fn store_sticky_event(&self, event: /*Ignored*/&mut Event) -> FlowReturn;
2017-06-24 09:02:24 +00:00
fn unlink < P : IsA < Pad > > ( & self , sinkpad : & P ) -> Result < ( ) , glib ::error ::BoolError > ;
2017-05-12 12:24:03 +00:00
fn use_fixed_caps ( & self ) ;
//fn get_property_caps(&self) -> /*Ignored*/Option<Caps>;
fn get_property_template ( & self ) -> Option < PadTemplate > ;
fn set_property_template ( & self , template : Option < & PadTemplate > ) ;
2017-06-25 08:04:37 +00:00
fn connect_linked < F : Fn ( & Self , & Pad ) + Send + Sync + 'static > ( & self , f : F ) -> u64 ;
2017-05-12 12:24:03 +00:00
2017-06-25 08:04:37 +00:00
fn connect_unlinked < F : Fn ( & Self , & Pad ) + Send + Sync + 'static > ( & self , f : F ) -> u64 ;
2017-05-12 12:24:03 +00:00
}
impl < O : IsA < Pad > + IsA < glib ::object ::Object > > PadExt for O {
//fn activate_mode(&self, mode: /*Ignored*/PadMode, active: bool) -> bool {
// unsafe { TODO: call ffi::gst_pad_activate_mode() }
//}
//fn add_probe<P: Into<Option</*Unimplemented*/Fundamental: Pointer>>>(&self, mask: /*Ignored*/PadProbeType, callback: /*Unknown conversion*//*Unimplemented*/PadProbeCallback, user_data: P, destroy_data: /*Unknown conversion*//*Unimplemented*/DestroyNotify) -> libc::c_ulong {
// unsafe { TODO: call ffi::gst_pad_add_probe() }
//}
fn can_link < P : IsA < Pad > > ( & self , sinkpad : & P ) -> bool {
unsafe {
from_glib ( ffi ::gst_pad_can_link ( self . to_glib_none ( ) . 0 , sinkpad . to_glib_none ( ) . 0 ) )
}
}
//fn chain(&self, buffer: /*Ignored*/&mut Buffer) -> FlowReturn {
// unsafe { TODO: call ffi::gst_pad_chain() }
//}
//fn chain_list(&self, list: /*Ignored*/&mut BufferList) -> FlowReturn {
// unsafe { TODO: call ffi::gst_pad_chain_list() }
//}
fn check_reconfigure ( & self ) -> bool {
unsafe {
from_glib ( ffi ::gst_pad_check_reconfigure ( self . to_glib_none ( ) . 0 ) )
}
}
fn create_stream_id < ' a , P : IsA < Element > , Q : Into < Option < & ' a str > > > ( & self , parent : & P , stream_id : Q ) -> Option < String > {
let stream_id = stream_id . into ( ) ;
let stream_id = stream_id . to_glib_none ( ) ;
unsafe {
from_glib_full ( ffi ::gst_pad_create_stream_id ( self . to_glib_none ( ) . 0 , parent . to_glib_none ( ) . 0 , stream_id . 0 ) )
}
}
//fn create_stream_id_printf<'a, P: IsA<Element>, Q: Into<Option<&'a str>>>(&self, parent: &P, stream_id: Q, : /*Unknown conversion*//*Unimplemented*/Fundamental: VarArgs) -> Option<String> {
// unsafe { TODO: call ffi::gst_pad_create_stream_id_printf() }
//}
//fn create_stream_id_printf_valist<'a, P: IsA<Element>, Q: Into<Option<&'a str>>>(&self, parent: &P, stream_id: Q, var_args: /*Unknown conversion*//*Unimplemented*/Unsupported) -> Option<String> {
// unsafe { TODO: call ffi::gst_pad_create_stream_id_printf_valist() }
//}
//fn event_default<'a, P: IsA<Object> + 'a, Q: Into<Option<&'a P>>>(&self, parent: Q, event: /*Ignored*/&mut Event) -> bool {
// unsafe { TODO: call ffi::gst_pad_event_default() }
//}
//fn forward<P: Into<Option</*Unimplemented*/Fundamental: Pointer>>>(&self, forward: /*Unknown conversion*//*Unimplemented*/PadForwardFunction, user_data: P) -> bool {
// unsafe { TODO: call ffi::gst_pad_forward() }
//}
//fn get_allowed_caps(&self) -> /*Ignored*/Option<Caps> {
// unsafe { TODO: call ffi::gst_pad_get_allowed_caps() }
//}
//fn get_current_caps(&self) -> /*Ignored*/Option<Caps> {
// unsafe { TODO: call ffi::gst_pad_get_current_caps() }
//}
fn get_direction ( & self ) -> PadDirection {
unsafe {
from_glib ( ffi ::gst_pad_get_direction ( self . to_glib_none ( ) . 0 ) )
}
}
//fn get_element_private(&self) -> /*Unimplemented*/Option<Fundamental: Pointer> {
// unsafe { TODO: call ffi::gst_pad_get_element_private() }
//}
#[ cfg(feature = " v1_4 " ) ]
fn get_last_flow_return ( & self ) -> FlowReturn {
unsafe {
from_glib ( ffi ::gst_pad_get_last_flow_return ( self . to_glib_none ( ) . 0 ) )
}
}
fn get_offset ( & self ) -> i64 {
unsafe {
ffi ::gst_pad_get_offset ( self . to_glib_none ( ) . 0 )
}
}
fn get_pad_template ( & self ) -> Option < PadTemplate > {
unsafe {
from_glib_full ( ffi ::gst_pad_get_pad_template ( self . to_glib_none ( ) . 0 ) )
}
}
//fn get_pad_template_caps(&self) -> /*Ignored*/Option<Caps> {
// unsafe { TODO: call ffi::gst_pad_get_pad_template_caps() }
//}
fn get_parent_element ( & self ) -> Option < Element > {
unsafe {
from_glib_full ( ffi ::gst_pad_get_parent_element ( self . to_glib_none ( ) . 0 ) )
}
}
fn get_peer ( & self ) -> Option < Pad > {
unsafe {
from_glib_full ( ffi ::gst_pad_get_peer ( self . to_glib_none ( ) . 0 ) )
}
}
//fn get_range(&self, offset: u64, size: u32, buffer: /*Ignored*/Buffer) -> FlowReturn {
// unsafe { TODO: call ffi::gst_pad_get_range() }
//}
//fn get_sticky_event(&self, event_type: /*Ignored*/EventType, idx: u32) -> /*Ignored*/Option<Event> {
// unsafe { TODO: call ffi::gst_pad_get_sticky_event() }
//}
//#[cfg(feature = "v1_10")]
//fn get_stream(&self) -> /*Ignored*/Option<Stream> {
// unsafe { TODO: call ffi::gst_pad_get_stream() }
//}
#[ cfg(feature = " v1_2 " ) ]
fn get_stream_id ( & self ) -> Option < String > {
unsafe {
from_glib_full ( ffi ::gst_pad_get_stream_id ( self . to_glib_none ( ) . 0 ) )
}
}
//#[cfg(feature = "v1_12")]
//fn get_task_state(&self) -> /*Ignored*/TaskState {
// unsafe { TODO: call ffi::gst_pad_get_task_state() }
//}
fn has_current_caps ( & self ) -> bool {
unsafe {
from_glib ( ffi ::gst_pad_has_current_caps ( self . to_glib_none ( ) . 0 ) )
}
}
fn is_active ( & self ) -> bool {
unsafe {
from_glib ( ffi ::gst_pad_is_active ( self . to_glib_none ( ) . 0 ) )
}
}
fn is_blocked ( & self ) -> bool {
unsafe {
from_glib ( ffi ::gst_pad_is_blocked ( self . to_glib_none ( ) . 0 ) )
}
}
fn is_blocking ( & self ) -> bool {
unsafe {
from_glib ( ffi ::gst_pad_is_blocking ( self . to_glib_none ( ) . 0 ) )
}
}
fn is_linked ( & self ) -> bool {
unsafe {
from_glib ( ffi ::gst_pad_is_linked ( self . to_glib_none ( ) . 0 ) )
}
}
//fn iterate_internal_links(&self) -> /*Ignored*/Option<Iterator> {
// unsafe { TODO: call ffi::gst_pad_iterate_internal_links() }
//}
//fn iterate_internal_links_default<'a, P: IsA<Object> + 'a, Q: Into<Option<&'a P>>>(&self, parent: Q) -> /*Ignored*/Option<Iterator> {
// unsafe { TODO: call ffi::gst_pad_iterate_internal_links_default() }
//}
//fn link<P: IsA<Pad>>(&self, sinkpad: &P) -> /*Ignored*/PadLinkReturn {
// unsafe { TODO: call ffi::gst_pad_link() }
//}
//fn link_full<P: IsA<Pad>>(&self, sinkpad: &P, flags: /*Ignored*/PadLinkCheck) -> /*Ignored*/PadLinkReturn {
// unsafe { TODO: call ffi::gst_pad_link_full() }
//}
#[ cfg(feature = " v1_10 " ) ]
2017-06-24 09:02:24 +00:00
fn link_maybe_ghosting < P : IsA < Pad > > ( & self , sink : & P ) -> Result < ( ) , glib ::error ::BoolError > {
2017-05-12 12:24:03 +00:00
unsafe {
2017-06-24 09:02:24 +00:00
glib ::error ::BoolError ::from_glib ( ffi ::gst_pad_link_maybe_ghosting ( self . to_glib_none ( ) . 0 , sink . to_glib_none ( ) . 0 ) , " Failed to link pad, possibly ghosting " )
2017-05-12 12:24:03 +00:00
}
}
//#[cfg(feature = "v1_10")]
//fn link_maybe_ghosting_full<P: IsA<Pad>>(&self, sink: &P, flags: /*Ignored*/PadLinkCheck) -> bool {
// unsafe { TODO: call ffi::gst_pad_link_maybe_ghosting_full() }
//}
fn mark_reconfigure ( & self ) {
unsafe {
ffi ::gst_pad_mark_reconfigure ( self . to_glib_none ( ) . 0 ) ;
}
}
fn needs_reconfigure ( & self ) -> bool {
unsafe {
from_glib ( ffi ::gst_pad_needs_reconfigure ( self . to_glib_none ( ) . 0 ) )
}
}
2017-06-24 09:02:24 +00:00
fn pause_task ( & self ) -> Result < ( ) , glib ::error ::BoolError > {
2017-05-12 12:24:03 +00:00
unsafe {
2017-06-24 09:02:24 +00:00
glib ::error ::BoolError ::from_glib ( ffi ::gst_pad_pause_task ( self . to_glib_none ( ) . 0 ) , " Failed to pause pad task " )
2017-05-12 12:24:03 +00:00
}
}
//fn peer_query(&self, query: /*Ignored*/&mut Query) -> bool {
// unsafe { TODO: call ffi::gst_pad_peer_query() }
//}
//fn peer_query_accept_caps(&self, caps: /*Ignored*/&mut Caps) -> bool {
// unsafe { TODO: call ffi::gst_pad_peer_query_accept_caps() }
//}
//fn peer_query_caps<'a, P: Into<Option<&'a /*Ignored*/Caps>>>(&self, filter: P) -> /*Ignored*/Option<Caps> {
// unsafe { TODO: call ffi::gst_pad_peer_query_caps() }
//}
fn peer_query_convert ( & self , src_format : Format , src_val : i64 , dest_format : Format ) -> Option < i64 > {
unsafe {
let mut dest_val = mem ::uninitialized ( ) ;
let ret = from_glib ( ffi ::gst_pad_peer_query_convert ( self . to_glib_none ( ) . 0 , src_format . to_glib ( ) , src_val , dest_format . to_glib ( ) , & mut dest_val ) ) ;
if ret { Some ( dest_val ) } else { None }
}
}
fn peer_query_duration ( & self , format : Format ) -> Option < i64 > {
unsafe {
let mut duration = mem ::uninitialized ( ) ;
let ret = from_glib ( ffi ::gst_pad_peer_query_duration ( self . to_glib_none ( ) . 0 , format . to_glib ( ) , & mut duration ) ) ;
if ret { Some ( duration ) } else { None }
}
}
fn peer_query_position ( & self , format : Format ) -> Option < i64 > {
unsafe {
let mut cur = mem ::uninitialized ( ) ;
let ret = from_glib ( ffi ::gst_pad_peer_query_position ( self . to_glib_none ( ) . 0 , format . to_glib ( ) , & mut cur ) ) ;
if ret { Some ( cur ) } else { None }
}
}
//fn proxy_query_accept_caps(&self, query: /*Ignored*/&mut Query) -> bool {
// unsafe { TODO: call ffi::gst_pad_proxy_query_accept_caps() }
//}
//fn proxy_query_caps(&self, query: /*Ignored*/&mut Query) -> bool {
// unsafe { TODO: call ffi::gst_pad_proxy_query_caps() }
//}
//fn pull_range(&self, offset: u64, size: u32, buffer: /*Ignored*/Buffer) -> FlowReturn {
// unsafe { TODO: call ffi::gst_pad_pull_range() }
//}
//fn push(&self, buffer: /*Ignored*/&mut Buffer) -> FlowReturn {
// unsafe { TODO: call ffi::gst_pad_push() }
//}
//fn push_event(&self, event: /*Ignored*/&mut Event) -> bool {
// unsafe { TODO: call ffi::gst_pad_push_event() }
//}
//fn push_list(&self, list: /*Ignored*/&mut BufferList) -> FlowReturn {
// unsafe { TODO: call ffi::gst_pad_push_list() }
//}
//fn query(&self, query: /*Ignored*/&mut Query) -> bool {
// unsafe { TODO: call ffi::gst_pad_query() }
//}
//fn query_accept_caps(&self, caps: /*Ignored*/&mut Caps) -> bool {
// unsafe { TODO: call ffi::gst_pad_query_accept_caps() }
//}
//fn query_caps<'a, P: Into<Option<&'a /*Ignored*/Caps>>>(&self, filter: P) -> /*Ignored*/Option<Caps> {
// unsafe { TODO: call ffi::gst_pad_query_caps() }
//}
fn query_convert ( & self , src_format : Format , src_val : i64 , dest_format : Format ) -> Option < i64 > {
unsafe {
let mut dest_val = mem ::uninitialized ( ) ;
let ret = from_glib ( ffi ::gst_pad_query_convert ( self . to_glib_none ( ) . 0 , src_format . to_glib ( ) , src_val , dest_format . to_glib ( ) , & mut dest_val ) ) ;
if ret { Some ( dest_val ) } else { None }
}
}
//fn query_default<'a, P: IsA<Object> + 'a, Q: Into<Option<&'a P>>>(&self, parent: Q, query: /*Ignored*/&mut Query) -> bool {
// unsafe { TODO: call ffi::gst_pad_query_default() }
//}
fn query_duration ( & self , format : Format ) -> Option < i64 > {
unsafe {
let mut duration = mem ::uninitialized ( ) ;
let ret = from_glib ( ffi ::gst_pad_query_duration ( self . to_glib_none ( ) . 0 , format . to_glib ( ) , & mut duration ) ) ;
if ret { Some ( duration ) } else { None }
}
}
fn query_position ( & self , format : Format ) -> Option < i64 > {
unsafe {
let mut cur = mem ::uninitialized ( ) ;
let ret = from_glib ( ffi ::gst_pad_query_position ( self . to_glib_none ( ) . 0 , format . to_glib ( ) , & mut cur ) ) ;
if ret { Some ( cur ) } else { None }
}
}
fn remove_probe ( & self , id : libc ::c_ulong ) {
unsafe {
ffi ::gst_pad_remove_probe ( self . to_glib_none ( ) . 0 , id ) ;
}
}
//fn send_event(&self, event: /*Ignored*/&mut Event) -> bool {
// unsafe { TODO: call ffi::gst_pad_send_event() }
//}
//fn set_activate_function_full<P: Into<Option</*Unimplemented*/Fundamental: Pointer>>>(&self, activate: /*Unknown conversion*//*Unimplemented*/PadActivateFunction, user_data: P, notify: /*Unknown conversion*//*Unimplemented*/DestroyNotify) {
// unsafe { TODO: call ffi::gst_pad_set_activate_function_full() }
//}
//fn set_activatemode_function_full<P: Into<Option</*Unimplemented*/Fundamental: Pointer>>>(&self, activatemode: /*Unknown conversion*//*Unimplemented*/PadActivateModeFunction, user_data: P, notify: /*Unknown conversion*//*Unimplemented*/DestroyNotify) {
// unsafe { TODO: call ffi::gst_pad_set_activatemode_function_full() }
//}
2017-06-24 09:02:24 +00:00
fn set_active ( & self , active : bool ) -> Result < ( ) , glib ::error ::BoolError > {
2017-05-12 12:24:03 +00:00
unsafe {
2017-06-24 09:02:24 +00:00
glib ::error ::BoolError ::from_glib ( ffi ::gst_pad_set_active ( self . to_glib_none ( ) . 0 , active . to_glib ( ) ) , " Failed to activate pad " )
2017-05-12 12:24:03 +00:00
}
}
//fn set_chain_function_full<P: Into<Option</*Unimplemented*/Fundamental: Pointer>>>(&self, chain: /*Unknown conversion*//*Unimplemented*/PadChainFunction, user_data: P, notify: /*Unknown conversion*//*Unimplemented*/DestroyNotify) {
// unsafe { TODO: call ffi::gst_pad_set_chain_function_full() }
//}
//fn set_chain_list_function_full<P: Into<Option</*Unimplemented*/Fundamental: Pointer>>>(&self, chainlist: /*Unknown conversion*//*Unimplemented*/PadChainListFunction, user_data: P, notify: /*Unknown conversion*//*Unimplemented*/DestroyNotify) {
// unsafe { TODO: call ffi::gst_pad_set_chain_list_function_full() }
//}
//fn set_element_private<P: Into<Option</*Unimplemented*/Fundamental: Pointer>>>(&self, priv_: P) {
// unsafe { TODO: call ffi::gst_pad_set_element_private() }
//}
//#[cfg(feature = "v1_8")]
//fn set_event_full_function_full<P: Into<Option</*Unimplemented*/Fundamental: Pointer>>>(&self, event: /*Unknown conversion*//*Unimplemented*/PadEventFullFunction, user_data: P, notify: /*Unknown conversion*//*Unimplemented*/DestroyNotify) {
// unsafe { TODO: call ffi::gst_pad_set_event_full_function_full() }
//}
//fn set_event_function_full<P: Into<Option</*Unimplemented*/Fundamental: Pointer>>>(&self, event: /*Unknown conversion*//*Unimplemented*/PadEventFunction, user_data: P, notify: /*Unknown conversion*//*Unimplemented*/DestroyNotify) {
// unsafe { TODO: call ffi::gst_pad_set_event_function_full() }
//}
//fn set_getrange_function_full<P: Into<Option</*Unimplemented*/Fundamental: Pointer>>>(&self, get: /*Unknown conversion*//*Unimplemented*/PadGetRangeFunction, user_data: P, notify: /*Unknown conversion*//*Unimplemented*/DestroyNotify) {
// unsafe { TODO: call ffi::gst_pad_set_getrange_function_full() }
//}
//fn set_iterate_internal_links_function_full<P: Into<Option</*Unimplemented*/Fundamental: Pointer>>>(&self, iterintlink: /*Unknown conversion*//*Unimplemented*/PadIterIntLinkFunction, user_data: P, notify: /*Unknown conversion*//*Unimplemented*/DestroyNotify) {
// unsafe { TODO: call ffi::gst_pad_set_iterate_internal_links_function_full() }
//}
//fn set_link_function_full<P: Into<Option</*Unimplemented*/Fundamental: Pointer>>>(&self, link: /*Unknown conversion*//*Unimplemented*/PadLinkFunction, user_data: P, notify: /*Unknown conversion*//*Unimplemented*/DestroyNotify) {
// unsafe { TODO: call ffi::gst_pad_set_link_function_full() }
//}
fn set_offset ( & self , offset : i64 ) {
unsafe {
ffi ::gst_pad_set_offset ( self . to_glib_none ( ) . 0 , offset ) ;
}
}
//fn set_query_function_full<P: Into<Option</*Unimplemented*/Fundamental: Pointer>>>(&self, query: /*Unknown conversion*//*Unimplemented*/PadQueryFunction, user_data: P, notify: /*Unknown conversion*//*Unimplemented*/DestroyNotify) {
// unsafe { TODO: call ffi::gst_pad_set_query_function_full() }
//}
//fn set_unlink_function_full<P: Into<Option</*Unimplemented*/Fundamental: Pointer>>>(&self, unlink: /*Unknown conversion*//*Unimplemented*/PadUnlinkFunction, user_data: P, notify: /*Unknown conversion*//*Unimplemented*/DestroyNotify) {
// unsafe { TODO: call ffi::gst_pad_set_unlink_function_full() }
//}
//fn start_task<P: Into<Option</*Unimplemented*/Fundamental: Pointer>>>(&self, func: /*Unknown conversion*//*Unimplemented*/TaskFunction, user_data: P, notify: /*Unknown conversion*//*Unimplemented*/DestroyNotify) -> bool {
// unsafe { TODO: call ffi::gst_pad_start_task() }
//}
//fn sticky_events_foreach<P: Into<Option</*Unimplemented*/Fundamental: Pointer>>>(&self, foreach_func: /*Unknown conversion*//*Unimplemented*/PadStickyEventsForeachFunction, user_data: P) {
// unsafe { TODO: call ffi::gst_pad_sticky_events_foreach() }
//}
2017-06-24 09:02:24 +00:00
fn stop_task ( & self ) -> Result < ( ) , glib ::error ::BoolError > {
2017-05-12 12:24:03 +00:00
unsafe {
2017-06-24 09:02:24 +00:00
glib ::error ::BoolError ::from_glib ( ffi ::gst_pad_stop_task ( self . to_glib_none ( ) . 0 ) , " Failed to stop pad task " )
2017-05-12 12:24:03 +00:00
}
}
//#[cfg(feature = "v1_2")]
//fn store_sticky_event(&self, event: /*Ignored*/&mut Event) -> FlowReturn {
// unsafe { TODO: call ffi::gst_pad_store_sticky_event() }
//}
2017-06-24 09:02:24 +00:00
fn unlink < P : IsA < Pad > > ( & self , sinkpad : & P ) -> Result < ( ) , glib ::error ::BoolError > {
2017-05-12 12:24:03 +00:00
unsafe {
2017-06-24 09:02:24 +00:00
glib ::error ::BoolError ::from_glib ( ffi ::gst_pad_unlink ( self . to_glib_none ( ) . 0 , sinkpad . to_glib_none ( ) . 0 ) , " Failed to unlink pad " )
2017-05-12 12:24:03 +00:00
}
}
fn use_fixed_caps ( & self ) {
unsafe {
ffi ::gst_pad_use_fixed_caps ( self . to_glib_none ( ) . 0 ) ;
}
}
//fn get_property_caps(&self) -> /*Ignored*/Option<Caps> {
// let mut value = Value::from(None::<&/*Ignored*/Caps>);
// unsafe {
// gobject_ffi::g_object_get_property(self.to_glib_none().0, "caps".to_glib_none().0, value.to_glib_none_mut().0);
// }
// value.get()
//}
fn get_property_template ( & self ) -> Option < PadTemplate > {
let mut value = Value ::from ( None ::< & PadTemplate > ) ;
unsafe {
gobject_ffi ::g_object_get_property ( self . to_glib_none ( ) . 0 , " template " . to_glib_none ( ) . 0 , value . to_glib_none_mut ( ) . 0 ) ;
}
value . get ( )
}
fn set_property_template ( & self , template : Option < & PadTemplate > ) {
unsafe {
gobject_ffi ::g_object_set_property ( self . to_glib_none ( ) . 0 , " template " . to_glib_none ( ) . 0 , Value ::from ( template ) . to_glib_none ( ) . 0 ) ;
}
}
2017-06-25 08:04:37 +00:00
fn connect_linked < F : Fn ( & Self , & Pad ) + Send + Sync + 'static > ( & self , f : F ) -> u64 {
2017-05-12 12:24:03 +00:00
unsafe {
2017-06-25 08:04:37 +00:00
let f : Box_ < Box_ < Fn ( & Self , & Pad ) + Send + Sync + 'static > > = Box_ ::new ( Box_ ::new ( f ) ) ;
2017-05-12 12:24:03 +00:00
connect ( self . to_glib_none ( ) . 0 , " linked " ,
transmute ( linked_trampoline ::< Self > as usize ) , Box_ ::into_raw ( f ) as * mut _ )
}
}
2017-06-25 08:04:37 +00:00
fn connect_unlinked < F : Fn ( & Self , & Pad ) + Send + Sync + 'static > ( & self , f : F ) -> u64 {
2017-05-12 12:24:03 +00:00
unsafe {
2017-06-25 08:04:37 +00:00
let f : Box_ < Box_ < Fn ( & Self , & Pad ) + Send + Sync + 'static > > = Box_ ::new ( Box_ ::new ( f ) ) ;
2017-05-12 12:24:03 +00:00
connect ( self . to_glib_none ( ) . 0 , " unlinked " ,
transmute ( unlinked_trampoline ::< Self > as usize ) , Box_ ::into_raw ( f ) as * mut _ )
}
}
}
unsafe extern " C " fn linked_trampoline < P > ( this : * mut ffi ::GstPad , peer : * mut ffi ::GstPad , f : glib_ffi ::gpointer )
where P : IsA < Pad > {
callback_guard! ( ) ;
2017-06-25 08:04:37 +00:00
let f : & Box_ < Fn ( & P , & Pad ) + Send + Sync + 'static > = transmute ( f ) ;
2017-05-12 12:24:03 +00:00
f ( & Pad ::from_glib_none ( this ) . downcast_unchecked ( ) , & from_glib_none ( peer ) )
}
unsafe extern " C " fn unlinked_trampoline < P > ( this : * mut ffi ::GstPad , peer : * mut ffi ::GstPad , f : glib_ffi ::gpointer )
where P : IsA < Pad > {
callback_guard! ( ) ;
2017-06-25 08:04:37 +00:00
let f : & Box_ < Fn ( & P , & Pad ) + Send + Sync + 'static > = transmute ( f ) ;
2017-05-12 12:24:03 +00:00
f ( & Pad ::from_glib_none ( this ) . downcast_unchecked ( ) , & from_glib_none ( peer ) )
}