{-# LANGUAGE TypeApplications #-}


-- | Copyright  : Will Thompson and Iñaki García Etxebarria
-- License    : LGPL-2.1
-- Maintainer : Iñaki García Etxebarria
-- 
-- /No description available in the introspection data./
-- 
-- /Since: 1.16/

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

module GI.GstVideo.Objects.VideoAggregatorPad
    ( 

-- * Exported types
    VideoAggregatorPad(..)                  ,
    IsVideoAggregatorPad                    ,
    toVideoAggregatorPad                    ,


 -- * Methods
-- | 
-- 
--  === __Click to display all available methods, including inherited ones__
-- ==== Methods
-- [activateMode]("GI.Gst.Objects.Pad#g:method:activateMode"), [addControlBinding]("GI.Gst.Objects.Object#g:method:addControlBinding"), [addProbe]("GI.Gst.Objects.Pad#g:method:addProbe"), [bindProperty]("GI.GObject.Objects.Object#g:method:bindProperty"), [bindPropertyFull]("GI.GObject.Objects.Object#g:method:bindPropertyFull"), [canLink]("GI.Gst.Objects.Pad#g:method:canLink"), [chain]("GI.Gst.Objects.Pad#g:method:chain"), [chainList]("GI.Gst.Objects.Pad#g:method:chainList"), [checkReconfigure]("GI.Gst.Objects.Pad#g:method:checkReconfigure"), [createStreamId]("GI.Gst.Objects.Pad#g:method:createStreamId"), [defaultError]("GI.Gst.Objects.Object#g:method:defaultError"), [dropBuffer]("GI.GstBase.Objects.AggregatorPad#g:method:dropBuffer"), [eventDefault]("GI.Gst.Objects.Pad#g:method:eventDefault"), [forceFloating]("GI.GObject.Objects.Object#g:method:forceFloating"), [forward]("GI.Gst.Objects.Pad#g:method:forward"), [freezeNotify]("GI.GObject.Objects.Object#g:method:freezeNotify"), [getv]("GI.GObject.Objects.Object#g:method:getv"), [hasActiveControlBindings]("GI.Gst.Objects.Object#g:method:hasActiveControlBindings"), [hasAncestor]("GI.Gst.Objects.Object#g:method:hasAncestor"), [hasAsAncestor]("GI.Gst.Objects.Object#g:method:hasAsAncestor"), [hasAsParent]("GI.Gst.Objects.Object#g:method:hasAsParent"), [hasBuffer]("GI.GstBase.Objects.AggregatorPad#g:method:hasBuffer"), [hasCurrentBuffer]("GI.GstVideo.Objects.VideoAggregatorPad#g:method:hasCurrentBuffer"), [hasCurrentCaps]("GI.Gst.Objects.Pad#g:method:hasCurrentCaps"), [isActive]("GI.Gst.Objects.Pad#g:method:isActive"), [isBlocked]("GI.Gst.Objects.Pad#g:method:isBlocked"), [isBlocking]("GI.Gst.Objects.Pad#g:method:isBlocking"), [isEos]("GI.GstBase.Objects.AggregatorPad#g:method:isEos"), [isFloating]("GI.GObject.Objects.Object#g:method:isFloating"), [isInactive]("GI.GstBase.Objects.AggregatorPad#g:method:isInactive"), [isLinked]("GI.Gst.Objects.Pad#g:method:isLinked"), [iterateInternalLinks]("GI.Gst.Objects.Pad#g:method:iterateInternalLinks"), [iterateInternalLinksDefault]("GI.Gst.Objects.Pad#g:method:iterateInternalLinksDefault"), [link]("GI.Gst.Objects.Pad#g:method:link"), [linkFull]("GI.Gst.Objects.Pad#g:method:linkFull"), [linkMaybeGhosting]("GI.Gst.Objects.Pad#g:method:linkMaybeGhosting"), [linkMaybeGhostingFull]("GI.Gst.Objects.Pad#g:method:linkMaybeGhostingFull"), [markReconfigure]("GI.Gst.Objects.Pad#g:method:markReconfigure"), [needsReconfigure]("GI.Gst.Objects.Pad#g:method:needsReconfigure"), [notify]("GI.GObject.Objects.Object#g:method:notify"), [notifyByPspec]("GI.GObject.Objects.Object#g:method:notifyByPspec"), [pauseTask]("GI.Gst.Objects.Pad#g:method:pauseTask"), [peekBuffer]("GI.GstBase.Objects.AggregatorPad#g:method:peekBuffer"), [peerQuery]("GI.Gst.Objects.Pad#g:method:peerQuery"), [peerQueryAcceptCaps]("GI.Gst.Objects.Pad#g:method:peerQueryAcceptCaps"), [peerQueryCaps]("GI.Gst.Objects.Pad#g:method:peerQueryCaps"), [peerQueryConvert]("GI.Gst.Objects.Pad#g:method:peerQueryConvert"), [peerQueryDuration]("GI.Gst.Objects.Pad#g:method:peerQueryDuration"), [peerQueryPosition]("GI.Gst.Objects.Pad#g:method:peerQueryPosition"), [popBuffer]("GI.GstBase.Objects.AggregatorPad#g:method:popBuffer"), [proxyQueryAcceptCaps]("GI.Gst.Objects.Pad#g:method:proxyQueryAcceptCaps"), [proxyQueryCaps]("GI.Gst.Objects.Pad#g:method:proxyQueryCaps"), [pullRange]("GI.Gst.Objects.Pad#g:method:pullRange"), [push]("GI.Gst.Objects.Pad#g:method:push"), [pushEvent]("GI.Gst.Objects.Pad#g:method:pushEvent"), [pushList]("GI.Gst.Objects.Pad#g:method:pushList"), [query]("GI.Gst.Objects.Pad#g:method:query"), [queryAcceptCaps]("GI.Gst.Objects.Pad#g:method:queryAcceptCaps"), [queryCaps]("GI.Gst.Objects.Pad#g:method:queryCaps"), [queryConvert]("GI.Gst.Objects.Pad#g:method:queryConvert"), [queryDefault]("GI.Gst.Objects.Pad#g:method:queryDefault"), [queryDuration]("GI.Gst.Objects.Pad#g:method:queryDuration"), [queryPosition]("GI.Gst.Objects.Pad#g:method:queryPosition"), [ref]("GI.Gst.Objects.Object#g:method:ref"), [refSink]("GI.GObject.Objects.Object#g:method:refSink"), [removeControlBinding]("GI.Gst.Objects.Object#g:method:removeControlBinding"), [removeProbe]("GI.Gst.Objects.Pad#g:method:removeProbe"), [runDispose]("GI.GObject.Objects.Object#g:method:runDispose"), [sendEvent]("GI.Gst.Objects.Pad#g:method:sendEvent"), [startTask]("GI.Gst.Objects.Pad#g:method:startTask"), [stealData]("GI.GObject.Objects.Object#g:method:stealData"), [stealQdata]("GI.GObject.Objects.Object#g:method:stealQdata"), [stickyEventsForeach]("GI.Gst.Objects.Pad#g:method:stickyEventsForeach"), [stopTask]("GI.Gst.Objects.Pad#g:method:stopTask"), [storeStickyEvent]("GI.Gst.Objects.Pad#g:method:storeStickyEvent"), [suggestNextSync]("GI.Gst.Objects.Object#g:method:suggestNextSync"), [syncValues]("GI.Gst.Objects.Object#g:method:syncValues"), [thawNotify]("GI.GObject.Objects.Object#g:method:thawNotify"), [unlink]("GI.Gst.Objects.Pad#g:method:unlink"), [unparent]("GI.Gst.Objects.Object#g:method:unparent"), [unref]("GI.Gst.Objects.Object#g:method:unref"), [useFixedCaps]("GI.Gst.Objects.Pad#g:method:useFixedCaps"), [watchClosure]("GI.GObject.Objects.Object#g:method:watchClosure").
-- 
-- ==== Getters
-- [getAllowedCaps]("GI.Gst.Objects.Pad#g:method:getAllowedCaps"), [getControlBinding]("GI.Gst.Objects.Object#g:method:getControlBinding"), [getControlRate]("GI.Gst.Objects.Object#g:method:getControlRate"), [getCurrentBuffer]("GI.GstVideo.Objects.VideoAggregatorPad#g:method:getCurrentBuffer"), [getCurrentCaps]("GI.Gst.Objects.Pad#g:method:getCurrentCaps"), [getData]("GI.GObject.Objects.Object#g:method:getData"), [getDirection]("GI.Gst.Objects.Pad#g:method:getDirection"), [getElementPrivate]("GI.Gst.Objects.Pad#g:method:getElementPrivate"), [getGValueArray]("GI.Gst.Objects.Object#g:method:getGValueArray"), [getLastFlowReturn]("GI.Gst.Objects.Pad#g:method:getLastFlowReturn"), [getName]("GI.Gst.Objects.Object#g:method:getName"), [getOffset]("GI.Gst.Objects.Pad#g:method:getOffset"), [getPadTemplate]("GI.Gst.Objects.Pad#g:method:getPadTemplate"), [getPadTemplateCaps]("GI.Gst.Objects.Pad#g:method:getPadTemplateCaps"), [getParent]("GI.Gst.Objects.Object#g:method:getParent"), [getParentElement]("GI.Gst.Objects.Pad#g:method:getParentElement"), [getPathString]("GI.Gst.Objects.Object#g:method:getPathString"), [getPeer]("GI.Gst.Objects.Pad#g:method:getPeer"), [getPreparedFrame]("GI.GstVideo.Objects.VideoAggregatorPad#g:method:getPreparedFrame"), [getProperty]("GI.GObject.Objects.Object#g:method:getProperty"), [getQdata]("GI.GObject.Objects.Object#g:method:getQdata"), [getRange]("GI.Gst.Objects.Pad#g:method:getRange"), [getSingleInternalLink]("GI.Gst.Objects.Pad#g:method:getSingleInternalLink"), [getStickyEvent]("GI.Gst.Objects.Pad#g:method:getStickyEvent"), [getStream]("GI.Gst.Objects.Pad#g:method:getStream"), [getStreamId]("GI.Gst.Objects.Pad#g:method:getStreamId"), [getTaskState]("GI.Gst.Objects.Pad#g:method:getTaskState"), [getValue]("GI.Gst.Objects.Object#g:method:getValue").
-- 
-- ==== Setters
-- [setActivateFunctionFull]("GI.Gst.Objects.Pad#g:method:setActivateFunctionFull"), [setActivatemodeFunctionFull]("GI.Gst.Objects.Pad#g:method:setActivatemodeFunctionFull"), [setActive]("GI.Gst.Objects.Pad#g:method:setActive"), [setChainFunctionFull]("GI.Gst.Objects.Pad#g:method:setChainFunctionFull"), [setChainListFunctionFull]("GI.Gst.Objects.Pad#g:method:setChainListFunctionFull"), [setControlBindingDisabled]("GI.Gst.Objects.Object#g:method:setControlBindingDisabled"), [setControlBindingsDisabled]("GI.Gst.Objects.Object#g:method:setControlBindingsDisabled"), [setControlRate]("GI.Gst.Objects.Object#g:method:setControlRate"), [setData]("GI.GObject.Objects.Object#g:method:setData"), [setDataFull]("GI.GObject.Objects.Object#g:method:setDataFull"), [setElementPrivate]("GI.Gst.Objects.Pad#g:method:setElementPrivate"), [setEventFullFunctionFull]("GI.Gst.Objects.Pad#g:method:setEventFullFunctionFull"), [setEventFunctionFull]("GI.Gst.Objects.Pad#g:method:setEventFunctionFull"), [setGetrangeFunctionFull]("GI.Gst.Objects.Pad#g:method:setGetrangeFunctionFull"), [setIterateInternalLinksFunctionFull]("GI.Gst.Objects.Pad#g:method:setIterateInternalLinksFunctionFull"), [setLinkFunctionFull]("GI.Gst.Objects.Pad#g:method:setLinkFunctionFull"), [setName]("GI.Gst.Objects.Object#g:method:setName"), [setNeedsAlpha]("GI.GstVideo.Objects.VideoAggregatorPad#g:method:setNeedsAlpha"), [setOffset]("GI.Gst.Objects.Pad#g:method:setOffset"), [setParent]("GI.Gst.Objects.Object#g:method:setParent"), [setProperty]("GI.GObject.Objects.Object#g:method:setProperty"), [setQueryFunctionFull]("GI.Gst.Objects.Pad#g:method:setQueryFunctionFull"), [setUnlinkFunctionFull]("GI.Gst.Objects.Pad#g:method:setUnlinkFunctionFull").

#if defined(ENABLE_OVERLOADING)
    ResolveVideoAggregatorPadMethod         ,
#endif

-- ** getCurrentBuffer #method:getCurrentBuffer#

#if defined(ENABLE_OVERLOADING)
    VideoAggregatorPadGetCurrentBufferMethodInfo,
#endif
    videoAggregatorPadGetCurrentBuffer      ,


-- ** getPreparedFrame #method:getPreparedFrame#

#if defined(ENABLE_OVERLOADING)
    VideoAggregatorPadGetPreparedFrameMethodInfo,
#endif
    videoAggregatorPadGetPreparedFrame      ,


-- ** hasCurrentBuffer #method:hasCurrentBuffer#

#if defined(ENABLE_OVERLOADING)
    VideoAggregatorPadHasCurrentBufferMethodInfo,
#endif
    videoAggregatorPadHasCurrentBuffer      ,


-- ** setNeedsAlpha #method:setNeedsAlpha#

#if defined(ENABLE_OVERLOADING)
    VideoAggregatorPadSetNeedsAlphaMethodInfo,
#endif
    videoAggregatorPadSetNeedsAlpha         ,




 -- * Properties


-- ** maxLastBufferRepeat #attr:maxLastBufferRepeat#
-- | /No description available in the introspection data./

#if defined(ENABLE_OVERLOADING)
    VideoAggregatorPadMaxLastBufferRepeatPropertyInfo,
#endif
    constructVideoAggregatorPadMaxLastBufferRepeat,
    getVideoAggregatorPadMaxLastBufferRepeat,
    setVideoAggregatorPadMaxLastBufferRepeat,
#if defined(ENABLE_OVERLOADING)
    videoAggregatorPadMaxLastBufferRepeat   ,
#endif


-- ** repeatAfterEos #attr:repeatAfterEos#
-- | /No description available in the introspection data./

#if defined(ENABLE_OVERLOADING)
    VideoAggregatorPadRepeatAfterEosPropertyInfo,
#endif
    constructVideoAggregatorPadRepeatAfterEos,
    getVideoAggregatorPadRepeatAfterEos     ,
    setVideoAggregatorPadRepeatAfterEos     ,
#if defined(ENABLE_OVERLOADING)
    videoAggregatorPadRepeatAfterEos        ,
#endif


-- ** zorder #attr:zorder#
-- | /No description available in the introspection data./

#if defined(ENABLE_OVERLOADING)
    VideoAggregatorPadZorderPropertyInfo    ,
#endif
    constructVideoAggregatorPadZorder       ,
    getVideoAggregatorPadZorder             ,
    setVideoAggregatorPadZorder             ,
#if defined(ENABLE_OVERLOADING)
    videoAggregatorPadZorder                ,
#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 qualified GI.GObject.Objects.Object as GObject.Object
import qualified GI.Gst.Objects.Object as Gst.Object
import qualified GI.Gst.Objects.Pad as Gst.Pad
import qualified GI.Gst.Structs.Buffer as Gst.Buffer
import qualified GI.GstBase.Objects.AggregatorPad as GstBase.AggregatorPad
import {-# SOURCE #-} qualified GI.GstVideo.Structs.VideoFrame as GstVideo.VideoFrame

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

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

foreign import ccall "gst_video_aggregator_pad_get_type"
    c_gst_video_aggregator_pad_get_type :: IO B.Types.GType

instance B.Types.TypedObject VideoAggregatorPad where
    glibType :: IO GType
glibType = IO GType
c_gst_video_aggregator_pad_get_type

instance B.Types.GObject VideoAggregatorPad

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

instance O.HasParentTypes VideoAggregatorPad
type instance O.ParentTypes VideoAggregatorPad = '[GstBase.AggregatorPad.AggregatorPad, Gst.Pad.Pad, Gst.Object.Object, GObject.Object.Object]

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

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

#if defined(ENABLE_OVERLOADING)
type family ResolveVideoAggregatorPadMethod (t :: Symbol) (o :: DK.Type) :: DK.Type where
    ResolveVideoAggregatorPadMethod "activateMode" o = Gst.Pad.PadActivateModeMethodInfo
    ResolveVideoAggregatorPadMethod "addControlBinding" o = Gst.Object.ObjectAddControlBindingMethodInfo
    ResolveVideoAggregatorPadMethod "addProbe" o = Gst.Pad.PadAddProbeMethodInfo
    ResolveVideoAggregatorPadMethod "bindProperty" o = GObject.Object.ObjectBindPropertyMethodInfo
    ResolveVideoAggregatorPadMethod "bindPropertyFull" o = GObject.Object.ObjectBindPropertyFullMethodInfo
    ResolveVideoAggregatorPadMethod "canLink" o = Gst.Pad.PadCanLinkMethodInfo
    ResolveVideoAggregatorPadMethod "chain" o = Gst.Pad.PadChainMethodInfo
    ResolveVideoAggregatorPadMethod "chainList" o = Gst.Pad.PadChainListMethodInfo
    ResolveVideoAggregatorPadMethod "checkReconfigure" o = Gst.Pad.PadCheckReconfigureMethodInfo
    ResolveVideoAggregatorPadMethod "createStreamId" o = Gst.Pad.PadCreateStreamIdMethodInfo
    ResolveVideoAggregatorPadMethod "defaultError" o = Gst.Object.ObjectDefaultErrorMethodInfo
    ResolveVideoAggregatorPadMethod "dropBuffer" o = GstBase.AggregatorPad.AggregatorPadDropBufferMethodInfo
    ResolveVideoAggregatorPadMethod "eventDefault" o = Gst.Pad.PadEventDefaultMethodInfo
    ResolveVideoAggregatorPadMethod "forceFloating" o = GObject.Object.ObjectForceFloatingMethodInfo
    ResolveVideoAggregatorPadMethod "forward" o = Gst.Pad.PadForwardMethodInfo
    ResolveVideoAggregatorPadMethod "freezeNotify" o = GObject.Object.ObjectFreezeNotifyMethodInfo
    ResolveVideoAggregatorPadMethod "getv" o = GObject.Object.ObjectGetvMethodInfo
    ResolveVideoAggregatorPadMethod "hasActiveControlBindings" o = Gst.Object.ObjectHasActiveControlBindingsMethodInfo
    ResolveVideoAggregatorPadMethod "hasAncestor" o = Gst.Object.ObjectHasAncestorMethodInfo
    ResolveVideoAggregatorPadMethod "hasAsAncestor" o = Gst.Object.ObjectHasAsAncestorMethodInfo
    ResolveVideoAggregatorPadMethod "hasAsParent" o = Gst.Object.ObjectHasAsParentMethodInfo
    ResolveVideoAggregatorPadMethod "hasBuffer" o = GstBase.AggregatorPad.AggregatorPadHasBufferMethodInfo
    ResolveVideoAggregatorPadMethod "hasCurrentBuffer" o = VideoAggregatorPadHasCurrentBufferMethodInfo
    ResolveVideoAggregatorPadMethod "hasCurrentCaps" o = Gst.Pad.PadHasCurrentCapsMethodInfo
    ResolveVideoAggregatorPadMethod "isActive" o = Gst.Pad.PadIsActiveMethodInfo
    ResolveVideoAggregatorPadMethod "isBlocked" o = Gst.Pad.PadIsBlockedMethodInfo
    ResolveVideoAggregatorPadMethod "isBlocking" o = Gst.Pad.PadIsBlockingMethodInfo
    ResolveVideoAggregatorPadMethod "isEos" o = GstBase.AggregatorPad.AggregatorPadIsEosMethodInfo
    ResolveVideoAggregatorPadMethod "isFloating" o = GObject.Object.ObjectIsFloatingMethodInfo
    ResolveVideoAggregatorPadMethod "isInactive" o = GstBase.AggregatorPad.AggregatorPadIsInactiveMethodInfo
    ResolveVideoAggregatorPadMethod "isLinked" o = Gst.Pad.PadIsLinkedMethodInfo
    ResolveVideoAggregatorPadMethod "iterateInternalLinks" o = Gst.Pad.PadIterateInternalLinksMethodInfo
    ResolveVideoAggregatorPadMethod "iterateInternalLinksDefault" o = Gst.Pad.PadIterateInternalLinksDefaultMethodInfo
    ResolveVideoAggregatorPadMethod "link" o = Gst.Pad.PadLinkMethodInfo
    ResolveVideoAggregatorPadMethod "linkFull" o = Gst.Pad.PadLinkFullMethodInfo
    ResolveVideoAggregatorPadMethod "linkMaybeGhosting" o = Gst.Pad.PadLinkMaybeGhostingMethodInfo
    ResolveVideoAggregatorPadMethod "linkMaybeGhostingFull" o = Gst.Pad.PadLinkMaybeGhostingFullMethodInfo
    ResolveVideoAggregatorPadMethod "markReconfigure" o = Gst.Pad.PadMarkReconfigureMethodInfo
    ResolveVideoAggregatorPadMethod "needsReconfigure" o = Gst.Pad.PadNeedsReconfigureMethodInfo
    ResolveVideoAggregatorPadMethod "notify" o = GObject.Object.ObjectNotifyMethodInfo
    ResolveVideoAggregatorPadMethod "notifyByPspec" o = GObject.Object.ObjectNotifyByPspecMethodInfo
    ResolveVideoAggregatorPadMethod "pauseTask" o = Gst.Pad.PadPauseTaskMethodInfo
    ResolveVideoAggregatorPadMethod "peekBuffer" o = GstBase.AggregatorPad.AggregatorPadPeekBufferMethodInfo
    ResolveVideoAggregatorPadMethod "peerQuery" o = Gst.Pad.PadPeerQueryMethodInfo
    ResolveVideoAggregatorPadMethod "peerQueryAcceptCaps" o = Gst.Pad.PadPeerQueryAcceptCapsMethodInfo
    ResolveVideoAggregatorPadMethod "peerQueryCaps" o = Gst.Pad.PadPeerQueryCapsMethodInfo
    ResolveVideoAggregatorPadMethod "peerQueryConvert" o = Gst.Pad.PadPeerQueryConvertMethodInfo
    ResolveVideoAggregatorPadMethod "peerQueryDuration" o = Gst.Pad.PadPeerQueryDurationMethodInfo
    ResolveVideoAggregatorPadMethod "peerQueryPosition" o = Gst.Pad.PadPeerQueryPositionMethodInfo
    ResolveVideoAggregatorPadMethod "popBuffer" o = GstBase.AggregatorPad.AggregatorPadPopBufferMethodInfo
    ResolveVideoAggregatorPadMethod "proxyQueryAcceptCaps" o = Gst.Pad.PadProxyQueryAcceptCapsMethodInfo
    ResolveVideoAggregatorPadMethod "proxyQueryCaps" o = Gst.Pad.PadProxyQueryCapsMethodInfo
    ResolveVideoAggregatorPadMethod "pullRange" o = Gst.Pad.PadPullRangeMethodInfo
    ResolveVideoAggregatorPadMethod "push" o = Gst.Pad.PadPushMethodInfo
    ResolveVideoAggregatorPadMethod "pushEvent" o = Gst.Pad.PadPushEventMethodInfo
    ResolveVideoAggregatorPadMethod "pushList" o = Gst.Pad.PadPushListMethodInfo
    ResolveVideoAggregatorPadMethod "query" o = Gst.Pad.PadQueryMethodInfo
    ResolveVideoAggregatorPadMethod "queryAcceptCaps" o = Gst.Pad.PadQueryAcceptCapsMethodInfo
    ResolveVideoAggregatorPadMethod "queryCaps" o = Gst.Pad.PadQueryCapsMethodInfo
    ResolveVideoAggregatorPadMethod "queryConvert" o = Gst.Pad.PadQueryConvertMethodInfo
    ResolveVideoAggregatorPadMethod "queryDefault" o = Gst.Pad.PadQueryDefaultMethodInfo
    ResolveVideoAggregatorPadMethod "queryDuration" o = Gst.Pad.PadQueryDurationMethodInfo
    ResolveVideoAggregatorPadMethod "queryPosition" o = Gst.Pad.PadQueryPositionMethodInfo
    ResolveVideoAggregatorPadMethod "ref" o = Gst.Object.ObjectRefMethodInfo
    ResolveVideoAggregatorPadMethod "refSink" o = GObject.Object.ObjectRefSinkMethodInfo
    ResolveVideoAggregatorPadMethod "removeControlBinding" o = Gst.Object.ObjectRemoveControlBindingMethodInfo
    ResolveVideoAggregatorPadMethod "removeProbe" o = Gst.Pad.PadRemoveProbeMethodInfo
    ResolveVideoAggregatorPadMethod "runDispose" o = GObject.Object.ObjectRunDisposeMethodInfo
    ResolveVideoAggregatorPadMethod "sendEvent" o = Gst.Pad.PadSendEventMethodInfo
    ResolveVideoAggregatorPadMethod "startTask" o = Gst.Pad.PadStartTaskMethodInfo
    ResolveVideoAggregatorPadMethod "stealData" o = GObject.Object.ObjectStealDataMethodInfo
    ResolveVideoAggregatorPadMethod "stealQdata" o = GObject.Object.ObjectStealQdataMethodInfo
    ResolveVideoAggregatorPadMethod "stickyEventsForeach" o = Gst.Pad.PadStickyEventsForeachMethodInfo
    ResolveVideoAggregatorPadMethod "stopTask" o = Gst.Pad.PadStopTaskMethodInfo
    ResolveVideoAggregatorPadMethod "storeStickyEvent" o = Gst.Pad.PadStoreStickyEventMethodInfo
    ResolveVideoAggregatorPadMethod "suggestNextSync" o = Gst.Object.ObjectSuggestNextSyncMethodInfo
    ResolveVideoAggregatorPadMethod "syncValues" o = Gst.Object.ObjectSyncValuesMethodInfo
    ResolveVideoAggregatorPadMethod "thawNotify" o = GObject.Object.ObjectThawNotifyMethodInfo
    ResolveVideoAggregatorPadMethod "unlink" o = Gst.Pad.PadUnlinkMethodInfo
    ResolveVideoAggregatorPadMethod "unparent" o = Gst.Object.ObjectUnparentMethodInfo
    ResolveVideoAggregatorPadMethod "unref" o = Gst.Object.ObjectUnrefMethodInfo
    ResolveVideoAggregatorPadMethod "useFixedCaps" o = Gst.Pad.PadUseFixedCapsMethodInfo
    ResolveVideoAggregatorPadMethod "watchClosure" o = GObject.Object.ObjectWatchClosureMethodInfo
    ResolveVideoAggregatorPadMethod "getAllowedCaps" o = Gst.Pad.PadGetAllowedCapsMethodInfo
    ResolveVideoAggregatorPadMethod "getControlBinding" o = Gst.Object.ObjectGetControlBindingMethodInfo
    ResolveVideoAggregatorPadMethod "getControlRate" o = Gst.Object.ObjectGetControlRateMethodInfo
    ResolveVideoAggregatorPadMethod "getCurrentBuffer" o = VideoAggregatorPadGetCurrentBufferMethodInfo
    ResolveVideoAggregatorPadMethod "getCurrentCaps" o = Gst.Pad.PadGetCurrentCapsMethodInfo
    ResolveVideoAggregatorPadMethod "getData" o = GObject.Object.ObjectGetDataMethodInfo
    ResolveVideoAggregatorPadMethod "getDirection" o = Gst.Pad.PadGetDirectionMethodInfo
    ResolveVideoAggregatorPadMethod "getElementPrivate" o = Gst.Pad.PadGetElementPrivateMethodInfo
    ResolveVideoAggregatorPadMethod "getGValueArray" o = Gst.Object.ObjectGetGValueArrayMethodInfo
    ResolveVideoAggregatorPadMethod "getLastFlowReturn" o = Gst.Pad.PadGetLastFlowReturnMethodInfo
    ResolveVideoAggregatorPadMethod "getName" o = Gst.Object.ObjectGetNameMethodInfo
    ResolveVideoAggregatorPadMethod "getOffset" o = Gst.Pad.PadGetOffsetMethodInfo
    ResolveVideoAggregatorPadMethod "getPadTemplate" o = Gst.Pad.PadGetPadTemplateMethodInfo
    ResolveVideoAggregatorPadMethod "getPadTemplateCaps" o = Gst.Pad.PadGetPadTemplateCapsMethodInfo
    ResolveVideoAggregatorPadMethod "getParent" o = Gst.Object.ObjectGetParentMethodInfo
    ResolveVideoAggregatorPadMethod "getParentElement" o = Gst.Pad.PadGetParentElementMethodInfo
    ResolveVideoAggregatorPadMethod "getPathString" o = Gst.Object.ObjectGetPathStringMethodInfo
    ResolveVideoAggregatorPadMethod "getPeer" o = Gst.Pad.PadGetPeerMethodInfo
    ResolveVideoAggregatorPadMethod "getPreparedFrame" o = VideoAggregatorPadGetPreparedFrameMethodInfo
    ResolveVideoAggregatorPadMethod "getProperty" o = GObject.Object.ObjectGetPropertyMethodInfo
    ResolveVideoAggregatorPadMethod "getQdata" o = GObject.Object.ObjectGetQdataMethodInfo
    ResolveVideoAggregatorPadMethod "getRange" o = Gst.Pad.PadGetRangeMethodInfo
    ResolveVideoAggregatorPadMethod "getSingleInternalLink" o = Gst.Pad.PadGetSingleInternalLinkMethodInfo
    ResolveVideoAggregatorPadMethod "getStickyEvent" o = Gst.Pad.PadGetStickyEventMethodInfo
    ResolveVideoAggregatorPadMethod "getStream" o = Gst.Pad.PadGetStreamMethodInfo
    ResolveVideoAggregatorPadMethod "getStreamId" o = Gst.Pad.PadGetStreamIdMethodInfo
    ResolveVideoAggregatorPadMethod "getTaskState" o = Gst.Pad.PadGetTaskStateMethodInfo
    ResolveVideoAggregatorPadMethod "getValue" o = Gst.Object.ObjectGetValueMethodInfo
    ResolveVideoAggregatorPadMethod "setActivateFunctionFull" o = Gst.Pad.PadSetActivateFunctionFullMethodInfo
    ResolveVideoAggregatorPadMethod "setActivatemodeFunctionFull" o = Gst.Pad.PadSetActivatemodeFunctionFullMethodInfo
    ResolveVideoAggregatorPadMethod "setActive" o = Gst.Pad.PadSetActiveMethodInfo
    ResolveVideoAggregatorPadMethod "setChainFunctionFull" o = Gst.Pad.PadSetChainFunctionFullMethodInfo
    ResolveVideoAggregatorPadMethod "setChainListFunctionFull" o = Gst.Pad.PadSetChainListFunctionFullMethodInfo
    ResolveVideoAggregatorPadMethod "setControlBindingDisabled" o = Gst.Object.ObjectSetControlBindingDisabledMethodInfo
    ResolveVideoAggregatorPadMethod "setControlBindingsDisabled" o = Gst.Object.ObjectSetControlBindingsDisabledMethodInfo
    ResolveVideoAggregatorPadMethod "setControlRate" o = Gst.Object.ObjectSetControlRateMethodInfo
    ResolveVideoAggregatorPadMethod "setData" o = GObject.Object.ObjectSetDataMethodInfo
    ResolveVideoAggregatorPadMethod "setDataFull" o = GObject.Object.ObjectSetDataFullMethodInfo
    ResolveVideoAggregatorPadMethod "setElementPrivate" o = Gst.Pad.PadSetElementPrivateMethodInfo
    ResolveVideoAggregatorPadMethod "setEventFullFunctionFull" o = Gst.Pad.PadSetEventFullFunctionFullMethodInfo
    ResolveVideoAggregatorPadMethod "setEventFunctionFull" o = Gst.Pad.PadSetEventFunctionFullMethodInfo
    ResolveVideoAggregatorPadMethod "setGetrangeFunctionFull" o = Gst.Pad.PadSetGetrangeFunctionFullMethodInfo
    ResolveVideoAggregatorPadMethod "setIterateInternalLinksFunctionFull" o = Gst.Pad.PadSetIterateInternalLinksFunctionFullMethodInfo
    ResolveVideoAggregatorPadMethod "setLinkFunctionFull" o = Gst.Pad.PadSetLinkFunctionFullMethodInfo
    ResolveVideoAggregatorPadMethod "setName" o = Gst.Object.ObjectSetNameMethodInfo
    ResolveVideoAggregatorPadMethod "setNeedsAlpha" o = VideoAggregatorPadSetNeedsAlphaMethodInfo
    ResolveVideoAggregatorPadMethod "setOffset" o = Gst.Pad.PadSetOffsetMethodInfo
    ResolveVideoAggregatorPadMethod "setParent" o = Gst.Object.ObjectSetParentMethodInfo
    ResolveVideoAggregatorPadMethod "setProperty" o = GObject.Object.ObjectSetPropertyMethodInfo
    ResolveVideoAggregatorPadMethod "setQueryFunctionFull" o = Gst.Pad.PadSetQueryFunctionFullMethodInfo
    ResolveVideoAggregatorPadMethod "setUnlinkFunctionFull" o = Gst.Pad.PadSetUnlinkFunctionFullMethodInfo
    ResolveVideoAggregatorPadMethod l o = O.MethodResolutionFailed l o

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

#endif

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

#endif

-- VVV Prop "max-last-buffer-repeat"
   -- Type: TBasicType TUInt64
   -- Flags: [PropertyReadable,PropertyWritable]
   -- Nullable: (Nothing,Nothing)

-- | Get the value of the “@max-last-buffer-repeat@” property.
-- When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
-- 
-- @
-- 'Data.GI.Base.Attributes.get' videoAggregatorPad #maxLastBufferRepeat
-- @
getVideoAggregatorPadMaxLastBufferRepeat :: (MonadIO m, IsVideoAggregatorPad o) => o -> m Word64
getVideoAggregatorPadMaxLastBufferRepeat :: forall (m :: * -> *) o.
(MonadIO m, IsVideoAggregatorPad o) =>
o -> m Word64
getVideoAggregatorPadMaxLastBufferRepeat o
obj = IO Word64 -> m Word64
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
MIO.liftIO (IO Word64 -> m Word64) -> IO Word64 -> m Word64
forall a b. (a -> b) -> a -> b
$ o -> String -> IO Word64
forall a. GObject a => a -> String -> IO Word64
B.Properties.getObjectPropertyUInt64 o
obj String
"max-last-buffer-repeat"

-- | Set the value of the “@max-last-buffer-repeat@” property.
-- When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
-- 
-- @
-- 'Data.GI.Base.Attributes.set' videoAggregatorPad [ #maxLastBufferRepeat 'Data.GI.Base.Attributes.:=' value ]
-- @
setVideoAggregatorPadMaxLastBufferRepeat :: (MonadIO m, IsVideoAggregatorPad o) => o -> Word64 -> m ()
setVideoAggregatorPadMaxLastBufferRepeat :: forall (m :: * -> *) o.
(MonadIO m, IsVideoAggregatorPad o) =>
o -> Word64 -> m ()
setVideoAggregatorPadMaxLastBufferRepeat o
obj Word64
val = IO () -> m ()
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
MIO.liftIO (IO () -> m ()) -> IO () -> m ()
forall a b. (a -> b) -> a -> b
$ do
    o -> String -> Word64 -> IO ()
forall a. GObject a => a -> String -> Word64 -> IO ()
B.Properties.setObjectPropertyUInt64 o
obj String
"max-last-buffer-repeat" Word64
val

-- | Construct a `GValueConstruct` with valid value for the “@max-last-buffer-repeat@” property. This is rarely needed directly, but it is used by `Data.GI.Base.Constructible.new`.
constructVideoAggregatorPadMaxLastBufferRepeat :: (IsVideoAggregatorPad o, MIO.MonadIO m) => Word64 -> m (GValueConstruct o)
constructVideoAggregatorPadMaxLastBufferRepeat :: forall o (m :: * -> *).
(IsVideoAggregatorPad o, MonadIO m) =>
Word64 -> m (GValueConstruct o)
constructVideoAggregatorPadMaxLastBufferRepeat Word64
val = IO (GValueConstruct o) -> m (GValueConstruct o)
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
MIO.liftIO (IO (GValueConstruct o) -> m (GValueConstruct o))
-> IO (GValueConstruct o) -> m (GValueConstruct o)
forall a b. (a -> b) -> a -> b
$ do
    IO (GValueConstruct o) -> IO (GValueConstruct o)
forall a. IO a -> IO a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
MIO.liftIO (IO (GValueConstruct o) -> IO (GValueConstruct o))
-> IO (GValueConstruct o) -> IO (GValueConstruct o)
forall a b. (a -> b) -> a -> b
$ String -> Word64 -> IO (GValueConstruct o)
forall o. String -> Word64 -> IO (GValueConstruct o)
B.Properties.constructObjectPropertyUInt64 String
"max-last-buffer-repeat" Word64
val

#if defined(ENABLE_OVERLOADING)
data VideoAggregatorPadMaxLastBufferRepeatPropertyInfo
instance AttrInfo VideoAggregatorPadMaxLastBufferRepeatPropertyInfo where
    type AttrAllowedOps VideoAggregatorPadMaxLastBufferRepeatPropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet]
    type AttrBaseTypeConstraint VideoAggregatorPadMaxLastBufferRepeatPropertyInfo = IsVideoAggregatorPad
    type AttrSetTypeConstraint VideoAggregatorPadMaxLastBufferRepeatPropertyInfo = (~) Word64
    type AttrTransferTypeConstraint VideoAggregatorPadMaxLastBufferRepeatPropertyInfo = (~) Word64
    type AttrTransferType VideoAggregatorPadMaxLastBufferRepeatPropertyInfo = Word64
    type AttrGetType VideoAggregatorPadMaxLastBufferRepeatPropertyInfo = Word64
    type AttrLabel VideoAggregatorPadMaxLastBufferRepeatPropertyInfo = "max-last-buffer-repeat"
    type AttrOrigin VideoAggregatorPadMaxLastBufferRepeatPropertyInfo = VideoAggregatorPad
    attrGet = getVideoAggregatorPadMaxLastBufferRepeat
    attrSet = setVideoAggregatorPadMaxLastBufferRepeat
    attrTransfer _ v = do
        return v
    attrConstruct = constructVideoAggregatorPadMaxLastBufferRepeat
    attrClear = undefined
    dbgAttrInfo = P.Just (O.ResolvedSymbolInfo {
        O.resolvedSymbolName = "GI.GstVideo.Objects.VideoAggregatorPad.maxLastBufferRepeat"
        , O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-gstvideo-1.0.28/docs/GI-GstVideo-Objects-VideoAggregatorPad.html#g:attr:maxLastBufferRepeat"
        })
#endif

-- VVV Prop "repeat-after-eos"
   -- Type: TBasicType TBoolean
   -- Flags: [PropertyReadable,PropertyWritable]
   -- Nullable: (Nothing,Nothing)

-- | Get the value of the “@repeat-after-eos@” property.
-- When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
-- 
-- @
-- 'Data.GI.Base.Attributes.get' videoAggregatorPad #repeatAfterEos
-- @
getVideoAggregatorPadRepeatAfterEos :: (MonadIO m, IsVideoAggregatorPad o) => o -> m Bool
getVideoAggregatorPadRepeatAfterEos :: forall (m :: * -> *) o.
(MonadIO m, IsVideoAggregatorPad o) =>
o -> m Bool
getVideoAggregatorPadRepeatAfterEos o
obj = IO Bool -> m Bool
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
MIO.liftIO (IO Bool -> m Bool) -> IO Bool -> m Bool
forall a b. (a -> b) -> a -> b
$ o -> String -> IO Bool
forall a. GObject a => a -> String -> IO Bool
B.Properties.getObjectPropertyBool o
obj String
"repeat-after-eos"

-- | Set the value of the “@repeat-after-eos@” property.
-- When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
-- 
-- @
-- 'Data.GI.Base.Attributes.set' videoAggregatorPad [ #repeatAfterEos 'Data.GI.Base.Attributes.:=' value ]
-- @
setVideoAggregatorPadRepeatAfterEos :: (MonadIO m, IsVideoAggregatorPad o) => o -> Bool -> m ()
setVideoAggregatorPadRepeatAfterEos :: forall (m :: * -> *) o.
(MonadIO m, IsVideoAggregatorPad o) =>
o -> Bool -> m ()
setVideoAggregatorPadRepeatAfterEos o
obj Bool
val = IO () -> m ()
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
MIO.liftIO (IO () -> m ()) -> IO () -> m ()
forall a b. (a -> b) -> a -> b
$ do
    o -> String -> Bool -> IO ()
forall a. GObject a => a -> String -> Bool -> IO ()
B.Properties.setObjectPropertyBool o
obj String
"repeat-after-eos" Bool
val

-- | Construct a `GValueConstruct` with valid value for the “@repeat-after-eos@” property. This is rarely needed directly, but it is used by `Data.GI.Base.Constructible.new`.
constructVideoAggregatorPadRepeatAfterEos :: (IsVideoAggregatorPad o, MIO.MonadIO m) => Bool -> m (GValueConstruct o)
constructVideoAggregatorPadRepeatAfterEos :: forall o (m :: * -> *).
(IsVideoAggregatorPad o, MonadIO m) =>
Bool -> m (GValueConstruct o)
constructVideoAggregatorPadRepeatAfterEos Bool
val = IO (GValueConstruct o) -> m (GValueConstruct o)
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
MIO.liftIO (IO (GValueConstruct o) -> m (GValueConstruct o))
-> IO (GValueConstruct o) -> m (GValueConstruct o)
forall a b. (a -> b) -> a -> b
$ do
    IO (GValueConstruct o) -> IO (GValueConstruct o)
forall a. IO a -> IO a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
MIO.liftIO (IO (GValueConstruct o) -> IO (GValueConstruct o))
-> IO (GValueConstruct o) -> IO (GValueConstruct o)
forall a b. (a -> b) -> a -> b
$ String -> Bool -> IO (GValueConstruct o)
forall o. String -> Bool -> IO (GValueConstruct o)
B.Properties.constructObjectPropertyBool String
"repeat-after-eos" Bool
val

#if defined(ENABLE_OVERLOADING)
data VideoAggregatorPadRepeatAfterEosPropertyInfo
instance AttrInfo VideoAggregatorPadRepeatAfterEosPropertyInfo where
    type AttrAllowedOps VideoAggregatorPadRepeatAfterEosPropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet]
    type AttrBaseTypeConstraint VideoAggregatorPadRepeatAfterEosPropertyInfo = IsVideoAggregatorPad
    type AttrSetTypeConstraint VideoAggregatorPadRepeatAfterEosPropertyInfo = (~) Bool
    type AttrTransferTypeConstraint VideoAggregatorPadRepeatAfterEosPropertyInfo = (~) Bool
    type AttrTransferType VideoAggregatorPadRepeatAfterEosPropertyInfo = Bool
    type AttrGetType VideoAggregatorPadRepeatAfterEosPropertyInfo = Bool
    type AttrLabel VideoAggregatorPadRepeatAfterEosPropertyInfo = "repeat-after-eos"
    type AttrOrigin VideoAggregatorPadRepeatAfterEosPropertyInfo = VideoAggregatorPad
    attrGet = getVideoAggregatorPadRepeatAfterEos
    attrSet = setVideoAggregatorPadRepeatAfterEos
    attrTransfer _ v = do
        return v
    attrConstruct = constructVideoAggregatorPadRepeatAfterEos
    attrClear = undefined
    dbgAttrInfo = P.Just (O.ResolvedSymbolInfo {
        O.resolvedSymbolName = "GI.GstVideo.Objects.VideoAggregatorPad.repeatAfterEos"
        , O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-gstvideo-1.0.28/docs/GI-GstVideo-Objects-VideoAggregatorPad.html#g:attr:repeatAfterEos"
        })
#endif

-- VVV Prop "zorder"
   -- Type: TBasicType TUInt
   -- Flags: [PropertyReadable,PropertyWritable]
   -- Nullable: (Nothing,Nothing)

-- | Get the value of the “@zorder@” property.
-- When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
-- 
-- @
-- 'Data.GI.Base.Attributes.get' videoAggregatorPad #zorder
-- @
getVideoAggregatorPadZorder :: (MonadIO m, IsVideoAggregatorPad o) => o -> m Word32
getVideoAggregatorPadZorder :: forall (m :: * -> *) o.
(MonadIO m, IsVideoAggregatorPad o) =>
o -> m Word32
getVideoAggregatorPadZorder o
obj = IO Word32 -> m Word32
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
MIO.liftIO (IO Word32 -> m Word32) -> IO Word32 -> m Word32
forall a b. (a -> b) -> a -> b
$ o -> String -> IO Word32
forall a. GObject a => a -> String -> IO Word32
B.Properties.getObjectPropertyUInt32 o
obj String
"zorder"

-- | Set the value of the “@zorder@” property.
-- When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
-- 
-- @
-- 'Data.GI.Base.Attributes.set' videoAggregatorPad [ #zorder 'Data.GI.Base.Attributes.:=' value ]
-- @
setVideoAggregatorPadZorder :: (MonadIO m, IsVideoAggregatorPad o) => o -> Word32 -> m ()
setVideoAggregatorPadZorder :: forall (m :: * -> *) o.
(MonadIO m, IsVideoAggregatorPad o) =>
o -> Word32 -> m ()
setVideoAggregatorPadZorder o
obj Word32
val = IO () -> m ()
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
MIO.liftIO (IO () -> m ()) -> IO () -> m ()
forall a b. (a -> b) -> a -> b
$ do
    o -> String -> Word32 -> IO ()
forall a. GObject a => a -> String -> Word32 -> IO ()
B.Properties.setObjectPropertyUInt32 o
obj String
"zorder" Word32
val

-- | Construct a `GValueConstruct` with valid value for the “@zorder@” property. This is rarely needed directly, but it is used by `Data.GI.Base.Constructible.new`.
constructVideoAggregatorPadZorder :: (IsVideoAggregatorPad o, MIO.MonadIO m) => Word32 -> m (GValueConstruct o)
constructVideoAggregatorPadZorder :: forall o (m :: * -> *).
(IsVideoAggregatorPad o, MonadIO m) =>
Word32 -> m (GValueConstruct o)
constructVideoAggregatorPadZorder Word32
val = IO (GValueConstruct o) -> m (GValueConstruct o)
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
MIO.liftIO (IO (GValueConstruct o) -> m (GValueConstruct o))
-> IO (GValueConstruct o) -> m (GValueConstruct o)
forall a b. (a -> b) -> a -> b
$ do
    IO (GValueConstruct o) -> IO (GValueConstruct o)
forall a. IO a -> IO a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
MIO.liftIO (IO (GValueConstruct o) -> IO (GValueConstruct o))
-> IO (GValueConstruct o) -> IO (GValueConstruct o)
forall a b. (a -> b) -> a -> b
$ String -> Word32 -> IO (GValueConstruct o)
forall o. String -> Word32 -> IO (GValueConstruct o)
B.Properties.constructObjectPropertyUInt32 String
"zorder" Word32
val

#if defined(ENABLE_OVERLOADING)
data VideoAggregatorPadZorderPropertyInfo
instance AttrInfo VideoAggregatorPadZorderPropertyInfo where
    type AttrAllowedOps VideoAggregatorPadZorderPropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet]
    type AttrBaseTypeConstraint VideoAggregatorPadZorderPropertyInfo = IsVideoAggregatorPad
    type AttrSetTypeConstraint VideoAggregatorPadZorderPropertyInfo = (~) Word32
    type AttrTransferTypeConstraint VideoAggregatorPadZorderPropertyInfo = (~) Word32
    type AttrTransferType VideoAggregatorPadZorderPropertyInfo = Word32
    type AttrGetType VideoAggregatorPadZorderPropertyInfo = Word32
    type AttrLabel VideoAggregatorPadZorderPropertyInfo = "zorder"
    type AttrOrigin VideoAggregatorPadZorderPropertyInfo = VideoAggregatorPad
    attrGet = getVideoAggregatorPadZorder
    attrSet = setVideoAggregatorPadZorder
    attrTransfer _ v = do
        return v
    attrConstruct = constructVideoAggregatorPadZorder
    attrClear = undefined
    dbgAttrInfo = P.Just (O.ResolvedSymbolInfo {
        O.resolvedSymbolName = "GI.GstVideo.Objects.VideoAggregatorPad.zorder"
        , O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-gstvideo-1.0.28/docs/GI-GstVideo-Objects-VideoAggregatorPad.html#g:attr:zorder"
        })
#endif

#if defined(ENABLE_OVERLOADING)
instance O.HasAttributeList VideoAggregatorPad
type instance O.AttributeList VideoAggregatorPad = VideoAggregatorPadAttributeList
type VideoAggregatorPadAttributeList = ('[ '("caps", Gst.Pad.PadCapsPropertyInfo), '("direction", Gst.Pad.PadDirectionPropertyInfo), '("emitSignals", GstBase.AggregatorPad.AggregatorPadEmitSignalsPropertyInfo), '("maxLastBufferRepeat", VideoAggregatorPadMaxLastBufferRepeatPropertyInfo), '("name", Gst.Object.ObjectNamePropertyInfo), '("offset", Gst.Pad.PadOffsetPropertyInfo), '("parent", Gst.Object.ObjectParentPropertyInfo), '("repeatAfterEos", VideoAggregatorPadRepeatAfterEosPropertyInfo), '("template", Gst.Pad.PadTemplatePropertyInfo), '("zorder", VideoAggregatorPadZorderPropertyInfo)] :: [(Symbol, DK.Type)])
#endif

#if defined(ENABLE_OVERLOADING)
videoAggregatorPadMaxLastBufferRepeat :: AttrLabelProxy "maxLastBufferRepeat"
videoAggregatorPadMaxLastBufferRepeat = AttrLabelProxy

videoAggregatorPadRepeatAfterEos :: AttrLabelProxy "repeatAfterEos"
videoAggregatorPadRepeatAfterEos = AttrLabelProxy

videoAggregatorPadZorder :: AttrLabelProxy "zorder"
videoAggregatorPadZorder = AttrLabelProxy

#endif

#if defined(ENABLE_OVERLOADING)
type instance O.SignalList VideoAggregatorPad = VideoAggregatorPadSignalList
type VideoAggregatorPadSignalList = ('[ '("bufferConsumed", GstBase.AggregatorPad.AggregatorPadBufferConsumedSignalInfo), '("deepNotify", Gst.Object.ObjectDeepNotifySignalInfo), '("linked", Gst.Pad.PadLinkedSignalInfo), '("notify", GObject.Object.ObjectNotifySignalInfo), '("unlinked", Gst.Pad.PadUnlinkedSignalInfo)] :: [(Symbol, DK.Type)])

#endif

-- method VideoAggregatorPad::get_current_buffer
-- method type : OrdinaryMethod
-- Args: [ Arg
--           { argCName = "pad"
--           , argType =
--               TInterface
--                 Name { namespace = "GstVideo" , name = "VideoAggregatorPad" }
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText = Just "a #GstVideoAggregatorPad"
--                 , sinceVersion = Nothing
--                 }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       ]
-- Lengths: []
-- returnType: Just (TInterface Name { namespace = "Gst" , name = "Buffer" })
-- throws : False
-- Skip return : False

foreign import ccall "gst_video_aggregator_pad_get_current_buffer" gst_video_aggregator_pad_get_current_buffer :: 
    Ptr VideoAggregatorPad ->               -- pad : TInterface (Name {namespace = "GstVideo", name = "VideoAggregatorPad"})
    IO (Ptr Gst.Buffer.Buffer)

-- | Returns the currently queued buffer that is going to be used
-- for the current output frame.
-- 
-- This must only be called from the t'GI.GstVideo.Structs.VideoAggregatorClass.VideoAggregatorClass'::@/aggregate_frames/@ virtual method,
-- or from the t'GI.GstVideo.Structs.VideoAggregatorPadClass.VideoAggregatorPadClass'::@/prepare_frame/@ virtual method of the aggregator pads.
-- 
-- The return value is only valid until t'GI.GstVideo.Structs.VideoAggregatorClass.VideoAggregatorClass'::@/aggregate_frames/@ or t'GI.GstVideo.Structs.VideoAggregatorPadClass.VideoAggregatorPadClass'::@/prepare_frame/@
-- returns.
videoAggregatorPadGetCurrentBuffer ::
    (B.CallStack.HasCallStack, MonadIO m, IsVideoAggregatorPad a) =>
    a
    -- ^ /@pad@/: a t'GI.GstVideo.Objects.VideoAggregatorPad.VideoAggregatorPad'
    -> m Gst.Buffer.Buffer
    -- ^ __Returns:__ The currently queued buffer
videoAggregatorPadGetCurrentBuffer :: forall (m :: * -> *) a.
(HasCallStack, MonadIO m, IsVideoAggregatorPad a) =>
a -> m Buffer
videoAggregatorPadGetCurrentBuffer a
pad = IO Buffer -> m Buffer
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO Buffer -> m Buffer) -> IO Buffer -> m Buffer
forall a b. (a -> b) -> a -> b
$ do
    Ptr VideoAggregatorPad
pad' <- a -> IO (Ptr VideoAggregatorPad)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
pad
    Ptr Buffer
result <- Ptr VideoAggregatorPad -> IO (Ptr Buffer)
gst_video_aggregator_pad_get_current_buffer Ptr VideoAggregatorPad
pad'
    Text -> Ptr Buffer -> IO ()
forall a. HasCallStack => Text -> Ptr a -> IO ()
checkUnexpectedReturnNULL Text
"videoAggregatorPadGetCurrentBuffer" Ptr Buffer
result
    Buffer
result' <- ((ManagedPtr Buffer -> Buffer) -> Ptr Buffer -> IO Buffer
forall a.
(HasCallStack, GBoxed a) =>
(ManagedPtr a -> a) -> Ptr a -> IO a
newBoxed ManagedPtr Buffer -> Buffer
Gst.Buffer.Buffer) Ptr Buffer
result
    a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
pad
    Buffer -> IO Buffer
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return Buffer
result'

#if defined(ENABLE_OVERLOADING)
data VideoAggregatorPadGetCurrentBufferMethodInfo
instance (signature ~ (m Gst.Buffer.Buffer), MonadIO m, IsVideoAggregatorPad a) => O.OverloadedMethod VideoAggregatorPadGetCurrentBufferMethodInfo a signature where
    overloadedMethod = videoAggregatorPadGetCurrentBuffer

instance O.OverloadedMethodInfo VideoAggregatorPadGetCurrentBufferMethodInfo a where
    overloadedMethodInfo = P.Just (O.ResolvedSymbolInfo {
        O.resolvedSymbolName = "GI.GstVideo.Objects.VideoAggregatorPad.videoAggregatorPadGetCurrentBuffer",
        O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-gstvideo-1.0.28/docs/GI-GstVideo-Objects-VideoAggregatorPad.html#v:videoAggregatorPadGetCurrentBuffer"
        })


#endif

-- method VideoAggregatorPad::get_prepared_frame
-- method type : OrdinaryMethod
-- Args: [ Arg
--           { argCName = "pad"
--           , argType =
--               TInterface
--                 Name { namespace = "GstVideo" , name = "VideoAggregatorPad" }
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText = Just "a #GstVideoAggregatorPad"
--                 , sinceVersion = Nothing
--                 }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       ]
-- Lengths: []
-- returnType: Just
--               (TInterface Name { namespace = "GstVideo" , name = "VideoFrame" })
-- throws : False
-- Skip return : False

foreign import ccall "gst_video_aggregator_pad_get_prepared_frame" gst_video_aggregator_pad_get_prepared_frame :: 
    Ptr VideoAggregatorPad ->               -- pad : TInterface (Name {namespace = "GstVideo", name = "VideoAggregatorPad"})
    IO (Ptr GstVideo.VideoFrame.VideoFrame)

-- | Returns the currently prepared video frame that has to be aggregated into
-- the current output frame.
-- 
-- This must only be called from the t'GI.GstVideo.Structs.VideoAggregatorClass.VideoAggregatorClass'::@/aggregate_frames/@ virtual method,
-- or from the t'GI.GstVideo.Structs.VideoAggregatorPadClass.VideoAggregatorPadClass'::@/prepare_frame/@ virtual method of the aggregator pads.
-- 
-- The return value is only valid until t'GI.GstVideo.Structs.VideoAggregatorClass.VideoAggregatorClass'::@/aggregate_frames/@ or t'GI.GstVideo.Structs.VideoAggregatorPadClass.VideoAggregatorPadClass'::@/prepare_frame/@
-- returns.
videoAggregatorPadGetPreparedFrame ::
    (B.CallStack.HasCallStack, MonadIO m, IsVideoAggregatorPad a) =>
    a
    -- ^ /@pad@/: a t'GI.GstVideo.Objects.VideoAggregatorPad.VideoAggregatorPad'
    -> m GstVideo.VideoFrame.VideoFrame
    -- ^ __Returns:__ The currently prepared video frame
videoAggregatorPadGetPreparedFrame :: forall (m :: * -> *) a.
(HasCallStack, MonadIO m, IsVideoAggregatorPad a) =>
a -> m VideoFrame
videoAggregatorPadGetPreparedFrame a
pad = IO VideoFrame -> m VideoFrame
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO VideoFrame -> m VideoFrame) -> IO VideoFrame -> m VideoFrame
forall a b. (a -> b) -> a -> b
$ do
    Ptr VideoAggregatorPad
