Skip to main content

gstreamer_editing_services/auto/
flags.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::{GStr, bitflags::bitflags, prelude::*, translate::*};
8
9#[cfg(feature = "v1_20")]
10bitflags! {
11    #[cfg_attr(docsrs, doc(cfg(feature = "v1_20")))]
12    #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash)]
13    #[doc(alias = "GESMarkerFlags")]
14    pub struct MarkerFlags: u32 {
15        /// Marker does not serve any special purpose.
16        #[doc(alias = "GES_MARKER_FLAG_NONE")]
17        const NONE = ffi::GES_MARKER_FLAG_NONE as _;
18        /// Marker can be a snapping target.
19        #[doc(alias = "GES_MARKER_FLAG_SNAPPABLE")]
20        const SNAPPABLE = ffi::GES_MARKER_FLAG_SNAPPABLE as _;
21    }
22}
23
24#[cfg(feature = "v1_20")]
25#[cfg_attr(docsrs, doc(cfg(feature = "v1_20")))]
26#[doc(hidden)]
27impl IntoGlib for MarkerFlags {
28    type GlibType = ffi::GESMarkerFlags;
29
30    #[inline]
31    fn into_glib(self) -> ffi::GESMarkerFlags {
32        self.bits()
33    }
34}
35
36#[cfg(feature = "v1_20")]
37#[cfg_attr(docsrs, doc(cfg(feature = "v1_20")))]
38#[doc(hidden)]
39impl FromGlib<ffi::GESMarkerFlags> for MarkerFlags {
40    #[inline]
41    unsafe fn from_glib(value: ffi::GESMarkerFlags) -> Self {
42        skip_assert_initialized!();
43        Self::from_bits_truncate(value)
44    }
45}
46
47#[cfg(feature = "v1_20")]
48#[cfg_attr(docsrs, doc(cfg(feature = "v1_20")))]
49impl StaticType for MarkerFlags {
50    #[inline]
51    #[doc(alias = "ges_marker_flags_get_type")]
52    fn static_type() -> glib::Type {
53        unsafe { from_glib(ffi::ges_marker_flags_get_type()) }
54    }
55}
56
57#[cfg(feature = "v1_20")]
58#[cfg_attr(docsrs, doc(cfg(feature = "v1_20")))]
59impl glib::HasParamSpec for MarkerFlags {
60    type ParamSpec = glib::ParamSpecFlags;
61    type SetValue = Self;
62    type BuilderFn = fn(&str) -> glib::ParamSpecFlagsBuilder<Self>;
63
64    fn param_spec_builder() -> Self::BuilderFn {
65        Self::ParamSpec::builder
66    }
67}
68
69#[cfg(feature = "v1_20")]
70#[cfg_attr(docsrs, doc(cfg(feature = "v1_20")))]
71impl glib::value::ValueType for MarkerFlags {
72    type Type = Self;
73}
74
75#[cfg(feature = "v1_20")]
76#[cfg_attr(docsrs, doc(cfg(feature = "v1_20")))]
77unsafe impl<'a> glib::value::FromValue<'a> for MarkerFlags {
78    type Checker = glib::value::GenericValueTypeChecker<Self>;
79
80    #[inline]
81    unsafe fn from_value(value: &'a glib::Value) -> Self {
82        skip_assert_initialized!();
83        unsafe { from_glib(glib::gobject_ffi::g_value_get_flags(value.to_glib_none().0)) }
84    }
85}
86
87#[cfg(feature = "v1_20")]
88#[cfg_attr(docsrs, doc(cfg(feature = "v1_20")))]
89impl ToValue for MarkerFlags {
90    #[inline]
91    fn to_value(&self) -> glib::Value {
92        let mut value = glib::Value::for_value_type::<Self>();
93        unsafe {
94            glib::gobject_ffi::g_value_set_flags(value.to_glib_none_mut().0, self.into_glib());
95        }
96        value
97    }
98
99    #[inline]
100    fn value_type(&self) -> glib::Type {
101        Self::static_type()
102    }
103}
104
105#[cfg(feature = "v1_20")]
106#[cfg_attr(docsrs, doc(cfg(feature = "v1_20")))]
107impl From<MarkerFlags> for glib::Value {
108    #[inline]
109    fn from(v: MarkerFlags) -> Self {
110        skip_assert_initialized!();
111        ToValue::to_value(&v)
112    }
113}
114
115bitflags! {
116    #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash)]
117    #[doc(alias = "GESMetaFlag")]
118    pub struct MetaFlag: u32 {
119        /// The metadata is readable
120        #[doc(alias = "GES_META_READABLE")]
121        const READABLE = ffi::GES_META_READABLE as _;
122        /// The metadata is writable
123        #[doc(alias = "GES_META_WRITABLE")]
124        const WRITABLE = ffi::GES_META_WRITABLE as _;
125        /// The metadata is readable and writable
126        #[doc(alias = "GES_META_READ_WRITE")]
127        const READWRITE = ffi::GES_META_READ_WRITE as _;
128    }
129}
130
131#[doc(hidden)]
132impl IntoGlib for MetaFlag {
133    type GlibType = ffi::GESMetaFlag;
134
135    #[inline]
136    fn into_glib(self) -> ffi::GESMetaFlag {
137        self.bits()
138    }
139}
140
141#[doc(hidden)]
142impl FromGlib<ffi::GESMetaFlag> for MetaFlag {
143    #[inline]
144    unsafe fn from_glib(value: ffi::GESMetaFlag) -> Self {
145        skip_assert_initialized!();
146        Self::from_bits_truncate(value)
147    }
148}
149
150impl StaticType for MetaFlag {
151    #[inline]
152    #[doc(alias = "ges_meta_flag_get_type")]
153    fn static_type() -> glib::Type {
154        unsafe { from_glib(ffi::ges_meta_flag_get_type()) }
155    }
156}
157
158impl glib::HasParamSpec for MetaFlag {
159    type ParamSpec = glib::ParamSpecFlags;
160    type SetValue = Self;
161    type BuilderFn = fn(&str) -> glib::ParamSpecFlagsBuilder<Self>;
162
163    fn param_spec_builder() -> Self::BuilderFn {
164        Self::ParamSpec::builder
165    }
166}
167
168impl glib::value::ValueType for MetaFlag {
169    type Type = Self;
170}
171
172unsafe impl<'a> glib::value::FromValue<'a> for MetaFlag {
173    type Checker = glib::value::GenericValueTypeChecker<Self>;
174
175    #[inline]
176    unsafe fn from_value(value: &'a glib::Value) -> Self {
177        skip_assert_initialized!();
178        unsafe { from_glib(glib::gobject_ffi::g_value_get_flags(value.to_glib_none().0)) }
179    }
180}
181
182impl ToValue for MetaFlag {
183    #[inline]
184    fn to_value(&self) -> glib::Value {
185        let mut value = glib::Value::for_value_type::<Self>();
186        unsafe {
187            glib::gobject_ffi::g_value_set_flags(value.to_glib_none_mut().0, self.into_glib());
188        }
189        value
190    }
191
192    #[inline]
193    fn value_type(&self) -> glib::Type {
194        Self::static_type()
195    }
196}
197
198impl From<MetaFlag> for glib::Value {
199    #[inline]
200    fn from(v: MetaFlag) -> Self {
201        skip_assert_initialized!();
202        ToValue::to_value(&v)
203    }
204}
205
206bitflags! {
207    /// The various modes a [`Pipeline`][crate::Pipeline] can be configured to.
208    #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash)]
209    #[doc(alias = "GESPipelineFlags")]
210    pub struct PipelineFlags: u32 {
211        /// Output the [`timeline`][struct@crate::Pipeline#timeline]'s
212        /// audio to the soundcard
213        #[doc(alias = "GES_PIPELINE_MODE_PREVIEW_AUDIO")]
214        const AUDIO_PREVIEW = ffi::GES_PIPELINE_MODE_PREVIEW_AUDIO as _;
215        /// Output the [`timeline`][struct@crate::Pipeline#timeline]'s
216        /// video to the screen
217        #[doc(alias = "GES_PIPELINE_MODE_PREVIEW_VIDEO")]
218        const VIDEO_PREVIEW = ffi::GES_PIPELINE_MODE_PREVIEW_VIDEO as _;
219        /// Output both the [`timeline`][struct@crate::Pipeline#timeline]'s
220        /// audio and video to the soundcard and screen (default)
221        #[doc(alias = "GES_PIPELINE_MODE_PREVIEW")]
222        const FULL_PREVIEW = ffi::GES_PIPELINE_MODE_PREVIEW as _;
223        /// Render the [`timeline`][struct@crate::Pipeline#timeline] with
224        /// forced decoding (the underlying `encodebin` has its
225        /// `encodebin:avoid-reencoding` property set to [`false`])
226        #[doc(alias = "GES_PIPELINE_MODE_RENDER")]
227        const RENDER = ffi::GES_PIPELINE_MODE_RENDER as _;
228        ///  is enabled.
229        #[doc(alias = "GES_PIPELINE_MODE_SMART_RENDER")]
230        const SMART_RENDER = ffi::GES_PIPELINE_MODE_SMART_RENDER as _;
231    }
232}
233
234#[doc(hidden)]
235impl IntoGlib for PipelineFlags {
236    type GlibType = ffi::GESPipelineFlags;
237
238    #[inline]
239    fn into_glib(self) -> ffi::GESPipelineFlags {
240        self.bits()
241    }
242}
243
244#[doc(hidden)]
245impl FromGlib<ffi::GESPipelineFlags> for PipelineFlags {
246    #[inline]
247    unsafe fn from_glib(value: ffi::GESPipelineFlags) -> Self {
248        skip_assert_initialized!();
249        Self::from_bits_truncate(value)
250    }
251}
252
253impl StaticType for PipelineFlags {
254    #[inline]
255    #[doc(alias = "ges_pipeline_flags_get_type")]
256    fn static_type() -> glib::Type {
257        unsafe { from_glib(ffi::ges_pipeline_flags_get_type()) }
258    }
259}
260
261impl glib::HasParamSpec for PipelineFlags {
262    type ParamSpec = glib::ParamSpecFlags;
263    type SetValue = Self;
264    type BuilderFn = fn(&str) -> glib::ParamSpecFlagsBuilder<Self>;
265
266    fn param_spec_builder() -> Self::BuilderFn {
267        Self::ParamSpec::builder
268    }
269}
270
271impl glib::value::ValueType for PipelineFlags {
272    type Type = Self;
273}
274
275unsafe impl<'a> glib::value::FromValue<'a> for PipelineFlags {
276    type Checker = glib::value::GenericValueTypeChecker<Self>;
277
278    #[inline]
279    unsafe fn from_value(value: &'a glib::Value) -> Self {
280        skip_assert_initialized!();
281        unsafe { from_glib(glib::gobject_ffi::g_value_get_flags(value.to_glib_none().0)) }
282    }
283}
284
285impl ToValue for PipelineFlags {
286    #[inline]
287    fn to_value(&self) -> glib::Value {
288        let mut value = glib::Value::for_value_type::<Self>();
289        unsafe {
290            glib::gobject_ffi::g_value_set_flags(value.to_glib_none_mut().0, self.into_glib());
291        }
292        value
293    }
294
295    #[inline]
296    fn value_type(&self) -> glib::Type {
297        Self::static_type()
298    }
299}
300
301impl From<PipelineFlags> for glib::Value {
302    #[inline]
303    fn from(v: PipelineFlags) -> Self {
304        skip_assert_initialized!();
305        ToValue::to_value(&v)
306    }
307}
308
309bitflags! {
310    /// Types of content handled by a track. If the content is not one of
311    /// [`AUDIO`][Self::AUDIO], [`VIDEO`][Self::VIDEO] or [`TEXT`][Self::TEXT],
312    /// the user of the [`Track`][crate::Track] must set the type to [`CUSTOM`][Self::CUSTOM].
313    ///
314    /// [`UNKNOWN`][Self::UNKNOWN] is for internal purposes and should not be used
315    /// by users
316    #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash)]
317    #[doc(alias = "GESTrackType")]
318    pub struct TrackType: u32 {
319        /// A track of unknown type (i.e. invalid)
320        #[doc(alias = "GES_TRACK_TYPE_UNKNOWN")]
321        const UNKNOWN = ffi::GES_TRACK_TYPE_UNKNOWN as _;
322        /// An audio track
323        #[doc(alias = "GES_TRACK_TYPE_AUDIO")]
324        const AUDIO = ffi::GES_TRACK_TYPE_AUDIO as _;
325        /// A video track
326        #[doc(alias = "GES_TRACK_TYPE_VIDEO")]
327        const VIDEO = ffi::GES_TRACK_TYPE_VIDEO as _;
328        /// A text (subtitle) track
329        #[doc(alias = "GES_TRACK_TYPE_TEXT")]
330        const TEXT = ffi::GES_TRACK_TYPE_TEXT as _;
331        /// A custom-content track
332        #[doc(alias = "GES_TRACK_TYPE_CUSTOM")]
333        const CUSTOM = ffi::GES_TRACK_TYPE_CUSTOM as _;
334    }
335}
336
337impl TrackType {
338    pub fn name<'a>(self) -> &'a GStr {
339        unsafe {
340            GStr::from_ptr(
341                ffi::ges_track_type_name(self.into_glib())
342                    .as_ref()
343                    .expect("ges_track_type_name returned NULL"),
344            )
345        }
346    }
347}
348
349impl std::fmt::Display for TrackType {
350    #[inline]
351    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
352        f.write_str(&self.name())
353    }
354}
355
356#[doc(hidden)]
357impl IntoGlib for TrackType {
358    type GlibType = ffi::GESTrackType;
359
360    #[inline]
361    fn into_glib(self) -> ffi::GESTrackType {
362        self.bits()
363    }
364}
365
366#[doc(hidden)]
367impl FromGlib<ffi::GESTrackType> for TrackType {
368    #[inline]
369    unsafe fn from_glib(value: ffi::GESTrackType) -> Self {
370        skip_assert_initialized!();
371        Self::from_bits_truncate(value)
372    }
373}
374
375impl StaticType for TrackType {
376    #[inline]
377    #[doc(alias = "ges_track_type_get_type")]
378    fn static_type() -> glib::Type {
379        unsafe { from_glib(ffi::ges_track_type_get_type()) }
380    }
381}
382
383impl glib::HasParamSpec for TrackType {
384    type ParamSpec = glib::ParamSpecFlags;
385    type SetValue = Self;
386    type BuilderFn = fn(&str) -> glib::ParamSpecFlagsBuilder<Self>;
387
388    fn param_spec_builder() -> Self::BuilderFn {
389        Self::ParamSpec::builder
390    }
391}
392
393impl glib::value::ValueType for TrackType {
394    type Type = Self;
395}
396
397unsafe impl<'a> glib::value::FromValue<'a> for TrackType {
398    type Checker = glib::value::GenericValueTypeChecker<Self>;
399
400    #[inline]
401    unsafe fn from_value(value: &'a glib::Value) -> Self {
402        skip_assert_initialized!();
403        unsafe { from_glib(glib::gobject_ffi::g_value_get_flags(value.to_glib_none().0)) }
404    }
405}
406
407impl ToValue for TrackType {
408    #[inline]
409    fn to_value(&self) -> glib::Value {
410        let mut value = glib::Value::for_value_type::<Self>();
411        unsafe {
412            glib::gobject_ffi::g_value_set_flags(value.to_glib_none_mut().0, self.into_glib());
413        }
414        value
415    }
416
417    #[inline]
418    fn value_type(&self) -> glib::Type {
419        Self::static_type()
420    }
421}
422
423impl From<TrackType> for glib::Value {
424    #[inline]
425    fn from(v: TrackType) -> Self {
426        skip_assert_initialized!();
427        ToValue::to_value(&v)
428    }
429}