gi-gstaudio-1.0.17: GI/GstAudio/Objects/AudioAggregator.hs
{- |
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 <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> 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 <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> 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 <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> 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 <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> 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 <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> 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 <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> 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