-- | Copyright  : Will Thompson and Iñaki García Etxebarria
-- License    : LGPL-2.1
-- Maintainer : Iñaki García Etxebarria

#if (MIN_VERSION_haskell_gi_overloading(1,0,0) && !defined(__HADDOCK_VERSION__))
#define ENABLE_OVERLOADING
#endif

module GI.GES.Enums
    ( 

 -- * Enumerations


-- ** AssetLoadingReturn #enum:AssetLoadingReturn#

    AssetLoadingReturn(..)                  ,


-- ** ChildrenControlMode #enum:ChildrenControlMode#

    ChildrenControlMode(..)                 ,


-- ** Edge #enum:Edge#

    Edge(..)                                ,


-- ** EditMode #enum:EditMode#

    EditMode(..)                            ,


-- ** Error #enum:Error#

    Error(..)                               ,


-- ** TextHAlign #enum:TextHAlign#

    TextHAlign(..)                          ,


-- ** TextVAlign #enum:TextVAlign#

    TextVAlign(..)                          ,


-- ** VideoStandardTransitionType #enum:VideoStandardTransitionType#

    VideoStandardTransitionType(..)         ,


-- ** VideoTestPattern #enum:VideoTestPattern#

    VideoTestPattern(..)                    ,




    ) where

import Data.GI.Base.ShortPrelude
import qualified Data.GI.Base.ShortPrelude as SP
import qualified Data.GI.Base.Overloading as O
import qualified Prelude as P

import qualified Data.GI.Base.Attributes as GI.Attributes
import qualified Data.GI.Base.BasicTypes as B.Types
import qualified Data.GI.Base.ManagedPtr as B.ManagedPtr
import qualified Data.GI.Base.GArray as B.GArray
import qualified Data.GI.Base.GClosure as B.GClosure
import qualified Data.GI.Base.GError as B.GError
import qualified Data.GI.Base.GHashTable as B.GHT
import qualified Data.GI.Base.GVariant as B.GVariant
import qualified Data.GI.Base.GValue as B.GValue
import qualified Data.GI.Base.GParamSpec as B.GParamSpec
import qualified Data.GI.Base.CallStack as B.CallStack
import qualified Data.GI.Base.Properties as B.Properties
import qualified Data.GI.Base.Signals as B.Signals
import qualified Control.Monad.IO.Class as MIO
import qualified Data.Coerce as Coerce
import qualified Data.Text as T
import qualified Data.ByteString.Char8 as B
import qualified Data.Map as Map
import qualified Foreign.Ptr as FP
import qualified GHC.OverloadedLabels as OL
import qualified GHC.Records as R


-- Enum VideoTestPattern
-- | The test pattern to produce
data VideoTestPattern = 
      VideoTestPatternSmpte
    -- ^ A standard SMPTE test pattern
    | VideoTestPatternSnow
    -- ^ Random noise
    | VideoTestPatternBlack
    -- ^ A black image
    | VideoTestPatternWhite
    -- ^ A white image
    | VideoTestPatternRed
    -- ^ A red image
    | VideoTestPatternGreen
    -- ^ A green image
    | VideoTestPatternBlue
    -- ^ A blue image
    | VideoTestPatternCheckers1
    -- ^ Checkers pattern (1px)
    | VideoTestPatternCheckers2
    -- ^ Checkers pattern (2px)
    | VideoTestPatternCheckers4
    -- ^ Checkers pattern (4px)
    | VideoTestPatternCheckers8
    -- ^ Checkers pattern (8px)
    | VideoTestPatternCircular
    -- ^ Circular pattern
    | VideoTestPatternBlink
    -- ^ Alternate between black and white
    | VideoTestPatternSmpte75
    -- ^ SMPTE test pattern (75% color bars)
    | VideoTestPatternZonePlate
    -- ^ Zone plate
    | VideoTestPatternGamut
    -- ^ Gamut checkers
    | VideoTestPatternChromaZonePlate
    -- ^ Chroma zone plate
    | VideoTestPatternSolidColor
    -- ^ Solid color
    | AnotherVideoTestPattern Int
    -- ^ Catch-all for unknown values
    deriving (Int -> VideoTestPattern -> ShowS
[VideoTestPattern] -> ShowS
VideoTestPattern -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [VideoTestPattern] -> ShowS
$cshowList :: [VideoTestPattern] -> ShowS
show :: VideoTestPattern -> String
$cshow :: VideoTestPattern -> String
showsPrec :: Int -> VideoTestPattern -> ShowS
$cshowsPrec :: Int -> VideoTestPattern -> ShowS
Show, VideoTestPattern -> VideoTestPattern -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: VideoTestPattern -> VideoTestPattern -> Bool
$c/= :: VideoTestPattern -> VideoTestPattern -> Bool
== :: VideoTestPattern -> VideoTestPattern -> Bool
$c== :: VideoTestPattern -> VideoTestPattern -> Bool
Eq)

instance P.Enum VideoTestPattern where
    fromEnum :: VideoTestPattern -> Int
fromEnum VideoTestPattern
VideoTestPatternSmpte = Int
0
    fromEnum VideoTestPattern
VideoTestPatternSnow = Int
1
    fromEnum VideoTestPattern
VideoTestPatternBlack = Int
2
    fromEnum VideoTestPattern
VideoTestPatternWhite = Int
3
    fromEnum VideoTestPattern
VideoTestPatternRed = Int
4
    fromEnum VideoTestPattern
VideoTestPatternGreen = Int
5
    fromEnum VideoTestPattern
VideoTestPatternBlue = Int
6
    fromEnum VideoTestPattern
VideoTestPatternCheckers1 = Int
7
    fromEnum VideoTestPattern
VideoTestPatternCheckers2 = Int
8
    fromEnum VideoTestPattern
VideoTestPatternCheckers4 = Int
9
    fromEnum VideoTestPattern
VideoTestPatternCheckers8 = Int
10
    fromEnum VideoTestPattern
VideoTestPatternCircular = Int
11
    fromEnum VideoTestPattern
VideoTestPatternBlink = Int
12
    fromEnum VideoTestPattern
VideoTestPatternSmpte75 = Int
13
    fromEnum VideoTestPattern
VideoTestPatternZonePlate = Int
14
    fromEnum VideoTestPattern
VideoTestPatternGamut = Int
15
    fromEnum VideoTestPattern
VideoTestPatternChromaZonePlate = Int
16
    fromEnum VideoTestPattern
VideoTestPatternSolidColor = Int
17
    fromEnum (AnotherVideoTestPattern Int
k) = Int
k

    toEnum :: Int -> VideoTestPattern
toEnum Int
0 = VideoTestPattern
VideoTestPatternSmpte
    toEnum Int
1 = VideoTestPattern
VideoTestPatternSnow
    toEnum Int
2 = VideoTestPattern
VideoTestPatternBlack
    toEnum Int
3 = VideoTestPattern
VideoTestPatternWhite
    toEnum Int
4 = VideoTestPattern
VideoTestPatternRed
    toEnum Int
5 = VideoTestPattern
VideoTestPatternGreen
    toEnum Int
6 = VideoTestPattern
VideoTestPatternBlue
    toEnum Int
7 = VideoTestPattern
VideoTestPatternCheckers1
    toEnum Int
8 = VideoTestPattern
VideoTestPatternCheckers2
    toEnum Int
9 = VideoTestPattern
VideoTestPatternCheckers4
    toEnum Int
10 = VideoTestPattern
VideoTestPatternCheckers8
    toEnum Int
11 = VideoTestPattern
VideoTestPatternCircular
    toEnum Int
12 = VideoTestPattern
VideoTestPatternBlink
    toEnum Int
13 = VideoTestPattern
VideoTestPatternSmpte75
    toEnum Int
14 = VideoTestPattern
VideoTestPatternZonePlate
    toEnum Int
15 = VideoTestPattern
VideoTestPatternGamut
    toEnum Int
16 = VideoTestPattern
VideoTestPatternChromaZonePlate
    toEnum Int
17 = VideoTestPattern
VideoTestPatternSolidColor
    toEnum Int
k = Int -> VideoTestPattern
AnotherVideoTestPattern Int
k

instance P.Ord VideoTestPattern where
    compare :: VideoTestPattern -> VideoTestPattern -> Ordering
compare VideoTestPattern
a VideoTestPattern
b = forall a. Ord a => a -> a -> Ordering
P.compare (forall a. Enum a => a -> Int
P.fromEnum VideoTestPattern
a) (forall a. Enum a => a -> Int
P.fromEnum VideoTestPattern
b)

type instance O.ParentTypes VideoTestPattern = '[]
instance O.HasParentTypes VideoTestPattern

foreign import ccall "ges_video_test_pattern_get_type" c_ges_video_test_pattern_get_type :: 
    IO GType

instance B.Types.TypedObject VideoTestPattern where
    glibType :: IO GType
