module GI.GstAudio.Structs.AudioChannelMixer
(
AudioChannelMixer(..) ,
noAudioChannelMixer ,
AudioChannelMixerFreeMethodInfo ,
audioChannelMixerFree ,
AudioChannelMixerIsPassthroughMethodInfo,
audioChannelMixerIsPassthrough ,
AudioChannelMixerSamplesMethodInfo ,
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.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
instance O.HasAttributeList AudioChannelMixer
type instance O.AttributeList AudioChannelMixer = AudioChannelMixerAttributeList
type AudioChannelMixerAttributeList = ('[ ] :: [(Symbol, *)])
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 ()
data AudioChannelMixerFreeMethodInfo
instance (signature ~ (m ()), MonadIO m) => O.MethodInfo AudioChannelMixerFreeMethodInfo AudioChannelMixer signature where
overloadedMethod _ = audioChannelMixerFree
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'
data AudioChannelMixerIsPassthroughMethodInfo
instance (signature ~ (m Bool), MonadIO m) => O.MethodInfo AudioChannelMixerIsPassthroughMethodInfo AudioChannelMixer signature where
overloadedMethod _ = audioChannelMixerIsPassthrough
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 ()
data AudioChannelMixerSamplesMethodInfo
instance (signature ~ (Ptr () -> Ptr () -> Int32 -> m ()), MonadIO m) => O.MethodInfo AudioChannelMixerSamplesMethodInfo AudioChannelMixer signature where
overloadedMethod _ = audioChannelMixerSamples
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
fromLabel _ = O.overloadedMethod (O.MethodProxy :: O.MethodProxy info)
#endif