1 // This file was generated by gir (https://github.com/gtk-rs/gir) 2 // from gir-files (https://github.com/gtk-rs/gir-files) 3 // from gst-gir-files (https://gitlab.freedesktop.org/gstreamer/gir-files-rs.git) 4 // DO NOT EDIT 5 6 use glib::object::IsA; 7 use glib::translate::*; 8 use std::ptr; 9 10 glib::wrapper! { 11 #[doc(alias = "GstPreset")] 12 pub struct Preset(Interface<ffi::GstPreset, ffi::GstPresetInterface>); 13 14 match fn { 15 type_ => || ffi::gst_preset_get_type(), 16 } 17 } 18 19 impl Preset { 20 #[doc(alias = "gst_preset_get_app_dir")] 21 #[doc(alias = "get_app_dir")] app_dir() -> Option<std::path::PathBuf>22 pub fn app_dir() -> Option<std::path::PathBuf> { 23 assert_initialized_main_thread!(); 24 unsafe { from_glib_none(ffi::gst_preset_get_app_dir()) } 25 } 26 27 #[doc(alias = "gst_preset_set_app_dir")] set_app_dir<P: AsRef<std::path::Path>>( app_dir: P, ) -> Result<(), glib::error::BoolError>28 pub fn set_app_dir<P: AsRef<std::path::Path>>( 29 app_dir: P, 30 ) -> Result<(), glib::error::BoolError> { 31 assert_initialized_main_thread!(); 32 unsafe { 33 glib::result_from_gboolean!( 34 ffi::gst_preset_set_app_dir(app_dir.as_ref().to_glib_none().0), 35 "Failed to set app preset directory" 36 ) 37 } 38 } 39 } 40 41 unsafe impl Send for Preset {} 42 unsafe impl Sync for Preset {} 43 44 pub const NONE_PRESET: Option<&Preset> = None; 45 46 pub trait PresetExt: 'static { 47 #[doc(alias = "gst_preset_delete_preset")] delete_preset(&self, name: &str) -> Result<(), glib::error::BoolError>48 fn delete_preset(&self, name: &str) -> Result<(), glib::error::BoolError>; 49 50 #[doc(alias = "gst_preset_get_meta")] 51 #[doc(alias = "get_meta")] meta(&self, name: &str, tag: &str) -> Option<glib::GString>52 fn meta(&self, name: &str, tag: &str) -> Option<glib::GString>; 53 54 #[doc(alias = "gst_preset_get_preset_names")] 55 #[doc(alias = "get_preset_names")] preset_names(&self) -> Vec<glib::GString>56 fn preset_names(&self) -> Vec<glib::GString>; 57 58 #[doc(alias = "gst_preset_get_property_names")] 59 #[doc(alias = "get_property_names")] property_names(&self) -> Vec<glib::GString>60 fn property_names(&self) -> Vec<glib::GString>; 61 62 #[doc(alias = "gst_preset_is_editable")] is_editable(&self) -> bool63 fn is_editable(&self) -> bool; 64 65 #[doc(alias = "gst_preset_load_preset")] load_preset(&self, name: &str) -> Result<(), glib::error::BoolError>66 fn load_preset(&self, name: &str) -> Result<(), glib::error::BoolError>; 67 68 #[doc(alias = "gst_preset_rename_preset")] rename_preset(&self, old_name: &str, new_name: &str) -> Result<(), glib::error::BoolError>69 fn rename_preset(&self, old_name: &str, new_name: &str) -> Result<(), glib::error::BoolError>; 70 71 #[doc(alias = "gst_preset_save_preset")] save_preset(&self, name: &str) -> Result<(), glib::error::BoolError>72 fn save_preset(&self, name: &str) -> Result<(), glib::error::BoolError>; 73 74 #[doc(alias = "gst_preset_set_meta")] set_meta( &self, name: &str, tag: &str, value: Option<&str>, ) -> Result<(), glib::error::BoolError>75 fn set_meta( 76 &self, 77 name: &str, 78 tag: &str, 79 value: Option<&str>, 80 ) -> Result<(), glib::error::BoolError>; 81 } 82 83 impl<O: IsA<Preset>> PresetExt for O { delete_preset(&self, name: &str) -> Result<(), glib::error::BoolError>84 fn delete_preset(&self, name: &str) -> Result<(), glib::error::BoolError> { 85 unsafe { 86 glib::result_from_gboolean!( 87 ffi::gst_preset_delete_preset( 88 self.as_ref().to_glib_none().0, 89 name.to_glib_none().0 90 ), 91 "Failed to delete preset" 92 ) 93 } 94 } 95 meta(&self, name: &str, tag: &str) -> Option<glib::GString>96 fn meta(&self, name: &str, tag: &str) -> Option<glib::GString> { 97 unsafe { 98 let mut value = ptr::null_mut(); 99 let ret = from_glib(ffi::gst_preset_get_meta( 100 self.as_ref().to_glib_none().0, 101 name.to_glib_none().0, 102 tag.to_glib_none().0, 103 &mut value, 104 )); 105 if ret { 106 Some(from_glib_full(value)) 107 } else { 108 None 109 } 110 } 111 } 112 preset_names(&self) -> Vec<glib::GString>113 fn preset_names(&self) -> Vec<glib::GString> { 114 unsafe { 115 FromGlibPtrContainer::from_glib_full(ffi::gst_preset_get_preset_names( 116 self.as_ref().to_glib_none().0, 117 )) 118 } 119 } 120 property_names(&self) -> Vec<glib::GString>121 fn property_names(&self) -> Vec<glib::GString> { 122 unsafe { 123 FromGlibPtrContainer::from_glib_full(ffi::gst_preset_get_property_names( 124 self.as_ref().to_glib_none().0, 125 )) 126 } 127 } 128 is_editable(&self) -> bool129 fn is_editable(&self) -> bool { 130 unsafe { from_glib(ffi::gst_preset_is_editable(self.as_ref().to_glib_none().0)) } 131 } 132 load_preset(&self, name: &str) -> Result<(), glib::error::BoolError>133 fn load_preset(&self, name: &str) -> Result<(), glib::error::BoolError> { 134 unsafe { 135 glib::result_from_gboolean!( 136 ffi::gst_preset_load_preset(self.as_ref().to_glib_none().0, name.to_glib_none().0), 137 "Failed to load preset" 138 ) 139 } 140 } 141 rename_preset(&self, old_name: &str, new_name: &str) -> Result<(), glib::error::BoolError>142 fn rename_preset(&self, old_name: &str, new_name: &str) -> Result<(), glib::error::BoolError> { 143 unsafe { 144 glib::result_from_gboolean!( 145 ffi::gst_preset_rename_preset( 146 self.as_ref().to_glib_none().0, 147 old_name.to_glib_none().0, 148 new_name.to_glib_none().0 149 ), 150 "Failed to rename preset" 151 ) 152 } 153 } 154 save_preset(&self, name: &str) -> Result<(), glib::error::BoolError>155 fn save_preset(&self, name: &str) -> Result<(), glib::error::BoolError> { 156 unsafe { 157 glib::result_from_gboolean!( 158 ffi::gst_preset_save_preset(self.as_ref().to_glib_none().0, name.to_glib_none().0), 159 "Failed to save preset" 160 ) 161 } 162 } 163 set_meta( &self, name: &str, tag: &str, value: Option<&str>, ) -> Result<(), glib::error::BoolError>164 fn set_meta( 165 &self, 166 name: &str, 167 tag: &str, 168 value: Option<&str>, 169 ) -> Result<(), glib::error::BoolError> { 170 unsafe { 171 glib::result_from_gboolean!( 172 ffi::gst_preset_set_meta( 173 self.as_ref().to_glib_none().0, 174 name.to_glib_none().0, 175 tag.to_glib_none().0, 176 value.to_glib_none().0 177 ), 178 "Failed to set preset meta" 179 ) 180 } 181 } 182 } 183