{-# LANGUAGE TypeApplications #-}


-- | Copyright  : Will Thompson and Iñaki García Etxebarria
-- License    : LGPL-2.1
-- Maintainer : Iñaki García Etxebarria
-- 
-- A t'GI.GES.Objects.AudioTrack.AudioTrack' is a default audio t'GI.GES.Objects.Track.Track', with a
-- @/GES_TRACK_TYPE_AUDIO/@ [Track:trackType]("GI.GES.Objects.Track#g:attr:trackType") and \"audio\/x-raw(ANY)\"
-- [Track:caps]("GI.GES.Objects.Track#g:attr:caps").
-- 
-- By default, an audio track will have its [Track:restrictionCaps]("GI.GES.Objects.Track#g:attr:restrictionCaps")
-- set to \"audio\/x-raw\" with the following properties:
-- 
-- * format: \"S32LE\"
-- * channels: 2
-- * rate: 44100
-- * layout: \"interleaved\"
-- 
-- 
-- These fields are needed for negotiation purposes, but you can change
-- their values if you wish. It is advised that you do so using
-- 'GI.GES.Objects.Track.trackUpdateRestrictionCaps' with new values for the fields you
-- wish to change, and any additional fields you may want to add. Unlike
-- using 'GI.GES.Objects.Track.trackSetRestrictionCaps', this will ensure that these
-- default fields will at least have some value set.

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

module GI.GES.Objects.AudioTrack
    ( 

-- * Exported types
    AudioTrack(..)                          ,
    IsAudioTrack                            ,
    toAudioTrack                            ,


 -- * Methods
-- | 
-- 
--  === __Click to display all available methods, including inherited ones__
-- ==== Methods
-- [abortState]("GI.Gst.Objects.Element#g:method:abortState"), [add]("GI.Gst.Objects.Bin#g:method:add"), [addControlBinding]("GI.Gst.Objects.Object#g:method:addControlBinding"), [addElement]("GI.GES.Objects.Track#g:method:addElement"), [addElementFull]("GI.GES.Objects.Track#g:method:addElementFull"), [addMetasFromString]("GI.GES.Interfaces.MetaContainer#g:method:addMetasFromString"), [addPad]("GI.Gst.Objects.Element#g:method:addPad"), [addPropertyDeepNotifyWatch]("GI.Gst.Objects.Element#g:method:addPropertyDeepNotifyWatch"), [addPropertyNotifyWatch]("GI.Gst.Objects.Element#g:method:addPropertyNotifyWatch"), [bindProperty]("GI.GObject.Objects.Object#g:method:bindProperty"), [bindPropertyFull]("GI.GObject.Objects.Object#g:method:bindPropertyFull"), [callAsync]("GI.Gst.Objects.Element#g:method:callAsync"), [changeState]("GI.Gst.Objects.Element#g:method:changeState"), [checkMetaRegistered]("GI.GES.Interfaces.MetaContainer#g:method:checkMetaRegistered"), [childAdded]("GI.Gst.Interfaces.ChildProxy#g:method:childAdded"), [childRemoved]("GI.Gst.Interfaces.ChildProxy#g:method:childRemoved"), [commit]("GI.GES.Objects.Track#g:method:commit"), [continueState]("GI.Gst.Objects.Element#g:method:continueState"), [createAllPads]("GI.Gst.Objects.Element#g:method:createAllPads"), [defaultError]("GI.Gst.Objects.Object#g:method:defaultError"), [findUnlinkedPad]("GI.Gst.Objects.Bin#g:method:findUnlinkedPad"), [forceFloating]("GI.GObject.Objects.Object#g:method:forceFloating"), [foreach]("GI.GES.Interfaces.MetaContainer#g:method:foreach"), [foreachPad]("GI.Gst.Objects.Element#g:method:foreachPad"), [foreachSinkPad]("GI.Gst.Objects.Element#g:method:foreachSinkPad"), [foreachSrcPad]("GI.Gst.Objects.Element#g:method:foreachSrcPad"), [freezeNotify]("GI.GObject.Objects.Object#g:method:freezeNotify"), [getv]("GI.GObject.Objects.Object#g:method:getv"), [hasActiveControlBindings]("GI.Gst.Objects.Object#g:method:hasActiveControlBindings"), [hasAncestor]("GI.Gst.Objects.Object#g:method:hasAncestor"), [hasAsAncestor]("GI.Gst.Objects.Object#g:method:hasAsAncestor"), [hasAsParent]("GI.Gst.Objects.Object#g:method:hasAsParent"), [isFloating]("GI.GObject.Objects.Object#g:method:isFloating"), [isLockedState]("GI.Gst.Objects.Element#g:method:isLockedState"), [iterateAllByElementFactoryName]("GI.Gst.Objects.Bin#g:method:iterateAllByElementFactoryName"), [iterateAllByInterface]("GI.Gst.Objects.Bin#g:method:iterateAllByInterface"), [iterateElements]("GI.Gst.Objects.Bin#g:method:iterateElements"), [iteratePads]("GI.Gst.Objects.Element#g:method:iteratePads"), [iterateRecurse]("GI.Gst.Objects.Bin#g:method:iterateRecurse"), [iterateSinkPads]("GI.Gst.Objects.Element#g:method:iterateSinkPads"), [iterateSinks]("GI.Gst.Objects.Bin#g:method:iterateSinks"), [iterateSorted]("GI.Gst.Objects.Bin#g:method:iterateSorted"), [iterateSources]("GI.Gst.Objects.Bin#g:method:iterateSources"), [iterateSrcPads]("GI.Gst.Objects.Element#g:method:iterateSrcPads"), [link]("GI.Gst.Objects.Element#g:method:link"), [linkFiltered]("GI.Gst.Objects.Element#g:method:linkFiltered"), [linkPads]("GI.Gst.Objects.Element#g:method:linkPads"), [linkPadsFiltered]("GI.Gst.Objects.Element#g:method:linkPadsFiltered"), [linkPadsFull]("GI.Gst.Objects.Element#g:method:linkPadsFull"), [lookup]("GI.Gst.Interfaces.ChildProxy#g:method:lookup"), [lostState]("GI.Gst.Objects.Element#g:method:lostState"), [messageFull]("GI.Gst.Objects.Element#g:method:messageFull"), [messageFullWithDetails]("GI.Gst.Objects.Element#g:method:messageFullWithDetails"), [metasToString]("GI.GES.Interfaces.MetaContainer#g:method:metasToString"), [noMorePads]("GI.Gst.Objects.Element#g:method:noMorePads"), [notify]("GI.GObject.Objects.Object#g:method:notify"), [notifyByPspec]("GI.GObject.Objects.Object#g:method:notifyByPspec"), [postMessage]("GI.Gst.Objects.Element#g:method:postMessage"), [provideClock]("GI.Gst.Objects.Element#g:method:provideClock"), [query]("GI.Gst.Objects.Element#g:method:query"), [queryConvert]("GI.Gst.Objects.Element#g:method:queryConvert"), [queryDuration]("GI.Gst.Objects.Element#g:method:queryDuration"), [queryPosition]("GI.Gst.Objects.Element#g:method:queryPosition"), [recalculateLatency]("GI.Gst.Objects.Bin#g:method:recalculateLatency"), [ref]("GI.Gst.Objects.Object#g:method:ref"), [refSink]("GI.GObject.Objects.Object#g:method:refSink"), [registerMeta]("GI.GES.Interfaces.MetaContainer#g:method:registerMeta"), [registerMetaBoolean]("GI.GES.Interfaces.MetaContainer#g:method:registerMetaBoolean"), [registerMetaDate]("GI.GES.Interfaces.MetaContainer#g:method:registerMetaDate"), [registerMetaDateTime]("GI.GES.Interfaces.MetaContainer#g:method:registerMetaDateTime"), [registerMetaDouble]("GI.GES.Interfaces.MetaContainer#g:method:registerMetaDouble"), [registerMetaFloat]("GI.GES.Interfaces.MetaContainer#g:method:registerMetaFloat"), [registerMetaInt]("GI.GES.Interfaces.MetaContainer#g:method:registerMetaInt"), [registerMetaInt64]("GI.GES.Interfaces.MetaContainer#g:method:registerMetaInt64"), [registerMetaString]("GI.GES.Interfaces.MetaContainer#g:method:registerMetaString"), [registerMetaUint]("GI.GES.Interfaces.MetaContainer#g:method:registerMetaUint"), [registerMetaUint64]("GI.GES.Interfaces.MetaContainer#g:method:registerMetaUint64"), [registerStaticMeta]("GI.GES.Interfaces.MetaContainer#g:method:registerStaticMeta"), [releaseRequestPad]("GI.Gst.Objects.Element#g:method:releaseRequestPad"), [remove]("GI.Gst.Objects.Bin#g:method:remove"), [removeControlBinding]("GI.Gst.Objects.Object#g:method:removeControlBinding"), [removeElement]("GI.GES.Objects.Track#g:method:removeElement"), [removeElementFull]("GI.GES.Objects.Track#g:method:removeElementFull"), [removePad]("GI.Gst.Objects.Element#g:method:removePad"), [removePropertyNotifyWatch]("GI.Gst.Objects.Element#g:method:removePropertyNotifyWatch"), [requestPad]("GI.Gst.Objects.Element#g:method:requestPad"), [requestPadSimple]("GI.Gst.Objects.Element#g:method:requestPadSimple"), [runDispose]("GI.GObject.Objects.Object#g:method:runDispose"), [seek]("GI.Gst.Objects.Element#g:method:seek"), [seekSimple]("GI.Gst.Objects.Element#g:method:seekSimple"), [sendEvent]("GI.Gst.Objects.Element#g:method:sendEvent"), [stealData]("GI.GObject.Objects.Object#g:method:stealData"), [stealQdata]("GI.GObject.Objects.Object#g:method:stealQdata"), [suggestNextSync]("GI.Gst.Objects.Object#g:method:suggestNextSync"), [syncChildrenStates]("GI.Gst.Objects.Bin#g:method:syncChildrenStates"), [syncStateWithParent]("GI.Gst.Objects.Element#g:method:syncStateWithParent"), [syncValues]("GI.Gst.Objects.Object#g:method:syncValues"), [thawNotify]("GI.GObject.Objects.Object#g:method:thawNotify"), [unlink]("GI.Gst.Objects.Element#g:method:unlink"), [unlinkPads]("GI.Gst.Objects.Element#g:method:unlinkPads"), [unparent]("GI.Gst.Objects.Object#g:method:unparent"), [unref]("GI.Gst.Objects.Object#g:method:unref"), [updateRestrictionCaps]("GI.GES.Objects.Track#g:method:updateRestrictionCaps"), [watchClosure]("GI.GObject.Objects.Object#g:method:watchClosure").
-- 
-- ==== Getters
-- [getBaseTime]("GI.Gst.Objects.Element#g:method:getBaseTime"), [getBoolean]("GI.GES.Interfaces.MetaContainer#g:method:getBoolean"), [getBus]("GI.Gst.Objects.Element#g:method:getBus"), [getByInterface]("GI.Gst.Objects.Bin#g:method:getByInterface"), [getByName]("GI.Gst.Objects.Bin#g:method:getByName"), [getByNameRecurseUp]("GI.Gst.Objects.Bin#g:method:getByNameRecurseUp"), [getCaps]("GI.GES.Objects.Track#g:method:getCaps"), [getChildByIndex]("GI.Gst.Interfaces.ChildProxy#g:method:getChildByIndex"), [getChildByName]("GI.Gst.Interfaces.ChildProxy#g:method:getChildByName"), [getChildByNameRecurse]("GI.Gst.Interfaces.ChildProxy#g:method:getChildByNameRecurse"), [getChildrenCount]("GI.Gst.Interfaces.ChildProxy#g:method:getChildrenCount"), [getClock]("GI.Gst.Objects.Element#g:method:getClock"), [getCompatiblePad]("GI.Gst.Objects.Element#g:method:getCompatiblePad"), [getCompatiblePadTemplate]("GI.Gst.Objects.Element#g:method:getCompatiblePadTemplate"), [getContext]("GI.Gst.Objects.Element#g:method:getContext"), [getContextUnlocked]("GI.Gst.Objects.Element#g:method:getContextUnlocked"), [getContexts]("GI.Gst.Objects.Element#g:method:getContexts"), [getControlBinding]("GI.Gst.Objects.Object#g:method:getControlBinding"), [getControlRate]("GI.Gst.Objects.Object#g:method:getControlRate"), [getCurrentClockTime]("GI.Gst.Objects.Element#g:method:getCurrentClockTime"), [getCurrentRunningTime]("GI.Gst.Objects.Element#g:method:getCurrentRunningTime"), [getData]("GI.GObject.Objects.Object#g:method:getData"), [getDate]("GI.GES.Interfaces.MetaContainer#g:method:getDate"), [getDateTime]("GI.GES.Interfaces.MetaContainer#g:method:getDateTime"), [getDouble]("GI.GES.Interfaces.MetaContainer#g:method:getDouble"), [getElements]("GI.GES.Objects.Track#g:method:getElements"), [getFactory]("GI.Gst.Objects.Element#g:method:getFactory"), [getFloat]("GI.GES.Interfaces.MetaContainer#g:method:getFloat"), [getGValueArray]("GI.Gst.Objects.Object#g:method:getGValueArray"), [getInt]("GI.GES.Interfaces.MetaContainer#g:method:getInt"), [getInt64]("GI.GES.Interfaces.MetaContainer#g:method:getInt64"), [getMarkerList]("GI.GES.Interfaces.MetaContainer#g:method:getMarkerList"), [getMeta]("GI.GES.Interfaces.MetaContainer#g:method:getMeta"), [getMetadata]("GI.Gst.Objects.Element#g:method:getMetadata"), [getMixing]("GI.GES.Objects.Track#g:method:getMixing"), [getName]("GI.Gst.Objects.Object#g:method:getName"), [getPadTemplate]("GI.Gst.Objects.Element#g:method:getPadTemplate"), [getPadTemplateList]("GI.Gst.Objects.Element#g:method:getPadTemplateList"), [getParent]("GI.Gst.Objects.Object#g:method:getParent"), [getPathString]("GI.Gst.Objects.Object#g:method:getPathString"), [getProperty]("GI.GObject.Objects.Object#g:method:getProperty"), [getQdata]("GI.GObject.Objects.Object#g:method:getQdata"), [getRequestPad]("GI.Gst.Objects.Element#g:method:getRequestPad"), [getRestrictionCaps]("GI.GES.Objects.Track#g:method:getRestrictionCaps"), [getStartTime]("GI.Gst.Objects.Element#g:method:getStartTime"), [getState]("GI.Gst.Objects.Element#g:method:getState"), [getStaticPad]("GI.Gst.Objects.Element#g:method:getStaticPad"), [getString]("GI.GES.Interfaces.MetaContainer#g:method:getString"), [getSuppressedFlags]("GI.Gst.Objects.Bin#g:method:getSuppressedFlags"), [getTimeline]("GI.GES.Objects.Track#g:method:getTimeline"), [getUint]("GI.GES.Interfaces.MetaContainer#g:method:getUint"), [getUint64]("GI.GES.Interfaces.MetaContainer#g:method:getUint64"), [getValue]("GI.Gst.Objects.Object#g:method:getValue").
-- 
-- ==== Setters
-- [setBaseTime]("GI.Gst.Objects.Element#g:method:setBaseTime"), [setBoolean]("GI.GES.Interfaces.MetaContainer#g:method:setBoolean"), [setBus]("GI.Gst.Objects.Element#g:method:setBus"), [setClock]("GI.Gst.Objects.Element#g:method:setClock"), [setContext]("GI.Gst.Objects.Element#g:method:setContext"), [setControlBindingDisabled]("GI.Gst.Objects.Object#g:method:setControlBindingDisabled"), [setControlBindingsDisabled]("GI.Gst.Objects.Object#g:method:setControlBindingsDisabled"), [setControlRate]("GI.Gst.Objects.Object#g:method:setControlRate"), [setData]("GI.GObject.Objects.Object#g:method:setData"), [setDataFull]("GI.GObject.Objects.Object#g:method:setDataFull"), [setDate]("GI.GES.Interfaces.MetaContainer#g:method:setDate"), [setDateTime]("GI.GES.Interfaces.MetaContainer#g:method:setDateTime"), [setDouble]("GI.GES.Interfaces.MetaContainer#g:method:setDouble"), [setFloat]("GI.GES.Interfaces.MetaContainer#g:method:setFloat"), [setInt]("GI.GES.Interfaces.MetaContainer#g:method:setInt"), [setInt64]("GI.GES.Interfaces.MetaContainer#g:method:setInt64"), [setLockedState]("GI.Gst.Objects.Element#g:method:setLockedState"), [setMarkerList]("GI.GES.Interfaces.MetaContainer#g:method:setMarkerList"), [setMeta]("GI.GES.Interfaces.MetaContainer#g:method:setMeta"), [setMixing]("GI.GES.Objects.Track#g:method:setMixing"), [setName]("GI.Gst.Objects.Object#g:method:setName"), [setParent]("GI.Gst.Objects.Object#g:method:setParent"), [setProperty]("GI.GObject.Objects.Object#g:method:setProperty"), [setRestrictionCaps]("GI.GES.Objects.Track#g:method:setRestrictionCaps"), [setStartTime]("GI.Gst.Objects.Element#g:method:setStartTime"), [setState]("GI.Gst.Objects.Element#g:method:setState"), [setString]("GI.GES.Interfaces.MetaContainer#g:method:setString"), [setSuppressedFlags]("GI.Gst.Objects.Bin#g:method:setSuppressedFlags"), [setTimeline]("GI.GES.Objects.Track#g:method:setTimeline"), [setUint]("GI.GES.Interfaces.MetaContainer#g:method:setUint"), [setUint64]("GI.GES.Interfaces.MetaContainer#g:method:setUint64").

#if defined(ENABLE_OVERLOADING)
    ResolveAudioTrackMethod                 ,
#endif

-- ** new #method:new#

    audioTrackNew                           ,




    ) where

import Data.GI.Base.ShortPrelude
import qualified Data.GI.Base.ShortPrelude as SP
import qualified Data.GI.Base.Overloading as O
import qualified Prelude as P

import qualified Data.GI.Base.Attributes as GI.Attributes
import qualified Data.GI.Base.BasicTypes as B.Types
import qualified Data.GI.Base.ManagedPtr as B.ManagedPtr
import qualified Data.GI.Base.GArray as B.GArray
import qualified Data.GI.Base.GClosure as B.GClosure
import qualified Data.GI.Base.GError as B.GError
import qualified Data.GI.Base.GHashTable as B.GHT
import qualified Data.GI.Base.GVariant as B.GVariant
import qualified Data.GI.Base.GValue as B.GValue
import qualified Data.GI.Base.GParamSpec as B.GParamSpec
import qualified Data.GI.Base.CallStack as B.CallStack
import qualified Data.GI.Base.Properties as B.Properties
import qualified Data.GI.Base.Signals as B.Signals
import qualified Control.Monad.IO.Class as MIO
import qualified Data.Coerce as Coerce
import qualified Data.Text as T
import qualified Data.Kind as DK
import qualified Data.ByteString.Char8 as B
import qualified Data.Map as Map
import qualified Foreign.Ptr as FP
import qualified GHC.OverloadedLabels as OL
import qualified GHC.Records as R

import {-# SOURCE #-} qualified GI.GES.Interfaces.MetaContainer as GES.MetaContainer
import {-# SOURCE #-} qualified GI.GES.Objects.Track as GES.Track
import qualified GI.GObject.Objects.Object as GObject.Object
import qualified GI.Gst.Interfaces.ChildProxy as Gst.ChildProxy
import qualified GI.Gst.Objects.Bin as Gst.Bin
import qualified GI.Gst.Objects.Element as Gst.Element
import qualified GI.Gst.Objects.Object as Gst.Object

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

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

foreign import ccall "ges_audio_track_get_type"
    c_ges_audio_track_get_type :: IO B.Types.GType

instance B.Types.TypedObject AudioTrack where
    glibType :: IO GType
glibType = IO GType
c_ges_audio_track_get_type

instance B.Types.GObject AudioTrack

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

instance O.HasParentTypes AudioTrack
type instance O.ParentTypes AudioTrack = '[GES.Track.Track, Gst.Bin.Bin, Gst.Element.Element, Gst.Object.Object, GObject.Object.Object, GES.MetaContainer.MetaContainer, Gst.ChildProxy.ChildProxy]

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

-- | Convert 'AudioTrack' to and from 'Data.GI.Base.GValue.GValue'. See 'Data.GI.Base.GValue.toGValue' and 'Data.GI.Base.GValue.fromGValue'.
instance B.GValue.IsGValue (Maybe AudioTrack) where
    gvalueGType_ :: IO GType
gvalueGType_ = IO GType
c_ges_audio_track_get_type
    gvalueSet_ :: Ptr GValue -> Maybe AudioTrack -> IO ()
gvalueSet_ Ptr GValue
gv Maybe AudioTrack
P.Nothing = Ptr GValue -> Ptr AudioTrack -> IO ()
forall a. GObject a => Ptr GValue -> Ptr a -> IO ()
B.GValue.set_object Ptr GValue
gv (Ptr AudioTrack
forall a. Ptr a
FP.nullPtr :: FP.Ptr AudioTrack)
    gvalueSet_ Ptr GValue
gv (P.Just AudioTrack
obj) = AudioTrack -> (Ptr AudioTrack -> IO ()) -> IO ()
forall a c.
(HasCallStack, ManagedPtrNewtype a) =>
a -> (Ptr a -> IO c) -> IO c
B.ManagedPtr.withManagedPtr AudioTrack
obj (Ptr GValue -> Ptr AudioTrack -> IO ()
forall a. GObject a => Ptr GValue -> Ptr a -> IO ()
B.GValue.set_object Ptr GValue
gv)
    gvalueGet_ :: Ptr GValue -> IO (Maybe AudioTrack)
gvalueGet_ Ptr GValue
gv = do
        Ptr AudioTrack
ptr <- Ptr GValue -> IO (Ptr AudioTrack)
forall a. GObject a => Ptr GValue -> IO (Ptr a)
B.GValue.get_object Ptr GValue
gv :: IO (FP.Ptr AudioTrack)
        if Ptr AudioTrack
ptr Ptr AudioTrack -> Ptr AudioTrack -> Bool
forall a. Eq a => a -> a -> Bool
/= Ptr AudioTrack
forall a. Ptr a
FP.nullPtr
        then AudioTrack -> Maybe AudioTrack
forall a. a -> Maybe a
P.Just (AudioTrack -> Maybe AudioTrack)
-> IO AudioTrack -> IO (Maybe AudioTrack)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (ManagedPtr AudioTrack -> AudioTrack)
-> Ptr AudioTrack -> IO AudioTrack
forall a b.
(HasCallStack, GObject a, GObject b) =>
(ManagedPtr a -> a) -> Ptr b -> IO a
B.ManagedPtr.newObject ManagedPtr AudioTrack -> AudioTrack
AudioTrack Ptr AudioTrack
ptr
        else Maybe AudioTrack -> IO (Maybe AudioTrack)
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return Maybe AudioTrack
forall a. Maybe a
P.Nothing
        
    

#if defined(ENABLE_OVERLOADING)
type family ResolveAudioTrackMethod (t :: Symbol) (o :: DK.Type) :: DK.Type where
    ResolveAudioTrackMethod "abortState" o = Gst.Element.ElementAbortStateMethodInfo
    ResolveAudioTrackMethod "add" o = Gst.Bin.BinAddMethodInfo
    ResolveAudioTrackMethod "addControlBinding" o = Gst.Object.ObjectAddControlBindingMethodInfo
    ResolveAudioTrackMethod "addElement" o = GES.Track.TrackAddElementMethodInfo
    ResolveAudioTrackMethod "addElementFull" o = GES.Track.TrackAddElementFullMethodInfo
    ResolveAudioTrackMethod "addMetasFromString" o = GES.MetaContainer.MetaContainerAddMetasFromStringMethodInfo
    ResolveAudioTrackMethod "addPad" o = Gst.Element.ElementAddPadMethodInfo
    ResolveAudioTrackMethod "addPropertyDeepNotifyWatch" o = Gst.Element.ElementAddPropertyDeepNotifyWatchMethodInfo
    ResolveAudioTrackMethod "addPropertyNotifyWatch" o = Gst.Element.ElementAddPropertyNotifyWatchMethodInfo
    ResolveAudioTrackMethod "bindProperty" o = GObject.Object.ObjectBindPropertyMethodInfo
    ResolveAudioTrackMethod "bindPropertyFull" o = GObject.Object.ObjectBindPropertyFullMethodInfo
    ResolveAudioTrackMethod "callAsync" o = Gst.Element.ElementCallAsyncMethodInfo
    ResolveAudioTrackMethod "changeState" o = Gst.Element.ElementChangeStateMethodInfo
    ResolveAudioTrackMethod "checkMetaRegistered" o = GES.MetaContainer.MetaContainerCheckMetaRegisteredMethodInfo
    ResolveAudioTrackMethod "childAdded" o = Gst.ChildProxy.ChildProxyChildAddedMethodInfo
    ResolveAudioTrackMethod "childRemoved" o = Gst.ChildProxy.ChildProxyChildRemovedMethodInfo
    ResolveAudioTrackMethod "commit" o = GES.Track.TrackCommitMethodInfo
    ResolveAudioTrackMethod "continueState" o = Gst.Element.ElementContinueStateMethodInfo
    ResolveAudioTrackMethod "createAllPads" o = Gst.Element.ElementCreateAllPadsMethodInfo
    ResolveAudioTrackMethod "defaultError" o = Gst.Object.ObjectDefaultErrorMethodInfo
    ResolveAudioTrackMethod "findUnlinkedPad" o = Gst.Bin.BinFindUnlinkedPadMethodInfo
    ResolveAudioTrackMethod "forceFloating" o = GObject.Object.ObjectForceFloatingMethodInfo
    ResolveAudioTrackMethod "foreach" o = GES.MetaContainer.MetaContainerForeachMethodInfo
    ResolveAudioTrackMethod "foreachPad" o = Gst.Element.ElementForeachPadMethodInfo
    ResolveAudioTrackMethod "foreachSinkPad" o = Gst.Element.ElementForeachSinkPadMethodInfo
    ResolveAudioTrackMethod "foreachSrcPad" o = Gst.Element.ElementForeachSrcPadMethodInfo
    ResolveAudioTrackMethod "freezeNotify" o = GObject.Object.ObjectFreezeNotifyMethodInfo
    ResolveAudioTrackMethod "getv" o = GObject.Object.ObjectGetvMethodInfo
    ResolveAudioTrackMethod "hasActiveControlBindings" o = Gst.Object.ObjectHasActiveControlBindingsMethodInfo
    ResolveAudioTrackMethod "hasAncestor" o = Gst.Object.ObjectHasAncestorMethodInfo
    ResolveAudioTrackMethod "hasAsAncestor" o = Gst.Object.ObjectHasAsAncestorMethodInfo
    ResolveAudioTrackMethod "hasAsParent" o = Gst.Object.ObjectHasAsParentMethodInfo
    ResolveAudioTrackMethod "isFloating" o = GObject.Object.ObjectIsFloatingMethodInfo
    ResolveAudioTrackMethod "isLockedState" o = Gst.Element.ElementIsLockedStateMethodInfo
    ResolveAudioTrackMethod "iterateAllByElementFactoryName" o = Gst.Bin.BinIterateAllByElementFactoryNameMethodInfo
    ResolveAudioTrackMethod "iterateAllByInterface" o = Gst.Bin.BinIterateAllByInterfaceMethodInfo
    ResolveAudioTrackMethod "iterateElements" o = Gst.Bin.BinIterateElementsMethodInfo
    ResolveAudioTrackMethod "iteratePads" o = Gst.Element.ElementIteratePadsMethodInfo
    ResolveAudioTrackMethod "iterateRecurse" o = Gst.Bin.BinIterateRecurseMethodInfo
    ResolveAudioTrackMethod "iterateSinkPads" o = Gst.Element.ElementIterateSinkPadsMethodInfo
    ResolveAudioTrackMethod "iterateSinks" o = Gst.Bin.BinIterateSinksMethodInfo
    ResolveAudioTrackMethod "iterateSorted" o = Gst.Bin.BinIterateSortedMethodInfo
    ResolveAudioTrackMethod "iterateSources" o = Gst.Bin.BinIterateSourcesMethodInfo
    ResolveAudioTrackMethod "iterateSrcPads" o = Gst.Element.ElementIterateSrcPadsMethodInfo
    ResolveAudioTrackMethod "link" o = Gst.Element.ElementLinkMethodInfo
    ResolveAudioTrackMethod "linkFiltered" o = Gst.Element.ElementLinkFilteredMethodInfo
    ResolveAudioTrackMethod "linkPads" o = Gst.Element.ElementLinkPadsMethodInfo
    ResolveAudioTrackMethod "linkPadsFiltered" o = Gst.Element.ElementLinkPadsFilteredMethodInfo
    ResolveAudioTrackMethod "linkPadsFull" o = Gst.Element.ElementLinkPadsFullMethodInfo
    ResolveAudioTrackMethod "lookup" o = Gst.ChildProxy.ChildProxyLookupMethodInfo
    ResolveAudioTrackMethod "lostState" o = Gst.Element.ElementLostStateMethodInfo
    ResolveAudioTrackMethod "messageFull" o = Gst.Element.ElementMessageFullMethodInfo
    ResolveAudioTrackMethod "messageFullWithDetails" o = Gst.Element.ElementMessageFullWithDetailsMethodInfo
    ResolveAudioTrackMethod "metasToString" o = GES.MetaContainer.MetaContainerMetasToStringMethodInfo
    ResolveAudioTrackMethod "noMorePads" o = Gst.Element.ElementNoMorePadsMethodInfo
    ResolveAudioTrackMethod "notify" o = GObject.Object.ObjectNotifyMethodInfo
    ResolveAudioTrackMethod "notifyByPspec" o = GObject.Object.ObjectNotifyByPspecMethodInfo
    ResolveAudioTrackMethod "postMessage" o = Gst.Element.ElementPostMessageMethodInfo
    ResolveAudioTrackMethod "provideClock" o = Gst.Element.ElementProvideClockMethodInfo
    ResolveAudioTrackMethod "query" o = Gst.Element.ElementQueryMethodInfo
    ResolveAudioTrackMethod "queryConvert" o = Gst.Element.ElementQueryConvertMethodInfo
    ResolveAudioTrackMethod "queryDuration" o = Gst.Element.ElementQueryDurationMethodInfo
    ResolveAudioTrackMethod "queryPosition" o = Gst.Element.ElementQueryPositionMethodInfo
    ResolveAudioTrackMethod "recalculateLatency" o = Gst.Bin.BinRecalculateLatencyMethodInfo
    ResolveAudioTrackMethod "ref" o = Gst.Object.ObjectRefMethodInfo
    ResolveAudioTrackMethod "refSink" o = GObject.Object.ObjectRefSinkMethodInfo
    ResolveAudioTrackMethod "registerMeta" o = GES.MetaContainer.MetaContainerRegisterMetaMethodInfo
    ResolveAudioTrackMethod "registerMetaBoolean" o = GES.MetaContainer.MetaContainerRegisterMetaBooleanMethodInfo
    ResolveAudioTrackMethod "registerMetaDate" o = GES.MetaContainer.MetaContainerRegisterMetaDateMethodInfo
    ResolveAudioTrackMethod "registerMetaDateTime" o = GES.MetaContainer.MetaContainerRegisterMetaDateTimeMethodInfo
    ResolveAudioTrackMethod "registerMetaDouble" o = GES.MetaContainer.MetaContainerRegisterMetaDoubleMethodInfo
    ResolveAudioTrackMethod "registerMetaFloat" o = GES.MetaContainer.MetaContainerRegisterMetaFloatMethodInfo
    ResolveAudioTrackMethod "registerMetaInt" o = GES.MetaContainer.MetaContainerRegisterMetaIntMethodInfo
    ResolveAudioTrackMethod "registerMetaInt64" o = GES.MetaContainer.MetaContainerRegisterMetaInt64MethodInfo
    ResolveAudioTrackMethod "registerMetaString" o = GES.MetaContainer.MetaContainerRegisterMetaStringMethodInfo
    ResolveAudioTrackMethod "registerMetaUint" o = GES.MetaContainer.MetaContainerRegisterMetaUintMethodInfo
    ResolveAudioTrackMethod "registerMetaUint64" o = GES.MetaContainer.MetaContainerRegisterMetaUint64MethodInfo
    ResolveAudioTrackMethod "registerStaticMeta" o = GES.MetaContainer.MetaContainerRegisterStaticMetaMethodInfo
    ResolveAudioTrackMethod "releaseRequestPad" o = Gst.Element.ElementReleaseRequestPadMethodInfo
    ResolveAudioTrackMethod "remove" o = Gst.Bin.BinRemoveMethodInfo
    ResolveAudioTrackMethod "removeControlBinding" o = Gst.Object.ObjectRemoveControlBindingMethodInfo
    ResolveAudioTrackMethod "removeElement" o = GES.Track.TrackRemoveElementMethodInfo
    ResolveAudioTrackMethod "removeElementFull" o = GES.Track.TrackRemoveElementFullMethodInfo
    ResolveAudioTrackMethod "removePad" o = Gst.Element.ElementRemovePadMethodInfo
    ResolveAudioTrackMethod "removePropertyNotifyWatch" o = Gst.Element.ElementRemovePropertyNotifyWatchMethodInfo
    ResolveAudioTrackMethod "requestPad" o = Gst.Element.ElementRequestPadMethodInfo
    ResolveAudioTrackMethod "requestPadSimple" o = Gst.Element.ElementRequestPadSimpleMethodInfo
    ResolveAudioTrackMethod "runDispose" o = GObject.Object.ObjectRunDisposeMethodInfo
    ResolveAudioTrackMethod "seek" o = Gst.Element.ElementSeekMethodInfo
    ResolveAudioTrackMethod "seekSimple" o = Gst.Element.ElementSeekSimpleMethodInfo
    ResolveAudioTrackMethod "sendEvent" o = Gst.Element.ElementSendEventMethodInfo
    ResolveAudioTrackMethod "stealData" o = GObject.Object.ObjectStealDataMethodInfo
    ResolveAudioTrackMethod "stealQdata" o = GObject.Object.ObjectStealQdataMethodInfo
    ResolveAudioTrackMethod "suggestNextSync" o = Gst.Object.ObjectSuggestNextSyncMethodInfo
    ResolveAudioTrackMethod "syncChildrenStates" o = Gst.Bin.BinSyncChildrenStatesMethodInfo
    ResolveAudioTrackMethod "syncStateWithParent" o = Gst.Element.ElementSyncStateWithParentMethodInfo
    ResolveAudioTrackMethod "syncValues" o = Gst.Object.ObjectSyncValuesMethodInfo
    ResolveAudioTrackMethod "thawNotify" o = GObject.Object.ObjectThawNotifyMethodInfo
    ResolveAudioTrackMethod "unlink" o = Gst.Element.ElementUnlinkMethodInfo
    ResolveAudioTrackMethod "unlinkPads" o = Gst.Element.ElementUnlinkPadsMethodInfo
    ResolveAudioTrackMethod "unparent" o = Gst.Object.ObjectUnparentMethodInfo
    ResolveAudioTrackMethod "unref" o = Gst.Object.ObjectUnrefMethodInfo
    ResolveAudioTrackMethod "updateRestrictionCaps" o = GES.Track.TrackUpdateRestrictionCapsMethodInfo
    ResolveAudioTrackMethod "watchClosure" o = GObject.Object.ObjectWatchClosureMethodInfo
    ResolveAudioTrackMethod "getBaseTime" o = Gst.Element.ElementGetBaseTimeMethodInfo
    ResolveAudioTrackMethod "getBoolean" o = GES.MetaContainer.MetaContainerGetBooleanMethodInfo
    ResolveAudioTrackMethod "getBus" o = Gst.Element.ElementGetBusMethodInfo
    ResolveAudioTrackMethod "getByInterface" o = Gst.Bin.BinGetByInterfaceMethodInfo
    ResolveAudioTrackMethod "getByName" o = Gst.Bin.BinGetByNameMethodInfo
    ResolveAudioTrackMethod "getByNameRecurseUp" o = Gst.Bin.BinGetByNameRecurseUpMethodInfo
    ResolveAudioTrackMethod "getCaps" o = GES.Track.TrackGetCapsMethodInfo
    ResolveAudioTrackMethod "getChildByIndex" o = Gst.ChildProxy.ChildProxyGetChildByIndexMethodInfo
    ResolveAudioTrackMethod "getChildByName" o = Gst.ChildProxy.ChildProxyGetChildByNameMethodInfo
    ResolveAudioTrackMethod "getChildByNameRecurse" o = Gst.ChildProxy.ChildProxyGetChildByNameRecurseMethodInfo
    ResolveAudioTrackMethod "getChildrenCount" o = Gst.ChildProxy.ChildProxyGetChildrenCountMethodInfo
    ResolveAudioTrackMethod "getClock" o = Gst.Element.ElementGetClockMethodInfo
    ResolveAudioTrackMethod "getCompatiblePad" o = Gst.Element.ElementGetCompatiblePadMethodInfo
    ResolveAudioTrackMethod "getCompatiblePadTemplate" o = Gst.Element.ElementGetCompatiblePadTemplateMethodInfo
    ResolveAudioTrackMethod "getContext" o = Gst.Element.ElementGetContextMethodInfo
    ResolveAudioTrackMethod "getContextUnlocked" o = Gst.Element.ElementGetContextUnlockedMethodInfo
    ResolveAudioTrackMethod "getContexts" o = Gst.Element.ElementGetContextsMethodInfo
    ResolveAudioTrackMethod "getControlBinding" o = Gst.Object.ObjectGetControlBindingMethodInfo
    ResolveAudioTrackMethod "getControlRate" o = Gst.Object.ObjectGetControlRateMethodInfo
    ResolveAudioTrackMethod "getCurrentClockTime" o = Gst.Element.ElementGetCurrentClockTimeMethodInfo
    ResolveAudioTrackMethod "getCurrentRunningTime" o = Gst.Element.ElementGetCurrentRunningTimeMethodInfo
    ResolveAudioTrackMethod "getData" o = GObject.Object.ObjectGetDataMethodInfo
    ResolveAudioTrackMethod "getDate" o = GES.MetaContainer.MetaContainerGetDateMethodInfo
    ResolveAudioTrackMethod "getDateTime" o = GES.MetaContainer.MetaContainerGetDateTimeMethodInfo
    ResolveAudioTrackMethod "getDouble" o = GES.MetaContainer.MetaContainerGetDoubleMethodInfo
    ResolveAudioTrackMethod "getElements" o = GES.Track.TrackGetElementsMethodInfo
    ResolveAudioTrackMethod "getFactory" o = Gst.Element.ElementGetFactoryMethodInfo
    ResolveAudioTrackMethod "getFloat" o = GES.MetaContainer.MetaContainerGetFloatMethodInfo
    ResolveAudioTrackMethod "getGValueArray" o = Gst.Object.ObjectGetGValueArrayMethodInfo
    ResolveAudioTrackMethod "getInt" o = GES.MetaContainer.MetaContainerGetIntMethodInfo
    ResolveAudioTrackMethod "getInt64" o = GES.MetaContainer.MetaContainerGetInt64MethodInfo
    ResolveAudioTrackMethod "getMarkerList" o = GES.MetaContainer.MetaContainerGetMarkerListMethodInfo
    ResolveAudioTrackMethod "getMeta" o = GES.MetaContainer.MetaContainerGetMetaMethodInfo
    ResolveAudioTrackMethod "getMetadata" o = Gst.Element.ElementGetMetadataMethodInfo
    ResolveAudioTrackMethod "getMixing" o = GES.Track.TrackGetMixingMethodInfo
    ResolveAudioTrackMethod "getName" o = Gst.Object.ObjectGetNameMethodInfo
    ResolveAudioTrackMethod "getPadTemplate" o = Gst.Element.ElementGetPadTemplateMethodInfo
    ResolveAudioTrackMethod "getPadTemplateList" o = Gst.Element.ElementGetPadTemplateListMethodInfo
    ResolveAudioTrackMethod "getParent" o = Gst.Object.ObjectGetParentMethodInfo
    ResolveAudioTrackMethod "getPathString" o = Gst.Object.ObjectGetPathStringMethodInfo
    ResolveAudioTrackMethod "getProperty" o = GObject.Object.ObjectGetPropertyMethodInfo
    ResolveAudioTrackMethod "getQdata" o = GObject.Object.ObjectGetQdataMethodInfo
    ResolveAudioTrackMethod "getRequestPad" o = Gst.Element.ElementGetRequestPadMethodInfo
    ResolveAudioTrackMethod "getRestrictionCaps" o = GES.Track.TrackGetRestrictionCapsMethodInfo
    ResolveAudioTrackMethod "getStartTime" o = Gst.Element.ElementGetStartTimeMethodInfo
    ResolveAudioTrackMethod "getState" o = Gst.Element.ElementGetStateMethodInfo
    ResolveAudioTrackMethod "getStaticPad" o = Gst.Element.ElementGetStaticPadMethodInfo
    ResolveAudioTrackMethod "getString" o = GES.MetaContainer.MetaContainerGetStringMethodInfo
    ResolveAudioTrackMethod "getSuppressedFlags" o = Gst.Bin.BinGetSuppressedFlagsMethodInfo
    ResolveAudioTrackMethod "getTimeline" o = GES.Track.TrackGetTimelineMethodInfo
    ResolveAudioTrackMethod "getUint" o = GES.MetaContainer.MetaContainerGetUintMethodInfo
    ResolveAudioTrackMethod "getUint64" o = GES.MetaContainer.MetaContainerGetUint64MethodInfo
    ResolveAudioTrackMethod "getValue" o = Gst.Object.ObjectGetValueMethodInfo
    ResolveAudioTrackMethod "setBaseTime" o = Gst.Element.ElementSetBaseTimeMethodInfo
    ResolveAudioTrackMethod "setBoolean" o = GES.MetaContainer.MetaContainerSetBooleanMethodInfo
    ResolveAudioTrackMethod "setBus" o = Gst.Element.ElementSetBusMethodInfo
    ResolveAudioTrackMethod "setClock" o = Gst.Element.ElementSetClockMethodInfo
    ResolveAudioTrackMethod "setContext" o = Gst.Element.ElementSetContextMethodInfo
    ResolveAudioTrackMethod "setControlBindingDisabled" o = Gst.Object.ObjectSetControlBindingDisabledMethodInfo
    ResolveAudioTrackMethod "setControlBindingsDisabled" o = Gst.Object.ObjectSetControlBindingsDisabledMethodInfo
    ResolveAudioTrackMethod "setControlRate" o = Gst.Object.ObjectSetControlRateMethodInfo
    ResolveAudioTrackMethod "setData" o = GObject.Object.ObjectSetDataMethodInfo
    ResolveAudioTrackMethod "setDataFull" o = GObject.Object.ObjectSetDataFullMethodInfo
    ResolveAudioTrackMethod "setDate" o = GES.MetaContainer.MetaContainerSetDateMethodInfo
    ResolveAudioTrackMethod "setDateTime" o = GES.MetaContainer.MetaContainerSetDateTimeMethodInfo
    ResolveAudioTrackMethod "setDouble" o = GES.MetaContainer.MetaContainerSetDoubleMethodInfo
    ResolveAudioTrackMethod "setFloat" o = GES.MetaContainer.MetaContainerSetFloatMethodInfo
    ResolveAudioTrackMethod "setInt" o = GES.MetaContainer.MetaContainerSetIntMethodInfo
    ResolveAudioTrackMethod "setInt64" o = GES.MetaContainer.MetaContainerSetInt64MethodInfo
    ResolveAudioTrackMethod "setLockedState" o = Gst.Element.ElementSetLockedStateMethodInfo
    ResolveAudioTrackMethod "setMarkerList" o = GES.MetaContainer.MetaContainerSetMarkerListMethodInfo
    ResolveAudioTrackMethod "setMeta" o = GES.MetaContainer.MetaContainerSetMetaMethodInfo
    ResolveAudioTrackMethod "setMixing" o = GES.Track.TrackSetMixingMethodInfo
    ResolveAudioTrackMethod "setName" o = Gst.Object.ObjectSetNameMethodInfo
    ResolveAudioTrackMethod "setParent" o = Gst.Object.ObjectSetParentMethodInfo
    ResolveAudioTrackMethod "setProperty" o = GObject.Object.ObjectSetPropertyMethodInfo
    ResolveAudioTrackMethod "setRestrictionCaps" o = GES.Track.TrackSetRestrictionCapsMethodInfo
    ResolveAudioTrackMethod "setStartTime" o = Gst.Element.ElementSetStartTimeMethodInfo
    ResolveAudioTrackMethod "setState" o = Gst.Element.ElementSetStateMethodInfo
    ResolveAudioTrackMethod "setString" o = GES.MetaContainer.MetaContainerSetStringMethodInfo
    ResolveAudioTrackMethod "setSuppressedFlags" o = Gst.Bin.BinSetSuppressedFlagsMethodInfo
    ResolveAudioTrackMethod "setTimeline" o = GES.Track.TrackSetTimelineMethodInfo
    ResolveAudioTrackMethod "setUint" o = GES.MetaContainer.MetaContainerSetUintMethodInfo
    ResolveAudioTrackMethod "setUint64" o = GES.MetaContainer.MetaContainerSetUint64MethodInfo
    ResolveAudioTrackMethod l o = O.MethodResolutionFailed l o

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

#if MIN_VERSION_base(4,13,0)
instance (info ~ ResolveAudioTrackMethod t AudioTrack, O.OverloadedMethod info AudioTrack p, R.HasField t AudioTrack p) => R.HasField t AudioTrack p where
    getField = O.overloadedMethod @info

#endif

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

#endif

#if defined(ENABLE_OVERLOADING)
instance O.HasAttributeList AudioTrack
type instance O.AttributeList AudioTrack = AudioTrackAttributeList
type AudioTrackAttributeList = ('[ '("asyncHandling", Gst.Bin.BinAsyncHandlingPropertyInfo), '("caps", GES.Track.TrackCapsPropertyInfo), '("duration", GES.Track.TrackDurationPropertyInfo), '("id", GES.Track.TrackIdPropertyInfo), '("messageForward", Gst.Bin.BinMessageForwardPropertyInfo), '("mixing", GES.Track.TrackMixingPropertyInfo), '("name", Gst.Object.ObjectNamePropertyInfo), '("parent", Gst.Object.ObjectParentPropertyInfo), '("restrictionCaps", GES.Track.TrackRestrictionCapsPropertyInfo), '("trackType", GES.Track.TrackTrackTypePropertyInfo)] :: [(Symbol, DK.Type)])
#endif

#if defined(ENABLE_OVERLOADING)
#endif

#if defined(ENABLE_OVERLOADING)
type instance O.SignalList AudioTrack = AudioTrackSignalList
type AudioTrackSignalList = ('[ '("childAdded", Gst.ChildProxy.ChildProxyChildAddedSignalInfo), '("childRemoved", Gst.ChildProxy.ChildProxyChildRemovedSignalInfo), '("commited", GES.Track.TrackCommitedSignalInfo), '("deepElementAdded", Gst.Bin.BinDeepElementAddedSignalInfo), '("deepElementRemoved", Gst.Bin.BinDeepElementRemovedSignalInfo), '("deepNotify", Gst.Object.ObjectDeepNotifySignalInfo), '("doLatency", Gst.Bin.BinDoLatencySignalInfo), '("elementAdded", Gst.Bin.BinElementAddedSignalInfo), '("elementRemoved", Gst.Bin.BinElementRemovedSignalInfo), '("noMorePads", Gst.Element.ElementNoMorePadsSignalInfo), '("notify", GObject.Object.ObjectNotifySignalInfo), '("notifyMeta", GES.MetaContainer.MetaContainerNotifyMetaSignalInfo), '("padAdded", Gst.Element.ElementPadAddedSignalInfo), '("padRemoved", Gst.Element.ElementPadRemovedSignalInfo), '("trackElementAdded", GES.Track.TrackTrackElementAddedSignalInfo), '("trackElementRemoved", GES.Track.TrackTrackElementRemovedSignalInfo)] :: [(Symbol, DK.Type)])

#endif

-- method AudioTrack::new
-- method type : Constructor
-- Args: []
-- Lengths: []
-- returnType: Just (TInterface Name { namespace = "GES" , name = "AudioTrack" })
-- throws : False
-- Skip return : False

foreign import ccall "ges_audio_track_new" ges_audio_track_new :: 
    IO (Ptr AudioTrack)

-- | Creates a new audio track, with a @/GES_TRACK_TYPE_AUDIO/@
-- [Track:trackType]("GI.GES.Objects.Track#g:attr:trackType"), \"audio\/x-raw(ANY)\" [Track:caps]("GI.GES.Objects.Track#g:attr:caps"), and
-- \"audio\/x-raw\" [Track:restrictionCaps]("GI.GES.Objects.Track#g:attr:restrictionCaps") with the properties:
-- 
-- * format: \"S32LE\"
-- * channels: 2
-- * rate: 44100
-- * layout: \"interleaved\"
-- 
-- 
-- You should use 'GI.GES.Objects.Track.trackUpdateRestrictionCaps' if you wish to
-- modify these fields, or add additional ones.
audioTrackNew ::
    (B.CallStack.HasCallStack, MonadIO m) =>
    m AudioTrack
    -- ^ __Returns:__ The newly created audio track.
audioTrackNew :: forall (m :: * -> *). (HasCallStack, MonadIO m) => m AudioTrack
audioTrackNew  = IO AudioTrack -> m AudioTrack
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO AudioTrack -> m AudioTrack) -> IO AudioTrack -> m AudioTrack
forall a b. (a -> b) -> a -> b
$ do
    Ptr AudioTrack
result <- IO (Ptr AudioTrack)
ges_audio_track_new
    Text -> Ptr AudioTrack -> IO ()
forall a. HasCallStack => Text -> Ptr a -> IO ()
checkUnexpectedReturnNULL Text
"audioTrackNew" Ptr AudioTrack
result
    AudioTrack
result' <- ((ManagedPtr AudioTrack -> AudioTrack)
-> Ptr AudioTrack -> IO AudioTrack
forall a b.
(HasCallStack, GObject a, GObject b) =>
(ManagedPtr a -> a) -> Ptr b -> IO a
newObject ManagedPtr AudioTrack -> AudioTrack
AudioTrack) Ptr AudioTrack
result
    AudioTrack -> IO AudioTrack
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return AudioTrack
result'

#if defined(ENABLE_OVERLOADING)
#endif