{-# LANGUAGE TypeApplications #-}


-- | Copyright  : Will Thompson and Iñaki García Etxebarria
-- License    : LGPL-2.1
-- Maintainer : Iñaki García Etxebarria
-- 
-- t'GI.GES.Objects.BaseEffectClip.BaseEffectClip'-s are clips whose core elements are
-- t'GI.GES.Objects.BaseEffect.BaseEffect'-s.
-- 
-- == Effects
-- 
-- t'GI.GES.Objects.BaseEffectClip.BaseEffectClip'-s can have **additional** t'GI.GES.Objects.BaseEffect.BaseEffect'-s added as
-- non-core elements. These additional effects are applied to the output
-- of the core effects of the clip that they share a t'GI.GES.Objects.Track.Track' with. See
-- t'GI.GES.Objects.Clip.Clip' for how to add and move these effects from the clip.
-- 
-- Note that you cannot add time effects to t'GI.GES.Objects.BaseEffectClip.BaseEffectClip', neither
-- as core children, nor as additional effects.

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

module GI.GES.Objects.BaseEffectClip
    ( 

-- * Exported types
    BaseEffectClip(..)                      ,
    IsBaseEffectClip                        ,
    toBaseEffectClip                        ,


 -- * Methods
-- | 
-- 
--  === __Click to display all available methods, including inherited ones__
-- ==== Methods
-- [add]("GI.GES.Objects.Container#g:method:add"), [addAsset]("GI.GES.Objects.Clip#g:method:addAsset"), [addChildProperty]("GI.GES.Objects.TimelineElement#g:method:addChildProperty"), [addChildToTrack]("GI.GES.Objects.Clip#g:method:addChildToTrack"), [addMetasFromString]("GI.GES.Interfaces.MetaContainer#g:method:addMetasFromString"), [addTopEffect]("GI.GES.Objects.Clip#g:method:addTopEffect"), [bindProperty]("GI.GObject.Objects.Object#g:method:bindProperty"), [bindPropertyFull]("GI.GObject.Objects.Object#g:method:bindPropertyFull"), [checkMetaRegistered]("GI.GES.Interfaces.MetaContainer#g:method:checkMetaRegistered"), [copy]("GI.GES.Objects.TimelineElement#g:method:copy"), [edit]("GI.GES.Objects.Container#g:method:edit"), [editFull]("GI.GES.Objects.TimelineElement#g:method:editFull"), [findTrackElement]("GI.GES.Objects.Clip#g:method:findTrackElement"), [findTrackElements]("GI.GES.Objects.Clip#g:method:findTrackElements"), [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"), [isFloating]("GI.GObject.Objects.Object#g:method:isFloating"), [listChildrenProperties]("GI.GES.Objects.TimelineElement#g:method:listChildrenProperties"), [lookupChild]("GI.GES.Objects.TimelineElement#g:method:lookupChild"), [metasToString]("GI.GES.Interfaces.MetaContainer#g:method:metasToString"), [moveToLayer]("GI.GES.Objects.Clip#g:method:moveToLayer"), [moveToLayerFull]("GI.GES.Objects.Clip#g:method:moveToLayerFull"), [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"), [remove]("GI.GES.Objects.Container#g:method:remove"), [removeChildProperty]("GI.GES.Objects.TimelineElement#g:method:removeChildProperty"), [removeTopEffect]("GI.GES.Objects.Clip#g:method:removeTopEffect"), [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"), [split]("GI.GES.Objects.Clip#g:method:split"), [splitFull]("GI.GES.Objects.Clip#g:method:splitFull"), [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"), [ungroup]("GI.GES.Objects.Container#g:method:ungroup"), [unref]("GI.GObject.Objects.Object#g:method:unref"), [watchClosure]("GI.GObject.Objects.Object#g:method:watchClosure").
-- 
-- ==== Getters
-- [getAsset]("GI.GES.Interfaces.Extractable#g:method:getAsset"), [getBoolean]("GI.GES.Interfaces.MetaContainer#g:method:getBoolean"), [getChildProperty]("GI.GES.Objects.TimelineElement#g:method:getChildProperty"), [getChildPropertyByPspec]("GI.GES.Objects.TimelineElement#g:method:getChildPropertyByPspec"), [getChildren]("GI.GES.Objects.Container#g:method:getChildren"), [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"), [getDurationLimit]("GI.GES.Objects.Clip#g:method:getDurationLimit"), [getFloat]("GI.GES.Interfaces.MetaContainer#g:method:getFloat"), [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"), [getInternalTimeFromTimelineTime]("GI.GES.Objects.Clip#g:method:getInternalTimeFromTimelineTime"), [getLayer]("GI.GES.Objects.Clip#g:method:getLayer"), [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"), [getParent]("GI.GES.Objects.TimelineElement#g:method:getParent"), [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"), [getSupportedFormats]("GI.GES.Objects.Clip#g:method:getSupportedFormats"), [getTimeline]("GI.GES.Objects.TimelineElement#g:method:getTimeline"), [getTimelineTimeFromInternalTime]("GI.GES.Objects.Clip#g:method:getTimelineTimeFromInternalTime"), [getTimelineTimeFromSourceFrame]("GI.GES.Objects.Clip#g:method:getTimelineTimeFromSourceFrame"), [getTopEffectIndex]("GI.GES.Objects.Clip#g:method:getTopEffectIndex"), [getTopEffectPosition]("GI.GES.Objects.Clip#g:method:getTopEffectPosition"), [getTopEffects]("GI.GES.Objects.Clip#g:method:getTopEffects"), [getToplevelParent]("GI.GES.Objects.TimelineElement#g:method:getToplevelParent"), [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
-- [setAsset]("GI.GES.Interfaces.Extractable#g:method:setAsset"), [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"), [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"), [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"), [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"), [setSupportedFormats]("GI.GES.Objects.Clip#g:method:setSupportedFormats"), [setTimeline]("GI.GES.Objects.TimelineElement#g:method:setTimeline"), [setTopEffectIndex]("GI.GES.Objects.Clip#g:method:setTopEffectIndex"), [setTopEffectIndexFull]("GI.GES.Objects.Clip#g:method:setTopEffectIndexFull"), [setTopEffectPriority]("GI.GES.Objects.Clip#g:method:setTopEffectPriority"), [setUint]("GI.GES.Interfaces.MetaContainer#g:method:setUint"), [setUint64]("GI.GES.Interfaces.MetaContainer#g:method:setUint64").

#if defined(ENABLE_OVERLOADING)
    ResolveBaseEffectClipMethod             ,
#endif



    ) 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.Interfaces.Extractable as GES.Extractable
import {-# SOURCE #-} qualified GI.GES.Interfaces.MetaContainer as GES.MetaContainer
import {-# SOURCE #-} qualified GI.GES.Objects.Clip as GES.Clip
import {-# SOURCE #-} qualified GI.GES.Objects.Container as GES.Container
import {-# SOURCE #-} qualified GI.GES.Objects.OperationClip as GES.OperationClip
import {-# SOURCE #-} qualified GI.GES.Objects.TimelineElement as GES.TimelineElement
import qualified GI.GObject.Objects.Object as GObject.Object

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

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

foreign import ccall "ges_base_effect_clip_get_type"
    c_ges_base_effect_clip_get_type :: IO B.Types.GType

instance B.Types.TypedObject BaseEffectClip where
    glibType :: IO GType
glibType = IO GType
c_ges_base_effect_clip_get_type

instance B.Types.GObject BaseEffectClip

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

instance O.HasParentTypes BaseEffectClip
type instance O.ParentTypes BaseEffectClip = '[GES.OperationClip.OperationClip, GES.Clip.Clip, GES.Container.Container, GES.TimelineElement.TimelineElement, GObject.Object.Object, GES.Extractable.Extractable, GES.MetaContainer.MetaContainer]

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

-- | Convert 'BaseEffectClip' 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 BaseEffectClip) where
    gvalueGType_ :: IO GType
gvalueGType_ = IO GType
c_ges_base_effect_clip_get_type
    gvalueSet_ :: Ptr GValue -> Maybe BaseEffectClip -> IO ()
gvalueSet_ Ptr GValue
gv Maybe BaseEffectClip
P.Nothing = Ptr GValue -> Ptr BaseEffectClip -> IO ()
forall a. GObject a => Ptr GValue -> Ptr a -> IO ()
B.GValue.set_object Ptr GValue
gv (Ptr BaseEffectClip
forall a. Ptr a
FP.nullPtr :: FP.Ptr BaseEffectClip)
    gvalueSet_ Ptr GValue
gv (P.Just BaseEffectClip
obj) = BaseEffectClip -> (Ptr BaseEffectClip -> IO ()) -> IO ()
forall a c.
(HasCallStack, ManagedPtrNewtype a) =>
a -> (Ptr a -> IO c) -> IO c
B.ManagedPtr.withManagedPtr BaseEffectClip
obj (Ptr GValue -> Ptr BaseEffectClip -> IO ()
forall a. GObject a => Ptr GValue -> Ptr a -> IO ()
B.GValue.set_object Ptr GValue
gv)
    gvalueGet_ :: Ptr GValue -> IO (Maybe BaseEffectClip)
gvalueGet_ Ptr GValue
gv = do
        Ptr BaseEffectClip
ptr <- Ptr GValue -> IO (Ptr BaseEffectClip)
forall a. GObject a => Ptr GValue -> IO (Ptr a)
B.GValue.get_object Ptr GValue
gv :: IO (FP.Ptr BaseEffectClip)
        if Ptr BaseEffectClip
ptr Ptr BaseEffectClip -> Ptr BaseEffectClip -> Bool
forall a. Eq a => a -> a -> Bool
/= Ptr BaseEffectClip
forall a. Ptr a
FP.nullPtr
        then BaseEffectClip -> Maybe BaseEffectClip
forall a. a -> Maybe a
P.Just (BaseEffectClip -> Maybe BaseEffectClip)
-> IO BaseEffectClip -> IO (Maybe BaseEffectClip)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (ManagedPtr BaseEffectClip -> BaseEffectClip)
-> Ptr BaseEffectClip -> IO BaseEffectClip
forall a b.
(HasCallStack, GObject a, GObject b) =>
(ManagedPtr a -> a) -> Ptr b -> IO a
B.ManagedPtr.newObject ManagedPtr BaseEffectClip -> BaseEffectClip
BaseEffectClip Ptr BaseEffectClip
ptr
        else Maybe BaseEffectClip -> IO (Maybe BaseEffectClip)
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return Maybe BaseEffectClip
forall a. Maybe a
P.Nothing
        
    

#if defined(ENABLE_OVERLOADING)
type family ResolveBaseEffectClipMethod (t :: Symbol) (o :: DK.Type) :: DK.Type where
    ResolveBaseEffectClipMethod "add" o = GES.Container.ContainerAddMethodInfo
    ResolveBaseEffectClipMethod "addAsset" o = GES.Clip.ClipAddAssetMethodInfo
    ResolveBaseEffectClipMethod "addChildProperty" o = GES.TimelineElement.TimelineElementAddChildPropertyMethodInfo
    ResolveBaseEffectClipMethod "addChildToTrack" o = GES.Clip.ClipAddChildToTrackMethodInfo
    ResolveBaseEffectClipMethod "addMetasFromString" o = GES.MetaContainer.MetaContainerAddMetasFromStringMethodInfo
    ResolveBaseEffectClipMethod "addTopEffect" o = GES.Clip.ClipAddTopEffectMethodInfo
    ResolveBaseEffectClipMethod "bindProperty" o = GObject.Object.ObjectBindPropertyMethodInfo
    ResolveBaseEffectClipMethod "bindPropertyFull" o = GObject.Object.ObjectBindPropertyFullMethodInfo
    ResolveBaseEffectClipMethod "checkMetaRegistered" o = GES.MetaContainer.MetaContainerCheckMetaRegisteredMethodInfo
    ResolveBaseEffectClipMethod "copy" o = GES.TimelineElement.TimelineElementCopyMethodInfo
    ResolveBaseEffectClipMethod "edit" o = GES.Container.ContainerEditMethodInfo
    ResolveBaseEffectClipMethod "editFull" o = GES.TimelineElement.TimelineElementEditFullMethodInfo
    ResolveBaseEffectClipMethod "findTrackElement" o = GES.Clip.ClipFindTrackElementMethodInfo
    ResolveBaseEffectClipMethod "findTrackElements" o = GES.Clip.ClipFindTrackElementsMethodInfo
    ResolveBaseEffectClipMethod "forceFloating" o = GObject.Object.ObjectForceFloatingMethodInfo
    ResolveBaseEffectClipMethod "foreach" o = GES.MetaContainer.MetaContainerForeachMethodInfo
    ResolveBaseEffectClipMethod "freezeNotify" o = GObject.Object.ObjectFreezeNotifyMethodInfo
    ResolveBaseEffectClipMethod "getv" o = GObject.Object.ObjectGetvMethodInfo
    ResolveBaseEffectClipMethod "isFloating" o = GObject.Object.ObjectIsFloatingMethodInfo
    ResolveBaseEffectClipMethod "listChildrenProperties" o = GES.TimelineElement.TimelineElementListChildrenPropertiesMethodInfo
    ResolveBaseEffectClipMethod "lookupChild" o = GES.TimelineElement.TimelineElementLookupChildMethodInfo
    ResolveBaseEffectClipMethod "metasToString" o = GES.MetaContainer.MetaContainerMetasToStringMethodInfo
    ResolveBaseEffectClipMethod "moveToLayer" o = GES.Clip.ClipMoveToLayerMethodInfo
    ResolveBaseEffectClipMethod "moveToLayerFull" o = GES.Clip.ClipMoveToLayerFullMethodInfo
    ResolveBaseEffectClipMethod "notify" o = GObject.Object.ObjectNotifyMethodInfo
    ResolveBaseEffectClipMethod "notifyByPspec" o = GObject.Object.ObjectNotifyByPspecMethodInfo
    ResolveBaseEffectClipMethod "paste" o = GES.TimelineElement.TimelineElementPasteMethodInfo
    ResolveBaseEffectClipMethod "ref" o = GObject.Object.ObjectRefMethodInfo
    ResolveBaseEffectClipMethod "refSink" o = GObject.Object.ObjectRefSinkMethodInfo
    ResolveBaseEffectClipMethod "registerMeta" o = GES.MetaContainer.MetaContainerRegisterMetaMethodInfo
    ResolveBaseEffectClipMethod "registerMetaBoolean" o = GES.MetaContainer.MetaContainerRegisterMetaBooleanMethodInfo
    ResolveBaseEffectClipMethod "registerMetaDate" o = GES.MetaContainer.MetaContainerRegisterMetaDateMethodInfo
    ResolveBaseEffectClipMethod "registerMetaDateTime" o = GES.MetaContainer.MetaContainerRegisterMetaDateTimeMethodInfo
    ResolveBaseEffectClipMethod "registerMetaDouble" o = GES.MetaContainer.MetaContainerRegisterMetaDoubleMethodInfo
    ResolveBaseEffectClipMethod "registerMetaFloat" o = GES.MetaContainer.MetaContainerRegisterMetaFloatMethodInfo
    ResolveBaseEffectClipMethod "registerMetaInt" o = GES.MetaContainer.MetaContainerRegisterMetaIntMethodInfo
    ResolveBaseEffectClipMethod "registerMetaInt64" o = GES.MetaContainer.MetaContainerRegisterMetaInt64MethodInfo
    ResolveBaseEffectClipMethod "registerMetaString" o = GES.MetaContainer.MetaContainerRegisterMetaStringMethodInfo
    ResolveBaseEffectClipMethod "registerMetaUint" o = GES.MetaContainer.MetaContainerRegisterMetaUintMethodInfo
    ResolveBaseEffectClipMethod "registerMetaUint64" o = GES.MetaContainer.MetaContainerRegisterMetaUint64MethodInfo
    ResolveBaseEffectClipMethod "registerStaticMeta" o = GES.MetaContainer.MetaContainerRegisterStaticMetaMethodInfo
    ResolveBaseEffectClipMethod "remove" o = GES.Container.ContainerRemoveMethodInfo
    ResolveBaseEffectClipMethod "removeChildProperty" o = GES.TimelineElement.TimelineElementRemoveChildPropertyMethodInfo
    ResolveBaseEffectClipMethod "removeTopEffect" o = GES.Clip.ClipRemoveTopEffectMethodInfo
    ResolveBaseEffectClipMethod "ripple" o = GES.TimelineElement.TimelineElementRippleMethodInfo
    ResolveBaseEffectClipMethod "rippleEnd" o = GES.TimelineElement.TimelineElementRippleEndMethodInfo
    ResolveBaseEffectClipMethod "rollEnd" o = GES.TimelineElement.TimelineElementRollEndMethodInfo
    ResolveBaseEffectClipMethod "rollStart" o = GES.TimelineElement.TimelineElementRollStartMethodInfo
    ResolveBaseEffectClipMethod "runDispose" o = GObject.Object.ObjectRunDisposeMethodInfo
    ResolveBaseEffectClipMethod "split" o = GES.Clip.ClipSplitMethodInfo
    ResolveBaseEffectClipMethod "splitFull" o = GES.Clip.ClipSplitFullMethodInfo
    ResolveBaseEffectClipMethod "stealData" o = GObject.Object.ObjectStealDataMethodInfo
    ResolveBaseEffectClipMethod "stealQdata" o = GObject.Object.ObjectStealQdataMethodInfo
    ResolveBaseEffectClipMethod "thawNotify" o = GObject.Object.ObjectThawNotifyMethodInfo
    ResolveBaseEffectClipMethod "trim" o = GES.TimelineElement.TimelineElementTrimMethodInfo
    ResolveBaseEffectClipMethod "ungroup" o = GES.Container.ContainerUngroupMethodInfo
    ResolveBaseEffectClipMethod "unref" o = GObject.Object.ObjectUnrefMethodInfo
    ResolveBaseEffectClipMethod "watchClosure" o = GObject.Object.ObjectWatchClosureMethodInfo
    ResolveBaseEffectClipMethod "getAsset" o = GES.Extractable.ExtractableGetAssetMethodInfo
    ResolveBaseEffectClipMethod "getBoolean" o = GES.MetaContainer.MetaContainerGetBooleanMethodInfo
    ResolveBaseEffectClipMethod "getChildProperty" o = GES.TimelineElement.TimelineElementGetChildPropertyMethodInfo
    ResolveBaseEffectClipMethod "getChildPropertyByPspec" o = GES.TimelineElement.TimelineElementGetChildPropertyByPspecMethodInfo
    ResolveBaseEffectClipMethod "getChildren" o = GES.Container.ContainerGetChildrenMethodInfo
    ResolveBaseEffectClipMethod "getData" o = GObject.Object.ObjectGetDataMethodInfo
    ResolveBaseEffectClipMethod "getDate" o = GES.MetaContainer.MetaContainerGetDateMethodInfo
    ResolveBaseEffectClipMethod "getDateTime" o = GES.MetaContainer.MetaContainerGetDateTimeMethodInfo
    ResolveBaseEffectClipMethod "getDouble" o = GES.MetaContainer.MetaContainerGetDoubleMethodInfo
    ResolveBaseEffectClipMethod "getDuration" o = GES.TimelineElement.TimelineElementGetDurationMethodInfo
    ResolveBaseEffectClipMethod "getDurationLimit" o = GES.Clip.ClipGetDurationLimitMethodInfo
    ResolveBaseEffectClipMethod "getFloat" o = GES.MetaContainer.MetaContainerGetFloatMethodInfo
    ResolveBaseEffectClipMethod "getId" o = GES.Extractable.ExtractableGetIdMethodInfo
    ResolveBaseEffectClipMethod "getInpoint" o = GES.TimelineElement.TimelineElementGetInpointMethodInfo
    ResolveBaseEffectClipMethod "getInt" o = GES.MetaContainer.MetaContainerGetIntMethodInfo
    ResolveBaseEffectClipMethod "getInt64" o = GES.MetaContainer.MetaContainerGetInt64MethodInfo
    ResolveBaseEffectClipMethod "getInternalTimeFromTimelineTime" o = GES.Clip.ClipGetInternalTimeFromTimelineTimeMethodInfo
    ResolveBaseEffectClipMethod "getLayer" o = GES.Clip.ClipGetLayerMethodInfo
    ResolveBaseEffectClipMethod "getLayerPriority" o = GES.TimelineElement.TimelineElementGetLayerPriorityMethodInfo
    ResolveBaseEffectClipMethod "getMarkerList" o = GES.MetaContainer.MetaContainerGetMarkerListMethodInfo
    ResolveBaseEffectClipMethod "getMaxDuration" o = GES.TimelineElement.TimelineElementGetMaxDurationMethodInfo
    ResolveBaseEffectClipMethod "getMeta" o = GES.MetaContainer.MetaContainerGetMetaMethodInfo
    ResolveBaseEffectClipMethod "getName" o = GES.TimelineElement.TimelineElementGetNameMethodInfo
    ResolveBaseEffectClipMethod "getNaturalFramerate" o = GES.TimelineElement.TimelineElementGetNaturalFramerateMethodInfo
    ResolveBaseEffectClipMethod "getParent" o = GES.TimelineElement.TimelineElementGetParentMethodInfo
    ResolveBaseEffectClipMethod "getPriority" o = GES.TimelineElement.TimelineElementGetPriorityMethodInfo
    ResolveBaseEffectClipMethod "getProperty" o = GObject.Object.ObjectGetPropertyMethodInfo
    ResolveBaseEffectClipMethod "getQdata" o = GObject.Object.ObjectGetQdataMethodInfo
    ResolveBaseEffectClipMethod "getStart" o = GES.TimelineElement.TimelineElementGetStartMethodInfo
    ResolveBaseEffectClipMethod "getString" o = GES.MetaContainer.MetaContainerGetStringMethodInfo
    ResolveBaseEffectClipMethod "getSupportedFormats" o = GES.Clip.ClipGetSupportedFormatsMethodInfo
    ResolveBaseEffectClipMethod "getTimeline" o = GES.TimelineElement.TimelineElementGetTimelineMethodInfo
    ResolveBaseEffectClipMethod "getTimelineTimeFromInternalTime" o = GES.Clip.ClipGetTimelineTimeFromInternalTimeMethodInfo
    ResolveBaseEffectClipMethod "getTimelineTimeFromSourceFrame" o = GES.Clip.ClipGetTimelineTimeFromSourceFrameMethodInfo
    ResolveBaseEffectClipMethod "getTopEffectIndex" o = GES.Clip.ClipGetTopEffectIndexMethodInfo
    ResolveBaseEffectClipMethod "getTopEffectPosition" o = GES.Clip.ClipGetTopEffectPositionMethodInfo
    ResolveBaseEffectClipMethod "getTopEffects" o = GES.Clip.ClipGetTopEffectsMethodInfo
    ResolveBaseEffectClipMethod "getToplevelParent" o = GES.TimelineElement.TimelineElementGetToplevelParentMethodInfo
    ResolveBaseEffectClipMethod "getTrackTypes" o = GES.TimelineElement.TimelineElementGetTrackTypesMethodInfo
    ResolveBaseEffectClipMethod "getUint" o = GES.MetaContainer.MetaContainerGetUintMethodInfo
    ResolveBaseEffectClipMethod "getUint64" o = GES.MetaContainer.MetaContainerGetUint64MethodInfo
    ResolveBaseEffectClipMethod "setAsset" o = GES.Extractable.ExtractableSetAssetMethodInfo
    ResolveBaseEffectClipMethod "setBoolean" o = GES.MetaContainer.MetaContainerSetBooleanMethodInfo
    ResolveBaseEffectClipMethod "setChildProperty" o = GES.TimelineElement.TimelineElementSetChildPropertyMethodInfo
    ResolveBaseEffectClipMethod "setChildPropertyByPspec" o = GES.TimelineElement.TimelineElementSetChildPropertyByPspecMethodInfo
    ResolveBaseEffectClipMethod "setChildPropertyFull" o = GES.TimelineElement.TimelineElementSetChildPropertyFullMethodInfo
    ResolveBaseEffectClipMethod "setData" o = GObject.Object.ObjectSetDataMethodInfo
    ResolveBaseEffectClipMethod "setDataFull" o = GObject.Object.ObjectSetDataFullMethodInfo
    ResolveBaseEffectClipMethod "setDate" o = GES.MetaContainer.MetaContainerSetDateMethodInfo
    ResolveBaseEffectClipMethod "setDateTime" o = GES.MetaContainer.MetaContainerSetDateTimeMethodInfo
    ResolveBaseEffectClipMethod "setDouble" o = GES.MetaContainer.MetaContainerSetDoubleMethodInfo
    ResolveBaseEffectClipMethod "setDuration" o = GES.TimelineElement.TimelineElementSetDurationMethodInfo
    ResolveBaseEffectClipMethod "setFloat" o = GES.MetaContainer.MetaContainerSetFloatMethodInfo
    ResolveBaseEffectClipMethod "setInpoint" o = GES.TimelineElement.TimelineElementSetInpointMethodInfo
    ResolveBaseEffectClipMethod "setInt" o = GES.MetaContainer.MetaContainerSetIntMethodInfo
    ResolveBaseEffectClipMethod "setInt64" o = GES.MetaContainer.MetaContainerSetInt64MethodInfo
    ResolveBaseEffectClipMethod "setMarkerList" o = GES.MetaContainer.MetaContainerSetMarkerListMethodInfo
    ResolveBaseEffectClipMethod "setMaxDuration" o = GES.TimelineElement.TimelineElementSetMaxDurationMethodInfo
    ResolveBaseEffectClipMethod "setMeta" o = GES.MetaContainer.MetaContainerSetMetaMethodInfo
    ResolveBaseEffectClipMethod "setName" o = GES.TimelineElement.TimelineElementSetNameMethodInfo
    ResolveBaseEffectClipMethod "setParent" o = GES.TimelineElement.TimelineElementSetParentMethodInfo
    ResolveBaseEffectClipMethod "setPriority" o = GES.TimelineElement.TimelineElementSetPriorityMethodInfo
    ResolveBaseEffectClipMethod "setProperty" o = GObject.Object.ObjectSetPropertyMethodInfo
    ResolveBaseEffectClipMethod "setStart" o = GES.TimelineElement.TimelineElementSetStartMethodInfo
    ResolveBaseEffectClipMethod "setString" o = GES.MetaContainer.MetaContainerSetStringMethodInfo
    ResolveBaseEffectClipMethod "setSupportedFormats" o = GES.Clip.ClipSetSupportedFormatsMethodInfo
    ResolveBaseEffectClipMethod "setTimeline" o = GES.TimelineElement.TimelineElementSetTimelineMethodInfo
    ResolveBaseEffectClipMethod "setTopEffectIndex" o = GES.Clip.ClipSetTopEffectIndexMethodInfo
    ResolveBaseEffectClipMethod "setTopEffectIndexFull" o = GES.Clip.ClipSetTopEffectIndexFullMethodInfo
    ResolveBaseEffectClipMethod "setTopEffectPriority" o = GES.Clip.ClipSetTopEffectPriorityMethodInfo
    ResolveBaseEffectClipMethod "setUint" o = GES.MetaContainer.MetaContainerSetUintMethodInfo
    ResolveBaseEffectClipMethod "setUint64" o = GES.MetaContainer.MetaContainerSetUint64MethodInfo
    ResolveBaseEffectClipMethod l o = O.MethodResolutionFailed l o

instance (info ~ ResolveBaseEffectClipMethod t BaseEffectClip, O.OverloadedMethod info BaseEffectClip p) => OL.IsLabel t (BaseEffectClip -> 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 ~ ResolveBaseEffectClipMethod t BaseEffectClip, O.OverloadedMethod info BaseEffectClip p, R.HasField t BaseEffectClip p) => R.HasField t BaseEffectClip p where
    getField = O.overloadedMethod @info

#endif

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

#endif

#if defined(ENABLE_OVERLOADING)
instance O.HasAttributeList BaseEffectClip
type instance O.AttributeList BaseEffectClip = BaseEffectClipAttributeList
type BaseEffectClipAttributeList = ('[ '("duration", GES.TimelineElement.TimelineElementDurationPropertyInfo), '("durationLimit", GES.Clip.ClipDurationLimitPropertyInfo), '("height", GES.Container.ContainerHeightPropertyInfo), '("inPoint", GES.TimelineElement.TimelineElementInPointPropertyInfo), '("layer", GES.Clip.ClipLayerPropertyInfo), '("maxDuration", GES.TimelineElement.TimelineElementMaxDurationPropertyInfo), '("name", GES.TimelineElement.TimelineElementNamePropertyInfo), '("parent", GES.TimelineElement.TimelineElementParentPropertyInfo), '("priority", GES.TimelineElement.TimelineElementPriorityPropertyInfo), '("serialize", GES.TimelineElement.TimelineElementSerializePropertyInfo), '("start", GES.TimelineElement.TimelineElementStartPropertyInfo), '("supportedFormats", GES.Clip.ClipSupportedFormatsPropertyInfo), '("timeline", GES.TimelineElement.TimelineElementTimelinePropertyInfo)] :: [(Symbol, DK.Type)])
#endif

#if defined(ENABLE_OVERLOADING)
#endif

#if defined(ENABLE_OVERLOADING)
type instance O.SignalList BaseEffectClip = BaseEffectClipSignalList
type BaseEffectClipSignalList = ('[ '("childAdded", GES.Container.ContainerChildAddedSignalInfo), '("childPropertyAdded", GES.TimelineElement.TimelineElementChildPropertyAddedSignalInfo), '("childPropertyRemoved", GES.TimelineElement.TimelineElementChildPropertyRemovedSignalInfo), '("childRemoved", GES.Container.ContainerChildRemovedSignalInfo), '("deepNotify", GES.TimelineElement.TimelineElementDeepNotifySignalInfo), '("notify", GObject.Object.ObjectNotifySignalInfo), '("notifyMeta", GES.MetaContainer.MetaContainerNotifyMetaSignalInfo)] :: [(Symbol, DK.Type)])

#endif