pad' <- a -> IO (Ptr VideoAggregatorPad)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
pad
    Ptr VideoFrame
result <- Ptr VideoAggregatorPad -> IO (Ptr VideoFrame)
gst_video_aggregator_pad_get_prepared_frame Ptr VideoAggregatorPad
pad'
    Text -> Ptr VideoFrame -> IO ()
forall a. HasCallStack => Text -> Ptr a -> IO ()
checkUnexpectedReturnNULL Text
"videoAggregatorPadGetPreparedFrame" Ptr VideoFrame
result
    VideoFrame
result' <- ((ManagedPtr VideoFrame -> VideoFrame)
-> Ptr VideoFrame -> IO VideoFrame
forall a.
(HasCallStack, BoxedPtr a) =>
(ManagedPtr a -> a) -> Ptr a -> IO a
newPtr ManagedPtr VideoFrame -> VideoFrame
GstVideo.VideoFrame.VideoFrame) Ptr VideoFrame
result
    a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
pad
    VideoFrame -> IO VideoFrame
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return VideoFrame
result'

#if defined(ENABLE_OVERLOADING)
data VideoAggregatorPadGetPreparedFrameMethodInfo
instance (signature ~ (m GstVideo.VideoFrame.VideoFrame), MonadIO m, IsVideoAggregatorPad a) => O.OverloadedMethod VideoAggregatorPadGetPreparedFrameMethodInfo a signature where
    overloadedMethod = videoAggregatorPadGetPreparedFrame