glibType = IO GType
c_ges_video_test_pattern_get_type

instance B.Types.BoxedEnum VideoTestPattern

-- Enum VideoStandardTransitionType
-- | /No description available in the introspection data./
data VideoStandardTransitionType = 
      VideoStandardTransitionTypeNone
    -- ^ Transition type has not been set,
    | VideoStandardTransitionTypeBarWipeLr
    -- ^ A bar moves from left to right,
    | VideoStandardTransitionTypeBarWipeTb
    -- ^ A bar moves from top to bottom,
    | VideoStandardTransitionTypeBoxWipeTl
    -- ^ A box expands from the upper-left corner to the lower-right corner,
    | VideoStandardTransitionTypeBoxWipeTr
    -- ^ A box expands from the upper-right corner to the lower-left corner,
    | VideoStandardTransitionTypeBoxWipeBr
    -- ^ A box expands from the lower-right corner to the upper-left corner,
    | VideoStandardTransitionTypeBoxWipeBl
    -- ^ A box expands from the lower-left corner to the upper-right corner,
    | VideoStandardTransitionTypeFourBoxWipeCi
    -- ^ A box shape expands from each of the four corners toward the center,
    | VideoStandardTransitionTypeFourBoxWipeCo
    -- ^ A box shape expands from the center of each quadrant toward the corners of each quadrant,
    | VideoStandardTransitionTypeBarndoorV
    -- ^ A central, vertical line splits and expands toward the left and right edges,
    | VideoStandardTransitionTypeBarndoorH
    -- ^ A central, horizontal line splits and expands toward the top and bottom edges,
    | VideoStandardTransitionTypeBoxWipeTc
    -- ^ A box expands from the top edge\'s midpoint to the bottom corners,
    | VideoStandardTransitionTypeBoxWipeRc
    -- ^ A box expands from the right edge\'s midpoint to the left corners,
    | VideoStandardTransitionTypeBoxWipeBc
    -- ^ A box expands from the bottom edge\'s midpoint to the top corners,
    | VideoStandardTransitionTypeBoxWipeLc
    -- ^ A box expands from the left edge\'s midpoint to the right corners,
    | VideoStandardTransitionTypeDiagonalTl
    -- ^ A diagonal line moves from the upper-left corner to the lower-right corner,
    | VideoStandardTransitionTypeDiagonalTr
    -- ^ A diagonal line moves from the upper right corner to the lower-left corner,
    | VideoStandardTransitionTypeBowtieV
    -- ^ Two wedge shapes slide in from the top and bottom edges toward the center,
    | VideoStandardTransitionTypeBowtieH
    -- ^ Two wedge shapes slide in from the left and right edges toward the center,
    | VideoStandardTransitionTypeBarndoorDbl
    -- ^ A diagonal line from the lower-left to upper-right corners splits and expands toward the opposite corners,
    | VideoStandardTransitionTypeBarndoorDtl
    -- ^ A diagonal line from upper-left to lower-right corners splits and expands toward the opposite corners,
    | VideoStandardTransitionTypeMiscDiagonalDbd
    -- ^ Four wedge shapes split from the center and retract toward the four edges,
    | VideoStandardTransitionTypeMiscDiagonalDd
    -- ^ A diamond connecting the four edge midpoints simultaneously contracts toward the center and expands toward the edges,
    | VideoStandardTransitionTypeVeeD
    -- ^ A wedge shape moves from top to bottom,
    | VideoStandardTransitionTypeVeeL
    -- ^ A wedge shape moves from right to left,
    | VideoStandardTransitionTypeVeeU
    -- ^ A wedge shape moves from bottom to top,
    | VideoStandardTransitionTypeVeeR
    -- ^ A wedge shape moves from left to right,
    | VideoStandardTransitionTypeBarnveeD
    -- ^ A \'V\' shape extending from the bottom edge\'s midpoint to the opposite corners contracts toward the center and expands toward the edges,
    | VideoStandardTransitionTypeBarnveeL
    -- ^ A \'V\' shape extending from the left edge\'s midpoint to the opposite corners contracts toward the center and expands toward the edges,
    | VideoStandardTransitionTypeBarnveeU
    -- ^ A \'V\' shape extending from the top edge\'s midpoint to the opposite corners contracts toward the center and expands toward the edges,
    | VideoStandardTransitionTypeBarnveeR
    -- ^ A \'V\' shape extending from the right edge\'s midpoint to the opposite corners contracts toward the center and expands toward the edges,
    | VideoStandardTransitionTypeIrisRect
    -- ^ A rectangle expands from the center.,
    | VideoStandardTransitionTypeClockCw12
    -- ^ A radial hand sweeps clockwise from the twelve o\'clock position,
    | VideoStandardTransitionTypeClockCw3
    -- ^ A radial hand sweeps clockwise from the three o\'clock position,
    | VideoStandardTransitionTypeClockCw6
    -- ^ A radial hand sweeps clockwise from the six o\'clock position,
    | VideoStandardTransitionTypeClockCw9
    -- ^ A radial hand sweeps clockwise from the nine o\'clock position,
    | VideoStandardTransitionTypePinwheelTbv
    -- ^ Two radial hands sweep clockwise from the twelve and six o\'clock positions,
    | VideoStandardTransitionTypePinwheelTbh
    -- ^ Two radial hands sweep clockwise from the nine and three o\'clock positions,
    | VideoStandardTransitionTypePinwheelFb
    -- ^ Four radial hands sweep clockwise,
    | VideoStandardTransitionTypeFanCt
    -- ^ A fan unfolds from the top edge, the fan axis at the center,
    | VideoStandardTransitionTypeFanCr
    -- ^ A fan unfolds from the right edge, the fan axis at the center,
    | VideoStandardTransitionTypeDoublefanFov
    -- ^ Two fans, their axes at the center, unfold from the top and bottom,
    | VideoStandardTransitionTypeDoublefanFoh
    -- ^ Two fans, their axes at the center, unfold from the left and right,
    | VideoStandardTransitionTypeSinglesweepCwt
    -- ^ A radial hand sweeps clockwise from the top edge\'s midpoint,
    | VideoStandardTransitionTypeSinglesweepCwr
    -- ^ A radial hand sweeps clockwise from the right edge\'s midpoint,
    | VideoStandardTransitionTypeSinglesweepCwb
    -- ^ A radial hand sweeps clockwise from the bottom edge\'s midpoint,
    | VideoStandardTransitionTypeSinglesweepCwl
    -- ^ A radial hand sweeps clockwise from the left edge\'s midpoint,
    | VideoStandardTransitionTypeDoublesweepPv
    -- ^ Two radial hands sweep clockwise and counter-clockwise from the top and bottom edges\' midpoints,
    | VideoStandardTransitionTypeDoublesweepPd
    -- ^ Two radial hands sweep clockwise and counter-clockwise from the left and right edges\' midpoints,
    | VideoStandardTransitionTypeDoublesweepOv
    -- ^ Two radial hands attached at the top and bottom edges\' midpoints sweep from right to left,
    | VideoStandardTransitionTypeDoublesweepOh
    -- ^ Two radial hands attached at the left and right edges\' midpoints sweep from top to bottom,
    | VideoStandardTransitionTypeFanT
    -- ^ A fan unfolds from the bottom, the fan axis at the top edge\'s midpoint,
    | VideoStandardTransitionTypeFanR
    -- ^ A fan unfolds from the left, the fan axis at the right edge\'s midpoint,
    | VideoStandardTransitionTypeFanB
    -- ^ A fan unfolds from the top, the fan axis at the bottom edge\'s midpoint,
    | VideoStandardTransitionTypeFanL
    -- ^ A fan unfolds from the right, the fan axis at the left edge\'s midpoint,
    | VideoStandardTransitionTypeDoublefanFiv
    -- ^ Two fans, their axes at the top and bottom, unfold from the center,
    | VideoStandardTransitionTypeDoublefanFih
    -- ^ Two fans, their axes at the left and right, unfold from the center,
    | VideoStandardTransitionTypeSinglesweepCwtl
    -- ^ A radial hand sweeps clockwise from the upper-left corner,
    | VideoStandardTransitionTypeSinglesweepCwbl
    -- ^ A radial hand sweeps counter-clockwise from the lower-left corner.,
    | VideoStandardTransitionTypeSinglesweepCwbr
    -- ^ A radial hand sweeps clockwise from the lower-right corner,
    | VideoStandardTransitionTypeSinglesweepCwtr
    -- ^ A radial hand sweeps counter-clockwise from the upper-right corner,
    | VideoStandardTransitionTypeDoublesweepPdtl
    -- ^ Two radial hands attached at the upper-left and lower-right corners sweep down and up,
    | VideoStandardTransitionTypeDoublesweepPdbl
    -- ^ Two radial hands attached at the lower-left and upper-right corners sweep down and up,
    | VideoStandardTransitionTypeSaloondoorT
    -- ^ Two radial hands attached at the upper-left and upper-right corners sweep down,
    | VideoStandardTransitionTypeSaloondoorL
    -- ^ Two radial hands attached at the upper-left and lower-left corners sweep to the right,
    | VideoStandardTransitionTypeSaloondoorB
    -- ^ Two radial hands attached at the lower-left and lower-right corners sweep up,
    | VideoStandardTransitionTypeSaloondoorR
    -- ^ Two radial hands attached at the upper-right and lower-right corners sweep to the left,
    | VideoStandardTransitionTypeWindshieldR
    -- ^ Two radial hands attached at the midpoints of the top and bottom halves sweep from right to left,
    | VideoStandardTransitionTypeWindshieldU
    -- ^ Two radial hands attached at the midpoints of the left and right halves sweep from top to bottom,
    | VideoStandardTransitionTypeWindshieldV
    -- ^ Two sets of radial hands attached at the midpoints of the top and bottom halves sweep from top to bottom and bottom to top,
    | VideoStandardTransitionTypeWindshieldH
    -- ^ Two sets of radial hands attached at the midpoints of the left and right halves sweep from left to right and right to left,
    | VideoStandardTransitionTypeCrossfade
    -- ^ Crossfade
    | AnotherVideoStandardTransitionType Int
    -- ^ Catch-all for unknown values
    deriving (Int -> VideoStandardTransitionType -> ShowS
[VideoStandardTransitionType] -> ShowS
VideoStandardTransitionType -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [VideoStandardTransitionType] -> ShowS
$cshowList :: [VideoStandardTransitionType] -> ShowS
show :: VideoStandardTransitionType -> String
$cshow :: VideoStandardTransitionType -> String
showsPrec :: Int -> VideoStandardTransitionType -> ShowS
$cshowsPrec :: Int -> VideoStandardTransitionType -> ShowS
Show, VideoStandardTransitionType -> VideoStandardTransitionType -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: VideoStandardTransitionType -> VideoStandardTransitionType -> Bool
$c/= :: VideoStandardTransitionType -> VideoStandardTransitionType -> Bool
== :: VideoStandardTransitionType -> VideoStandardTransitionType -> Bool
$c== :: VideoStandardTransitionType -> VideoStandardTransitionType -> Bool
Eq)

