{-# LANGUAGE TypeApplications #-}


-- | Copyright  : Will Thompson and Iñaki García Etxebarria
-- License    : LGPL-2.1
-- Maintainer : Iñaki García Etxebarria
-- 
-- === Children Properties
-- 
--  {{ libs\/GESVideoTestSource-children-props.md }}

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

module GI.GES.Objects.VideoTestSource
    ( 

-- * Exported types
    VideoTestSource(..)                     ,
    IsVideoTestSource                       ,
    toVideoTestSource                       ,


 -- * Methods
-- | 
-- 
--  === __Click to display all available methods, including inherited ones__
-- ==== Methods
-- [addChildProperty]("GI.GES.Objects.TimelineElement#g:method:addChildProperty"), [addChildrenProps]("GI.GES.Objects.TrackElement#g:method:addChildrenProps"), [addMetasFromString]("GI.GES.Interfaces.MetaContainer#g:method:addMetasFromString"), [bindProperty]("GI.GObject.Objects.Object#g:method:bindProperty"), [bindPropertyFull]("GI.GObject.Objects.Object#g:method:bindPropertyFull"), [checkMetaRegistered]("GI.GES.Interfaces.MetaContainer#g:method:checkMetaRegistered"), [clampControlSource]("GI.GES.Objects.TrackElement#g:method:clampControlSource"), [copy]("GI.GES.Objects.TimelineElement#g:method:copy"), [edit]("GI.GES.Objects.TrackElement#g:method:edit"), [editFull]("GI.GES.Objects.TimelineElement#g:method:editFull"), [forceFloating]("GI.GObject.Objects.Object#g:method:forceFloating"), [foreach]("GI.GES.Interfaces.MetaContainer#g:method:foreach"), [freezeNotify]("GI.GObject.Objects.Object#g:method:freezeNotify"), [getv]("GI.GObject.Objects.Object#g:method:getv"), [hasInternalSource]("GI.GES.Objects.TrackElement#g:method:hasInternalSource"), [isActive]("GI.GES.Objects.TrackElement#g:method:isActive"), [isCore]("GI.GES.Objects.TrackElement#g:method:isCore"), [isFloating]("GI.GObject.Objects.Object#g:method:isFloating"), [listChildrenProperties]("GI.GES.Objects.TrackElement#g:method:listChildrenProperties"), [lookupChild]("GI.GES.Objects.TrackElement#g:method:lookupChild"), [metasToString]("GI.GES.Interfaces.MetaContainer#g:method:metasToString"), [notify]("GI.GObject.Objects.Object#g:method:notify"), [notifyByPspec]("GI.GObject.Objects.Object#g:method:notifyByPspec"), [paste]("GI.GES.Objects.TimelineElement#g:method:paste"), [ref]("GI.GObject.Objects.Object#g:method:ref"), [refSink]("GI.GObject.Objects.Object#g:method:refSink"), [registerMeta]("GI.GES.Interfaces.MetaContainer#g:method:registerMeta"), [registerMetaBoolean]("GI.GES.Interfaces.MetaContainer#g:method:registerMetaBoolean"), [registerMetaDate]("GI.GES.Interfaces.MetaContainer#g:method:registerMetaDate"), [registerMetaDateTime]("GI.GES.Interfaces.MetaContainer#g:method:registerMetaDateTime"), [registerMetaDouble]("GI.GES.Interfaces.MetaContainer#g:method:registerMetaDouble"), [registerMetaFloat]("GI.GES.Interfaces.MetaContainer#g:method:registerMetaFloat"), [registerMetaInt]("GI.GES.Interfaces.MetaContainer#g:method:registerMetaInt"), [registerMetaInt64]("GI.GES.Interfaces.MetaContainer#g:method:registerMetaInt64"), [registerMetaString]("GI.GES.Interfaces.MetaContainer#g:method:registerMetaString"), [registerMetaUint]("GI.GES.Interfaces.MetaContainer#g:method:registerMetaUint"), [registerMetaUint64]("GI.GES.Interfaces.MetaContainer#g:method:registerMetaUint64"), [registerStaticMeta]("GI.GES.Interfaces.MetaContainer#g:method:registerStaticMeta"), [removeChildProperty]("GI.GES.Objects.TimelineElement#g:method:removeChildProperty"), [removeControlBinding]("GI.GES.Objects.TrackElement#g:method:removeControlBinding"), [ripple]("GI.GES.Objects.TimelineElement#g:method:ripple"), [rippleEnd]("GI.GES.Objects.TimelineElement#g:method:rippleEnd"), [rollEnd]("GI.GES.Objects.TimelineElement#g:method:rollEnd"), [rollStart]("GI.GES.Objects.TimelineElement#g:method:rollStart"), [runDispose]("GI.GObject.Objects.Object#g:method:runDispose"), [stealData]("GI.GObject.Objects.Object#g:method:stealData"), [stealQdata]("GI.GObject.Objects.Object#g:method:stealQdata"), [thawNotify]("GI.GObject.Objects.Object#g:method:thawNotify"), [trim]("GI.GES.Objects.TimelineElement#g:method:trim"), [unref]("GI.GObject.Objects.Object#g:method:unref"), [watchClosure]("GI.GObject.Objects.Object#g:method:watchClosure").
-- 
-- ==== Getters
-- [getAllControlBindings]("GI.GES.Objects.TrackElement#g:method:getAllControlBindings"), [getAsset]("GI.GES.Interfaces.Extractable#g:method:getAsset"), [getAutoClampControlSources]("GI.GES.Objects.TrackElement#g:method:getAutoClampControlSources"), [getBoolean]("GI.GES.Interfaces.MetaContainer#g:method:getBoolean"), [getChildProperty]("GI.GES.Objects.TimelineElement#g:method:getChildProperty"), [getChildPropertyByPspec]("GI.GES.Objects.TimelineElement#g:method:getChildPropertyByPspec"), [getControlBinding]("GI.GES.Objects.TrackElement#g:method:getControlBinding"), [getData]("GI.GObject.Objects.Object#g:method:getData"), [getDate]("GI.GES.Interfaces.MetaContainer#g:method:getDate"), [getDateTime]("GI.GES.Interfaces.MetaContainer#g:method:getDateTime"), [getDouble]("GI.GES.Interfaces.MetaContainer#g:method:getDouble"), [getDuration]("GI.GES.Objects.TimelineElement#g:method:getDuration"), [getElement]("GI.GES.Objects.TrackElement#g:method:getElement"), [getFloat]("GI.GES.Interfaces.MetaContainer#g:method:getFloat"), [getGnlobject]("GI.GES.Objects.TrackElement#g:method:getGnlobject"), [getId]("GI.GES.Interfaces.Extractable#g:method:getId"), [getInpoint]("GI.GES.Objects.TimelineElement#g:method:getInpoint"), [getInt]("GI.GES.Interfaces.MetaContainer#g:method:getInt"), [getInt64]("GI.GES.Interfaces.MetaContainer#g:method:getInt64"), [getLayerPriority]("GI.GES.Objects.TimelineElement#g:method:getLayerPriority"), [getMarkerList]("GI.GES.Interfaces.MetaContainer#g:method:getMarkerList"), [getMaxDuration]("GI.GES.Objects.TimelineElement#g:method:getMaxDuration"), [getMeta]("GI.GES.Interfaces.MetaContainer#g:method:getMeta"), [getName]("GI.GES.Objects.TimelineElement#g:method:getName"), [getNaturalFramerate]("GI.GES.Objects.TimelineElement#g:method:getNaturalFramerate"), [getNaturalSize]("GI.GES.Objects.VideoSource#g:method:getNaturalSize"), [getNleobject]("GI.GES.Objects.TrackElement#g:method:getNleobject"), [getParent]("GI.GES.Objects.TimelineElement#g:method:getParent"), [getPattern]("GI.GES.Objects.VideoTestSource#g:method:getPattern"), [getPriority]("GI.GES.Objects.TimelineElement#g:method:getPriority"), [getProperty]("GI.GObject.Objects.Object#g:method:getProperty"), [getQdata]("GI.GObject.Objects.Object#g:method:getQdata"), [getStart]("GI.GES.Objects.TimelineElement#g:method:getStart"), [getString]("GI.GES.Interfaces.MetaContainer#g:method:getString"), [getTimeline]("GI.GES.Objects.TimelineElement#g:method:getTimeline"), [getToplevelParent]("GI.GES.Objects.TimelineElement#g:method:getToplevelParent"), [getTrack]("GI.GES.Objects.TrackElement#g:method:getTrack"), [getTrackType]("GI.GES.Objects.TrackElement#g:method:getTrackType"), [getTrackTypes]("GI.GES.Objects.TimelineElement#g:method:getTrackTypes"), [getUint]("GI.GES.Interfaces.MetaContainer#g:method:getUint"), [getUint64]("GI.GES.Interfaces.MetaContainer#g:method:getUint64").
-- 
-- ==== Setters
-- [setActive]("GI.GES.Objects.TrackElement#g:method:setActive"), [setAsset]("GI.GES.Interfaces.Extractable#g:method:setAsset"), [setAutoClampControlSources]("GI.GES.Objects.TrackElement#g:method:setAutoClampControlSources"), [setBoolean]("GI.GES.Interfaces.MetaContainer#g:method:setBoolean"), [setChildProperty]("GI.GES.Objects.TimelineElement#g:method:setChildProperty"), [setChildPropertyByPspec]("GI.GES.Objects.TimelineElement#g:method:setChildPropertyByPspec"), [setChildPropertyFull]("GI.GES.Objects.TimelineElement#g:method:setChildPropertyFull"), [setControlSource]("GI.GES.Objects.TrackElement#g:method:setControlSource"), [setData]("GI.GObject.Objects.Object#g:method:setData"), [setDataFull]("GI.GObject.Objects.Object#g:method:setDataFull"), [setDate]("GI.GES.Interfaces.MetaContainer#g:method:setDate"), [setDateTime]("GI.GES.Interfaces.MetaContainer#g:method:setDateTime"), [setDouble]("GI.GES.Interfaces.MetaContainer#g:method:setDouble"), [setDuration]("GI.GES.Objects.TimelineElement#g:method:setDuration"), [setFloat]("GI.GES.Interfaces.MetaContainer#g:method:setFloat"), [setHasInternalSource]("GI.GES.Objects.TrackElement#g:method:setHasInternalSource"), [setInpoint]("GI.GES.Objects.TimelineElement#g:method:setInpoint"), [setInt]("GI.GES.Interfaces.MetaContainer#g:method:setInt"), [setInt64]("GI.GES.Interfaces.MetaContainer#g:method:setInt64"), [setMarkerList]("GI.GES.Interfaces.MetaContainer#g:method:setMarkerList"), [setMaxDuration]("GI.GES.Objects.TimelineElement#g:method:setMaxDuration"), [setMeta]("GI.GES.Interfaces.MetaContainer#g:method:setMeta"), [setName]("GI.GES.Objects.TimelineElement#g:method:setName"), [setParent]("GI.GES.Objects.TimelineElement#g:method:setParent"), [setPattern]("GI.GES.Objects.VideoTestSource#g:method:setPattern"), [setPriority]("GI.GES.Objects.TimelineElement#g:method:setPriority"), [setProperty]("GI.GObject.Objects.Object#g:method:setProperty"), [setStart]("GI.GES.Objects.TimelineElement#g:method:setStart"), [setString]("GI.GES.Interfaces.MetaContainer#g:method:setString"), [setTimeline]("GI.GES.Objects.TimelineElement#g:method:setTimeline"), [setTrackType]("GI.GES.Objects.TrackElement#g:method:setTrackType"), [setUint]("GI.GES.Interfaces.MetaContainer#g:method:setUint"), [setUint64]("GI.GES.Interfaces.MetaContainer#g:method:setUint64").

#if defined(ENABLE_OVERLOADING)
    ResolveVideoTestSourceMethod            ,
#endif

-- ** getPattern #method:getPattern#

#if defined(ENABLE_OVERLOADING)
    VideoTestSourceGetPatternMethodInfo     ,
#endif
    videoTestSourceGetPattern               ,


-- ** setPattern #method:setPattern#

#if defined(ENABLE_OVERLOADING)
    VideoTestSourceSetPatternMethodInfo     ,
#endif
    videoTestSourceSetPattern               ,




    ) 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.Kind as DK
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

import {-# SOURCE #-} qualified GI.GES.Enums as GES.Enums
import {-# SOURCE #-} qualified GI.GES.Interfaces.Extractable as GES.Extractable
import {-# SOURCE #-} qualified GI.GES.Interfaces.MetaContainer as GES.MetaContainer
import {-# SOURCE #-} qualified GI.GES.Objects.Source as GES.Source
import {-# SOURCE #-} qualified GI.GES.Objects.TimelineElement as GES.TimelineElement
import {-# SOURCE #-} qualified GI.GES.Objects.TrackElement as GES.TrackElement
import {-# SOURCE #-} qualified GI.GES.Objects.VideoSource as GES.VideoSource
import qualified GI.GObject.Objects.Object as GObject.Object

-- | Memory-managed wrapper type.
newtype VideoTestSource = VideoTestSource (SP.ManagedPtr VideoTestSource)
    deriving (VideoTestSource -> VideoTestSource -> Bool
(VideoTestSource -> VideoTestSource -> Bool)
-> (VideoTestSource -> VideoTestSource -> Bool)
-> Eq VideoTestSource
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: VideoTestSource -> VideoTestSource -> Bool
== :: VideoTestSource -> VideoTestSource -> Bool
$c/= :: VideoTestSource -> VideoTestSource -> Bool
/= :: VideoTestSource -> VideoTestSource -> Bool
Eq)

instance SP.ManagedPtrNewtype VideoTestSource where
    toManagedPtr :: VideoTestSource -> ManagedPtr VideoTestSource
toManagedPtr (VideoTestSource ManagedPtr VideoTestSource
p) = ManagedPtr VideoTestSource
p

foreign import ccall "ges_video_test_source_get_type"
    c_ges_video_test_source_get_type :: IO B.Types.GType

instance B.Types.TypedObject VideoTestSource where
    glibType :: IO GType
glibType = IO GType
c_ges_video_test_source_get_type

instance B.Types.GObject VideoTestSource

-- | Type class for types which can be safely cast to `VideoTestSource`, for instance with `toVideoTestSource`.
class (SP.GObject o, O.IsDescendantOf VideoTestSource o) => IsVideoTestSource o
instance (SP.GObject o, O.IsDescendantOf VideoTestSource o) => IsVideoTestSource o

instance O.HasParentTypes VideoTestSource
type instance O.ParentTypes VideoTestSource = '[GES.VideoSource.VideoSource, GES.Source.Source, GES.TrackElement.TrackElement, GES.TimelineElement.TimelineElement, GObject.Object.Object, GES.Extractable.Extractable, GES.MetaContainer.MetaContainer]

-- | Cast to `VideoTestSource`, for types for which this is known to be safe. For general casts, use `Data.GI.Base.ManagedPtr.castTo`.
toVideoTestSource :: (MIO.MonadIO m, IsVideoTestSource o) => o -> m VideoTestSource
toVideoTestSource :: forall (m :: * -> *) o.
(MonadIO m, IsVideoTestSource o) =>
o -> m VideoTestSource
toVideoTestSource = IO VideoTestSource -> m VideoTestSource
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
MIO.liftIO (IO VideoTestSource -> m VideoTestSource)
-> (o -> IO VideoTestSource) -> o -> m VideoTestSource
forall b c a. (b -> c) -> (a -> b) -> a -> c
. (ManagedPtr VideoTestSource -> VideoTestSource)
-> o -> IO VideoTestSource
forall o o'.
(HasCallStack, ManagedPtrNewtype o, TypedObject o,
 ManagedPtrNewtype o', TypedObject o') =>
(ManagedPtr o' -> o') -> o -> IO o'
B.ManagedPtr.unsafeCastTo ManagedPtr VideoTestSource -> VideoTestSource
VideoTestSource

-- | Convert 'VideoTestSource' to and from 'Data.GI.Base.GValue.GValue'. See 'Data.GI.Base.GValue.toGValue' and 'Data.GI.Base.GValue.fromGValue'.
instance B.GValue.IsGValue (Maybe VideoTestSource) where
    gvalueGType_ :: IO GType
gvalueGType_ = IO GType
c_ges_video_test_source_get_type
    gvalueSet_ :: Ptr GValue -> Maybe VideoTestSource -> IO ()
gvalueSet_ Ptr GValue
gv Maybe VideoTestSource
P.Nothing = Ptr GValue -> Ptr VideoTestSource -> IO ()
forall a. GObject a => Ptr GValue -> Ptr a -> IO ()
B.GValue.set_object Ptr GValue
gv (Ptr VideoTestSource
forall a. Ptr a
FP.nullPtr :: FP.Ptr VideoTestSource)
    gvalueSet_ Ptr GValue
gv (P.Just VideoTestSource
obj) = VideoTestSource -> (Ptr VideoTestSource -> IO ()) -> IO ()
forall a c.
(HasCallStack, ManagedPtrNewtype a) =>
a -> (Ptr a -> IO c) -> IO c
B.ManagedPtr.withManagedPtr VideoTestSource
obj (Ptr GValue -> Ptr VideoTestSource -> IO ()
forall a. GObject a => Ptr GValue -> Ptr a -> IO ()
B.GValue.set_object Ptr GValue
gv)
    gvalueGet_ :: Ptr GValue -> IO (Maybe VideoTestSource)
gvalueGet_ Ptr GValue
gv = do
        Ptr VideoTestSource
ptr <- Ptr GValue -> IO (Ptr VideoTestSource)
forall a. GObject a => Ptr GValue -> IO (Ptr a)
B.GValue.get_object Ptr GValue
gv :: IO (FP.Ptr VideoTestSource)
        if Ptr VideoTestSource
ptr Ptr VideoTestSource -> Ptr VideoTestSource -> Bool
forall a. Eq a => a -> a -> Bool
/= Ptr VideoTestSource
forall a. Ptr a
FP.nullPtr
        then VideoTestSource -> Maybe VideoTestSource
forall a. a -> Maybe a
P.Just (VideoTestSource -> Maybe VideoTestSource)
-> IO VideoTestSource -> IO (Maybe VideoTestSource)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (ManagedPtr VideoTestSource -> VideoTestSource)
-> Ptr VideoTestSource -> IO VideoTestSource
forall a b.
(HasCallStack, GObject a, GObject b) =>
(ManagedPtr a -> a) -> Ptr b -> IO a
B.ManagedPtr.newObject ManagedPtr VideoTestSource -> VideoTestSource
VideoTestSource Ptr VideoTestSource
ptr
        else Maybe VideoTestSource -> IO (Maybe VideoTestSource)
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return Maybe VideoTestSource
forall a. Maybe a
P.Nothing
        
    

#if defined(ENABLE_OVERLOADING)
type family ResolveVideoTestSourceMethod (t :: Symbol) (o :: DK.Type) :: DK.Type where
    ResolveVideoTestSourceMethod "addChildProperty" o = GES.TimelineElement.TimelineElementAddChildPropertyMethodInfo
    ResolveVideoTestSourceMethod "addChildrenProps" o = GES.TrackElement.TrackElementAddChildrenPropsMethodInfo
    ResolveVideoTestSourceMethod "addMetasFromString" o = GES.MetaContainer.MetaContainerAddMetasFromStringMethodInfo
    ResolveVideoTestSourceMethod "bindProperty" o = GObject.Object.ObjectBindPropertyMethodInfo
    ResolveVideoTestSourceMethod "bindPropertyFull" o = GObject.Object.ObjectBindPropertyFullMethodInfo
    ResolveVideoTestSourceMethod "checkMetaRegistered" o = GES.MetaContainer.MetaContainerCheckMetaRegisteredMethodInfo
    ResolveVideoTestSourceMethod "clampControlSource" o = GES.TrackElement.TrackElementClampControlSourceMethodInfo
    ResolveVideoTestSourceMethod "copy" o = GES.TimelineElement.TimelineElementCopyMethodInfo
    ResolveVideoTestSourceMethod "edit" o = GES.TrackElement.TrackElementEditMethodInfo
    ResolveVideoTestSourceMethod "editFull" o = GES.TimelineElement.TimelineElementEditFullMethodInfo
    ResolveVideoTestSourceMethod "forceFloating" o = GObject.Object.ObjectForceFloatingMethodInfo
    ResolveVideoTestSourceMethod "foreach" o = GES.MetaContainer.MetaContainerForeachMethodInfo
    ResolveVideoTestSourceMethod "freezeNotify" o = GObject.Object.ObjectFreezeNotifyMethodInfo
    ResolveVideoTestSourceMethod "getv" o = GObject.Object.ObjectGetvMethodInfo
    ResolveVideoTestSourceMethod "hasInternalSource" o = GES.TrackElement.TrackElementHasInternalSourceMethodInfo
    ResolveVideoTestSourceMethod "isActive" o = GES.TrackElement.TrackElementIsActiveMethodInfo
    ResolveVideoTestSourceMethod "isCore" o = GES.TrackElement.TrackElementIsCoreMethodInfo
    ResolveVideoTestSourceMethod "isFloating" o = GObject.Object.ObjectIsFloatingMethodInfo
    ResolveVideoTestSourceMethod "listChildrenProperties" o = GES.TrackElement.TrackElementListChildrenPropertiesMethodInfo
    ResolveVideoTestSourceMethod "lookupChild" o = GES.TrackElement.TrackElementLookupChildMethodInfo
    ResolveVideoTestSourceMethod "metasToString" o = GES.MetaContainer.MetaContainerMetasToStringMethodInfo
    ResolveVideoTestSourceMethod "notify" o = GObject.Object.ObjectNotifyMethodInfo
    ResolveVideoTestSourceMethod "notifyByPspec" o = GObject.Object.ObjectNotifyByPspecMethodInfo
    ResolveVideoTestSourceMethod "paste" o = GES.TimelineElement.TimelineElementPasteMethodInfo
    ResolveVideoTestSourceMethod "ref" o = GObject.Object.ObjectRefMethodInfo
    ResolveVideoTestSourceMethod "refSink" o = GObject.Object.ObjectRefSinkMethodInfo
    ResolveVideoTestSourceMethod "registerMeta" o = GES.MetaContainer.MetaContainerRegisterMetaMethodInfo
    ResolveVideoTestSourceMethod "registerMetaBoolean" o = GES.MetaContainer.MetaContainerRegisterMetaBooleanMethodInfo
    ResolveVideoTestSourceMethod "registerMetaDate" o = GES.MetaContainer.MetaContainerRegisterMetaDateMethodInfo
    ResolveVideoTestSourceMethod "registerMetaDateTime" o = GES.MetaContainer.MetaContainerRegisterMetaDateTimeMethodInfo
    ResolveVideoTestSourceMethod "registerMetaDouble" o = GES.MetaContainer.MetaContainerRegisterMetaDoubleMethodInfo
    ResolveVideoTestSourceMethod "registerMetaFloat" o = GES.MetaContainer.MetaContainerRegisterMetaFloatMethodInfo
    ResolveVideoTestSourceMethod "registerMetaInt" o = GES.MetaContainer.MetaContainerRegisterMetaIntMethodInfo
    ResolveVideoTestSourceMethod "registerMetaInt64" o = GES.MetaContainer.MetaContainerRegisterMetaInt64MethodInfo
    ResolveVideoTestSourceMethod "registerMetaString" o = GES.MetaContainer.MetaContainerRegisterMetaStringMethodInfo
    ResolveVideoTestSourceMethod "registerMetaUint" o = GES.MetaContainer.MetaContainerRegisterMetaUintMethodInfo
    ResolveVideoTestSourceMethod "registerMetaUint64" o = GES.MetaContainer.MetaContainerRegisterMetaUint64MethodInfo
    ResolveVideoTestSourceMethod "registerStaticMeta" o = GES.MetaContainer.MetaContainerRegisterStaticMetaMethodInfo
    ResolveVideoTestSourceMethod "removeChildProperty" o = GES.TimelineElement.TimelineElementRemoveChildPropertyMethodInfo
    ResolveVideoTestSourceMethod "removeControlBinding" o = GES.TrackElement.TrackElementRemoveControlBindingMethodInfo
    ResolveVideoTestSourceMethod "ripple" o = GES.TimelineElement.TimelineElementRippleMethodInfo
    ResolveVideoTestSourceMethod "rippleEnd" o = GES.TimelineElement.TimelineElementRippleEndMethodInfo
    ResolveVideoTestSourceMethod "rollEnd" o = GES.TimelineElement.TimelineElementRollEndMethodInfo
    ResolveVideoTestSourceMethod "rollStart" o = GES.TimelineElement.TimelineElementRollStartMethodInfo
    ResolveVideoTestSourceMethod "runDispose" o = GObject.Object.ObjectRunDisposeMethodInfo
    ResolveVideoTestSourceMethod "stealData" o = GObject.Object.ObjectStealDataMethodInfo
    ResolveVideoTestSourceMethod "stealQdata" o = GObject.Object.ObjectStealQdataMethodInfo
    ResolveVideoTestSourceMethod "thawNotify" o = GObject.Object.ObjectThawNotifyMethodInfo
    ResolveVideoTestSourceMethod "trim" o = GES.TimelineElement.TimelineElementTrimMethodInfo
    ResolveVideoTestSourceMethod "unref" o = GObject.Object.ObjectUnrefMethodInfo
    ResolveVideoTestSourceMethod "watchClosure" o = GObject.Object.ObjectWatchClosureMethodInfo
    ResolveVideoTestSourceMethod "getAllControlBindings" o = GES.TrackElement.TrackElementGetAllControlBindingsMethodInfo
    ResolveVideoTestSourceMethod "getAsset" o = GES.Extractable.ExtractableGetAssetMethodInfo
    ResolveVideoTestSourceMethod "getAutoClampControlSources" o = GES.TrackElement.TrackElementGetAutoClampControlSourcesMethodInfo
    ResolveVideoTestSourceMethod "getBoolean" o = GES.MetaContainer.MetaContainerGetBooleanMethodInfo
    ResolveVideoTestSourceMethod "getChildProperty" o = GES.TimelineElement.TimelineElementGetChildPropertyMethodInfo
    ResolveVideoTestSourceMethod "getChildPropertyByPspec" o = GES.TimelineElement.TimelineElementGetChildPropertyByPspecMethodInfo
    ResolveVideoTestSourceMethod "getControlBinding" o = GES.TrackElement.TrackElementGetControlBindingMethodInfo
    ResolveVideoTestSourceMethod "getData" o = GObject.Object.ObjectGetDataMethodInfo
    ResolveVideoTestSourceMethod "getDate" o = GES.MetaContainer.MetaContainerGetDateMethodInfo
    ResolveVideoTestSourceMethod "getDateTime" o = GES.MetaContainer.MetaContainerGetDateTimeMethodInfo
    ResolveVideoTestSourceMethod "getDouble" o = GES.MetaContainer.MetaContainerGetDoubleMethodInfo
    ResolveVideoTestSourceMethod "getDuration" o = GES.TimelineElement.TimelineElementGetDurationMethodInfo
    ResolveVideoTestSourceMethod "getElement" o = GES.TrackElement.TrackElementGetElementMethodInfo
    ResolveVideoTestSourceMethod "getFloat" o = GES.MetaContainer.MetaContainerGetFloatMethodInfo
    ResolveVideoTestSourceMethod "getGnlobject" o = GES.TrackElement.TrackElementGetGnlobjectMethodInfo
    ResolveVideoTestSourceMethod "getId" o = GES.Extractable.ExtractableGetIdMethodInfo
    ResolveVideoTestSourceMethod "getInpoint" o = GES.TimelineElement.TimelineElementGetInpointMethodInfo
    ResolveVideoTestSourceMethod "getInt" o = GES.MetaContainer.MetaContainerGetIntMethodInfo
    ResolveVideoTestSourceMethod "getInt64" o = GES.MetaContainer.MetaContainerGetInt64MethodInfo
    ResolveVideoTestSourceMethod "getLayerPriority" o = GES.TimelineElement.TimelineElementGetLayerPriorityMethodInfo
    ResolveVideoTestSourceMethod "getMarkerList" o = GES.MetaContainer.MetaContainerGetMarkerListMethodInfo
    ResolveVideoTestSourceMethod "getMaxDuration" o = GES.TimelineElement.TimelineElementGetMaxDurationMethodInfo
    ResolveVideoTestSourceMethod "getMeta" o = GES.MetaContainer.MetaContainerGetMetaMethodInfo
    ResolveVideoTestSourceMethod "getName" o = GES.TimelineElement.TimelineElementGetNameMethodInfo
    ResolveVideoTestSourceMethod "getNaturalFramerate" o = GES.TimelineElement.TimelineElementGetNaturalFramerateMethodInfo
    ResolveVideoTestSourceMethod "getNaturalSize" o = GES.VideoSource.VideoSourceGetNaturalSizeMethodInfo
    ResolveVideoTestSourceMethod "getNleobject" o = GES.TrackElement.TrackElementGetNleobjectMethodInfo
    ResolveVideoTestSourceMethod "getParent" o = GES.TimelineElement.TimelineElementGetParentMethodInfo
    ResolveVideoTestSourceMethod "getPattern" o = VideoTestSourceGetPatternMethodInfo
    ResolveVideoTestSourceMethod "getPriority" o = GES.TimelineElement.TimelineElementGetPriorityMethodInfo
    ResolveVideoTestSourceMethod "getProperty" o = GObject.Object.ObjectGetPropertyMethodInfo
    ResolveVideoTestSourceMethod "getQdata" o = GObject.Object.ObjectGetQdataMethodInfo
    ResolveVideoTestSourceMethod "getStart" o = GES.TimelineElement.TimelineElementGetStartMethodInfo
    ResolveVideoTestSourceMethod "getString" o = GES.MetaContainer.MetaContainerGetStringMethodInfo
    ResolveVideoTestSourceMethod "getTimeline" o = GES.TimelineElement.TimelineElementGetTimelineMethodInfo
    ResolveVideoTestSourceMethod "getToplevelParent" o = GES.TimelineElement.TimelineElementGetToplevelParentMethodInfo
    ResolveVideoTestSourceMethod "getTrack" o = GES.TrackElement.TrackElementGetTrackMethodInfo
    ResolveVideoTestSourceMethod "getTrackType" o = GES.TrackElement.TrackElementGetTrackTypeMethodInfo
    ResolveVideoTestSourceMethod "getTrackTypes" o = GES.TimelineElement.TimelineElementGetTrackTypesMethodInfo
    ResolveVideoTestSourceMethod "getUint" o = GES.MetaContainer.MetaContainerGetUintMethodInfo
    ResolveVideoTestSourceMethod "getUint64" o = GES.MetaContainer.MetaContainerGetUint64MethodInfo
    ResolveVideoTestSourceMethod "setActive" o = GES.TrackElement.TrackElementSetActiveMethodInfo
    ResolveVideoTestSourceMethod "setAsset" o = GES.Extractable.ExtractableSetAssetMethodInfo
    ResolveVideoTestSourceMethod "setAutoClampControlSources" o = GES.TrackElement.TrackElementSetAutoClampControlSourcesMethodInfo
    ResolveVideoTestSourceMethod "setBoolean" o = GES.MetaContainer.MetaContainerSetBooleanMethodInfo
    ResolveVideoTestSourceMethod "setChildProperty" o = GES.TimelineElement.TimelineElementSetChildPropertyMethodInfo
    ResolveVideoTestSourceMethod "setChildPropertyByPspec" o = GES.TimelineElement.TimelineElementSetChildPropertyByPspecMethodInfo
    ResolveVideoTestSourceMethod "setChildPropertyFull" o = GES.TimelineElement.TimelineElementSetChildPropertyFullMethodInfo
    ResolveVideoTestSourceMethod "setControlSource" o = GES.TrackElement.TrackElementSetControlSourceMethodInfo
    ResolveVideoTestSourceMethod "setData" o = GObject.Object.ObjectSetDataMethodInfo
    ResolveVideoTestSourceMethod "setDataFull" o = GObject.Object.ObjectSetDataFullMethodInfo
    ResolveVideoTestSourceMethod "setDate" o = GES.MetaContainer.MetaContainerSetDateMethodInfo
    ResolveVideoTestSourceMethod "setDateTime" o = GES.MetaContainer.MetaContainerSetDateTimeMethodInfo
    ResolveVideoTestSourceMethod "setDouble" o = GES.MetaContainer.MetaContainerSetDoubleMethodInfo
    ResolveVideoTestSourceMethod "setDuration" o = GES.TimelineElement.TimelineElementSetDurationMethodInfo
    ResolveVideoTestSourceMethod "setFloat" o = GES.MetaContainer.MetaContainerSetFloatMethodInfo
    ResolveVideoTestSourceMethod "setHasInternalSource" o = GES.TrackElement.TrackElementSetHasInternalSourceMethodInfo
    ResolveVideoTestSourceMethod "setInpoint" o = GES.TimelineElement.TimelineElementSetInpointMethodInfo
    ResolveVideoTestSourceMethod "setInt" o = GES.MetaContainer.MetaContainerSetIntMethodInfo
    ResolveVideoTestSourceMethod "setInt64" o = GES.MetaContainer.MetaContainerSetInt64MethodInfo
    ResolveVideoTestSourceMethod "setMarkerList" o = GES.MetaContainer.MetaContainerSetMarkerListMethodInfo
    ResolveVideoTestSourceMethod "setMaxDuration" o = GES.TimelineElement.TimelineElementSetMaxDurationMethodInfo
    ResolveVideoTestSourceMethod "setMeta" o = GES.MetaContainer.MetaContainerSetMetaMethodInfo
    ResolveVideoTestSourceMethod "setName" o = GES.TimelineElement.TimelineElementSetNameMethodInfo
    ResolveVideoTestSourceMethod "setParent" o = GES.TimelineElement.TimelineElementSetParentMethodInfo
    ResolveVideoTestSourceMethod "setPattern" o = VideoTestSourceSetPatternMethodInfo
    ResolveVideoTestSourceMethod "setPriority" o = GES.TimelineElement.TimelineElementSetPriorityMethodInfo
    ResolveVideoTestSourceMethod "setProperty" o = GObject.Object.ObjectSetPropertyMethodInfo
    ResolveVideoTestSourceMethod "setStart" o = GES.TimelineElement.TimelineElementSetStartMethodInfo
    ResolveVideoTestSourceMethod "setString" o = GES.MetaContainer.MetaContainerSetStringMethodInfo
    ResolveVideoTestSourceMethod "setTimeline" o = GES.TimelineElement.TimelineElementSetTimelineMethodInfo
    ResolveVideoTestSourceMethod "setTrackType" o = GES.TrackElement.TrackElementSetTrackTypeMethodInfo
    ResolveVideoTestSourceMethod "setUint" o = GES.MetaContainer.MetaContainerSetUintMethodInfo
    ResolveVideoTestSourceMethod "setUint64" o = GES.MetaContainer.MetaContainerSetUint64MethodInfo
    ResolveVideoTestSourceMethod l o = O.MethodResolutionFailed l o

instance (info ~ ResolveVideoTestSourceMethod t VideoTestSource, O.OverloadedMethod info VideoTestSource p) => OL.IsLabel t (VideoTestSource -> p) where
#if MIN_VERSION_base(4,10,0)
    fromLabel = O.overloadedMethod @info
#else
    fromLabel _ = O.overloadedMethod @info
#endif

#if MIN_VERSION_base(4,13,0)
instance (info ~ ResolveVideoTestSourceMethod t VideoTestSource, O.OverloadedMethod info VideoTestSource p, R.HasField t VideoTestSource p) => R.HasField t VideoTestSource p where
    getField = O.overloadedMethod @info

#endif

instance (info ~ ResolveVideoTestSourceMethod t VideoTestSource, O.OverloadedMethodInfo info VideoTestSource) => OL.IsLabel t (O.MethodProxy info VideoTestSource) where
#if MIN_VERSION_base(4,10,0)
    fromLabel = O.MethodProxy
#else
    fromLabel _ = O.MethodProxy
#endif

#endif

#if defined(ENABLE_OVERLOADING)
instance O.HasAttributeList VideoTestSource
type instance O.AttributeList VideoTestSource = VideoTestSourceAttributeList
type VideoTestSourceAttributeList = ('[ '("active", GES.TrackElement.TrackElementActivePropertyInfo), '("autoClampControlSources", GES.TrackElement.TrackElementAutoClampControlSourcesPropertyInfo), '("duration", GES.TimelineElement.TimelineElementDurationPropertyInfo), '("hasInternalSource", GES.TrackElement.TrackElementHasInternalSourcePropertyInfo), '("inPoint", GES.TimelineElement.TimelineElementInPointPropertyInfo), '("maxDuration", GES.TimelineElement.TimelineElementMaxDurationPropertyInfo), '("name", GES.TimelineElement.TimelineElementNamePropertyInfo), '("parent", GES.TimelineElement.TimelineElementParentPropertyInfo), '("priority", GES.TimelineElement.TimelineElementPriorityPropertyInfo), '("serialize", GES.TimelineElement.TimelineElementSerializePropertyInfo), '("start", GES.TimelineElement.TimelineElementStartPropertyInfo), '("timeline", GES.TimelineElement.TimelineElementTimelinePropertyInfo), '("track", GES.TrackElement.TrackElementTrackPropertyInfo), '("trackType", GES.TrackElement.TrackElementTrackTypePropertyInfo)] :: [(Symbol, DK.Type)])
#endif

#if defined(ENABLE_OVERLOADING)
#endif

#if defined(ENABLE_OVERLOADING)
type instance O.SignalList VideoTestSource = VideoTestSourceSignalList
type VideoTestSourceSignalList = ('[ '("childPropertyAdded", GES.TimelineElement.TimelineElementChildPropertyAddedSignalInfo), '("childPropertyRemoved", GES.TimelineElement.TimelineElementChildPropertyRemovedSignalInfo), '("controlBindingAdded", GES.TrackElement.TrackElementControlBindingAddedSignalInfo), '("controlBindingRemoved", GES.TrackElement.TrackElementControlBindingRemovedSignalInfo), '("deepNotify", GES.TimelineElement.TimelineElementDeepNotifySignalInfo), '("notify", GObject.Object.ObjectNotifySignalInfo), '("notifyMeta", GES.MetaContainer.MetaContainerNotifyMetaSignalInfo)] :: [(Symbol, DK.Type)])

#endif

-- method VideoTestSource::get_pattern
-- method type : OrdinaryMethod
-- Args: [ Arg
--           { argCName = "source"
--           , argType =
--               TInterface Name { namespace = "GES" , name = "VideoTestSource" }
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText = Just "a #GESVideoTestPattern"
--                 , sinceVersion = Nothing
--                 }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       ]
-- Lengths: []
-- returnType: Just
--               (TInterface Name { namespace = "GES" , name = "VideoTestPattern" })
-- throws : False
-- Skip return : False

foreign import ccall "ges_video_test_source_get_pattern" ges_video_test_source_get_pattern :: 
    Ptr VideoTestSource ->                  -- source : TInterface (Name {namespace = "GES", name = "VideoTestSource"})
    IO CUInt

-- | Get the video pattern used by the /@source@/.
videoTestSourceGetPattern ::
    (B.CallStack.HasCallStack, MonadIO m, IsVideoTestSource a) =>
    a
    -- ^ /@source@/: a t'GI.GES.Enums.VideoTestPattern'
    -> m GES.Enums.VideoTestPattern
    -- ^ __Returns:__ The video pattern used by the /@source@/.
videoTestSourceGetPattern :: forall (m :: * -> *) a.
(HasCallStack, MonadIO m, IsVideoTestSource a) =>
a -> m VideoTestPattern
videoTestSourceGetPattern a
source = IO VideoTestPattern -> m VideoTestPattern
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO VideoTestPattern -> m VideoTestPattern)
-> IO VideoTestPattern -> m VideoTestPattern
forall a b. (a -> b) -> a -> b
$ do
    Ptr VideoTestSource
source' <- a -> IO (Ptr VideoTestSource)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
source
    CUInt
result <- Ptr VideoTestSource -> IO CUInt
ges_video_test_source_get_pattern Ptr VideoTestSource
source'
    let result' :: VideoTestPattern
result' = (Int -> VideoTestPattern
forall a. Enum a => Int -> a
toEnum (Int -> VideoTestPattern)
-> (CUInt -> Int) -> CUInt -> VideoTestPattern
forall b c a. (b -> c) -> (a -> b) -> a -> c
. CUInt -> Int
forall a b. (Integral a, Num b) => a -> b
fromIntegral) CUInt
result
    a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
source
    VideoTestPattern -> IO VideoTestPattern
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return VideoTestPattern
result'

#if defined(ENABLE_OVERLOADING)
data VideoTestSourceGetPatternMethodInfo
instance (signature ~ (m GES.Enums.VideoTestPattern), MonadIO m, IsVideoTestSource a) => O.OverloadedMethod VideoTestSourceGetPatternMethodInfo a signature where
    overloadedMethod = videoTestSourceGetPattern

instance O.OverloadedMethodInfo VideoTestSourceGetPatternMethodInfo a where
    overloadedMethodInfo = P.Just (O.ResolvedSymbolInfo {
        O.resolvedSymbolName = "GI.GES.Objects.VideoTestSource.videoTestSourceGetPattern",
        O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-ges-1.0.4/docs/GI-GES-Objects-VideoTestSource.html#v:videoTestSourceGetPattern"
        })


#endif

-- method VideoTestSource::set_pattern
-- method type : OrdinaryMethod
-- Args: [ Arg
--           { argCName = "self"
--           , argType =
--               TInterface Name { namespace = "GES" , name = "VideoTestSource" }
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText = Just "a #GESVideoTestSource"
--                 , sinceVersion = Nothing
--                 }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       , Arg
--           { argCName = "pattern"
--           , argType =
--               TInterface Name { namespace = "GES" , name = "VideoTestPattern" }
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText = Just "a #GESVideoTestPattern"
--                 , sinceVersion = Nothing
--                 }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       ]
-- Lengths: []
-- returnType: Nothing
-- throws : False
-- Skip return : False

foreign import ccall "ges_video_test_source_set_pattern" ges_video_test_source_set_pattern :: 
    Ptr VideoTestSource ->                  -- self : TInterface (Name {namespace = "GES", name = "VideoTestSource"})
    CUInt ->                                -- pattern : TInterface (Name {namespace = "GES", name = "VideoTestPattern"})
    IO ()

-- | Sets the source to use the given /@pattern@/.
videoTestSourceSetPattern ::
    (B.CallStack.HasCallStack, MonadIO m, IsVideoTestSource a) =>
    a
    -- ^ /@self@/: a t'GI.GES.Objects.VideoTestSource.VideoTestSource'
    -> GES.Enums.VideoTestPattern
    -- ^ /@pattern@/: a t'GI.GES.Enums.VideoTestPattern'
    -> m ()
videoTestSourceSetPattern :: forall (m :: * -> *) a.
(HasCallStack, MonadIO m, IsVideoTestSource a) =>
a -> VideoTestPattern -> m ()
videoTestSourceSetPattern a
self VideoTestPattern
pattern = IO () -> m ()
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO () -> m ()) -> IO () -> m ()
forall a b. (a -> b) -> a -> b
$ do
    Ptr VideoTestSource
self' <- a -> IO (Ptr VideoTestSource)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
self
    let pattern' :: CUInt
pattern' = (Int -> CUInt
forall a b. (Integral a, Num b) => a -> b
fromIntegral (Int -> CUInt)
-> (VideoTestPattern -> Int) -> VideoTestPattern -> CUInt
forall b c a. (b -> c) -> (a -> b) -> a -> c
. VideoTestPattern -> Int
forall a. Enum a => a -> Int
fromEnum) VideoTestPattern
pattern
    Ptr VideoTestSource -> CUInt -> IO ()
ges_video_test_source_set_pattern Ptr VideoTestSource
self' CUInt
pattern'
    a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
self
    () -> IO ()
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return ()

#if defined(ENABLE_OVERLOADING)
data VideoTestSourceSetPatternMethodInfo
instance (signature ~ (GES.Enums.VideoTestPattern -> m ()), MonadIO m, IsVideoTestSource a) => O.OverloadedMethod VideoTestSourceSetPatternMethodInfo a signature where
    overloadedMethod = videoTestSourceSetPattern

instance O.OverloadedMethodInfo VideoTestSourceSetPatternMethodInfo a where
    overloadedMethodInfo = P.Just (O.ResolvedSymbolInfo {
        O.resolvedSymbolName = "GI.GES.Objects.VideoTestSource.videoTestSourceSetPattern",
        O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-ges-1.0.4/docs/GI-GES-Objects-VideoTestSource.html#v:videoTestSourceSetPattern"
        })


#endif