packages feed

gi-gst-0.1.6.13: GI/Gst/Objects/ProxyPad.hs


{- |
Copyright  : Will Thompson, Iñaki García Etxebarria and Jonas Platte
License    : LGPL-2.1
Maintainer : Iñaki García Etxebarria (garetxe@gmail.com)
-}

module GI.Gst.Objects.ProxyPad
    ( 

-- * Exported types
    ProxyPad(..)                            ,
    ProxyPadK                               ,
    toProxyPad                              ,
    noProxyPad                              ,


 -- * Methods
-- ** proxyPadChainDefault
    proxyPadChainDefault                    ,


-- ** proxyPadChainListDefault
    proxyPadChainListDefault                ,


-- ** proxyPadGetInternal
    ProxyPadGetInternalMethodInfo           ,
    proxyPadGetInternal                     ,


-- ** proxyPadGetrangeDefault
    proxyPadGetrangeDefault                 ,


-- ** proxyPadIterateInternalLinksDefault
    proxyPadIterateInternalLinksDefault     ,




    ) where

import Prelude ()
import Data.GI.Base.ShortPrelude

import qualified Data.Text as T
import qualified Data.ByteString.Char8 as B
import qualified Data.Map as Map

import GI.Gst.Types
import GI.Gst.Callbacks
import qualified GI.GObject as GObject

newtype ProxyPad = ProxyPad (ForeignPtr ProxyPad)
foreign import ccall "gst_proxy_pad_get_type"
    c_gst_proxy_pad_get_type :: IO GType

type instance ParentTypes ProxyPad = ProxyPadParentTypes
type ProxyPadParentTypes = '[Pad, Object, GObject.Object]

instance GObject ProxyPad where
    gobjectIsInitiallyUnowned _ = True
    gobjectType _ = c_gst_proxy_pad_get_type
    

class GObject o => ProxyPadK o
instance (GObject o, IsDescendantOf ProxyPad o) => ProxyPadK o

toProxyPad :: ProxyPadK o => o -> IO ProxyPad
toProxyPad = unsafeCastTo ProxyPad

noProxyPad :: Maybe ProxyPad
noProxyPad = Nothing

