{- | Copyright : Will Thompson, Iñaki García Etxebarria and Jonas Platte License : LGPL-2.1 Maintainer : Iñaki García Etxebarria (inaki@blueleaf.cc) Pads managed by a @/GstAggregor/@ subclass. This class used to live in gst-plugins-bad and was moved to core. /Since: 1.14/ -} #define ENABLE_OVERLOADING (MIN_VERSION_haskell_gi_overloading(1,0,0) \ && !defined(__HADDOCK_VERSION__)) module GI.GstBase.Objects.AggregatorPad ( -- * Exported types AggregatorPad(..) , IsAggregatorPad , toAggregatorPad , noAggregatorPad , -- * Methods -- ** dropBuffer #method:dropBuffer# #if ENABLE_OVERLOADING AggregatorPadDropBufferMethodInfo , #endif aggregatorPadDropBuffer , -- ** hasBuffer #method:hasBuffer# #if ENABLE_OVERLOADING AggregatorPadHasBufferMethodInfo , #endif aggregatorPadHasBuffer , -- ** isEos #method:isEos# #if ENABLE_OVERLOADING AggregatorPadIsEosMethodInfo , #endif aggregatorPadIsEos , -- ** peekBuffer #method:peekBuffer# #if ENABLE_OVERLOADING AggregatorPadPeekBufferMethodInfo , #endif aggregatorPadPeekBuffer , -- ** popBuffer #method:popBuffer# #if ENABLE_OVERLOADING AggregatorPadPopBufferMethodInfo , #endif aggregatorPadPopBuffer , -- * Properties -- ** emitSignals #attr:emitSignals# {- | Enables the emission of signals such as 'GI.GstBase.Objects.AggregatorPad.AggregatorPad'::@/buffer-consumed/@ /Since: 1.16/ -} #if ENABLE_OVERLOADING AggregatorPadEmitSignalsPropertyInfo , #endif #if ENABLE_OVERLOADING aggregatorPadEmitSignals , #endif constructAggregatorPadEmitSignals , getAggregatorPadEmitSignals , setAggregatorPadEmitSignals , -- * Signals -- ** bufferConsumed #signal:bufferConsumed# AggregatorPadBufferConsumedCallback , #if ENABLE_OVERLOADING AggregatorPadBufferConsumedSignalInfo , #endif C_AggregatorPadBufferConsumedCallback , afterAggregatorPadBufferConsumed , genClosure_AggregatorPadBufferConsumed , mk_AggregatorPadBufferConsumedCallback , noAggregatorPadBufferConsumedCallback , onAggregatorPadBufferConsumed , wrap_AggregatorPadBufferConsumedCallback, ) 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.ManagedPtr as B.ManagedPtr import qualified Data.GI.Base.GClosure as B.GClosure import qualified Data.GI.Base.GError as B.GError 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.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 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 -- | Memory-managed wrapper type. newtype AggregatorPad = AggregatorPad (ManagedPtr AggregatorPad) foreign import ccall "gst_aggregator_pad_get_type" c_gst_aggregator_pad_get_type :: IO GType instance GObject AggregatorPad where gobjectType = c_gst_aggregator_pad_get_type -- | Type class for types which can be safely cast to `AggregatorPad`, for instance with `toAggregatorPad`. class (GObject o, O.IsDescendantOf AggregatorPad o) => IsAggregatorPad o instance (GObject o, O.IsDescendantOf AggregatorPad o) => IsAggregatorPad o instance O.HasParentTypes AggregatorPad type instance O.ParentTypes AggregatorPad = '[Gst.Pad.Pad, Gst.Object.Object, GObject.Object.Object] -- | Cast to `AggregatorPad`, for types for which this is known to be safe. For general casts, use `Data.GI.Base.ManagedPtr.castTo`. toAggregatorPad :: (MonadIO m, IsAggregatorPad o) => o -> m AggregatorPad toAggregatorPad = liftIO . unsafeCastTo AggregatorPad -- | A convenience alias for `Nothing` :: `Maybe` `AggregatorPad`. noAggregatorPad :: Maybe AggregatorPad noAggregatorPad = Nothing #if ENABLE_OVERLOADING type family ResolveAggregatorPadMethod (t :: Symbol) (o :: *) :: * where ResolveAggregatorPadMethod "activateMode" o = Gst.Pad.PadActivateModeMethodInfo ResolveAggregatorPadMethod "addControlBinding" o = Gst.Object.ObjectAddControlBindingMethodInfo ResolveAggregatorPadMethod "addProbe" o = Gst.Pad.PadAddProbeMethodInfo ResolveAggregatorPadMethod "bindProperty" o = GObject.Object.ObjectBindPropertyMethodInfo ResolveAggregatorPadMethod "bindPropertyFull" o = GObject.Object.ObjectBindPropertyFullMethodInfo ResolveAggregatorPadMethod "canLink" o = Gst.Pad.PadCanLinkMethodInfo ResolveAggregatorPadMethod "chain" o = Gst.Pad.PadChainMethodInfo ResolveAggregatorPadMethod "chainList" o = Gst.Pad.PadChainListMethodInfo ResolveAggregatorPadMethod "checkReconfigure" o = Gst.Pad.PadCheckReconfigureMethodInfo ResolveAggregatorPadMethod "createStreamId" o = Gst.Pad.PadCreateStreamIdMethodInfo ResolveAggregatorPadMethod "defaultError" o = Gst.Object.ObjectDefaultErrorMethodInfo ResolveAggregatorPadMethod "dropBuffer" o = AggregatorPadDropBufferMethodInfo ResolveAggregatorPadMethod "eventDefault" o = Gst.Pad.PadEventDefaultMethodInfo ResolveAggregatorPadMethod "forceFloating" o = GObject.Object.ObjectForceFloatingMethodInfo ResolveAggregatorPadMethod "forward" o = Gst.Pad.PadForwardMethodInfo ResolveAggregatorPadMethod "freezeNotify" o = GObject.Object.ObjectFreezeNotifyMethodInfo ResolveAggregatorPadMethod "getv" o = GObject.Object.ObjectGetvMethodInfo ResolveAggregatorPadMethod "hasActiveControlBindings" o = Gst.Object.ObjectHasActiveControlBindingsMethodInfo ResolveAggregatorPadMethod "hasAncestor" o = Gst.Object.ObjectHasAncestorMethodInfo ResolveAggregatorPadMethod "hasAsAncestor" o = Gst.Object.ObjectHasAsAncestorMethodInfo ResolveAggregatorPadMethod "hasAsParent" o = Gst.Object.ObjectHasAsParentMethodInfo ResolveAggregatorPadMethod "hasBuffer" o = AggregatorPadHasBufferMethodInfo ResolveAggregatorPadMethod "hasCurrentCaps" o = Gst.Pad.PadHasCurrentCapsMethodInfo ResolveAggregatorPadMethod "isActive" o = Gst.Pad.PadIsActiveMethodInfo ResolveAggregatorPadMethod "isBlocked" o = Gst.Pad.PadIsBlockedMethodInfo ResolveAggregatorPadMethod "isBlocking" o = Gst.Pad.PadIsBlockingMethodInfo ResolveAggregatorPadMethod "isEos" o = AggregatorPadIsEosMethodInfo ResolveAggregatorPadMethod "isFloating" o = GObject.Object.ObjectIsFloatingMethodInfo ResolveAggregatorPadMethod "isLinked" o = Gst.Pad.PadIsLinkedMethodInfo ResolveAggregatorPadMethod "iterateInternalLinks" o = Gst.Pad.PadIterateInternalLinksMethodInfo ResolveAggregatorPadMethod "iterateInternalLinksDefault" o = Gst.Pad.PadIterateInternalLinksDefaultMethodInfo ResolveAggregatorPadMethod "link" o = Gst.Pad.PadLinkMethodInfo ResolveAggregatorPadMethod "linkFull" o = Gst.Pad.PadLinkFullMethodInfo ResolveAggregatorPadMethod "linkMaybeGhosting" o = Gst.Pad.PadLinkMaybeGhostingMethodInfo ResolveAggregatorPadMethod "linkMaybeGhostingFull" o = Gst.Pad.PadLinkMaybeGhostingFullMethodInfo ResolveAggregatorPadMethod "markReconfigure" o = Gst.Pad.PadMarkReconfigureMethodInfo ResolveAggregatorPadMethod "needsReconfigure" o = Gst.Pad.PadNeedsReconfigureMethodInfo ResolveAggregatorPadMethod "notify" o = GObject.Object.ObjectNotifyMethodInfo ResolveAggregatorPadMethod "notifyByPspec" o = GObject.Object.ObjectNotifyByPspecMethodInfo ResolveAggregatorPadMethod "pauseTask" o = Gst.Pad.PadPauseTaskMethodInfo ResolveAggregatorPadMethod "peekBuffer" o = AggregatorPadPeekBufferMethodInfo ResolveAggregatorPadMethod "peerQuery" o = Gst.Pad.PadPeerQueryMethodInfo ResolveAggregatorPadMethod "peerQueryAcceptCaps" o = Gst.Pad.PadPeerQueryAcceptCapsMethodInfo ResolveAggregatorPadMethod "peerQueryCaps" o = Gst.Pad.PadPeerQueryCapsMethodInfo ResolveAggregatorPadMethod "peerQueryConvert" o = Gst.Pad.PadPeerQueryConvertMethodInfo ResolveAggregatorPadMethod "peerQueryDuration" o = Gst.Pad.PadPeerQueryDurationMethodInfo ResolveAggregatorPadMethod "peerQueryPosition" o = Gst.Pad.PadPeerQueryPositionMethodInfo ResolveAggregatorPadMethod "popBuffer" o = AggregatorPadPopBufferMethodInfo ResolveAggregatorPadMethod "proxyQueryAcceptCaps" o = Gst.Pad.PadProxyQueryAcceptCapsMethodInfo ResolveAggregatorPadMethod "proxyQueryCaps" o = Gst.Pad.PadProxyQueryCapsMethodInfo ResolveAggregatorPadMethod "pullRange" o = Gst.Pad.PadPullRangeMethodInfo ResolveAggregatorPadMethod "push" o = Gst.Pad.PadPushMethodInfo ResolveAggregatorPadMethod "pushEvent" o = Gst.Pad.PadPushEventMethodInfo ResolveAggregatorPadMethod "pushList" o = Gst.Pad.PadPushListMethodInfo ResolveAggregatorPadMethod "query" o = Gst.Pad.PadQueryMethodInfo ResolveAggregatorPadMethod "queryAcceptCaps" o = Gst.Pad.PadQueryAcceptCapsMethodInfo ResolveAggregatorPadMethod "queryCaps" o = Gst.Pad.PadQueryCapsMethodInfo ResolveAggregatorPadMethod "queryConvert" o = Gst.Pad.PadQueryConvertMethodInfo ResolveAggregatorPadMethod "queryDefault" o = Gst.Pad.PadQueryDefaultMethodInfo ResolveAggregatorPadMethod "queryDuration" o = Gst.Pad.PadQueryDurationMethodInfo ResolveAggregatorPadMethod "queryPosition" o = Gst.Pad.PadQueryPositionMethodInfo ResolveAggregatorPadMethod "ref" o = Gst.Object.ObjectRefMethodInfo ResolveAggregatorPadMethod "refSink" o = GObject.Object.ObjectRefSinkMethodInfo ResolveAggregatorPadMethod "removeControlBinding" o = Gst.Object.ObjectRemoveControlBindingMethodInfo ResolveAggregatorPadMethod "removeProbe" o = Gst.Pad.PadRemoveProbeMethodInfo ResolveAggregatorPadMethod "runDispose" o = GObject.Object.ObjectRunDisposeMethodInfo ResolveAggregatorPadMethod "sendEvent" o = Gst.Pad.PadSendEventMethodInfo ResolveAggregatorPadMethod "startTask" o = Gst.Pad.PadStartTaskMethodInfo ResolveAggregatorPadMethod "stealData" o = GObject.Object.ObjectStealDataMethodInfo ResolveAggregatorPadMethod "stealQdata" o = GObject.Object.ObjectStealQdataMethodInfo ResolveAggregatorPadMethod "stickyEventsForeach" o = Gst.Pad.PadStickyEventsForeachMethodInfo ResolveAggregatorPadMethod "stopTask" o = Gst.Pad.PadStopTaskMethodInfo ResolveAggregatorPadMethod "storeStickyEvent" o = Gst.Pad.PadStoreStickyEventMethodInfo ResolveAggregatorPadMethod "suggestNextSync" o = Gst.Object.ObjectSuggestNextSyncMethodInfo ResolveAggregatorPadMethod "syncValues" o = Gst.Object.ObjectSyncValuesMethodInfo ResolveAggregatorPadMethod "thawNotify" o = GObject.Object.ObjectThawNotifyMethodInfo ResolveAggregatorPadMethod "unlink" o = Gst.Pad.PadUnlinkMethodInfo ResolveAggregatorPadMethod "unparent" o = Gst.Object.ObjectUnparentMethodInfo ResolveAggregatorPadMethod "unref" o = Gst.Object.ObjectUnrefMethodInfo ResolveAggregatorPadMethod "useFixedCaps" o = Gst.Pad.PadUseFixedCapsMethodInfo ResolveAggregatorPadMethod "watchClosure" o = GObject.Object.ObjectWatchClosureMethodInfo ResolveAggregatorPadMethod "getAllowedCaps" o = Gst.Pad.PadGetAllowedCapsMethodInfo ResolveAggregatorPadMethod "getControlBinding" o = Gst.Object.ObjectGetControlBindingMethodInfo ResolveAggregatorPadMethod "getControlRate" o = Gst.Object.ObjectGetControlRateMethodInfo ResolveAggregatorPadMethod "getCurrentCaps" o = Gst.Pad.PadGetCurrentCapsMethodInfo ResolveAggregatorPadMethod "getData" o = GObject.Object.ObjectGetDataMethodInfo ResolveAggregatorPadMethod "getDirection" o = Gst.Pad.PadGetDirectionMethodInfo ResolveAggregatorPadMethod "getElementPrivate" o = Gst.Pad.PadGetElementPrivateMethodInfo ResolveAggregatorPadMethod "getGValueArray" o = Gst.Object.ObjectGetGValueArrayMethodInfo ResolveAggregatorPadMethod "getLastFlowReturn" o = Gst.Pad.PadGetLastFlowReturnMethodInfo ResolveAggregatorPadMethod "getName" o = Gst.Object.ObjectGetNameMethodInfo ResolveAggregatorPadMethod "getOffset" o = Gst.Pad.PadGetOffsetMethodInfo ResolveAggregatorPadMethod "getPadTemplate" o = Gst.Pad.PadGetPadTemplateMethodInfo ResolveAggregatorPadMethod "getPadTemplateCaps" o = Gst.Pad.PadGetPadTemplateCapsMethodInfo ResolveAggregatorPadMethod "getParent" o = Gst.Object.ObjectGetParentMethodInfo ResolveAggregatorPadMethod "getParentElement" o = Gst.Pad.PadGetParentElementMethodInfo ResolveAggregatorPadMethod "getPathString" o = Gst.Object.ObjectGetPathStringMethodInfo ResolveAggregatorPadMethod "getPeer" o = Gst.Pad.PadGetPeerMethodInfo ResolveAggregatorPadMethod "getProperty" o = GObject.Object.ObjectGetPropertyMethodInfo ResolveAggregatorPadMethod "getQdata" o = GObject.Object.ObjectGetQdataMethodInfo ResolveAggregatorPadMethod "getRange" o = Gst.Pad.PadGetRangeMethodInfo ResolveAggregatorPadMethod "getStickyEvent" o = Gst.Pad.PadGetStickyEventMethodInfo ResolveAggregatorPadMethod "getStream" o = Gst.Pad.PadGetStreamMethodInfo ResolveAggregatorPadMethod "getStreamId" o = Gst.Pad.PadGetStreamIdMethodInfo ResolveAggregatorPadMethod "getTaskState" o = Gst.Pad.PadGetTaskStateMethodInfo ResolveAggregatorPadMethod "getValue" o = Gst.Object.ObjectGetValueMethodInfo ResolveAggregatorPadMethod "setActivateFunctionFull" o = Gst.Pad.PadSetActivateFunctionFullMethodInfo ResolveAggregatorPadMethod "setActivatemodeFunctionFull" o = Gst.Pad.PadSetActivatemodeFunctionFullMethodInfo ResolveAggregatorPadMethod "setActive" o = Gst.Pad.PadSetActiveMethodInfo ResolveAggregatorPadMethod "setChainFunctionFull" o = Gst.Pad.PadSetChainFunctionFullMethodInfo ResolveAggregatorPadMethod "setChainListFunctionFull" o = Gst.Pad.PadSetChainListFunctionFullMethodInfo ResolveAggregatorPadMethod "setControlBindingDisabled" o = Gst.Object.ObjectSetControlBindingDisabledMethodInfo ResolveAggregatorPadMethod "setControlBindingsDisabled" o = Gst.Object.ObjectSetControlBindingsDisabledMethodInfo ResolveAggregatorPadMethod "setControlRate" o = Gst.Object.ObjectSetControlRateMethodInfo ResolveAggregatorPadMethod "setData" o = GObject.Object.ObjectSetDataMethodInfo ResolveAggregatorPadMethod "setElementPrivate" o = Gst.Pad.PadSetElementPrivateMethodInfo ResolveAggregatorPadMethod "setEventFullFunctionFull" o = Gst.Pad.PadSetEventFullFunctionFullMethodInfo ResolveAggregatorPadMethod "setEventFunctionFull" o = Gst.Pad.PadSetEventFunctionFullMethodInfo ResolveAggregatorPadMethod "setGetrangeFunctionFull" o = Gst.Pad.PadSetGetrangeFunctionFullMethodInfo ResolveAggregatorPadMethod "setIterateInternalLinksFunctionFull" o = Gst.Pad.PadSetIterateInternalLinksFunctionFullMethodInfo ResolveAggregatorPadMethod "setLinkFunctionFull" o = Gst.Pad.PadSetLinkFunctionFullMethodInfo ResolveAggregatorPadMethod "setName" o = Gst.Object.ObjectSetNameMethodInfo ResolveAggregatorPadMethod "setOffset" o = Gst.Pad.PadSetOffsetMethodInfo ResolveAggregatorPadMethod "setParent" o = Gst.Object.ObjectSetParentMethodInfo ResolveAggregatorPadMethod "setProperty" o = GObject.Object.ObjectSetPropertyMethodInfo ResolveAggregatorPadMethod "setQueryFunctionFull" o = Gst.Pad.PadSetQueryFunctionFullMethodInfo ResolveAggregatorPadMethod "setUnlinkFunctionFull" o = Gst.Pad.PadSetUnlinkFunctionFullMethodInfo ResolveAggregatorPadMethod l o = O.MethodResolutionFailed l o instance (info ~ ResolveAggregatorPadMethod t AggregatorPad, O.MethodInfo info AggregatorPad p) => OL.IsLabel t (AggregatorPad -> p) where #if MIN_VERSION_base(4,10,0) fromLabel = O.overloadedMethod (O.MethodProxy :: O.MethodProxy info) #else fromLabel _ = O.overloadedMethod (O.MethodProxy :: O.MethodProxy info) #endif #endif -- signal AggregatorPad::buffer-consumed {- | /No description available in the introspection data./ -} type AggregatorPadBufferConsumedCallback = Gst.Buffer.Buffer -> IO () -- | A convenience synonym for @`Nothing` :: `Maybe` `AggregatorPadBufferConsumedCallback`@. noAggregatorPadBufferConsumedCallback :: Maybe AggregatorPadBufferConsumedCallback noAggregatorPadBufferConsumedCallback = Nothing -- | Type for the callback on the (unwrapped) C side. type C_AggregatorPadBufferConsumedCallback = Ptr () -> -- object Ptr Gst.Buffer.Buffer -> Ptr () -> -- user_data IO () -- | Generate a function pointer callable from C code, from a `C_AggregatorPadBufferConsumedCallback`. foreign import ccall "wrapper" mk_AggregatorPadBufferConsumedCallback :: C_AggregatorPadBufferConsumedCallback -> IO (FunPtr C_AggregatorPadBufferConsumedCallback) -- | Wrap the callback into a `GClosure`. genClosure_AggregatorPadBufferConsumed :: MonadIO m => AggregatorPadBufferConsumedCallback -> m (GClosure C_AggregatorPadBufferConsumedCallback) genClosure_AggregatorPadBufferConsumed cb = liftIO $ do let cb' = wrap_AggregatorPadBufferConsumedCallback cb mk_AggregatorPadBufferConsumedCallback cb' >>= B.GClosure.newGClosure -- | Wrap a `AggregatorPadBufferConsumedCallback` into a `C_AggregatorPadBufferConsumedCallback`. wrap_AggregatorPadBufferConsumedCallback :: AggregatorPadBufferConsumedCallback -> C_AggregatorPadBufferConsumedCallback wrap_AggregatorPadBufferConsumedCallback _cb _ object _ = do B.ManagedPtr.withTransient Gst.Buffer.Buffer object $ \object' -> do _cb object' {- | Connect a signal handler for the “@buffer-consumed@” signal, to be run before the default handler. When is enabled, this is equivalent to @ 'Data.GI.Base.Signals.on' aggregatorPad #bufferConsumed callback @ -} onAggregatorPadBufferConsumed :: (IsAggregatorPad a, MonadIO m) => a -> AggregatorPadBufferConsumedCallback -> m SignalHandlerId onAggregatorPadBufferConsumed obj cb = liftIO $ do let cb' = wrap_AggregatorPadBufferConsumedCallback cb cb'' <- mk_AggregatorPadBufferConsumedCallback cb' connectSignalFunPtr obj "buffer-consumed" cb'' SignalConnectBefore {- | Connect a signal handler for the “@buffer-consumed@” signal, to be run after the default handler. When is enabled, this is equivalent to @ 'Data.GI.Base.Signals.after' aggregatorPad #bufferConsumed callback @ -} afterAggregatorPadBufferConsumed :: (IsAggregatorPad a, MonadIO m) => a -> AggregatorPadBufferConsumedCallback -> m SignalHandlerId afterAggregatorPadBufferConsumed obj cb = liftIO $ do let cb' = wrap_AggregatorPadBufferConsumedCallback cb cb'' <- mk_AggregatorPadBufferConsumedCallback cb' connectSignalFunPtr obj "buffer-consumed" cb'' SignalConnectAfter -- VVV Prop "emit-signals" -- Type: TBasicType TBoolean -- Flags: [PropertyReadable,PropertyWritable] -- Nullable: (Nothing,Nothing) {- | Get the value of the “@emit-signals@” property. When is enabled, this is equivalent to @ 'Data.GI.Base.Attributes.get' aggregatorPad #emitSignals @ -} getAggregatorPadEmitSignals :: (MonadIO m, IsAggregatorPad o) => o -> m Bool getAggregatorPadEmitSignals obj = liftIO $ B.Properties.getObjectPropertyBool obj "emit-signals" {- | Set the value of the “@emit-signals@” property. When is enabled, this is equivalent to @ 'Data.GI.Base.Attributes.set' aggregatorPad [ #emitSignals 'Data.GI.Base.Attributes.:=' value ] @ -} setAggregatorPadEmitSignals :: (MonadIO m, IsAggregatorPad o) => o -> Bool -> m () setAggregatorPadEmitSignals obj val = liftIO $ B.Properties.setObjectPropertyBool obj "emit-signals" val {- | Construct a `GValueConstruct` with valid value for the “@emit-signals@” property. This is rarely needed directly, but it is used by `Data.GI.Base.Constructible.new`. -} constructAggregatorPadEmitSignals :: (IsAggregatorPad o) => Bool -> IO (GValueConstruct o) constructAggregatorPadEmitSignals val = B.Properties.constructObjectPropertyBool "emit-signals" val #if ENABLE_OVERLOADING data AggregatorPadEmitSignalsPropertyInfo instance AttrInfo AggregatorPadEmitSignalsPropertyInfo where type AttrAllowedOps AggregatorPadEmitSignalsPropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet] type AttrSetTypeConstraint AggregatorPadEmitSignalsPropertyInfo = (~) Bool type AttrBaseTypeConstraint AggregatorPadEmitSignalsPropertyInfo = IsAggregatorPad type AttrGetType AggregatorPadEmitSignalsPropertyInfo = Bool type AttrLabel AggregatorPadEmitSignalsPropertyInfo = "emit-signals" type AttrOrigin AggregatorPadEmitSignalsPropertyInfo = AggregatorPad attrGet _ = getAggregatorPadEmitSignals attrSet _ = setAggregatorPadEmitSignals attrConstruct _ = constructAggregatorPadEmitSignals attrClear _ = undefined #endif #if ENABLE_OVERLOADING instance O.HasAttributeList AggregatorPad type instance O.AttributeList AggregatorPad = AggregatorPadAttributeList type AggregatorPadAttributeList = ('[ '("caps", Gst.Pad.PadCapsPropertyInfo), '("direction", Gst.Pad.PadDirectionPropertyInfo), '("emitSignals", AggregatorPadEmitSignalsPropertyInfo), '("name", Gst.Object.ObjectNamePropertyInfo), '("offset", Gst.Pad.PadOffsetPropertyInfo), '("parent", Gst.Object.ObjectParentPropertyInfo), '("template", Gst.Pad.PadTemplatePropertyInfo)] :: [(Symbol, *)]) #endif #if ENABLE_OVERLOADING aggregatorPadEmitSignals :: AttrLabelProxy "emitSignals" aggregatorPadEmitSignals = AttrLabelProxy #endif #if ENABLE_OVERLOADING data AggregatorPadBufferConsumedSignalInfo instance SignalInfo AggregatorPadBufferConsumedSignalInfo where type HaskellCallbackType AggregatorPadBufferConsumedSignalInfo = AggregatorPadBufferConsumedCallback connectSignal _ obj cb connectMode = do let cb' = wrap_AggregatorPadBufferConsumedCallback cb cb'' <- mk_AggregatorPadBufferConsumedCallback cb' connectSignalFunPtr obj "buffer-consumed" cb'' connectMode type instance O.SignalList AggregatorPad = AggregatorPadSignalList type AggregatorPadSignalList = ('[ '("bufferConsumed", AggregatorPadBufferConsumedSignalInfo), '("deepNotify", Gst.Object.ObjectDeepNotifySignalInfo), '("linked", Gst.Pad.PadLinkedSignalInfo), '("notify", GObject.Object.ObjectNotifySignalInfo), '("unlinked", Gst.Pad.PadUnlinkedSignalInfo)] :: [(Symbol, *)]) #endif -- method AggregatorPad::drop_buffer -- method type : OrdinaryMethod -- Args : [Arg {argCName = "pad", argType = TInterface (Name {namespace = "GstBase", name = "AggregatorPad"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "the pad where to drop any pending buffer", 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_aggregator_pad_drop_buffer" gst_aggregator_pad_drop_buffer :: Ptr AggregatorPad -> -- pad : TInterface (Name {namespace = "GstBase", name = "AggregatorPad"}) IO CInt {- | Drop the buffer currently queued in /@pad@/. -} aggregatorPadDropBuffer :: (B.CallStack.HasCallStack, MonadIO m, IsAggregatorPad a) => a {- ^ /@pad@/: the pad where to drop any pending buffer -} -> m Bool {- ^ __Returns:__ TRUE if there was a buffer queued in /@pad@/, or FALSE if not. -} aggregatorPadDropBuffer pad = liftIO $ do pad' <- unsafeManagedPtrCastPtr pad result <- gst_aggregator_pad_drop_buffer pad' let result' = (/= 0) result touchManagedPtr pad return result' #if ENABLE_OVERLOADING data AggregatorPadDropBufferMethodInfo instance (signature ~ (m Bool), MonadIO m, IsAggregatorPad a) => O.MethodInfo AggregatorPadDropBufferMethodInfo a signature where overloadedMethod _ = aggregatorPadDropBuffer #endif -- method AggregatorPad::has_buffer -- method type : OrdinaryMethod -- Args : [Arg {argCName = "pad", argType = TInterface (Name {namespace = "GstBase", name = "AggregatorPad"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "the pad to check the buffer on", 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_aggregator_pad_has_buffer" gst_aggregator_pad_has_buffer :: Ptr AggregatorPad -> -- pad : TInterface (Name {namespace = "GstBase", name = "AggregatorPad"}) IO CInt {- | This checks if a pad has a buffer available that will be returned by a call to 'GI.GstBase.Objects.AggregatorPad.aggregatorPadPeekBuffer' or 'GI.GstBase.Objects.AggregatorPad.aggregatorPadPopBuffer'. /Since: 1.14.1/ -} aggregatorPadHasBuffer :: (B.CallStack.HasCallStack, MonadIO m, IsAggregatorPad a) => a {- ^ /@pad@/: the pad to check the buffer on -} -> m Bool {- ^ __Returns:__ 'True' if the pad has a buffer available as the next thing. -} aggregatorPadHasBuffer pad = liftIO $ do pad' <- unsafeManagedPtrCastPtr pad result <- gst_aggregator_pad_has_buffer pad' let result' = (/= 0) result touchManagedPtr pad return result' #if ENABLE_OVERLOADING data AggregatorPadHasBufferMethodInfo instance (signature ~ (m Bool), MonadIO m, IsAggregatorPad a) => O.MethodInfo AggregatorPadHasBufferMethodInfo a signature where overloadedMethod _ = aggregatorPadHasBuffer #endif -- method AggregatorPad::is_eos -- method type : OrdinaryMethod -- Args : [Arg {argCName = "pad", argType = TInterface (Name {namespace = "GstBase", name = "AggregatorPad"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "an aggregator pad", 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_aggregator_pad_is_eos" gst_aggregator_pad_is_eos :: Ptr AggregatorPad -> -- pad : TInterface (Name {namespace = "GstBase", name = "AggregatorPad"}) IO CInt {- | /No description available in the introspection data./ -} aggregatorPadIsEos :: (B.CallStack.HasCallStack, MonadIO m, IsAggregatorPad a) => a {- ^ /@pad@/: an aggregator pad -} -> m Bool {- ^ __Returns:__ 'True' if the pad is EOS, otherwise 'False'. -} aggregatorPadIsEos pad = liftIO $ do pad' <- unsafeManagedPtrCastPtr pad result <- gst_aggregator_pad_is_eos pad' let result' = (/= 0) result touchManagedPtr pad return result' #if ENABLE_OVERLOADING data AggregatorPadIsEosMethodInfo instance (signature ~ (m Bool), MonadIO m, IsAggregatorPad a) => O.MethodInfo AggregatorPadIsEosMethodInfo a signature where overloadedMethod _ = aggregatorPadIsEos #endif -- method AggregatorPad::peek_buffer -- method type : OrdinaryMethod -- Args : [Arg {argCName = "pad", argType = TInterface (Name {namespace = "GstBase", name = "AggregatorPad"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "the pad to get buffer from", 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_aggregator_pad_peek_buffer" gst_aggregator_pad_peek_buffer :: Ptr AggregatorPad -> -- pad : TInterface (Name {namespace = "GstBase", name = "AggregatorPad"}) IO (Ptr Gst.Buffer.Buffer) {- | /No description available in the introspection data./ -} aggregatorPadPeekBuffer :: (B.CallStack.HasCallStack, MonadIO m, IsAggregatorPad a) => a {- ^ /@pad@/: the pad to get buffer from -} -> m Gst.Buffer.Buffer {- ^ __Returns:__ A reference to the buffer in /@pad@/ or NULL if no buffer was queued. You should unref the buffer after usage. -} aggregatorPadPeekBuffer pad = liftIO $ do pad' <- unsafeManagedPtrCastPtr pad result <- gst_aggregator_pad_peek_buffer pad' checkUnexpectedReturnNULL "aggregatorPadPeekBuffer" result result' <- (wrapBoxed Gst.Buffer.Buffer) result touchManagedPtr pad return result' #if ENABLE_OVERLOADING data AggregatorPadPeekBufferMethodInfo instance (signature ~ (m Gst.Buffer.Buffer), MonadIO m, IsAggregatorPad a) => O.MethodInfo AggregatorPadPeekBufferMethodInfo a signature where overloadedMethod _ = aggregatorPadPeekBuffer #endif -- method AggregatorPad::pop_buffer -- method type : OrdinaryMethod -- Args : [Arg {argCName = "pad", argType = TInterface (Name {namespace = "GstBase", name = "AggregatorPad"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "the pad to get buffer from", 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_aggregator_pad_pop_buffer" gst_aggregator_pad_pop_buffer :: Ptr AggregatorPad -> -- pad : TInterface (Name {namespace = "GstBase", name = "AggregatorPad"}) IO (Ptr Gst.Buffer.Buffer) {- | Steal the ref to the buffer currently queued in /@pad@/. -} aggregatorPadPopBuffer :: (B.CallStack.HasCallStack, MonadIO m, IsAggregatorPad a) => a {- ^ /@pad@/: the pad to get buffer from -} -> m Gst.Buffer.Buffer {- ^ __Returns:__ The buffer in /@pad@/ or NULL if no buffer was queued. You should unref the buffer after usage. -} aggregatorPadPopBuffer pad = liftIO $ do pad' <- unsafeManagedPtrCastPtr pad result <- gst_aggregator_pad_pop_buffer pad' checkUnexpectedReturnNULL "aggregatorPadPopBuffer" result result' <- (wrapBoxed Gst.Buffer.Buffer) result touchManagedPtr pad return result' #if ENABLE_OVERLOADING data AggregatorPadPopBufferMethodInfo instance (signature ~ (m Gst.Buffer.Buffer), MonadIO m, IsAggregatorPad a) => O.MethodInfo AggregatorPadPopBufferMethodInfo a signature where overloadedMethod _ = aggregatorPadPopBuffer #endif