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")]
17 Error,
18 #[doc(alias = "GES_ASSET_LOADING_ASYNC")]
19 Async,
20 #[doc(alias = "GES_ASSET_LOADING_OK")]
21 Ok,
22 #[doc(hidden)]
23 __Unknown(i32),
24}
25
26#[doc(hidden)]
27impl IntoGlib for AssetLoadingReturn {
28 type GlibType = ffi::GESAssetLoadingReturn;
29
30 #[inline]
31 fn into_glib(self) -> ffi::GESAssetLoadingReturn {
32 match self {
33 Self::Error => ffi::GES_ASSET_LOADING_ERROR,
34 Self::Async => ffi::GES_ASSET_LOADING_ASYNC,
35 Self::Ok => ffi::GES_ASSET_LOADING_OK,
36 Self::__Unknown(value) => value,
37 }
38 }
39}
40
41#[doc(hidden)]
42impl FromGlib<ffi::GESAssetLoadingReturn> for AssetLoadingReturn {
43 #[inline]
44 unsafe fn from_glib(value: ffi::GESAssetLoadingReturn) -> Self {
45 skip_assert_initialized!();
46
47 match value {
48 ffi::GES_ASSET_LOADING_ERROR => Self::Error,
49 ffi::GES_ASSET_LOADING_ASYNC => Self::Async,
50 ffi::GES_ASSET_LOADING_OK => Self::Ok,
51 value => Self::__Unknown(value),
52 }
53 }
54}
55
56#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
57#[non_exhaustive]
58#[doc(alias = "GESChildrenControlMode")]
59pub enum ChildrenControlMode {
60 #[doc(alias = "GES_CHILDREN_UPDATE")]
61 Update,
62 #[doc(alias = "GES_CHILDREN_IGNORE_NOTIFIES")]
63 IgnoreNotifies,
64 #[doc(alias = "GES_CHILDREN_UPDATE_OFFSETS")]
65 UpdateOffsets,
66 #[doc(alias = "GES_CHILDREN_UPDATE_ALL_VALUES")]
67 UpdateAllValues,
68 #[doc(alias = "GES_CHILDREN_LAST")]
69 Last,
70 #[doc(hidden)]
71 __Unknown(i32),
72}
73
74#[doc(hidden)]
75impl IntoGlib for ChildrenControlMode {
76 type GlibType = ffi::GESChildrenControlMode;
77
78 #[inline]
79 fn into_glib(self) -> ffi::GESChildrenControlMode {
80 match self {
81 Self::Update => ffi::GES_CHILDREN_UPDATE,
82 Self::IgnoreNotifies => ffi::GES_CHILDREN_IGNORE_NOTIFIES,
83 Self::UpdateOffsets => ffi::GES_CHILDREN_UPDATE_OFFSETS,
84 Self::UpdateAllValues => ffi::GES_CHILDREN_UPDATE_ALL_VALUES,
85 Self::Last => ffi::GES_CHILDREN_LAST,
86 Self::__Unknown(value) => value,
87 }
88 }
89}
90
91#[doc(hidden)]
92impl FromGlib<ffi::GESChildrenControlMode> for ChildrenControlMode {
93 #[inline]
94 unsafe fn from_glib(value: ffi::GESChildrenControlMode) -> Self {
95 skip_assert_initialized!();
96
97 match value {
98 ffi::GES_CHILDREN_UPDATE => Self::Update,
99 ffi::GES_CHILDREN_IGNORE_NOTIFIES => Self::IgnoreNotifies,
100 ffi::GES_CHILDREN_UPDATE_OFFSETS => Self::UpdateOffsets,
101 ffi::GES_CHILDREN_UPDATE_ALL_VALUES => Self::UpdateAllValues,
102 ffi::GES_CHILDREN_LAST => Self::Last,
103 value => Self::__Unknown(value),
104 }
105 }
106}
107
108#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
109#[non_exhaustive]
110#[doc(alias = "GESEdge")]
111pub enum Edge {
112 #[doc(alias = "GES_EDGE_START")]
113 Start,
114 #[doc(alias = "GES_EDGE_END")]
115 End,
116 #[doc(alias = "GES_EDGE_NONE")]
117 None,
118 #[doc(hidden)]
119 __Unknown(i32),
120}
121
122impl Edge {
123 #[cfg(feature = "v1_16")]
124 #[cfg_attr(docsrs, doc(cfg(feature = "v1_16")))]
125 pub fn name<'a>(self) -> &'a GStr {
126 unsafe {
127 GStr::from_ptr(
128 ffi::ges_edge_name(self.into_glib())
129 .as_ref()
130 .expect("ges_edge_name returned NULL"),
131 )
132 }
133 }
134}
135
136#[cfg(feature = "v1_16")]
137#[cfg_attr(docsrs, doc(cfg(feature = "v1_16")))]
138impl std::fmt::Display for Edge {
139 #[inline]
140 fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
141 f.write_str(&self.name())
142 }
143}
144
145#[doc(hidden)]
146impl IntoGlib for Edge {
147 type GlibType = ffi::GESEdge;
148
149 #[inline]
150 fn into_glib(self) -> ffi::GESEdge {
151 match self {
152 Self::Start => ffi::GES_EDGE_START,
153 Self::End => ffi::GES_EDGE_END,
154 Self::None => ffi::GES_EDGE_NONE,
155 Self::__Unknown(value) => value,
156 }
157 }
158}
159
160#[doc(hidden)]
161impl FromGlib<ffi::GESEdge> for Edge {
162 #[inline]
163 unsafe fn from_glib(value: ffi::GESEdge) -> Self {
164 skip_assert_initialized!();
165
166 match value {
167 ffi::GES_EDGE_START => Self::Start,
168 ffi::GES_EDGE_END => Self::End,
169 ffi::GES_EDGE_NONE => Self::None,
170 value => Self::__Unknown(value),
171 }
172 }
173}
174
175impl StaticType for Edge {
176 #[inline]
177 #[doc(alias = "ges_edge_get_type")]
178 fn static_type() -> glib::Type {
179 unsafe { from_glib(ffi::ges_edge_get_type()) }
180 }
181}
182
183impl glib::HasParamSpec for Edge {
184 type ParamSpec = glib::ParamSpecEnum;
185 type SetValue = Self;
186 type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
187
188 fn param_spec_builder() -> Self::BuilderFn {
189 Self::ParamSpec::builder_with_default
190 }
191}
192
193impl glib::value::ValueType for Edge {
194 type Type = Self;
195}
196
197unsafe impl<'a> glib::value::FromValue<'a> for Edge {
198 type Checker = glib::value::GenericValueTypeChecker<Self>;
199
200 #[inline]
201 unsafe fn from_value(value: &'a glib::Value) -> Self {
202 skip_assert_initialized!();
203 unsafe { from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0)) }
204 }
205}
206
207impl ToValue for Edge {
208 #[inline]
209 fn to_value(&self) -> glib::Value {
210 let mut value = glib::Value::for_value_type::<Self>();
211 unsafe {
212 glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
213 }
214 value
215 }
216
217 #[inline]
218 fn value_type(&self) -> glib::Type {
219 Self::static_type()
220 }
221}
222
223impl From<Edge> for glib::Value {
224 #[inline]
225 fn from(v: Edge) -> Self {
226 skip_assert_initialized!();
227 ToValue::to_value(&v)
228 }
229}
230
231#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
232#[non_exhaustive]
233#[doc(alias = "GESEditMode")]
234pub enum EditMode {
235 #[doc(alias = "GES_EDIT_MODE_NORMAL")]
236 Normal,
237 #[doc(alias = "GES_EDIT_MODE_RIPPLE")]
238 Ripple,
239 #[doc(alias = "GES_EDIT_MODE_ROLL")]
240 Roll,
241 #[doc(alias = "GES_EDIT_MODE_TRIM")]
242 Trim,
243 #[doc(alias = "GES_EDIT_MODE_SLIDE")]
244 Slide,
245 #[doc(hidden)]
246 __Unknown(i32),
247}
248
249impl EditMode {
250 #[cfg(feature = "v1_18")]
251 #[cfg_attr(docsrs, doc(cfg(feature = "v1_18")))]
252 pub fn name<'a>(self) -> &'a GStr {
253 unsafe {
254 GStr::from_ptr(
255 ffi::ges_edit_mode_name(self.into_glib())
256 .as_ref()
257 .expect("ges_edit_mode_name returned NULL"),
258 )
259 }
260 }
261}
262
263#[cfg(feature = "v1_18")]
264#[cfg_attr(docsrs, doc(cfg(feature = "v1_18")))]
265impl std::fmt::Display for EditMode {
266 #[inline]
267 fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
268 f.write_str(&self.name())
269 }
270}
271
272#[doc(hidden)]
273impl IntoGlib for EditMode {
274 type GlibType = ffi::GESEditMode;
275
276 #[inline]
277 fn into_glib(self) -> ffi::GESEditMode {
278 match self {
279 Self::Normal => ffi::GES_EDIT_MODE_NORMAL,
280 Self::Ripple => ffi::GES_EDIT_MODE_RIPPLE,
281 Self::Roll => ffi::GES_EDIT_MODE_ROLL,
282 Self::Trim => ffi::GES_EDIT_MODE_TRIM,
283 Self::Slide => ffi::GES_EDIT_MODE_SLIDE,
284 Self::__Unknown(value) => value,
285 }
286 }
287}
288
289#[doc(hidden)]
290impl FromGlib<ffi::GESEditMode> for EditMode {
291 #[inline]
292 unsafe fn from_glib(value: ffi::GESEditMode) -> Self {
293 skip_assert_initialized!();
294
295 match value {
296 ffi::GES_EDIT_MODE_NORMAL => Self::Normal,
297 ffi::GES_EDIT_MODE_RIPPLE => Self::Ripple,
298 ffi::GES_EDIT_MODE_ROLL => Self::Roll,
299 ffi::GES_EDIT_MODE_TRIM => Self::Trim,
300 ffi::GES_EDIT_MODE_SLIDE => Self::Slide,
301 value => Self::__Unknown(value),
302 }
303 }
304}
305
306impl StaticType for EditMode {
307 #[inline]
308 #[doc(alias = "ges_edit_mode_get_type")]
309 fn static_type() -> glib::Type {
310 unsafe { from_glib(ffi::ges_edit_mode_get_type()) }
311 }
312}
313
314impl glib::HasParamSpec for EditMode {
315 type ParamSpec = glib::ParamSpecEnum;
316 type SetValue = Self;
317 type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
318
319 fn param_spec_builder() -> Self::BuilderFn {
320 Self::ParamSpec::builder_with_default
321 }
322}
323
324impl glib::value::ValueType for EditMode {
325 type Type = Self;
326}
327
328unsafe impl<'a> glib::value::FromValue<'a> for EditMode {
329 type Checker = glib::value::GenericValueTypeChecker<Self>;
330
331 #[inline]
332 unsafe fn from_value(value: &'a glib::Value) -> Self {
333 skip_assert_initialized!();
334 unsafe { from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0)) }
335 }
336}
337
338impl ToValue for EditMode {
339 #[inline]
340 fn to_value(&self) -> glib::Value {
341 let mut value = glib::Value::for_value_type::<Self>();
342 unsafe {
343 glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
344 }
345 value
346 }
347
348 #[inline]
349 fn value_type(&self) -> glib::Type {
350 Self::static_type()
351 }
352}
353
354impl From<EditMode> for glib::Value {
355 #[inline]
356 fn from(v: EditMode) -> Self {
357 skip_assert_initialized!();
358 ToValue::to_value(&v)
359 }
360}
361
362#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
363#[non_exhaustive]
364#[doc(alias = "GESError")]
365pub enum Error {
366 #[doc(alias = "GES_ERROR_ASSET_WRONG_ID")]
367 AssetWrongId,
368 #[doc(alias = "GES_ERROR_ASSET_LOADING")]
369 AssetLoading,
370 #[doc(alias = "GES_ERROR_FORMATTER_MALFORMED_INPUT_FILE")]
371 FormatterMalformedInputFile,
372 #[doc(alias = "GES_ERROR_INVALID_FRAME_NUMBER")]
373 InvalidFrameNumber,
374 #[doc(alias = "GES_ERROR_NEGATIVE_LAYER")]
375 NegativeLayer,
376 #[doc(alias = "GES_ERROR_NEGATIVE_TIME")]
377 NegativeTime,
378 #[doc(alias = "GES_ERROR_NOT_ENOUGH_INTERNAL_CONTENT")]
379 NotEnoughInternalContent,
380 #[doc(alias = "GES_ERROR_INVALID_OVERLAP_IN_TRACK")]
381 InvalidOverlapInTrack,
382 #[doc(alias = "GES_ERROR_INVALID_EFFECT_BIN_DESCRIPTION")]
383 InvalidEffectBinDescription,
384 #[doc(hidden)]
385 __Unknown(i32),
386}
387
388#[doc(hidden)]
389impl IntoGlib for Error {
390 type GlibType = ffi::GESError;
391
392 #[inline]
393 fn into_glib(self) -> ffi::GESError {
394 match self {
395 Self::AssetWrongId => ffi::GES_ERROR_ASSET_WRONG_ID,
396 Self::AssetLoading => ffi::GES_ERROR_ASSET_LOADING,
397 Self::FormatterMalformedInputFile => ffi::GES_ERROR_FORMATTER_MALFORMED_INPUT_FILE,
398 Self::InvalidFrameNumber => ffi::GES_ERROR_INVALID_FRAME_NUMBER,
399 Self::NegativeLayer => ffi::GES_ERROR_NEGATIVE_LAYER,
400 Self::NegativeTime => ffi::GES_ERROR_NEGATIVE_TIME,
401 Self::NotEnoughInternalContent => ffi::GES_ERROR_NOT_ENOUGH_INTERNAL_CONTENT,
402 Self::InvalidOverlapInTrack => ffi::GES_ERROR_INVALID_OVERLAP_IN_TRACK,
403 Self::InvalidEffectBinDescription => ffi::GES_ERROR_INVALID_EFFECT_BIN_DESCRIPTION,
404 Self::__Unknown(value) => value,
405 }
406 }
407}
408
409#[doc(hidden)]
410impl FromGlib<ffi::GESError> for Error {
411 #[inline]
412 unsafe fn from_glib(value: ffi::GESError) -> Self {
413 skip_assert_initialized!();
414
415 match value {
416 ffi::GES_ERROR_ASSET_WRONG_ID => Self::AssetWrongId,
417 ffi::GES_ERROR_ASSET_LOADING => Self::AssetLoading,
418 ffi::GES_ERROR_FORMATTER_MALFORMED_INPUT_FILE => Self::FormatterMalformedInputFile,
419 ffi::GES_ERROR_INVALID_FRAME_NUMBER => Self::InvalidFrameNumber,
420 ffi::GES_ERROR_NEGATIVE_LAYER => Self::NegativeLayer,
421 ffi::GES_ERROR_NEGATIVE_TIME => Self::NegativeTime,
422 ffi::GES_ERROR_NOT_ENOUGH_INTERNAL_CONTENT => Self::NotEnoughInternalContent,
423 ffi::GES_ERROR_INVALID_OVERLAP_IN_TRACK => Self::InvalidOverlapInTrack,
424 ffi::GES_ERROR_INVALID_EFFECT_BIN_DESCRIPTION => Self::InvalidEffectBinDescription,
425 value => Self::__Unknown(value),
426 }
427 }
428}
429
430impl glib::error::ErrorDomain for Error {
431 #[inline]
432 fn domain() -> glib::Quark {
433 skip_assert_initialized!();
434
435 static QUARK: ::std::sync::OnceLock<glib::ffi::GQuark> = ::std::sync::OnceLock::new();
436 let quark = *QUARK.get_or_init(|| unsafe {
437 glib::ffi::g_quark_from_static_string(c"GES_ERROR".as_ptr())
438 });
439 unsafe { from_glib(quark) }
440 }
441
442 #[inline]
443 fn code(self) -> i32 {
444 self.into_glib()
445 }
446
447 #[inline]
448 #[allow(clippy::match_single_binding)]
449 fn from(code: i32) -> Option<Self> {
450 skip_assert_initialized!();
451 match unsafe { from_glib(code) } {
452 value => Some(value),
453 }
454 }
455}
456
457#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
458#[non_exhaustive]
459#[doc(alias = "GESTextHAlign")]
460pub enum TextHAlign {
461 #[doc(alias = "GES_TEXT_HALIGN_LEFT")]
462 Left,
463 #[doc(alias = "GES_TEXT_HALIGN_CENTER")]
464 Center,
465 #[doc(alias = "GES_TEXT_HALIGN_RIGHT")]
466 Right,
467 #[doc(alias = "GES_TEXT_HALIGN_POSITION")]
468 Position,
469 #[doc(alias = "GES_TEXT_HALIGN_ABSOLUTE")]
470 Absolute,
471 #[doc(hidden)]
472 __Unknown(i32),
473}
474
475#[doc(hidden)]
476impl IntoGlib for TextHAlign {
477 type GlibType = ffi::GESTextHAlign;
478
479 #[inline]
480 fn into_glib(self) -> ffi::GESTextHAlign {
481 match self {
482 Self::Left => ffi::GES_TEXT_HALIGN_LEFT,
483 Self::Center => ffi::GES_TEXT_HALIGN_CENTER,
484 Self::Right => ffi::GES_TEXT_HALIGN_RIGHT,
485 Self::Position => ffi::GES_TEXT_HALIGN_POSITION,
486 Self::Absolute => ffi::GES_TEXT_HALIGN_ABSOLUTE,
487 Self::__Unknown(value) => value,
488 }
489 }
490}
491
492#[doc(hidden)]
493impl FromGlib<ffi::GESTextHAlign> for TextHAlign {
494 #[inline]
495 unsafe fn from_glib(value: ffi::GESTextHAlign) -> Self {
496 skip_assert_initialized!();
497
498 match value {
499 ffi::GES_TEXT_HALIGN_LEFT => Self::Left,
500 ffi::GES_TEXT_HALIGN_CENTER => Self::Center,
501 ffi::GES_TEXT_HALIGN_RIGHT => Self::Right,
502 ffi::GES_TEXT_HALIGN_POSITION => Self::Position,
503 ffi::GES_TEXT_HALIGN_ABSOLUTE => Self::Absolute,
504 value => Self::__Unknown(value),
505 }
506 }
507}
508
509impl StaticType for TextHAlign {
510 #[inline]
511 #[doc(alias = "ges_text_halign_get_type")]
512 fn static_type() -> glib::Type {
513 unsafe { from_glib(ffi::ges_text_halign_get_type()) }
514 }
515}
516
517impl glib::HasParamSpec for TextHAlign {
518 type ParamSpec = glib::ParamSpecEnum;
519 type SetValue = Self;
520 type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
521
522 fn param_spec_builder() -> Self::BuilderFn {
523 Self::ParamSpec::builder_with_default
524 }
525}
526
527impl glib::value::ValueType for TextHAlign {
528 type Type = Self;
529}
530
531unsafe impl<'a> glib::value::FromValue<'a> for TextHAlign {
532 type Checker = glib::value::GenericValueTypeChecker<Self>;
533
534 #[inline]
535 unsafe fn from_value(value: &'a glib::Value) -> Self {
536 skip_assert_initialized!();
537 unsafe { from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0)) }
538 }
539}
540
541impl ToValue for TextHAlign {
542 #[inline]
543 fn to_value(&self) -> glib::Value {
544 let mut value = glib::Value::for_value_type::<Self>();
545 unsafe {
546 glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
547 }
548 value
549 }
550
551 #[inline]
552 fn value_type(&self) -> glib::Type {
553 Self::static_type()
554 }
555}
556
557impl From<TextHAlign> for glib::Value {
558 #[inline]
559 fn from(v: TextHAlign) -> Self {
560 skip_assert_initialized!();
561 ToValue::to_value(&v)
562 }
563}
564
565#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
566#[non_exhaustive]
567#[doc(alias = "GESTextVAlign")]
568pub enum TextVAlign {
569 #[doc(alias = "GES_TEXT_VALIGN_BASELINE")]
570 Baseline,
571 #[doc(alias = "GES_TEXT_VALIGN_BOTTOM")]
572 Bottom,
573 #[doc(alias = "GES_TEXT_VALIGN_TOP")]
574 Top,
575 #[doc(alias = "GES_TEXT_VALIGN_POSITION")]
576 Position,
577 #[doc(alias = "GES_TEXT_VALIGN_CENTER")]
578 Center,
579 #[doc(alias = "GES_TEXT_VALIGN_ABSOLUTE")]
580 Absolute,
581 #[doc(hidden)]
582 __Unknown(i32),
583}
584
585#[doc(hidden)]
586impl IntoGlib for TextVAlign {
587 type GlibType = ffi::GESTextVAlign;
588
589 #[inline]
590 fn into_glib(self) -> ffi::GESTextVAlign {
591 match self {
592 Self::Baseline => ffi::GES_TEXT_VALIGN_BASELINE,
593 Self::Bottom => ffi::GES_TEXT_VALIGN_BOTTOM,
594 Self::Top => ffi::GES_TEXT_VALIGN_TOP,
595 Self::Position => ffi::GES_TEXT_VALIGN_POSITION,
596 Self::Center => ffi::GES_TEXT_VALIGN_CENTER,
597 Self::Absolute => ffi::GES_TEXT_VALIGN_ABSOLUTE,
598 Self::__Unknown(value) => value,
599 }
600 }
601}
602
603#[doc(hidden)]
604impl FromGlib<ffi::GESTextVAlign> for TextVAlign {
605 #[inline]
606 unsafe fn from_glib(value: ffi::GESTextVAlign) -> Self {
607 skip_assert_initialized!();
608
609 match value {
610 ffi::GES_TEXT_VALIGN_BASELINE => Self::Baseline,
611 ffi::GES_TEXT_VALIGN_BOTTOM => Self::Bottom,
612 ffi::GES_TEXT_VALIGN_TOP => Self::Top,
613 ffi::GES_TEXT_VALIGN_POSITION => Self::Position,
614 ffi::GES_TEXT_VALIGN_CENTER => Self::Center,
615 ffi::GES_TEXT_VALIGN_ABSOLUTE => Self::Absolute,
616 value => Self::__Unknown(value),
617 }
618 }
619}
620
621impl StaticType for TextVAlign {
622 #[inline]
623 #[doc(alias = "ges_text_valign_get_type")]
624 fn static_type() -> glib::Type {
625 unsafe { from_glib(ffi::ges_text_valign_get_type()) }
626 }
627}
628
629impl glib::HasParamSpec for TextVAlign {
630 type ParamSpec = glib::ParamSpecEnum;
631 type SetValue = Self;
632 type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
633
634 fn param_spec_builder() -> Self::BuilderFn {
635 Self::ParamSpec::builder_with_default
636 }
637}
638
639impl glib::value::ValueType for TextVAlign {
640 type Type = Self;
641}
642
643unsafe impl<'a> glib::value::FromValue<'a> for TextVAlign {
644 type Checker = glib::value::GenericValueTypeChecker<Self>;
645
646 #[inline]
647 unsafe fn from_value(value: &'a glib::Value) -> Self {
648 skip_assert_initialized!();
649 unsafe { from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0)) }
650 }
651}
652
653impl ToValue for TextVAlign {
654 #[inline]
655 fn to_value(&self) -> glib::Value {
656 let mut value = glib::Value::for_value_type::<Self>();
657 unsafe {
658 glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
659 }
660 value
661 }
662
663 #[inline]
664 fn value_type(&self) -> glib::Type {
665 Self::static_type()
666 }
667}
668
669impl From<TextVAlign> for glib::Value {
670 #[inline]
671 fn from(v: TextVAlign) -> Self {
672 skip_assert_initialized!();
673 ToValue::to_value(&v)
674 }
675}
676
677#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
678#[non_exhaustive]
679#[doc(alias = "GESVideoStandardTransitionType")]
680pub enum VideoStandardTransitionType {
681 #[doc(alias = "GES_VIDEO_STANDARD_TRANSITION_TYPE_NONE")]
682 None,
683 #[doc(alias = "GES_VIDEO_STANDARD_TRANSITION_TYPE_BAR_WIPE_LR")]
684 BarWipeLr,
685 #[doc(alias = "GES_VIDEO_STANDARD_TRANSITION_TYPE_BAR_WIPE_TB")]
686 BarWipeTb,
687 #[doc(alias = "GES_VIDEO_STANDARD_TRANSITION_TYPE_BOX_WIPE_TL")]
688 BoxWipeTl,
689 #[doc(alias = "GES_VIDEO_STANDARD_TRANSITION_TYPE_BOX_WIPE_TR")]
690 BoxWipeTr,
691 #[doc(alias = "GES_VIDEO_STANDARD_TRANSITION_TYPE_BOX_WIPE_BR")]
692 BoxWipeBr,
693 #[doc(alias = "GES_VIDEO_STANDARD_TRANSITION_TYPE_BOX_WIPE_BL")]
694 BoxWipeBl,
695 #[doc(alias = "GES_VIDEO_STANDARD_TRANSITION_TYPE_FOUR_BOX_WIPE_CI")]
696 FourBoxWipeCi,
697 #[doc(alias = "GES_VIDEO_STANDARD_TRANSITION_TYPE_FOUR_BOX_WIPE_CO")]
698 FourBoxWipeCo,
699 #[doc(alias = "GES_VIDEO_STANDARD_TRANSITION_TYPE_BARNDOOR_V")]
700 BarndoorV,
701 #[doc(alias = "GES_VIDEO_STANDARD_TRANSITION_TYPE_BARNDOOR_H")]
702 BarndoorH,
703 #[doc(alias = "GES_VIDEO_STANDARD_TRANSITION_TYPE_BOX_WIPE_TC")]
704 BoxWipeTc,
705 #[doc(alias = "GES_VIDEO_STANDARD_TRANSITION_TYPE_BOX_WIPE_RC")]
706 BoxWipeRc,
707 #[doc(alias = "GES_VIDEO_STANDARD_TRANSITION_TYPE_BOX_WIPE_BC")]
708 BoxWipeBc,
709 #[doc(alias = "GES_VIDEO_STANDARD_TRANSITION_TYPE_BOX_WIPE_LC")]
710 BoxWipeLc,
711 #[doc(alias = "GES_VIDEO_STANDARD_TRANSITION_TYPE_DIAGONAL_TL")]
712 DiagonalTl,
713 #[doc(alias = "GES_VIDEO_STANDARD_TRANSITION_TYPE_DIAGONAL_TR")]
714 DiagonalTr,
715 #[doc(alias = "GES_VIDEO_STANDARD_TRANSITION_TYPE_BOWTIE_V")]
716 BowtieV,
717 #[doc(alias = "GES_VIDEO_STANDARD_TRANSITION_TYPE_BOWTIE_H")]
718 BowtieH,
719 #[doc(alias = "GES_VIDEO_STANDARD_TRANSITION_TYPE_BARNDOOR_DBL")]
720 BarndoorDbl,
721 #[doc(alias = "GES_VIDEO_STANDARD_TRANSITION_TYPE_BARNDOOR_DTL")]
722 BarndoorDtl,
723 #[doc(alias = "GES_VIDEO_STANDARD_TRANSITION_TYPE_MISC_DIAGONAL_DBD")]
724 MiscDiagonalDbd,
725 #[doc(alias = "GES_VIDEO_STANDARD_TRANSITION_TYPE_MISC_DIAGONAL_DD")]
726 MiscDiagonalDd,
727 #[doc(alias = "GES_VIDEO_STANDARD_TRANSITION_TYPE_VEE_D")]
728 VeeD,
729 #[doc(alias = "GES_VIDEO_STANDARD_TRANSITION_TYPE_VEE_L")]
730 VeeL,
731 #[doc(alias = "GES_VIDEO_STANDARD_TRANSITION_TYPE_VEE_U")]
732 VeeU,
733 #[doc(alias = "GES_VIDEO_STANDARD_TRANSITION_TYPE_VEE_R")]
734 VeeR,
735 #[doc(alias = "GES_VIDEO_STANDARD_TRANSITION_TYPE_BARNVEE_D")]
736 BarnveeD,
737 #[doc(alias = "GES_VIDEO_STANDARD_TRANSITION_TYPE_BARNVEE_L")]
738 BarnveeL,
739 #[doc(alias = "GES_VIDEO_STANDARD_TRANSITION_TYPE_BARNVEE_U")]
740 BarnveeU,
741 #[doc(alias = "GES_VIDEO_STANDARD_TRANSITION_TYPE_BARNVEE_R")]
742 BarnveeR,
743 #[doc(alias = "GES_VIDEO_STANDARD_TRANSITION_TYPE_IRIS_RECT")]
744 IrisRect,
745 #[doc(alias = "GES_VIDEO_STANDARD_TRANSITION_TYPE_CLOCK_CW12")]
746 ClockCw12,
747 #[doc(alias = "GES_VIDEO_STANDARD_TRANSITION_TYPE_CLOCK_CW3")]
748 ClockCw3,
749 #[doc(alias = "GES_VIDEO_STANDARD_TRANSITION_TYPE_CLOCK_CW6")]
750 ClockCw6,
751 #[doc(alias = "GES_VIDEO_STANDARD_TRANSITION_TYPE_CLOCK_CW9")]
752 ClockCw9,
753 #[doc(alias = "GES_VIDEO_STANDARD_TRANSITION_TYPE_PINWHEEL_TBV")]
754 PinwheelTbv,
755 #[doc(alias = "GES_VIDEO_STANDARD_TRANSITION_TYPE_PINWHEEL_TBH")]
756 PinwheelTbh,
757 #[doc(alias = "GES_VIDEO_STANDARD_TRANSITION_TYPE_PINWHEEL_FB")]
758 PinwheelFb,
759 #[doc(alias = "GES_VIDEO_STANDARD_TRANSITION_TYPE_FAN_CT")]
760 FanCt,
761 #[doc(alias = "GES_VIDEO_STANDARD_TRANSITION_TYPE_FAN_CR")]
762 FanCr,
763 #[doc(alias = "GES_VIDEO_STANDARD_TRANSITION_TYPE_DOUBLEFAN_FOV")]
764 DoublefanFov,
765 #[doc(alias = "GES_VIDEO_STANDARD_TRANSITION_TYPE_DOUBLEFAN_FOH")]
766 DoublefanFoh,
767 #[doc(alias = "GES_VIDEO_STANDARD_TRANSITION_TYPE_SINGLESWEEP_CWT")]
768 SinglesweepCwt,
769 #[doc(alias = "GES_VIDEO_STANDARD_TRANSITION_TYPE_SINGLESWEEP_CWR")]
770 SinglesweepCwr,
771 #[doc(alias = "GES_VIDEO_STANDARD_TRANSITION_TYPE_SINGLESWEEP_CWB")]
772 SinglesweepCwb,
773 #[doc(alias = "GES_VIDEO_STANDARD_TRANSITION_TYPE_SINGLESWEEP_CWL")]
774 SinglesweepCwl,
775 #[doc(alias = "GES_VIDEO_STANDARD_TRANSITION_TYPE_DOUBLESWEEP_PV")]
776 DoublesweepPv,
777 #[doc(alias = "GES_VIDEO_STANDARD_TRANSITION_TYPE_DOUBLESWEEP_PD")]
778 DoublesweepPd,
779 #[doc(alias = "GES_VIDEO_STANDARD_TRANSITION_TYPE_DOUBLESWEEP_OV")]
780 DoublesweepOv,
781 #[doc(alias = "GES_VIDEO_STANDARD_TRANSITION_TYPE_DOUBLESWEEP_OH")]
782 DoublesweepOh,
783 #[doc(alias = "GES_VIDEO_STANDARD_TRANSITION_TYPE_FAN_T")]
784 FanT,
785 #[doc(alias = "GES_VIDEO_STANDARD_TRANSITION_TYPE_FAN_R")]
786 FanR,
787 #[doc(alias = "GES_VIDEO_STANDARD_TRANSITION_TYPE_FAN_B")]
788 FanB,
789 #[doc(alias = "GES_VIDEO_STANDARD_TRANSITION_TYPE_FAN_L")]
790 FanL,
791 #[doc(alias = "GES_VIDEO_STANDARD_TRANSITION_TYPE_DOUBLEFAN_FIV")]
792 DoublefanFiv,
793 #[doc(alias = "GES_VIDEO_STANDARD_TRANSITION_TYPE_DOUBLEFAN_FIH")]
794 DoublefanFih,
795 #[doc(alias = "GES_VIDEO_STANDARD_TRANSITION_TYPE_SINGLESWEEP_CWTL")]
796 SinglesweepCwtl,
797 #[doc(alias = "GES_VIDEO_STANDARD_TRANSITION_TYPE_SINGLESWEEP_CWBL")]
798 SinglesweepCwbl,
799 #[doc(alias = "GES_VIDEO_STANDARD_TRANSITION_TYPE_SINGLESWEEP_CWBR")]
800 SinglesweepCwbr,
801 #[doc(alias = "GES_VIDEO_STANDARD_TRANSITION_TYPE_SINGLESWEEP_CWTR")]
802 SinglesweepCwtr,
803 #[doc(alias = "GES_VIDEO_STANDARD_TRANSITION_TYPE_DOUBLESWEEP_PDTL")]
804 DoublesweepPdtl,
805 #[doc(alias = "GES_VIDEO_STANDARD_TRANSITION_TYPE_DOUBLESWEEP_PDBL")]
806 DoublesweepPdbl,
807 #[doc(alias = "GES_VIDEO_STANDARD_TRANSITION_TYPE_SALOONDOOR_T")]
808 SaloondoorT,
809 #[doc(alias = "GES_VIDEO_STANDARD_TRANSITION_TYPE_SALOONDOOR_L")]
810 SaloondoorL,
811 #[doc(alias = "GES_VIDEO_STANDARD_TRANSITION_TYPE_SALOONDOOR_B")]
812 SaloondoorB,
813 #[doc(alias = "GES_VIDEO_STANDARD_TRANSITION_TYPE_SALOONDOOR_R")]
814 SaloondoorR,
815 #[doc(alias = "GES_VIDEO_STANDARD_TRANSITION_TYPE_WINDSHIELD_R")]
816 WindshieldR,
817 #[doc(alias = "GES_VIDEO_STANDARD_TRANSITION_TYPE_WINDSHIELD_U")]
818 WindshieldU,
819 #[doc(alias = "GES_VIDEO_STANDARD_TRANSITION_TYPE_WINDSHIELD_V")]
820 WindshieldV,
821 #[doc(alias = "GES_VIDEO_STANDARD_TRANSITION_TYPE_WINDSHIELD_H")]
822 WindshieldH,
823 #[doc(alias = "GES_VIDEO_STANDARD_TRANSITION_TYPE_CROSSFADE")]
824 Crossfade,
825 #[cfg(feature = "v1_22")]
826 #[cfg_attr(docsrs, doc(cfg(feature = "v1_22")))]
827 #[doc(alias = "GES_VIDEO_STANDARD_TRANSITION_TYPE_FADE_IN")]
828 FadeIn,
829 #[doc(hidden)]
830 __Unknown(i32),
831}
832
833#[doc(hidden)]
834impl IntoGlib for VideoStandardTransitionType {
835 type GlibType = ffi::GESVideoStandardTransitionType;
836
837 fn into_glib(self) -> ffi::GESVideoStandardTransitionType {
838 match self {
839 Self::None => ffi::GES_VIDEO_STANDARD_TRANSITION_TYPE_NONE,
840 Self::BarWipeLr => ffi::GES_VIDEO_STANDARD_TRANSITION_TYPE_BAR_WIPE_LR,
841 Self::BarWipeTb => ffi::GES_VIDEO_STANDARD_TRANSITION_TYPE_BAR_WIPE_TB,
842 Self::BoxWipeTl => ffi::GES_VIDEO_STANDARD_TRANSITION_TYPE_BOX_WIPE_TL,
843 Self::BoxWipeTr => ffi::GES_VIDEO_STANDARD_TRANSITION_TYPE_BOX_WIPE_TR,
844 Self::BoxWipeBr => ffi::GES_VIDEO_STANDARD_TRANSITION_TYPE_BOX_WIPE_BR,
845 Self::BoxWipeBl => ffi::GES_VIDEO_STANDARD_TRANSITION_TYPE_BOX_WIPE_BL,
846 Self::FourBoxWipeCi => ffi::GES_VIDEO_STANDARD_TRANSITION_TYPE_FOUR_BOX_WIPE_CI,
847 Self::FourBoxWipeCo => ffi::GES_VIDEO_STANDARD_TRANSITION_TYPE_FOUR_BOX_WIPE_CO,
848 Self::BarndoorV => ffi::GES_VIDEO_STANDARD_TRANSITION_TYPE_BARNDOOR_V,
849 Self::BarndoorH => ffi::GES_VIDEO_STANDARD_TRANSITION_TYPE_BARNDOOR_H,
850 Self::BoxWipeTc => ffi::GES_VIDEO_STANDARD_TRANSITION_TYPE_BOX_WIPE_TC,
851 Self::BoxWipeRc => ffi::GES_VIDEO_STANDARD_TRANSITION_TYPE_BOX_WIPE_RC,
852 Self::BoxWipeBc => ffi::GES_VIDEO_STANDARD_TRANSITION_TYPE_BOX_WIPE_BC,
853 Self::BoxWipeLc => ffi::GES_VIDEO_STANDARD_TRANSITION_TYPE_BOX_WIPE_LC,
854 Self::DiagonalTl => ffi::GES_VIDEO_STANDARD_TRANSITION_TYPE_DIAGONAL_TL,
855 Self::DiagonalTr => ffi::GES_VIDEO_STANDARD_TRANSITION_TYPE_DIAGONAL_TR,
856 Self::BowtieV => ffi::GES_VIDEO_STANDARD_TRANSITION_TYPE_BOWTIE_V,
857 Self::BowtieH => ffi::GES_VIDEO_STANDARD_TRANSITION_TYPE_BOWTIE_H,
858 Self::BarndoorDbl => ffi::GES_VIDEO_STANDARD_TRANSITION_TYPE_BARNDOOR_DBL,
859 Self::BarndoorDtl => ffi::GES_VIDEO_STANDARD_TRANSITION_TYPE_BARNDOOR_DTL,
860 Self::MiscDiagonalDbd => ffi::GES_VIDEO_STANDARD_TRANSITION_TYPE_MISC_DIAGONAL_DBD,
861 Self::MiscDiagonalDd => ffi::GES_VIDEO_STANDARD_TRANSITION_TYPE_MISC_DIAGONAL_DD,
862 Self::VeeD => ffi::GES_VIDEO_STANDARD_TRANSITION_TYPE_VEE_D,
863 Self::VeeL => ffi::GES_VIDEO_STANDARD_TRANSITION_TYPE_VEE_L,
864 Self::VeeU => ffi::GES_VIDEO_STANDARD_TRANSITION_TYPE_VEE_U,
865 Self::VeeR => ffi::GES_VIDEO_STANDARD_TRANSITION_TYPE_VEE_R,
866 Self::BarnveeD => ffi::GES_VIDEO_STANDARD_TRANSITION_TYPE_BARNVEE_D,
867 Self::BarnveeL => ffi::GES_VIDEO_STANDARD_TRANSITION_TYPE_BARNVEE_L,
868 Self::BarnveeU => ffi::GES_VIDEO_STANDARD_TRANSITION_TYPE_BARNVEE_U,
869 Self::BarnveeR => ffi::GES_VIDEO_STANDARD_TRANSITION_TYPE_BARNVEE_R,
870 Self::IrisRect => ffi::GES_VIDEO_STANDARD_TRANSITION_TYPE_IRIS_RECT,
871 Self::ClockCw12 => ffi::GES_VIDEO_STANDARD_TRANSITION_TYPE_CLOCK_CW12,
872 Self::ClockCw3 => ffi::GES_VIDEO_STANDARD_TRANSITION_TYPE_CLOCK_CW3,
873 Self::ClockCw6 => ffi::GES_VIDEO_STANDARD_TRANSITION_TYPE_CLOCK_CW6,
874 Self::ClockCw9 => ffi::GES_VIDEO_STANDARD_TRANSITION_TYPE_CLOCK_CW9,
875 Self::PinwheelTbv => ffi::GES_VIDEO_STANDARD_TRANSITION_TYPE_PINWHEEL_TBV,
876 Self::PinwheelTbh => ffi::GES_VIDEO_STANDARD_TRANSITION_TYPE_PINWHEEL_TBH,
877 Self::PinwheelFb => ffi::GES_VIDEO_STANDARD_TRANSITION_TYPE_PINWHEEL_FB,
878 Self::FanCt => ffi::GES_VIDEO_STANDARD_TRANSITION_TYPE_FAN_CT,
879 Self::FanCr => ffi::GES_VIDEO_STANDARD_TRANSITION_TYPE_FAN_CR,
880 Self::DoublefanFov => ffi::GES_VIDEO_STANDARD_TRANSITION_TYPE_DOUBLEFAN_FOV,
881 Self::DoublefanFoh => ffi::GES_VIDEO_STANDARD_TRANSITION_TYPE_DOUBLEFAN_FOH,
882 Self::SinglesweepCwt => ffi::GES_VIDEO_STANDARD_TRANSITION_TYPE_SINGLESWEEP_CWT,
883 Self::SinglesweepCwr => ffi::GES_VIDEO_STANDARD_TRANSITION_TYPE_SINGLESWEEP_CWR,
884 Self::SinglesweepCwb => ffi::GES_VIDEO_STANDARD_TRANSITION_TYPE_SINGLESWEEP_CWB,
885 Self::SinglesweepCwl => ffi::GES_VIDEO_STANDARD_TRANSITION_TYPE_SINGLESWEEP_CWL,
886 Self::DoublesweepPv => ffi::GES_VIDEO_STANDARD_TRANSITION_TYPE_DOUBLESWEEP_PV,
887 Self::DoublesweepPd => ffi::GES_VIDEO_STANDARD_TRANSITION_TYPE_DOUBLESWEEP_PD,
888 Self::DoublesweepOv => ffi::GES_VIDEO_STANDARD_TRANSITION_TYPE_DOUBLESWEEP_OV,
889 Self::DoublesweepOh => ffi::GES_VIDEO_STANDARD_TRANSITION_TYPE_DOUBLESWEEP_OH,
890 Self::FanT => ffi::GES_VIDEO_STANDARD_TRANSITION_TYPE_FAN_T,
891 Self::FanR => ffi::GES_VIDEO_STANDARD_TRANSITION_TYPE_FAN_R,
892 Self::FanB => ffi::GES_VIDEO_STANDARD_TRANSITION_TYPE_FAN_B,
893 Self::FanL => ffi::GES_VIDEO_STANDARD_TRANSITION_TYPE_FAN_L,
894 Self::DoublefanFiv => ffi::GES_VIDEO_STANDARD_TRANSITION_TYPE_DOUBLEFAN_FIV,
895 Self::DoublefanFih => ffi::GES_VIDEO_STANDARD_TRANSITION_TYPE_DOUBLEFAN_FIH,
896 Self::SinglesweepCwtl => ffi::GES_VIDEO_STANDARD_TRANSITION_TYPE_SINGLESWEEP_CWTL,
897 Self::SinglesweepCwbl => ffi::GES_VIDEO_STANDARD_TRANSITION_TYPE_SINGLESWEEP_CWBL,
898 Self::SinglesweepCwbr => ffi::GES_VIDEO_STANDARD_TRANSITION_TYPE_SINGLESWEEP_CWBR,
899 Self::SinglesweepCwtr => ffi::GES_VIDEO_STANDARD_TRANSITION_TYPE_SINGLESWEEP_CWTR,
900 Self::DoublesweepPdtl => ffi::GES_VIDEO_STANDARD_TRANSITION_TYPE_DOUBLESWEEP_PDTL,
901 Self::DoublesweepPdbl => ffi::GES_VIDEO_STANDARD_TRANSITION_TYPE_DOUBLESWEEP_PDBL,
902 Self::SaloondoorT => ffi::GES_VIDEO_STANDARD_TRANSITION_TYPE_SALOONDOOR_T,
903 Self::SaloondoorL => ffi::GES_VIDEO_STANDARD_TRANSITION_TYPE_SALOONDOOR_L,
904 Self::SaloondoorB => ffi::GES_VIDEO_STANDARD_TRANSITION_TYPE_SALOONDOOR_B,
905 Self::SaloondoorR => ffi::GES_VIDEO_STANDARD_TRANSITION_TYPE_SALOONDOOR_R,
906 Self::WindshieldR => ffi::GES_VIDEO_STANDARD_TRANSITION_TYPE_WINDSHIELD_R,
907 Self::WindshieldU => ffi::GES_VIDEO_STANDARD_TRANSITION_TYPE_WINDSHIELD_U,
908 Self::WindshieldV => ffi::GES_VIDEO_STANDARD_TRANSITION_TYPE_WINDSHIELD_V,
909 Self::WindshieldH => ffi::GES_VIDEO_STANDARD_TRANSITION_TYPE_WINDSHIELD_H,
910 Self::Crossfade => ffi::GES_VIDEO_STANDARD_TRANSITION_TYPE_CROSSFADE,
911 #[cfg(feature = "v1_22")]
912 Self::FadeIn => ffi::GES_VIDEO_STANDARD_TRANSITION_TYPE_FADE_IN,
913 Self::__Unknown(value) => value,
914 }
915 }
916}
917
918#[doc(hidden)]
919impl FromGlib<ffi::GESVideoStandardTransitionType> for VideoStandardTransitionType {
920 unsafe fn from_glib(value: ffi::GESVideoStandardTransitionType) -> Self {
921 skip_assert_initialized!();
922
923 match value {
924 ffi::GES_VIDEO_STANDARD_TRANSITION_TYPE_NONE => Self::None,
925 ffi::GES_VIDEO_STANDARD_TRANSITION_TYPE_BAR_WIPE_LR => Self::BarWipeLr,
926 ffi::GES_VIDEO_STANDARD_TRANSITION_TYPE_BAR_WIPE_TB => Self::BarWipeTb,
927 ffi::GES_VIDEO_STANDARD_TRANSITION_TYPE_BOX_WIPE_TL => Self::BoxWipeTl,
928 ffi::GES_VIDEO_STANDARD_TRANSITION_TYPE_BOX_WIPE_TR => Self::BoxWipeTr,
929 ffi::GES_VIDEO_STANDARD_TRANSITION_TYPE_BOX_WIPE_BR => Self::BoxWipeBr,
930 ffi::GES_VIDEO_STANDARD_TRANSITION_TYPE_BOX_WIPE_BL => Self::BoxWipeBl,
931 ffi::GES_VIDEO_STANDARD_TRANSITION_TYPE_FOUR_BOX_WIPE_CI => Self::FourBoxWipeCi,
932 ffi::GES_VIDEO_STANDARD_TRANSITION_TYPE_FOUR_BOX_WIPE_CO => Self::FourBoxWipeCo,
933 ffi::GES_VIDEO_STANDARD_TRANSITION_TYPE_BARNDOOR_V => Self::BarndoorV,
934 ffi::GES_VIDEO_STANDARD_TRANSITION_TYPE_BARNDOOR_H => Self::BarndoorH,
935 ffi::GES_VIDEO_STANDARD_TRANSITION_TYPE_BOX_WIPE_TC => Self::BoxWipeTc,
936 ffi::GES_VIDEO_STANDARD_TRANSITION_TYPE_BOX_WIPE_RC => Self::BoxWipeRc,
937 ffi::GES_VIDEO_STANDARD_TRANSITION_TYPE_BOX_WIPE_BC => Self::BoxWipeBc,
938 ffi::GES_VIDEO_STANDARD_TRANSITION_TYPE_BOX_WIPE_LC => Self::BoxWipeLc,
939 ffi::GES_VIDEO_STANDARD_TRANSITION_TYPE_DIAGONAL_TL => Self::DiagonalTl,
940 ffi::GES_VIDEO_STANDARD_TRANSITION_TYPE_DIAGONAL_TR => Self::DiagonalTr,
941 ffi::GES_VIDEO_STANDARD_TRANSITION_TYPE_BOWTIE_V => Self::BowtieV,
942 ffi::GES_VIDEO_STANDARD_TRANSITION_TYPE_BOWTIE_H => Self::BowtieH,
943 ffi::GES_VIDEO_STANDARD_TRANSITION_TYPE_BARNDOOR_DBL => Self::BarndoorDbl,
944 ffi::GES_VIDEO_STANDARD_TRANSITION_TYPE_BARNDOOR_DTL => Self::BarndoorDtl,
945 ffi::GES_VIDEO_STANDARD_TRANSITION_TYPE_MISC_DIAGONAL_DBD => Self::MiscDiagonalDbd,
946 ffi::GES_VIDEO_STANDARD_TRANSITION_TYPE_MISC_DIAGONAL_DD => Self::MiscDiagonalDd,
947 ffi::GES_VIDEO_STANDARD_TRANSITION_TYPE_VEE_D => Self::VeeD,
948 ffi::GES_VIDEO_STANDARD_TRANSITION_TYPE_VEE_L => Self::VeeL,
949 ffi::GES_VIDEO_STANDARD_TRANSITION_TYPE_VEE_U => Self::VeeU,
950 ffi::GES_VIDEO_STANDARD_TRANSITION_TYPE_VEE_R => Self::VeeR,
951 ffi::GES_VIDEO_STANDARD_TRANSITION_TYPE_BARNVEE_D => Self::BarnveeD,
952 ffi::GES_VIDEO_STANDARD_TRANSITION_TYPE_BARNVEE_L => Self::BarnveeL,
953 ffi::GES_VIDEO_STANDARD_TRANSITION_TYPE_BARNVEE_U => Self::BarnveeU,
954 ffi::GES_VIDEO_STANDARD_TRANSITION_TYPE_BARNVEE_R => Self::BarnveeR,
955 ffi::GES_VIDEO_STANDARD_TRANSITION_TYPE_IRIS_RECT => Self::IrisRect,
956 ffi::GES_VIDEO_STANDARD_TRANSITION_TYPE_CLOCK_CW12 => Self::ClockCw12,
957 ffi::GES_VIDEO_STANDARD_TRANSITION_TYPE_CLOCK_CW3 => Self::ClockCw3,
958 ffi::GES_VIDEO_STANDARD_TRANSITION_TYPE_CLOCK_CW6 => Self::ClockCw6,
959 ffi::GES_VIDEO_STANDARD_TRANSITION_TYPE_CLOCK_CW9 => Self::ClockCw9,
960 ffi::GES_VIDEO_STANDARD_TRANSITION_TYPE_PINWHEEL_TBV => Self::PinwheelTbv,
961 ffi::GES_VIDEO_STANDARD_TRANSITION_TYPE_PINWHEEL_TBH => Self::PinwheelTbh,
962 ffi::GES_VIDEO_STANDARD_TRANSITION_TYPE_PINWHEEL_FB => Self::PinwheelFb,
963 ffi::GES_VIDEO_STANDARD_TRANSITION_TYPE_FAN_CT => Self::FanCt,
964 ffi::GES_VIDEO_STANDARD_TRANSITION_TYPE_FAN_CR => Self::FanCr,
965 ffi::GES_VIDEO_STANDARD_TRANSITION_TYPE_DOUBLEFAN_FOV => Self::DoublefanFov,
966 ffi::GES_VIDEO_STANDARD_TRANSITION_TYPE_DOUBLEFAN_FOH => Self::DoublefanFoh,
967 ffi::GES_VIDEO_STANDARD_TRANSITION_TYPE_SINGLESWEEP_CWT => Self::SinglesweepCwt,
968 ffi::GES_VIDEO_STANDARD_TRANSITION_TYPE_SINGLESWEEP_CWR => Self::SinglesweepCwr,
969 ffi::GES_VIDEO_STANDARD_TRANSITION_TYPE_SINGLESWEEP_CWB => Self::SinglesweepCwb,
970 ffi::GES_VIDEO_STANDARD_TRANSITION_TYPE_SINGLESWEEP_CWL => Self::SinglesweepCwl,
971 ffi::GES_VIDEO_STANDARD_TRANSITION_TYPE_DOUBLESWEEP_PV => Self::DoublesweepPv,
972 ffi::GES_VIDEO_STANDARD_TRANSITION_TYPE_DOUBLESWEEP_PD => Self::DoublesweepPd,
973 ffi::GES_VIDEO_STANDARD_TRANSITION_TYPE_DOUBLESWEEP_OV => Self::DoublesweepOv,
974 ffi::GES_VIDEO_STANDARD_TRANSITION_TYPE_DOUBLESWEEP_OH => Self::DoublesweepOh,
975 ffi::GES_VIDEO_STANDARD_TRANSITION_TYPE_FAN_T => Self::FanT,
976 ffi::GES_VIDEO_STANDARD_TRANSITION_TYPE_FAN_R => Self::FanR,
977 ffi::GES_VIDEO_STANDARD_TRANSITION_TYPE_FAN_B => Self::FanB,
978 ffi::GES_VIDEO_STANDARD_TRANSITION_TYPE_FAN_L => Self::FanL,
979 ffi::GES_VIDEO_STANDARD_TRANSITION_TYPE_DOUBLEFAN_FIV => Self::DoublefanFiv,
980 ffi::GES_VIDEO_STANDARD_TRANSITION_TYPE_DOUBLEFAN_FIH => Self::DoublefanFih,
981 ffi::GES_VIDEO_STANDARD_TRANSITION_TYPE_SINGLESWEEP_CWTL => Self::SinglesweepCwtl,
982 ffi::GES_VIDEO_STANDARD_TRANSITION_TYPE_SINGLESWEEP_CWBL => Self::SinglesweepCwbl,
983 ffi::GES_VIDEO_STANDARD_TRANSITION_TYPE_SINGLESWEEP_CWBR => Self::SinglesweepCwbr,
984 ffi::GES_VIDEO_STANDARD_TRANSITION_TYPE_SINGLESWEEP_CWTR => Self::SinglesweepCwtr,
985 ffi::GES_VIDEO_STANDARD_TRANSITION_TYPE_DOUBLESWEEP_PDTL => Self::DoublesweepPdtl,
986 ffi::GES_VIDEO_STANDARD_TRANSITION_TYPE_DOUBLESWEEP_PDBL => Self::DoublesweepPdbl,
987 ffi::GES_VIDEO_STANDARD_TRANSITION_TYPE_SALOONDOOR_T => Self::SaloondoorT,
988 ffi::GES_VIDEO_STANDARD_TRANSITION_TYPE_SALOONDOOR_L => Self::SaloondoorL,
989 ffi::GES_VIDEO_STANDARD_TRANSITION_TYPE_SALOONDOOR_B => Self::SaloondoorB,
990 ffi::GES_VIDEO_STANDARD_TRANSITION_TYPE_SALOONDOOR_R => Self::SaloondoorR,
991 ffi::GES_VIDEO_STANDARD_TRANSITION_TYPE_WINDSHIELD_R => Self::WindshieldR,
992 ffi::GES_VIDEO_STANDARD_TRANSITION_TYPE_WINDSHIELD_U => Self::WindshieldU,
993 ffi::GES_VIDEO_STANDARD_TRANSITION_TYPE_WINDSHIELD_V => Self::WindshieldV,
994 ffi::GES_VIDEO_STANDARD_TRANSITION_TYPE_WINDSHIELD_H => Self::WindshieldH,
995 ffi::GES_VIDEO_STANDARD_TRANSITION_TYPE_CROSSFADE => Self::Crossfade,
996 #[cfg(feature = "v1_22")]
997 ffi::GES_VIDEO_STANDARD_TRANSITION_TYPE_FADE_IN => Self::FadeIn,
998 value => Self::__Unknown(value),
999 }
1000 }
1001}
1002
1003impl StaticType for VideoStandardTransitionType {
1004 #[inline]
1005 #[doc(alias = "ges_video_standard_transition_type_get_type")]
1006 fn static_type() -> glib::Type {
1007 unsafe { from_glib(ffi::ges_video_standard_transition_type_get_type()) }
1008 }
1009}
1010
1011impl glib::HasParamSpec for VideoStandardTransitionType {
1012 type ParamSpec = glib::ParamSpecEnum;
1013 type SetValue = Self;
1014 type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
1015
1016 fn param_spec_builder() -> Self::BuilderFn {
1017 Self::ParamSpec::builder_with_default
1018 }
1019}
1020
1021impl glib::value::ValueType for VideoStandardTransitionType {
1022 type Type = Self;
1023}
1024
1025unsafe impl<'a> glib::value::FromValue<'a> for VideoStandardTransitionType {
1026 type Checker = glib::value::GenericValueTypeChecker<Self>;
1027
1028 #[inline]
1029 unsafe fn from_value(value: &'a glib::Value) -> Self {
1030 skip_assert_initialized!();
1031 unsafe { from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0)) }
1032 }
1033}
1034
1035impl ToValue for VideoStandardTransitionType {
1036 #[inline]
1037 fn to_value(&self) -> glib::Value {
1038 let mut value = glib::Value::for_value_type::<Self>();
1039 unsafe {
1040 glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
1041 }
1042 value
1043 }
1044
1045 #[inline]
1046 fn value_type(&self) -> glib::Type {
1047 Self::static_type()
1048 }
1049}
1050
1051impl From<VideoStandardTransitionType> for glib::Value {
1052 #[inline]
1053 fn from(v: VideoStandardTransitionType) -> Self {
1054 skip_assert_initialized!();
1055 ToValue::to_value(&v)
1056 }
1057}
1058
1059#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
1060#[non_exhaustive]
1061#[doc(alias = "GESVideoTestPattern")]
1062pub enum VideoTestPattern {
1063 #[doc(alias = "GES_VIDEO_TEST_PATTERN_SMPTE")]
1064 Smpte,
1065 #[doc(alias = "GES_VIDEO_TEST_PATTERN_SNOW")]
1066 Snow,
1067 #[doc(alias = "GES_VIDEO_TEST_PATTERN_BLACK")]
1068 Black,
1069 #[doc(alias = "GES_VIDEO_TEST_PATTERN_WHITE")]
1070 White,
1071 #[doc(alias = "GES_VIDEO_TEST_PATTERN_RED")]
1072 Red,
1073 #[doc(alias = "GES_VIDEO_TEST_PATTERN_GREEN")]
1074 Green,
1075 #[doc(alias = "GES_VIDEO_TEST_PATTERN_BLUE")]
1076 Blue,
1077 #[doc(alias = "GES_VIDEO_TEST_PATTERN_CHECKERS1")]
1078 Checkers1,
1079 #[doc(alias = "GES_VIDEO_TEST_PATTERN_CHECKERS2")]
1080 Checkers2,
1081 #[doc(alias = "GES_VIDEO_TEST_PATTERN_CHECKERS4")]
1082 Checkers4,
1083 #[doc(alias = "GES_VIDEO_TEST_PATTERN_CHECKERS8")]
1084 Checkers8,
1085 #[doc(alias = "GES_VIDEO_TEST_PATTERN_CIRCULAR")]
1086 Circular,
1087 #[doc(alias = "GES_VIDEO_TEST_PATTERN_BLINK")]
1088 Blink,
1089 #[doc(alias = "GES_VIDEO_TEST_PATTERN_SMPTE75")]
1090 Smpte75,
1091 #[doc(alias = "GES_VIDEO_TEST_ZONE_PLATE")]
1092 ZonePlate,
1093 #[doc(alias = "GES_VIDEO_TEST_GAMUT")]
1094 Gamut,
1095 #[doc(alias = "GES_VIDEO_TEST_CHROMA_ZONE_PLATE")]
1096 ChromaZonePlate,
1097 #[doc(alias = "GES_VIDEO_TEST_PATTERN_SOLID")]
1098 SolidColor,
1099 #[doc(hidden)]
1100 __Unknown(i32),
1101}
1102
1103#[doc(hidden)]
1104impl IntoGlib for VideoTestPattern {
1105 type GlibType = ffi::GESVideoTestPattern;
1106
1107 fn into_glib(self) -> ffi::GESVideoTestPattern {
1108 match self {
1109 Self::Smpte => ffi::GES_VIDEO_TEST_PATTERN_SMPTE,
1110 Self::Snow => ffi::GES_VIDEO_TEST_PATTERN_SNOW,
1111 Self::Black => ffi::GES_VIDEO_TEST_PATTERN_BLACK,
1112 Self::White => ffi::GES_VIDEO_TEST_PATTERN_WHITE,
1113 Self::Red => ffi::GES_VIDEO_TEST_PATTERN_RED,
1114 Self::Green => ffi::GES_VIDEO_TEST_PATTERN_GREEN,
1115 Self::Blue => ffi::GES_VIDEO_TEST_PATTERN_BLUE,
1116 Self::Checkers1 => ffi::GES_VIDEO_TEST_PATTERN_CHECKERS1,
1117 Self::Checkers2 => ffi::GES_VIDEO_TEST_PATTERN_CHECKERS2,
1118 Self::Checkers4 => ffi::GES_VIDEO_TEST_PATTERN_CHECKERS4,
1119 Self::Checkers8 => ffi::GES_VIDEO_TEST_PATTERN_CHECKERS8,
1120 Self::Circular => ffi::GES_VIDEO_TEST_PATTERN_CIRCULAR,
1121 Self::Blink => ffi::GES_VIDEO_TEST_PATTERN_BLINK,
1122 Self::Smpte75 => ffi::GES_VIDEO_TEST_PATTERN_SMPTE75,
1123 Self::ZonePlate => ffi::GES_VIDEO_TEST_ZONE_PLATE,
1124 Self::Gamut => ffi::GES_VIDEO_TEST_GAMUT,
1125 Self::ChromaZonePlate => ffi::GES_VIDEO_TEST_CHROMA_ZONE_PLATE,
1126 Self::SolidColor => ffi::GES_VIDEO_TEST_PATTERN_SOLID,
1127 Self::__Unknown(value) => value,
1128 }
1129 }
1130}
1131
1132#[doc(hidden)]
1133impl FromGlib<ffi::GESVideoTestPattern> for VideoTestPattern {
1134 unsafe fn from_glib(value: ffi::GESVideoTestPattern) -> Self {
1135 skip_assert_initialized!();
1136
1137 match value {
1138 ffi::GES_VIDEO_TEST_PATTERN_SMPTE => Self::Smpte,
1139 ffi::GES_VIDEO_TEST_PATTERN_SNOW => Self::Snow,
1140 ffi::GES_VIDEO_TEST_PATTERN_BLACK => Self::Black,
1141 ffi::GES_VIDEO_TEST_PATTERN_WHITE => Self::White,
1142 ffi::GES_VIDEO_TEST_PATTERN_RED => Self::Red,
1143 ffi::GES_VIDEO_TEST_PATTERN_GREEN => Self::Green,
1144 ffi::GES_VIDEO_TEST_PATTERN_BLUE => Self::Blue,
1145 ffi::GES_VIDEO_TEST_PATTERN_CHECKERS1 => Self::Checkers1,
1146 ffi::GES_VIDEO_TEST_PATTERN_CHECKERS2 => Self::Checkers2,
1147 ffi::GES_VIDEO_TEST_PATTERN_CHECKERS4 => Self::Checkers4,
1148 ffi::GES_VIDEO_TEST_PATTERN_CHECKERS8 => Self::Checkers8,
1149 ffi::GES_VIDEO_TEST_PATTERN_CIRCULAR => Self::Circular,
1150 ffi::GES_VIDEO_TEST_PATTERN_BLINK => Self::Blink,
1151 ffi::GES_VIDEO_TEST_PATTERN_SMPTE75 => Self::Smpte75,
1152 ffi::GES_VIDEO_TEST_ZONE_PLATE => Self::ZonePlate,
1153 ffi::GES_VIDEO_TEST_GAMUT => Self::Gamut,
1154 ffi::GES_VIDEO_TEST_CHROMA_ZONE_PLATE => Self::ChromaZonePlate,
1155 ffi::GES_VIDEO_TEST_PATTERN_SOLID => Self::SolidColor,
1156 value => Self::__Unknown(value),
1157 }
1158 }
1159}
1160
1161impl StaticType for VideoTestPattern {
1162 #[inline]
1163 #[doc(alias = "ges_video_test_pattern_get_type")]
1164 fn static_type() -> glib::Type {
1165 unsafe { from_glib(ffi::ges_video_test_pattern_get_type()) }
1166 }
1167}
1168
1169impl glib::HasParamSpec for VideoTestPattern {
1170 type ParamSpec = glib::ParamSpecEnum;
1171 type SetValue = Self;
1172 type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
1173
1174 fn param_spec_builder() -> Self::BuilderFn {
1175 Self::ParamSpec::builder_with_default
1176 }
1177}
1178
1179impl glib::value::ValueType for VideoTestPattern {
1180 type Type = Self;
1181}
1182
1183unsafe impl<'a> glib::value::FromValue<'a> for VideoTestPattern {
1184 type Checker = glib::value::GenericValueTypeChecker<Self>;
1185
1186 #[inline]
1187 unsafe fn from_value(value: &'a glib::Value) -> Self {
1188 skip_assert_initialized!();
1189 unsafe { from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0)) }
1190 }
1191}
1192
1193impl ToValue for VideoTestPattern {
1194 #[inline]
1195 fn to_value(&self) -> glib::Value {
1196 let mut value = glib::Value::for_value_type::<Self>();
1197 unsafe {
1198 glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
1199 }
1200 value
1201 }
1202
1203 #[inline]
1204 fn value_type(&self) -> glib::Type {
1205 Self::static_type()
1206 }
1207}
1208
1209impl From<VideoTestPattern> for glib::Value {
1210 #[inline]
1211 fn from(v: VideoTestPattern) -> Self {
1212 skip_assert_initialized!();
1213 ToValue::to_value(&v)
1214 }
1215}