type family ResolveProxyPadMethod (t :: Symbol) (o :: *) :: * where
    ResolveProxyPadMethod "activateMode" o = PadActivateModeMethodInfo
    ResolveProxyPadMethod "addControlBinding" o = ObjectAddControlBindingMethodInfo
    ResolveProxyPadMethod "addProbe" o = PadAddProbeMethodInfo
    ResolveProxyPadMethod "bindProperty" o = GObject.ObjectBindPropertyMethodInfo
    ResolveProxyPadMethod "bindPropertyFull" o = GObject.ObjectBindPropertyFullMethodInfo
    ResolveProxyPadMethod "canLink" o = PadCanLinkMethodInfo
    ResolveProxyPadMethod "chain" o = PadChainMethodInfo
    ResolveProxyPadMethod "chainList" o = PadChainListMethodInfo
    ResolveProxyPadMethod "checkReconfigure" o = PadCheckReconfigureMethodInfo
    ResolveProxyPadMethod "createStreamId" o = PadCreateStreamIdMethodInfo
    ResolveProxyPadMethod "defaultError" o = ObjectDefaultErrorMethodInfo
    ResolveProxyPadMethod "eventDefault" o = PadEventDefaultMethodInfo
    ResolveProxyPadMethod "forceFloating" o = GObject.ObjectForceFloatingMethodInfo
    ResolveProxyPadMethod "forward" o = PadForwardMethodInfo
    ResolveProxyPadMethod "freezeNotify" o = GObject.ObjectFreezeNotifyMethodInfo
    ResolveProxyPadMethod "hasActiveControlBindings" o = ObjectHasActiveControlBindingsMethodInfo
    ResolveProxyPadMethod "hasAncestor" o = ObjectHasAncestorMethodInfo
    ResolveProxyPadMethod "hasAsAncestor" o = ObjectHasAsAncestorMethodInfo
    ResolveProxyPadMethod "hasAsParent" o = ObjectHasAsParentMethodInfo
    ResolveProxyPadMethod "hasCurrentCaps" o = PadHasCurrentCapsMethodInfo
    ResolveProxyPadMethod "isActive" o = PadIsActiveMethodInfo
    ResolveProxyPadMethod "isBlocked" o = PadIsBlockedMethodInfo
    ResolveProxyPadMethod "isBlocking" o = PadIsBlockingMethodInfo
    ResolveProxyPadMethod "isFloating" o = GObject.ObjectIsFloatingMethodInfo
    ResolveProxyPadMethod "isLinked" o = PadIsLinkedMethodInfo
    ResolveProxyPadMethod "iterateInternalLinks" o = PadIterateInternalLinksMethodInfo
    ResolveProxyPadMethod "link" o = PadLinkMethodInfo
    ResolveProxyPadMethod "linkFull" o = PadLinkFullMethodInfo
    ResolveProxyPadMethod "markReconfigure" o = PadMarkReconfigureMethodInfo
    ResolveProxyPadMethod "needsReconfigure" o = PadNeedsReconfigureMethodInfo
    ResolveProxyPadMethod "notify" o = GObject.ObjectNotifyMethodInfo
    ResolveProxyPadMethod "notifyByPspec" o = GObject.ObjectNotifyByPspecMethodInfo
    ResolveProxyPadMethod "pauseTask" o = PadPauseTaskMethodInfo
    ResolveProxyPadMethod "peerQuery" o = PadPeerQueryMethodInfo
    ResolveProxyPadMethod "peerQueryAcceptCaps" o = PadPeerQueryAcceptCapsMethodInfo
    ResolveProxyPadMethod "peerQueryCaps" o = PadPeerQueryCapsMethodInfo
    ResolveProxyPadMethod "peerQueryConvert" o = PadPeerQueryConvertMethodInfo
    ResolveProxyPadMethod "peerQueryDuration" o = PadPeerQueryDurationMethodInfo
    ResolveProxyPadMethod "peerQueryPosition" o = PadPeerQueryPositionMethodInfo
    ResolveProxyPadMethod "proxyQueryAcceptCaps" o = PadProxyQueryAcceptCapsMethodInfo
    ResolveProxyPadMethod "proxyQueryCaps" o = PadProxyQueryCapsMethodInfo
    ResolveProxyPadMethod "pullRange" o = PadPullRangeMethodInfo
    ResolveProxyPadMethod "push" o = PadPushMethodInfo
    ResolveProxyPadMethod "pushEvent" o = PadPushEventMethodInfo
    ResolveProxyPadMethod "pushList" o = PadPushListMethodInfo
    ResolveProxyPadMethod "query" o = PadQueryMethodInfo
    ResolveProxyPadMethod "queryAcceptCaps" o = PadQueryAcceptCapsMethodInfo
    ResolveProxyPadMethod "queryCaps" o = PadQueryCapsMethodInfo
    ResolveProxyPadMethod "queryConvert" o = PadQueryConvertMethodInfo
    ResolveProxyPadMethod "queryDefault" o = PadQueryDefaultMethodInfo
    ResolveProxyPadMethod "queryDuration" o = PadQueryDurationMethodInfo
    ResolveProxyPadMethod "queryPosition" o = PadQueryPositionMethodInfo
    ResolveProxyPadMethod "refSink" o = GObject.ObjectRefSinkMethodInfo
    ResolveProxyPadMethod "removeControlBinding" o = ObjectRemoveControlBindingMethodInfo
    ResolveProxyPadMethod "removeProbe" o = PadRemoveProbeMethodInfo
    ResolveProxyPadMethod "replaceData" o = GObject.ObjectReplaceDataMethodInfo
    ResolveProxyPadMethod "replaceQdata" o = GObject.ObjectReplaceQdataMethodInfo
    ResolveProxyPadMethod "runDispose" o = GObject.ObjectRunDisposeMethodInfo
    ResolveProxyPadMethod "sendEvent" o = PadSendEventMethodInfo
    ResolveProxyPadMethod "startTask" o = PadStartTaskMethodInfo
    ResolveProxyPadMethod "stealData" o = GObject.ObjectStealDataMethodInfo
    ResolveProxyPadMethod "stealQdata" o = GObject.ObjectStealQdataMethodInfo
    ResolveProxyPadMethod "stickyEventsForeach" o = PadStickyEventsForeachMethodInfo
    ResolveProxyPadMethod "stopTask" o = PadStopTaskMethodInfo
    ResolveProxyPadMethod "storeStickyEvent" o = PadStoreStickyEventMethodInfo
    ResolveProxyPadMethod "suggestNextSync" o = ObjectSuggestNextSyncMethodInfo
    ResolveProxyPadMethod "syncValues" o = ObjectSyncValuesMethodInfo
    ResolveProxyPadMethod "thawNotify" o = GObject.ObjectThawNotifyMethodInfo
    ResolveProxyPadMethod "unlink" o = PadUnlinkMethodInfo
    ResolveProxyPadMethod "unparent" o = ObjectUnparentMethodInfo
    ResolveProxyPadMethod "useFixedCaps" o = PadUseFixedCapsMethodInfo
    ResolveProxyPadMethod "watchClosure" o = GObject.ObjectWatchClosureMethodInfo
    ResolveProxyPadMethod "getAllowedCaps" o = PadGetAllowedCapsMethodInfo
    ResolveProxyPadMethod "getControlBinding" o = ObjectGetControlBindingMethodInfo
    ResolveProxyPadMethod "getControlRate" o = ObjectGetControlRateMethodInfo
    ResolveProxyPadMethod "getCurrentCaps" o = PadGetCurrentCapsMethodInfo
    ResolveProxyPadMethod "getData" o = GObject.ObjectGetDataMethodInfo
    ResolveProxyPadMethod "getDirection" o = PadGetDirectionMethodInfo
    ResolveProxyPadMethod "getElementPrivate" o = PadGetElementPrivateMethodInfo
    ResolveProxyPadMethod "getGValueArray" o = ObjectGetGValueArrayMethodInfo
    ResolveProxyPadMethod "getInternal" o = ProxyPadGetInternalMethodInfo
    ResolveProxyPadMethod "getLastFlowReturn" o = PadGetLastFlowReturnMethodInfo
    ResolveProxyPadMethod "getName" o = ObjectGetNameMethodInfo
    ResolveProxyPadMethod "getOffset" o = PadGetOffsetMethodInfo
    ResolveProxyPadMethod "getPadTemplate" o = PadGetPadTemplateMethodInfo
    ResolveProxyPadMethod "getPadTemplateCaps" o = PadGetPadTemplateCapsMethodInfo
    ResolveProxyPadMethod "getParent" o = ObjectGetParentMethodInfo
    ResolveProxyPadMethod "getParentElement" o = PadGetParentElementMethodInfo
    ResolveProxyPadMethod "getPathString" o = ObjectGetPathStringMethodInfo
    ResolveProxyPadMethod "getPeer" o = PadGetPeerMethodInfo
    ResolveProxyPadMethod "getProperty" o = GObject.ObjectGetPropertyMethodInfo
    ResolveProxyPadMethod "getQdata" o = GObject.ObjectGetQdataMethodInfo
    ResolveProxyPadMethod "getRange" o = PadGetRangeMethodInfo
    ResolveProxyPadMethod "getStickyEvent" o = PadGetStickyEventMethodInfo
    ResolveProxyPadMethod "getStreamId" o = PadGetStreamIdMethodInfo
    ResolveProxyPadMethod "getValue" o = ObjectGetValueMethodInfo
    ResolveProxyPadMethod "getValueArray" o = ObjectGetValueArrayMethodInfo
    ResolveProxyPadMethod "setActivateFunctionFull" o = PadSetActivateFunctionFullMethodInfo
    ResolveProxyPadMethod "setActivatemodeFunctionFull" o = PadSetActivatemodeFunctionFullMethodInfo
    ResolveProxyPadMethod "setActive" o = PadSetActiveMethodInfo
    ResolveProxyPadMethod "setChainFunctionFull" o = PadSetChainFunctionFullMethodInfo
    ResolveProxyPadMethod "setChainListFunctionFull" o = PadSetChainListFunctionFullMethodInfo
    ResolveProxyPadMethod "setControlBindingDisabled" o = ObjectSetControlBindingDisabledMethodInfo
    ResolveProxyPadMethod "setControlBindingsDisabled" o = ObjectSetControlBindingsDisabledMethodInfo
    ResolveProxyPadMethod "setControlRate" o = ObjectSetControlRateMethodInfo
    ResolveProxyPadMethod "setData" o = GObject.ObjectSetDataMethodInfo
    ResolveProxyPadMethod "setElementPrivate" o = PadSetElementPrivateMethodInfo
    ResolveProxyPadMethod "setEventFunctionFull" o = PadSetEventFunctionFullMethodInfo
    ResolveProxyPadMethod "setGetrangeFunctionFull" o = PadSetGetrangeFunctionFullMethodInfo
    ResolveProxyPadMethod "setIterateInternalLinksFunctionFull" o = PadSetIterateInternalLinksFunctionFullMethodInfo
    ResolveProxyPadMethod "setLinkFunctionFull" o = PadSetLinkFunctionFullMethodInfo
    ResolveProxyPadMethod "setName" o = ObjectSetNameMethodInfo
    ResolveProxyPadMethod "setOffset" o = PadSetOffsetMethodInfo
    ResolveProxyPadMethod "setParent" o = ObjectSetParentMethodInfo
    ResolveProxyPadMethod "setProperty" o = GObject.ObjectSetPropertyMethodInfo
    ResolveProxyPadMethod "setQueryFunctionFull" o = PadSetQueryFunctionFullMethodInfo
    ResolveProxyPadMethod "setUnlinkFunctionFull" o = PadSetUnlinkFunctionFullMethodInfo
    ResolveProxyPadMethod l o = MethodResolutionFailed l o

