1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43
use glib::object::IsA; use glib::translate::*; use gst_rtsp_server_sys; use std::ptr; use RTSPAddress; use RTSPAddressPool; use RTSPAddressPoolResult; pub trait RTSPAddressPoolExtManual: 'static { fn reserve_address( &self, ip_address: &str, port: u32, n_ports: u32, ttl: u32, ) -> Result<RTSPAddress, RTSPAddressPoolResult>; } impl<O: IsA<RTSPAddressPool>> RTSPAddressPoolExtManual for O { fn reserve_address( &self, ip_address: &str, port: u32, n_ports: u32, ttl: u32, ) -> Result<RTSPAddress, RTSPAddressPoolResult> { unsafe { let mut address = ptr::null_mut(); let ret = from_glib(gst_rtsp_server_sys::gst_rtsp_address_pool_reserve_address( self.as_ref().to_glib_none().0, ip_address.to_glib_none().0, port, n_ports, ttl, &mut address, )); match ret { RTSPAddressPoolResult::Ok => Ok(from_glib_full(address)), _ => Err(ret), } } } }