// This file was generated by gir (https://github.com/gtk-rs/gir) // from gir-files (https://github.com/gtk-rs/gir-files) // from gst-gir-files (https://gitlab.freedesktop.org/gstreamer/gir-files-rs.git) // DO NOT EDIT use crate::Object; use crate::PluginDependencyFlags; use glib::translate::*; use std::ptr; glib::wrapper! { #[doc(alias = "GstPlugin")] pub struct Plugin(Object) @extends Object; match fn { type_ => || ffi::gst_plugin_get_type(), } } impl Plugin { #[doc(alias = "gst_plugin_add_dependency")] pub fn add_dependency( &self, env_vars: &[&str], paths: &[&str], names: &[&str], flags: PluginDependencyFlags, ) { unsafe { ffi::gst_plugin_add_dependency( self.to_glib_none().0, env_vars.to_glib_none().0, paths.to_glib_none().0, names.to_glib_none().0, flags.into_glib(), ); } } #[doc(alias = "gst_plugin_add_dependency_simple")] pub fn add_dependency_simple( &self, env_vars: Option<&str>, paths: Option<&str>, names: Option<&str>, flags: PluginDependencyFlags, ) { unsafe { ffi::gst_plugin_add_dependency_simple( self.to_glib_none().0, env_vars.to_glib_none().0, paths.to_glib_none().0, names.to_glib_none().0, flags.into_glib(), ); } } #[doc(alias = "gst_plugin_get_description")] #[doc(alias = "get_description")] pub fn description(&self) -> glib::GString { unsafe { from_glib_none(ffi::gst_plugin_get_description(self.to_glib_none().0)) } } #[doc(alias = "gst_plugin_get_filename")] #[doc(alias = "get_filename")] pub fn filename(&self) -> Option { unsafe { from_glib_none(ffi::gst_plugin_get_filename(self.to_glib_none().0)) } } #[doc(alias = "gst_plugin_get_license")] #[doc(alias = "get_license")] pub fn license(&self) -> glib::GString { unsafe { from_glib_none(ffi::gst_plugin_get_license(self.to_glib_none().0)) } } #[doc(alias = "gst_plugin_get_origin")] #[doc(alias = "get_origin")] pub fn origin(&self) -> glib::GString { unsafe { from_glib_none(ffi::gst_plugin_get_origin(self.to_glib_none().0)) } } #[doc(alias = "gst_plugin_get_package")] #[doc(alias = "get_package")] pub fn package(&self) -> glib::GString { unsafe { from_glib_none(ffi::gst_plugin_get_package(self.to_glib_none().0)) } } #[doc(alias = "gst_plugin_get_release_date_string")] #[doc(alias = "get_release_date_string")] pub fn release_date_string(&self) -> Option { unsafe { from_glib_none(ffi::gst_plugin_get_release_date_string( self.to_glib_none().0, )) } } #[doc(alias = "gst_plugin_get_source")] #[doc(alias = "get_source")] pub fn source(&self) -> glib::GString { unsafe { from_glib_none(ffi::gst_plugin_get_source(self.to_glib_none().0)) } } #[doc(alias = "gst_plugin_get_version")] #[doc(alias = "get_version")] pub fn version(&self) -> glib::GString { unsafe { from_glib_none(ffi::gst_plugin_get_version(self.to_glib_none().0)) } } #[doc(alias = "gst_plugin_is_loaded")] pub fn is_loaded(&self) -> bool { unsafe { from_glib(ffi::gst_plugin_is_loaded(self.to_glib_none().0)) } } #[doc(alias = "gst_plugin_load")] pub fn load(&self) -> Result { unsafe { Option::<_>::from_glib_full(ffi::gst_plugin_load(self.to_glib_none().0)) .ok_or_else(|| glib::bool_error!("Failed to load plugin")) } } #[doc(alias = "gst_plugin_load_by_name")] pub fn load_by_name(name: &str) -> Result { assert_initialized_main_thread!(); unsafe { Option::<_>::from_glib_full(ffi::gst_plugin_load_by_name(name.to_glib_none().0)) .ok_or_else(|| glib::bool_error!("Failed to load plugin")) } } #[doc(alias = "gst_plugin_load_file")] pub fn load_file(filename: impl AsRef) -> Result { assert_initialized_main_thread!(); unsafe { let mut error = ptr::null_mut(); let ret = ffi::gst_plugin_load_file(filename.as_ref().to_glib_none().0, &mut error); if error.is_null() { Ok(from_glib_full(ret)) } else { Err(from_glib_full(error)) } } } } unsafe impl Send for Plugin {} unsafe impl Sync for Plugin {}