instance P.Enum VideoStandardTransitionType where
    fromEnum :: VideoStandardTransitionType -> Int
fromEnum VideoStandardTransitionType
VideoStandardTransitionTypeNone = Int
0
    fromEnum VideoStandardTransitionType
VideoStandardTransitionTypeBarWipeLr = Int
1
    fromEnum VideoStandardTransitionType
VideoStandardTransitionTypeBarWipeTb = Int
2
    fromEnum VideoStandardTransitionType
VideoStandardTransitionTypeBoxWipeTl = Int
3
    fromEnum VideoStandardTransitionType
VideoStandardTransitionTypeBoxWipeTr = Int
4
    fromEnum VideoStandardTransitionType
VideoStandardTransitionTypeBoxWipeBr = Int
5
    fromEnum VideoStandardTransitionType
VideoStandardTransitionTypeBoxWipeBl = Int
6
    fromEnum VideoStandardTransitionType
VideoStandardTransitionTypeFourBoxWipeCi = Int
7
    fromEnum VideoStandardTransitionType
VideoStandardTransitionTypeFourBoxWipeCo = Int
8
    fromEnum VideoStandardTransitionType
VideoStandardTransitionTypeBarndoorV = Int
21
    fromEnum VideoStandardTransitionType
VideoStandardTransitionTypeBarndoorH = Int
22
    fromEnum VideoStandardTransitionType
VideoStandardTransitionTypeBoxWipeTc = Int
23
    fromEnum VideoStandardTransitionType
VideoStandardTransitionTypeBoxWipeRc = Int
24
    fromEnum VideoStandardTransitionType
VideoStandardTransitionTypeBoxWipeBc = Int
25
    fromEnum VideoStandardTransitionType
VideoStandardTransitionTypeBoxWipeLc = Int
26
    fromEnum VideoStandardTransitionType
VideoStandardTransitionTypeDiagonalTl = Int
41
    fromEnum VideoStandardTransitionType
VideoStandardTransitionTypeDiagonalTr = Int
42
    fromEnum VideoStandardTransitionType
VideoStandardTransitionTypeBowtieV = Int
43
    fromEnum VideoStandardTransitionType
VideoStandardTransitionTypeBowtieH = Int
44
    fromEnum VideoStandardTransitionType
VideoStandardTransitionTypeBarndoorDbl = Int
45
    fromEnum VideoStandardTransitionType
VideoStandardTransitionTypeBarndoorDtl = Int
46
    fromEnum VideoStandardTransitionType
VideoStandardTransitionTypeMiscDiagonalDbd = Int
47
    fromEnum VideoStandardTransitionType
VideoStandardTransitionTypeMiscDiagonalDd = Int
48
    fromEnum VideoStandardTransitionType
VideoStandardTransitionTypeVeeD = Int
61
    fromEnum VideoStandardTransitionType
VideoStandardTransitionTypeVeeL = Int
62
    fromEnum VideoStandardTransitionType
VideoStandardTransitionTypeVeeU = Int
63
    fromEnum VideoStandardTransitionType
VideoStandardTransitionTypeVeeR = Int
64
    fromEnum VideoStandardTransitionType
VideoStandardTransitionTypeBarnveeD = Int
65
    fromEnum VideoStandardTransitionType
VideoStandardTransitionTypeBarnveeL = Int
66
    fromEnum VideoStandardTransitionType
VideoStandardTransitionTypeBarnveeU = Int
67
    fromEnum VideoStandardTransitionType
VideoStandardTransitionTypeBarnveeR = Int
68
    fromEnum VideoStandardTransitionType
VideoStandardTransitionTypeIrisRect = Int
101
    fromEnum VideoStandardTransitionType
VideoStandardTransitionTypeClockCw12 = Int
201
    fromEnum VideoStandardTransitionType
VideoStandardTransitionTypeClockCw3 = Int
202
    fromEnum VideoStandardTransitionType
VideoStandardTransitionTypeClockCw6 = Int
203
    fromEnum VideoStandardTransitionType
VideoStandardTransitionTypeClockCw9 = Int
204
    fromEnum VideoStandardTransitionType
VideoStandardTransitionTypePinwheelTbv = Int
205
    fromEnum VideoStandardTransitionType
VideoStandardTransitionTypePinwheelTbh = Int
206
    fromEnum VideoStandardTransitionType
VideoStandardTransitionTypePinwheelFb = Int
207
    fromEnum VideoStandardTransitionType
VideoStandardTransitionTypeFanCt = Int
211
    fromEnum VideoStandardTransitionType
VideoStandardTransitionTypeFanCr = Int
212
    fromEnum VideoStandardTransitionType
VideoStandardTransitionTypeDoublefanFov = Int
213
    fromEnum VideoStandardTransitionType
VideoStandardTransitionTypeDoublefanFoh = Int
214
    fromEnum VideoStandardTransitionType
VideoStandardTransitionTypeSinglesweepCwt = Int
221
    fromEnum VideoStandardTransitionType
VideoStandardTransitionTypeSinglesweepCwr = Int
222
    fromEnum VideoStandardTransitionType
VideoStandardTransitionTypeSinglesweepCwb = Int
223
    fromEnum VideoStandardTransitionType
VideoStandardTransitionTypeSinglesweepCwl = Int
224
    fromEnum VideoStandardTransitionType
VideoStandardTransitionTypeDoublesweepPv = Int
225
    fromEnum VideoStandardTransitionType
VideoStandardTransitionTypeDoublesweepPd = Int
226
    fromEnum VideoStandardTransitionType
VideoStandardTransitionTypeDoublesweepOv = Int
227
    fromEnum VideoStandardTransitionType
VideoStandardTransitionTypeDoublesweepOh = Int
228
    fromEnum VideoStandardTransitionType
VideoStandardTransitionTypeFanT = Int
231
    fromEnum VideoStandardTransitionType
VideoStandardTransitionTypeFanR = Int
232
    fromEnum VideoStandardTransitionType
VideoStandardTransitionTypeFanB = Int
233
    fromEnum VideoStandardTransitionType
VideoStandardTransitionTypeFanL = Int
234
    fromEnum VideoStandardTransitionType
VideoStandardTransitionTypeDoublefanFiv = Int
235
    fromEnum VideoStandardTransitionType
VideoStandardTransitionTypeDoublefanFih = Int
236
    fromEnum VideoStandardTransitionType
VideoStandardTransitionTypeSinglesweepCwtl = Int
241
    fromEnum VideoStandardTransitionType
VideoStandardTransitionTypeSinglesweepCwbl = Int
242
    fromEnum VideoStandardTransitionType