instance O.OverloadedMethodInfo VideoAggregatorPadGetPreparedFrameMethodInfo a where
    overloadedMethodInfo = P.Just (O.ResolvedSymbolInfo {
        O.resolvedSymbolName = "GI.GstVideo.Objects.VideoAggregatorPad.videoAggregatorPadGetPreparedFrame",
        O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-gstvideo-1.0.28/docs/GI-GstVideo-Objects-VideoAggregatorPad.html#v:videoAggregatorPadGetPreparedFrame"
        })


#endif

-- method VideoAggregatorPad::has_current_buffer
-- method type : OrdinaryMethod
-- Args: [ Arg
--           { argCName = "pad"
--           , argType =
--               TInterface
--                 Name { namespace = "GstVideo" , name = "VideoAggregatorPad" }
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText = Just "a #GstVideoAggregatorPad"
--                 , sinceVersion = Nothing
--                 }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       ]
-- Lengths: []
-- returnType: Just (TBasicType TBoolean)
-- throws : False
-- Skip return : False

foreign import ccall "gst_video_aggregator_pad_has_current_buffer" gst_video_aggregator_pad_has_current_buffer :: 
    Ptr VideoAggregatorPad ->               -- pad : TInterface (Name {namespace = "GstVideo", name = "VideoAggregatorPad"})
    IO CInt

