{-# LANGUAGE TypeApplications #-}
#if (MIN_VERSION_haskell_gi_overloading(1,0,0) && !defined(__HADDOCK_VERSION__))
#define ENABLE_OVERLOADING
#endif
module GI.GstAudio.Structs.AudioChannelMixer
(
AudioChannelMixer(..) ,
noAudioChannelMixer ,
#if defined(ENABLE_OVERLOADING)
ResolveAudioChannelMixerMethod ,
#endif
#if defined(ENABLE_OVERLOADING)
AudioChannelMixerFreeMethodInfo ,
#endif
audioChannelMixerFree ,
#if defined(ENABLE_OVERLOADING)
AudioChannelMixerIsPassthroughMethodInfo,
#endif
audioChannelMixerIsPassthrough ,
#if defined(ENABLE_OVERLOADING)
AudioChannelMixerSamplesMethodInfo ,
#endif
audioChannelMixerSamples ,
) 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.GI.Base.Signals as B.Signals
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
newtype AudioChannelMixer = AudioChannelMixer (ManagedPtr AudioChannelMixer)
deriving (AudioChannelMixer -> AudioChannelMixer -> Bool
(AudioChannelMixer -> AudioChannelMixer -> Bool)
-> (AudioChannelMixer -> AudioChannelMixer -> Bool)
-> Eq AudioChannelMixer
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: AudioChannelMixer -> AudioChannelMixer -> Bool
$c/= :: AudioChannelMixer -> AudioChannelMixer -> Bool
== :: AudioChannelMixer -> AudioChannelMixer -> Bool
$c== :: AudioChannelMixer -> AudioChannelMixer -> Bool
Eq)
instance WrappedPtr AudioChannelMixer where
wrappedPtrCalloc :: IO (Ptr AudioChannelMixer)
wrappedPtrCalloc = Ptr AudioChannelMixer -> IO (Ptr AudioChannelMixer)
forall (m :: * -> *) a. Monad m => a -> m a
return Ptr AudioChannelMixer
forall a. Ptr a
nullPtr
wrappedPtrCopy :: AudioChannelMixer -> IO AudioChannelMixer
wrappedPtrCopy = AudioChannelMixer -> IO AudioChannelMixer
forall (m :: * -> *) a. Monad m => a -> m a
return
wrappedPtrFree :: Maybe (GDestroyNotify AudioChannelMixer)
wrappedPtrFree = Maybe (GDestroyNotify AudioChannelMixer)
forall a. Maybe a
Nothing
noAudioChannelMixer :: Maybe AudioChannelMixer
noAudioChannelMixer :: Maybe AudioChannelMixer
noAudioChannelMixer = Maybe AudioChannelMixer
forall a. Maybe a
Nothing
#if defined(ENABLE_OVERLOADING)
instance O.HasAttributeList AudioChannelMixer
type instance O.AttributeList AudioChannelMixer = AudioChannelMixerAttributeList
type AudioChannelMixerAttributeList = ('[ ] :: [(Symbol, *)])
#endif
foreign import ccall "gst_audio_channel_mixer_free" gst_audio_channel_mixer_free ::
Ptr AudioChannelMixer ->
IO ()
audioChannelMixerFree ::
(B.CallStack.HasCallStack, MonadIO m) =>
AudioChannelMixer
-> m ()
audioChannelMixerFree :: AudioChannelMixer -> m ()
audioChannelMixerFree mix :: AudioChannelMixer
mix = IO () -> m ()
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO () -> m ()) -> IO () -> m ()
forall a b. (a -> b) -> a -> b
$ do
Ptr AudioChannelMixer
mix' <- AudioChannelMixer -> IO (Ptr AudioChannelMixer)
forall a. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr a)
unsafeManagedPtrGetPtr AudioChannelMixer
mix
Ptr AudioChannelMixer -> IO ()
gst_audio_channel_mixer_free Ptr AudioChannelMixer
mix'
AudioChannelMixer -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr AudioChannelMixer
mix
() -> IO ()
forall (m :: * -> *) a. Monad m => a -> m a
return ()
#if defined(ENABLE_OVERLOADING)
data AudioChannelMixerFreeMethodInfo
instance (signature ~ (m ()), MonadIO m) => O.MethodInfo AudioChannelMixerFreeMethodInfo AudioChannelMixer signature where
overloadedMethod = audioChannelMixerFree
#endif
foreign import ccall "gst_audio_channel_mixer_is_passthrough" gst_audio_channel_mixer_is_passthrough ::
Ptr AudioChannelMixer ->
IO CInt
audioChannelMixerIsPassthrough ::
(B.CallStack.HasCallStack, MonadIO m) =>
AudioChannelMixer
-> m Bool
audioChannelMixerIsPassthrough :: AudioChannelMixer -> m Bool
audioChannelMixerIsPassthrough mix :: AudioChannelMixer
mix = IO Bool -> m Bool
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO Bool -> m Bool) -> IO Bool -> m Bool
forall a b. (a -> b) -> a -> b
$ do
Ptr AudioChannelMixer
mix' <- AudioChannelMixer -> IO (Ptr AudioChannelMixer)
forall a. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr a)
unsafeManagedPtrGetPtr AudioChannelMixer
mix
CInt
result <- Ptr AudioChannelMixer -> IO CInt
gst_audio_channel_mixer_is_passthrough Ptr AudioChannelMixer
mix'
let result' :: Bool
result' = (CInt -> CInt -> Bool
forall a. Eq a => a -> a -> Bool
/= 0) CInt
result
AudioChannelMixer -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr AudioChannelMixer
mix
Bool -> IO Bool
forall (m :: * -> *) a. Monad m => a -> m a
return Bool
result'
#if defined(ENABLE_OVERLOADING)
data AudioChannelMixerIsPassthroughMethodInfo
instance (signature ~ (m Bool), MonadIO m) => O.MethodInfo AudioChannelMixerIsPassthroughMethodInfo AudioChannelMixer signature where
overloadedMethod = audioChannelMixerIsPassthrough
#endif
foreign import ccall "gst_audio_channel_mixer_samples" gst_audio_channel_mixer_samples ::
Ptr AudioChannelMixer ->
Ptr () ->
Ptr () ->
Int32 ->
IO ()
audioChannelMixerSamples ::
(B.CallStack.HasCallStack, MonadIO m) =>
AudioChannelMixer
-> Ptr ()
-> Ptr ()
-> Int32
-> m ()
audioChannelMixerSamples :: AudioChannelMixer -> Ptr () -> Ptr () -> Int32 -> m ()
audioChannelMixerSamples mix :: AudioChannelMixer
mix in_ :: Ptr ()
in_ out :: Ptr ()
out samples :: Int32
samples = IO () -> m ()
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO () -> m ()) -> IO () -> m ()
forall a b. (a -> b) -> a -> b
$ do
Ptr AudioChannelMixer
mix' <- AudioChannelMixer -> IO (Ptr AudioChannelMixer)
forall a. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr a)
unsafeManagedPtrGetPtr AudioChannelMixer
mix
Ptr AudioChannelMixer -> Ptr () -> Ptr () -> Int32 -> IO ()
gst_audio_channel_mixer_samples Ptr AudioChannelMixer
mix' Ptr ()
in_ Ptr ()
out Int32
samples
AudioChannelMixer -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr AudioChannelMixer
mix
() -> IO ()
forall (m :: * -> *) a. Monad m => a -> m a
return ()
#if defined(ENABLE_OVERLOADING)
data AudioChannelMixerSamplesMethodInfo
instance (signature ~ (Ptr () -> Ptr () -> Int32 -> m ()), MonadIO m) => O.MethodInfo AudioChannelMixerSamplesMethodInfo AudioChannelMixer signature where
overloadedMethod = audioChannelMixerSamples
#endif
#if defined(ENABLE_OVERLOADING)
type family ResolveAudioChannelMixerMethod (t :: Symbol) (o :: *) :: * where
ResolveAudioChannelMixerMethod "free" o = AudioChannelMixerFreeMethodInfo
ResolveAudioChannelMixerMethod "isPassthrough" o = AudioChannelMixerIsPassthroughMethodInfo
ResolveAudioChannelMixerMethod "samples" o = AudioChannelMixerSamplesMethodInfo
ResolveAudioChannelMixerMethod l o = O.MethodResolutionFailed l o
instance (info ~ ResolveAudioChannelMixerMethod t AudioChannelMixer, O.MethodInfo info AudioChannelMixer p) => OL.IsLabel t (AudioChannelMixer -> p) where
#if MIN_VERSION_base(4,10,0)
fromLabel = O.overloadedMethod @info
#else
fromLabel _ = O.overloadedMethod @info
#endif
#endif