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