-- | Checks if the pad currently has a buffer queued that is going to be used
-- for the current output frame.
-- 
-- This must only be called from the t'GI.GstVideo.Structs.VideoAggregatorClass.VideoAggregatorClass'::@/aggregate_frames/@ virtual method,
-- or from the t'GI.GstVideo.Structs.VideoAggregatorPadClass.VideoAggregatorPadClass'::@/prepare_frame/@ virtual method of the aggregator pads.
videoAggregatorPadHasCurrentBuffer ::
    (B.CallStack.HasCallStack, MonadIO m, IsVideoAggregatorPad a) =>
    a
    -- ^ /@pad@/: a t'GI.GstVideo.Objects.VideoAggregatorPad.VideoAggregatorPad'
    -> m Bool
    -- ^ __Returns:__ 'P.True' if the pad has currently a buffer queued
videoAggregatorPadHasCurrentBuffer :: forall (m :: * -> *) a.
(HasCallStack, MonadIO m, IsVideoAggregatorPad a) =>
a -> m Bool
videoAggregatorPadHasCurrentBuffer a
pad = IO Bool -> m Bool
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO Bool -> m Bool) -> IO Bool -> m Bool
forall a b. (a -> b) -> a -> b
$ do
    Ptr VideoAggregatorPad
pad' <- a -> IO (Ptr VideoAggregatorPad)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
pad
    CInt