VideoStandardTransitionTypeSinglesweepCwbr = Int
243
    fromEnum VideoStandardTransitionType
VideoStandardTransitionTypeSinglesweepCwtr = Int
244
    fromEnum VideoStandardTransitionType
VideoStandardTransitionTypeDoublesweepPdtl = Int
245
    fromEnum VideoStandardTransitionType
VideoStandardTransitionTypeDoublesweepPdbl = Int
246
    fromEnum VideoStandardTransitionType
VideoStandardTransitionTypeSaloondoorT = Int
251
    fromEnum VideoStandardTransitionType
VideoStandardTransitionTypeSaloondoorL = Int
252
    fromEnum VideoStandardTransitionType
VideoStandardTransitionTypeSaloondoorB = Int
253
    fromEnum VideoStandardTransitionType
VideoStandardTransitionTypeSaloondoorR = Int
254
    fromEnum VideoStandardTransitionType
VideoStandardTransitionTypeWindshieldR = Int
261
    fromEnum VideoStandardTransitionType
VideoStandardTransitionTypeWindshieldU = Int
262
    fromEnum VideoStandardTransitionType
VideoStandardTransitionTypeWindshieldV = Int
263
    fromEnum VideoStandardTransitionType
VideoStandardTransitionTypeWindshieldH = Int
264
    fromEnum VideoStandardTransitionType
VideoStandardTransitionTypeCrossfade = Int
512
    fromEnum (AnotherVideoStandardTransitionType Int
k) = Int
k

    toEnum :: Int -> VideoStandardTransitionType
toEnum Int
0 = VideoStandardTransitionType
VideoStandardTransitionTypeNone
    toEnum Int
1 = VideoStandardTransitionType
VideoStandardTransitionTypeBarWipeLr
    toEnum Int
2 = VideoStandardTransitionType
VideoStandardTransitionTypeBarWipeTb
    toEnum Int
3 = VideoStandardTransitionType
VideoStandardTransitionTypeBoxWipeTl
    toEnum Int
4 = VideoStandardTransitionType
VideoStandardTransitionTypeBoxWipeTr
    toEnum Int
5 = VideoStandardTransitionType
VideoStandardTransitionTypeBoxWipeBr
    toEnum Int
6 = VideoStandardTransitionType
VideoStandardTransitionTypeBoxWipeBl
    toEnum Int
7 = VideoStandardTransitionType
VideoStandardTransitionTypeFourBoxWipeCi
    toEnum Int
8 = VideoStandardTransitionType
VideoStandardTransitionTypeFourBoxWipeCo
    toEnum Int
21 = VideoStandardTransitionType
VideoStandardTransitionTypeBarndoorV
    toEnum Int
22 = VideoStandardTransitionType
VideoStandardTransitionTypeBarndoorH
    toEnum Int
23 = VideoStandardTransitionType
VideoStandardTransitionTypeBoxWipeTc
    toEnum Int
24 = VideoStandardTransitionType
VideoStandardTransitionTypeBoxWipeRc
    toEnum Int
25 = VideoStandardTransitionType
VideoStandardTransitionTypeBoxWipeBc
    toEnum Int
26 = VideoStandardTransitionType
VideoStandardTransitionTypeBoxWipeLc
    toEnum Int
41 = VideoStandardTransitionType
VideoStandardTransitionTypeDiagonalTl
    toEnum Int
42 = VideoStandardTransitionType
VideoStandardTransitionTypeDiagonalTr
    toEnum Int
43 = VideoStandardTransitionType
VideoStandardTransitionTypeBowtieV
    toEnum Int
44 = VideoStandardTransitionType
VideoStandardTransitionTypeBowtieH
    toEnum Int
45 = VideoStandardTransitionType
VideoStandardTransitionTypeBarndoorDbl
    toEnum Int
46 = VideoStandardTransitionType
VideoStandardTransitionTypeBarndoorDtl
    toEnum Int
47 = VideoStandardTransitionType
VideoStandardTransitionTypeMiscDiagonalDbd
    toEnum Int
48 = VideoStandardTransitionType
VideoStandardTransitionTypeMiscDiagonalDd
    toEnum Int
61 = VideoStandardTransitionType
VideoStandardTransitionTypeVeeD
    toEnum Int
62 = VideoStandardTransitionType
VideoStandardTransitionTypeVeeL
    toEnum Int
63 = VideoStandardTransitionType
VideoStandardTransitionTypeVeeU
    toEnum Int
64 = VideoStandardTransitionType
VideoStandardTransitionTypeVeeR
    toEnum Int
65 = VideoStandardTransitionType
VideoStandardTransitionTypeBarnveeD
    toEnum Int
66 = VideoStandardTransitionType
VideoStandardTransitionTypeBarnveeL
    toEnum Int
67 = VideoStandardTransitionType
VideoStandardTransitionTypeBarnveeU
    toEnum Int
68 = VideoStandardTransitionType
VideoStandardTransitionTypeBarnveeR
    toEnum Int
101 = VideoStandardTransitionType
VideoStandardTransitionTypeIrisRect
    toEnum Int
201 = VideoStandardTransitionType
VideoStandardTransitionTypeClockCw12
    toEnum Int
202 = VideoStandardTransitionType
VideoStandardTransitionTypeClockCw3
    toEnum Int
203 = VideoStandardTransitionType
VideoStandardTransitionTypeClockCw6
    toEnum Int
204 = VideoStandardTransitionType
VideoStandardTransitionTypeClockCw9
    toEnum Int
205 = VideoStandardTransitionType
VideoStandardTransitionTypePinwheelTbv
    toEnum Int
206 = VideoStandardTransitionType
VideoStandardTransitionTypePinwheelTbh
    toEnum Int
207 = VideoStandardTransitionType
VideoStandardTransitionTypePinwheelFb
    toEnum Int
211 = VideoStandardTransitionType
VideoStandardTransitionTypeFanCt
    toEnum Int
212 = VideoStandardTransitionType
VideoStandardTransitionTypeFanCr
    toEnum Int
213 = VideoStandardTransitionType
VideoStandardTransitionTypeDoublefanFov
    toEnum Int
214 = VideoStandardTransitionType
VideoStandardTransitionTypeDoublefanFoh
    toEnum Int
221 = VideoStandardTransitionType
VideoStandardTransitionTypeSinglesweepCwt
    toEnum Int
222 = VideoStandardTransitionType
VideoStandardTransitionTypeSinglesweepCwr
    toEnum Int
223 = VideoStandardTransitionType
VideoStandardTransitionTypeSinglesweepCwb
    toEnum Int
224 = VideoStandardTransitionType
VideoStandardTransitionTypeSinglesweepCwl
    toEnum Int
225 = VideoStandardTransitionType
VideoStandardTransitionTypeDoublesweepPv
    toEnum Int
226 = VideoStandardTransitionType
VideoStandardTransitionTypeDoublesweepPd
    toEnum Int
227 = VideoStandardTransitionType
VideoStandardTransitionTypeDoublesweepOv
    toEnum Int
228 = VideoStandardTransitionType
VideoStandardTransitionTypeDoublesweepOh
    toEnum Int
231 = VideoStandardTransitionType
VideoStandardTransitionTypeFanT
    toEnum Int
232 = VideoStandardTransitionType
VideoStandardTransitionTypeFanR
    toEnum Int
233 = VideoStandardTransitionType
VideoStandardTransitionTypeFanB
    toEnum Int
234 = VideoStandardTransitionType
VideoStandardTransitionTypeFanL
    toEnum Int
235 = VideoStandardTransitionType
VideoStandardTransitionTypeDoublefanFiv
    toEnum Int
236 = VideoStandardTransitionType
VideoStandardTransitionTypeDoublefanFih
    toEnum Int
241 = VideoStandardTransitionType
VideoStandardTransitionTypeSinglesweepCwtl
    toEnum Int
242 = VideoStandardTransitionType
VideoStandardTransitionTypeSinglesweepCwbl
    toEnum Int
243 = VideoStandardTransitionType
VideoStandardTransitionTypeSinglesweepCwbr
    toEnum Int
244 = VideoStandardTransitionType
VideoStandardTransitionTypeSinglesweepCwtr
    toEnum Int
245 = VideoStandardTransitionType
VideoStandardTransitionTypeDoublesweepPdtl
    toEnum Int
246 = VideoStandardTransitionType
VideoStandardTransitionTypeDoublesweepPdbl
    toEnum Int
251 = VideoStandardTransitionType
VideoStandardTransitionTypeSaloondoorT
    toEnum Int
252 = VideoStandardTransitionType
VideoStandardTransitionTypeSaloondoorL
    toEnum Int
253 = VideoStandardTransitionType
VideoStandardTransitionTypeSaloondoorB
    toEnum Int
254 = VideoStandardTransitionType
VideoStandardTransitionTypeSaloondoorR
    toEnum Int
