1use crate::ffi;
7#[cfg(feature = "v1_16")]
8#[cfg_attr(docsrs, doc(cfg(feature = "v1_16")))]
9use glib::GStr;
10use glib::{prelude::*, translate::*};
11
12#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
13#[non_exhaustive]
14#[doc(alias = "GESAssetLoadingReturn")]
15pub enum AssetLoadingReturn {
16    #[doc(alias = "GES_ASSET_LOADING_ERROR")]
18    Error,
19    #[doc(alias = "GES_ASSET_LOADING_ASYNC")]
22    Async,
23    #[doc(alias = "GES_ASSET_LOADING_OK")]
26    Ok,
27    #[doc(hidden)]
28    __Unknown(i32),
29}
30
31#[doc(hidden)]
32impl IntoGlib for AssetLoadingReturn {
33    type GlibType = ffi::GESAssetLoadingReturn;
34
35    #[inline]
36    fn into_glib(self) -> ffi::GESAssetLoadingReturn {
37        match self {
38            Self::Error => ffi::GES_ASSET_LOADING_ERROR,
39            Self::Async => ffi::GES_ASSET_LOADING_ASYNC,
40            Self::Ok => ffi::GES_ASSET_LOADING_OK,
41            Self::__Unknown(value) => value,
42        }
43    }
44}
45
46#[doc(hidden)]
47impl FromGlib<ffi::GESAssetLoadingReturn> for AssetLoadingReturn {
48    #[inline]
49    unsafe fn from_glib(value: ffi::GESAssetLoadingReturn) -> Self {
50        skip_assert_initialized!();
51
52        match value {
53            ffi::GES_ASSET_LOADING_ERROR => Self::Error,
54            ffi::GES_ASSET_LOADING_ASYNC => Self::Async,
55            ffi::GES_ASSET_LOADING_OK => Self::Ok,
56            value => Self::__Unknown(value),
57        }
58    }
59}
60
61#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
64#[non_exhaustive]
65#[doc(alias = "GESChildrenControlMode")]
66pub enum ChildrenControlMode {
67    #[doc(alias = "GES_CHILDREN_UPDATE")]
68    Update,
69    #[doc(alias = "GES_CHILDREN_IGNORE_NOTIFIES")]
70    IgnoreNotifies,
71    #[doc(alias = "GES_CHILDREN_UPDATE_OFFSETS")]
72    UpdateOffsets,
73    #[doc(alias = "GES_CHILDREN_UPDATE_ALL_VALUES")]
74    UpdateAllValues,
75    #[doc(alias = "GES_CHILDREN_LAST")]
76    Last,
77    #[doc(hidden)]
78    __Unknown(i32),
79}
80
81#[doc(hidden)]
82impl IntoGlib for ChildrenControlMode {
83    type GlibType = ffi::GESChildrenControlMode;
84
85    #[inline]
86    fn into_glib(self) -> ffi::GESChildrenControlMode {
87        match self {
88            Self::Update => ffi::GES_CHILDREN_UPDATE,
89            Self::IgnoreNotifies => ffi::GES_CHILDREN_IGNORE_NOTIFIES,
90            Self::UpdateOffsets => ffi::GES_CHILDREN_UPDATE_OFFSETS,
91            Self::UpdateAllValues => ffi::GES_CHILDREN_UPDATE_ALL_VALUES,
92            Self::Last => ffi::GES_CHILDREN_LAST,
93            Self::__Unknown(value) => value,
94        }
95    }
96}
97
98#[doc(hidden)]
99impl FromGlib<ffi::GESChildrenControlMode> for ChildrenControlMode {
100    #[inline]
101    unsafe fn from_glib(value: ffi::GESChildrenControlMode) -> Self {
102        skip_assert_initialized!();
103
104        match value {
105            ffi::GES_CHILDREN_UPDATE => Self::Update,
106            ffi::GES_CHILDREN_IGNORE_NOTIFIES => Self::IgnoreNotifies,
107            ffi::GES_CHILDREN_UPDATE_OFFSETS => Self::UpdateOffsets,
108            ffi::GES_CHILDREN_UPDATE_ALL_VALUES => Self::UpdateAllValues,
109            ffi::GES_CHILDREN_LAST => Self::Last,
110            value => Self::__Unknown(value),
111        }
112    }
113}
114
115#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
117#[non_exhaustive]
118#[doc(alias = "GESEdge")]
119pub enum Edge {
120    #[doc(alias = "GES_EDGE_START")]
122    Start,
123    #[doc(alias = "GES_EDGE_END")]
125    End,
126    #[doc(alias = "GES_EDGE_NONE")]
129    None,
130    #[doc(hidden)]
131    __Unknown(i32),
132}
133
134impl Edge {
135    #[cfg(feature = "v1_16")]
136    #[cfg_attr(docsrs, doc(cfg(feature = "v1_16")))]
137    pub fn name<'a>(self) -> &'a GStr {
138        unsafe {
139            GStr::from_ptr(
140                ffi::ges_edge_name(self.into_glib())
141                    .as_ref()
142                    .expect("ges_edge_name returned NULL"),
143            )
144        }
145    }
146}
147
148#[cfg(feature = "v1_16")]
149#[cfg_attr(docsrs, doc(cfg(feature = "v1_16")))]
150impl std::fmt::Display for Edge {
151    #[inline]
152    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
153        f.write_str(&self.name())
154    }
155}
156
157#[doc(hidden)]
158impl IntoGlib for Edge {
159    type GlibType = ffi::GESEdge;
160
161    #[inline]
162    fn into_glib(self) -> ffi::GESEdge {
163        match self {
164            Self::Start => ffi::GES_EDGE_START,
165            Self::End => ffi::GES_EDGE_END,
166            Self::None => ffi::GES_EDGE_NONE,
167            Self::__Unknown(value) => value,
168        }
169    }
170}
171
172#[doc(hidden)]
173impl FromGlib<ffi::GESEdge> for Edge {
174    #[inline]
175    unsafe fn from_glib(value: ffi::GESEdge) -> Self {
176        skip_assert_initialized!();
177
178        match value {
179            ffi::GES_EDGE_START => Self::Start,
180            ffi::GES_EDGE_END => Self::End,
181            ffi::GES_EDGE_NONE => Self::None,
182            value => Self::__Unknown(value),
183        }
184    }
185}
186
187impl StaticType for Edge {
188    #[inline]
189    #[doc(alias = "ges_edge_get_type")]
190    fn static_type() -> glib::Type {
191        unsafe { from_glib(ffi::ges_edge_get_type()) }
192    }
193}
194
195impl glib::HasParamSpec for Edge {
196    type ParamSpec = glib::ParamSpecEnum;
197    type SetValue = Self;
198    type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
199
200    fn param_spec_builder() -> Self::BuilderFn {
201        Self::ParamSpec::builder_with_default
202    }
203}
204
205impl glib::value::ValueType for Edge {
206    type Type = Self;
207}
208
209unsafe impl<'a> glib::value::FromValue<'a> for Edge {
210    type Checker = glib::value::GenericValueTypeChecker<Self>;
211
212    #[inline]
213    unsafe fn from_value(value: &'a glib::Value) -> Self {
214        skip_assert_initialized!();
215        from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0))
216    }
217}
218
219impl ToValue for Edge {
220    #[inline]
221    fn to_value(&self) -> glib::Value {
222        let mut value = glib::Value::for_value_type::<Self>();
223        unsafe {
224            glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
225        }
226        value
227    }
228
229    #[inline]
230    fn value_type(&self) -> glib::Type {
231        Self::static_type()
232    }
233}
234
235impl From<Edge> for glib::Value {
236    #[inline]
237    fn from(v: Edge) -> Self {
238        skip_assert_initialized!();
239        ToValue::to_value(&v)
240    }
241}
242
243#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
340#[non_exhaustive]
341#[doc(alias = "GESEditMode")]
342pub enum EditMode {
343    #[doc(alias = "GES_EDIT_MODE_NORMAL")]
353    Normal,
354    #[doc(alias = "GES_EDIT_MODE_RIPPLE")]
367    Ripple,
368    #[doc(alias = "GES_EDIT_MODE_ROLL")]
385    Roll,
386    #[doc(alias = "GES_EDIT_MODE_TRIM")]
391    Trim,
392    #[doc(alias = "GES_EDIT_MODE_SLIDE")]
404    Slide,
405    #[doc(hidden)]
406    __Unknown(i32),
407}
408
409impl EditMode {
410    #[cfg(feature = "v1_18")]
411    #[cfg_attr(docsrs, doc(cfg(feature = "v1_18")))]
412    pub fn name<'a>(self) -> &'a GStr {
413        unsafe {
414            GStr::from_ptr(
415                ffi::ges_edit_mode_name(self.into_glib())
416                    .as_ref()
417                    .expect("ges_edit_mode_name returned NULL"),
418            )
419        }
420    }
421}
422
423#[cfg(feature = "v1_18")]
424#[cfg_attr(docsrs, doc(cfg(feature = "v1_18")))]
425impl std::fmt::Display for EditMode {
426    #[inline]
427    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
428        f.write_str(&self.name())
429    }
430}
431
432#[doc(hidden)]
433impl IntoGlib for EditMode {
434    type GlibType = ffi::GESEditMode;
435
436    #[inline]
437    fn into_glib(self) -> ffi::GESEditMode {
438        match self {
439            Self::Normal => ffi::GES_EDIT_MODE_NORMAL,
440            Self::Ripple => ffi::GES_EDIT_MODE_RIPPLE,
441            Self::Roll => ffi::GES_EDIT_MODE_ROLL,
442            Self::Trim => ffi::GES_EDIT_MODE_TRIM,
443            Self::Slide => ffi::GES_EDIT_MODE_SLIDE,
444            Self::__Unknown(value) => value,
445        }
446    }
447}
448
449#[doc(hidden)]
450impl FromGlib<ffi::GESEditMode> for EditMode {
451    #[inline]
452    unsafe fn from_glib(value: ffi::GESEditMode) -> Self {
453        skip_assert_initialized!();
454
455        match value {
456            ffi::GES_EDIT_MODE_NORMAL => Self::Normal,
457            ffi::GES_EDIT_MODE_RIPPLE => Self::Ripple,
458            ffi::GES_EDIT_MODE_ROLL => Self::Roll,
459            ffi::GES_EDIT_MODE_TRIM => Self::Trim,
460            ffi::GES_EDIT_MODE_SLIDE => Self::Slide,
461            value => Self::__Unknown(value),
462        }
463    }
464}
465
466impl StaticType for EditMode {
467    #[inline]
468    #[doc(alias = "ges_edit_mode_get_type")]
469    fn static_type() -> glib::Type {
470        unsafe { from_glib(ffi::ges_edit_mode_get_type()) }
471    }
472}
473
474impl glib::HasParamSpec for EditMode {
475    type ParamSpec = glib::ParamSpecEnum;
476    type SetValue = Self;
477    type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
478
479    fn param_spec_builder() -> Self::BuilderFn {
480        Self::ParamSpec::builder_with_default
481    }
482}
483
484impl glib::value::ValueType for EditMode {
485    type Type = Self;
486}
487
488unsafe impl<'a> glib::value::FromValue<'a> for EditMode {
489    type Checker = glib::value::GenericValueTypeChecker<Self>;
490
491    #[inline]
492    unsafe fn from_value(value: &'a glib::Value) -> Self {
493        skip_assert_initialized!();
494        from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0))
495    }
496}
497
498impl ToValue for EditMode {
499    #[inline]
500    fn to_value(&self) -> glib::Value {
501        let mut value = glib::Value::for_value_type::<Self>();
502        unsafe {
503            glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
504        }
505        value
506    }
507
508    #[inline]
509    fn value_type(&self) -> glib::Type {
510        Self::static_type()
511    }
512}
513
514impl From<EditMode> for glib::Value {
515    #[inline]
516    fn from(v: EditMode) -> Self {
517        skip_assert_initialized!();
518        ToValue::to_value(&v)
519    }
520}
521
522#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
523#[non_exhaustive]
524#[doc(alias = "GESError")]
525pub enum Error {
526    #[doc(alias = "GES_ERROR_ASSET_WRONG_ID")]
528    AssetWrongId,
529    #[doc(alias = "GES_ERROR_ASSET_LOADING")]
531    AssetLoading,
532    #[doc(alias = "GES_ERROR_FORMATTER_MALFORMED_INPUT_FILE")]
534    FormatterMalformedInputFile,
535    #[doc(alias = "GES_ERROR_INVALID_FRAME_NUMBER")]
537    InvalidFrameNumber,
538    #[doc(alias = "GES_ERROR_NEGATIVE_LAYER")]
541    NegativeLayer,
542    #[doc(alias = "GES_ERROR_NEGATIVE_TIME")]
546    NegativeTime,
547    #[doc(alias = "GES_ERROR_NOT_ENOUGH_INTERNAL_CONTENT")]
551    NotEnoughInternalContent,
552    #[doc(alias = "GES_ERROR_INVALID_OVERLAP_IN_TRACK")]
555    InvalidOverlapInTrack,
556    #[doc(alias = "GES_ERROR_INVALID_EFFECT_BIN_DESCRIPTION")]
557    InvalidEffectBinDescription,
558    #[doc(hidden)]
559    __Unknown(i32),
560}
561
562#[doc(hidden)]
563impl IntoGlib for Error {
564    type GlibType = ffi::GESError;
565
566    #[inline]
567    fn into_glib(self) -> ffi::GESError {
568        match self {
569            Self::AssetWrongId => ffi::GES_ERROR_ASSET_WRONG_ID,
570            Self::AssetLoading => ffi::GES_ERROR_ASSET_LOADING,
571            Self::FormatterMalformedInputFile => ffi::GES_ERROR_FORMATTER_MALFORMED_INPUT_FILE,
572            Self::InvalidFrameNumber => ffi::GES_ERROR_INVALID_FRAME_NUMBER,
573            Self::NegativeLayer => ffi::GES_ERROR_NEGATIVE_LAYER,
574            Self::NegativeTime => ffi::GES_ERROR_NEGATIVE_TIME,
575            Self::NotEnoughInternalContent => ffi::GES_ERROR_NOT_ENOUGH_INTERNAL_CONTENT,
576            Self::InvalidOverlapInTrack => ffi::GES_ERROR_INVALID_OVERLAP_IN_TRACK,
577            Self::InvalidEffectBinDescription => ffi::GES_ERROR_INVALID_EFFECT_BIN_DESCRIPTION,
578            Self::__Unknown(value) => value,
579        }
580    }
581}
582
583#[doc(hidden)]
584impl FromGlib<ffi::GESError> for Error {
585    #[inline]
586    unsafe fn from_glib(value: ffi::GESError) -> Self {
587        skip_assert_initialized!();
588
589        match value {
590            ffi::GES_ERROR_ASSET_WRONG_ID => Self::AssetWrongId,
591            ffi::GES_ERROR_ASSET_LOADING => Self::AssetLoading,
592            ffi::GES_ERROR_FORMATTER_MALFORMED_INPUT_FILE => Self::FormatterMalformedInputFile,
593            ffi::GES_ERROR_INVALID_FRAME_NUMBER => Self::InvalidFrameNumber,
594            ffi::GES_ERROR_NEGATIVE_LAYER => Self::NegativeLayer,
595            ffi::GES_ERROR_NEGATIVE_TIME => Self::NegativeTime,
596            ffi::GES_ERROR_NOT_ENOUGH_INTERNAL_CONTENT => Self::NotEnoughInternalContent,
597            ffi::GES_ERROR_INVALID_OVERLAP_IN_TRACK => Self::InvalidOverlapInTrack,
598            ffi::GES_ERROR_INVALID_EFFECT_BIN_DESCRIPTION => Self::InvalidEffectBinDescription,
599            value => Self::__Unknown(value),
600        }
601    }
602}
603
604#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
606#[non_exhaustive]
607#[doc(alias = "GESTextHAlign")]
608pub enum TextHAlign {
609    #[doc(alias = "GES_TEXT_HALIGN_LEFT")]
611    Left,
612    #[doc(alias = "GES_TEXT_HALIGN_CENTER")]
614    Center,
615    #[doc(alias = "GES_TEXT_HALIGN_RIGHT")]
617    Right,
618    #[doc(alias = "GES_TEXT_HALIGN_POSITION")]
620    Position,
621    #[doc(alias = "GES_TEXT_HALIGN_ABSOLUTE")]
622    Absolute,
623    #[doc(hidden)]
624    __Unknown(i32),
625}
626
627#[doc(hidden)]
628impl IntoGlib for TextHAlign {
629    type GlibType = ffi::GESTextHAlign;
630
631    #[inline]
632    fn into_glib(self) -> ffi::GESTextHAlign {
633        match self {
634            Self::Left => ffi::GES_TEXT_HALIGN_LEFT,
635            Self::Center => ffi::GES_TEXT_HALIGN_CENTER,
636            Self::Right => ffi::GES_TEXT_HALIGN_RIGHT,
637            Self::Position => ffi::GES_TEXT_HALIGN_POSITION,
638            Self::Absolute => ffi::GES_TEXT_HALIGN_ABSOLUTE,
639            Self::__Unknown(value) => value,
640        }
641    }
642}
643
644#[doc(hidden)]
645impl FromGlib<ffi::GESTextHAlign> for TextHAlign {
646    #[inline]
647    unsafe fn from_glib(value: ffi::GESTextHAlign) -> Self {
648        skip_assert_initialized!();
649
650        match value {
651            ffi::GES_TEXT_HALIGN_LEFT => Self::Left,
652            ffi::GES_TEXT_HALIGN_CENTER => Self::Center,
653            ffi::GES_TEXT_HALIGN_RIGHT => Self::Right,
654            ffi::GES_TEXT_HALIGN_POSITION => Self::Position,
655            ffi::GES_TEXT_HALIGN_ABSOLUTE => Self::Absolute,
656            value => Self::__Unknown(value),
657        }
658    }
659}
660
661impl StaticType for TextHAlign {
662    #[inline]
663    #[doc(alias = "ges_text_halign_get_type")]
664    fn static_type() -> glib::Type {
665        unsafe { from_glib(ffi::ges_text_halign_get_type()) }
666    }
667}
668
669impl glib::HasParamSpec for TextHAlign {
670    type ParamSpec = glib::ParamSpecEnum;
671    type SetValue = Self;
672    type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
673
674    fn param_spec_builder() -> Self::BuilderFn {
675        Self::ParamSpec::builder_with_default
676    }
677}
678
679impl glib::value::ValueType for TextHAlign {
680    type Type = Self;
681}
682
683unsafe impl<'a> glib::value::FromValue<'a> for TextHAlign {
684    type Checker = glib::value::GenericValueTypeChecker<Self>;
685
686    #[inline]
687    unsafe fn from_value(value: &'a glib::Value) -> Self {
688        skip_assert_initialized!();
689        from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0))
690    }
691}
692
693impl ToValue for TextHAlign {
694    #[inline]
695    fn to_value(&self) -> glib::Value {
696        let mut value = glib::Value::for_value_type::<Self>();
697        unsafe {
698            glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
699        }
700        value
701    }
702
703    #[inline]
704    fn value_type(&self) -> glib::Type {
705        Self::static_type()
706    }
707}
708
709impl From<TextHAlign> for glib::Value {
710    #[inline]
711    fn from(v: TextHAlign) -> Self {
712        skip_assert_initialized!();
713        ToValue::to_value(&v)
714    }
715}
716
717#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
719#[non_exhaustive]
720#[doc(alias = "GESTextVAlign")]
721pub enum TextVAlign {
722    #[doc(alias = "GES_TEXT_VALIGN_BASELINE")]
724    Baseline,
725    #[doc(alias = "GES_TEXT_VALIGN_BOTTOM")]
727    Bottom,
728    #[doc(alias = "GES_TEXT_VALIGN_TOP")]
730    Top,
731    #[doc(alias = "GES_TEXT_VALIGN_POSITION")]
733    Position,
734    #[doc(alias = "GES_TEXT_VALIGN_CENTER")]
736    Center,
737    #[doc(alias = "GES_TEXT_VALIGN_ABSOLUTE")]
738    Absolute,
739    #[doc(hidden)]
740    __Unknown(i32),
741}
742
743#[doc(hidden)]
744impl IntoGlib for TextVAlign {
745    type GlibType = ffi::GESTextVAlign;
746
747    #[inline]
748    fn into_glib(self) -> ffi::GESTextVAlign {
749        match self {
750            Self::Baseline => ffi::GES_TEXT_VALIGN_BASELINE,
751            Self::Bottom => ffi::GES_TEXT_VALIGN_BOTTOM,
752            Self::Top => ffi::GES_TEXT_VALIGN_TOP,
753            Self::Position => ffi::GES_TEXT_VALIGN_POSITION,
754            Self::Center => ffi::GES_TEXT_VALIGN_CENTER,
755            Self::Absolute => ffi::GES_TEXT_VALIGN_ABSOLUTE,
756            Self::__Unknown(value) => value,
757        }
758    }
759}
760
761#[doc(hidden)]
762impl FromGlib<ffi::GESTextVAlign> for TextVAlign {
763    #[inline]
764    unsafe fn from_glib(value: ffi::GESTextVAlign) -> Self {
765        skip_assert_initialized!();
766
767        match value {
768            ffi::GES_TEXT_VALIGN_BASELINE => Self::Baseline,
769            ffi::GES_TEXT_VALIGN_BOTTOM => Self::Bottom,
770            ffi::GES_TEXT_VALIGN_TOP => Self::Top,
771            ffi::GES_TEXT_VALIGN_POSITION => Self::Position,
772            ffi::GES_TEXT_VALIGN_CENTER => Self::Center,
773            ffi::GES_TEXT_VALIGN_ABSOLUTE => Self::Absolute,
774            value => Self::__Unknown(value),
775        }
776    }
777}
778
779impl StaticType for TextVAlign {
780    #[inline]
781    #[doc(alias = "ges_text_valign_get_type")]
782    fn static_type() -> glib::Type {
783        unsafe { from_glib(ffi::ges_text_valign_get_type()) }
784    }
785}
786
787impl glib::HasParamSpec for TextVAlign {
788    type ParamSpec = glib::ParamSpecEnum;
789    type SetValue = Self;
790    type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
791
792    fn param_spec_builder() -> Self::BuilderFn {
793        Self::ParamSpec::builder_with_default
794    }
795}
796
797impl glib::value::ValueType for TextVAlign {
798    type Type = Self;
799}
800
801unsafe impl<'a> glib::value::FromValue<'a> for TextVAlign {
802    type Checker = glib::value::GenericValueTypeChecker<Self>;
803
804    #[inline]
805    unsafe fn from_value(value: &'a glib::Value) -> Self {
806        skip_assert_initialized!();
807        from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0))
808    }
809}
810
811impl ToValue for TextVAlign {
812    #[inline]
813    fn to_value(&self) -> glib::Value {
814        let mut value = glib::Value::for_value_type::<Self>();
815        unsafe {
816            glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
817        }
818        value
819    }
820
821    #[inline]
822    fn value_type(&self) -> glib::Type {
823        Self::static_type()
824    }
825}
826
827impl From<TextVAlign> for glib::Value {
828    #[inline]
829    fn from(v: TextVAlign) -> Self {
830        skip_assert_initialized!();
831        ToValue::to_value(&v)
832    }
833}
834
835#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
836#[non_exhaustive]
837#[doc(alias = "GESVideoStandardTransitionType")]
838pub enum VideoStandardTransitionType {
839    #[doc(alias = "GES_VIDEO_STANDARD_TRANSITION_TYPE_NONE")]
841    None,
842    #[doc(alias = "GES_VIDEO_STANDARD_TRANSITION_TYPE_BAR_WIPE_LR")]
844    BarWipeLr,
845    #[doc(alias = "GES_VIDEO_STANDARD_TRANSITION_TYPE_BAR_WIPE_TB")]
847    BarWipeTb,
848    #[doc(alias = "GES_VIDEO_STANDARD_TRANSITION_TYPE_BOX_WIPE_TL")]
850    BoxWipeTl,
851    #[doc(alias = "GES_VIDEO_STANDARD_TRANSITION_TYPE_BOX_WIPE_TR")]
853    BoxWipeTr,
854    #[doc(alias = "GES_VIDEO_STANDARD_TRANSITION_TYPE_BOX_WIPE_BR")]
856    BoxWipeBr,
857    #[doc(alias = "GES_VIDEO_STANDARD_TRANSITION_TYPE_BOX_WIPE_BL")]
859    BoxWipeBl,
860    #[doc(alias = "GES_VIDEO_STANDARD_TRANSITION_TYPE_FOUR_BOX_WIPE_CI")]
862    FourBoxWipeCi,
863    #[doc(alias = "GES_VIDEO_STANDARD_TRANSITION_TYPE_FOUR_BOX_WIPE_CO")]
865    FourBoxWipeCo,
866    #[doc(alias = "GES_VIDEO_STANDARD_TRANSITION_TYPE_BARNDOOR_V")]
868    BarndoorV,
869    #[doc(alias = "GES_VIDEO_STANDARD_TRANSITION_TYPE_BARNDOOR_H")]
871    BarndoorH,
872    #[doc(alias = "GES_VIDEO_STANDARD_TRANSITION_TYPE_BOX_WIPE_TC")]
874    BoxWipeTc,
875    #[doc(alias = "GES_VIDEO_STANDARD_TRANSITION_TYPE_BOX_WIPE_RC")]
877    BoxWipeRc,
878    #[doc(alias = "GES_VIDEO_STANDARD_TRANSITION_TYPE_BOX_WIPE_BC")]
880    BoxWipeBc,
881    #[doc(alias = "GES_VIDEO_STANDARD_TRANSITION_TYPE_BOX_WIPE_LC")]
883    BoxWipeLc,
884    #[doc(alias = "GES_VIDEO_STANDARD_TRANSITION_TYPE_DIAGONAL_TL")]
886    DiagonalTl,
887    #[doc(alias = "GES_VIDEO_STANDARD_TRANSITION_TYPE_DIAGONAL_TR")]
889    DiagonalTr,
890    #[doc(alias = "GES_VIDEO_STANDARD_TRANSITION_TYPE_BOWTIE_V")]
892    BowtieV,
893    #[doc(alias = "GES_VIDEO_STANDARD_TRANSITION_TYPE_BOWTIE_H")]
895    BowtieH,
896    #[doc(alias = "GES_VIDEO_STANDARD_TRANSITION_TYPE_BARNDOOR_DBL")]
898    BarndoorDbl,
899    #[doc(alias = "GES_VIDEO_STANDARD_TRANSITION_TYPE_BARNDOOR_DTL")]
901    BarndoorDtl,
902    #[doc(alias = "GES_VIDEO_STANDARD_TRANSITION_TYPE_MISC_DIAGONAL_DBD")]
904    MiscDiagonalDbd,
905    #[doc(alias = "GES_VIDEO_STANDARD_TRANSITION_TYPE_MISC_DIAGONAL_DD")]
907    MiscDiagonalDd,
908    #[doc(alias = "GES_VIDEO_STANDARD_TRANSITION_TYPE_VEE_D")]
910    VeeD,
911    #[doc(alias = "GES_VIDEO_STANDARD_TRANSITION_TYPE_VEE_L")]
913    VeeL,
914    #[doc(alias = "GES_VIDEO_STANDARD_TRANSITION_TYPE_VEE_U")]
916    VeeU,
917    #[doc(alias = "GES_VIDEO_STANDARD_TRANSITION_TYPE_VEE_R")]
919    VeeR,
920    #[doc(alias = "GES_VIDEO_STANDARD_TRANSITION_TYPE_BARNVEE_D")]
922    BarnveeD,
923    #[doc(alias = "GES_VIDEO_STANDARD_TRANSITION_TYPE_BARNVEE_L")]
925    BarnveeL,
926    #[doc(alias = "GES_VIDEO_STANDARD_TRANSITION_TYPE_BARNVEE_U")]
928    BarnveeU,
929    #[doc(alias = "GES_VIDEO_STANDARD_TRANSITION_TYPE_BARNVEE_R")]
931    BarnveeR,
932    #[doc(alias = "GES_VIDEO_STANDARD_TRANSITION_TYPE_IRIS_RECT")]
934    IrisRect,
935    #[doc(alias = "GES_VIDEO_STANDARD_TRANSITION_TYPE_CLOCK_CW12")]
937    ClockCw12,
938    #[doc(alias = "GES_VIDEO_STANDARD_TRANSITION_TYPE_CLOCK_CW3")]
940    ClockCw3,
941    #[doc(alias = "GES_VIDEO_STANDARD_TRANSITION_TYPE_CLOCK_CW6")]
943    ClockCw6,
944    #[doc(alias = "GES_VIDEO_STANDARD_TRANSITION_TYPE_CLOCK_CW9")]
946    ClockCw9,
947    #[doc(alias = "GES_VIDEO_STANDARD_TRANSITION_TYPE_PINWHEEL_TBV")]
949    PinwheelTbv,
950    #[doc(alias = "GES_VIDEO_STANDARD_TRANSITION_TYPE_PINWHEEL_TBH")]
952    PinwheelTbh,
953    #[doc(alias = "GES_VIDEO_STANDARD_TRANSITION_TYPE_PINWHEEL_FB")]
955    PinwheelFb,
956    #[doc(alias = "GES_VIDEO_STANDARD_TRANSITION_TYPE_FAN_CT")]
958    FanCt,
959    #[doc(alias = "GES_VIDEO_STANDARD_TRANSITION_TYPE_FAN_CR")]
961    FanCr,
962    #[doc(alias = "GES_VIDEO_STANDARD_TRANSITION_TYPE_DOUBLEFAN_FOV")]
964    DoublefanFov,
965    #[doc(alias = "GES_VIDEO_STANDARD_TRANSITION_TYPE_DOUBLEFAN_FOH")]
967    DoublefanFoh,
968    #[doc(alias = "GES_VIDEO_STANDARD_TRANSITION_TYPE_SINGLESWEEP_CWT")]
970    SinglesweepCwt,
971    #[doc(alias = "GES_VIDEO_STANDARD_TRANSITION_TYPE_SINGLESWEEP_CWR")]
973    SinglesweepCwr,
974    #[doc(alias = "GES_VIDEO_STANDARD_TRANSITION_TYPE_SINGLESWEEP_CWB")]
976    SinglesweepCwb,
977    #[doc(alias = "GES_VIDEO_STANDARD_TRANSITION_TYPE_SINGLESWEEP_CWL")]
979    SinglesweepCwl,
980    #[doc(alias = "GES_VIDEO_STANDARD_TRANSITION_TYPE_DOUBLESWEEP_PV")]
982    DoublesweepPv,
983    #[doc(alias = "GES_VIDEO_STANDARD_TRANSITION_TYPE_DOUBLESWEEP_PD")]
985    DoublesweepPd,
986    #[doc(alias = "GES_VIDEO_STANDARD_TRANSITION_TYPE_DOUBLESWEEP_OV")]
988    DoublesweepOv,
989    #[doc(alias = "GES_VIDEO_STANDARD_TRANSITION_TYPE_DOUBLESWEEP_OH")]
991    DoublesweepOh,
992    #[doc(alias = "GES_VIDEO_STANDARD_TRANSITION_TYPE_FAN_T")]
994    FanT,
995    #[doc(alias = "GES_VIDEO_STANDARD_TRANSITION_TYPE_FAN_R")]
997    FanR,
998    #[doc(alias = "GES_VIDEO_STANDARD_TRANSITION_TYPE_FAN_B")]
1000    FanB,
1001    #[doc(alias = "GES_VIDEO_STANDARD_TRANSITION_TYPE_FAN_L")]
1003    FanL,
1004    #[doc(alias = "GES_VIDEO_STANDARD_TRANSITION_TYPE_DOUBLEFAN_FIV")]
1006    DoublefanFiv,
1007    #[doc(alias = "GES_VIDEO_STANDARD_TRANSITION_TYPE_DOUBLEFAN_FIH")]
1009    DoublefanFih,
1010    #[doc(alias = "GES_VIDEO_STANDARD_TRANSITION_TYPE_SINGLESWEEP_CWTL")]
1012    SinglesweepCwtl,
1013    #[doc(alias = "GES_VIDEO_STANDARD_TRANSITION_TYPE_SINGLESWEEP_CWBL")]
1015    SinglesweepCwbl,
1016    #[doc(alias = "GES_VIDEO_STANDARD_TRANSITION_TYPE_SINGLESWEEP_CWBR")]
1018    SinglesweepCwbr,
1019    #[doc(alias = "GES_VIDEO_STANDARD_TRANSITION_TYPE_SINGLESWEEP_CWTR")]
1021    SinglesweepCwtr,
1022    #[doc(alias = "GES_VIDEO_STANDARD_TRANSITION_TYPE_DOUBLESWEEP_PDTL")]
1024    DoublesweepPdtl,
1025    #[doc(alias = "GES_VIDEO_STANDARD_TRANSITION_TYPE_DOUBLESWEEP_PDBL")]
1027    DoublesweepPdbl,
1028    #[doc(alias = "GES_VIDEO_STANDARD_TRANSITION_TYPE_SALOONDOOR_T")]
1030    SaloondoorT,
1031    #[doc(alias = "GES_VIDEO_STANDARD_TRANSITION_TYPE_SALOONDOOR_L")]
1033    SaloondoorL,
1034    #[doc(alias = "GES_VIDEO_STANDARD_TRANSITION_TYPE_SALOONDOOR_B")]
1036    SaloondoorB,
1037    #[doc(alias = "GES_VIDEO_STANDARD_TRANSITION_TYPE_SALOONDOOR_R")]
1039    SaloondoorR,
1040    #[doc(alias = "GES_VIDEO_STANDARD_TRANSITION_TYPE_WINDSHIELD_R")]
1042    WindshieldR,
1043    #[doc(alias = "GES_VIDEO_STANDARD_TRANSITION_TYPE_WINDSHIELD_U")]
1045    WindshieldU,
1046    #[doc(alias = "GES_VIDEO_STANDARD_TRANSITION_TYPE_WINDSHIELD_V")]
1048    WindshieldV,
1049    #[doc(alias = "GES_VIDEO_STANDARD_TRANSITION_TYPE_WINDSHIELD_H")]
1051    WindshieldH,
1052    #[doc(alias = "GES_VIDEO_STANDARD_TRANSITION_TYPE_CROSSFADE")]
1054    Crossfade,
1055    #[cfg(feature = "v1_22")]
1058    #[cfg_attr(docsrs, doc(cfg(feature = "v1_22")))]
1059    #[doc(alias = "GES_VIDEO_STANDARD_TRANSITION_TYPE_FADE_IN")]
1060    FadeIn,
1061    #[doc(hidden)]
1062    __Unknown(i32),
1063}
1064
1065#[doc(hidden)]
1066impl IntoGlib for VideoStandardTransitionType {
1067    type GlibType = ffi::GESVideoStandardTransitionType;
1068
1069    fn into_glib(self) -> ffi::GESVideoStandardTransitionType {
1070        match self {
1071            Self::None => ffi::GES_VIDEO_STANDARD_TRANSITION_TYPE_NONE,
1072            Self::BarWipeLr => ffi::GES_VIDEO_STANDARD_TRANSITION_TYPE_BAR_WIPE_LR,
1073            Self::BarWipeTb => ffi::GES_VIDEO_STANDARD_TRANSITION_TYPE_BAR_WIPE_TB,
1074            Self::BoxWipeTl => ffi::GES_VIDEO_STANDARD_TRANSITION_TYPE_BOX_WIPE_TL,
1075            Self::BoxWipeTr => ffi::GES_VIDEO_STANDARD_TRANSITION_TYPE_BOX_WIPE_TR,
1076            Self::BoxWipeBr => ffi::GES_VIDEO_STANDARD_TRANSITION_TYPE_BOX_WIPE_BR,
1077            Self::BoxWipeBl => ffi::GES_VIDEO_STANDARD_TRANSITION_TYPE_BOX_WIPE_BL,
1078            Self::FourBoxWipeCi => ffi::GES_VIDEO_STANDARD_TRANSITION_TYPE_FOUR_BOX_WIPE_CI,
1079            Self::FourBoxWipeCo => ffi::GES_VIDEO_STANDARD_TRANSITION_TYPE_FOUR_BOX_WIPE_CO,
1080            Self::BarndoorV => ffi::GES_VIDEO_STANDARD_TRANSITION_TYPE_BARNDOOR_V,
1081            Self::BarndoorH => ffi::GES_VIDEO_STANDARD_TRANSITION_TYPE_BARNDOOR_H,
1082            Self::BoxWipeTc => ffi::GES_VIDEO_STANDARD_TRANSITION_TYPE_BOX_WIPE_TC,
1083            Self::BoxWipeRc => ffi::GES_VIDEO_STANDARD_TRANSITION_TYPE_BOX_WIPE_RC,
1084            Self::BoxWipeBc => ffi::GES_VIDEO_STANDARD_TRANSITION_TYPE_BOX_WIPE_BC,
1085            Self::BoxWipeLc => ffi::GES_VIDEO_STANDARD_TRANSITION_TYPE_BOX_WIPE_LC,
1086            Self::DiagonalTl => ffi::GES_VIDEO_STANDARD_TRANSITION_TYPE_DIAGONAL_TL,
1087            Self::DiagonalTr => ffi::GES_VIDEO_STANDARD_TRANSITION_TYPE_DIAGONAL_TR,
1088            Self::BowtieV => ffi::GES_VIDEO_STANDARD_TRANSITION_TYPE_BOWTIE_V,
1089            Self::BowtieH => ffi::GES_VIDEO_STANDARD_TRANSITION_TYPE_BOWTIE_H,
1090            Self::BarndoorDbl => ffi::GES_VIDEO_STANDARD_TRANSITION_TYPE_BARNDOOR_DBL,
1091            Self::BarndoorDtl => ffi::GES_VIDEO_STANDARD_TRANSITION_TYPE_BARNDOOR_DTL,
1092            Self::MiscDiagonalDbd => ffi::GES_VIDEO_STANDARD_TRANSITION_TYPE_MISC_DIAGONAL_DBD,
1093            Self::MiscDiagonalDd => ffi::GES_VIDEO_STANDARD_TRANSITION_TYPE_MISC_DIAGONAL_DD,
1094            Self::VeeD => ffi::GES_VIDEO_STANDARD_TRANSITION_TYPE_VEE_D,
1095            Self::VeeL => ffi::GES_VIDEO_STANDARD_TRANSITION_TYPE_VEE_L,
1096            Self::VeeU => ffi::GES_VIDEO_STANDARD_TRANSITION_TYPE_VEE_U,
1097            Self::VeeR => ffi::GES_VIDEO_STANDARD_TRANSITION_TYPE_VEE_R,
1098            Self::BarnveeD => ffi::GES_VIDEO_STANDARD_TRANSITION_TYPE_BARNVEE_D,
1099            Self::BarnveeL => ffi::GES_VIDEO_STANDARD_TRANSITION_TYPE_BARNVEE_L,
1100            Self::BarnveeU => ffi::GES_VIDEO_STANDARD_TRANSITION_TYPE_BARNVEE_U,
1101            Self::BarnveeR => ffi::GES_VIDEO_STANDARD_TRANSITION_TYPE_BARNVEE_R,
1102            Self::IrisRect => ffi::GES_VIDEO_STANDARD_TRANSITION_TYPE_IRIS_RECT,
1103            Self::ClockCw12 => ffi::GES_VIDEO_STANDARD_TRANSITION_TYPE_CLOCK_CW12,
1104            Self::ClockCw3 => ffi::GES_VIDEO_STANDARD_TRANSITION_TYPE_CLOCK_CW3,
1105            Self::ClockCw6 => ffi::GES_VIDEO_STANDARD_TRANSITION_TYPE_CLOCK_CW6,
1106            Self::ClockCw9 => ffi::GES_VIDEO_STANDARD_TRANSITION_TYPE_CLOCK_CW9,
1107            Self::PinwheelTbv => ffi::GES_VIDEO_STANDARD_TRANSITION_TYPE_PINWHEEL_TBV,
1108            Self::PinwheelTbh => ffi::GES_VIDEO_STANDARD_TRANSITION_TYPE_PINWHEEL_TBH,
1109            Self::PinwheelFb => ffi::GES_VIDEO_STANDARD_TRANSITION_TYPE_PINWHEEL_FB,
1110            Self::FanCt => ffi::GES_VIDEO_STANDARD_TRANSITION_TYPE_FAN_CT,
1111            Self::FanCr => ffi::GES_VIDEO_STANDARD_TRANSITION_TYPE_FAN_CR,
1112            Self::DoublefanFov => ffi::GES_VIDEO_STANDARD_TRANSITION_TYPE_DOUBLEFAN_FOV,
1113            Self::DoublefanFoh => ffi::GES_VIDEO_STANDARD_TRANSITION_TYPE_DOUBLEFAN_FOH,
1114            Self::SinglesweepCwt => ffi::GES_VIDEO_STANDARD_TRANSITION_TYPE_SINGLESWEEP_CWT,
1115            Self::SinglesweepCwr => ffi::GES_VIDEO_STANDARD_TRANSITION_TYPE_SINGLESWEEP_CWR,
1116            Self::SinglesweepCwb => ffi::GES_VIDEO_STANDARD_TRANSITION_TYPE_SINGLESWEEP_CWB,
1117            Self::SinglesweepCwl => ffi::GES_VIDEO_STANDARD_TRANSITION_TYPE_SINGLESWEEP_CWL,
1118            Self::DoublesweepPv => ffi::GES_VIDEO_STANDARD_TRANSITION_TYPE_DOUBLESWEEP_PV,
1119            Self::DoublesweepPd => ffi::GES_VIDEO_STANDARD_TRANSITION_TYPE_DOUBLESWEEP_PD,
1120            Self::DoublesweepOv => ffi::GES_VIDEO_STANDARD_TRANSITION_TYPE_DOUBLESWEEP_OV,
1121            Self::DoublesweepOh => ffi::GES_VIDEO_STANDARD_TRANSITION_TYPE_DOUBLESWEEP_OH,
1122            Self::FanT => ffi::GES_VIDEO_STANDARD_TRANSITION_TYPE_FAN_T,
1123            Self::FanR => ffi::GES_VIDEO_STANDARD_TRANSITION_TYPE_FAN_R,
1124            Self::FanB => ffi::GES_VIDEO_STANDARD_TRANSITION_TYPE_FAN_B,
1125            Self::FanL => ffi::GES_VIDEO_STANDARD_TRANSITION_TYPE_FAN_L,
1126            Self::DoublefanFiv => ffi::GES_VIDEO_STANDARD_TRANSITION_TYPE_DOUBLEFAN_FIV,
1127            Self::DoublefanFih => ffi::GES_VIDEO_STANDARD_TRANSITION_TYPE_DOUBLEFAN_FIH,
1128            Self::SinglesweepCwtl => ffi::GES_VIDEO_STANDARD_TRANSITION_TYPE_SINGLESWEEP_CWTL,
1129            Self::SinglesweepCwbl => ffi::GES_VIDEO_STANDARD_TRANSITION_TYPE_SINGLESWEEP_CWBL,
1130            Self::SinglesweepCwbr => ffi::GES_VIDEO_STANDARD_TRANSITION_TYPE_SINGLESWEEP_CWBR,
1131            Self::SinglesweepCwtr => ffi::GES_VIDEO_STANDARD_TRANSITION_TYPE_SINGLESWEEP_CWTR,
1132            Self::DoublesweepPdtl => ffi::GES_VIDEO_STANDARD_TRANSITION_TYPE_DOUBLESWEEP_PDTL,
1133            Self::DoublesweepPdbl => ffi::GES_VIDEO_STANDARD_TRANSITION_TYPE_DOUBLESWEEP_PDBL,
1134            Self::SaloondoorT => ffi::GES_VIDEO_STANDARD_TRANSITION_TYPE_SALOONDOOR_T,
1135            Self::SaloondoorL => ffi::GES_VIDEO_STANDARD_TRANSITION_TYPE_SALOONDOOR_L,
1136            Self::SaloondoorB => ffi::GES_VIDEO_STANDARD_TRANSITION_TYPE_SALOONDOOR_B,
1137            Self::SaloondoorR => ffi::GES_VIDEO_STANDARD_TRANSITION_TYPE_SALOONDOOR_R,
1138            Self::WindshieldR => ffi::GES_VIDEO_STANDARD_TRANSITION_TYPE_WINDSHIELD_R,
1139            Self::WindshieldU => ffi::GES_VIDEO_STANDARD_TRANSITION_TYPE_WINDSHIELD_U,
1140            Self::WindshieldV => ffi::GES_VIDEO_STANDARD_TRANSITION_TYPE_WINDSHIELD_V,
1141            Self::WindshieldH => ffi::GES_VIDEO_STANDARD_TRANSITION_TYPE_WINDSHIELD_H,
1142            Self::Crossfade => ffi::GES_VIDEO_STANDARD_TRANSITION_TYPE_CROSSFADE,
1143            #[cfg(feature = "v1_22")]
1144            Self::FadeIn => ffi::GES_VIDEO_STANDARD_TRANSITION_TYPE_FADE_IN,
1145            Self::__Unknown(value) => value,
1146        }
1147    }
1148}
1149
1150#[doc(hidden)]
1151impl FromGlib<ffi::GESVideoStandardTransitionType> for VideoStandardTransitionType {
1152    unsafe fn from_glib(value: ffi::GESVideoStandardTransitionType) -> Self {
1153        skip_assert_initialized!();
1154
1155        match value {
1156            ffi::GES_VIDEO_STANDARD_TRANSITION_TYPE_NONE => Self::None,
1157            ffi::GES_VIDEO_STANDARD_TRANSITION_TYPE_BAR_WIPE_LR => Self::BarWipeLr,
1158            ffi::GES_VIDEO_STANDARD_TRANSITION_TYPE_BAR_WIPE_TB => Self::BarWipeTb,
1159            ffi::GES_VIDEO_STANDARD_TRANSITION_TYPE_BOX_WIPE_TL => Self::BoxWipeTl,
1160            ffi::GES_VIDEO_STANDARD_TRANSITION_TYPE_BOX_WIPE_TR => Self::BoxWipeTr,
1161            ffi::GES_VIDEO_STANDARD_TRANSITION_TYPE_BOX_WIPE_BR => Self::BoxWipeBr,
1162            ffi::GES_VIDEO_STANDARD_TRANSITION_TYPE_BOX_WIPE_BL => Self::BoxWipeBl,
1163            ffi::GES_VIDEO_STANDARD_TRANSITION_TYPE_FOUR_BOX_WIPE_CI => Self::FourBoxWipeCi,
1164            ffi::GES_VIDEO_STANDARD_TRANSITION_TYPE_FOUR_BOX_WIPE_CO => Self::FourBoxWipeCo,
1165            ffi::GES_VIDEO_STANDARD_TRANSITION_TYPE_BARNDOOR_V => Self::BarndoorV,
1166            ffi::GES_VIDEO_STANDARD_TRANSITION_TYPE_BARNDOOR_H => Self::BarndoorH,
1167            ffi::GES_VIDEO_STANDARD_TRANSITION_TYPE_BOX_WIPE_TC => Self::BoxWipeTc,
1168            ffi::GES_VIDEO_STANDARD_TRANSITION_TYPE_BOX_WIPE_RC => Self::BoxWipeRc,
1169            ffi::GES_VIDEO_STANDARD_TRANSITION_TYPE_BOX_WIPE_BC => Self::BoxWipeBc,
1170            ffi::GES_VIDEO_STANDARD_TRANSITION_TYPE_BOX_WIPE_LC => Self::BoxWipeLc,
1171            ffi::GES_VIDEO_STANDARD_TRANSITION_TYPE_DIAGONAL_TL => Self::DiagonalTl,
1172            ffi::GES_VIDEO_STANDARD_TRANSITION_TYPE_DIAGONAL_TR => Self::DiagonalTr,
1173            ffi::GES_VIDEO_STANDARD_TRANSITION_TYPE_BOWTIE_V => Self::BowtieV,
1174            ffi::GES_VIDEO_STANDARD_TRANSITION_TYPE_BOWTIE_H => Self::BowtieH,
1175            ffi::GES_VIDEO_STANDARD_TRANSITION_TYPE_BARNDOOR_DBL => Self::BarndoorDbl,
1176            ffi::GES_VIDEO_STANDARD_TRANSITION_TYPE_BARNDOOR_DTL => Self::BarndoorDtl,
1177            ffi::GES_VIDEO_STANDARD_TRANSITION_TYPE_MISC_DIAGONAL_DBD => Self::MiscDiagonalDbd,
1178            ffi::GES_VIDEO_STANDARD_TRANSITION_TYPE_MISC_DIAGONAL_DD => Self::MiscDiagonalDd,
1179            ffi::GES_VIDEO_STANDARD_TRANSITION_TYPE_VEE_D => Self::VeeD,
1180            ffi::GES_VIDEO_STANDARD_TRANSITION_TYPE_VEE_L => Self::VeeL,
1181            ffi::GES_VIDEO_STANDARD_TRANSITION_TYPE_VEE_U => Self::VeeU,
1182            ffi::GES_VIDEO_STANDARD_TRANSITION_TYPE_VEE_R => Self::VeeR,
1183            ffi::GES_VIDEO_STANDARD_TRANSITION_TYPE_BARNVEE_D => Self::BarnveeD,
1184            ffi::GES_VIDEO_STANDARD_TRANSITION_TYPE_BARNVEE_L => Self::BarnveeL,
1185            ffi::GES_VIDEO_STANDARD_TRANSITION_TYPE_BARNVEE_U => Self::BarnveeU,
1186            ffi::GES_VIDEO_STANDARD_TRANSITION_TYPE_BARNVEE_R => Self::BarnveeR,
1187            ffi::GES_VIDEO_STANDARD_TRANSITION_TYPE_IRIS_RECT => Self::IrisRect,
1188            ffi::GES_VIDEO_STANDARD_TRANSITION_TYPE_CLOCK_CW12 => Self::ClockCw12,
1189            ffi::GES_VIDEO_STANDARD_TRANSITION_TYPE_CLOCK_CW3 => Self::ClockCw3,
1190            ffi::GES_VIDEO_STANDARD_TRANSITION_TYPE_CLOCK_CW6 => Self::ClockCw6,
1191            ffi::GES_VIDEO_STANDARD_TRANSITION_TYPE_CLOCK_CW9 => Self::ClockCw9,
1192            ffi::GES_VIDEO_STANDARD_TRANSITION_TYPE_PINWHEEL_TBV => Self::PinwheelTbv,
1193            ffi::GES_VIDEO_STANDARD_TRANSITION_TYPE_PINWHEEL_TBH => Self::PinwheelTbh,
1194            ffi::GES_VIDEO_STANDARD_TRANSITION_TYPE_PINWHEEL_FB => Self::PinwheelFb,
1195            ffi::GES_VIDEO_STANDARD_TRANSITION_TYPE_FAN_CT => Self::FanCt,
1196            ffi::GES_VIDEO_STANDARD_TRANSITION_TYPE_FAN_CR => Self::FanCr,
1197            ffi::GES_VIDEO_STANDARD_TRANSITION_TYPE_DOUBLEFAN_FOV => Self::DoublefanFov,
1198            ffi::GES_VIDEO_STANDARD_TRANSITION_TYPE_DOUBLEFAN_FOH => Self::DoublefanFoh,
1199            ffi::GES_VIDEO_STANDARD_TRANSITION_TYPE_SINGLESWEEP_CWT => Self::SinglesweepCwt,
1200            ffi::GES_VIDEO_STANDARD_TRANSITION_TYPE_SINGLESWEEP_CWR => Self::SinglesweepCwr,
1201            ffi::GES_VIDEO_STANDARD_TRANSITION_TYPE_SINGLESWEEP_CWB => Self::SinglesweepCwb,
1202            ffi::GES_VIDEO_STANDARD_TRANSITION_TYPE_SINGLESWEEP_CWL => Self::SinglesweepCwl,
1203            ffi::GES_VIDEO_STANDARD_TRANSITION_TYPE_DOUBLESWEEP_PV => Self::DoublesweepPv,
1204            ffi::GES_VIDEO_STANDARD_TRANSITION_TYPE_DOUBLESWEEP_PD => Self::DoublesweepPd,
1205            ffi::GES_VIDEO_STANDARD_TRANSITION_TYPE_DOUBLESWEEP_OV => Self::DoublesweepOv,
1206            ffi::GES_VIDEO_STANDARD_TRANSITION_TYPE_DOUBLESWEEP_OH => Self::DoublesweepOh,
1207            ffi::GES_VIDEO_STANDARD_TRANSITION_TYPE_FAN_T => Self::FanT,
1208            ffi::GES_VIDEO_STANDARD_TRANSITION_TYPE_FAN_R => Self::FanR,
1209            ffi::GES_VIDEO_STANDARD_TRANSITION_TYPE_FAN_B => Self::FanB,
1210            ffi::GES_VIDEO_STANDARD_TRANSITION_TYPE_FAN_L => Self::FanL,
1211            ffi::GES_VIDEO_STANDARD_TRANSITION_TYPE_DOUBLEFAN_FIV => Self::DoublefanFiv,
1212            ffi::GES_VIDEO_STANDARD_TRANSITION_TYPE_DOUBLEFAN_FIH => Self::DoublefanFih,
1213            ffi::GES_VIDEO_STANDARD_TRANSITION_TYPE_SINGLESWEEP_CWTL => Self::SinglesweepCwtl,
1214            ffi::GES_VIDEO_STANDARD_TRANSITION_TYPE_SINGLESWEEP_CWBL => Self::SinglesweepCwbl,
1215            ffi::GES_VIDEO_STANDARD_TRANSITION_TYPE_SINGLESWEEP_CWBR => Self::SinglesweepCwbr,
1216            ffi::GES_VIDEO_STANDARD_TRANSITION_TYPE_SINGLESWEEP_CWTR => Self::SinglesweepCwtr,
1217            ffi::GES_VIDEO_STANDARD_TRANSITION_TYPE_DOUBLESWEEP_PDTL => Self::DoublesweepPdtl,
1218            ffi::GES_VIDEO_STANDARD_TRANSITION_TYPE_DOUBLESWEEP_PDBL => Self::DoublesweepPdbl,
1219            ffi::GES_VIDEO_STANDARD_TRANSITION_TYPE_SALOONDOOR_T => Self::SaloondoorT,
1220            ffi::GES_VIDEO_STANDARD_TRANSITION_TYPE_SALOONDOOR_L => Self::SaloondoorL,
1221            ffi::GES_VIDEO_STANDARD_TRANSITION_TYPE_SALOONDOOR_B => Self::SaloondoorB,
1222            ffi::GES_VIDEO_STANDARD_TRANSITION_TYPE_SALOONDOOR_R => Self::SaloondoorR,
1223            ffi::GES_VIDEO_STANDARD_TRANSITION_TYPE_WINDSHIELD_R => Self::WindshieldR,
1224            ffi::GES_VIDEO_STANDARD_TRANSITION_TYPE_WINDSHIELD_U => Self::WindshieldU,
1225            ffi::GES_VIDEO_STANDARD_TRANSITION_TYPE_WINDSHIELD_V => Self::WindshieldV,
1226            ffi::GES_VIDEO_STANDARD_TRANSITION_TYPE_WINDSHIELD_H => Self::WindshieldH,
1227            ffi::GES_VIDEO_STANDARD_TRANSITION_TYPE_CROSSFADE => Self::Crossfade,
1228            #[cfg(feature = "v1_22")]
1229            ffi::GES_VIDEO_STANDARD_TRANSITION_TYPE_FADE_IN => Self::FadeIn,
1230            value => Self::__Unknown(value),
1231        }
1232    }
1233}
1234
1235impl StaticType for VideoStandardTransitionType {
1236    #[inline]
1237    #[doc(alias = "ges_video_standard_transition_type_get_type")]
1238    fn static_type() -> glib::Type {
1239        unsafe { from_glib(ffi::ges_video_standard_transition_type_get_type()) }
1240    }
1241}
1242
1243impl glib::HasParamSpec for VideoStandardTransitionType {
1244    type ParamSpec = glib::ParamSpecEnum;
1245    type SetValue = Self;
1246    type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
1247
1248    fn param_spec_builder() -> Self::BuilderFn {
1249        Self::ParamSpec::builder_with_default
1250    }
1251}
1252
1253impl glib::value::ValueType for VideoStandardTransitionType {
1254    type Type = Self;
1255}
1256
1257unsafe impl<'a> glib::value::FromValue<'a> for VideoStandardTransitionType {
1258    type Checker = glib::value::GenericValueTypeChecker<Self>;
1259
1260    #[inline]
1261    unsafe fn from_value(value: &'a glib::Value) -> Self {
1262        skip_assert_initialized!();
1263        from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0))
1264    }
1265}
1266
1267impl ToValue for VideoStandardTransitionType {
1268    #[inline]
1269    fn to_value(&self) -> glib::Value {
1270        let mut value = glib::Value::for_value_type::<Self>();
1271        unsafe {
1272            glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
1273        }
1274        value
1275    }
1276
1277    #[inline]
1278    fn value_type(&self) -> glib::Type {
1279        Self::static_type()
1280    }
1281}
1282
1283impl From<VideoStandardTransitionType> for glib::Value {
1284    #[inline]
1285    fn from(v: VideoStandardTransitionType) -> Self {
1286        skip_assert_initialized!();
1287        ToValue::to_value(&v)
1288    }
1289}
1290
1291#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
1293#[non_exhaustive]
1294#[doc(alias = "GESVideoTestPattern")]
1295pub enum VideoTestPattern {
1296    #[doc(alias = "GES_VIDEO_TEST_PATTERN_SMPTE")]
1298    Smpte,
1299    #[doc(alias = "GES_VIDEO_TEST_PATTERN_SNOW")]
1301    Snow,
1302    #[doc(alias = "GES_VIDEO_TEST_PATTERN_BLACK")]
1304    Black,
1305    #[doc(alias = "GES_VIDEO_TEST_PATTERN_WHITE")]
1307    White,
1308    #[doc(alias = "GES_VIDEO_TEST_PATTERN_RED")]
1310    Red,
1311    #[doc(alias = "GES_VIDEO_TEST_PATTERN_GREEN")]
1313    Green,
1314    #[doc(alias = "GES_VIDEO_TEST_PATTERN_BLUE")]
1316    Blue,
1317    #[doc(alias = "GES_VIDEO_TEST_PATTERN_CHECKERS1")]
1319    Checkers1,
1320    #[doc(alias = "GES_VIDEO_TEST_PATTERN_CHECKERS2")]
1322    Checkers2,
1323    #[doc(alias = "GES_VIDEO_TEST_PATTERN_CHECKERS4")]
1325    Checkers4,
1326    #[doc(alias = "GES_VIDEO_TEST_PATTERN_CHECKERS8")]
1328    Checkers8,
1329    #[doc(alias = "GES_VIDEO_TEST_PATTERN_CIRCULAR")]
1331    Circular,
1332    #[doc(alias = "GES_VIDEO_TEST_PATTERN_BLINK")]
1334    Blink,
1335    #[doc(alias = "GES_VIDEO_TEST_PATTERN_SMPTE75")]
1337    Smpte75,
1338    #[doc(alias = "GES_VIDEO_TEST_ZONE_PLATE")]
1340    ZonePlate,
1341    #[doc(alias = "GES_VIDEO_TEST_GAMUT")]
1343    Gamut,
1344    #[doc(alias = "GES_VIDEO_TEST_CHROMA_ZONE_PLATE")]
1346    ChromaZonePlate,
1347    #[doc(alias = "GES_VIDEO_TEST_PATTERN_SOLID")]
1349    SolidColor,
1350    #[doc(hidden)]
1351    __Unknown(i32),
1352}
1353
1354#[doc(hidden)]
1355impl IntoGlib for VideoTestPattern {
1356    type GlibType = ffi::GESVideoTestPattern;
1357
1358    fn into_glib(self) -> ffi::GESVideoTestPattern {
1359        match self {
1360            Self::Smpte => ffi::GES_VIDEO_TEST_PATTERN_SMPTE,
1361            Self::Snow => ffi::GES_VIDEO_TEST_PATTERN_SNOW,
1362            Self::Black => ffi::GES_VIDEO_TEST_PATTERN_BLACK,
1363            Self::White => ffi::GES_VIDEO_TEST_PATTERN_WHITE,
1364            Self::Red => ffi::GES_VIDEO_TEST_PATTERN_RED,
1365            Self::Green => ffi::GES_VIDEO_TEST_PATTERN_GREEN,
1366            Self::Blue => ffi::GES_VIDEO_TEST_PATTERN_BLUE,
1367            Self::Checkers1 => ffi::GES_VIDEO_TEST_PATTERN_CHECKERS1,
1368            Self::Checkers2 => ffi::GES_VIDEO_TEST_PATTERN_CHECKERS2,
1369            Self::Checkers4 => ffi::GES_VIDEO_TEST_PATTERN_CHECKERS4,
1370            Self::Checkers8 => ffi::GES_VIDEO_TEST_PATTERN_CHECKERS8,
1371            Self::Circular => ffi::GES_VIDEO_TEST_PATTERN_CIRCULAR,
1372            Self::Blink => ffi::GES_VIDEO_TEST_PATTERN_BLINK,
1373            Self::Smpte75 => ffi::GES_VIDEO_TEST_PATTERN_SMPTE75,
1374            Self::ZonePlate => ffi::GES_VIDEO_TEST_ZONE_PLATE,
1375            Self::Gamut => ffi::GES_VIDEO_TEST_GAMUT,
1376            Self::ChromaZonePlate => ffi::GES_VIDEO_TEST_CHROMA_ZONE_PLATE,
1377            Self::SolidColor => ffi::GES_VIDEO_TEST_PATTERN_SOLID,
1378            Self::__Unknown(value) => value,
1379        }
1380    }
1381}
1382
1383#[doc(hidden)]
1384impl FromGlib<ffi::GESVideoTestPattern> for VideoTestPattern {
1385    unsafe fn from_glib(value: ffi::GESVideoTestPattern) -> Self {
1386        skip_assert_initialized!();
1387
1388        match value {
1389            ffi::GES_VIDEO_TEST_PATTERN_SMPTE => Self::Smpte,
1390            ffi::GES_VIDEO_TEST_PATTERN_SNOW => Self::Snow,
1391            ffi::GES_VIDEO_TEST_PATTERN_BLACK => Self::Black,
1392            ffi::GES_VIDEO_TEST_PATTERN_WHITE => Self::White,
1393            ffi::GES_VIDEO_TEST_PATTERN_RED => Self::Red,
1394            ffi::GES_VIDEO_TEST_PATTERN_GREEN => Self::Green,
1395            ffi::GES_VIDEO_TEST_PATTERN_BLUE => Self::Blue,
1396            ffi::GES_VIDEO_TEST_PATTERN_CHECKERS1 => Self::Checkers1,
1397            ffi::GES_VIDEO_TEST_PATTERN_CHECKERS2 => Self::Checkers2,
1398            ffi::GES_VIDEO_TEST_PATTERN_CHECKERS4 => Self::Checkers4,
1399            ffi::GES_VIDEO_TEST_PATTERN_CHECKERS8 => Self::Checkers8,
1400            ffi::GES_VIDEO_TEST_PATTERN_CIRCULAR => Self::Circular,
1401            ffi::GES_VIDEO_TEST_PATTERN_BLINK => Self::Blink,
1402            ffi::GES_VIDEO_TEST_PATTERN_SMPTE75 => Self::Smpte75,
1403            ffi::GES_VIDEO_TEST_ZONE_PLATE => Self::ZonePlate,
1404            ffi::GES_VIDEO_TEST_GAMUT => Self::Gamut,
1405            ffi::GES_VIDEO_TEST_CHROMA_ZONE_PLATE => Self::ChromaZonePlate,
1406            ffi::GES_VIDEO_TEST_PATTERN_SOLID => Self::SolidColor,
1407            value => Self::__Unknown(value),
1408        }
1409    }
1410}
1411
1412impl StaticType for VideoTestPattern {
1413    #[inline]
1414    #[doc(alias = "ges_video_test_pattern_get_type")]
1415    fn static_type() -> glib::Type {
1416        unsafe { from_glib(ffi::ges_video_test_pattern_get_type()) }
1417    }
1418}
1419
1420impl glib::HasParamSpec for VideoTestPattern {
1421    type ParamSpec = glib::ParamSpecEnum;
1422    type SetValue = Self;
1423    type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
1424
1425    fn param_spec_builder() -> Self::BuilderFn {
1426        Self::ParamSpec::builder_with_default
1427    }
1428}
1429
1430impl glib::value::ValueType for VideoTestPattern {
1431    type Type = Self;
1432}
1433
1434unsafe impl<'a> glib::value::FromValue<'a> for VideoTestPattern {
1435    type Checker = glib::value::GenericValueTypeChecker<Self>;
1436
1437    #[inline]
1438    unsafe fn from_value(value: &'a glib::Value) -> Self {
1439        skip_assert_initialized!();
1440        from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0))
1441    }
1442}
1443
1444impl ToValue for VideoTestPattern {
1445    #[inline]
1446    fn to_value(&self) -> glib::Value {
1447        let mut value = glib::Value::for_value_type::<Self>();
1448        unsafe {
1449            glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
1450        }
1451        value
1452    }
1453
1454    #[inline]
1455    fn value_type(&self) -> glib::Type {
1456        Self::static_type()
1457    }
1458}
1459
1460impl From<VideoTestPattern> for glib::Value {
1461    #[inline]
1462    fn from(v: VideoTestPattern) -> Self {
1463        skip_assert_initialized!();
1464        ToValue::to_value(&v)
1465    }
1466}