result <- Ptr VideoAggregatorPad -> IO CInt
gst_video_aggregator_pad_has_current_buffer Ptr VideoAggregatorPad
pad'
    let result' :: Bool
result' = (CInt -> CInt -> Bool
forall a. Eq a => a -> a -> Bool
/= CInt
0) CInt
result
    a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
pad
    Bool -> IO Bool
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return Bool
result'

#if defined(ENABLE_OVERLOADING)
data VideoAggregatorPadHasCurrentBufferMethodInfo
instance (signature ~ (m Bool), MonadIO m, IsVideoAggregatorPad a) => O.OverloadedMethod VideoAggregatorPadHasCurrentBufferMethodInfo a signature where
    overloadedMethod = videoAggregatorPadHasCurrentBuffer

instance O.OverloadedMethodInfo VideoAggregatorPadHasCurrentBufferMethodInfo a where
    overloadedMethodInfo = P.Just (O.ResolvedSymbolInfo {
        O.resolvedSymbolName = "GI.GstVideo.Objects.VideoAggregatorPad.videoAggregatorPadHasCurrentBuffer",
        O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-gstvideo-1.0.28/docs/GI-GstVideo-Objects-VideoAggregatorPad.html#v:videoAggregatorPadHasCurrentBuffer"
        })


#endif