261 = VideoStandardTransitionType
VideoStandardTransitionTypeWindshieldR
    toEnum Int
262 = VideoStandardTransitionType
VideoStandardTransitionTypeWindshieldU
    toEnum Int
263 = VideoStandardTransitionType
VideoStandardTransitionTypeWindshieldV
    toEnum Int
264 = VideoStandardTransitionType
VideoStandardTransitionTypeWindshieldH
    toEnum Int
512 = VideoStandardTransitionType
VideoStandardTransitionTypeCrossfade
    toEnum Int
k = Int -> VideoStandardTransitionType
AnotherVideoStandardTransitionType Int
k

instance P.Ord VideoStandardTransitionType where
    compare :: VideoStandardTransitionType
-> VideoStandardTransitionType -> Ordering
compare VideoStandardTransitionType
a VideoStandardTransitionType
b = forall a. Ord a => a -> a -> Ordering
P.compare (forall a. Enum a => a -> Int
P.fromEnum VideoStandardTransitionType
a) (forall a. Enum a => a -> Int
P.fromEnum VideoStandardTransitionType
b)

type instance O.ParentTypes VideoStandardTransitionType = '[]
instance O.HasParentTypes VideoStandardTransitionType

foreign import ccall "ges_video_standard_transition_type_get_type" c_ges_video_standard_transition_type_get_type :: 
    IO GType

instance B.Types.TypedObject VideoStandardTransitionType where
    glibType :: IO GType
glibType = IO GType
c_ges_video_standard_transition_type_get_type

instance B.Types.BoxedEnum VideoStandardTransitionType

-- Enum TextVAlign
-- | Vertical alignment of the text.
data TextVAlign = 
      TextVAlignBaseline
    -- ^ draw text on the baseline
    | TextVAlignBottom
    -- ^ draw text on the bottom
    | TextVAlignTop
    -- ^ draw text on top
    | TextVAlignPosition
    -- ^ draw text on ypos position
    | TextVAlignCenter
    -- ^ draw text on the center
    | TextVAlignAbsolute
    -- ^ /No description available in the introspection data./
    | AnotherTextVAlign Int
    -- ^ Catch-all for unknown values
    deriving (Int -> TextVAlign -> ShowS
[TextVAlign] -> ShowS
TextVAlign -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [TextVAlign] -> ShowS
$cshowList :: [TextVAlign] -> ShowS
show :: TextVAlign -> String
$cshow :: TextVAlign -> String
showsPrec :: Int -> TextVAlign -> ShowS
$cshowsPrec :: Int -> TextVAlign -> ShowS
Show, TextVAlign -> TextVAlign -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: TextVAlign -> TextVAlign -> Bool
$c/= :: TextVAlign -> TextVAlign -> Bool
== :: TextVAlign -> TextVAlign -> Bool
$c== :: TextVAlign -> TextVAlign -> Bool
Eq)

instance P.Enum TextVAlign where
    fromEnum :: TextVAlign -> Int
fromEnum TextVAlign
TextVAlignBaseline = Int
0
    fromEnum TextVAlign
TextVAlignBottom = Int
1
    fromEnum TextVAlign
TextVAlignTop = Int
2
    fromEnum TextVAlign
TextVAlignPosition = Int
3
    fromEnum TextVAlign
TextVAlignCenter = Int
4
    fromEnum TextVAlign
TextVAlignAbsolute = Int
5
    fromEnum (AnotherTextVAlign Int
k) = Int
k

    toEnum :: Int -> TextVAlign
toEnum Int
0 = TextVAlign
TextVAlignBaseline
    toEnum Int
1 = TextVAlign
TextVAlignBottom
    toEnum Int
2 = TextVAlign
TextVAlignTop
    toEnum Int
3 = TextVAlign
TextVAlignPosition
    toEnum Int
4 = TextVAlign
TextVAlignCenter
    toEnum Int
5 = TextVAlign
TextVAlignAbsolute
    toEnum Int
k = Int -> TextVAlign
AnotherTextVAlign Int
k

instance P.Ord TextVAlign where
    compare :: TextVAlign -> TextVAlign -> Ordering
compare TextVAlign
a TextVAlign
b = forall a. Ord a => a -> a -> Ordering
P.compare (forall a. Enum a => a -> Int
P.fromEnum TextVAlign
a) (forall a. Enum a => a -> Int
P.fromEnum TextVAlign
b)

type instance O.ParentTypes TextVAlign = '[]
instance O.HasParentTypes TextVAlign

foreign import ccall "ges_text_valign_get_type" c_ges_text_valign_get_type :: 
    IO GType

instance B.Types.TypedObject TextVAlign where
    glibType :: IO GType
glibType = IO GType
c_ges_text_valign_get_type

instance B.Types.BoxedEnum TextVAlign

-- Enum TextHAlign
-- | Horizontal alignment of the text.
data TextHAlign = 
      TextHAlignLeft
    -- ^ align text left
    | TextHAlignCenter
    -- ^ align text center
    | TextHAlignRight
    -- ^ align text right
    | TextHAlignPosition
    -- ^ align text on xpos position
    | TextHAlignAbsolute
    -- ^ /No description available in the introspection data./
    | AnotherTextHAlign Int
    -- ^ Catch-all for unknown values
    deriving (Int -> TextHAlign -> ShowS
[TextHAlign] -> ShowS
TextHAlign -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [TextHAlign] -> ShowS
$cshowList :: [TextHAlign] -> ShowS
show :: TextHAlign -> String
$cshow :: TextHAlign -> String
showsPrec :: Int -> TextHAlign -> ShowS
$cshowsPrec :: Int -> TextHAlign -> ShowS
Show, TextHAlign -> TextHAlign -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: TextHAlign -> TextHAlign -> Bool
$c/= :: TextHAlign -> TextHAlign -> Bool
== :: TextHAlign -> TextHAlign -> Bool
$c== :: TextHAlign -> TextHAlign -> Bool
Eq)

instance P.Enum TextHAlign where
    fromEnum :: TextHAlign -> Int
fromEnum TextHAlign
TextHAlignLeft = Int
0
    fromEnum TextHAlign
TextHAlignCenter = Int
1
    fromEnum TextHAlign
TextHAlignRight = Int
2
    fromEnum TextHAlign
TextHAlignPosition = Int
4
    fromEnum TextHAlign
TextHAlignAbsolute = Int
5
    fromEnum (AnotherTextHAlign Int
k) = Int
k

    toEnum :: Int -> TextHAlign
toEnum Int
0 = TextHAlign
TextHAlignLeft
    toEnum Int
1 = TextHAlign
TextHAlignCenter
    toEnum Int
2 = TextHAlign
TextHAlignRight
    toEnum Int
4 = TextHAlign
TextHAlignPosition
    toEnum Int
5 = TextHAlign
TextHAlignAbsolute
    toEnum Int
k = Int -> TextHAlign
AnotherTextHAlign Int
k

instance P.Ord TextHAlign where
    compare :: TextHAlign -> TextHAlign -> Ordering
compare TextHAlign
a TextHAlign
b = forall a. Ord a => a -> a -> Ordering
P.compare (forall a. Enum a => a -> Int
P.fromEnum TextHAlign
a) (forall a. Enum a => a -> Int
P.fromEnum TextHAlign
b)

type instance O.ParentTypes TextHAlign = '[]
instance O.HasParentTypes TextHAlign

foreign import ccall "ges_text_halign_get_type" c_ges_text_halign_get_type :: 
    IO GType

instance B.Types.TypedObject TextHAlign where
    glibType :: IO GType
glibType = IO GType
c_ges_text_halign_get_type

instance B.Types.BoxedEnum TextHAlign

-- Enum Error
-- | /No description available in the introspection data./
data Error = 
      ErrorAssetWrongId
    -- ^ The ID passed is malformed
    | ErrorAssetLoading
    -- ^ An error happened while loading the asset
    | ErrorFormatterMalformedInputFile
    -- ^ The formatted files was malformed
    | ErrorInvalidFrameNumber
    -- ^ The frame number is invalid
    | ErrorNegativeLayer
    -- ^ The operation would lead to a negative
    -- @/GES_TIMELINE_ELEMENT_LAYER_PRIORITY/@. (Since: 1.18)
    | ErrorNegativeTime
    -- ^ The operation would lead to a negative time.
    -- E.g. for the [TimelineElement:start]("GI.GES.Objects.TimelineElement#g:attr:start") [TimelineElement:duration]("GI.GES.Objects.TimelineElement#g:attr:duration") or
    -- [TimelineElement:inPoint]("GI.GES.Objects.TimelineElement#g:attr:inPoint"). (Since: 1.18)
    | ErrorNotEnoughInternalContent
    -- ^ Some t'GI.GES.Objects.TimelineElement.TimelineElement' does
    -- not have a large enough [TimelineElement:maxDuration]("GI.GES.Objects.TimelineElement#g:attr:maxDuration") to cover the
    -- desired operation. (Since: 1.18)
    | ErrorInvalidOverlapInTrack
    -- ^ The operation would break one of
    -- the overlap conditions for the t'GI.GES.Objects.Timeline.Timeline'. (Since: 1.18)
    | ErrorInvalidEffectBinDescription
    -- ^ /No description available in the introspection data./
    | AnotherError Int
    -- ^ Catch-all for unknown values
    deriving (Int -> Error -> ShowS
[Error] -> ShowS
Error -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [Error] -> ShowS
$cshowList :: [Error] -> ShowS
show :: Error -> String
$cshow :: Error -> String
showsPrec :: Int -> Error -> ShowS
$cshowsPrec :: Int -> Error -> ShowS
Show, Error -> Error -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: Error -> Error -> Bool
$c/= :: Error -> Error -> Bool
== :: Error -> Error -> Bool
$c== :: Error -> Error -> Bool
Eq)