instance (info ~ ResolveProxyPadMethod t ProxyPad, MethodInfo info ProxyPad p) => IsLabelProxy t (ProxyPad -> p) where
    fromLabelProxy _ = overloadedMethod (MethodProxy :: MethodProxy info)

#if MIN_VERSION_base(4,9,0)
instance (info ~ ResolveProxyPadMethod t ProxyPad, MethodInfo info ProxyPad p) => IsLabel t (ProxyPad -> p) where
    fromLabel _ = overloadedMethod (MethodProxy :: MethodProxy info)
#endif

type instance AttributeList ProxyPad = ProxyPadAttributeList
type ProxyPadAttributeList = ('[ '("caps", PadCapsPropertyInfo), '("direction", PadDirectionPropertyInfo), '("name", ObjectNamePropertyInfo), '("offset", PadOffsetPropertyInfo), '("parent", ObjectParentPropertyInfo), '("template", PadTemplatePropertyInfo)] :: [(Symbol, *)])

type instance SignalList ProxyPad = ProxyPadSignalList
type ProxyPadSignalList = ('[ '("deepNotify", ObjectDeepNotifySignalInfo), '("linked", PadLinkedSignalInfo), '("notify", GObject.ObjectNotifySignalInfo), '("unlinked", PadUnlinkedSignalInfo)] :: [(Symbol, *)])

-- method ProxyPad::get_internal
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "_obj", argType = TInterface "Gst" "ProxyPad", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : TInterface "Gst" "ProxyPad"
-- throws : False
-- Skip return : False

foreign import ccall "gst_proxy_pad_get_internal" gst_proxy_pad_get_internal :: 
    Ptr ProxyPad ->                         -- _obj : TInterface "Gst" "ProxyPad"
    IO (Ptr ProxyPad)


proxyPadGetInternal ::
    (MonadIO m, ProxyPadK a) =>
    a                                       -- _obj
    -> m ProxyPad                           -- result
proxyPadGetInternal _obj = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    result <- gst_proxy_pad_get_internal _obj'
    checkUnexpectedReturnNULL "gst_proxy_pad_get_internal" result
    result' <- (wrapObject ProxyPad) result
    touchManagedPtr _obj
    return result'

data ProxyPadGetInternalMethodInfo
instance (signature ~ (m ProxyPad), MonadIO m, ProxyPadK a) => MethodInfo ProxyPadGetInternalMethodInfo a signature where
    overloadedMethod _ = proxyPadGetInternal

-- method ProxyPad::chain_default
-- method type : MemberFunction
-- Args : [Arg {argCName = "pad", argType = TInterface "Gst" "Pad", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "parent", argType = TInterface "Gst" "Object", direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "buffer", argType = TInterface "Gst" "Buffer", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything}]
-- Lengths : []
-- returnType : TInterface "Gst" "FlowReturn"
-- throws : False
-- Skip return : False

foreign import ccall "gst_proxy_pad_chain_default" gst_proxy_pad_chain_default :: 
    Ptr Pad ->                              -- pad : TInterface "Gst" "Pad"
    Ptr Object ->                           -- parent : TInterface "Gst" "Object"
    Ptr Buffer ->                           -- buffer : TInterface "Gst" "Buffer"
    IO CUInt


proxyPadChainDefault ::
    (MonadIO m, PadK a, ObjectK b) =>
    a                                       -- pad
    -> Maybe (b)                            -- parent
    -> Buffer                               -- buffer
    -> m FlowReturn                         -- result
proxyPadChainDefault pad parent buffer = liftIO $ do
    let pad' = unsafeManagedPtrCastPtr pad
    maybeParent <- case parent of
        Nothing -> return nullPtr
        Just jParent -> do
            let jParent' = unsafeManagedPtrCastPtr jParent
            return jParent'
    buffer' <- copyBoxed buffer
    result <- gst_proxy_pad_chain_default pad' maybeParent buffer'
    let result' = (toEnum . fromIntegral) result
    touchManagedPtr pad
    whenJust parent touchManagedPtr
    touchManagedPtr buffer
    return result'

-- method ProxyPad::chain_list_default
-- method type : MemberFunction
-- Args : [Arg {argCName = "pad", argType = TInterface "Gst" "Pad", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "parent", argType = TInterface "Gst" "Object", direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "list", argType = TInterface "Gst" "BufferList", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything}]
-- Lengths : []
-- returnType : TInterface "Gst" "FlowReturn"
-- throws : False
-- Skip return : False

foreign import ccall "gst_proxy_pad_chain_list_default" gst_proxy_pad_chain_list_default :: 
    Ptr Pad ->                              -- pad : TInterface "Gst" "Pad"
    Ptr Object ->                           -- parent : TInterface "Gst" "Object"
    Ptr BufferList ->                       -- list : TInterface "Gst" "BufferList"
    IO CUInt


proxyPadChainListDefault ::
    (MonadIO m, PadK a, ObjectK b) =>
    a                                       -- pad
    -> Maybe (b)                            -- parent
    -> BufferList                           -- list
    -> m FlowReturn                         -- result
proxyPadChainListDefault pad parent list = liftIO $ do
    let pad' = unsafeManagedPtrCastPtr pad
    maybeParent <- case parent of
        Nothing -> return nullPtr
        Just jParent -> do
            let jParent' = unsafeManagedPtrCastPtr jParent
            return jParent'
    list' <- copyBoxed list
    result <- gst_proxy_pad_chain_list_default pad' maybeParent list'
    let result' = (toEnum . fromIntegral) result
    touchManagedPtr pad
    whenJust parent touchManagedPtr
    touchManagedPtr list
    return result'

-- method ProxyPad::getrange_default
-- method type : MemberFunction
-- Args : [Arg {argCName = "pad", argType = TInterface "Gst" "Pad", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "parent", argType = TInterface "Gst" "Object", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "offset", argType = TBasicType TUInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "size", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "buffer", argType = TInterface "Gst" "Buffer", direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything}]
-- Lengths : []
-- returnType : TInterface "Gst" "FlowReturn"
-- throws : False
-- Skip return : False

foreign import ccall "gst_proxy_pad_getrange_default" gst_proxy_pad_getrange_default :: 
    Ptr Pad ->                              -- pad : TInterface "Gst" "Pad"
    Ptr Object ->                           -- parent : TInterface "Gst" "Object"
    Word64 ->                               -- offset : TBasicType TUInt64
    Word32 ->                               -- size : TBasicType TUInt32
    Ptr Buffer ->                           -- buffer : TInterface "Gst" "Buffer"
    IO CUInt


proxyPadGetrangeDefault ::
    (MonadIO m, PadK a, ObjectK b) =>
    a                                       -- pad
    -> b                                    -- parent
    -> Word64                               -- offset
    -> Word32                               -- size
    -> m (FlowReturn,Buffer)                -- result
proxyPadGetrangeDefault pad parent offset size = liftIO $ do
    let pad' = unsafeManagedPtrCastPtr pad
    let parent' = unsafeManagedPtrCastPtr parent
    buffer <- callocBoxedBytes 112 :: IO (Ptr Buffer)
    result <- gst_proxy_pad_getrange_default pad' parent' offset size buffer
    let result' = (toEnum . fromIntegral) result
    buffer' <- (wrapBoxed Buffer) buffer
    touchManagedPtr pad
    touchManagedPtr parent
    return (result', buffer')

-- method ProxyPad::iterate_internal_links_default
-- method type : MemberFunction
-- Args : [Arg {argCName = "pad", argType = TInterface "Gst" "Pad", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "parent", argType = TInterface "Gst" "Object", direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : TInterface "Gst" "Iterator"
-- throws : False
-- Skip return : False

foreign import ccall "gst_proxy_pad_iterate_internal_links_default" gst_proxy_pad_iterate_internal_links_default :: 
    Ptr Pad ->                              -- pad : TInterface "Gst" "Pad"
    Ptr Object ->                           -- parent : TInterface "Gst" "Object"
    IO (Ptr Iterator)


proxyPadIterateInternalLinksDefault ::
    (MonadIO m, PadK a, ObjectK b) =>
    a                                       -- pad
    -> Maybe (b)                            -- parent
    -> m Iterator                           -- result
proxyPadIterateInternalLinksDefault pad parent = liftIO $ do
    let pad' = unsafeManagedPtrCastPtr pad
    maybeParent <- case parent of
        Nothing -> return nullPtr
        Just jParent -> do
            let jParent' = unsafeManagedPtrCastPtr jParent
            return jParent'
    result <- gst_proxy_pad_iterate_internal_links_default pad' maybeParent
    checkUnexpectedReturnNULL "gst_proxy_pad_iterate_internal_links_default" result
    result' <- (wrapBoxed Iterator) result
    touchManagedPtr pad
    whenJust parent touchManagedPtr
    return result'