1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
// This file was generated by gir (https://github.com/gtk-rs/gir)
// from gir-files (https://github.com/gtk-rs/gir-files)
// DO NOT EDIT

use ges_sys;
use glib::translate::*;
use glib::value::FromValue;
use glib::value::FromValueOptional;
use glib::value::SetValue;
use glib::value::Value;
use glib::StaticType;
use glib::Type;
use gobject_sys;

/// The edges of an object contain in a `Timeline` or `Track`
#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
pub enum Edge {
    EdgeStart,
    EdgeEnd,
    EdgeNone,
    #[doc(hidden)]
    __Unknown(i32),
}

#[doc(hidden)]
impl ToGlib for Edge {
    type GlibType = ges_sys::GESEdge;

    fn to_glib(&self) -> ges_sys::GESEdge {
        match *self {
            Edge::EdgeStart => ges_sys::GES_EDGE_START,
            Edge::EdgeEnd => ges_sys::GES_EDGE_END,
            Edge::EdgeNone => ges_sys::GES_EDGE_NONE,
            Edge::__Unknown(value) => value,
        }
    }
}

#[doc(hidden)]
impl FromGlib<ges_sys::GESEdge> for Edge {
    fn from_glib(value: ges_sys::GESEdge) -> Self {
        skip_assert_initialized!();
        match value {
            0 => Edge::EdgeStart,
            1 => Edge::EdgeEnd,
            2 => Edge::EdgeNone,
            value => Edge::__Unknown(value),
        }
    }
}

impl StaticType for Edge {
    fn static_type() -> Type {
        unsafe { from_glib(ges_sys::ges_edge_get_type()) }
    }
}

impl<'a> FromValueOptional<'a> for Edge {
    unsafe fn from_value_optional(value: &Value) -> Option<Self> {
        Some(FromValue::from_value(value))
    }
}

impl<'a> FromValue<'a> for Edge {
    unsafe fn from_value(value: &Value) -> Self {
        from_glib(gobject_sys::g_value_get_enum(value.to_glib_none().0))
    }
}

impl SetValue for Edge {
    unsafe fn set_value(value: &mut Value, this: &Self) {
        gobject_sys::g_value_set_enum(value.to_glib_none_mut().0, this.to_glib())
    }
}

/// You can also find more explanation about the behaviour of those modes at:
/// <ulink url="http://pitivi.org/manual/trimming.html"> trim, ripple and roll`</ulink>`
/// and <ulink url="http://pitivi.org/manual/usingclips.html">clip management`</ulink>`.
#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
pub enum EditMode {
    EditNormal,
    EditRipple,
    EditRoll,
    EditTrim,
    EditSlide,
    #[doc(hidden)]
    __Unknown(i32),
}

#[doc(hidden)]
impl ToGlib for EditMode {
    type GlibType = ges_sys::GESEditMode;

    fn to_glib(&self) -> ges_sys::GESEditMode {
        match *self {
            EditMode::EditNormal => ges_sys::GES_EDIT_MODE_NORMAL,
            EditMode::EditRipple => ges_sys::GES_EDIT_MODE_RIPPLE,
            EditMode::EditRoll => ges_sys::GES_EDIT_MODE_ROLL,
            EditMode::EditTrim => ges_sys::GES_EDIT_MODE_TRIM,
            EditMode::EditSlide => ges_sys::GES_EDIT_MODE_SLIDE,
            EditMode::__Unknown(value) => value,
        }
    }
}

#[doc(hidden)]
impl FromGlib<ges_sys::GESEditMode> for EditMode {
    fn from_glib(value: ges_sys::GESEditMode) -> Self {
        skip_assert_initialized!();
        match value {
            0 => EditMode::EditNormal,
            1 => EditMode::EditRipple,
            2 => EditMode::EditRoll,
            3 => EditMode::EditTrim,
            4 => EditMode::EditSlide,
            value => EditMode::__Unknown(value),
        }
    }
}

impl StaticType for EditMode {
    fn static_type() -> Type {
        unsafe { from_glib(ges_sys::ges_edit_mode_get_type()) }
    }
}

impl<'a> FromValueOptional<'a> for EditMode {
    unsafe fn from_value_optional(value: &Value) -> Option<Self> {
        Some(FromValue::from_value(value))
    }
}

impl<'a> FromValue<'a> for EditMode {
    unsafe fn from_value(value: &Value) -> Self {
        from_glib(gobject_sys::g_value_get_enum(value.to_glib_none().0))
    }
}

impl SetValue for EditMode {
    unsafe fn set_value(value: &mut Value, this: &Self) {
        gobject_sys::g_value_set_enum(value.to_glib_none_mut().0, this.to_glib())
    }
}