instance P.Enum Error where
    fromEnum :: Error -> Int
fromEnum Error
ErrorAssetWrongId = Int
0
    fromEnum Error
ErrorAssetLoading = Int
1
    fromEnum Error
ErrorFormatterMalformedInputFile = Int
2
    fromEnum Error
ErrorInvalidFrameNumber = Int
3
    fromEnum Error
ErrorNegativeLayer = Int
4
    fromEnum Error
ErrorNegativeTime = Int
5
    fromEnum Error
ErrorNotEnoughInternalContent = Int
6
    fromEnum Error
ErrorInvalidOverlapInTrack = Int
7
    fromEnum Error
ErrorInvalidEffectBinDescription = Int
8
    fromEnum (AnotherError Int
k) = Int
k

    toEnum :: Int -> Error
toEnum Int
0 = Error
ErrorAssetWrongId
    toEnum Int
1 = Error
ErrorAssetLoading
    toEnum Int
2 = Error
ErrorFormatterMalformedInputFile
    toEnum Int
3 = Error
ErrorInvalidFrameNumber
    toEnum Int
4 = Error
ErrorNegativeLayer
    toEnum Int
5 = Error
ErrorNegativeTime
    toEnum Int
6 = Error
ErrorNotEnoughInternalContent
    toEnum Int
7 = Error
ErrorInvalidOverlapInTrack
    toEnum Int
8 = Error
ErrorInvalidEffectBinDescription
    toEnum Int
k = Int -> Error
AnotherError Int
k

instance P.Ord Error where
    compare :: Error -> Error -> Ordering
compare Error
a Error
b = forall a. Ord a => a -> a -> Ordering
P.compare (forall a. Enum a => a -> Int
P.fromEnum Error
a) (forall a. Enum a => a -> Int
P.fromEnum Error
b)

