{-# LANGUAGE TypeApplications #-}


-- | Copyright  : Will Thompson, Iñaki García Etxebarria and Jonas Platte
-- License    : LGPL-2.1
-- Maintainer : Iñaki García Etxebarria
-- 
-- This is the most simple base class for audio sources that only requires
-- subclasses to implement a set of simple functions:
-- 
-- * @open()@ :Open the device.
-- * @prepare()@ :Configure the device with the specified format.
-- * @read()@ :Read samples from the device.
-- * @reset()@ :Unblock reads and flush the device.
-- * @delay()@ :Get the number of samples in the device but not yet read.
-- * @unprepare()@ :Undo operations done by prepare.
-- * @close()@ :Close the device.
-- 
-- All scheduling of samples and timestamps is done in this base class
-- together with t'GI.GstAudio.Objects.AudioBaseSrc.AudioBaseSrc' using a default implementation of a
-- t'GI.GstAudio.Objects.AudioRingBuffer.AudioRingBuffer' that uses threads.

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

module GI.GstAudio.Objects.AudioSrc
    ( 

-- * Exported types
    AudioSrc(..)                            ,
    IsAudioSrc                              ,
    toAudioSrc                              ,


 -- * Methods
-- ** Overloaded methods #method:Overloaded methods#

#if defined(ENABLE_OVERLOADING)
    ResolveAudioSrcMethod                   ,
#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.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.GI.Base.Signals as B.Signals
import qualified Control.Monad.IO.Class as MIO
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 {-# SOURCE #-} qualified GI.GstAudio.Objects.AudioBaseSrc as GstAudio.AudioBaseSrc
import qualified GI.GstBase.Objects.BaseSrc as GstBase.BaseSrc
import qualified GI.GstBase.Objects.PushSrc as GstBase.PushSrc

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

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

foreign import ccall "gst_audio_src_get_type"
    c_gst_audio_src_get_type :: IO B.Types.GType

instance B.Types.TypedObject AudioSrc where
    glibType :: IO GType
glibType = IO GType
c_gst_audio_src_get_type

instance B.Types.GObject AudioSrc

-- | Convert 'AudioSrc' to and from 'Data.GI.Base.GValue.GValue' with 'Data.GI.Base.GValue.toGValue' and 'Data.GI.Base.GValue.fromGValue'.
instance B.GValue.IsGValue AudioSrc where
    toGValue :: AudioSrc -> IO GValue
toGValue AudioSrc
o = do
        GType
gtype <- IO GType
c_gst_audio_src_get_type
        AudioSrc -> (Ptr AudioSrc -> IO GValue) -> IO GValue
forall a c.
(HasCallStack, ManagedPtrNewtype a) =>
a -> (Ptr a -> IO c) -> IO c
B.ManagedPtr.withManagedPtr AudioSrc
o (GType
-> (GValue -> Ptr AudioSrc -> IO ()) -> Ptr AudioSrc -> IO GValue
forall a. GType -> (GValue -> a -> IO ()) -> a -> IO GValue
B.GValue.buildGValue GType
gtype GValue -> Ptr AudioSrc -> IO ()
forall a. GObject a => GValue -> Ptr a -> IO ()
B.GValue.set_object)
        
    fromGValue :: GValue -> IO AudioSrc
fromGValue GValue
gv = do
        Ptr AudioSrc
ptr <- GValue -> IO (Ptr AudioSrc)
forall b. GObject b => GValue -> IO (Ptr b)
B.GValue.get_object GValue
gv :: IO (Ptr AudioSrc)
        (ManagedPtr AudioSrc -> AudioSrc) -> Ptr AudioSrc -> IO AudioSrc
forall a b.
(HasCallStack, GObject a, GObject b) =>
(ManagedPtr a -> a) -> Ptr b -> IO a
B.ManagedPtr.newObject ManagedPtr AudioSrc -> AudioSrc
AudioSrc Ptr AudioSrc
ptr
        
    

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

instance O.HasParentTypes AudioSrc
type instance O.ParentTypes AudioSrc = '[GstAudio.AudioBaseSrc.AudioBaseSrc, GstBase.PushSrc.PushSrc, GstBase.BaseSrc.BaseSrc, Gst.Element.Element, Gst.Object.Object, GObject.Object.Object]

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

#if defined(ENABLE_OVERLOADING)
type family ResolveAudioSrcMethod (t :: Symbol) (o :: *) :: * where
    ResolveAudioSrcMethod "abortState" o = Gst.Element.ElementAbortStateMethodInfo
    ResolveAudioSrcMethod "addControlBinding" o = Gst.Object.ObjectAddControlBindingMethodInfo
    ResolveAudioSrcMethod "addPad" o = Gst.Element.ElementAddPadMethodInfo
    ResolveAudioSrcMethod "addPropertyDeepNotifyWatch" o = Gst.Element.ElementAddPropertyDeepNotifyWatchMethodInfo
    ResolveAudioSrcMethod "addPropertyNotifyWatch" o = Gst.Element.ElementAddPropertyNotifyWatchMethodInfo
    ResolveAudioSrcMethod "bindProperty" o = GObject.Object.ObjectBindPropertyMethodInfo
    ResolveAudioSrcMethod "bindPropertyFull" o = GObject.Object.ObjectBindPropertyFullMethodInfo
    ResolveAudioSrcMethod "callAsync" o = Gst.Element.ElementCallAsyncMethodInfo
    ResolveAudioSrcMethod "changeState" o = Gst.Element.ElementChangeStateMethodInfo
    ResolveAudioSrcMethod "continueState" o = Gst.Element.ElementContinueStateMethodInfo
    ResolveAudioSrcMethod "createAllPads" o = Gst.Element.ElementCreateAllPadsMethodInfo
    ResolveAudioSrcMethod "createRingbuffer" o = GstAudio.AudioBaseSrc.AudioBaseSrcCreateRingbufferMethodInfo
    ResolveAudioSrcMethod "defaultError" o = Gst.Object.ObjectDefaultErrorMethodInfo
    ResolveAudioSrcMethod "forceFloating" o = GObject.Object.ObjectForceFloatingMethodInfo
    ResolveAudioSrcMethod "foreachPad" o = Gst.Element.ElementForeachPadMethodInfo
    ResolveAudioSrcMethod "foreachSinkPad" o = Gst.Element.ElementForeachSinkPadMethodInfo
    ResolveAudioSrcMethod "foreachSrcPad" o = Gst.Element.ElementForeachSrcPadMethodInfo
    ResolveAudioSrcMethod "freezeNotify" o = GObject.Object.ObjectFreezeNotifyMethodInfo
    ResolveAudioSrcMethod "getv" o = GObject.Object.ObjectGetvMethodInfo
    ResolveAudioSrcMethod "hasActiveControlBindings" o = Gst.Object.ObjectHasActiveControlBindingsMethodInfo
    ResolveAudioSrcMethod "hasAncestor" o = Gst.Object.ObjectHasAncestorMethodInfo
    ResolveAudioSrcMethod "hasAsAncestor" o = Gst.Object.ObjectHasAsAncestorMethodInfo
    ResolveAudioSrcMethod "hasAsParent" o = Gst.Object.ObjectHasAsParentMethodInfo
    ResolveAudioSrcMethod "isAsync" o = GstBase.BaseSrc.BaseSrcIsAsyncMethodInfo
    ResolveAudioSrcMethod "isFloating" o = GObject.Object.ObjectIsFloatingMethodInfo
    ResolveAudioSrcMethod "isLive" o = GstBase.BaseSrc.BaseSrcIsLiveMethodInfo
    ResolveAudioSrcMethod "isLockedState" o = Gst.Element.ElementIsLockedStateMethodInfo
    ResolveAudioSrcMethod "iteratePads" o = Gst.Element.ElementIteratePadsMethodInfo
    ResolveAudioSrcMethod "iterateSinkPads" o = Gst.Element.ElementIterateSinkPadsMethodInfo
    ResolveAudioSrcMethod "iterateSrcPads" o = Gst.Element.ElementIterateSrcPadsMethodInfo
    ResolveAudioSrcMethod "link" o = Gst.Element.ElementLinkMethodInfo
    ResolveAudioSrcMethod "linkFiltered" o = Gst.Element.ElementLinkFilteredMethodInfo
    ResolveAudioSrcMethod "linkPads" o = Gst.Element.ElementLinkPadsMethodInfo
    ResolveAudioSrcMethod "linkPadsFiltered" o = Gst.Element.ElementLinkPadsFilteredMethodInfo
    ResolveAudioSrcMethod "linkPadsFull" o = Gst.Element.ElementLinkPadsFullMethodInfo
    ResolveAudioSrcMethod "lostState" o = Gst.Element.ElementLostStateMethodInfo
    ResolveAudioSrcMethod "messageFull" o = Gst.Element.ElementMessageFullMethodInfo
    ResolveAudioSrcMethod "messageFullWithDetails" o = Gst.Element.ElementMessageFullWithDetailsMethodInfo
    ResolveAudioSrcMethod "newSeamlessSegment" o = GstBase.BaseSrc.BaseSrcNewSeamlessSegmentMethodInfo
    ResolveAudioSrcMethod "noMorePads" o = Gst.Element.ElementNoMorePadsMethodInfo
    ResolveAudioSrcMethod "notify" o = GObject.Object.ObjectNotifyMethodInfo
    ResolveAudioSrcMethod "notifyByPspec" o = GObject.Object.ObjectNotifyByPspecMethodInfo
    ResolveAudioSrcMethod "postMessage" o = Gst.Element.ElementPostMessageMethodInfo
    ResolveAudioSrcMethod "provideClock" o = Gst.Element.ElementProvideClockMethodInfo
    ResolveAudioSrcMethod "query" o = Gst.Element.ElementQueryMethodInfo
    ResolveAudioSrcMethod "queryConvert" o = Gst.Element.ElementQueryConvertMethodInfo
    ResolveAudioSrcMethod "queryDuration" o = Gst.Element.ElementQueryDurationMethodInfo
    ResolveAudioSrcMethod "queryLatency" o = GstBase.BaseSrc.BaseSrcQueryLatencyMethodInfo
    ResolveAudioSrcMethod "queryPosition" o = Gst.Element.ElementQueryPositionMethodInfo
    ResolveAudioSrcMethod "ref" o = Gst.Object.ObjectRefMethodInfo
    ResolveAudioSrcMethod "refSink" o = GObject.Object.ObjectRefSinkMethodInfo
    ResolveAudioSrcMethod "releaseRequestPad" o = Gst.Element.ElementReleaseRequestPadMethodInfo
    ResolveAudioSrcMethod "removeControlBinding" o = Gst.Object.ObjectRemoveControlBindingMethodInfo
    ResolveAudioSrcMethod "removePad" o = Gst.Element.ElementRemovePadMethodInfo
    ResolveAudioSrcMethod "removePropertyNotifyWatch" o = Gst.Element.ElementRemovePropertyNotifyWatchMethodInfo
    ResolveAudioSrcMethod "requestPad" o = Gst.Element.ElementRequestPadMethodInfo
    ResolveAudioSrcMethod "runDispose" o = GObject.Object.ObjectRunDisposeMethodInfo
    ResolveAudioSrcMethod "seek" o = Gst.Element.ElementSeekMethodInfo
    ResolveAudioSrcMethod "seekSimple" o = Gst.Element.ElementSeekSimpleMethodInfo
    ResolveAudioSrcMethod "sendEvent" o = Gst.Element.ElementSendEventMethodInfo
    ResolveAudioSrcMethod "startComplete" o = GstBase.BaseSrc.BaseSrcStartCompleteMethodInfo
    ResolveAudioSrcMethod "startWait" o = GstBase.BaseSrc.BaseSrcStartWaitMethodInfo
    ResolveAudioSrcMethod "stealData" o = GObject.Object.ObjectStealDataMethodInfo
    ResolveAudioSrcMethod "stealQdata" o = GObject.Object.ObjectStealQdataMethodInfo
    ResolveAudioSrcMethod "submitBufferList" o = GstBase.BaseSrc.BaseSrcSubmitBufferListMethodInfo
    ResolveAudioSrcMethod "suggestNextSync" o = Gst.Object.ObjectSuggestNextSyncMethodInfo
    ResolveAudioSrcMethod "syncStateWithParent" o = Gst.Element.ElementSyncStateWithParentMethodInfo
    ResolveAudioSrcMethod "syncValues" o = Gst.Object.ObjectSyncValuesMethodInfo
    ResolveAudioSrcMethod "thawNotify" o = GObject.Object.ObjectThawNotifyMethodInfo
    ResolveAudioSrcMethod "unlink" o = Gst.Element.ElementUnlinkMethodInfo
    ResolveAudioSrcMethod "unlinkPads" o = Gst.Element.ElementUnlinkPadsMethodInfo
    ResolveAudioSrcMethod "unparent" o = Gst.Object.ObjectUnparentMethodInfo
    ResolveAudioSrcMethod "unref" o = Gst.Object.ObjectUnrefMethodInfo
    ResolveAudioSrcMethod "waitPlaying" o = GstBase.BaseSrc.BaseSrcWaitPlayingMethodInfo
    ResolveAudioSrcMethod "watchClosure" o = GObject.Object.ObjectWatchClosureMethodInfo
    ResolveAudioSrcMethod "getAllocator" o = GstBase.BaseSrc.BaseSrcGetAllocatorMethodInfo
    ResolveAudioSrcMethod "getBaseTime" o = Gst.Element.ElementGetBaseTimeMethodInfo
    ResolveAudioSrcMethod "getBlocksize" o = GstBase.BaseSrc.BaseSrcGetBlocksizeMethodInfo
    ResolveAudioSrcMethod "getBufferPool" o = GstBase.BaseSrc.BaseSrcGetBufferPoolMethodInfo
    ResolveAudioSrcMethod "getBus" o = Gst.Element.ElementGetBusMethodInfo
    ResolveAudioSrcMethod "getClock" o = Gst.Element.ElementGetClockMethodInfo
    ResolveAudioSrcMethod "getCompatiblePad" o = Gst.Element.ElementGetCompatiblePadMethodInfo
    ResolveAudioSrcMethod "getCompatiblePadTemplate" o = Gst.Element.ElementGetCompatiblePadTemplateMethodInfo
    ResolveAudioSrcMethod "getContext" o = Gst.Element.ElementGetContextMethodInfo
    ResolveAudioSrcMethod "getContextUnlocked" o = Gst.Element.ElementGetContextUnlockedMethodInfo
    ResolveAudioSrcMethod "getContexts" o = Gst.Element.ElementGetContextsMethodInfo
    ResolveAudioSrcMethod "getControlBinding" o = Gst.Object.ObjectGetControlBindingMethodInfo
    ResolveAudioSrcMethod "getControlRate" o = Gst.Object.ObjectGetControlRateMethodInfo
    ResolveAudioSrcMethod "getData" o = GObject.Object.ObjectGetDataMethodInfo
    ResolveAudioSrcMethod "getDoTimestamp" o = GstBase.BaseSrc.BaseSrcGetDoTimestampMethodInfo
    ResolveAudioSrcMethod "getFactory" o = Gst.Element.ElementGetFactoryMethodInfo
    ResolveAudioSrcMethod "getGValueArray" o = Gst.Object.ObjectGetGValueArrayMethodInfo
    ResolveAudioSrcMethod "getMetadata" o = Gst.Element.ElementGetMetadataMethodInfo
    ResolveAudioSrcMethod "getName" o = Gst.Object.ObjectGetNameMethodInfo
    ResolveAudioSrcMethod "getPadTemplate" o = Gst.Element.ElementGetPadTemplateMethodInfo
    ResolveAudioSrcMethod "getPadTemplateList" o = Gst.Element.ElementGetPadTemplateListMethodInfo
    ResolveAudioSrcMethod "getParent" o = Gst.Object.ObjectGetParentMethodInfo
    ResolveAudioSrcMethod "getPathString" o = Gst.Object.ObjectGetPathStringMethodInfo
    ResolveAudioSrcMethod "getProperty" o = GObject.Object.ObjectGetPropertyMethodInfo
    ResolveAudioSrcMethod "getProvideClock" o = GstAudio.AudioBaseSrc.AudioBaseSrcGetProvideClockMethodInfo
    ResolveAudioSrcMethod "getQdata" o = GObject.Object.ObjectGetQdataMethodInfo
    ResolveAudioSrcMethod "getRequestPad" o = Gst.Element.ElementGetRequestPadMethodInfo
    ResolveAudioSrcMethod "getSlaveMethod" o = GstAudio.AudioBaseSrc.AudioBaseSrcGetSlaveMethodMethodInfo
    ResolveAudioSrcMethod "getStartTime" o = Gst.Element.ElementGetStartTimeMethodInfo
    ResolveAudioSrcMethod "getState" o = Gst.Element.ElementGetStateMethodInfo
    ResolveAudioSrcMethod "getStaticPad" o = Gst.Element.ElementGetStaticPadMethodInfo
    ResolveAudioSrcMethod "getValue" o = Gst.Object.ObjectGetValueMethodInfo
    ResolveAudioSrcMethod "setAsync" o = GstBase.BaseSrc.BaseSrcSetAsyncMethodInfo
    ResolveAudioSrcMethod "setAutomaticEos" o = GstBase.BaseSrc.BaseSrcSetAutomaticEosMethodInfo
    ResolveAudioSrcMethod "setBaseTime" o = Gst.Element.ElementSetBaseTimeMethodInfo
    ResolveAudioSrcMethod "setBlocksize" o = GstBase.BaseSrc.BaseSrcSetBlocksizeMethodInfo
    ResolveAudioSrcMethod "setBus" o = Gst.Element.ElementSetBusMethodInfo
    ResolveAudioSrcMethod "setCaps" o = GstBase.BaseSrc.BaseSrcSetCapsMethodInfo
    ResolveAudioSrcMethod "setClock" o = Gst.Element.ElementSetClockMethodInfo
    ResolveAudioSrcMethod "setContext" o = Gst.Element.ElementSetContextMethodInfo
    ResolveAudioSrcMethod "setControlBindingDisabled" o = Gst.Object.ObjectSetControlBindingDisabledMethodInfo
    ResolveAudioSrcMethod "setControlBindingsDisabled" o = Gst.Object.ObjectSetControlBindingsDisabledMethodInfo
    ResolveAudioSrcMethod "setControlRate" o = Gst.Object.ObjectSetControlRateMethodInfo
    ResolveAudioSrcMethod "setData" o = GObject.Object.ObjectSetDataMethodInfo
    ResolveAudioSrcMethod "setDataFull" o = GObject.Object.ObjectSetDataFullMethodInfo
    ResolveAudioSrcMethod "setDoTimestamp" o = GstBase.BaseSrc.BaseSrcSetDoTimestampMethodInfo
    ResolveAudioSrcMethod "setDynamicSize" o = GstBase.BaseSrc.BaseSrcSetDynamicSizeMethodInfo
    ResolveAudioSrcMethod "setFormat" o = GstBase.BaseSrc.BaseSrcSetFormatMethodInfo
    ResolveAudioSrcMethod "setLive" o = GstBase.BaseSrc.BaseSrcSetLiveMethodInfo
    ResolveAudioSrcMethod "setLockedState" o = Gst.Element.ElementSetLockedStateMethodInfo
    ResolveAudioSrcMethod "setName" o = Gst.Object.ObjectSetNameMethodInfo
    ResolveAudioSrcMethod "setParent" o = Gst.Object.ObjectSetParentMethodInfo
    ResolveAudioSrcMethod "setProperty" o = GObject.Object.ObjectSetPropertyMethodInfo
    ResolveAudioSrcMethod "setProvideClock" o = GstAudio.AudioBaseSrc.AudioBaseSrcSetProvideClockMethodInfo
    ResolveAudioSrcMethod "setSlaveMethod" o = GstAudio.AudioBaseSrc.AudioBaseSrcSetSlaveMethodMethodInfo
    ResolveAudioSrcMethod "setStartTime" o = Gst.Element.ElementSetStartTimeMethodInfo
    ResolveAudioSrcMethod "setState" o = Gst.Element.ElementSetStateMethodInfo
    ResolveAudioSrcMethod l o = O.MethodResolutionFailed l o

instance (info ~ ResolveAudioSrcMethod t AudioSrc, O.MethodInfo info AudioSrc p) => OL.IsLabel t (AudioSrc -> p) where
#if MIN_VERSION_base(4,10,0)
    fromLabel = O.overloadedMethod @info
#else
    fromLabel _ = O.overloadedMethod @info
#endif

#endif

#if defined(ENABLE_OVERLOADING)
instance O.HasAttributeList AudioSrc
type instance O.AttributeList AudioSrc = AudioSrcAttributeList
type AudioSrcAttributeList = ('[ '("actualBufferTime", GstAudio.AudioBaseSrc.AudioBaseSrcActualBufferTimePropertyInfo), '("actualLatencyTime", GstAudio.AudioBaseSrc.AudioBaseSrcActualLatencyTimePropertyInfo), '("blocksize", GstBase.BaseSrc.BaseSrcBlocksizePropertyInfo), '("bufferTime", GstAudio.AudioBaseSrc.AudioBaseSrcBufferTimePropertyInfo), '("doTimestamp", GstBase.BaseSrc.BaseSrcDoTimestampPropertyInfo), '("latencyTime", GstAudio.AudioBaseSrc.AudioBaseSrcLatencyTimePropertyInfo), '("name", Gst.Object.ObjectNamePropertyInfo), '("numBuffers", GstBase.BaseSrc.BaseSrcNumBuffersPropertyInfo), '("parent", Gst.Object.ObjectParentPropertyInfo), '("provideClock", GstAudio.AudioBaseSrc.AudioBaseSrcProvideClockPropertyInfo), '("slaveMethod", GstAudio.AudioBaseSrc.AudioBaseSrcSlaveMethodPropertyInfo), '("typefind", GstBase.BaseSrc.BaseSrcTypefindPropertyInfo)] :: [(Symbol, *)])
#endif

#if defined(ENABLE_OVERLOADING)
#endif

#if defined(ENABLE_OVERLOADING)
type instance O.SignalList AudioSrc = AudioSrcSignalList
type AudioSrcSignalList = ('[ '("deepNotify", Gst.Object.ObjectDeepNotifySignalInfo), '("noMorePads", Gst.Element.ElementNoMorePadsSignalInfo), '("notify", GObject.Object.ObjectNotifySignalInfo), '("padAdded", Gst.Element.ElementPadAddedSignalInfo), '("padRemoved", Gst.Element.ElementPadRemovedSignalInfo)] :: [(Symbol, *)])

#endif