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 unsafe { 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 unsafe { 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
604impl glib::error::ErrorDomain for Error {
605 #[inline]
606 fn domain() -> glib::Quark {
607 skip_assert_initialized!();
608
609 static QUARK: ::std::sync::OnceLock<glib::ffi::GQuark> = ::std::sync::OnceLock::new();
610 let quark = *QUARK.get_or_init(|| unsafe {
611 glib::ffi::g_quark_from_static_string(c"GES_ERROR".as_ptr())
612 });
613 unsafe { from_glib(quark) }
614 }
615
616 #[inline]
617 fn code(self) -> i32 {
618 self.into_glib()
619 }
620
621 #[inline]
622 #[allow(clippy::match_single_binding)]
623 fn from(code: i32) -> Option<Self> {
624 skip_assert_initialized!();
625 match unsafe { from_glib(code) } {
626 value => Some(value),
627 }
628 }
629}
630
631#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
633#[non_exhaustive]
634#[doc(alias = "GESTextHAlign")]
635pub enum TextHAlign {
636 #[doc(alias = "GES_TEXT_HALIGN_LEFT")]
638 Left,
639 #[doc(alias = "GES_TEXT_HALIGN_CENTER")]
641 Center,
642 #[doc(alias = "GES_TEXT_HALIGN_RIGHT")]
644 Right,
645 #[doc(alias = "GES_TEXT_HALIGN_POSITION")]
647 Position,
648 #[doc(alias = "GES_TEXT_HALIGN_ABSOLUTE")]
649 Absolute,
650 #[doc(hidden)]
651 __Unknown(i32),
652}
653
654#[doc(hidden)]
655impl IntoGlib for TextHAlign {
656 type GlibType = ffi::GESTextHAlign;
657
658 #[inline]
659 fn into_glib(self) -> ffi::GESTextHAlign {
660 match self {
661 Self::Left => ffi::GES_TEXT_HALIGN_LEFT,
662 Self::Center => ffi::GES_TEXT_HALIGN_CENTER,
663 Self::Right => ffi::GES_TEXT_HALIGN_RIGHT,
664 Self::Position => ffi::GES_TEXT_HALIGN_POSITION,
665 Self::Absolute => ffi::GES_TEXT_HALIGN_ABSOLUTE,
666 Self::__Unknown(value) => value,
667 }
668 }
669}
670
671#[doc(hidden)]
672impl FromGlib<ffi::GESTextHAlign> for TextHAlign {
673 #[inline]
674 unsafe fn from_glib(value: ffi::GESTextHAlign) -> Self {
675 skip_assert_initialized!();
676
677 match value {
678 ffi::GES_TEXT_HALIGN_LEFT => Self::Left,
679 ffi::GES_TEXT_HALIGN_CENTER => Self::Center,
680 ffi::GES_TEXT_HALIGN_RIGHT => Self::Right,
681 ffi::GES_TEXT_HALIGN_POSITION => Self::Position,
682 ffi::GES_TEXT_HALIGN_ABSOLUTE => Self::Absolute,
683 value => Self::__Unknown(value),
684 }
685 }
686}
687
688impl StaticType for TextHAlign {
689 #[inline]
690 #[doc(alias = "ges_text_halign_get_type")]
691 fn static_type() -> glib::Type {
692 unsafe { from_glib(ffi::ges_text_halign_get_type()) }
693 }
694}
695
696impl glib::HasParamSpec for TextHAlign {
697 type ParamSpec = glib::ParamSpecEnum;
698 type SetValue = Self;
699 type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
700
701 fn param_spec_builder() -> Self::BuilderFn {
702 Self::ParamSpec::builder_with_default
703 }
704}
705
706impl glib::value::ValueType for TextHAlign {
707 type Type = Self;
708}
709
710unsafe impl<'a> glib::value::FromValue<'a> for TextHAlign {
711 type Checker = glib::value::GenericValueTypeChecker<Self>;
712
713 #[inline]
714 unsafe fn from_value(value: &'a glib::Value) -> Self {
715 skip_assert_initialized!();
716 unsafe { from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0)) }
717 }
718}
719
720impl ToValue for TextHAlign {
721 #[inline]
722 fn to_value(&self) -> glib::Value {
723 let mut value = glib::Value::for_value_type::<Self>();
724 unsafe {
725 glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
726 }
727 value
728 }
729
730 #[inline]
731 fn value_type(&self) -> glib::Type {
732 Self::static_type()
733 }
734}
735
736impl From<TextHAlign> for glib::Value {
737 #[inline]
738 fn from(v: TextHAlign) -> Self {
739 skip_assert_initialized!();
740 ToValue::to_value(&v)
741 }
742}
743
744#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
746#[non_exhaustive]
747#[doc(alias = "GESTextVAlign")]
748pub enum TextVAlign {
749 #[doc(alias = "GES_TEXT_VALIGN_BASELINE")]
751 Baseline,
752 #[doc(alias = "GES_TEXT_VALIGN_BOTTOM")]
754 Bottom,
755 #[doc(alias = "GES_TEXT_VALIGN_TOP")]
757 Top,
758 #[doc(alias = "GES_TEXT_VALIGN_POSITION")]
760 Position,
761 #[doc(alias = "GES_TEXT_VALIGN_CENTER")]
763 Center,
764 #[doc(alias = "GES_TEXT_VALIGN_ABSOLUTE")]
765 Absolute,
766 #[doc(hidden)]
767 __Unknown(i32),
768}
769
770#[doc(hidden)]
771impl IntoGlib for TextVAlign {
772 type GlibType = ffi::GESTextVAlign;
773
774 #[inline]
775 fn into_glib(self) -> ffi::GESTextVAlign {
776 match self {
777 Self::Baseline => ffi::GES_TEXT_VALIGN_BASELINE,
778 Self::Bottom => ffi::GES_TEXT_VALIGN_BOTTOM,
779 Self::Top => ffi::GES_TEXT_VALIGN_TOP,
780 Self::Position => ffi::GES_TEXT_VALIGN_POSITION,
781 Self::Center => ffi::GES_TEXT_VALIGN_CENTER,
782 Self::Absolute => ffi::GES_TEXT_VALIGN_ABSOLUTE,
783 Self::__Unknown(value) => value,
784 }
785 }
786}
787
788#[doc(hidden)]
789impl FromGlib<ffi::GESTextVAlign> for TextVAlign {
790 #[inline]
791 unsafe fn from_glib(value: ffi::GESTextVAlign) -> Self {
792 skip_assert_initialized!();
793
794 match value {
795 ffi::GES_TEXT_VALIGN_BASELINE => Self::Baseline,
796 ffi::GES_TEXT_VALIGN_BOTTOM => Self::Bottom,
797 ffi::GES_TEXT_VALIGN_TOP => Self::Top,
798 ffi::GES_TEXT_VALIGN_POSITION => Self::Position,
799 ffi::GES_TEXT_VALIGN_CENTER => Self::Center,
800 ffi::GES_TEXT_VALIGN_ABSOLUTE => Self::Absolute,
801 value => Self::__Unknown(value),
802 }
803 }
804}
805
806impl StaticType for TextVAlign {
807 #[inline]
808 #[doc(alias = "ges_text_valign_get_type")]
809 fn static_type() -> glib::Type {
810 unsafe { from_glib(ffi::ges_text_valign_get_type()) }
811 }
812}
813
814impl glib::HasParamSpec for TextVAlign {
815 type ParamSpec = glib::ParamSpecEnum;
816 type SetValue = Self;
817 type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
818
819 fn param_spec_builder() -> Self::BuilderFn {
820 Self::ParamSpec::builder_with_default
821 }
822}
823
824impl glib::value::ValueType for TextVAlign {
825 type Type = Self;
826}
827
828unsafe impl<'a> glib::value::FromValue<'a> for TextVAlign {
829 type Checker = glib::value::GenericValueTypeChecker<Self>;
830
831 #[inline]
832 unsafe fn from_value(value: &'a glib::Value) -> Self {
833 skip_assert_initialized!();
834 unsafe { from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0)) }
835 }
836}
837
838impl ToValue for TextVAlign {
839 #[inline]
840 fn to_value(&self) -> glib::Value {
841 let mut value = glib::Value::for_value_type::<Self>();
842 unsafe {
843 glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
844 }
845 value
846 }
847
848 #[inline]
849 fn value_type(&self) -> glib::Type {
850 Self::static_type()
851 }
852}
853
854impl From<TextVAlign> for glib::Value {
855 #[inline]
856 fn from(v: TextVAlign) -> Self {
857 skip_assert_initialized!();
858 ToValue::to_value(&v)
859 }
860}
861
862#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
863#[non_exhaustive]
864#[doc(alias = "GESVideoStandardTransitionType")]
865pub enum VideoStandardTransitionType {
866 #[doc(alias = "GES_VIDEO_STANDARD_TRANSITION_TYPE_NONE")]
868 None,
869 #[doc(alias = "GES_VIDEO_STANDARD_TRANSITION_TYPE_BAR_WIPE_LR")]
871 BarWipeLr,
872 #[doc(alias = "GES_VIDEO_STANDARD_TRANSITION_TYPE_BAR_WIPE_TB")]
874 BarWipeTb,
875 #[doc(alias = "GES_VIDEO_STANDARD_TRANSITION_TYPE_BOX_WIPE_TL")]
877 BoxWipeTl,
878 #[doc(alias = "GES_VIDEO_STANDARD_TRANSITION_TYPE_BOX_WIPE_TR")]
880 BoxWipeTr,
881 #[doc(alias = "GES_VIDEO_STANDARD_TRANSITION_TYPE_BOX_WIPE_BR")]
883 BoxWipeBr,
884 #[doc(alias = "GES_VIDEO_STANDARD_TRANSITION_TYPE_BOX_WIPE_BL")]
886 BoxWipeBl,
887 #[doc(alias = "GES_VIDEO_STANDARD_TRANSITION_TYPE_FOUR_BOX_WIPE_CI")]
889 FourBoxWipeCi,
890 #[doc(alias = "GES_VIDEO_STANDARD_TRANSITION_TYPE_FOUR_BOX_WIPE_CO")]
892 FourBoxWipeCo,
893 #[doc(alias = "GES_VIDEO_STANDARD_TRANSITION_TYPE_BARNDOOR_V")]
895 BarndoorV,
896 #[doc(alias = "GES_VIDEO_STANDARD_TRANSITION_TYPE_BARNDOOR_H")]
898 BarndoorH,
899 #[doc(alias = "GES_VIDEO_STANDARD_TRANSITION_TYPE_BOX_WIPE_TC")]
901 BoxWipeTc,
902 #[doc(alias = "GES_VIDEO_STANDARD_TRANSITION_TYPE_BOX_WIPE_RC")]
904 BoxWipeRc,
905 #[doc(alias = "GES_VIDEO_STANDARD_TRANSITION_TYPE_BOX_WIPE_BC")]
907 BoxWipeBc,
908 #[doc(alias = "GES_VIDEO_STANDARD_TRANSITION_TYPE_BOX_WIPE_LC")]
910 BoxWipeLc,
911 #[doc(alias = "GES_VIDEO_STANDARD_TRANSITION_TYPE_DIAGONAL_TL")]
913 DiagonalTl,
914 #[doc(alias = "GES_VIDEO_STANDARD_TRANSITION_TYPE_DIAGONAL_TR")]
916 DiagonalTr,
917 #[doc(alias = "GES_VIDEO_STANDARD_TRANSITION_TYPE_BOWTIE_V")]
919 BowtieV,
920 #[doc(alias = "GES_VIDEO_STANDARD_TRANSITION_TYPE_BOWTIE_H")]
922 BowtieH,
923 #[doc(alias = "GES_VIDEO_STANDARD_TRANSITION_TYPE_BARNDOOR_DBL")]
925 BarndoorDbl,
926 #[doc(alias = "GES_VIDEO_STANDARD_TRANSITION_TYPE_BARNDOOR_DTL")]
928 BarndoorDtl,
929 #[doc(alias = "GES_VIDEO_STANDARD_TRANSITION_TYPE_MISC_DIAGONAL_DBD")]
931 MiscDiagonalDbd,
932 #[doc(alias = "GES_VIDEO_STANDARD_TRANSITION_TYPE_MISC_DIAGONAL_DD")]
934 MiscDiagonalDd,
935 #[doc(alias = "GES_VIDEO_STANDARD_TRANSITION_TYPE_VEE_D")]
937 VeeD,
938 #[doc(alias = "GES_VIDEO_STANDARD_TRANSITION_TYPE_VEE_L")]
940 VeeL,
941 #[doc(alias = "GES_VIDEO_STANDARD_TRANSITION_TYPE_VEE_U")]
943 VeeU,
944 #[doc(alias = "GES_VIDEO_STANDARD_TRANSITION_TYPE_VEE_R")]
946 VeeR,
947 #[doc(alias = "GES_VIDEO_STANDARD_TRANSITION_TYPE_BARNVEE_D")]
949 BarnveeD,
950 #[doc(alias = "GES_VIDEO_STANDARD_TRANSITION_TYPE_BARNVEE_L")]
952 BarnveeL,
953 #[doc(alias = "GES_VIDEO_STANDARD_TRANSITION_TYPE_BARNVEE_U")]
955 BarnveeU,
956 #[doc(alias = "GES_VIDEO_STANDARD_TRANSITION_TYPE_BARNVEE_R")]
958 BarnveeR,
959 #[doc(alias = "GES_VIDEO_STANDARD_TRANSITION_TYPE_IRIS_RECT")]
961 IrisRect,
962 #[doc(alias = "GES_VIDEO_STANDARD_TRANSITION_TYPE_CLOCK_CW12")]
964 ClockCw12,
965 #[doc(alias = "GES_VIDEO_STANDARD_TRANSITION_TYPE_CLOCK_CW3")]
967 ClockCw3,
968 #[doc(alias = "GES_VIDEO_STANDARD_TRANSITION_TYPE_CLOCK_CW6")]
970 ClockCw6,
971 #[doc(alias = "GES_VIDEO_STANDARD_TRANSITION_TYPE_CLOCK_CW9")]
973 ClockCw9,
974 #[doc(alias = "GES_VIDEO_STANDARD_TRANSITION_TYPE_PINWHEEL_TBV")]
976 PinwheelTbv,
977 #[doc(alias = "GES_VIDEO_STANDARD_TRANSITION_TYPE_PINWHEEL_TBH")]
979 PinwheelTbh,
980 #[doc(alias = "GES_VIDEO_STANDARD_TRANSITION_TYPE_PINWHEEL_FB")]
982 PinwheelFb,
983 #[doc(alias = "GES_VIDEO_STANDARD_TRANSITION_TYPE_FAN_CT")]
985 FanCt,
986 #[doc(alias = "GES_VIDEO_STANDARD_TRANSITION_TYPE_FAN_CR")]
988 FanCr,
989 #[doc(alias = "GES_VIDEO_STANDARD_TRANSITION_TYPE_DOUBLEFAN_FOV")]
991 DoublefanFov,
992 #[doc(alias = "GES_VIDEO_STANDARD_TRANSITION_TYPE_DOUBLEFAN_FOH")]
994 DoublefanFoh,
995 #[doc(alias = "GES_VIDEO_STANDARD_TRANSITION_TYPE_SINGLESWEEP_CWT")]
997 SinglesweepCwt,
998 #[doc(alias = "GES_VIDEO_STANDARD_TRANSITION_TYPE_SINGLESWEEP_CWR")]
1000 SinglesweepCwr,
1001 #[doc(alias = "GES_VIDEO_STANDARD_TRANSITION_TYPE_SINGLESWEEP_CWB")]
1003 SinglesweepCwb,
1004 #[doc(alias = "GES_VIDEO_STANDARD_TRANSITION_TYPE_SINGLESWEEP_CWL")]
1006 SinglesweepCwl,
1007 #[doc(alias = "GES_VIDEO_STANDARD_TRANSITION_TYPE_DOUBLESWEEP_PV")]
1009 DoublesweepPv,
1010 #[doc(alias = "GES_VIDEO_STANDARD_TRANSITION_TYPE_DOUBLESWEEP_PD")]
1012 DoublesweepPd,
1013 #[doc(alias = "GES_VIDEO_STANDARD_TRANSITION_TYPE_DOUBLESWEEP_OV")]
1015 DoublesweepOv,
1016 #[doc(alias = "GES_VIDEO_STANDARD_TRANSITION_TYPE_DOUBLESWEEP_OH")]
1018 DoublesweepOh,
1019 #[doc(alias = "GES_VIDEO_STANDARD_TRANSITION_TYPE_FAN_T")]
1021 FanT,
1022 #[doc(alias = "GES_VIDEO_STANDARD_TRANSITION_TYPE_FAN_R")]
1024 FanR,
1025 #[doc(alias = "GES_VIDEO_STANDARD_TRANSITION_TYPE_FAN_B")]
1027 FanB,
1028 #[doc(alias = "GES_VIDEO_STANDARD_TRANSITION_TYPE_FAN_L")]
1030 FanL,
1031 #[doc(alias = "GES_VIDEO_STANDARD_TRANSITION_TYPE_DOUBLEFAN_FIV")]
1033 DoublefanFiv,
1034 #[doc(alias = "GES_VIDEO_STANDARD_TRANSITION_TYPE_DOUBLEFAN_FIH")]
1036 DoublefanFih,
1037 #[doc(alias = "GES_VIDEO_STANDARD_TRANSITION_TYPE_SINGLESWEEP_CWTL")]
1039 SinglesweepCwtl,
1040 #[doc(alias = "GES_VIDEO_STANDARD_TRANSITION_TYPE_SINGLESWEEP_CWBL")]
1042 SinglesweepCwbl,
1043 #[doc(alias = "GES_VIDEO_STANDARD_TRANSITION_TYPE_SINGLESWEEP_CWBR")]
1045 SinglesweepCwbr,
1046 #[doc(alias = "GES_VIDEO_STANDARD_TRANSITION_TYPE_SINGLESWEEP_CWTR")]
1048 SinglesweepCwtr,
1049 #[doc(alias = "GES_VIDEO_STANDARD_TRANSITION_TYPE_DOUBLESWEEP_PDTL")]
1051 DoublesweepPdtl,
1052 #[doc(alias = "GES_VIDEO_STANDARD_TRANSITION_TYPE_DOUBLESWEEP_PDBL")]
1054 DoublesweepPdbl,
1055 #[doc(alias = "GES_VIDEO_STANDARD_TRANSITION_TYPE_SALOONDOOR_T")]
1057 SaloondoorT,
1058 #[doc(alias = "GES_VIDEO_STANDARD_TRANSITION_TYPE_SALOONDOOR_L")]
1060 SaloondoorL,
1061 #[doc(alias = "GES_VIDEO_STANDARD_TRANSITION_TYPE_SALOONDOOR_B")]
1063 SaloondoorB,
1064 #[doc(alias = "GES_VIDEO_STANDARD_TRANSITION_TYPE_SALOONDOOR_R")]
1066 SaloondoorR,
1067 #[doc(alias = "GES_VIDEO_STANDARD_TRANSITION_TYPE_WINDSHIELD_R")]
1069 WindshieldR,
1070 #[doc(alias = "GES_VIDEO_STANDARD_TRANSITION_TYPE_WINDSHIELD_U")]
1072 WindshieldU,
1073 #[doc(alias = "GES_VIDEO_STANDARD_TRANSITION_TYPE_WINDSHIELD_V")]
1075 WindshieldV,
1076 #[doc(alias = "GES_VIDEO_STANDARD_TRANSITION_TYPE_WINDSHIELD_H")]
1078 WindshieldH,
1079 #[doc(alias = "GES_VIDEO_STANDARD_TRANSITION_TYPE_CROSSFADE")]
1081 Crossfade,
1082 #[cfg(feature = "v1_22")]
1085 #[cfg_attr(docsrs, doc(cfg(feature = "v1_22")))]
1086 #[doc(alias = "GES_VIDEO_STANDARD_TRANSITION_TYPE_FADE_IN")]
1087 FadeIn,
1088 #[doc(hidden)]
1089 __Unknown(i32),
1090}
1091
1092#[doc(hidden)]
1093impl IntoGlib for VideoStandardTransitionType {
1094 type GlibType = ffi::GESVideoStandardTransitionType;
1095
1096 fn into_glib(self) -> ffi::GESVideoStandardTransitionType {
1097 match self {
1098 Self::None => ffi::GES_VIDEO_STANDARD_TRANSITION_TYPE_NONE,
1099 Self::BarWipeLr => ffi::GES_VIDEO_STANDARD_TRANSITION_TYPE_BAR_WIPE_LR,
1100 Self::BarWipeTb => ffi::GES_VIDEO_STANDARD_TRANSITION_TYPE_BAR_WIPE_TB,
1101 Self::BoxWipeTl => ffi::GES_VIDEO_STANDARD_TRANSITION_TYPE_BOX_WIPE_TL,
1102 Self::BoxWipeTr => ffi::GES_VIDEO_STANDARD_TRANSITION_TYPE_BOX_WIPE_TR,
1103 Self::BoxWipeBr => ffi::GES_VIDEO_STANDARD_TRANSITION_TYPE_BOX_WIPE_BR,
1104 Self::BoxWipeBl => ffi::GES_VIDEO_STANDARD_TRANSITION_TYPE_BOX_WIPE_BL,
1105 Self::FourBoxWipeCi => ffi::GES_VIDEO_STANDARD_TRANSITION_TYPE_FOUR_BOX_WIPE_CI,
1106 Self::FourBoxWipeCo => ffi::GES_VIDEO_STANDARD_TRANSITION_TYPE_FOUR_BOX_WIPE_CO,
1107 Self::BarndoorV => ffi::GES_VIDEO_STANDARD_TRANSITION_TYPE_BARNDOOR_V,
1108 Self::BarndoorH => ffi::GES_VIDEO_STANDARD_TRANSITION_TYPE_BARNDOOR_H,
1109 Self::BoxWipeTc => ffi::GES_VIDEO_STANDARD_TRANSITION_TYPE_BOX_WIPE_TC,
1110 Self::BoxWipeRc => ffi::GES_VIDEO_STANDARD_TRANSITION_TYPE_BOX_WIPE_RC,
1111 Self::BoxWipeBc => ffi::GES_VIDEO_STANDARD_TRANSITION_TYPE_BOX_WIPE_BC,
1112 Self::BoxWipeLc => ffi::GES_VIDEO_STANDARD_TRANSITION_TYPE_BOX_WIPE_LC,
1113 Self::DiagonalTl => ffi::GES_VIDEO_STANDARD_TRANSITION_TYPE_DIAGONAL_TL,
1114 Self::DiagonalTr => ffi::GES_VIDEO_STANDARD_TRANSITION_TYPE_DIAGONAL_TR,
1115 Self::BowtieV => ffi::GES_VIDEO_STANDARD_TRANSITION_TYPE_BOWTIE_V,
1116 Self::BowtieH => ffi::GES_VIDEO_STANDARD_TRANSITION_TYPE_BOWTIE_H,
1117 Self::BarndoorDbl => ffi::GES_VIDEO_STANDARD_TRANSITION_TYPE_BARNDOOR_DBL,
1118 Self::BarndoorDtl => ffi::GES_VIDEO_STANDARD_TRANSITION_TYPE_BARNDOOR_DTL,
1119 Self::MiscDiagonalDbd => ffi::GES_VIDEO_STANDARD_TRANSITION_TYPE_MISC_DIAGONAL_DBD,
1120 Self::MiscDiagonalDd => ffi::GES_VIDEO_STANDARD_TRANSITION_TYPE_MISC_DIAGONAL_DD,
1121 Self::VeeD => ffi::GES_VIDEO_STANDARD_TRANSITION_TYPE_VEE_D,
1122 Self::VeeL => ffi::GES_VIDEO_STANDARD_TRANSITION_TYPE_VEE_L,
1123 Self::VeeU => ffi::GES_VIDEO_STANDARD_TRANSITION_TYPE_VEE_U,
1124 Self::VeeR => ffi::GES_VIDEO_STANDARD_TRANSITION_TYPE_VEE_R,
1125 Self::BarnveeD => ffi::GES_VIDEO_STANDARD_TRANSITION_TYPE_BARNVEE_D,
1126 Self::BarnveeL => ffi::GES_VIDEO_STANDARD_TRANSITION_TYPE_BARNVEE_L,
1127 Self::BarnveeU => ffi::GES_VIDEO_STANDARD_TRANSITION_TYPE_BARNVEE_U,
1128 Self::BarnveeR => ffi::GES_VIDEO_STANDARD_TRANSITION_TYPE_BARNVEE_R,
1129 Self::IrisRect => ffi::GES_VIDEO_STANDARD_TRANSITION_TYPE_IRIS_RECT,
1130 Self::ClockCw12 => ffi::GES_VIDEO_STANDARD_TRANSITION_TYPE_CLOCK_CW12,
1131 Self::ClockCw3 => ffi::GES_VIDEO_STANDARD_TRANSITION_TYPE_CLOCK_CW3,
1132 Self::ClockCw6 => ffi::GES_VIDEO_STANDARD_TRANSITION_TYPE_CLOCK_CW6,
1133 Self::ClockCw9 => ffi::GES_VIDEO_STANDARD_TRANSITION_TYPE_CLOCK_CW9,
1134 Self::PinwheelTbv => ffi::GES_VIDEO_STANDARD_TRANSITION_TYPE_PINWHEEL_TBV,
1135 Self::PinwheelTbh => ffi::GES_VIDEO_STANDARD_TRANSITION_TYPE_PINWHEEL_TBH,
1136 Self::PinwheelFb => ffi::GES_VIDEO_STANDARD_TRANSITION_TYPE_PINWHEEL_FB,
1137 Self::FanCt => ffi::GES_VIDEO_STANDARD_TRANSITION_TYPE_FAN_CT,
1138 Self::FanCr => ffi::GES_VIDEO_STANDARD_TRANSITION_TYPE_FAN_CR,
1139 Self::DoublefanFov => ffi::GES_VIDEO_STANDARD_TRANSITION_TYPE_DOUBLEFAN_FOV,
1140 Self::DoublefanFoh => ffi::GES_VIDEO_STANDARD_TRANSITION_TYPE_DOUBLEFAN_FOH,
1141 Self::SinglesweepCwt => ffi::GES_VIDEO_STANDARD_TRANSITION_TYPE_SINGLESWEEP_CWT,
1142 Self::SinglesweepCwr => ffi::GES_VIDEO_STANDARD_TRANSITION_TYPE_SINGLESWEEP_CWR,
1143 Self::SinglesweepCwb => ffi::GES_VIDEO_STANDARD_TRANSITION_TYPE_SINGLESWEEP_CWB,
1144 Self::SinglesweepCwl => ffi::GES_VIDEO_STANDARD_TRANSITION_TYPE_SINGLESWEEP_CWL,
1145 Self::DoublesweepPv => ffi::GES_VIDEO_STANDARD_TRANSITION_TYPE_DOUBLESWEEP_PV,
1146 Self::DoublesweepPd => ffi::GES_VIDEO_STANDARD_TRANSITION_TYPE_DOUBLESWEEP_PD,
1147 Self::DoublesweepOv => ffi::GES_VIDEO_STANDARD_TRANSITION_TYPE_DOUBLESWEEP_OV,
1148 Self::DoublesweepOh => ffi::GES_VIDEO_STANDARD_TRANSITION_TYPE_DOUBLESWEEP_OH,
1149 Self::FanT => ffi::GES_VIDEO_STANDARD_TRANSITION_TYPE_FAN_T,
1150 Self::FanR => ffi::GES_VIDEO_STANDARD_TRANSITION_TYPE_FAN_R,
1151 Self::FanB => ffi::GES_VIDEO_STANDARD_TRANSITION_TYPE_FAN_B,
1152 Self::FanL => ffi::GES_VIDEO_STANDARD_TRANSITION_TYPE_FAN_L,
1153 Self::DoublefanFiv => ffi::GES_VIDEO_STANDARD_TRANSITION_TYPE_DOUBLEFAN_FIV,
1154 Self::DoublefanFih => ffi::GES_VIDEO_STANDARD_TRANSITION_TYPE_DOUBLEFAN_FIH,
1155 Self::SinglesweepCwtl => ffi::GES_VIDEO_STANDARD_TRANSITION_TYPE_SINGLESWEEP_CWTL,
1156 Self::SinglesweepCwbl => ffi::GES_VIDEO_STANDARD_TRANSITION_TYPE_SINGLESWEEP_CWBL,
1157 Self::SinglesweepCwbr => ffi::GES_VIDEO_STANDARD_TRANSITION_TYPE_SINGLESWEEP_CWBR,
1158 Self::SinglesweepCwtr => ffi::GES_VIDEO_STANDARD_TRANSITION_TYPE_SINGLESWEEP_CWTR,
1159 Self::DoublesweepPdtl => ffi::GES_VIDEO_STANDARD_TRANSITION_TYPE_DOUBLESWEEP_PDTL,
1160 Self::DoublesweepPdbl => ffi::GES_VIDEO_STANDARD_TRANSITION_TYPE_DOUBLESWEEP_PDBL,
1161 Self::SaloondoorT => ffi::GES_VIDEO_STANDARD_TRANSITION_TYPE_SALOONDOOR_T,
1162 Self::SaloondoorL => ffi::GES_VIDEO_STANDARD_TRANSITION_TYPE_SALOONDOOR_L,
1163 Self::SaloondoorB => ffi::GES_VIDEO_STANDARD_TRANSITION_TYPE_SALOONDOOR_B,
1164 Self::SaloondoorR => ffi::GES_VIDEO_STANDARD_TRANSITION_TYPE_SALOONDOOR_R,
1165 Self::WindshieldR => ffi::GES_VIDEO_STANDARD_TRANSITION_TYPE_WINDSHIELD_R,
1166 Self::WindshieldU => ffi::GES_VIDEO_STANDARD_TRANSITION_TYPE_WINDSHIELD_U,
1167 Self::WindshieldV => ffi::GES_VIDEO_STANDARD_TRANSITION_TYPE_WINDSHIELD_V,
1168 Self::WindshieldH => ffi::GES_VIDEO_STANDARD_TRANSITION_TYPE_WINDSHIELD_H,
1169 Self::Crossfade => ffi::GES_VIDEO_STANDARD_TRANSITION_TYPE_CROSSFADE,
1170 #[cfg(feature = "v1_22")]
1171 Self::FadeIn => ffi::GES_VIDEO_STANDARD_TRANSITION_TYPE_FADE_IN,
1172 Self::__Unknown(value) => value,
1173 }
1174 }
1175}
1176
1177#[doc(hidden)]
1178impl FromGlib<ffi::GESVideoStandardTransitionType> for VideoStandardTransitionType {
1179 unsafe fn from_glib(value: ffi::GESVideoStandardTransitionType) -> Self {
1180 skip_assert_initialized!();
1181
1182 match value {
1183 ffi::GES_VIDEO_STANDARD_TRANSITION_TYPE_NONE => Self::None,
1184 ffi::GES_VIDEO_STANDARD_TRANSITION_TYPE_BAR_WIPE_LR => Self::BarWipeLr,
1185 ffi::GES_VIDEO_STANDARD_TRANSITION_TYPE_BAR_WIPE_TB => Self::BarWipeTb,
1186 ffi::GES_VIDEO_STANDARD_TRANSITION_TYPE_BOX_WIPE_TL => Self::BoxWipeTl,
1187 ffi::GES_VIDEO_STANDARD_TRANSITION_TYPE_BOX_WIPE_TR => Self::BoxWipeTr,
1188 ffi::GES_VIDEO_STANDARD_TRANSITION_TYPE_BOX_WIPE_BR => Self::BoxWipeBr,
1189 ffi::GES_VIDEO_STANDARD_TRANSITION_TYPE_BOX_WIPE_BL => Self::BoxWipeBl,
1190 ffi::GES_VIDEO_STANDARD_TRANSITION_TYPE_FOUR_BOX_WIPE_CI => Self::FourBoxWipeCi,
1191 ffi::GES_VIDEO_STANDARD_TRANSITION_TYPE_FOUR_BOX_WIPE_CO => Self::FourBoxWipeCo,
1192 ffi::GES_VIDEO_STANDARD_TRANSITION_TYPE_BARNDOOR_V => Self::BarndoorV,
1193 ffi::GES_VIDEO_STANDARD_TRANSITION_TYPE_BARNDOOR_H => Self::BarndoorH,
1194 ffi::GES_VIDEO_STANDARD_TRANSITION_TYPE_BOX_WIPE_TC => Self::BoxWipeTc,
1195 ffi::GES_VIDEO_STANDARD_TRANSITION_TYPE_BOX_WIPE_RC => Self::BoxWipeRc,
1196 ffi::GES_VIDEO_STANDARD_TRANSITION_TYPE_BOX_WIPE_BC => Self::BoxWipeBc,
1197 ffi::GES_VIDEO_STANDARD_TRANSITION_TYPE_BOX_WIPE_LC => Self::BoxWipeLc,
1198 ffi::GES_VIDEO_STANDARD_TRANSITION_TYPE_DIAGONAL_TL => Self::DiagonalTl,
1199 ffi::GES_VIDEO_STANDARD_TRANSITION_TYPE_DIAGONAL_TR => Self::DiagonalTr,
1200 ffi::GES_VIDEO_STANDARD_TRANSITION_TYPE_BOWTIE_V => Self::BowtieV,
1201 ffi::GES_VIDEO_STANDARD_TRANSITION_TYPE_BOWTIE_H => Self::BowtieH,
1202 ffi::GES_VIDEO_STANDARD_TRANSITION_TYPE_BARNDOOR_DBL => Self::BarndoorDbl,
1203 ffi::GES_VIDEO_STANDARD_TRANSITION_TYPE_BARNDOOR_DTL => Self::BarndoorDtl,
1204 ffi::GES_VIDEO_STANDARD_TRANSITION_TYPE_MISC_DIAGONAL_DBD => Self::MiscDiagonalDbd,
1205 ffi::GES_VIDEO_STANDARD_TRANSITION_TYPE_MISC_DIAGONAL_DD => Self::MiscDiagonalDd,
1206 ffi::GES_VIDEO_STANDARD_TRANSITION_TYPE_VEE_D => Self::VeeD,
1207 ffi::GES_VIDEO_STANDARD_TRANSITION_TYPE_VEE_L => Self::VeeL,
1208 ffi::GES_VIDEO_STANDARD_TRANSITION_TYPE_VEE_U => Self::VeeU,
1209 ffi::GES_VIDEO_STANDARD_TRANSITION_TYPE_VEE_R => Self::VeeR,
1210 ffi::GES_VIDEO_STANDARD_TRANSITION_TYPE_BARNVEE_D => Self::BarnveeD,
1211 ffi::GES_VIDEO_STANDARD_TRANSITION_TYPE_BARNVEE_L => Self::BarnveeL,
1212 ffi::GES_VIDEO_STANDARD_TRANSITION_TYPE_BARNVEE_U => Self::BarnveeU,
1213 ffi::GES_VIDEO_STANDARD_TRANSITION_TYPE_BARNVEE_R => Self::BarnveeR,
1214 ffi::GES_VIDEO_STANDARD_TRANSITION_TYPE_IRIS_RECT => Self::IrisRect,
1215 ffi::GES_VIDEO_STANDARD_TRANSITION_TYPE_CLOCK_CW12 => Self::ClockCw12,
1216 ffi::GES_VIDEO_STANDARD_TRANSITION_TYPE_CLOCK_CW3 => Self::ClockCw3,
1217 ffi::GES_VIDEO_STANDARD_TRANSITION_TYPE_CLOCK_CW6 => Self::ClockCw6,
1218 ffi::GES_VIDEO_STANDARD_TRANSITION_TYPE_CLOCK_CW9 => Self::ClockCw9,
1219 ffi::GES_VIDEO_STANDARD_TRANSITION_TYPE_PINWHEEL_TBV => Self::PinwheelTbv,
1220 ffi::GES_VIDEO_STANDARD_TRANSITION_TYPE_PINWHEEL_TBH => Self::PinwheelTbh,
1221 ffi::GES_VIDEO_STANDARD_TRANSITION_TYPE_PINWHEEL_FB => Self::PinwheelFb,
1222 ffi::GES_VIDEO_STANDARD_TRANSITION_TYPE_FAN_CT => Self::FanCt,
1223 ffi::GES_VIDEO_STANDARD_TRANSITION_TYPE_FAN_CR => Self::FanCr,
1224 ffi::GES_VIDEO_STANDARD_TRANSITION_TYPE_DOUBLEFAN_FOV => Self::DoublefanFov,
1225 ffi::GES_VIDEO_STANDARD_TRANSITION_TYPE_DOUBLEFAN_FOH => Self::DoublefanFoh,
1226 ffi::GES_VIDEO_STANDARD_TRANSITION_TYPE_SINGLESWEEP_CWT => Self::SinglesweepCwt,
1227 ffi::GES_VIDEO_STANDARD_TRANSITION_TYPE_SINGLESWEEP_CWR => Self::SinglesweepCwr,
1228 ffi::GES_VIDEO_STANDARD_TRANSITION_TYPE_SINGLESWEEP_CWB => Self::SinglesweepCwb,
1229 ffi::GES_VIDEO_STANDARD_TRANSITION_TYPE_SINGLESWEEP_CWL => Self::SinglesweepCwl,
1230 ffi::GES_VIDEO_STANDARD_TRANSITION_TYPE_DOUBLESWEEP_PV => Self::DoublesweepPv,
1231 ffi::GES_VIDEO_STANDARD_TRANSITION_TYPE_DOUBLESWEEP_PD => Self::DoublesweepPd,
1232 ffi::GES_VIDEO_STANDARD_TRANSITION_TYPE_DOUBLESWEEP_OV => Self::DoublesweepOv,
1233 ffi::GES_VIDEO_STANDARD_TRANSITION_TYPE_DOUBLESWEEP_OH => Self::DoublesweepOh,
1234 ffi::GES_VIDEO_STANDARD_TRANSITION_TYPE_FAN_T => Self::FanT,
1235 ffi::GES_VIDEO_STANDARD_TRANSITION_TYPE_FAN_R => Self::FanR,
1236 ffi::GES_VIDEO_STANDARD_TRANSITION_TYPE_FAN_B => Self::FanB,
1237 ffi::GES_VIDEO_STANDARD_TRANSITION_TYPE_FAN_L => Self::FanL,
1238 ffi::GES_VIDEO_STANDARD_TRANSITION_TYPE_DOUBLEFAN_FIV => Self::DoublefanFiv,
1239 ffi::GES_VIDEO_STANDARD_TRANSITION_TYPE_DOUBLEFAN_FIH => Self::DoublefanFih,
1240 ffi::GES_VIDEO_STANDARD_TRANSITION_TYPE_SINGLESWEEP_CWTL => Self::SinglesweepCwtl,
1241 ffi::GES_VIDEO_STANDARD_TRANSITION_TYPE_SINGLESWEEP_CWBL => Self::SinglesweepCwbl,
1242 ffi::GES_VIDEO_STANDARD_TRANSITION_TYPE_SINGLESWEEP_CWBR => Self::SinglesweepCwbr,
1243 ffi::GES_VIDEO_STANDARD_TRANSITION_TYPE_SINGLESWEEP_CWTR => Self::SinglesweepCwtr,
1244 ffi::GES_VIDEO_STANDARD_TRANSITION_TYPE_DOUBLESWEEP_PDTL => Self::DoublesweepPdtl,
1245 ffi::GES_VIDEO_STANDARD_TRANSITION_TYPE_DOUBLESWEEP_PDBL => Self::DoublesweepPdbl,
1246 ffi::GES_VIDEO_STANDARD_TRANSITION_TYPE_SALOONDOOR_T => Self::SaloondoorT,
1247 ffi::GES_VIDEO_STANDARD_TRANSITION_TYPE_SALOONDOOR_L => Self::SaloondoorL,
1248 ffi::GES_VIDEO_STANDARD_TRANSITION_TYPE_SALOONDOOR_B => Self::SaloondoorB,
1249 ffi::GES_VIDEO_STANDARD_TRANSITION_TYPE_SALOONDOOR_R => Self::SaloondoorR,
1250 ffi::GES_VIDEO_STANDARD_TRANSITION_TYPE_WINDSHIELD_R => Self::WindshieldR,
1251 ffi::GES_VIDEO_STANDARD_TRANSITION_TYPE_WINDSHIELD_U => Self::WindshieldU,
1252 ffi::GES_VIDEO_STANDARD_TRANSITION_TYPE_WINDSHIELD_V => Self::WindshieldV,
1253 ffi::GES_VIDEO_STANDARD_TRANSITION_TYPE_WINDSHIELD_H => Self::WindshieldH,
1254 ffi::GES_VIDEO_STANDARD_TRANSITION_TYPE_CROSSFADE => Self::Crossfade,
1255 #[cfg(feature = "v1_22")]
1256 ffi::GES_VIDEO_STANDARD_TRANSITION_TYPE_FADE_IN => Self::FadeIn,
1257 value => Self::__Unknown(value),
1258 }
1259 }
1260}
1261
1262impl StaticType for VideoStandardTransitionType {
1263 #[inline]
1264 #[doc(alias = "ges_video_standard_transition_type_get_type")]
1265 fn static_type() -> glib::Type {
1266 unsafe { from_glib(ffi::ges_video_standard_transition_type_get_type()) }
1267 }
1268}
1269
1270impl glib::HasParamSpec for VideoStandardTransitionType {
1271 type ParamSpec = glib::ParamSpecEnum;
1272 type SetValue = Self;
1273 type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
1274
1275 fn param_spec_builder() -> Self::BuilderFn {
1276 Self::ParamSpec::builder_with_default
1277 }
1278}
1279
1280impl glib::value::ValueType for VideoStandardTransitionType {
1281 type Type = Self;
1282}
1283
1284unsafe impl<'a> glib::value::FromValue<'a> for VideoStandardTransitionType {
1285 type Checker = glib::value::GenericValueTypeChecker<Self>;
1286
1287 #[inline]
1288 unsafe fn from_value(value: &'a glib::Value) -> Self {
1289 skip_assert_initialized!();
1290 unsafe { from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0)) }
1291 }
1292}
1293
1294impl ToValue for VideoStandardTransitionType {
1295 #[inline]
1296 fn to_value(&self) -> glib::Value {
1297 let mut value = glib::Value::for_value_type::<Self>();
1298 unsafe {
1299 glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
1300 }
1301 value
1302 }
1303
1304 #[inline]
1305 fn value_type(&self) -> glib::Type {
1306 Self::static_type()
1307 }
1308}
1309
1310impl From<VideoStandardTransitionType> for glib::Value {
1311 #[inline]
1312 fn from(v: VideoStandardTransitionType) -> Self {
1313 skip_assert_initialized!();
1314 ToValue::to_value(&v)
1315 }
1316}
1317
1318#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
1320#[non_exhaustive]
1321#[doc(alias = "GESVideoTestPattern")]
1322pub enum VideoTestPattern {
1323 #[doc(alias = "GES_VIDEO_TEST_PATTERN_SMPTE")]
1325 Smpte,
1326 #[doc(alias = "GES_VIDEO_TEST_PATTERN_SNOW")]
1328 Snow,
1329 #[doc(alias = "GES_VIDEO_TEST_PATTERN_BLACK")]
1331 Black,
1332 #[doc(alias = "GES_VIDEO_TEST_PATTERN_WHITE")]
1334 White,
1335 #[doc(alias = "GES_VIDEO_TEST_PATTERN_RED")]
1337 Red,
1338 #[doc(alias = "GES_VIDEO_TEST_PATTERN_GREEN")]
1340 Green,
1341 #[doc(alias = "GES_VIDEO_TEST_PATTERN_BLUE")]
1343 Blue,
1344 #[doc(alias = "GES_VIDEO_TEST_PATTERN_CHECKERS1")]
1346 Checkers1,
1347 #[doc(alias = "GES_VIDEO_TEST_PATTERN_CHECKERS2")]
1349 Checkers2,
1350 #[doc(alias = "GES_VIDEO_TEST_PATTERN_CHECKERS4")]
1352 Checkers4,
1353 #[doc(alias = "GES_VIDEO_TEST_PATTERN_CHECKERS8")]
1355 Checkers8,
1356 #[doc(alias = "GES_VIDEO_TEST_PATTERN_CIRCULAR")]
1358 Circular,
1359 #[doc(alias = "GES_VIDEO_TEST_PATTERN_BLINK")]
1361 Blink,
1362 #[doc(alias = "GES_VIDEO_TEST_PATTERN_SMPTE75")]
1364 Smpte75,
1365 #[doc(alias = "GES_VIDEO_TEST_ZONE_PLATE")]
1367 ZonePlate,
1368 #[doc(alias = "GES_VIDEO_TEST_GAMUT")]
1370 Gamut,
1371 #[doc(alias = "GES_VIDEO_TEST_CHROMA_ZONE_PLATE")]
1373 ChromaZonePlate,
1374 #[doc(alias = "GES_VIDEO_TEST_PATTERN_SOLID")]
1376 SolidColor,
1377 #[doc(hidden)]
1378 __Unknown(i32),
1379}
1380
1381#[doc(hidden)]
1382impl IntoGlib for VideoTestPattern {
1383 type GlibType = ffi::GESVideoTestPattern;
1384
1385 fn into_glib(self) -> ffi::GESVideoTestPattern {
1386 match self {
1387 Self::Smpte => ffi::GES_VIDEO_TEST_PATTERN_SMPTE,
1388 Self::Snow => ffi::GES_VIDEO_TEST_PATTERN_SNOW,
1389 Self::Black => ffi::GES_VIDEO_TEST_PATTERN_BLACK,
1390 Self::White => ffi::GES_VIDEO_TEST_PATTERN_WHITE,
1391 Self::Red => ffi::GES_VIDEO_TEST_PATTERN_RED,
1392 Self::Green => ffi::GES_VIDEO_TEST_PATTERN_GREEN,
1393 Self::Blue => ffi::GES_VIDEO_TEST_PATTERN_BLUE,
1394 Self::Checkers1 => ffi::GES_VIDEO_TEST_PATTERN_CHECKERS1,
1395 Self::Checkers2 => ffi::GES_VIDEO_TEST_PATTERN_CHECKERS2,
1396 Self::Checkers4 => ffi::GES_VIDEO_TEST_PATTERN_CHECKERS4,
1397 Self::Checkers8 => ffi::GES_VIDEO_TEST_PATTERN_CHECKERS8,
1398 Self::Circular => ffi::GES_VIDEO_TEST_PATTERN_CIRCULAR,
1399 Self::Blink => ffi::GES_VIDEO_TEST_PATTERN_BLINK,
1400 Self::Smpte75 => ffi::GES_VIDEO_TEST_PATTERN_SMPTE75,
1401 Self::ZonePlate => ffi::GES_VIDEO_TEST_ZONE_PLATE,
1402 Self::Gamut => ffi::GES_VIDEO_TEST_GAMUT,
1403 Self::ChromaZonePlate => ffi::GES_VIDEO_TEST_CHROMA_ZONE_PLATE,
1404 Self::SolidColor => ffi::GES_VIDEO_TEST_PATTERN_SOLID,
1405 Self::__Unknown(value) => value,
1406 }
1407 }
1408}
1409
1410#[doc(hidden)]
1411impl FromGlib<ffi::GESVideoTestPattern> for VideoTestPattern {
1412 unsafe fn from_glib(value: ffi::GESVideoTestPattern) -> Self {
1413 skip_assert_initialized!();
1414
1415 match value {
1416 ffi::GES_VIDEO_TEST_PATTERN_SMPTE => Self::Smpte,
1417 ffi::GES_VIDEO_TEST_PATTERN_SNOW => Self::Snow,
1418 ffi::GES_VIDEO_TEST_PATTERN_BLACK => Self::Black,
1419 ffi::GES_VIDEO_TEST_PATTERN_WHITE => Self::White,
1420 ffi::GES_VIDEO_TEST_PATTERN_RED => Self::Red,
1421 ffi::GES_VIDEO_TEST_PATTERN_GREEN => Self::Green,
1422 ffi::GES_VIDEO_TEST_PATTERN_BLUE => Self::Blue,
1423 ffi::GES_VIDEO_TEST_PATTERN_CHECKERS1 => Self::Checkers1,
1424 ffi::GES_VIDEO_TEST_PATTERN_CHECKERS2 => Self::Checkers2,
1425 ffi::GES_VIDEO_TEST_PATTERN_CHECKERS4 => Self::Checkers4,
1426 ffi::GES_VIDEO_TEST_PATTERN_CHECKERS8 => Self::Checkers8,
1427 ffi::GES_VIDEO_TEST_PATTERN_CIRCULAR => Self::Circular,
1428 ffi::GES_VIDEO_TEST_PATTERN_BLINK => Self::Blink,
1429 ffi::GES_VIDEO_TEST_PATTERN_SMPTE75 => Self::Smpte75,
1430 ffi::GES_VIDEO_TEST_ZONE_PLATE => Self::ZonePlate,
1431 ffi::GES_VIDEO_TEST_GAMUT => Self::Gamut,
1432 ffi::GES_VIDEO_TEST_CHROMA_ZONE_PLATE => Self::ChromaZonePlate,
1433 ffi::GES_VIDEO_TEST_PATTERN_SOLID => Self::SolidColor,
1434 value => Self::__Unknown(value),
1435 }
1436 }
1437}
1438
1439impl StaticType for VideoTestPattern {
1440 #[inline]
1441 #[doc(alias = "ges_video_test_pattern_get_type")]
1442 fn static_type() -> glib::Type {
1443 unsafe { from_glib(ffi::ges_video_test_pattern_get_type()) }
1444 }
1445}
1446
1447impl glib::HasParamSpec for VideoTestPattern {
1448 type ParamSpec = glib::ParamSpecEnum;
1449 type SetValue = Self;
1450 type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
1451
1452 fn param_spec_builder() -> Self::BuilderFn {
1453 Self::ParamSpec::builder_with_default
1454 }
1455}
1456
1457impl glib::value::ValueType for VideoTestPattern {
1458 type Type = Self;
1459}
1460
1461unsafe impl<'a> glib::value::FromValue<'a> for VideoTestPattern {
1462 type Checker = glib::value::GenericValueTypeChecker<Self>;
1463
1464 #[inline]
1465 unsafe fn from_value(value: &'a glib::Value) -> Self {
1466 skip_assert_initialized!();
1467 unsafe { from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0)) }
1468 }
1469}
1470
1471impl ToValue for VideoTestPattern {
1472 #[inline]
1473 fn to_value(&self) -> glib::Value {
1474 let mut value = glib::Value::for_value_type::<Self>();
1475 unsafe {
1476 glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
1477 }
1478 value
1479 }
1480
1481 #[inline]
1482 fn value_type(&self) -> glib::Type {
1483 Self::static_type()
1484 }
1485}
1486
1487impl From<VideoTestPattern> for glib::Value {
1488 #[inline]
1489 fn from(v: VideoTestPattern) -> Self {
1490 skip_assert_initialized!();
1491 ToValue::to_value(&v)
1492 }
1493}