-- Enum EditMode
-- | When a single timeline element is edited within its timeline at some
-- position, using 'GI.GES.Objects.TimelineElement.timelineElementEdit', depending on the edit
-- mode, its [TimelineElement:start]("GI.GES.Objects.TimelineElement#g:attr:start"), [TimelineElement:duration]("GI.GES.Objects.TimelineElement#g:attr:duration") or
-- [TimelineElement:inPoint]("GI.GES.Objects.TimelineElement#g:attr:inPoint") will be adjusted accordingly. In addition,
-- any clips may change [Clip:layer]("GI.GES.Objects.Clip#g:attr:layer").
-- 
-- Each edit can be broken down into a combination of three basic edits:
-- 
-- + MOVE: This moves the start of the element to the edit position.
-- + START-TRIM: This cuts or grows the start of the element, whilst
--   maintaining the time at which its internal content appears in the
--   timeline data output. If the element is made shorter, the data that
--   appeared at the edit position will still appear in the timeline at
--   the same time. If the element is made longer, the data that appeared
--   at the previous start of the element will still appear in the
--   timeline at the same time.
-- + END-TRIM: Similar to START-TRIM, but the end of the element is cut or
--   grown.
-- 
-- In particular, when editing a t'GI.GES.Objects.Clip.Clip':
-- 
-- + MOVE: This will set the [TimelineElement:start]("GI.GES.Objects.TimelineElement#g:attr:start") of the clip to the
--   edit position.
-- + START-TRIM: This will set the [TimelineElement:start]("GI.GES.Objects.TimelineElement#g:attr:start") of the clip
--   to the edit position. To keep the end time the same, the
--   [TimelineElement:duration]("GI.GES.Objects.TimelineElement#g:attr:duration") of the clip will be adjusted in the
--   opposite direction. In addition, the [TimelineElement:inPoint]("GI.GES.Objects.TimelineElement#g:attr:inPoint") of
--   the clip will be shifted such that the content that appeared at the
--   new or previous start time, whichever is latest, still appears at the
--   same timeline time. For example, if a frame appeared at the start of
--   the clip, and the start of the clip is reduced, the in-point of the
--   clip will also reduce such that the frame will appear later within
--   the clip, but at the same timeline position.
-- + END-TRIM: This will set the [TimelineElement:duration]("GI.GES.Objects.TimelineElement#g:attr:duration") of the clip
--   such that its end time will match the edit position.
-- 
-- When editing a t'GI.GES.Objects.Group.Group':
-- 
-- + MOVE: This will set the [Group:start]("GI.GES.Objects.Group#g:attr:start") of the clip to the edit
--   position by shifting all of its children by the same amount. So each
--   child will maintain their relative positions.
-- + START-TRIM: If the group is made shorter, this will START-TRIM any
--   clips under the group that start after the edit position to the same
--   edit position. If the group is made longer, this will START-TRIM any
--   clip under the group whose start matches the start of the group to
--   the same edit position.
-- + END-TRIM: If the group is made shorter, this will END-TRIM any clips
--   under the group that end after the edit position to the same edit
--   position. If the group is made longer, this will END-TRIM any clip
--   under the group whose end matches the end of the group to the same
--   edit position.
-- 
-- When editing a t'GI.GES.Objects.TrackElement.TrackElement', if it has a t'GI.GES.Objects.Clip.Clip' parent, this
-- will be edited instead. Otherwise it is edited in the same way as a
-- t'GI.GES.Objects.Clip.Clip'.
-- 
-- The layer priority of a t'GI.GES.Objects.Group.Group' is the lowest layer priority of any
-- t'GI.GES.Objects.Clip.Clip' underneath it. When a group is edited to a new layer
-- priority, it will shift all clips underneath it by the same amount,
-- such that their relative layers stay the same.
-- 
-- If the t'GI.GES.Objects.Timeline.Timeline' has a [Timeline:snappingDistance]("GI.GES.Objects.Timeline#g:attr:snappingDistance"), then snapping
-- may occur for some of the edges of the **main** edited element:
-- 
-- + MOVE: The start or end edge of *any* t'GI.GES.Objects.Source.Source' under the element may
--   be snapped.
-- + START-TRIM: The start edge of a t'GI.GES.Objects.Source.Source' whose start edge touches
--   the start edge of the element may snap.
-- + END-TRIM: The end edge of a t'GI.GES.Objects.Source.Source' whose end edge touches the end
--   edge of the element may snap.
-- 
-- These edges may snap with either the start or end edge of *any* other
-- t'GI.GES.Objects.Source.Source' in the timeline that is not also being moved by the element,
-- including those in different layers, if they are within the
-- [Timeline:snappingDistance]("GI.GES.Objects.Timeline#g:attr:snappingDistance"). During an edit, only up to one snap can
-- occur. This will shift the edit position such that the snapped edges
-- will touch once the edit has completed.
-- 
-- Note that snapping can cause an edit to fail where it would have
-- otherwise succeeded because it may push the edit position such that the
-- edit would result in an unsupported timeline configuration. Similarly,
-- snapping can cause an edit to succeed where it would have otherwise
-- failed.
-- 
-- For example, in @/GES_EDIT_MODE_RIPPLE/@ acting on @/GES_EDGE_NONE/@, the
-- main element is the MOVED toplevel of the edited element. Any source
-- under the main MOVED toplevel may have its start or end edge snapped.
-- Note, these sources cannot snap with each other. The edit may also
-- push other elements, but any sources under these elements cannot snap,
-- nor can they be snapped with. If a snap does occur, the MOVE of the
-- toplevel *and* all other elements pushed by the ripple will be shifted
-- by the same amount such that the snapped edges will touch.
-- 
-- You can also find more explanation about the behaviour of those modes at:
-- <http://pitivi.org/manual/trimming.html trim, ripple and roll>
-- and <http://pitivi.org/manual/usingclips.html clip management>.
data EditMode = 
      EditModeEditNormal
    -- ^ The element is edited the normal way (default).
    --  If acting on the element as a whole (@/GES_EDGE_NONE/@), this will MOVE
    --  the element by MOVING its toplevel. When acting on the start of the
    --  element (@/GES_EDGE_START/@), this will only MOVE the element, but not
    --  its toplevel parent. This can allow you to move a t'GI.GES.Objects.Clip.Clip' or
    --  t'GI.GES.Objects.Group.Group' to a new start time or layer within its container group,
    --  without effecting other members of the group. When acting on the end
    --  of the element (@/GES_EDGE_END/@), this will END-TRIM the element,
    --  leaving its toplevel unchanged.
    | EditModeNormal
    -- ^ The element is edited the normal way (default).
    --  If acting on the element as a whole (@/GES_EDGE_NONE/@), this will MOVE
    --  the element by MOVING its toplevel. When acting on the start of the
    --  element (@/GES_EDGE_START/@), this will only MOVE the element, but not
    --  its toplevel parent. This can allow you to move a t'GI.GES.Objects.Clip.Clip' or
    --  t'GI.GES.Objects.Group.Group' to a new start time or layer within its container group,
    --  without effecting other members of the group. When acting on the end
    --  of the element (@/GES_EDGE_END/@), this will END-TRIM the element,
    --  leaving its toplevel unchanged.
    | EditModeEditRipple
    -- ^ The element is edited in ripple mode: moving
    --  itself as well as later elements, keeping their relative times. This
    --  edits the element the same as @/GES_EDIT_MODE_NORMAL/@. In addition, if
    --  acting on the element as a whole, or the start of the element, any
    --  toplevel element in the same timeline (including different layers)
    --  whose start time is later than the *current* start time of the MOVED
    --  element will also be MOVED by the same shift as the edited element.
    --  If acting on the end of the element, any toplevel element whose start
    --  time is later than the *current* end time of the edited element will
    --  also be MOVED by the same shift as the change in the end of the
    --  edited element. These additional elements will also be shifted by
    --  the same shift in layers as the edited element.
    | EditModeRipple
    -- ^ The element is edited in ripple mode: moving
    --  itself as well as later elements, keeping their relative times. This
    --  edits the element the same as @/GES_EDIT_MODE_NORMAL/@. In addition, if
    --  acting on the element as a whole, or the start of the element, any
    --  toplevel element in the same timeline (including different layers)
    --  whose start time is later than the *current* start time of the MOVED
    --  element will also be MOVED by the same shift as the edited element.
    --  If acting on the end of the element, any toplevel element whose start
    --  time is later than the *current* end time of the edited element will
    --  also be MOVED by the same shift as the change in the end of the
    --  edited element. These additional elements will also be shifted by
    --  the same shift in layers as the edited element.
    | EditModeEditRoll
    -- ^ The element is edited in roll mode: swapping its
    --  content for its neighbour\'s, or vis versa, in the timeline output.
    --  This edits the element the same as @/GES_EDIT_MODE_TRIM/@. In addition,
    --  any neighbours are also TRIMMED at their opposite edge to the same
    --  timeline position. When acting on the start of the element, a
    --  neighbour is any earlier element in the timeline whose end time
    --  matches the *current* start time of the edited element. When acting on
    --  the end of the element, a neighbour is any later element in the
    --  timeline whose start time matches the *current* start time of the
    --  edited element. In addition, a neighbour have a t'GI.GES.Objects.Source.Source' at its
    --  end\/start edge that shares a track with a t'GI.GES.Objects.Source.Source' at the start\/end
    --  edge of the edited element. Basically, a neighbour is an element that
    --  can be extended, or cut, to have its content replace, or be replaced
    --  by, the content of the edited element. Acting on the element as a
    --  whole (@/GES_EDGE_NONE/@) is not defined. The element can not shift
    --  layers under this mode.
    | EditModeRoll
    -- ^ The element is edited in roll mode: swapping its
    --  content for its neighbour\'s, or vis versa, in the timeline output.
    --  This edits the element the same as @/GES_EDIT_MODE_TRIM/@. In addition,
    --  any neighbours are also TRIMMED at their opposite edge to the same
    --  timeline position. When acting on the start of the element, a
    --  neighbour is any earlier element in the timeline whose end time
    --  matches the *current* start time of the edited element. When acting on
    --  the end of the element, a neighbour is any later element in the
    --  timeline whose start time matches the *current* start time of the
    --  edited element. In addition, a neighbour have a t'GI.GES.Objects.Source.Source' at its
    --  end\/start edge that shares a track with a t'GI.GES.Objects.Source.Source' at the start\/end
    --  edge of the edited element. Basically, a neighbour is an element that
    --  can be extended, or cut, to have its content replace, or be replaced
    --  by, the content of the edited element. Acting on the element as a
    --  whole (@/GES_EDGE_NONE/@) is not defined. The element can not shift
    --  layers under this mode.
    | EditModeEditTrim
    -- ^ The element is edited in trim mode. When acting
    --  on the start of the element, this will START-TRIM it. When acting on
    --  the end of the element, this will END-TRIM it. Acting on the element
    --  as a whole (@/GES_EDGE_NONE/@) is not defined.
    | EditModeTrim
    -- ^ The element is edited in trim mode. When acting
    --  on the start of the element, this will START-TRIM it. When acting on
    --  the end of the element, this will END-TRIM it. Acting on the element
    --  as a whole (@/GES_EDGE_NONE/@) is not defined.
    | EditModeEditSlide
    -- ^ The element is edited in slide mode (not yet
    --  implemented): moving the element replacing or consuming content on
    --  each end. When acting on the element as a whole, this will MOVE the
    --  element, and TRIM any neighbours on either side. A neighbour is
    --  defined in the same way as in @/GES_EDIT_MODE_ROLL/@, but they may be on
    --  either side of the edited elements. Elements at the end with be
    --  START-TRIMMED to the new end position of the edited element. Elements
    --  at the start will be END-TRIMMED to the new start position of the
    --  edited element. Acting on the start or end of the element
    --  (@/GES_EDGE_START/@ and @/GES_EDGE_END/@) is not defined. The element can
    --  not shift layers under this mode.
    | EditModeSlide
    -- ^ The element is edited in slide mode (not yet
    --  implemented): moving the element replacing or consuming content on
    --  each end. When acting on the element as a whole, this will MOVE the
    --  element, and TRIM any neighbours on either side. A neighbour is
    --  defined in the same way as in @/GES_EDIT_MODE_ROLL/@, but they may be on
    --  either side of the edited elements. Elements at the end with be
    --  START-TRIMMED to the new end position of the edited element. Elements
    --  at the start will be END-TRIMMED to the new start position of the
    --  edited element. Acting on the start or end of the element
    --  (@/GES_EDGE_START/@ and @/GES_EDGE_END/@) is not defined. The element can
    --  not shift layers under this mode.
    | AnotherEditMode Int
    -- ^ Catch-all for unknown values
    deriving (Int -> EditMode -> ShowS
[EditMode] -> ShowS
EditMode -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [EditMode] -> ShowS
$cshowList :: [EditMode] -> ShowS
show :: EditMode -> String
$cshow :: EditMode -> String
showsPrec :: Int -> EditMode -> ShowS
$cshowsPrec :: Int -> EditMode -> ShowS
Show, EditMode -> EditMode -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: EditMode -> EditMode -> Bool
$c/= :: EditMode -> EditMode -> Bool
== :: EditMode -> EditMode -> Bool
$c== :: EditMode -> EditMode -> Bool
Eq)

instance P.Enum EditMode where
    fromEnum :: EditMode -> Int
fromEnum EditMode
EditModeEditNormal = Int
0
    fromEnum EditMode
EditModeNormal = Int
0
    fromEnum EditMode
EditModeEditRipple = Int
1
    fromEnum EditMode
EditModeRipple = Int
1
    fromEnum EditMode
EditModeEditRoll = Int
2
    fromEnum EditMode
EditModeRoll = Int
2
    fromEnum EditMode
EditModeEditTrim = Int
3
    fromEnum EditMode
EditModeTrim = Int
3
    fromEnum EditMode
EditModeEditSlide = Int
4
    fromEnum EditMode
EditModeSlide = Int
4
    fromEnum (AnotherEditMode Int
k) = Int
k

    toEnum :: Int -> EditMode
toEnum Int
0 = EditMode
EditModeEditNormal
    toEnum Int
1 = EditMode
EditModeEditRipple
    toEnum Int
2 = EditMode
EditModeEditRoll
    toEnum Int
3 = EditMode
EditModeEditTrim
    toEnum Int
4 = EditMode
EditModeEditSlide
    toEnum Int
k = Int -> EditMode
AnotherEditMode Int
k

instance P.Ord EditMode where
    compare :: EditMode -> EditMode -> Ordering
compare EditMode
a EditMode
b = forall a. Ord a => a -> a -> Ordering
P.compare (forall a. Enum a => a -> Int
P.fromEnum EditMode
a) (forall a. Enum a => a -> Int
P.fromEnum EditMode
b)

type instance O.ParentTypes EditMode = '[]
instance O.HasParentTypes EditMode