-- method VideoAggregatorPad::set_needs_alpha
-- method type : OrdinaryMethod
-- Args: [ Arg
--           { argCName = "pad"
--           , argType =
--               TInterface
--                 Name { namespace = "GstVideo" , name = "VideoAggregatorPad" }
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText = Just "a #GstVideoAggregatorPad"
--                 , sinceVersion = Nothing
--                 }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       , Arg
--           { argCName = "needs_alpha"
--           , argType = TBasicType TBoolean
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText = Just "%TRUE if this pad requires alpha output"
--                 , sinceVersion = Nothing
--                 }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       ]
-- Lengths: []
-- returnType: Nothing
-- throws : False
-- Skip return : False

foreign import ccall "gst_video_aggregator_pad_set_needs_alpha" gst_video_aggregator_pad_set_needs_alpha :: 
    Ptr VideoAggregatorPad ->               -- pad : TInterface (Name {namespace = "GstVideo", name = "VideoAggregatorPad"})
    CInt ->                                 -- needs_alpha : TBasicType TBoolean
    IO ()

-- | Allows selecting that this pad requires an output format with alpha
videoAggregatorPadSetNeedsAlpha ::
    (B.CallStack.HasCallStack, MonadIO m, IsVideoAggregatorPad a) =>
    a
    -- ^ /@pad@/: a t'GI.GstVideo.Objects.VideoAggregatorPad.VideoAggregatorPad'
    -> Bool
    -- ^ /@needsAlpha@/: 'P.True' if this pad requires alpha output
    -> m ()
