#define ENABLE_OVERLOADING (MIN_VERSION_haskell_gi_overloading(1,0,0) \
&& !defined(__HADDOCK_VERSION__))
module GI.GstAudio.Structs.AudioChannelMixer
(
AudioChannelMixer(..) ,
noAudioChannelMixer ,
#if ENABLE_OVERLOADING
AudioChannelMixerFreeMethodInfo ,
#endif
audioChannelMixerFree ,
#if ENABLE_OVERLOADING
AudioChannelMixerIsPassthroughMethodInfo,
#endif
audioChannelMixerIsPassthrough ,
#if 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.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.Text as T
import qualified Data.ByteString.Char8 as B
import qualified Data.Map as Map
import qualified Foreign.Ptr as FP
newtype AudioChannelMixer = AudioChannelMixer (ManagedPtr AudioChannelMixer)
instance WrappedPtr AudioChannelMixer where
wrappedPtrCalloc = return nullPtr
wrappedPtrCopy = return
wrappedPtrFree = Nothing
noAudioChannelMixer :: Maybe AudioChannelMixer
noAudioChannelMixer = Nothing
#if 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 mix = liftIO $ do
mix' <- unsafeManagedPtrGetPtr mix
gst_audio_channel_mixer_free mix'
touchManagedPtr mix
return ()
#if 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 mix = liftIO $ do
mix' <- unsafeManagedPtrGetPtr mix
result <- gst_audio_channel_mixer_is_passthrough mix'
let result' = (/= 0) result
touchManagedPtr mix
return result'
#if 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 mix in_ out samples = liftIO $ do
mix' <- unsafeManagedPtrGetPtr mix
gst_audio_channel_mixer_samples mix' in_ out samples
touchManagedPtr mix
return ()
#if ENABLE_OVERLOADING
data AudioChannelMixerSamplesMethodInfo
instance (signature ~ (Ptr () -> Ptr () -> Int32 -> m ()), MonadIO m) => O.MethodInfo AudioChannelMixerSamplesMethodInfo AudioChannelMixer signature where
overloadedMethod _ = audioChannelMixerSamples
#endif
#if 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) => O.IsLabelProxy t (AudioChannelMixer -> p) where
fromLabelProxy _ = O.overloadedMethod (O.MethodProxy :: O.MethodProxy info)
#if MIN_VERSION_base(4,9,0)
instance (info ~ ResolveAudioChannelMixerMethod t AudioChannelMixer, O.MethodInfo info AudioChannelMixer p) => O.IsLabel t (AudioChannelMixer -> 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
#endif