gstreamer_pbutils/auto/
enums.rs

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
6use crate::ffi;
7use glib::{prelude::*, translate::*, GStr};
8
9/// Different types of supported background shading functions.
10#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
11#[non_exhaustive]
12#[doc(alias = "GstAudioVisualizerShader")]
13pub enum AudioVisualizerShader {
14    /// no shading
15    #[doc(alias = "GST_AUDIO_VISUALIZER_SHADER_NONE")]
16    None,
17    /// plain fading
18    #[doc(alias = "GST_AUDIO_VISUALIZER_SHADER_FADE")]
19    Fade,
20    /// fade and move up
21    #[doc(alias = "GST_AUDIO_VISUALIZER_SHADER_FADE_AND_MOVE_UP")]
22    FadeAndMoveUp,
23    /// fade and move down
24    #[doc(alias = "GST_AUDIO_VISUALIZER_SHADER_FADE_AND_MOVE_DOWN")]
25    FadeAndMoveDown,
26    /// fade and move left
27    #[doc(alias = "GST_AUDIO_VISUALIZER_SHADER_FADE_AND_MOVE_LEFT")]
28    FadeAndMoveLeft,
29    /// fade and move right
30    #[doc(alias = "GST_AUDIO_VISUALIZER_SHADER_FADE_AND_MOVE_RIGHT")]
31    FadeAndMoveRight,
32    /// fade and move horizontally out
33    #[doc(alias = "GST_AUDIO_VISUALIZER_SHADER_FADE_AND_MOVE_HORIZ_OUT")]
34    FadeAndMoveHorizOut,
35    /// fade and move horizontally in
36    #[doc(alias = "GST_AUDIO_VISUALIZER_SHADER_FADE_AND_MOVE_HORIZ_IN")]
37    FadeAndMoveHorizIn,
38    /// fade and move vertically out
39    #[doc(alias = "GST_AUDIO_VISUALIZER_SHADER_FADE_AND_MOVE_VERT_OUT")]
40    FadeAndMoveVertOut,
41    /// fade and move vertically in
42    #[doc(alias = "GST_AUDIO_VISUALIZER_SHADER_FADE_AND_MOVE_VERT_IN")]
43    FadeAndMoveVertIn,
44    #[doc(hidden)]
45    __Unknown(i32),
46}
47
48#[doc(hidden)]
49impl IntoGlib for AudioVisualizerShader {
50    type GlibType = ffi::GstAudioVisualizerShader;
51
52    #[inline]
53    fn into_glib(self) -> ffi::GstAudioVisualizerShader {
54        match self {
55            Self::None => ffi::GST_AUDIO_VISUALIZER_SHADER_NONE,
56            Self::Fade => ffi::GST_AUDIO_VISUALIZER_SHADER_FADE,
57            Self::FadeAndMoveUp => ffi::GST_AUDIO_VISUALIZER_SHADER_FADE_AND_MOVE_UP,
58            Self::FadeAndMoveDown => ffi::GST_AUDIO_VISUALIZER_SHADER_FADE_AND_MOVE_DOWN,
59            Self::FadeAndMoveLeft => ffi::GST_AUDIO_VISUALIZER_SHADER_FADE_AND_MOVE_LEFT,
60            Self::FadeAndMoveRight => ffi::GST_AUDIO_VISUALIZER_SHADER_FADE_AND_MOVE_RIGHT,
61            Self::FadeAndMoveHorizOut => ffi::GST_AUDIO_VISUALIZER_SHADER_FADE_AND_MOVE_HORIZ_OUT,
62            Self::FadeAndMoveHorizIn => ffi::GST_AUDIO_VISUALIZER_SHADER_FADE_AND_MOVE_HORIZ_IN,
63            Self::FadeAndMoveVertOut => ffi::GST_AUDIO_VISUALIZER_SHADER_FADE_AND_MOVE_VERT_OUT,
64            Self::FadeAndMoveVertIn => ffi::GST_AUDIO_VISUALIZER_SHADER_FADE_AND_MOVE_VERT_IN,
65            Self::__Unknown(value) => value,
66        }
67    }
68}
69
70#[doc(hidden)]
71impl FromGlib<ffi::GstAudioVisualizerShader> for AudioVisualizerShader {
72    #[inline]
73    unsafe fn from_glib(value: ffi::GstAudioVisualizerShader) -> Self {
74        skip_assert_initialized!();
75
76        match value {
77            ffi::GST_AUDIO_VISUALIZER_SHADER_NONE => Self::None,
78            ffi::GST_AUDIO_VISUALIZER_SHADER_FADE => Self::Fade,
79            ffi::GST_AUDIO_VISUALIZER_SHADER_FADE_AND_MOVE_UP => Self::FadeAndMoveUp,
80            ffi::GST_AUDIO_VISUALIZER_SHADER_FADE_AND_MOVE_DOWN => Self::FadeAndMoveDown,
81            ffi::GST_AUDIO_VISUALIZER_SHADER_FADE_AND_MOVE_LEFT => Self::FadeAndMoveLeft,
82            ffi::GST_AUDIO_VISUALIZER_SHADER_FADE_AND_MOVE_RIGHT => Self::FadeAndMoveRight,
83            ffi::GST_AUDIO_VISUALIZER_SHADER_FADE_AND_MOVE_HORIZ_OUT => Self::FadeAndMoveHorizOut,
84            ffi::GST_AUDIO_VISUALIZER_SHADER_FADE_AND_MOVE_HORIZ_IN => Self::FadeAndMoveHorizIn,
85            ffi::GST_AUDIO_VISUALIZER_SHADER_FADE_AND_MOVE_VERT_OUT => Self::FadeAndMoveVertOut,
86            ffi::GST_AUDIO_VISUALIZER_SHADER_FADE_AND_MOVE_VERT_IN => Self::FadeAndMoveVertIn,
87            value => Self::__Unknown(value),
88        }
89    }
90}
91
92impl StaticType for AudioVisualizerShader {
93    #[inline]
94    #[doc(alias = "gst_audio_visualizer_shader_get_type")]
95    fn static_type() -> glib::Type {
96        unsafe { from_glib(ffi::gst_audio_visualizer_shader_get_type()) }
97    }
98}
99
100impl glib::HasParamSpec for AudioVisualizerShader {
101    type ParamSpec = glib::ParamSpecEnum;
102    type SetValue = Self;
103    type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
104
105    fn param_spec_builder() -> Self::BuilderFn {
106        Self::ParamSpec::builder_with_default
107    }
108}
109
110impl glib::value::ValueType for AudioVisualizerShader {
111    type Type = Self;
112}
113
114unsafe impl<'a> glib::value::FromValue<'a> for AudioVisualizerShader {
115    type Checker = glib::value::GenericValueTypeChecker<Self>;
116
117    #[inline]
118    unsafe fn from_value(value: &'a glib::Value) -> Self {
119        skip_assert_initialized!();
120        from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0))
121    }
122}
123
124impl ToValue for AudioVisualizerShader {
125    #[inline]
126    fn to_value(&self) -> glib::Value {
127        let mut value = glib::Value::for_value_type::<Self>();
128        unsafe {
129            glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
130        }
131        value
132    }
133
134    #[inline]
135    fn value_type(&self) -> glib::Type {
136        Self::static_type()
137    }
138}
139
140impl From<AudioVisualizerShader> for glib::Value {
141    #[inline]
142    fn from(v: AudioVisualizerShader) -> Self {
143        skip_assert_initialized!();
144        ToValue::to_value(&v)
145    }
146}
147
148/// Result values for the discovery process.
149#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
150#[non_exhaustive]
151#[doc(alias = "GstDiscovererResult")]
152pub enum DiscovererResult {
153    /// The discovery was successful
154    #[doc(alias = "GST_DISCOVERER_OK")]
155    Ok,
156    /// the URI is invalid
157    #[doc(alias = "GST_DISCOVERER_URI_INVALID")]
158    UriInvalid,
159    /// an error happened and the GError is set
160    #[doc(alias = "GST_DISCOVERER_ERROR")]
161    Error,
162    /// the discovery timed-out
163    #[doc(alias = "GST_DISCOVERER_TIMEOUT")]
164    Timeout,
165    /// the discoverer was already discovering a file
166    #[doc(alias = "GST_DISCOVERER_BUSY")]
167    Busy,
168    /// Some plugins are missing for full discovery
169    #[doc(alias = "GST_DISCOVERER_MISSING_PLUGINS")]
170    MissingPlugins,
171    #[doc(hidden)]
172    __Unknown(i32),
173}
174
175#[doc(hidden)]
176impl IntoGlib for DiscovererResult {
177    type GlibType = ffi::GstDiscovererResult;
178
179    #[inline]
180    fn into_glib(self) -> ffi::GstDiscovererResult {
181        match self {
182            Self::Ok => ffi::GST_DISCOVERER_OK,
183            Self::UriInvalid => ffi::GST_DISCOVERER_URI_INVALID,
184            Self::Error => ffi::GST_DISCOVERER_ERROR,
185            Self::Timeout => ffi::GST_DISCOVERER_TIMEOUT,
186            Self::Busy => ffi::GST_DISCOVERER_BUSY,
187            Self::MissingPlugins => ffi::GST_DISCOVERER_MISSING_PLUGINS,
188            Self::__Unknown(value) => value,
189        }
190    }
191}
192
193#[doc(hidden)]
194impl FromGlib<ffi::GstDiscovererResult> for DiscovererResult {
195    #[inline]
196    unsafe fn from_glib(value: ffi::GstDiscovererResult) -> Self {
197        skip_assert_initialized!();
198
199        match value {
200            ffi::GST_DISCOVERER_OK => Self::Ok,
201            ffi::GST_DISCOVERER_URI_INVALID => Self::UriInvalid,
202            ffi::GST_DISCOVERER_ERROR => Self::Error,
203            ffi::GST_DISCOVERER_TIMEOUT => Self::Timeout,
204            ffi::GST_DISCOVERER_BUSY => Self::Busy,
205            ffi::GST_DISCOVERER_MISSING_PLUGINS => Self::MissingPlugins,
206            value => Self::__Unknown(value),
207        }
208    }
209}
210
211impl StaticType for DiscovererResult {
212    #[inline]
213    #[doc(alias = "gst_discoverer_result_get_type")]
214    fn static_type() -> glib::Type {
215        unsafe { from_glib(ffi::gst_discoverer_result_get_type()) }
216    }
217}
218
219impl glib::HasParamSpec for DiscovererResult {
220    type ParamSpec = glib::ParamSpecEnum;
221    type SetValue = Self;
222    type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
223
224    fn param_spec_builder() -> Self::BuilderFn {
225        Self::ParamSpec::builder_with_default
226    }
227}
228
229impl glib::value::ValueType for DiscovererResult {
230    type Type = Self;
231}
232
233unsafe impl<'a> glib::value::FromValue<'a> for DiscovererResult {
234    type Checker = glib::value::GenericValueTypeChecker<Self>;
235
236    #[inline]
237    unsafe fn from_value(value: &'a glib::Value) -> Self {
238        skip_assert_initialized!();
239        from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0))
240    }
241}
242
243impl ToValue for DiscovererResult {
244    #[inline]
245    fn to_value(&self) -> glib::Value {
246        let mut value = glib::Value::for_value_type::<Self>();
247        unsafe {
248            glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
249        }
250        value
251    }
252
253    #[inline]
254    fn value_type(&self) -> glib::Type {
255        Self::static_type()
256    }
257}
258
259impl From<DiscovererResult> for glib::Value {
260    #[inline]
261    fn from(v: DiscovererResult) -> Self {
262        skip_assert_initialized!();
263        ToValue::to_value(&v)
264    }
265}
266
267/// Result codes returned by `gst_install_plugins_async()` and
268/// `gst_install_plugins_sync()`, and also the result code passed to the
269/// `GstInstallPluginsResultFunc` specified with `gst_install_plugins_async()`.
270///
271/// These codes indicate success or failure of starting an external installer
272/// program and to what extent the requested plugins could be installed.
273#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
274#[non_exhaustive]
275#[doc(alias = "GstInstallPluginsReturn")]
276pub enum InstallPluginsReturn {
277    /// all of the requested plugins could be
278    ///  installed
279    #[doc(alias = "GST_INSTALL_PLUGINS_SUCCESS")]
280    Success,
281    /// no appropriate installation candidate for
282    ///  any of the requested plugins could be found. Only return this if nothing
283    ///  has been installed. Return [`PartialSuccess`][Self::PartialSuccess] if
284    ///  some (but not all) of the requested plugins could be installed.
285    #[doc(alias = "GST_INSTALL_PLUGINS_NOT_FOUND")]
286    NotFound,
287    /// an error occurred during the installation. If
288    ///  this happens, the user has already seen an error message and another
289    ///  one should not be displayed
290    #[doc(alias = "GST_INSTALL_PLUGINS_ERROR")]
291    Error,
292    /// some of the requested plugins could
293    ///  be installed, but not all
294    #[doc(alias = "GST_INSTALL_PLUGINS_PARTIAL_SUCCESS")]
295    PartialSuccess,
296    /// the user has aborted the installation
297    #[doc(alias = "GST_INSTALL_PLUGINS_USER_ABORT")]
298    UserAbort,
299    /// the installer had an unclean exit code
300    ///  (ie. death by signal)
301    #[doc(alias = "GST_INSTALL_PLUGINS_CRASHED")]
302    Crashed,
303    /// the helper returned an invalid status code
304    #[doc(alias = "GST_INSTALL_PLUGINS_INVALID")]
305    Invalid,
306    /// returned by `gst_install_plugins_async()` to
307    ///  indicate that everything went fine so far and the provided callback
308    ///  will be called with the result of the installation later
309    #[doc(alias = "GST_INSTALL_PLUGINS_STARTED_OK")]
310    StartedOk,
311    /// some internal failure has
312    ///  occurred when trying to start the installer
313    #[doc(alias = "GST_INSTALL_PLUGINS_INTERNAL_FAILURE")]
314    InternalFailure,
315    /// the helper script to call the
316    ///  actual installer is not installed
317    #[doc(alias = "GST_INSTALL_PLUGINS_HELPER_MISSING")]
318    HelperMissing,
319    /// a previously-started plugin
320    ///  installation is still in progress, try again later
321    #[doc(alias = "GST_INSTALL_PLUGINS_INSTALL_IN_PROGRESS")]
322    InstallInProgress,
323    #[doc(hidden)]
324    __Unknown(i32),
325}
326
327impl InstallPluginsReturn {
328    pub fn name<'a>(self) -> &'a GStr {
329        unsafe {
330            GStr::from_ptr(
331                ffi::gst_install_plugins_return_get_name(self.into_glib())
332                    .as_ref()
333                    .expect("gst_install_plugins_return_get_name returned NULL"),
334            )
335        }
336    }
337}
338
339impl std::fmt::Display for InstallPluginsReturn {
340    #[inline]
341    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
342        f.write_str(&self.name())
343    }
344}
345
346#[doc(hidden)]
347impl IntoGlib for InstallPluginsReturn {
348    type GlibType = ffi::GstInstallPluginsReturn;
349
350    #[inline]
351    fn into_glib(self) -> ffi::GstInstallPluginsReturn {
352        match self {
353            Self::Success => ffi::GST_INSTALL_PLUGINS_SUCCESS,
354            Self::NotFound => ffi::GST_INSTALL_PLUGINS_NOT_FOUND,
355            Self::Error => ffi::GST_INSTALL_PLUGINS_ERROR,
356            Self::PartialSuccess => ffi::GST_INSTALL_PLUGINS_PARTIAL_SUCCESS,
357            Self::UserAbort => ffi::GST_INSTALL_PLUGINS_USER_ABORT,
358            Self::Crashed => ffi::GST_INSTALL_PLUGINS_CRASHED,
359            Self::Invalid => ffi::GST_INSTALL_PLUGINS_INVALID,
360            Self::StartedOk => ffi::GST_INSTALL_PLUGINS_STARTED_OK,
361            Self::InternalFailure => ffi::GST_INSTALL_PLUGINS_INTERNAL_FAILURE,
362            Self::HelperMissing => ffi::GST_INSTALL_PLUGINS_HELPER_MISSING,
363            Self::InstallInProgress => ffi::GST_INSTALL_PLUGINS_INSTALL_IN_PROGRESS,
364            Self::__Unknown(value) => value,
365        }
366    }
367}
368
369#[doc(hidden)]
370impl FromGlib<ffi::GstInstallPluginsReturn> for InstallPluginsReturn {
371    #[inline]
372    unsafe fn from_glib(value: ffi::GstInstallPluginsReturn) -> Self {
373        skip_assert_initialized!();
374
375        match value {
376            ffi::GST_INSTALL_PLUGINS_SUCCESS => Self::Success,
377            ffi::GST_INSTALL_PLUGINS_NOT_FOUND => Self::NotFound,
378            ffi::GST_INSTALL_PLUGINS_ERROR => Self::Error,
379            ffi::GST_INSTALL_PLUGINS_PARTIAL_SUCCESS => Self::PartialSuccess,
380            ffi::GST_INSTALL_PLUGINS_USER_ABORT => Self::UserAbort,
381            ffi::GST_INSTALL_PLUGINS_CRASHED => Self::Crashed,
382            ffi::GST_INSTALL_PLUGINS_INVALID => Self::Invalid,
383            ffi::GST_INSTALL_PLUGINS_STARTED_OK => Self::StartedOk,
384            ffi::GST_INSTALL_PLUGINS_INTERNAL_FAILURE => Self::InternalFailure,
385            ffi::GST_INSTALL_PLUGINS_HELPER_MISSING => Self::HelperMissing,
386            ffi::GST_INSTALL_PLUGINS_INSTALL_IN_PROGRESS => Self::InstallInProgress,
387            value => Self::__Unknown(value),
388        }
389    }
390}
391
392impl StaticType for InstallPluginsReturn {
393    #[inline]
394    #[doc(alias = "gst_install_plugins_return_get_type")]
395    fn static_type() -> glib::Type {
396        unsafe { from_glib(ffi::gst_install_plugins_return_get_type()) }
397    }
398}
399
400impl glib::HasParamSpec for InstallPluginsReturn {
401    type ParamSpec = glib::ParamSpecEnum;
402    type SetValue = Self;
403    type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
404
405    fn param_spec_builder() -> Self::BuilderFn {
406        Self::ParamSpec::builder_with_default
407    }
408}
409
410impl glib::value::ValueType for InstallPluginsReturn {
411    type Type = Self;
412}
413
414unsafe impl<'a> glib::value::FromValue<'a> for InstallPluginsReturn {
415    type Checker = glib::value::GenericValueTypeChecker<Self>;
416
417    #[inline]
418    unsafe fn from_value(value: &'a glib::Value) -> Self {
419        skip_assert_initialized!();
420        from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0))
421    }
422}
423
424impl ToValue for InstallPluginsReturn {
425    #[inline]
426    fn to_value(&self) -> glib::Value {
427        let mut value = glib::Value::for_value_type::<Self>();
428        unsafe {
429            glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
430        }
431        value
432    }
433
434    #[inline]
435    fn value_type(&self) -> glib::Type {
436        Self::static_type()
437    }
438}
439
440impl From<InstallPluginsReturn> for glib::Value {
441    #[inline]
442    fn from(v: InstallPluginsReturn) -> Self {
443        skip_assert_initialized!();
444        ToValue::to_value(&v)
445    }
446}