foreign import ccall "ges_edit_mode_get_type" c_ges_edit_mode_get_type :: 
    IO GType

instance B.Types.TypedObject EditMode where
    glibType :: IO GType
glibType = IO GType
c_ges_edit_mode_get_type

instance B.Types.BoxedEnum EditMode

-- Enum Edge
-- | The edges of an object contain in a t'GI.GES.Objects.Timeline.Timeline' or t'GI.GES.Objects.Track.Track'
data Edge = 
      EdgeEdgeStart
    -- ^ Represents the start of an object.
    | EdgeStart
    -- ^ Represents the start of an object.
    | EdgeEdgeEnd
    -- ^ Represents the end of an object.
    | EdgeEnd
    -- ^ Represents the end of an object.
    | EdgeEdgeNone
    -- ^ Represent the fact we are not working with any edge of an
    --   object.
    | EdgeNone
    -- ^ Represent the fact we are not working with any edge of an
    --   object.
    | AnotherEdge Int
    -- ^ Catch-all for unknown values
    deriving (Int -> Edge -> ShowS
[Edge] -> ShowS
Edge -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [Edge] -> ShowS
$cshowList :: [Edge] -> ShowS
show :: Edge -> String
$cshow :: Edge -> String
showsPrec :: Int -> Edge -> ShowS
$cshowsPrec :: Int -> Edge -> ShowS
Show, Edge -> Edge -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: Edge -> Edge -> Bool
$c/= :: Edge -> Edge -> Bool
== :: Edge -> Edge -> Bool
$c== :: Edge -> Edge -> Bool
Eq)

instance P.Enum Edge where
    fromEnum :: Edge -> Int
fromEnum Edge
EdgeEdgeStart = Int
0
    fromEnum Edge
EdgeStart = Int
0
    fromEnum Edge
EdgeEdgeEnd = Int
1
    fromEnum Edge
EdgeEnd = Int
1
    fromEnum Edge
EdgeEdgeNone = Int
2
    fromEnum Edge
EdgeNone = Int
2
    fromEnum (AnotherEdge Int
k) = Int
k

    toEnum :: Int -> Edge
toEnum Int
0 = Edge
EdgeEdgeStart
    toEnum Int
1 = Edge
EdgeEdgeEnd
    toEnum Int
2 = Edge
EdgeEdgeNone
    toEnum Int
k = Int -> Edge
AnotherEdge Int
k

instance P.Ord Edge where
    compare :: Edge -> Edge -> Ordering
compare Edge
a Edge
b = forall a. Ord a => a -> a -> Ordering
P.compare (forall a. Enum a => a -> Int
P.fromEnum Edge
a) (forall a. Enum a => a -> Int
P.fromEnum Edge
b)

type instance O.ParentTypes Edge = '[]
instance O.HasParentTypes Edge

foreign import ccall "ges_edge_get_type" c_ges_edge_get_type :: 
    IO GType

instance B.Types.TypedObject Edge where
    glibType :: IO GType
glibType = IO GType
c_ges_edge_get_type

instance B.Types.BoxedEnum Edge

-- Enum ChildrenControlMode
-- | To be used by subclasses only. This indicate how to handle a change in
-- a child.
data ChildrenControlMode = 
      ChildrenControlModeUpdate
    -- ^ /No description available in the introspection data./
    | ChildrenControlModeIgnoreNotifies
    -- ^ /No description available in the introspection data./
    | ChildrenControlModeUpdateOffsets
    -- ^ /No description available in the introspection data./
    | ChildrenControlModeUpdateAllValues
    -- ^ /No description available in the introspection data./
    | ChildrenControlModeLast
    -- ^ /No description available in the introspection data./
    | AnotherChildrenControlMode Int
    -- ^ Catch-all for unknown values
    deriving (Int -> ChildrenControlMode -> ShowS
[ChildrenControlMode] -> ShowS
ChildrenControlMode -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [ChildrenControlMode] -> ShowS
$cshowList :: [ChildrenControlMode] -> ShowS
show :: ChildrenControlMode -> String
$cshow :: ChildrenControlMode -> String
showsPrec :: Int -> ChildrenControlMode -> ShowS
$cshowsPrec :: Int -> ChildrenControlMode -> ShowS
Show, ChildrenControlMode -> ChildrenControlMode -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: ChildrenControlMode -> ChildrenControlMode -> Bool
$c/= :: ChildrenControlMode -> ChildrenControlMode -> Bool
== :: ChildrenControlMode -> ChildrenControlMode -> Bool
$c== :: ChildrenControlMode -> ChildrenControlMode -> Bool
Eq)

instance P.Enum ChildrenControlMode where
    fromEnum :: ChildrenControlMode -> Int
fromEnum ChildrenControlMode
ChildrenControlModeUpdate = Int
0
    fromEnum ChildrenControlMode
ChildrenControlModeIgnoreNotifies = Int
1
    fromEnum ChildrenControlMode
ChildrenControlModeUpdateOffsets = Int
2
    fromEnum ChildrenControlMode
ChildrenControlModeUpdateAllValues = Int
3
    fromEnum ChildrenControlMode
ChildrenControlModeLast = Int
4
    fromEnum (AnotherChildrenControlMode Int
k) = Int
k

    toEnum :: Int -> ChildrenControlMode
toEnum Int
0 = ChildrenControlMode
ChildrenControlModeUpdate
    toEnum Int
1 = ChildrenControlMode
ChildrenControlModeIgnoreNotifies
    toEnum Int
2 = ChildrenControlMode
ChildrenControlModeUpdateOffsets
    toEnum Int
3 = ChildrenControlMode
ChildrenControlModeUpdateAllValues
    toEnum Int
4 = ChildrenControlMode
ChildrenControlModeLast
    toEnum Int
k = Int -> ChildrenControlMode
AnotherChildrenControlMode Int
k

instance P.Ord ChildrenControlMode where
    compare :: ChildrenControlMode -> ChildrenControlMode -> Ordering
compare ChildrenControlMode
a ChildrenControlMode
b = forall a. Ord a => a -> a -> Ordering
P.compare (forall a. Enum a => a -> Int
P.fromEnum ChildrenControlMode
a) (forall a. Enum a => a -> Int
P.fromEnum ChildrenControlMode
b)

-- Enum AssetLoadingReturn
-- | /No description available in the introspection data./
data AssetLoadingReturn = 
      AssetLoadingReturnError
    -- ^ Indicates that an error occurred
    | AssetLoadingReturnAsync
    -- ^ Indicates that the loading is being performed
    -- asynchronously
    | AssetLoadingReturnOk
    -- ^ Indicates that the loading is complete, without
    -- error
    | AnotherAssetLoadingReturn Int
    -- ^ Catch-all for unknown values
    deriving (Int -> AssetLoadingReturn -> ShowS
[AssetLoadingReturn] -> ShowS
AssetLoadingReturn -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [AssetLoadingReturn] -> ShowS
$cshowList :: [AssetLoadingReturn] -> ShowS
show :: AssetLoadingReturn -> String
$cshow :: AssetLoadingReturn -> String
showsPrec :: Int -> AssetLoadingReturn -> ShowS
$cshowsPrec :: Int -> AssetLoadingReturn -> ShowS
Show, AssetLoadingReturn -> AssetLoadingReturn -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: AssetLoadingReturn -> AssetLoadingReturn -> Bool
$c/= :: AssetLoadingReturn -> AssetLoadingReturn -> Bool
== :: AssetLoadingReturn -> AssetLoadingReturn -> Bool
$c== :: AssetLoadingReturn -> AssetLoadingReturn -> Bool
Eq)

instance P.Enum AssetLoadingReturn where
    fromEnum :: AssetLoadingReturn -> Int
fromEnum AssetLoadingReturn
AssetLoadingReturnError = Int
0
    fromEnum AssetLoadingReturn
AssetLoadingReturnAsync = Int
1
    fromEnum AssetLoadingReturn
AssetLoadingReturnOk = Int
2
    fromEnum (AnotherAssetLoadingReturn Int
k) = Int
k

    toEnum :: Int -> AssetLoadingReturn
toEnum Int
0 = AssetLoadingReturn
AssetLoadingReturnError
    toEnum Int
1 = AssetLoadingReturn
AssetLoadingReturnAsync
    toEnum Int
2 = AssetLoadingReturn
AssetLoadingReturnOk
    toEnum Int
k = Int -> AssetLoadingReturn
AnotherAssetLoadingReturn Int
k

instance P.Ord AssetLoadingReturn where
    compare :: AssetLoadingReturn -> AssetLoadingReturn -> Ordering
compare AssetLoadingReturn
a AssetLoadingReturn
b = forall a. Ord a => a -> a -> Ordering
P.compare (forall a. Enum a => a -> Int
P.fromEnum AssetLoadingReturn
a) (forall a. Enum a => a -> Int
P.fromEnum AssetLoadingReturn
b)