videoAggregatorPadSetNeedsAlpha :: forall (m :: * -> *) a.
(HasCallStack, MonadIO m, IsVideoAggregatorPad a) =>
a -> Bool -> m ()
videoAggregatorPadSetNeedsAlpha a
pad Bool
needsAlpha = 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 VideoAggregatorPad
pad' <- a -> IO (Ptr VideoAggregatorPad)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
pad
    let needsAlpha' :: CInt
needsAlpha' = (Int -> CInt
forall a b. (Integral a, Num b) => a -> b
P.fromIntegral (Int -> CInt) -> (Bool -> Int) -> Bool -> CInt
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Bool -> Int
forall a. Enum a => a -> Int
P.fromEnum) Bool
needsAlpha
    Ptr VideoAggregatorPad -> CInt -> IO ()
gst_video_aggregator_pad_set_needs_alpha Ptr VideoAggregatorPad
pad' CInt
needsAlpha'
    a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
pad
    () -> IO ()
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return ()

#if defined(ENABLE_OVERLOADING)
data VideoAggregatorPadSetNeedsAlphaMethodInfo
instance (signature ~ (Bool -> m ()), MonadIO m, IsVideoAggregatorPad a) => O.OverloadedMethod VideoAggregatorPadSetNeedsAlphaMethodInfo a signature where
    overloadedMethod = videoAggregatorPadSetNeedsAlpha

instance O.OverloadedMethodInfo VideoAggregatorPadSetNeedsAlphaMethodInfo a where
    overloadedMethodInfo = P.Just (O.ResolvedSymbolInfo {
        O.resolvedSymbolName = "GI.GstVideo.Objects.VideoAggregatorPad.videoAggregatorPadSetNeedsAlpha",
        O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-gstvideo-1.0.28/docs/GI-GstVideo-Objects-VideoAggregatorPad.html#v:videoAggregatorPadSetNeedsAlpha"
        })


#endif