{- | Copyright : Will Thompson, Iñaki García Etxebarria and Jonas Platte License : LGPL-2.1 Maintainer : Iñaki García Etxebarria (inaki@blueleaf.cc) Subclasses must use (a subclass of) 'GI.GstAudio.Objects.AudioAggregatorPad.AudioAggregatorPad' for both their source and sink pads, 'GI.Gst.Structs.ElementClass.elementClassAddStaticPadTemplateWithGtype' is a convenient helper. 'GI.GstAudio.Objects.AudioAggregator.AudioAggregator' can perform conversion on the data arriving on its sink pads, based on the format expected downstream: in order to enable that behaviour, the GType of the sink pads must either be a (subclass of) 'GI.GstAudio.Objects.AudioAggregatorConvertPad.AudioAggregatorConvertPad' to use the default 'GI.GstAudio.Structs.AudioConverter.AudioConverter' implementation, or a subclass of 'GI.GstAudio.Objects.AudioAggregatorPad.AudioAggregatorPad' implementing 'GI.GstAudio.Structs.AudioAggregatorPadClass.AudioAggregatorPadClass'.@/convert_buffer/@. To allow for the output caps to change, the mechanism is the same as above, with the GType of the source pad. See @/GstAudioMixer/@ for an example. When conversion is enabled, 'GI.GstAudio.Objects.AudioAggregator.AudioAggregator' will accept any type of raw audio caps and perform conversion on the data arriving on its sink pads, with whatever downstream expects as the target format. In case downstream caps are not fully fixated, it will use the first configured sink pad to finish fixating its source pad caps. A notable exception for now is the sample rate, sink pads must have the same sample rate as either the downstream requirement, or the first configured pad, or a combination of both (when downstream specifies a range or a set of acceptable rates). -} #define ENABLE_OVERLOADING (MIN_VERSION_haskell_gi_overloading(1,0,0) \ && !defined(__HADDOCK_VERSION__)) module GI.GstAudio.Objects.AudioAggregator ( -- * Exported types AudioAggregator(..) , IsAudioAggregator , toAudioAggregator , noAudioAggregator , -- * Methods -- ** setSinkCaps #method:setSinkCaps# #if ENABLE_OVERLOADING AudioAggregatorSetSinkCapsMethodInfo , #endif audioAggregatorSetSinkCaps , -- * Properties -- ** alignmentThreshold #attr:alignmentThreshold# {- | /No description available in the introspection data./ -} #if ENABLE_OVERLOADING AudioAggregatorAlignmentThresholdPropertyInfo, #endif #if ENABLE_OVERLOADING audioAggregatorAlignmentThreshold , #endif constructAudioAggregatorAlignmentThreshold, getAudioAggregatorAlignmentThreshold , setAudioAggregatorAlignmentThreshold , -- ** discontWait #attr:discontWait# {- | /No description available in the introspection data./ -} #if ENABLE_OVERLOADING AudioAggregatorDiscontWaitPropertyInfo , #endif #if ENABLE_OVERLOADING audioAggregatorDiscontWait , #endif constructAudioAggregatorDiscontWait , getAudioAggregatorDiscontWait , setAudioAggregatorDiscontWait , -- ** outputBufferDuration #attr:outputBufferDuration# {- | /No description available in the introspection data./ -} #if ENABLE_OVERLOADING AudioAggregatorOutputBufferDurationPropertyInfo, #endif #if ENABLE_OVERLOADING audioAggregatorOutputBufferDuration , #endif constructAudioAggregatorOutputBufferDuration, getAudioAggregatorOutputBufferDuration , setAudioAggregatorOutputBufferDuration , ) 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.Element as Gst.Element import qualified GI.Gst.Objects.Object as Gst.Object import qualified GI.Gst.Structs.Caps as Gst.Caps import {-# SOURCE #-} qualified GI.GstAudio.Objects.AudioAggregatorPad as GstAudio.AudioAggregatorPad import qualified GI.GstBase.Objects.Aggregator as GstBase.Aggregator -- | Memory-managed wrapper type. newtype AudioAggregator = AudioAggregator (ManagedPtr AudioAggregator) foreign import ccall "gst_audio_aggregator_get_type" c_gst_audio_aggregator_get_type :: IO GType instance GObject AudioAggregator where gobjectType = c_gst_audio_aggregator_get_type -- | Type class for types which can be safely cast to `AudioAggregator`, for instance with `toAudioAggregator`. class (GObject o, O.IsDescendantOf AudioAggregator o) => IsAudioAggregator o instance (GObject o, O.IsDescendantOf AudioAggregator o) => IsAudioAggregator o instance O.HasParentTypes AudioAggregator type instance O.ParentTypes AudioAggregator = '[GstBase.Aggregator.Aggregator, Gst.Element.Element, Gst.Object.Object, GObject.Object.Object] -- | Cast to `AudioAggregator`, for types for which this is known to be safe. For general casts, use `Data.GI.Base.ManagedPtr.castTo`. toAudioAggregator :: (MonadIO m, IsAudioAggregator o) => o -> m AudioAggregator toAudioAggregator = liftIO . unsafeCastTo AudioAggregator -- | A convenience alias for `Nothing` :: `Maybe` `AudioAggregator`. noAudioAggregator :: Maybe AudioAggregator noAudioAggregator = Nothing #if ENABLE_OVERLOADING type family ResolveAudioAggregatorMethod (t :: Symbol) (o :: *) :: * where ResolveAudioAggregatorMethod "abortState" o = Gst.Element.ElementAbortStateMethodInfo ResolveAudioAggregatorMethod "addControlBinding" o = Gst.Object.ObjectAddControlBindingMethodInfo ResolveAudioAggregatorMethod "addPad" o = Gst.Element.ElementAddPadMethodInfo ResolveAudioAggregatorMethod "addPropertyDeepNotifyWatch" o = Gst.Element.ElementAddPropertyDeepNotifyWatchMethodInfo ResolveAudioAggregatorMethod "addPropertyNotifyWatch" o = Gst.Element.ElementAddPropertyNotifyWatchMethodInfo ResolveAudioAggregatorMethod "bindProperty" o = GObject.Object.ObjectBindPropertyMethodInfo ResolveAudioAggregatorMethod "bindPropertyFull" o = GObject.Object.ObjectBindPropertyFullMethodInfo ResolveAudioAggregatorMethod "callAsync" o = Gst.Element.ElementCallAsyncMethodInfo ResolveAudioAggregatorMethod "changeState" o = Gst.Element.ElementChangeStateMethodInfo ResolveAudioAggregatorMethod "continueState" o = Gst.Element.ElementContinueStateMethodInfo ResolveAudioAggregatorMethod "createAllPads" o = Gst.Element.ElementCreateAllPadsMethodInfo ResolveAudioAggregatorMethod "defaultError" o = Gst.Object.ObjectDefaultErrorMethodInfo ResolveAudioAggregatorMethod "finishBuffer" o = GstBase.Aggregator.AggregatorFinishBufferMethodInfo ResolveAudioAggregatorMethod "forceFloating" o = GObject.Object.ObjectForceFloatingMethodInfo ResolveAudioAggregatorMethod "foreachPad" o = Gst.Element.ElementForeachPadMethodInfo ResolveAudioAggregatorMethod "foreachSinkPad" o = Gst.Element.ElementForeachSinkPadMethodInfo ResolveAudioAggregatorMethod "foreachSrcPad" o = Gst.Element.ElementForeachSrcPadMethodInfo ResolveAudioAggregatorMethod "freezeNotify" o = GObject.Object.ObjectFreezeNotifyMethodInfo ResolveAudioAggregatorMethod "getv" o = GObject.Object.ObjectGetvMethodInfo ResolveAudioAggregatorMethod "hasActiveControlBindings" o = Gst.Object.ObjectHasActiveControlBindingsMethodInfo ResolveAudioAggregatorMethod "hasAncestor" o = Gst.Object.ObjectHasAncestorMethodInfo ResolveAudioAggregatorMethod "hasAsAncestor" o = Gst.Object.ObjectHasAsAncestorMethodInfo ResolveAudioAggregatorMethod "hasAsParent" o = Gst.Object.ObjectHasAsParentMethodInfo ResolveAudioAggregatorMethod "isFloating" o = GObject.Object.ObjectIsFloatingMethodInfo ResolveAudioAggregatorMethod "isLockedState" o = Gst.Element.ElementIsLockedStateMethodInfo ResolveAudioAggregatorMethod "iteratePads" o = Gst.Element.ElementIteratePadsMethodInfo ResolveAudioAggregatorMethod "iterateSinkPads" o = Gst.Element.ElementIterateSinkPadsMethodInfo ResolveAudioAggregatorMethod "iterateSrcPads" o = Gst.Element.ElementIterateSrcPadsMethodInfo ResolveAudioAggregatorMethod "link" o = Gst.Element.ElementLinkMethodInfo ResolveAudioAggregatorMethod "linkFiltered" o = Gst.Element.ElementLinkFilteredMethodInfo ResolveAudioAggregatorMethod "linkPads" o = Gst.Element.ElementLinkPadsMethodInfo ResolveAudioAggregatorMethod "linkPadsFiltered" o = Gst.Element.ElementLinkPadsFilteredMethodInfo ResolveAudioAggregatorMethod "linkPadsFull" o = Gst.Element.ElementLinkPadsFullMethodInfo ResolveAudioAggregatorMethod "lostState" o = Gst.Element.ElementLostStateMethodInfo ResolveAudioAggregatorMethod "messageFull" o = Gst.Element.ElementMessageFullMethodInfo ResolveAudioAggregatorMethod "messageFullWithDetails" o = Gst.Element.ElementMessageFullWithDetailsMethodInfo ResolveAudioAggregatorMethod "noMorePads" o = Gst.Element.ElementNoMorePadsMethodInfo ResolveAudioAggregatorMethod "notify" o = GObject.Object.ObjectNotifyMethodInfo ResolveAudioAggregatorMethod "notifyByPspec" o = GObject.Object.ObjectNotifyByPspecMethodInfo ResolveAudioAggregatorMethod "postMessage" o = Gst.Element.ElementPostMessageMethodInfo ResolveAudioAggregatorMethod "provideClock" o = Gst.Element.ElementProvideClockMethodInfo ResolveAudioAggregatorMethod "query" o = Gst.Element.ElementQueryMethodInfo ResolveAudioAggregatorMethod "queryConvert" o = Gst.Element.ElementQueryConvertMethodInfo ResolveAudioAggregatorMethod "queryDuration" o = Gst.Element.ElementQueryDurationMethodInfo ResolveAudioAggregatorMethod "queryPosition" o = Gst.Element.ElementQueryPositionMethodInfo ResolveAudioAggregatorMethod "ref" o = Gst.Object.ObjectRefMethodInfo ResolveAudioAggregatorMethod "refSink" o = GObject.Object.ObjectRefSinkMethodInfo ResolveAudioAggregatorMethod "releaseRequestPad" o = Gst.Element.ElementReleaseRequestPadMethodInfo ResolveAudioAggregatorMethod "removeControlBinding" o = Gst.Object.ObjectRemoveControlBindingMethodInfo ResolveAudioAggregatorMethod "removePad" o = Gst.Element.ElementRemovePadMethodInfo ResolveAudioAggregatorMethod "removePropertyNotifyWatch" o = Gst.Element.ElementRemovePropertyNotifyWatchMethodInfo ResolveAudioAggregatorMethod "requestPad" o = Gst.Element.ElementRequestPadMethodInfo ResolveAudioAggregatorMethod "runDispose" o = GObject.Object.ObjectRunDisposeMethodInfo ResolveAudioAggregatorMethod "seek" o = Gst.Element.ElementSeekMethodInfo ResolveAudioAggregatorMethod "seekSimple" o = Gst.Element.ElementSeekSimpleMethodInfo ResolveAudioAggregatorMethod "sendEvent" o = Gst.Element.ElementSendEventMethodInfo ResolveAudioAggregatorMethod "simpleGetNextTime" o = GstBase.Aggregator.AggregatorSimpleGetNextTimeMethodInfo ResolveAudioAggregatorMethod "stealData" o = GObject.Object.ObjectStealDataMethodInfo ResolveAudioAggregatorMethod "stealQdata" o = GObject.Object.ObjectStealQdataMethodInfo ResolveAudioAggregatorMethod "suggestNextSync" o = Gst.Object.ObjectSuggestNextSyncMethodInfo ResolveAudioAggregatorMethod "syncStateWithParent" o = Gst.Element.ElementSyncStateWithParentMethodInfo ResolveAudioAggregatorMethod "syncValues" o = Gst.Object.ObjectSyncValuesMethodInfo ResolveAudioAggregatorMethod "thawNotify" o = GObject.Object.ObjectThawNotifyMethodInfo ResolveAudioAggregatorMethod "unlink" o = Gst.Element.ElementUnlinkMethodInfo ResolveAudioAggregatorMethod "unlinkPads" o = Gst.Element.ElementUnlinkPadsMethodInfo ResolveAudioAggregatorMethod "unparent" o = Gst.Object.ObjectUnparentMethodInfo ResolveAudioAggregatorMethod "unref" o = Gst.Object.ObjectUnrefMethodInfo ResolveAudioAggregatorMethod "watchClosure" o = GObject.Object.ObjectWatchClosureMethodInfo ResolveAudioAggregatorMethod "getAllocator" o = GstBase.Aggregator.AggregatorGetAllocatorMethodInfo ResolveAudioAggregatorMethod "getBaseTime" o = Gst.Element.ElementGetBaseTimeMethodInfo ResolveAudioAggregatorMethod "getBufferPool" o = GstBase.Aggregator.AggregatorGetBufferPoolMethodInfo ResolveAudioAggregatorMethod "getBus" o = Gst.Element.ElementGetBusMethodInfo ResolveAudioAggregatorMethod "getClock" o = Gst.Element.ElementGetClockMethodInfo ResolveAudioAggregatorMethod "getCompatiblePad" o = Gst.Element.ElementGetCompatiblePadMethodInfo ResolveAudioAggregatorMethod "getCompatiblePadTemplate" o = Gst.Element.ElementGetCompatiblePadTemplateMethodInfo ResolveAudioAggregatorMethod "getContext" o = Gst.Element.ElementGetContextMethodInfo ResolveAudioAggregatorMethod "getContextUnlocked" o = Gst.Element.ElementGetContextUnlockedMethodInfo ResolveAudioAggregatorMethod "getContexts" o = Gst.Element.ElementGetContextsMethodInfo ResolveAudioAggregatorMethod "getControlBinding" o = Gst.Object.ObjectGetControlBindingMethodInfo ResolveAudioAggregatorMethod "getControlRate" o = Gst.Object.ObjectGetControlRateMethodInfo ResolveAudioAggregatorMethod "getData" o = GObject.Object.ObjectGetDataMethodInfo ResolveAudioAggregatorMethod "getFactory" o = Gst.Element.ElementGetFactoryMethodInfo ResolveAudioAggregatorMethod "getGValueArray" o = Gst.Object.ObjectGetGValueArrayMethodInfo ResolveAudioAggregatorMethod "getLatency" o = GstBase.Aggregator.AggregatorGetLatencyMethodInfo ResolveAudioAggregatorMethod "getMetadata" o = Gst.Element.ElementGetMetadataMethodInfo ResolveAudioAggregatorMethod "getName" o = Gst.Object.ObjectGetNameMethodInfo ResolveAudioAggregatorMethod "getPadTemplate" o = Gst.Element.ElementGetPadTemplateMethodInfo ResolveAudioAggregatorMethod "getPadTemplateList" o = Gst.Element.ElementGetPadTemplateListMethodInfo ResolveAudioAggregatorMethod "getParent" o = Gst.Object.ObjectGetParentMethodInfo ResolveAudioAggregatorMethod "getPathString" o = Gst.Object.ObjectGetPathStringMethodInfo ResolveAudioAggregatorMethod "getProperty" o = GObject.Object.ObjectGetPropertyMethodInfo ResolveAudioAggregatorMethod "getQdata" o = GObject.Object.ObjectGetQdataMethodInfo ResolveAudioAggregatorMethod "getRequestPad" o = Gst.Element.ElementGetRequestPadMethodInfo ResolveAudioAggregatorMethod "getStartTime" o = Gst.Element.ElementGetStartTimeMethodInfo ResolveAudioAggregatorMethod "getState" o = Gst.Element.ElementGetStateMethodInfo ResolveAudioAggregatorMethod "getStaticPad" o = Gst.Element.ElementGetStaticPadMethodInfo ResolveAudioAggregatorMethod "getValue" o = Gst.Object.ObjectGetValueMethodInfo ResolveAudioAggregatorMethod "setBaseTime" o = Gst.Element.ElementSetBaseTimeMethodInfo ResolveAudioAggregatorMethod "setBus" o = Gst.Element.ElementSetBusMethodInfo ResolveAudioAggregatorMethod "setClock" o = Gst.Element.ElementSetClockMethodInfo ResolveAudioAggregatorMethod "setContext" o = Gst.Element.ElementSetContextMethodInfo ResolveAudioAggregatorMethod "setControlBindingDisabled" o = Gst.Object.ObjectSetControlBindingDisabledMethodInfo ResolveAudioAggregatorMethod "setControlBindingsDisabled" o = Gst.Object.ObjectSetControlBindingsDisabledMethodInfo ResolveAudioAggregatorMethod "setControlRate" o = Gst.Object.ObjectSetControlRateMethodInfo ResolveAudioAggregatorMethod "setData" o = GObject.Object.ObjectSetDataMethodInfo ResolveAudioAggregatorMethod "setLatency" o = GstBase.Aggregator.AggregatorSetLatencyMethodInfo ResolveAudioAggregatorMethod "setLockedState" o = Gst.Element.ElementSetLockedStateMethodInfo ResolveAudioAggregatorMethod "setName" o = Gst.Object.ObjectSetNameMethodInfo ResolveAudioAggregatorMethod "setParent" o = Gst.Object.ObjectSetParentMethodInfo ResolveAudioAggregatorMethod "setProperty" o = GObject.Object.ObjectSetPropertyMethodInfo ResolveAudioAggregatorMethod "setSinkCaps" o = AudioAggregatorSetSinkCapsMethodInfo ResolveAudioAggregatorMethod "setSrcCaps" o = GstBase.Aggregator.AggregatorSetSrcCapsMethodInfo ResolveAudioAggregatorMethod "setStartTime" o = Gst.Element.ElementSetStartTimeMethodInfo ResolveAudioAggregatorMethod "setState" o = Gst.Element.ElementSetStateMethodInfo ResolveAudioAggregatorMethod l o = O.MethodResolutionFailed l o instance (info ~ ResolveAudioAggregatorMethod t AudioAggregator, O.MethodInfo info AudioAggregator p) => OL.IsLabel t (AudioAggregator -> 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 -- VVV Prop "alignment-threshold" -- Type: TBasicType TUInt64 -- Flags: [PropertyReadable,PropertyWritable] -- Nullable: (Nothing,Nothing) {- | Get the value of the “@alignment-threshold@” property. When is enabled, this is equivalent to @ 'Data.GI.Base.Attributes.get' audioAggregator #alignmentThreshold @ -} getAudioAggregatorAlignmentThreshold :: (MonadIO m, IsAudioAggregator o) => o -> m Word64 getAudioAggregatorAlignmentThreshold obj = liftIO $ B.Properties.getObjectPropertyUInt64 obj "alignment-threshold" {- | Set the value of the “@alignment-threshold@” property. When is enabled, this is equivalent to @ 'Data.GI.Base.Attributes.set' audioAggregator [ #alignmentThreshold 'Data.GI.Base.Attributes.:=' value ] @ -} setAudioAggregatorAlignmentThreshold :: (MonadIO m, IsAudioAggregator o) => o -> Word64 -> m () setAudioAggregatorAlignmentThreshold obj val = liftIO $ B.Properties.setObjectPropertyUInt64 obj "alignment-threshold" val {- | Construct a `GValueConstruct` with valid value for the “@alignment-threshold@” property. This is rarely needed directly, but it is used by `Data.GI.Base.Constructible.new`. -} constructAudioAggregatorAlignmentThreshold :: (IsAudioAggregator o) => Word64 -> IO (GValueConstruct o) constructAudioAggregatorAlignmentThreshold val = B.Properties.constructObjectPropertyUInt64 "alignment-threshold" val #if ENABLE_OVERLOADING data AudioAggregatorAlignmentThresholdPropertyInfo instance AttrInfo AudioAggregatorAlignmentThresholdPropertyInfo where type AttrAllowedOps AudioAggregatorAlignmentThresholdPropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet] type AttrSetTypeConstraint AudioAggregatorAlignmentThresholdPropertyInfo = (~) Word64 type AttrBaseTypeConstraint AudioAggregatorAlignmentThresholdPropertyInfo = IsAudioAggregator type AttrGetType AudioAggregatorAlignmentThresholdPropertyInfo = Word64 type AttrLabel AudioAggregatorAlignmentThresholdPropertyInfo = "alignment-threshold" type AttrOrigin AudioAggregatorAlignmentThresholdPropertyInfo = AudioAggregator attrGet _ = getAudioAggregatorAlignmentThreshold attrSet _ = setAudioAggregatorAlignmentThreshold attrConstruct _ = constructAudioAggregatorAlignmentThreshold attrClear _ = undefined #endif -- VVV Prop "discont-wait" -- Type: TBasicType TUInt64 -- Flags: [PropertyReadable,PropertyWritable] -- Nullable: (Nothing,Nothing) {- | Get the value of the “@discont-wait@” property. When is enabled, this is equivalent to @ 'Data.GI.Base.Attributes.get' audioAggregator #discontWait @ -} getAudioAggregatorDiscontWait :: (MonadIO m, IsAudioAggregator o) => o -> m Word64 getAudioAggregatorDiscontWait obj = liftIO $ B.Properties.getObjectPropertyUInt64 obj "discont-wait" {- | Set the value of the “@discont-wait@” property. When is enabled, this is equivalent to @ 'Data.GI.Base.Attributes.set' audioAggregator [ #discontWait 'Data.GI.Base.Attributes.:=' value ] @ -} setAudioAggregatorDiscontWait :: (MonadIO m, IsAudioAggregator o) => o -> Word64 -> m () setAudioAggregatorDiscontWait obj val = liftIO $ B.Properties.setObjectPropertyUInt64 obj "discont-wait" val {- | Construct a `GValueConstruct` with valid value for the “@discont-wait@” property. This is rarely needed directly, but it is used by `Data.GI.Base.Constructible.new`. -} constructAudioAggregatorDiscontWait :: (IsAudioAggregator o) => Word64 -> IO (GValueConstruct o) constructAudioAggregatorDiscontWait val = B.Properties.constructObjectPropertyUInt64 "discont-wait" val #if ENABLE_OVERLOADING data AudioAggregatorDiscontWaitPropertyInfo instance AttrInfo AudioAggregatorDiscontWaitPropertyInfo where type AttrAllowedOps AudioAggregatorDiscontWaitPropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet] type AttrSetTypeConstraint AudioAggregatorDiscontWaitPropertyInfo = (~) Word64 type AttrBaseTypeConstraint AudioAggregatorDiscontWaitPropertyInfo = IsAudioAggregator type AttrGetType AudioAggregatorDiscontWaitPropertyInfo = Word64 type AttrLabel AudioAggregatorDiscontWaitPropertyInfo = "discont-wait" type AttrOrigin AudioAggregatorDiscontWaitPropertyInfo = AudioAggregator attrGet _ = getAudioAggregatorDiscontWait attrSet _ = setAudioAggregatorDiscontWait attrConstruct _ = constructAudioAggregatorDiscontWait attrClear _ = undefined #endif -- VVV Prop "output-buffer-duration" -- Type: TBasicType TUInt64 -- Flags: [PropertyReadable,PropertyWritable] -- Nullable: (Nothing,Nothing) {- | Get the value of the “@output-buffer-duration@” property. When is enabled, this is equivalent to @ 'Data.GI.Base.Attributes.get' audioAggregator #outputBufferDuration @ -} getAudioAggregatorOutputBufferDuration :: (MonadIO m, IsAudioAggregator o) => o -> m Word64 getAudioAggregatorOutputBufferDuration obj = liftIO $ B.Properties.getObjectPropertyUInt64 obj "output-buffer-duration" {- | Set the value of the “@output-buffer-duration@” property. When is enabled, this is equivalent to @ 'Data.GI.Base.Attributes.set' audioAggregator [ #outputBufferDuration 'Data.GI.Base.Attributes.:=' value ] @ -} setAudioAggregatorOutputBufferDuration :: (MonadIO m, IsAudioAggregator o) => o -> Word64 -> m () setAudioAggregatorOutputBufferDuration obj val = liftIO $ B.Properties.setObjectPropertyUInt64 obj "output-buffer-duration" val {- | Construct a `GValueConstruct` with valid value for the “@output-buffer-duration@” property. This is rarely needed directly, but it is used by `Data.GI.Base.Constructible.new`. -} constructAudioAggregatorOutputBufferDuration :: (IsAudioAggregator o) => Word64 -> IO (GValueConstruct o) constructAudioAggregatorOutputBufferDuration val = B.Properties.constructObjectPropertyUInt64 "output-buffer-duration" val #if ENABLE_OVERLOADING data AudioAggregatorOutputBufferDurationPropertyInfo instance AttrInfo AudioAggregatorOutputBufferDurationPropertyInfo where type AttrAllowedOps AudioAggregatorOutputBufferDurationPropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet] type AttrSetTypeConstraint AudioAggregatorOutputBufferDurationPropertyInfo = (~) Word64 type AttrBaseTypeConstraint AudioAggregatorOutputBufferDurationPropertyInfo = IsAudioAggregator type AttrGetType AudioAggregatorOutputBufferDurationPropertyInfo = Word64 type AttrLabel AudioAggregatorOutputBufferDurationPropertyInfo = "output-buffer-duration" type AttrOrigin AudioAggregatorOutputBufferDurationPropertyInfo = AudioAggregator attrGet _ = getAudioAggregatorOutputBufferDuration attrSet _ = setAudioAggregatorOutputBufferDuration attrConstruct _ = constructAudioAggregatorOutputBufferDuration attrClear _ = undefined #endif #if ENABLE_OVERLOADING instance O.HasAttributeList AudioAggregator type instance O.AttributeList AudioAggregator = AudioAggregatorAttributeList type AudioAggregatorAttributeList = ('[ '("alignmentThreshold", AudioAggregatorAlignmentThresholdPropertyInfo), '("discontWait", AudioAggregatorDiscontWaitPropertyInfo), '("latency", GstBase.Aggregator.AggregatorLatencyPropertyInfo), '("minUpstreamLatency", GstBase.Aggregator.AggregatorMinUpstreamLatencyPropertyInfo), '("name", Gst.Object.ObjectNamePropertyInfo), '("outputBufferDuration", AudioAggregatorOutputBufferDurationPropertyInfo), '("parent", Gst.Object.ObjectParentPropertyInfo), '("startTime", GstBase.Aggregator.AggregatorStartTimePropertyInfo)] :: [(Symbol, *)]) #endif #if ENABLE_OVERLOADING audioAggregatorAlignmentThreshold :: AttrLabelProxy "alignmentThreshold" audioAggregatorAlignmentThreshold = AttrLabelProxy audioAggregatorDiscontWait :: AttrLabelProxy "discontWait" audioAggregatorDiscontWait = AttrLabelProxy audioAggregatorOutputBufferDuration :: AttrLabelProxy "outputBufferDuration" audioAggregatorOutputBufferDuration = AttrLabelProxy #endif #if ENABLE_OVERLOADING type instance O.SignalList AudioAggregator = AudioAggregatorSignalList type AudioAggregatorSignalList = ('[ '("deepNotify", Gst.Object.ObjectDeepNotifySignalInfo), '("noMorePads", Gst.Element.ElementNoMorePadsSignalInfo), '("notify", GObject.Object.ObjectNotifySignalInfo), '("padAdded", Gst.Element.ElementPadAddedSignalInfo), '("padRemoved", Gst.Element.ElementPadRemovedSignalInfo)] :: [(Symbol, *)]) #endif -- method AudioAggregator::set_sink_caps -- method type : OrdinaryMethod -- Args : [Arg {argCName = "aagg", argType = TInterface (Name {namespace = "GstAudio", name = "AudioAggregator"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Nothing, sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "pad", argType = TInterface (Name {namespace = "GstAudio", name = "AudioAggregatorPad"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Nothing, sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "caps", argType = TInterface (Name {namespace = "Gst", name = "Caps"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Nothing, sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}] -- Lengths : [] -- returnType : Nothing -- throws : False -- Skip return : False foreign import ccall "gst_audio_aggregator_set_sink_caps" gst_audio_aggregator_set_sink_caps :: Ptr AudioAggregator -> -- aagg : TInterface (Name {namespace = "GstAudio", name = "AudioAggregator"}) Ptr GstAudio.AudioAggregatorPad.AudioAggregatorPad -> -- pad : TInterface (Name {namespace = "GstAudio", name = "AudioAggregatorPad"}) Ptr Gst.Caps.Caps -> -- caps : TInterface (Name {namespace = "Gst", name = "Caps"}) IO () {- | /No description available in the introspection data./ -} audioAggregatorSetSinkCaps :: (B.CallStack.HasCallStack, MonadIO m, IsAudioAggregator a, GstAudio.AudioAggregatorPad.IsAudioAggregatorPad b) => a -> b -> Gst.Caps.Caps -> m () audioAggregatorSetSinkCaps aagg pad caps = liftIO $ do aagg' <- unsafeManagedPtrCastPtr aagg pad' <- unsafeManagedPtrCastPtr pad caps' <- unsafeManagedPtrGetPtr caps gst_audio_aggregator_set_sink_caps aagg' pad' caps' touchManagedPtr aagg touchManagedPtr pad touchManagedPtr caps return () #if ENABLE_OVERLOADING data AudioAggregatorSetSinkCapsMethodInfo instance (signature ~ (b -> Gst.Caps.Caps -> m ()), MonadIO m, IsAudioAggregator a, GstAudio.AudioAggregatorPad.IsAudioAggregatorPad b) => O.MethodInfo AudioAggregatorSetSinkCapsMethodInfo a signature where overloadedMethod _ = audioAggregatorSetSinkCaps #endif