2018-04-04 07:46:18 +00:00
// This file was generated by gir (https://github.com/gtk-rs/gir @ 6855214)
2018-02-19 20:15:52 +00:00
// from gir-files (https://github.com/gtk-rs/gir-files @ ???)
// DO NOT EDIT
use DiscovererInfo ;
use Error ;
use ffi ;
use glib ;
use glib ::signal ::SignalHandlerId ;
use glib ::signal ::connect ;
use glib ::translate ::* ;
use glib_ffi ;
use gobject_ffi ;
use gst ;
use gst_ffi ;
use std ::boxed ::Box as Box_ ;
use std ::mem ;
use std ::mem ::transmute ;
use std ::ptr ;
glib_wrapper! {
pub struct Discoverer ( Object < ffi ::GstDiscoverer , ffi ::GstDiscovererClass > ) ;
match fn {
get_type = > | | ffi ::gst_discoverer_get_type ( ) ,
}
}
impl Discoverer {
pub fn new ( timeout : gst ::ClockTime ) -> Result < Discoverer , Error > {
assert_initialized_main_thread! ( ) ;
unsafe {
let mut error = ptr ::null_mut ( ) ;
let ret = ffi ::gst_discoverer_new ( timeout . to_glib ( ) , & mut error ) ;
if error . is_null ( ) { Ok ( from_glib_full ( ret ) ) } else { Err ( from_glib_full ( error ) ) }
}
}
pub fn discover_uri ( & self , uri : & str ) -> Result < DiscovererInfo , Error > {
unsafe {
let mut error = ptr ::null_mut ( ) ;
let ret = ffi ::gst_discoverer_discover_uri ( self . to_glib_none ( ) . 0 , uri . to_glib_none ( ) . 0 , & mut error ) ;
if error . is_null ( ) { Ok ( from_glib_full ( ret ) ) } else { Err ( from_glib_full ( error ) ) }
}
}
pub fn discover_uri_async ( & self , uri : & str ) -> Result < ( ) , glib ::error ::BoolError > {
unsafe {
glib ::error ::BoolError ::from_glib ( ffi ::gst_discoverer_discover_uri_async ( self . to_glib_none ( ) . 0 , uri . to_glib_none ( ) . 0 ) , " Failed to add URI to list of discovers " )
}
}
pub fn start ( & self ) {
unsafe {
ffi ::gst_discoverer_start ( self . to_glib_none ( ) . 0 ) ;
}
}
pub fn stop ( & self ) {
unsafe {
ffi ::gst_discoverer_stop ( self . to_glib_none ( ) . 0 ) ;
}
}
pub fn connect_discovered < F : Fn ( & Discoverer , & DiscovererInfo , & Option < Error > ) + Send + Sync + 'static > ( & self , f : F ) -> SignalHandlerId {
unsafe {
let f : Box_ < Box_ < Fn ( & Discoverer , & DiscovererInfo , & Option < Error > ) + Send + Sync + 'static > > = Box_ ::new ( Box_ ::new ( f ) ) ;
connect ( self . to_glib_none ( ) . 0 , " discovered " ,
transmute ( discovered_trampoline as usize ) , Box_ ::into_raw ( f ) as * mut _ )
}
}
pub fn connect_finished < F : Fn ( & Discoverer ) + Send + Sync + 'static > ( & self , f : F ) -> SignalHandlerId {
unsafe {
let f : Box_ < Box_ < Fn ( & Discoverer ) + Send + Sync + 'static > > = Box_ ::new ( Box_ ::new ( f ) ) ;
connect ( self . to_glib_none ( ) . 0 , " finished " ,
transmute ( finished_trampoline as usize ) , Box_ ::into_raw ( f ) as * mut _ )
}
}
pub fn connect_source_setup < F : Fn ( & Discoverer , & gst ::Element ) + Send + Sync + 'static > ( & self , f : F ) -> SignalHandlerId {
unsafe {
let f : Box_ < Box_ < Fn ( & Discoverer , & gst ::Element ) + Send + Sync + 'static > > = Box_ ::new ( Box_ ::new ( f ) ) ;
connect ( self . to_glib_none ( ) . 0 , " source-setup " ,
transmute ( source_setup_trampoline as usize ) , Box_ ::into_raw ( f ) as * mut _ )
}
}
pub fn connect_starting < F : Fn ( & Discoverer ) + Send + Sync + 'static > ( & self , f : F ) -> SignalHandlerId {
unsafe {
let f : Box_ < Box_ < Fn ( & Discoverer ) + Send + Sync + 'static > > = Box_ ::new ( Box_ ::new ( f ) ) ;
connect ( self . to_glib_none ( ) . 0 , " starting " ,
transmute ( starting_trampoline as usize ) , Box_ ::into_raw ( f ) as * mut _ )
}
}
}
unsafe impl Send for Discoverer { }
unsafe impl Sync for Discoverer { }
unsafe extern " C " fn discovered_trampoline ( this : * mut ffi ::GstDiscoverer , info : * mut ffi ::GstDiscovererInfo , error : * mut glib_ffi ::GError , f : glib_ffi ::gpointer ) {
2018-03-02 19:25:12 +00:00
callback_guard! ( ) ;
2018-02-19 20:15:52 +00:00
let f : & & ( Fn ( & Discoverer , & DiscovererInfo , & Option < Error > ) + Send + Sync + 'static ) = transmute ( f ) ;
f ( & from_glib_borrow ( this ) , & from_glib_borrow ( info ) , & from_glib_borrow ( error ) )
}
unsafe extern " C " fn finished_trampoline ( this : * mut ffi ::GstDiscoverer , f : glib_ffi ::gpointer ) {
2018-03-02 19:25:12 +00:00
callback_guard! ( ) ;
2018-02-19 20:15:52 +00:00
let f : & & ( Fn ( & Discoverer ) + Send + Sync + 'static ) = transmute ( f ) ;
f ( & from_glib_borrow ( this ) )
}
unsafe extern " C " fn source_setup_trampoline ( this : * mut ffi ::GstDiscoverer , source : * mut gst_ffi ::GstElement , f : glib_ffi ::gpointer ) {
2018-03-02 19:25:12 +00:00
callback_guard! ( ) ;
2018-02-19 20:15:52 +00:00
let f : & & ( Fn ( & Discoverer , & gst ::Element ) + Send + Sync + 'static ) = transmute ( f ) ;
f ( & from_glib_borrow ( this ) , & from_glib_borrow ( source ) )
}
unsafe extern " C " fn starting_trampoline ( this : * mut ffi ::GstDiscoverer , f : glib_ffi ::gpointer ) {
2018-03-02 19:25:12 +00:00
callback_guard! ( ) ;
2018-02-19 20:15:52 +00:00
let f : & & ( Fn ( & Discoverer ) + Send + Sync + 'static ) = transmute ( f ) ;
f ( & from_glib_borrow ( this ) )
}