{-# LANGUAGE TypeApplications #-}
#if (MIN_VERSION_haskell_gi_overloading(1,0,0) && !defined(__HADDOCK_VERSION__))
#define ENABLE_OVERLOADING
#endif
module GI.GstAudio.Structs.AudioSinkClassExtension
(
AudioSinkClassExtension(..) ,
newZeroAudioSinkClassExtension ,
#if defined(ENABLE_OVERLOADING)
ResolveAudioSinkClassExtensionMethod ,
#endif
#if defined(ENABLE_OVERLOADING)
audioSinkClassExtension_clearAll ,
#endif
clearAudioSinkClassExtensionClearAll ,
getAudioSinkClassExtensionClearAll ,
setAudioSinkClassExtensionClearAll ,
) 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.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.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 qualified GI.GstAudio.Callbacks as GstAudio.Callbacks
newtype AudioSinkClassExtension = AudioSinkClassExtension (SP.ManagedPtr AudioSinkClassExtension)
deriving (AudioSinkClassExtension -> AudioSinkClassExtension -> Bool
(AudioSinkClassExtension -> AudioSinkClassExtension -> Bool)
-> (AudioSinkClassExtension -> AudioSinkClassExtension -> Bool)
-> Eq AudioSinkClassExtension
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: AudioSinkClassExtension -> AudioSinkClassExtension -> Bool
$c/= :: AudioSinkClassExtension -> AudioSinkClassExtension -> Bool
== :: AudioSinkClassExtension -> AudioSinkClassExtension -> Bool
$c== :: AudioSinkClassExtension -> AudioSinkClassExtension -> Bool
Eq)
instance SP.ManagedPtrNewtype AudioSinkClassExtension where
toManagedPtr :: AudioSinkClassExtension -> ManagedPtr AudioSinkClassExtension
toManagedPtr (AudioSinkClassExtension ManagedPtr AudioSinkClassExtension
p) = ManagedPtr AudioSinkClassExtension
p
instance BoxedPtr AudioSinkClassExtension where
boxedPtrCopy :: AudioSinkClassExtension -> IO AudioSinkClassExtension
boxedPtrCopy = \AudioSinkClassExtension
p -> AudioSinkClassExtension
-> (Ptr AudioSinkClassExtension -> IO AudioSinkClassExtension)
-> IO AudioSinkClassExtension
forall a c.
(HasCallStack, ManagedPtrNewtype a) =>
a -> (Ptr a -> IO c) -> IO c
B.ManagedPtr.withManagedPtr AudioSinkClassExtension
p (Int
-> Ptr AudioSinkClassExtension -> IO (Ptr AudioSinkClassExtension)
forall a. (HasCallStack, CallocPtr a) => Int -> Ptr a -> IO (Ptr a)
copyBytes Int
8 (Ptr AudioSinkClassExtension -> IO (Ptr AudioSinkClassExtension))
-> (Ptr AudioSinkClassExtension -> IO AudioSinkClassExtension)
-> Ptr AudioSinkClassExtension
-> IO AudioSinkClassExtension
forall (m :: * -> *) a b c.
Monad m =>
(a -> m b) -> (b -> m c) -> a -> m c
>=> (ManagedPtr AudioSinkClassExtension -> AudioSinkClassExtension)
-> Ptr AudioSinkClassExtension -> IO AudioSinkClassExtension
forall a.
(HasCallStack, BoxedPtr a) =>
(ManagedPtr a -> a) -> Ptr a -> IO a
B.ManagedPtr.wrapPtr ManagedPtr AudioSinkClassExtension -> AudioSinkClassExtension
AudioSinkClassExtension)
boxedPtrFree :: AudioSinkClassExtension -> IO ()
boxedPtrFree = \AudioSinkClassExtension
x -> AudioSinkClassExtension
-> (Ptr AudioSinkClassExtension -> IO ()) -> IO ()
forall a c.
(HasCallStack, ManagedPtrNewtype a) =>
a -> (Ptr a -> IO c) -> IO c
SP.withManagedPtr AudioSinkClassExtension
x Ptr AudioSinkClassExtension -> IO ()
forall a. Ptr a -> IO ()
SP.freeMem
instance CallocPtr AudioSinkClassExtension where
boxedPtrCalloc :: IO (Ptr AudioSinkClassExtension)
boxedPtrCalloc = Int -> IO (Ptr AudioSinkClassExtension)
forall a. Int -> IO (Ptr a)
callocBytes Int
8
newZeroAudioSinkClassExtension :: MonadIO m => m AudioSinkClassExtension
newZeroAudioSinkClassExtension :: forall (m :: * -> *). MonadIO m => m AudioSinkClassExtension
newZeroAudioSinkClassExtension = IO AudioSinkClassExtension -> m AudioSinkClassExtension
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO AudioSinkClassExtension -> m AudioSinkClassExtension)
-> IO AudioSinkClassExtension -> m AudioSinkClassExtension
forall a b. (a -> b) -> a -> b
$ IO (Ptr AudioSinkClassExtension)
forall a. CallocPtr a => IO (Ptr a)
boxedPtrCalloc IO (Ptr AudioSinkClassExtension)
-> (Ptr AudioSinkClassExtension -> IO AudioSinkClassExtension)
-> IO AudioSinkClassExtension
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= (ManagedPtr AudioSinkClassExtension -> AudioSinkClassExtension)
-> Ptr AudioSinkClassExtension -> IO AudioSinkClassExtension
forall a.
(HasCallStack, BoxedPtr a) =>
(ManagedPtr a -> a) -> Ptr a -> IO a
wrapPtr ManagedPtr AudioSinkClassExtension -> AudioSinkClassExtension
AudioSinkClassExtension
instance tag ~ 'AttrSet => Constructible AudioSinkClassExtension tag where
new :: forall (m :: * -> *).
MonadIO m =>
(ManagedPtr AudioSinkClassExtension -> AudioSinkClassExtension)
-> [AttrOp AudioSinkClassExtension tag]
-> m AudioSinkClassExtension
new ManagedPtr AudioSinkClassExtension -> AudioSinkClassExtension
_ [AttrOp AudioSinkClassExtension tag]
attrs = do
AudioSinkClassExtension
o <- m AudioSinkClassExtension
forall (m :: * -> *). MonadIO m => m AudioSinkClassExtension
newZeroAudioSinkClassExtension
AudioSinkClassExtension
-> [AttrOp AudioSinkClassExtension 'AttrSet] -> m ()
forall o (m :: * -> *).
MonadIO m =>
o -> [AttrOp o 'AttrSet] -> m ()
GI.Attributes.set AudioSinkClassExtension
o [AttrOp AudioSinkClassExtension tag]
[AttrOp AudioSinkClassExtension 'AttrSet]
attrs
AudioSinkClassExtension -> m AudioSinkClassExtension
forall (m :: * -> *) a. Monad m => a -> m a
return AudioSinkClassExtension
o
getAudioSinkClassExtensionClearAll :: MonadIO m => AudioSinkClassExtension -> m (Maybe GstAudio.Callbacks.AudioSinkClassExtensionClearAllFieldCallback)
getAudioSinkClassExtensionClearAll :: forall (m :: * -> *).
MonadIO m =>
AudioSinkClassExtension
-> m (Maybe AudioSinkClassExtensionClearAllFieldCallback)
getAudioSinkClassExtensionClearAll AudioSinkClassExtension
s = IO (Maybe AudioSinkClassExtensionClearAllFieldCallback)
-> m (Maybe AudioSinkClassExtensionClearAllFieldCallback)
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO (Maybe AudioSinkClassExtensionClearAllFieldCallback)
-> m (Maybe AudioSinkClassExtensionClearAllFieldCallback))
-> IO (Maybe AudioSinkClassExtensionClearAllFieldCallback)
-> m (Maybe AudioSinkClassExtensionClearAllFieldCallback)
forall a b. (a -> b) -> a -> b
$ AudioSinkClassExtension
-> (Ptr AudioSinkClassExtension
-> IO (Maybe AudioSinkClassExtensionClearAllFieldCallback))
-> IO (Maybe AudioSinkClassExtensionClearAllFieldCallback)
forall a c.
(HasCallStack, ManagedPtrNewtype a) =>
a -> (Ptr a -> IO c) -> IO c
withManagedPtr AudioSinkClassExtension
s ((Ptr AudioSinkClassExtension
-> IO (Maybe AudioSinkClassExtensionClearAllFieldCallback))
-> IO (Maybe AudioSinkClassExtensionClearAllFieldCallback))
-> (Ptr AudioSinkClassExtension
-> IO (Maybe AudioSinkClassExtensionClearAllFieldCallback))
-> IO (Maybe AudioSinkClassExtensionClearAllFieldCallback)
forall a b. (a -> b) -> a -> b
$ \Ptr AudioSinkClassExtension
ptr -> do
FunPtr C_AudioSinkClassExtensionClearAllFieldCallback
val <- Ptr (FunPtr C_AudioSinkClassExtensionClearAllFieldCallback)
-> IO (FunPtr C_AudioSinkClassExtensionClearAllFieldCallback)
forall a. Storable a => Ptr a -> IO a
peek (Ptr AudioSinkClassExtension
ptr Ptr AudioSinkClassExtension
-> Int
-> Ptr (FunPtr C_AudioSinkClassExtensionClearAllFieldCallback)
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
0) :: IO (FunPtr GstAudio.Callbacks.C_AudioSinkClassExtensionClearAllFieldCallback)
Maybe AudioSinkClassExtensionClearAllFieldCallback
result <- FunPtr C_AudioSinkClassExtensionClearAllFieldCallback
-> (FunPtr C_AudioSinkClassExtensionClearAllFieldCallback
-> IO AudioSinkClassExtensionClearAllFieldCallback)
-> IO (Maybe AudioSinkClassExtensionClearAllFieldCallback)
forall a b. FunPtr a -> (FunPtr a -> IO b) -> IO (Maybe b)
SP.convertFunPtrIfNonNull FunPtr C_AudioSinkClassExtensionClearAllFieldCallback
val ((FunPtr C_AudioSinkClassExtensionClearAllFieldCallback
-> IO AudioSinkClassExtensionClearAllFieldCallback)
-> IO (Maybe AudioSinkClassExtensionClearAllFieldCallback))
-> (FunPtr C_AudioSinkClassExtensionClearAllFieldCallback
-> IO AudioSinkClassExtensionClearAllFieldCallback)
-> IO (Maybe AudioSinkClassExtensionClearAllFieldCallback)
forall a b. (a -> b) -> a -> b
$ \FunPtr C_AudioSinkClassExtensionClearAllFieldCallback
val' -> do
let val'' :: AudioSinkClassExtensionClearAllFieldCallback
val'' = FunPtr C_AudioSinkClassExtensionClearAllFieldCallback
-> AudioSinkClassExtensionClearAllFieldCallback
forall (m :: * -> *) a.
(HasCallStack, MonadIO m, IsAudioSink a) =>
FunPtr C_AudioSinkClassExtensionClearAllFieldCallback -> a -> m ()
GstAudio.Callbacks.dynamic_AudioSinkClassExtensionClearAllFieldCallback FunPtr C_AudioSinkClassExtensionClearAllFieldCallback
val'
AudioSinkClassExtensionClearAllFieldCallback
-> IO AudioSinkClassExtensionClearAllFieldCallback
forall (m :: * -> *) a. Monad m => a -> m a
return AudioSinkClassExtensionClearAllFieldCallback
val''
Maybe AudioSinkClassExtensionClearAllFieldCallback
-> IO (Maybe AudioSinkClassExtensionClearAllFieldCallback)
forall (m :: * -> *) a. Monad m => a -> m a
return Maybe AudioSinkClassExtensionClearAllFieldCallback
result
setAudioSinkClassExtensionClearAll :: MonadIO m => AudioSinkClassExtension -> FunPtr GstAudio.Callbacks.C_AudioSinkClassExtensionClearAllFieldCallback -> m ()
setAudioSinkClassExtensionClearAll :: forall (m :: * -> *).
MonadIO m =>
AudioSinkClassExtension
-> FunPtr C_AudioSinkClassExtensionClearAllFieldCallback -> m ()
setAudioSinkClassExtensionClearAll AudioSinkClassExtension
s FunPtr C_AudioSinkClassExtensionClearAllFieldCallback
val = IO () -> m ()
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO () -> m ()) -> IO () -> m ()
forall a b. (a -> b) -> a -> b
$ AudioSinkClassExtension
-> (Ptr AudioSinkClassExtension -> IO ()) -> IO ()
forall a c.
(HasCallStack, ManagedPtrNewtype a) =>
a -> (Ptr a -> IO c) -> IO c
withManagedPtr AudioSinkClassExtension
s ((Ptr AudioSinkClassExtension -> IO ()) -> IO ())
-> (Ptr AudioSinkClassExtension -> IO ()) -> IO ()
forall a b. (a -> b) -> a -> b
$ \Ptr AudioSinkClassExtension
ptr -> do
Ptr (FunPtr C_AudioSinkClassExtensionClearAllFieldCallback)
-> FunPtr C_AudioSinkClassExtensionClearAllFieldCallback -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke (Ptr AudioSinkClassExtension
ptr Ptr AudioSinkClassExtension
-> Int
-> Ptr (FunPtr C_AudioSinkClassExtensionClearAllFieldCallback)
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
0) (FunPtr C_AudioSinkClassExtensionClearAllFieldCallback
val :: FunPtr GstAudio.Callbacks.C_AudioSinkClassExtensionClearAllFieldCallback)
clearAudioSinkClassExtensionClearAll :: MonadIO m => AudioSinkClassExtension -> m ()
clearAudioSinkClassExtensionClearAll :: forall (m :: * -> *). MonadIO m => AudioSinkClassExtension -> m ()
clearAudioSinkClassExtensionClearAll AudioSinkClassExtension
s = IO () -> m ()
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO () -> m ()) -> IO () -> m ()
forall a b. (a -> b) -> a -> b
$ AudioSinkClassExtension
-> (Ptr AudioSinkClassExtension -> IO ()) -> IO ()
forall a c.
(HasCallStack, ManagedPtrNewtype a) =>
a -> (Ptr a -> IO c) -> IO c
withManagedPtr AudioSinkClassExtension
s ((Ptr AudioSinkClassExtension -> IO ()) -> IO ())
-> (Ptr AudioSinkClassExtension -> IO ()) -> IO ()
forall a b. (a -> b) -> a -> b
$ \Ptr AudioSinkClassExtension
ptr -> do
Ptr (FunPtr C_AudioSinkClassExtensionClearAllFieldCallback)
-> FunPtr C_AudioSinkClassExtensionClearAllFieldCallback -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke (Ptr AudioSinkClassExtension
ptr Ptr AudioSinkClassExtension
-> Int
-> Ptr (FunPtr C_AudioSinkClassExtensionClearAllFieldCallback)
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
0) (FunPtr C_AudioSinkClassExtensionClearAllFieldCallback
forall a. FunPtr a
FP.nullFunPtr :: FunPtr GstAudio.Callbacks.C_AudioSinkClassExtensionClearAllFieldCallback)
#if defined(ENABLE_OVERLOADING)
data AudioSinkClassExtensionClearAllFieldInfo
instance AttrInfo AudioSinkClassExtensionClearAllFieldInfo where
type AttrBaseTypeConstraint AudioSinkClassExtensionClearAllFieldInfo = (~) AudioSinkClassExtension
type AttrAllowedOps AudioSinkClassExtensionClearAllFieldInfo = '[ 'AttrSet, 'AttrGet, 'AttrClear]
type AttrSetTypeConstraint AudioSinkClassExtensionClearAllFieldInfo = (~) (FunPtr GstAudio.Callbacks.C_AudioSinkClassExtensionClearAllFieldCallback)
type AttrTransferTypeConstraint AudioSinkClassExtensionClearAllFieldInfo = (~)GstAudio.Callbacks.AudioSinkClassExtensionClearAllFieldCallback
type AttrTransferType AudioSinkClassExtensionClearAllFieldInfo = (FunPtr GstAudio.Callbacks.C_AudioSinkClassExtensionClearAllFieldCallback)
type AttrGetType AudioSinkClassExtensionClearAllFieldInfo = Maybe GstAudio.Callbacks.AudioSinkClassExtensionClearAllFieldCallback
type AttrLabel AudioSinkClassExtensionClearAllFieldInfo = "clear_all"
type AttrOrigin AudioSinkClassExtensionClearAllFieldInfo = AudioSinkClassExtension
attrGet = getAudioSinkClassExtensionClearAll
attrSet = setAudioSinkClassExtensionClearAll
attrConstruct = undefined
attrClear = clearAudioSinkClassExtensionClearAll
attrTransfer _ v = do
GstAudio.Callbacks.mk_AudioSinkClassExtensionClearAllFieldCallback (GstAudio.Callbacks.wrap_AudioSinkClassExtensionClearAllFieldCallback Nothing v)
dbgAttrInfo = P.Just (O.ResolvedSymbolInfo {
O.resolvedSymbolName = "GI.GstAudio.Structs.AudioSinkClassExtension.clearAll"
, O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-gstaudio-1.0.24/docs/GI-GstAudio-Structs-AudioSinkClassExtension.html#g:attr:clearAll"
})
audioSinkClassExtension_clearAll :: AttrLabelProxy "clearAll"
audioSinkClassExtension_clearAll = AttrLabelProxy
#endif
#if defined(ENABLE_OVERLOADING)
instance O.HasAttributeList AudioSinkClassExtension
type instance O.AttributeList AudioSinkClassExtension = AudioSinkClassExtensionAttributeList
type AudioSinkClassExtensionAttributeList = ('[ '("clearAll", AudioSinkClassExtensionClearAllFieldInfo)] :: [(Symbol, *)])
#endif
#if defined(ENABLE_OVERLOADING)
type family ResolveAudioSinkClassExtensionMethod (t :: Symbol) (o :: *) :: * where
ResolveAudioSinkClassExtensionMethod l o = O.MethodResolutionFailed l o
instance (info ~ ResolveAudioSinkClassExtensionMethod t AudioSinkClassExtension, O.OverloadedMethod info AudioSinkClassExtension p) => OL.IsLabel t (AudioSinkClassExtension -> 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 ~ ResolveAudioSinkClassExtensionMethod t AudioSinkClassExtension, O.OverloadedMethod info AudioSinkClassExtension p, R.HasField t AudioSinkClassExtension p) => R.HasField t AudioSinkClassExtension p where
getField = O.overloadedMethod @info
#endif
instance (info ~ ResolveAudioSinkClassExtensionMethod t AudioSinkClassExtension, O.OverloadedMethodInfo info AudioSinkClassExtension) => OL.IsLabel t (O.MethodProxy info AudioSinkClassExtension) where
#if MIN_VERSION_base(4,10,0)
fromLabel = O.MethodProxy
#else
fromLabel _ = O.MethodProxy
#endif
#endif