{-# LANGUAGE TypeApplications #-}


-- | Copyright  : Will Thompson and Iñaki García Etxebarria
-- License    : LGPL-2.1
-- Maintainer : Iñaki García Etxebarria
-- 
-- An asset types from which t'GI.GES.Objects.SourceClip.SourceClip' will be extracted
-- 
-- /Since: 1.18/

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

module GI.GES.Objects.SourceClipAsset
    ( 

-- * Exported types
    SourceClipAsset(..)                     ,
    IsSourceClipAsset                       ,
    toSourceClipAsset                       ,


 -- * Methods
-- | 
-- 
--  === __Click to display all available methods, including inherited ones__
-- ==== Methods
-- [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"), [extract]("GI.GES.Objects.Asset#g:method:extract"), [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"), [init]("GI.Gio.Interfaces.Initable#g:method:init"), [initAsync]("GI.Gio.Interfaces.AsyncInitable#g:method:initAsync"), [initFinish]("GI.Gio.Interfaces.AsyncInitable#g:method:initFinish"), [isFloating]("GI.GObject.Objects.Object#g:method:isFloating"), [listProxies]("GI.GES.Objects.Asset#g:method:listProxies"), [metasToString]("GI.GES.Interfaces.MetaContainer#g:method:metasToString"), [newFinish]("GI.Gio.Interfaces.AsyncInitable#g:method:newFinish"), [notify]("GI.GObject.Objects.Object#g:method:notify"), [notifyByPspec]("GI.GObject.Objects.Object#g:method:notifyByPspec"), [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"), [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"), [unproxy]("GI.GES.Objects.Asset#g:method:unproxy"), [unref]("GI.GObject.Objects.Object#g:method:unref"), [watchClosure]("GI.GObject.Objects.Object#g:method:watchClosure").
-- 
-- ==== Getters
-- [getBoolean]("GI.GES.Interfaces.MetaContainer#g:method:getBoolean"), [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"), [getError]("GI.GES.Objects.Asset#g:method:getError"), [getExtractableType]("GI.GES.Objects.Asset#g:method:getExtractableType"), [getFloat]("GI.GES.Interfaces.MetaContainer#g:method:getFloat"), [getFrameTime]("GI.GES.Objects.ClipAsset#g:method:getFrameTime"), [getId]("GI.GES.Objects.Asset#g:method:getId"), [getInt]("GI.GES.Interfaces.MetaContainer#g:method:getInt"), [getInt64]("GI.GES.Interfaces.MetaContainer#g:method:getInt64"), [getMarkerList]("GI.GES.Interfaces.MetaContainer#g:method:getMarkerList"), [getMeta]("GI.GES.Interfaces.MetaContainer#g:method:getMeta"), [getNaturalFramerate]("GI.GES.Objects.ClipAsset#g:method:getNaturalFramerate"), [getProperty]("GI.GObject.Objects.Object#g:method:getProperty"), [getProxy]("GI.GES.Objects.Asset#g:method:getProxy"), [getProxyTarget]("GI.GES.Objects.Asset#g:method:getProxyTarget"), [getQdata]("GI.GObject.Objects.Object#g:method:getQdata"), [getString]("GI.GES.Interfaces.MetaContainer#g:method:getString"), [getSupportedFormats]("GI.GES.Objects.ClipAsset#g:method:getSupportedFormats"), [getUint]("GI.GES.Interfaces.MetaContainer#g:method:getUint"), [getUint64]("GI.GES.Interfaces.MetaContainer#g:method:getUint64").
-- 
-- ==== Setters
-- [setBoolean]("GI.GES.Interfaces.MetaContainer#g:method:setBoolean"), [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"), [setFloat]("GI.GES.Interfaces.MetaContainer#g:method:setFloat"), [setInt]("GI.GES.Interfaces.MetaContainer#g:method:setInt"), [setInt64]("GI.GES.Interfaces.MetaContainer#g:method:setInt64"), [setMarkerList]("GI.GES.Interfaces.MetaContainer#g:method:setMarkerList"), [setMeta]("GI.GES.Interfaces.MetaContainer#g:method:setMeta"), [setProperty]("GI.GObject.Objects.Object#g:method:setProperty"), [setProxy]("GI.GES.Objects.Asset#g:method:setProxy"), [setString]("GI.GES.Interfaces.MetaContainer#g:method:setString"), [setSupportedFormats]("GI.GES.Objects.ClipAsset#g:method:setSupportedFormats"), [setUint]("GI.GES.Interfaces.MetaContainer#g:method:setUint"), [setUint64]("GI.GES.Interfaces.MetaContainer#g:method:setUint64").

#if defined(ENABLE_OVERLOADING)
    ResolveSourceClipAssetMethod            ,
#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.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.MetaContainer as GES.MetaContainer
import {-# SOURCE #-} qualified GI.GES.Objects.Asset as GES.Asset
import {-# SOURCE #-} qualified GI.GES.Objects.ClipAsset as GES.ClipAsset
import qualified GI.GObject.Objects.Object as GObject.Object
import qualified GI.Gio.Interfaces.AsyncInitable as Gio.AsyncInitable
import qualified GI.Gio.Interfaces.Initable as Gio.Initable

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

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

foreign import ccall "ges_source_clip_asset_get_type"
    c_ges_source_clip_asset_get_type :: IO B.Types.GType

instance B.Types.TypedObject SourceClipAsset where
    glibType :: IO GType
glibType = IO GType
c_ges_source_clip_asset_get_type

instance B.Types.GObject SourceClipAsset

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

instance O.HasParentTypes SourceClipAsset
type instance O.ParentTypes SourceClipAsset = '[GES.ClipAsset.ClipAsset, GES.Asset.Asset, GObject.Object.Object, GES.MetaContainer.MetaContainer, Gio.AsyncInitable.AsyncInitable, Gio.Initable.Initable]

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

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

#if defined(ENABLE_OVERLOADING)
type family ResolveSourceClipAssetMethod (t :: Symbol) (o :: *) :: * where
    ResolveSourceClipAssetMethod "addMetasFromString" o = GES.MetaContainer.MetaContainerAddMetasFromStringMethodInfo
    ResolveSourceClipAssetMethod "bindProperty" o = GObject.Object.ObjectBindPropertyMethodInfo
    ResolveSourceClipAssetMethod "bindPropertyFull" o = GObject.Object.ObjectBindPropertyFullMethodInfo
    ResolveSourceClipAssetMethod "checkMetaRegistered" o = GES.MetaContainer.MetaContainerCheckMetaRegisteredMethodInfo
    ResolveSourceClipAssetMethod "extract" o = GES.Asset.AssetExtractMethodInfo
    ResolveSourceClipAssetMethod "forceFloating" o = GObject.Object.ObjectForceFloatingMethodInfo
    ResolveSourceClipAssetMethod "foreach" o = GES.MetaContainer.MetaContainerForeachMethodInfo
    ResolveSourceClipAssetMethod "freezeNotify" o = GObject.Object.ObjectFreezeNotifyMethodInfo
    ResolveSourceClipAssetMethod "getv" o = GObject.Object.ObjectGetvMethodInfo
    ResolveSourceClipAssetMethod "init" o = Gio.Initable.InitableInitMethodInfo
    ResolveSourceClipAssetMethod "initAsync" o = Gio.AsyncInitable.AsyncInitableInitAsyncMethodInfo
    ResolveSourceClipAssetMethod "initFinish" o = Gio.AsyncInitable.AsyncInitableInitFinishMethodInfo
    ResolveSourceClipAssetMethod "isFloating" o = GObject.Object.ObjectIsFloatingMethodInfo
    ResolveSourceClipAssetMethod "listProxies" o = GES.Asset.AssetListProxiesMethodInfo
    ResolveSourceClipAssetMethod "metasToString" o = GES.MetaContainer.MetaContainerMetasToStringMethodInfo
    ResolveSourceClipAssetMethod "newFinish" o = Gio.AsyncInitable.AsyncInitableNewFinishMethodInfo
    ResolveSourceClipAssetMethod "notify" o = GObject.Object.ObjectNotifyMethodInfo
    ResolveSourceClipAssetMethod "notifyByPspec" o = GObject.Object.ObjectNotifyByPspecMethodInfo
    ResolveSourceClipAssetMethod "ref" o = GObject.Object.ObjectRefMethodInfo
    ResolveSourceClipAssetMethod "refSink" o = GObject.Object.ObjectRefSinkMethodInfo
    ResolveSourceClipAssetMethod "registerMeta" o = GES.MetaContainer.MetaContainerRegisterMetaMethodInfo
    ResolveSourceClipAssetMethod "registerMetaBoolean" o = GES.MetaContainer.MetaContainerRegisterMetaBooleanMethodInfo
    ResolveSourceClipAssetMethod "registerMetaDate" o = GES.MetaContainer.MetaContainerRegisterMetaDateMethodInfo
    ResolveSourceClipAssetMethod "registerMetaDateTime" o = GES.MetaContainer.MetaContainerRegisterMetaDateTimeMethodInfo
    ResolveSourceClipAssetMethod "registerMetaDouble" o = GES.MetaContainer.MetaContainerRegisterMetaDoubleMethodInfo
    ResolveSourceClipAssetMethod "registerMetaFloat" o = GES.MetaContainer.MetaContainerRegisterMetaFloatMethodInfo
    ResolveSourceClipAssetMethod "registerMetaInt" o = GES.MetaContainer.MetaContainerRegisterMetaIntMethodInfo
    ResolveSourceClipAssetMethod "registerMetaInt64" o = GES.MetaContainer.MetaContainerRegisterMetaInt64MethodInfo
    ResolveSourceClipAssetMethod "registerMetaString" o = GES.MetaContainer.MetaContainerRegisterMetaStringMethodInfo
    ResolveSourceClipAssetMethod "registerMetaUint" o = GES.MetaContainer.MetaContainerRegisterMetaUintMethodInfo
    ResolveSourceClipAssetMethod "registerMetaUint64" o = GES.MetaContainer.MetaContainerRegisterMetaUint64MethodInfo
    ResolveSourceClipAssetMethod "registerStaticMeta" o = GES.MetaContainer.MetaContainerRegisterStaticMetaMethodInfo
    ResolveSourceClipAssetMethod "runDispose" o = GObject.Object.ObjectRunDisposeMethodInfo
    ResolveSourceClipAssetMethod "stealData" o = GObject.Object.ObjectStealDataMethodInfo
    ResolveSourceClipAssetMethod "stealQdata" o = GObject.Object.ObjectStealQdataMethodInfo
    ResolveSourceClipAssetMethod "thawNotify" o = GObject.Object.ObjectThawNotifyMethodInfo
    ResolveSourceClipAssetMethod "unproxy" o = GES.Asset.AssetUnproxyMethodInfo
    ResolveSourceClipAssetMethod "unref" o = GObject.Object.ObjectUnrefMethodInfo
    ResolveSourceClipAssetMethod "watchClosure" o = GObject.Object.ObjectWatchClosureMethodInfo
    ResolveSourceClipAssetMethod "getBoolean" o = GES.MetaContainer.MetaContainerGetBooleanMethodInfo
    ResolveSourceClipAssetMethod "getData" o = GObject.Object.ObjectGetDataMethodInfo
    ResolveSourceClipAssetMethod "getDate" o = GES.MetaContainer.MetaContainerGetDateMethodInfo
    ResolveSourceClipAssetMethod "getDateTime" o = GES.MetaContainer.MetaContainerGetDateTimeMethodInfo
    ResolveSourceClipAssetMethod "getDouble" o = GES.MetaContainer.MetaContainerGetDoubleMethodInfo
    ResolveSourceClipAssetMethod "getError" o = GES.Asset.AssetGetErrorMethodInfo
    ResolveSourceClipAssetMethod "getExtractableType" o = GES.Asset.AssetGetExtractableTypeMethodInfo
    ResolveSourceClipAssetMethod "getFloat" o = GES.MetaContainer.MetaContainerGetFloatMethodInfo
    ResolveSourceClipAssetMethod "getFrameTime" o = GES.ClipAsset.ClipAssetGetFrameTimeMethodInfo
    ResolveSourceClipAssetMethod "getId" o = GES.Asset.AssetGetIdMethodInfo
    ResolveSourceClipAssetMethod "getInt" o = GES.MetaContainer.MetaContainerGetIntMethodInfo
    ResolveSourceClipAssetMethod "getInt64" o = GES.MetaContainer.MetaContainerGetInt64MethodInfo
    ResolveSourceClipAssetMethod "getMarkerList" o = GES.MetaContainer.MetaContainerGetMarkerListMethodInfo
    ResolveSourceClipAssetMethod "getMeta" o = GES.MetaContainer.MetaContainerGetMetaMethodInfo
    ResolveSourceClipAssetMethod "getNaturalFramerate" o = GES.ClipAsset.ClipAssetGetNaturalFramerateMethodInfo
    ResolveSourceClipAssetMethod "getProperty" o = GObject.Object.ObjectGetPropertyMethodInfo
    ResolveSourceClipAssetMethod "getProxy" o = GES.Asset.AssetGetProxyMethodInfo
    ResolveSourceClipAssetMethod "getProxyTarget" o = GES.Asset.AssetGetProxyTargetMethodInfo
    ResolveSourceClipAssetMethod "getQdata" o = GObject.Object.ObjectGetQdataMethodInfo
    ResolveSourceClipAssetMethod "getString" o = GES.MetaContainer.MetaContainerGetStringMethodInfo
    ResolveSourceClipAssetMethod "getSupportedFormats" o = GES.ClipAsset.ClipAssetGetSupportedFormatsMethodInfo
    ResolveSourceClipAssetMethod "getUint" o = GES.MetaContainer.MetaContainerGetUintMethodInfo
    ResolveSourceClipAssetMethod "getUint64" o = GES.MetaContainer.MetaContainerGetUint64MethodInfo
    ResolveSourceClipAssetMethod "setBoolean" o = GES.MetaContainer.MetaContainerSetBooleanMethodInfo
    ResolveSourceClipAssetMethod "setData" o = GObject.Object.ObjectSetDataMethodInfo
    ResolveSourceClipAssetMethod "setDataFull" o = GObject.Object.ObjectSetDataFullMethodInfo
    ResolveSourceClipAssetMethod "setDate" o = GES.MetaContainer.MetaContainerSetDateMethodInfo
    ResolveSourceClipAssetMethod "setDateTime" o = GES.MetaContainer.MetaContainerSetDateTimeMethodInfo
    ResolveSourceClipAssetMethod "setDouble" o = GES.MetaContainer.MetaContainerSetDoubleMethodInfo
    ResolveSourceClipAssetMethod "setFloat" o = GES.MetaContainer.MetaContainerSetFloatMethodInfo
    ResolveSourceClipAssetMethod "setInt" o = GES.MetaContainer.MetaContainerSetIntMethodInfo
    ResolveSourceClipAssetMethod "setInt64" o = GES.MetaContainer.MetaContainerSetInt64MethodInfo
    ResolveSourceClipAssetMethod "setMarkerList" o = GES.MetaContainer.MetaContainerSetMarkerListMethodInfo
    ResolveSourceClipAssetMethod "setMeta" o = GES.MetaContainer.MetaContainerSetMetaMethodInfo
    ResolveSourceClipAssetMethod "setProperty" o = GObject.Object.ObjectSetPropertyMethodInfo
    ResolveSourceClipAssetMethod "setProxy" o = GES.Asset.AssetSetProxyMethodInfo
    ResolveSourceClipAssetMethod "setString" o = GES.MetaContainer.MetaContainerSetStringMethodInfo
    ResolveSourceClipAssetMethod "setSupportedFormats" o = GES.ClipAsset.ClipAssetSetSupportedFormatsMethodInfo
    ResolveSourceClipAssetMethod "setUint" o = GES.MetaContainer.MetaContainerSetUintMethodInfo
    ResolveSourceClipAssetMethod "setUint64" o = GES.MetaContainer.MetaContainerSetUint64MethodInfo
    ResolveSourceClipAssetMethod l o = O.MethodResolutionFailed l o

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

#endif

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

#endif

#if defined(ENABLE_OVERLOADING)
instance O.HasAttributeList SourceClipAsset
type instance O.AttributeList SourceClipAsset = SourceClipAssetAttributeList
type SourceClipAssetAttributeList = ('[ '("extractableType", GES.Asset.AssetExtractableTypePropertyInfo), '("id", GES.Asset.AssetIdPropertyInfo), '("proxy", GES.Asset.AssetProxyPropertyInfo), '("proxyTarget", GES.Asset.AssetProxyTargetPropertyInfo), '("supportedFormats", GES.ClipAsset.ClipAssetSupportedFormatsPropertyInfo)] :: [(Symbol, *)])
#endif

#if defined(ENABLE_OVERLOADING)
#endif

#if defined(ENABLE_OVERLOADING)
type instance O.SignalList SourceClipAsset = SourceClipAssetSignalList
type SourceClipAssetSignalList = ('[ '("notify", GObject.Object.ObjectNotifySignalInfo), '("notifyMeta", GES.MetaContainer.MetaContainerNotifyMetaSignalInfo)] :: [(Symbol, *)])

#endif