gstreamer_controller/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::*};
8
9/// The various interpolation modes available.
10#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
11#[non_exhaustive]
12#[doc(alias = "GstInterpolationMode")]
13pub enum InterpolationMode {
14    /// steps-like interpolation, default
15    #[doc(alias = "GST_INTERPOLATION_MODE_NONE")]
16    None,
17    /// linear interpolation
18    #[doc(alias = "GST_INTERPOLATION_MODE_LINEAR")]
19    Linear,
20    /// cubic interpolation (natural), may overshoot
21    ///  the min or max values set by the control point, but is more 'curvy'
22    #[doc(alias = "GST_INTERPOLATION_MODE_CUBIC")]
23    Cubic,
24    /// monotonic cubic interpolation, will not
25    ///  produce any values outside of the min-max range set by the control points
26    ///  (Since: 1.8)
27    #[doc(alias = "GST_INTERPOLATION_MODE_CUBIC_MONOTONIC")]
28    CubicMonotonic,
29    #[doc(hidden)]
30    __Unknown(i32),
31}
32
33#[doc(hidden)]
34impl IntoGlib for InterpolationMode {
35    type GlibType = ffi::GstInterpolationMode;
36
37    #[inline]
38    fn into_glib(self) -> ffi::GstInterpolationMode {
39        match self {
40            Self::None => ffi::GST_INTERPOLATION_MODE_NONE,
41            Self::Linear => ffi::GST_INTERPOLATION_MODE_LINEAR,
42            Self::Cubic => ffi::GST_INTERPOLATION_MODE_CUBIC,
43            Self::CubicMonotonic => ffi::GST_INTERPOLATION_MODE_CUBIC_MONOTONIC,
44            Self::__Unknown(value) => value,
45        }
46    }
47}
48
49#[doc(hidden)]
50impl FromGlib<ffi::GstInterpolationMode> for InterpolationMode {
51    #[inline]
52    unsafe fn from_glib(value: ffi::GstInterpolationMode) -> Self {
53        skip_assert_initialized!();
54
55        match value {
56            ffi::GST_INTERPOLATION_MODE_NONE => Self::None,
57            ffi::GST_INTERPOLATION_MODE_LINEAR => Self::Linear,
58            ffi::GST_INTERPOLATION_MODE_CUBIC => Self::Cubic,
59            ffi::GST_INTERPOLATION_MODE_CUBIC_MONOTONIC => Self::CubicMonotonic,
60            value => Self::__Unknown(value),
61        }
62    }
63}
64
65impl StaticType for InterpolationMode {
66    #[inline]
67    #[doc(alias = "gst_interpolation_mode_get_type")]
68    fn static_type() -> glib::Type {
69        unsafe { from_glib(ffi::gst_interpolation_mode_get_type()) }
70    }
71}
72
73impl glib::HasParamSpec for InterpolationMode {
74    type ParamSpec = glib::ParamSpecEnum;
75    type SetValue = Self;
76    type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
77
78    fn param_spec_builder() -> Self::BuilderFn {
79        Self::ParamSpec::builder_with_default
80    }
81}
82
83impl glib::value::ValueType for InterpolationMode {
84    type Type = Self;
85}
86
87unsafe impl<'a> glib::value::FromValue<'a> for InterpolationMode {
88    type Checker = glib::value::GenericValueTypeChecker<Self>;
89
90    #[inline]
91    unsafe fn from_value(value: &'a glib::Value) -> Self {
92        skip_assert_initialized!();
93        from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0))
94    }
95}
96
97impl ToValue for InterpolationMode {
98    #[inline]
99    fn to_value(&self) -> glib::Value {
100        let mut value = glib::Value::for_value_type::<Self>();
101        unsafe {
102            glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
103        }
104        value
105    }
106
107    #[inline]
108    fn value_type(&self) -> glib::Type {
109        Self::static_type()
110    }
111}
112
113impl From<InterpolationMode> for glib::Value {
114    #[inline]
115    fn from(v: InterpolationMode) -> Self {
116        skip_assert_initialized!();
117        ToValue::to_value(&v)
118    }
119}
120
121/// The various waveform modes available.
122#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
123#[non_exhaustive]
124#[doc(alias = "GstLFOWaveform")]
125pub enum LFOWaveform {
126    /// sine waveform
127    #[doc(alias = "GST_LFO_WAVEFORM_SINE")]
128    Sine,
129    /// square waveform
130    #[doc(alias = "GST_LFO_WAVEFORM_SQUARE")]
131    Square,
132    /// saw waveform
133    #[doc(alias = "GST_LFO_WAVEFORM_SAW")]
134    Saw,
135    /// reverse saw waveform
136    #[doc(alias = "GST_LFO_WAVEFORM_REVERSE_SAW")]
137    ReverseSaw,
138    /// triangle waveform
139    #[doc(alias = "GST_LFO_WAVEFORM_TRIANGLE")]
140    Triangle,
141    #[doc(hidden)]
142    __Unknown(i32),
143}
144
145#[doc(hidden)]
146impl IntoGlib for LFOWaveform {
147    type GlibType = ffi::GstLFOWaveform;
148
149    #[inline]
150    fn into_glib(self) -> ffi::GstLFOWaveform {
151        match self {
152            Self::Sine => ffi::GST_LFO_WAVEFORM_SINE,
153            Self::Square => ffi::GST_LFO_WAVEFORM_SQUARE,
154            Self::Saw => ffi::GST_LFO_WAVEFORM_SAW,
155            Self::ReverseSaw => ffi::GST_LFO_WAVEFORM_REVERSE_SAW,
156            Self::Triangle => ffi::GST_LFO_WAVEFORM_TRIANGLE,
157            Self::__Unknown(value) => value,
158        }
159    }
160}
161
162#[doc(hidden)]
163impl FromGlib<ffi::GstLFOWaveform> for LFOWaveform {
164    #[inline]
165    unsafe fn from_glib(value: ffi::GstLFOWaveform) -> Self {
166        skip_assert_initialized!();
167
168        match value {
169            ffi::GST_LFO_WAVEFORM_SINE => Self::Sine,
170            ffi::GST_LFO_WAVEFORM_SQUARE => Self::Square,
171            ffi::GST_LFO_WAVEFORM_SAW => Self::Saw,
172            ffi::GST_LFO_WAVEFORM_REVERSE_SAW => Self::ReverseSaw,
173            ffi::GST_LFO_WAVEFORM_TRIANGLE => Self::Triangle,
174            value => Self::__Unknown(value),
175        }
176    }
177}
178
179impl StaticType for LFOWaveform {
180    #[inline]
181    #[doc(alias = "gst_lfo_waveform_get_type")]
182    fn static_type() -> glib::Type {
183        unsafe { from_glib(ffi::gst_lfo_waveform_get_type()) }
184    }
185}
186
187impl glib::HasParamSpec for LFOWaveform {
188    type ParamSpec = glib::ParamSpecEnum;
189    type SetValue = Self;
190    type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
191
192    fn param_spec_builder() -> Self::BuilderFn {
193        Self::ParamSpec::builder_with_default
194    }
195}
196
197impl glib::value::ValueType for LFOWaveform {
198    type Type = Self;
199}
200
201unsafe impl<'a> glib::value::FromValue<'a> for LFOWaveform {
202    type Checker = glib::value::GenericValueTypeChecker<Self>;
203
204    #[inline]
205    unsafe fn from_value(value: &'a glib::Value) -> Self {
206        skip_assert_initialized!();
207        from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0))
208    }
209}
210
211impl ToValue for LFOWaveform {
212    #[inline]
213    fn to_value(&self) -> glib::Value {
214        let mut value = glib::Value::for_value_type::<Self>();
215        unsafe {
216            glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
217        }
218        value
219    }
220
221    #[inline]
222    fn value_type(&self) -> glib::Type {
223        Self::static_type()
224    }
225}
226
227impl From<LFOWaveform> for glib::Value {
228    #[inline]
229    fn from(v: LFOWaveform) -> Self {
230        skip_assert_initialized!();
231        ToValue::to_value(&v)
232    }
233}