packages feed

gi-gstaudio (empty) → 0.1.6.13

raw patch · 45 files changed

+10384/−0 lines, 45 filesdep +basedep +bytestringdep +containerssetup-changed

Dependencies added: base, bytestring, containers, gi-glib, gi-gobject, gi-gst, gi-gstbase, haskell-gi-base, text, transformers

Files

+ GI/GstAudio.hs view
@@ -0,0 +1,46 @@+++{- |+Copyright  : Will Thompson, Iñaki García Etxebarria and Jonas Platte+License    : LGPL-2.1+Maintainer : Iñaki García Etxebarria (garetxe@gmail.com)+-}++module GI.GstAudio+    (     module GI.GstAudio.Callbacks            ,+    module GI.GstAudio.Constants            ,+    module GI.GstAudio.Enums                ,+    module GI.GstAudio.Flags                ,+    module GI.GstAudio.Functions            ,+    module GI.GstAudio.Interfaces           ,+    module GI.GstAudio.Objects              ,+    module GI.GstAudio.Structs              ,++++    module Data.GI.Base                     ,+++    ) where++import GI.GstAudio.Callbacks+import GI.GstAudio.Constants+import GI.GstAudio.Enums+import GI.GstAudio.Flags+import GI.GstAudio.Functions+import GI.GstAudio.Interfaces+import GI.GstAudio.Objects+import GI.GstAudio.Structs++import Prelude ()+import Data.GI.Base.ShortPrelude++import qualified Data.Text as T+import qualified Data.ByteString.Char8 as B+import qualified Data.Map as Map++import GI.GstAudio.Types+import GI.GstAudio.Callbacks++import Data.GI.Base+
+ GI/GstAudio/Callbacks.hs view
@@ -0,0 +1,270 @@+++{- |+Copyright  : Will Thompson, Iñaki García Etxebarria and Jonas Platte+License    : LGPL-2.1+Maintainer : Iñaki García Etxebarria (garetxe@gmail.com)+-}++module GI.GstAudio.Callbacks+    ( ++ -- * Signals+-- ** AudioBaseSinkCustomSlavingCallback+    AudioBaseSinkCustomSlavingCallback      ,+    AudioBaseSinkCustomSlavingCallbackC     ,+    audioBaseSinkCustomSlavingCallbackClosure,+    audioBaseSinkCustomSlavingCallbackWrapper,+    mkAudioBaseSinkCustomSlavingCallback    ,+    noAudioBaseSinkCustomSlavingCallback    ,+++-- ** AudioClockGetTimeFunc+    AudioClockGetTimeFunc                   ,+    AudioClockGetTimeFuncC                  ,+    audioClockGetTimeFuncClosure            ,+    audioClockGetTimeFuncWrapper            ,+    mkAudioClockGetTimeFunc                 ,+    noAudioClockGetTimeFunc                 ,+++-- ** AudioFormatPack+    AudioFormatPack                         ,+    AudioFormatPackC                        ,+    audioFormatPackClosure                  ,+    audioFormatPackWrapper                  ,+    mkAudioFormatPack                       ,+    noAudioFormatPack                       ,+++-- ** AudioFormatUnpack+    AudioFormatUnpack                       ,+    AudioFormatUnpackC                      ,+    audioFormatUnpackClosure                ,+    audioFormatUnpackWrapper                ,+    mkAudioFormatUnpack                     ,+    noAudioFormatUnpack                     ,+++-- ** AudioRingBufferCallback+    AudioRingBufferCallback                 ,+    AudioRingBufferCallbackC                ,+    audioRingBufferCallbackClosure          ,+    audioRingBufferCallbackWrapper          ,+    mkAudioRingBufferCallback               ,+    noAudioRingBufferCallback               ,+++++    ) where++import Prelude ()+import Data.GI.Base.ShortPrelude++import qualified Data.Text as T+import qualified Data.ByteString.Char8 as B+import qualified Data.Map as Map++import GI.GstAudio.Types++import qualified GI.Gst as Gst++-- callback AudioRingBufferCallback+audioRingBufferCallbackClosure :: AudioRingBufferCallback -> IO Closure+audioRingBufferCallbackClosure cb = newCClosure =<< mkAudioRingBufferCallback wrapped+    where wrapped = audioRingBufferCallbackWrapper Nothing cb++type AudioRingBufferCallbackC =+    Ptr AudioRingBuffer ->+    Ptr Word8 ->+    Word32 ->+    Ptr () ->+    IO ()++foreign import ccall "wrapper"+    mkAudioRingBufferCallback :: AudioRingBufferCallbackC -> IO (FunPtr AudioRingBufferCallbackC)++type AudioRingBufferCallback =+    AudioRingBuffer ->+    ByteString ->+    IO ()++noAudioRingBufferCallback :: Maybe AudioRingBufferCallback+noAudioRingBufferCallback = Nothing++audioRingBufferCallbackWrapper ::+    Maybe (Ptr (FunPtr (AudioRingBufferCallbackC))) ->+    AudioRingBufferCallback ->+    Ptr AudioRingBuffer ->+    Ptr Word8 ->+    Word32 ->+    Ptr () ->+    IO ()+audioRingBufferCallbackWrapper funptrptr _cb rbuf data_ len _ = do+    rbuf' <- (newObject AudioRingBuffer) rbuf+    data_' <- (unpackByteStringWithLength len) data_+    _cb  rbuf' data_'+    maybeReleaseFunPtr funptrptr++-- callback AudioFormatUnpack+audioFormatUnpackClosure :: AudioFormatUnpack -> IO Closure+audioFormatUnpackClosure cb = newCClosure =<< mkAudioFormatUnpack wrapped+    where wrapped = audioFormatUnpackWrapper Nothing cb++type AudioFormatUnpackC =+    Ptr AudioFormatInfo ->+    CUInt ->+    Ptr Word8 ->+    Ptr Word8 ->+    Int32 ->+    IO ()++foreign import ccall "wrapper"+    mkAudioFormatUnpack :: AudioFormatUnpackC -> IO (FunPtr AudioFormatUnpackC)++type AudioFormatUnpack =+    AudioFormatInfo ->+    AudioPackFlags ->+    Ptr Word8 ->+    Ptr Word8 ->+    Int32 ->+    IO ()++noAudioFormatUnpack :: Maybe AudioFormatUnpack+noAudioFormatUnpack = Nothing++audioFormatUnpackWrapper ::+    Maybe (Ptr (FunPtr (AudioFormatUnpackC))) ->+    AudioFormatUnpack ->+    Ptr AudioFormatInfo ->+    CUInt ->+    Ptr Word8 ->+    Ptr Word8 ->+    Int32 ->+    IO ()+audioFormatUnpackWrapper funptrptr _cb info flags dest data_ length_ = do+    info' <- (newPtr 104 AudioFormatInfo) info+    let flags' = (toEnum . fromIntegral) flags+    _cb  info' flags' dest data_ length_+    maybeReleaseFunPtr funptrptr++-- callback AudioFormatPack+audioFormatPackClosure :: AudioFormatPack -> IO Closure+audioFormatPackClosure cb = newCClosure =<< mkAudioFormatPack wrapped+    where wrapped = audioFormatPackWrapper Nothing cb++type AudioFormatPackC =+    Ptr AudioFormatInfo ->+    CUInt ->+    Ptr Word8 ->+    Ptr Word8 ->+    Int32 ->+    IO ()++foreign import ccall "wrapper"+    mkAudioFormatPack :: AudioFormatPackC -> IO (FunPtr AudioFormatPackC)++type AudioFormatPack =+    AudioFormatInfo ->+    AudioPackFlags ->+    Ptr Word8 ->+    Ptr Word8 ->+    Int32 ->+    IO ()++noAudioFormatPack :: Maybe AudioFormatPack+noAudioFormatPack = Nothing++audioFormatPackWrapper ::+    Maybe (Ptr (FunPtr (AudioFormatPackC))) ->+    AudioFormatPack ->+    Ptr AudioFormatInfo ->+    CUInt ->+    Ptr Word8 ->+    Ptr Word8 ->+    Int32 ->+    IO ()+audioFormatPackWrapper funptrptr _cb info flags src data_ length_ = do+    info' <- (newPtr 104 AudioFormatInfo) info+    let flags' = (toEnum . fromIntegral) flags+    _cb  info' flags' src data_ length_+    maybeReleaseFunPtr funptrptr++-- callback AudioClockGetTimeFunc+audioClockGetTimeFuncClosure :: AudioClockGetTimeFunc -> IO Closure+audioClockGetTimeFuncClosure cb = newCClosure =<< mkAudioClockGetTimeFunc wrapped+    where wrapped = audioClockGetTimeFuncWrapper Nothing cb++type AudioClockGetTimeFuncC =+    Ptr Gst.Clock ->+    Ptr () ->+    IO Word64++foreign import ccall "wrapper"+    mkAudioClockGetTimeFunc :: AudioClockGetTimeFuncC -> IO (FunPtr AudioClockGetTimeFuncC)++type AudioClockGetTimeFunc =+    Gst.Clock ->+    IO Word64++noAudioClockGetTimeFunc :: Maybe AudioClockGetTimeFunc+noAudioClockGetTimeFunc = Nothing++audioClockGetTimeFuncWrapper ::+    Maybe (Ptr (FunPtr (AudioClockGetTimeFuncC))) ->+    AudioClockGetTimeFunc ->+    Ptr Gst.Clock ->+    Ptr () ->+    IO Word64+audioClockGetTimeFuncWrapper funptrptr _cb clock _ = do+    clock' <- (newObject Gst.Clock) clock+    result <- _cb  clock'+    maybeReleaseFunPtr funptrptr+    return result++-- callback AudioBaseSinkCustomSlavingCallback+audioBaseSinkCustomSlavingCallbackClosure :: AudioBaseSinkCustomSlavingCallback -> IO Closure+audioBaseSinkCustomSlavingCallbackClosure cb = newCClosure =<< mkAudioBaseSinkCustomSlavingCallback wrapped+    where wrapped = audioBaseSinkCustomSlavingCallbackWrapper Nothing cb++type AudioBaseSinkCustomSlavingCallbackC =+    Ptr AudioBaseSink ->+    Word64 ->+    Word64 ->+    Int64 ->+    CUInt ->+    Ptr () ->+    IO ()++foreign import ccall "wrapper"+    mkAudioBaseSinkCustomSlavingCallback :: AudioBaseSinkCustomSlavingCallbackC -> IO (FunPtr AudioBaseSinkCustomSlavingCallbackC)++type AudioBaseSinkCustomSlavingCallback =+    AudioBaseSink ->+    Word64 ->+    Word64 ->+    Int64 ->+    AudioBaseSinkDiscontReason ->+    IO ()++noAudioBaseSinkCustomSlavingCallback :: Maybe AudioBaseSinkCustomSlavingCallback+noAudioBaseSinkCustomSlavingCallback = Nothing++audioBaseSinkCustomSlavingCallbackWrapper ::+    Maybe (Ptr (FunPtr (AudioBaseSinkCustomSlavingCallbackC))) ->+    AudioBaseSinkCustomSlavingCallback ->+    Ptr AudioBaseSink ->+    Word64 ->+    Word64 ->+    Int64 ->+    CUInt ->+    Ptr () ->+    IO ()+audioBaseSinkCustomSlavingCallbackWrapper funptrptr _cb sink etime itime requestedSkew discontReason _ = do+    sink' <- (newObject AudioBaseSink) sink+    let discontReason' = (toEnum . fromIntegral) discontReason+    _cb  sink' etime itime requestedSkew discontReason'+    maybeReleaseFunPtr funptrptr++
+ GI/GstAudio/Constants.hs view
@@ -0,0 +1,77 @@+{-# LANGUAGE PatternSynonyms, ScopedTypeVariables, ViewPatterns #-}+++{- |+Copyright  : Will Thompson, Iñaki García Etxebarria and Jonas Platte+License    : LGPL-2.1+Maintainer : Iñaki García Etxebarria (garetxe@gmail.com)+-}++module GI.GstAudio.Constants+    ( +    pattern META_TAG_AUDIO_STR              ,+    pattern META_TAG_AUDIO_CHANNELS_STR     ,+    pattern AUDIO_RATE_RANGE                ,+    pattern AUDIO_FORMATS_ALL               ,+    pattern AUDIO_ENCODER_SRC_NAME          ,+    pattern AUDIO_ENCODER_SINK_NAME         ,+    pattern AUDIO_DEF_RATE                  ,+    pattern AUDIO_DEF_FORMAT                ,+    pattern AUDIO_DEF_CHANNELS              ,+    pattern AUDIO_DECODER_SRC_NAME          ,+    pattern AUDIO_DECODER_SINK_NAME         ,+    pattern AUDIO_DECODER_MAX_ERRORS        ,+    pattern AUDIO_CHANNELS_RANGE            ,++    ) where++import Prelude ()+import Data.GI.Base.ShortPrelude++import qualified Data.Text as T+import qualified Data.ByteString.Char8 as B+import qualified Data.Map as Map++import GI.GstAudio.Types+import GI.GstAudio.Callbacks+++pattern META_TAG_AUDIO_STR = "audio" :: T.Text+++pattern META_TAG_AUDIO_CHANNELS_STR = "channels" :: T.Text+++pattern AUDIO_RATE_RANGE = "(int) [ 1, max ]" :: T.Text+++pattern AUDIO_FORMATS_ALL = " { S8, U8, S16LE, S16BE, U16LE, U16BE, S24_32LE, S24_32BE, U24_32LE, U24_32BE, S32LE, S32BE, U32LE, U32BE, S24LE, S24BE, U24LE, U24BE, S20LE, S20BE, U20LE, U20BE, S18LE, S18BE, U18LE, U18BE, F32LE, F32BE, F64LE, F64BE }" :: T.Text+++pattern AUDIO_ENCODER_SRC_NAME = "src" :: T.Text+++pattern AUDIO_ENCODER_SINK_NAME = "sink" :: T.Text+++pattern AUDIO_DEF_RATE = 44100 :: Int32+++pattern AUDIO_DEF_FORMAT = "S16LE" :: T.Text+++pattern AUDIO_DEF_CHANNELS = 2 :: Int32+++pattern AUDIO_DECODER_SRC_NAME = "src" :: T.Text+++pattern AUDIO_DECODER_SINK_NAME = "sink" :: T.Text+++pattern AUDIO_DECODER_MAX_ERRORS = 10 :: Int32+++pattern AUDIO_CHANNELS_RANGE = "(int) [ 1, max ]" :: T.Text++
+ GI/GstAudio/Enums.hs view
@@ -0,0 +1,544 @@+++{- |+Copyright  : Will Thompson, Iñaki García Etxebarria and Jonas Platte+License    : LGPL-2.1+Maintainer : Iñaki García Etxebarria (garetxe@gmail.com)+-}++module GI.GstAudio.Enums+    ( ++-- * Exported types+    StreamVolumeFormat(..)                  ,+    AudioRingBufferState(..)                ,+    AudioRingBufferFormatType(..)           ,+    AudioPackFlags(..)                      ,+    AudioLayout(..)                         ,+    AudioFormat(..)                         ,+    AudioChannelPosition(..)                ,+    AudioCdSrcMode(..)                      ,+    AudioBaseSrcSlaveMethod(..)             ,+    AudioBaseSinkSlaveMethod(..)            ,+    AudioBaseSinkDiscontReason(..)          ,+++    ) where++import Prelude ()+import Data.GI.Base.ShortPrelude++import qualified Data.Text as T+import qualified Data.ByteString.Char8 as B+import qualified Data.Map as Map+++++-- Enum StreamVolumeFormat++data StreamVolumeFormat = +      StreamVolumeFormatLinear+    | StreamVolumeFormatCubic+    | StreamVolumeFormatDb+    | AnotherStreamVolumeFormat Int+    deriving (Show, Eq)++instance Enum StreamVolumeFormat where+    fromEnum StreamVolumeFormatLinear = 0+    fromEnum StreamVolumeFormatCubic = 1+    fromEnum StreamVolumeFormatDb = 2+    fromEnum (AnotherStreamVolumeFormat k) = k++    toEnum 0 = StreamVolumeFormatLinear+    toEnum 1 = StreamVolumeFormatCubic+    toEnum 2 = StreamVolumeFormatDb+    toEnum k = AnotherStreamVolumeFormat k++-- Enum AudioRingBufferState++data AudioRingBufferState = +      AudioRingBufferStateStopped+    | AudioRingBufferStatePaused+    | AudioRingBufferStateStarted+    | AudioRingBufferStateError+    | AnotherAudioRingBufferState Int+    deriving (Show, Eq)++instance Enum AudioRingBufferState where+    fromEnum AudioRingBufferStateStopped = 0+    fromEnum AudioRingBufferStatePaused = 1+    fromEnum AudioRingBufferStateStarted = 2+    fromEnum AudioRingBufferStateError = 3+    fromEnum (AnotherAudioRingBufferState k) = k++    toEnum 0 = AudioRingBufferStateStopped+    toEnum 1 = AudioRingBufferStatePaused+    toEnum 2 = AudioRingBufferStateStarted+    toEnum 3 = AudioRingBufferStateError+    toEnum k = AnotherAudioRingBufferState k++foreign import ccall "gst_audio_ring_buffer_state_get_type" c_gst_audio_ring_buffer_state_get_type :: +    IO GType++instance BoxedEnum AudioRingBufferState where+    boxedEnumType _ = c_gst_audio_ring_buffer_state_get_type++-- Enum AudioRingBufferFormatType++data AudioRingBufferFormatType = +      AudioRingBufferFormatTypeRaw+    | AudioRingBufferFormatTypeMuLaw+    | AudioRingBufferFormatTypeALaw+    | AudioRingBufferFormatTypeImaAdpcm+    | AudioRingBufferFormatTypeMpeg+    | AudioRingBufferFormatTypeGsm+    | AudioRingBufferFormatTypeIec958+    | AudioRingBufferFormatTypeAc3+    | AudioRingBufferFormatTypeEac3+    | AudioRingBufferFormatTypeDts+    | AudioRingBufferFormatTypeMpeg2Aac+    | AudioRingBufferFormatTypeMpeg4Aac+    | AnotherAudioRingBufferFormatType Int+    deriving (Show, Eq)++instance Enum AudioRingBufferFormatType where+    fromEnum AudioRingBufferFormatTypeRaw = 0+    fromEnum AudioRingBufferFormatTypeMuLaw = 1+    fromEnum AudioRingBufferFormatTypeALaw = 2+    fromEnum AudioRingBufferFormatTypeImaAdpcm = 3+    fromEnum AudioRingBufferFormatTypeMpeg = 4+    fromEnum AudioRingBufferFormatTypeGsm = 5+    fromEnum AudioRingBufferFormatTypeIec958 = 6+    fromEnum AudioRingBufferFormatTypeAc3 = 7+    fromEnum AudioRingBufferFormatTypeEac3 = 8+    fromEnum AudioRingBufferFormatTypeDts = 9+    fromEnum AudioRingBufferFormatTypeMpeg2Aac = 10+    fromEnum AudioRingBufferFormatTypeMpeg4Aac = 11+    fromEnum (AnotherAudioRingBufferFormatType k) = k++    toEnum 0 = AudioRingBufferFormatTypeRaw+    toEnum 1 = AudioRingBufferFormatTypeMuLaw+    toEnum 2 = AudioRingBufferFormatTypeALaw+    toEnum 3 = AudioRingBufferFormatTypeImaAdpcm+    toEnum 4 = AudioRingBufferFormatTypeMpeg+    toEnum 5 = AudioRingBufferFormatTypeGsm+    toEnum 6 = AudioRingBufferFormatTypeIec958+    toEnum 7 = AudioRingBufferFormatTypeAc3+    toEnum 8 = AudioRingBufferFormatTypeEac3+    toEnum 9 = AudioRingBufferFormatTypeDts+    toEnum 10 = AudioRingBufferFormatTypeMpeg2Aac+    toEnum 11 = AudioRingBufferFormatTypeMpeg4Aac+    toEnum k = AnotherAudioRingBufferFormatType k++foreign import ccall "gst_audio_ring_buffer_format_type_get_type" c_gst_audio_ring_buffer_format_type_get_type :: +    IO GType++instance BoxedEnum AudioRingBufferFormatType where+    boxedEnumType _ = c_gst_audio_ring_buffer_format_type_get_type++-- Enum AudioPackFlags++data AudioPackFlags = +      AudioPackFlagsNone+    | AnotherAudioPackFlags Int+    deriving (Show, Eq)++instance Enum AudioPackFlags where+    fromEnum AudioPackFlagsNone = 0+    fromEnum (AnotherAudioPackFlags k) = k++    toEnum 0 = AudioPackFlagsNone+    toEnum k = AnotherAudioPackFlags k++foreign import ccall "gst_audio_pack_flags_get_type" c_gst_audio_pack_flags_get_type :: +    IO GType++instance BoxedEnum AudioPackFlags where+    boxedEnumType _ = c_gst_audio_pack_flags_get_type++-- Enum AudioLayout++data AudioLayout = +      AudioLayoutInterleaved+    | AudioLayoutNonInterleaved+    | AnotherAudioLayout Int+    deriving (Show, Eq)++instance Enum AudioLayout where+    fromEnum AudioLayoutInterleaved = 0+    fromEnum AudioLayoutNonInterleaved = 1+    fromEnum (AnotherAudioLayout k) = k++    toEnum 0 = AudioLayoutInterleaved+    toEnum 1 = AudioLayoutNonInterleaved+    toEnum k = AnotherAudioLayout k++foreign import ccall "gst_audio_layout_get_type" c_gst_audio_layout_get_type :: +    IO GType++instance BoxedEnum AudioLayout where+    boxedEnumType _ = c_gst_audio_layout_get_type++-- Enum AudioFormat++data AudioFormat = +      AudioFormatUnknown+    | AudioFormatEncoded+    | AudioFormatS8+    | AudioFormatU8+    | AudioFormatS16le+    | AudioFormatS16be+    | AudioFormatU16le+    | AudioFormatU16be+    | AudioFormatS2432le+    | AudioFormatS2432be+    | AudioFormatU2432le+    | AudioFormatU2432be+    | AudioFormatS32le+    | AudioFormatS32be+    | AudioFormatU32le+    | AudioFormatU32be+    | AudioFormatS24le+    | AudioFormatS24be+    | AudioFormatU24le+    | AudioFormatU24be+    | AudioFormatS20le+    | AudioFormatS20be+    | AudioFormatU20le+    | AudioFormatU20be+    | AudioFormatS18le+    | AudioFormatS18be+    | AudioFormatU18le+    | AudioFormatU18be+    | AudioFormatF32le+    | AudioFormatF32be+    | AudioFormatF64le+    | AudioFormatF64be+    | AudioFormatS16+    | AudioFormatU16+    | AudioFormatS2432+    | AudioFormatU2432+    | AudioFormatS32+    | AudioFormatU32+    | AudioFormatS24+    | AudioFormatU24+    | AudioFormatS20+    | AudioFormatU20+    | AudioFormatS18+    | AudioFormatU18+    | AudioFormatF32+    | AudioFormatF64+    | AnotherAudioFormat Int+    deriving (Show, Eq)++instance Enum AudioFormat where+    fromEnum AudioFormatUnknown = 0+    fromEnum AudioFormatEncoded = 1+    fromEnum AudioFormatS8 = 2+    fromEnum AudioFormatU8 = 3+    fromEnum AudioFormatS16le = 4+    fromEnum AudioFormatS16be = 5+    fromEnum AudioFormatU16le = 6+    fromEnum AudioFormatU16be = 7+    fromEnum AudioFormatS2432le = 8+    fromEnum AudioFormatS2432be = 9+    fromEnum AudioFormatU2432le = 10+    fromEnum AudioFormatU2432be = 11+    fromEnum AudioFormatS32le = 12+    fromEnum AudioFormatS32be = 13+    fromEnum AudioFormatU32le = 14+    fromEnum AudioFormatU32be = 15+    fromEnum AudioFormatS24le = 16+    fromEnum AudioFormatS24be = 17+    fromEnum AudioFormatU24le = 18+    fromEnum AudioFormatU24be = 19+    fromEnum AudioFormatS20le = 20+    fromEnum AudioFormatS20be = 21+    fromEnum AudioFormatU20le = 22+    fromEnum AudioFormatU20be = 23+    fromEnum AudioFormatS18le = 24+    fromEnum AudioFormatS18be = 25+    fromEnum AudioFormatU18le = 26+    fromEnum AudioFormatU18be = 27+    fromEnum AudioFormatF32le = 28+    fromEnum AudioFormatF32be = 29+    fromEnum AudioFormatF64le = 30+    fromEnum AudioFormatF64be = 31+    fromEnum AudioFormatS16 = 4+    fromEnum AudioFormatU16 = 6+    fromEnum AudioFormatS2432 = 8+    fromEnum AudioFormatU2432 = 10+    fromEnum AudioFormatS32 = 12+    fromEnum AudioFormatU32 = 14+    fromEnum AudioFormatS24 = 16+    fromEnum AudioFormatU24 = 18+    fromEnum AudioFormatS20 = 20+    fromEnum AudioFormatU20 = 22+    fromEnum AudioFormatS18 = 24+    fromEnum AudioFormatU18 = 26+    fromEnum AudioFormatF32 = 28+    fromEnum AudioFormatF64 = 30+    fromEnum (AnotherAudioFormat k) = k++    toEnum 0 = AudioFormatUnknown+    toEnum 1 = AudioFormatEncoded+    toEnum 2 = AudioFormatS8+    toEnum 3 = AudioFormatU8+    toEnum 4 = AudioFormatS16le+    toEnum 5 = AudioFormatS16be+    toEnum 6 = AudioFormatU16le+    toEnum 7 = AudioFormatU16be+    toEnum 8 = AudioFormatS2432le+    toEnum 9 = AudioFormatS2432be+    toEnum 10 = AudioFormatU2432le+    toEnum 11 = AudioFormatU2432be+    toEnum 12 = AudioFormatS32le+    toEnum 13 = AudioFormatS32be+    toEnum 14 = AudioFormatU32le+    toEnum 15 = AudioFormatU32be+    toEnum 16 = AudioFormatS24le+    toEnum 17 = AudioFormatS24be+    toEnum 18 = AudioFormatU24le+    toEnum 19 = AudioFormatU24be+    toEnum 20 = AudioFormatS20le+    toEnum 21 = AudioFormatS20be+    toEnum 22 = AudioFormatU20le+    toEnum 23 = AudioFormatU20be+    toEnum 24 = AudioFormatS18le+    toEnum 25 = AudioFormatS18be+    toEnum 26 = AudioFormatU18le+    toEnum 27 = AudioFormatU18be+    toEnum 28 = AudioFormatF32le+    toEnum 29 = AudioFormatF32be+    toEnum 30 = AudioFormatF64le+    toEnum 31 = AudioFormatF64be+    toEnum k = AnotherAudioFormat k++foreign import ccall "gst_audio_format_get_type" c_gst_audio_format_get_type :: +    IO GType++instance BoxedEnum AudioFormat where+    boxedEnumType _ = c_gst_audio_format_get_type++-- Enum AudioChannelPosition++data AudioChannelPosition = +      AudioChannelPositionNone+    | AudioChannelPositionMono+    | AudioChannelPositionInvalid+    | AudioChannelPositionFrontLeft+    | AudioChannelPositionFrontRight+    | AudioChannelPositionFrontCenter+    | AudioChannelPositionLfe1+    | AudioChannelPositionRearLeft+    | AudioChannelPositionRearRight+    | AudioChannelPositionFrontLeftOfCenter+    | AudioChannelPositionFrontRightOfCenter+    | AudioChannelPositionRearCenter+    | AudioChannelPositionLfe2+    | AudioChannelPositionSideLeft+    | AudioChannelPositionSideRight+    | AudioChannelPositionTopFrontLeft+    | AudioChannelPositionTopFrontRight+    | AudioChannelPositionTopFrontCenter+    | AudioChannelPositionTopCenter+    | AudioChannelPositionTopRearLeft+    | AudioChannelPositionTopRearRight+    | AudioChannelPositionTopSideLeft+    | AudioChannelPositionTopSideRight+    | AudioChannelPositionTopRearCenter+    | AudioChannelPositionBottomFrontCenter+    | AudioChannelPositionBottomFrontLeft+    | AudioChannelPositionBottomFrontRight+    | AudioChannelPositionWideLeft+    | AudioChannelPositionWideRight+    | AudioChannelPositionSurroundLeft+    | AudioChannelPositionSurroundRight+    | AnotherAudioChannelPosition Int+    deriving (Show, Eq)++instance Enum AudioChannelPosition where+    fromEnum AudioChannelPositionNone = -3+    fromEnum AudioChannelPositionMono = -2+    fromEnum AudioChannelPositionInvalid = -1+    fromEnum AudioChannelPositionFrontLeft = 0+    fromEnum AudioChannelPositionFrontRight = 1+    fromEnum AudioChannelPositionFrontCenter = 2+    fromEnum AudioChannelPositionLfe1 = 3+    fromEnum AudioChannelPositionRearLeft = 4+    fromEnum AudioChannelPositionRearRight = 5+    fromEnum AudioChannelPositionFrontLeftOfCenter = 6+    fromEnum AudioChannelPositionFrontRightOfCenter = 7+    fromEnum AudioChannelPositionRearCenter = 8+    fromEnum AudioChannelPositionLfe2 = 9+    fromEnum AudioChannelPositionSideLeft = 10+    fromEnum AudioChannelPositionSideRight = 11+    fromEnum AudioChannelPositionTopFrontLeft = 12+    fromEnum AudioChannelPositionTopFrontRight = 13+    fromEnum AudioChannelPositionTopFrontCenter = 14+    fromEnum AudioChannelPositionTopCenter = 15+    fromEnum AudioChannelPositionTopRearLeft = 16+    fromEnum AudioChannelPositionTopRearRight = 17+    fromEnum AudioChannelPositionTopSideLeft = 18+    fromEnum AudioChannelPositionTopSideRight = 19+    fromEnum AudioChannelPositionTopRearCenter = 20+    fromEnum AudioChannelPositionBottomFrontCenter = 21+    fromEnum AudioChannelPositionBottomFrontLeft = 22+    fromEnum AudioChannelPositionBottomFrontRight = 23+    fromEnum AudioChannelPositionWideLeft = 24+    fromEnum AudioChannelPositionWideRight = 25+    fromEnum AudioChannelPositionSurroundLeft = 26+    fromEnum AudioChannelPositionSurroundRight = 27+    fromEnum (AnotherAudioChannelPosition k) = k++    toEnum -3 = AudioChannelPositionNone+    toEnum -2 = AudioChannelPositionMono+    toEnum -1 = AudioChannelPositionInvalid+    toEnum 0 = AudioChannelPositionFrontLeft+    toEnum 1 = AudioChannelPositionFrontRight+    toEnum 2 = AudioChannelPositionFrontCenter+    toEnum 3 = AudioChannelPositionLfe1+    toEnum 4 = AudioChannelPositionRearLeft+    toEnum 5 = AudioChannelPositionRearRight+    toEnum 6 = AudioChannelPositionFrontLeftOfCenter+    toEnum 7 = AudioChannelPositionFrontRightOfCenter+    toEnum 8 = AudioChannelPositionRearCenter+    toEnum 9 = AudioChannelPositionLfe2+    toEnum 10 = AudioChannelPositionSideLeft+    toEnum 11 = AudioChannelPositionSideRight+    toEnum 12 = AudioChannelPositionTopFrontLeft+    toEnum 13 = AudioChannelPositionTopFrontRight+    toEnum 14 = AudioChannelPositionTopFrontCenter+    toEnum 15 = AudioChannelPositionTopCenter+    toEnum 16 = AudioChannelPositionTopRearLeft+    toEnum 17 = AudioChannelPositionTopRearRight+    toEnum 18 = AudioChannelPositionTopSideLeft+    toEnum 19 = AudioChannelPositionTopSideRight+    toEnum 20 = AudioChannelPositionTopRearCenter+    toEnum 21 = AudioChannelPositionBottomFrontCenter+    toEnum 22 = AudioChannelPositionBottomFrontLeft+    toEnum 23 = AudioChannelPositionBottomFrontRight+    toEnum 24 = AudioChannelPositionWideLeft+    toEnum 25 = AudioChannelPositionWideRight+    toEnum 26 = AudioChannelPositionSurroundLeft+    toEnum 27 = AudioChannelPositionSurroundRight+    toEnum k = AnotherAudioChannelPosition k++foreign import ccall "gst_audio_channel_position_get_type" c_gst_audio_channel_position_get_type :: +    IO GType++instance BoxedEnum AudioChannelPosition where+    boxedEnumType _ = c_gst_audio_channel_position_get_type++-- Enum AudioCdSrcMode++data AudioCdSrcMode = +      AudioCdSrcModeNormal+    | AudioCdSrcModeContinuous+    | AnotherAudioCdSrcMode Int+    deriving (Show, Eq)++instance Enum AudioCdSrcMode where+    fromEnum AudioCdSrcModeNormal = 0+    fromEnum AudioCdSrcModeContinuous = 1+    fromEnum (AnotherAudioCdSrcMode k) = k++    toEnum 0 = AudioCdSrcModeNormal+    toEnum 1 = AudioCdSrcModeContinuous+    toEnum k = AnotherAudioCdSrcMode k++foreign import ccall "gst_audio_cd_src_mode_get_type" c_gst_audio_cd_src_mode_get_type :: +    IO GType++instance BoxedEnum AudioCdSrcMode where+    boxedEnumType _ = c_gst_audio_cd_src_mode_get_type++-- Enum AudioBaseSrcSlaveMethod++data AudioBaseSrcSlaveMethod = +      AudioBaseSrcSlaveMethodResample+    | AudioBaseSrcSlaveMethodReTimestamp+    | AudioBaseSrcSlaveMethodSkew+    | AudioBaseSrcSlaveMethodNone+    | AnotherAudioBaseSrcSlaveMethod Int+    deriving (Show, Eq)++instance Enum AudioBaseSrcSlaveMethod where+    fromEnum AudioBaseSrcSlaveMethodResample = 0+    fromEnum AudioBaseSrcSlaveMethodReTimestamp = 1+    fromEnum AudioBaseSrcSlaveMethodSkew = 2+    fromEnum AudioBaseSrcSlaveMethodNone = 3+    fromEnum (AnotherAudioBaseSrcSlaveMethod k) = k++    toEnum 0 = AudioBaseSrcSlaveMethodResample+    toEnum 1 = AudioBaseSrcSlaveMethodReTimestamp+    toEnum 2 = AudioBaseSrcSlaveMethodSkew+    toEnum 3 = AudioBaseSrcSlaveMethodNone+    toEnum k = AnotherAudioBaseSrcSlaveMethod k++foreign import ccall "gst_audio_base_src_slave_method_get_type" c_gst_audio_base_src_slave_method_get_type :: +    IO GType++instance BoxedEnum AudioBaseSrcSlaveMethod where+    boxedEnumType _ = c_gst_audio_base_src_slave_method_get_type++-- Enum AudioBaseSinkSlaveMethod++data AudioBaseSinkSlaveMethod = +      AudioBaseSinkSlaveMethodResample+    | AudioBaseSinkSlaveMethodSkew+    | AudioBaseSinkSlaveMethodNone+    | AudioBaseSinkSlaveMethodCustom+    | AnotherAudioBaseSinkSlaveMethod Int+    deriving (Show, Eq)++instance Enum AudioBaseSinkSlaveMethod where+    fromEnum AudioBaseSinkSlaveMethodResample = 0+    fromEnum AudioBaseSinkSlaveMethodSkew = 1+    fromEnum AudioBaseSinkSlaveMethodNone = 2+    fromEnum AudioBaseSinkSlaveMethodCustom = 3+    fromEnum (AnotherAudioBaseSinkSlaveMethod k) = k++    toEnum 0 = AudioBaseSinkSlaveMethodResample+    toEnum 1 = AudioBaseSinkSlaveMethodSkew+    toEnum 2 = AudioBaseSinkSlaveMethodNone+    toEnum 3 = AudioBaseSinkSlaveMethodCustom+    toEnum k = AnotherAudioBaseSinkSlaveMethod k++foreign import ccall "gst_audio_base_sink_slave_method_get_type" c_gst_audio_base_sink_slave_method_get_type :: +    IO GType++instance BoxedEnum AudioBaseSinkSlaveMethod where+    boxedEnumType _ = c_gst_audio_base_sink_slave_method_get_type++-- Enum AudioBaseSinkDiscontReason++data AudioBaseSinkDiscontReason = +      AudioBaseSinkDiscontReasonNoDiscont+    | AudioBaseSinkDiscontReasonNewCaps+    | AudioBaseSinkDiscontReasonFlush+    | AudioBaseSinkDiscontReasonSyncLatency+    | AudioBaseSinkDiscontReasonAlignment+    | AudioBaseSinkDiscontReasonDeviceFailure+    | AnotherAudioBaseSinkDiscontReason Int+    deriving (Show, Eq)++instance Enum AudioBaseSinkDiscontReason where+    fromEnum AudioBaseSinkDiscontReasonNoDiscont = 0+    fromEnum AudioBaseSinkDiscontReasonNewCaps = 1+    fromEnum AudioBaseSinkDiscontReasonFlush = 2+    fromEnum AudioBaseSinkDiscontReasonSyncLatency = 3+    fromEnum AudioBaseSinkDiscontReasonAlignment = 4+    fromEnum AudioBaseSinkDiscontReasonDeviceFailure = 5+    fromEnum (AnotherAudioBaseSinkDiscontReason k) = k++    toEnum 0 = AudioBaseSinkDiscontReasonNoDiscont+    toEnum 1 = AudioBaseSinkDiscontReasonNewCaps+    toEnum 2 = AudioBaseSinkDiscontReasonFlush+    toEnum 3 = AudioBaseSinkDiscontReasonSyncLatency+    toEnum 4 = AudioBaseSinkDiscontReasonAlignment+    toEnum 5 = AudioBaseSinkDiscontReasonDeviceFailure+    toEnum k = AnotherAudioBaseSinkDiscontReason k++
+ GI/GstAudio/Flags.hs view
@@ -0,0 +1,88 @@+++{- |+Copyright  : Will Thompson, Iñaki García Etxebarria and Jonas Platte+License    : LGPL-2.1+Maintainer : Iñaki García Etxebarria (garetxe@gmail.com)+-}++module GI.GstAudio.Flags+    ( ++-- * Exported types+    AudioFormatFlags(..)                    ,+    AudioFlags(..)                          ,+++    ) where++import Prelude ()+import Data.GI.Base.ShortPrelude++import qualified Data.Text as T+import qualified Data.ByteString.Char8 as B+import qualified Data.Map as Map+++++-- Flags AudioFormatFlags++data AudioFormatFlags = +      AudioFormatFlagsInteger+    | AudioFormatFlagsFloat+    | AudioFormatFlagsSigned+    | AudioFormatFlagsComplex+    | AudioFormatFlagsUnpack+    | AnotherAudioFormatFlags Int+    deriving (Show, Eq)++instance Enum AudioFormatFlags where+    fromEnum AudioFormatFlagsInteger = 1+    fromEnum AudioFormatFlagsFloat = 2+    fromEnum AudioFormatFlagsSigned = 4+    fromEnum AudioFormatFlagsComplex = 16+    fromEnum AudioFormatFlagsUnpack = 32+    fromEnum (AnotherAudioFormatFlags k) = k++    toEnum 1 = AudioFormatFlagsInteger+    toEnum 2 = AudioFormatFlagsFloat+    toEnum 4 = AudioFormatFlagsSigned+    toEnum 16 = AudioFormatFlagsComplex+    toEnum 32 = AudioFormatFlagsUnpack+    toEnum k = AnotherAudioFormatFlags k++foreign import ccall "gst_audio_format_flags_get_type" c_gst_audio_format_flags_get_type :: +    IO GType++instance BoxedEnum AudioFormatFlags where+    boxedEnumType _ = c_gst_audio_format_flags_get_type++instance IsGFlag AudioFormatFlags++-- Flags AudioFlags++data AudioFlags = +      AudioFlagsNone+    | AudioFlagsUnpositioned+    | AnotherAudioFlags Int+    deriving (Show, Eq)++instance Enum AudioFlags where+    fromEnum AudioFlagsNone = 0+    fromEnum AudioFlagsUnpositioned = 1+    fromEnum (AnotherAudioFlags k) = k++    toEnum 0 = AudioFlagsNone+    toEnum 1 = AudioFlagsUnpositioned+    toEnum k = AnotherAudioFlags k++foreign import ccall "gst_audio_flags_get_type" c_gst_audio_flags_get_type :: +    IO GType++instance BoxedEnum AudioFlags where+    boxedEnumType _ = c_gst_audio_flags_get_type++instance IsGFlag AudioFlags++
+ GI/GstAudio/Functions.hs view
@@ -0,0 +1,506 @@+++{- |+Copyright  : Will Thompson, Iñaki García Etxebarria and Jonas Platte+License    : LGPL-2.1+Maintainer : Iñaki García Etxebarria (garetxe@gmail.com)+-}++module GI.GstAudio.Functions+    ( ++ -- * Methods+-- ** audioBufferClip+    audioBufferClip                         ,+++-- ** audioBufferReorderChannels+    audioBufferReorderChannels              ,+++-- ** audioChannelPositionsFromMask+    audioChannelPositionsFromMask           ,+++-- ** audioChannelPositionsToMask+    audioChannelPositionsToMask             ,+++-- ** audioChannelPositionsToValidOrder+    audioChannelPositionsToValidOrder       ,+++-- ** audioCheckValidChannelPositions+    audioCheckValidChannelPositions         ,+++-- ** audioDownmixMetaApiGetType+    audioDownmixMetaApiGetType              ,+++-- ** audioFormatInfoGetType+    audioFormatInfoGetType                  ,+++-- ** audioGetChannelReorderMap+    audioGetChannelReorderMap               ,+++-- ** audioIec61937FrameSize+    audioIec61937FrameSize                  ,+++-- ** audioIec61937Payload+    audioIec61937Payload                    ,+++-- ** audioReorderChannels+    audioReorderChannels                    ,+++-- ** bufferAddAudioDownmixMeta+    bufferAddAudioDownmixMeta               ,+++-- ** bufferGetAudioDownmixMetaForChannels+    bufferGetAudioDownmixMetaForChannels    ,+++++    ) where++import Prelude ()+import Data.GI.Base.ShortPrelude++import qualified Data.Text as T+import qualified Data.ByteString.Char8 as B+import qualified Data.Map as Map++import GI.GstAudio.Types+import GI.GstAudio.Callbacks+import qualified GI.Gst as Gst++-- function gst_buffer_get_audio_downmix_meta_for_channels+-- Args : [Arg {argCName = "buffer", argType = TInterface "Gst" "Buffer", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "to_position", argType = TCArray False (-1) 2 (TInterface "GstAudio" "AudioChannelPosition"), direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "to_channels", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]+-- Lengths : [Arg {argCName = "to_channels", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]+-- returnType : TInterface "GstAudio" "AudioDownmixMeta"+-- throws : False+-- Skip return : False++foreign import ccall "gst_buffer_get_audio_downmix_meta_for_channels" gst_buffer_get_audio_downmix_meta_for_channels :: +    Ptr Gst.Buffer ->                       -- buffer : TInterface "Gst" "Buffer"+    Ptr CUInt ->                            -- to_position : TCArray False (-1) 2 (TInterface "GstAudio" "AudioChannelPosition")+    Int32 ->                                -- to_channels : TBasicType TInt32+    IO (Ptr AudioDownmixMeta)+++bufferGetAudioDownmixMetaForChannels ::+    (MonadIO m) =>+    Gst.Buffer                              -- buffer+    -> [AudioChannelPosition]               -- toPosition+    -> m AudioDownmixMeta                   -- result+bufferGetAudioDownmixMetaForChannels buffer toPosition = liftIO $ do+    let toChannels = fromIntegral $ length toPosition+    let buffer' = unsafeManagedPtrGetPtr buffer+    let toPosition' = map (fromIntegral . fromEnum) toPosition+    toPosition'' <- packStorableArray toPosition'+    result <- gst_buffer_get_audio_downmix_meta_for_channels buffer' toPosition'' toChannels+    checkUnexpectedReturnNULL "gst_buffer_get_audio_downmix_meta_for_channels" result+    result' <- (newPtr 48 AudioDownmixMeta) result+    touchManagedPtr buffer+    freeMem toPosition''+    return result'+++-- function gst_buffer_add_audio_downmix_meta+-- Args : [Arg {argCName = "buffer", argType = TInterface "Gst" "Buffer", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "from_position", argType = TCArray False (-1) 2 (TInterface "GstAudio" "AudioChannelPosition"), direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "from_channels", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "to_position", argType = TCArray False (-1) 4 (TInterface "GstAudio" "AudioChannelPosition"), direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "to_channels", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "matrix", argType = TBasicType TFloat, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]+-- Lengths : [Arg {argCName = "to_channels", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "from_channels", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]+-- returnType : TInterface "GstAudio" "AudioDownmixMeta"+-- throws : False+-- Skip return : False++foreign import ccall "gst_buffer_add_audio_downmix_meta" gst_buffer_add_audio_downmix_meta :: +    Ptr Gst.Buffer ->                       -- buffer : TInterface "Gst" "Buffer"+    Ptr CUInt ->                            -- from_position : TCArray False (-1) 2 (TInterface "GstAudio" "AudioChannelPosition")+    Int32 ->                                -- from_channels : TBasicType TInt32+    Ptr CUInt ->                            -- to_position : TCArray False (-1) 4 (TInterface "GstAudio" "AudioChannelPosition")+    Int32 ->                                -- to_channels : TBasicType TInt32+    CFloat ->                               -- matrix : TBasicType TFloat+    IO (Ptr AudioDownmixMeta)+++bufferAddAudioDownmixMeta ::+    (MonadIO m) =>+    Gst.Buffer                              -- buffer+    -> [AudioChannelPosition]               -- fromPosition+    -> [AudioChannelPosition]               -- toPosition+    -> Float                                -- matrix+    -> m AudioDownmixMeta                   -- result+bufferAddAudioDownmixMeta buffer fromPosition toPosition matrix = liftIO $ do+    let toChannels = fromIntegral $ length toPosition+    let fromChannels = fromIntegral $ length fromPosition+    let buffer' = unsafeManagedPtrGetPtr buffer+    let fromPosition' = map (fromIntegral . fromEnum) fromPosition+    fromPosition'' <- packStorableArray fromPosition'+    let toPosition' = map (fromIntegral . fromEnum) toPosition+    toPosition'' <- packStorableArray toPosition'+    let matrix' = realToFrac matrix+    result <- gst_buffer_add_audio_downmix_meta buffer' fromPosition'' fromChannels toPosition'' toChannels matrix'+    checkUnexpectedReturnNULL "gst_buffer_add_audio_downmix_meta" result+    result' <- (newPtr 48 AudioDownmixMeta) result+    touchManagedPtr buffer+    freeMem fromPosition''+    freeMem toPosition''+    return result'+++-- function gst_audio_reorder_channels+-- Args : [Arg {argCName = "data", argType = TCArray False (-1) 1 (TBasicType TUInt8), direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "size", argType = TBasicType TUInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "format", argType = TInterface "GstAudio" "AudioFormat", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "channels", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "from", argType = TCArray False (-1) (-1) (TInterface "GstAudio" "AudioChannelPosition"), direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "to", argType = TCArray False (-1) (-1) (TInterface "GstAudio" "AudioChannelPosition"), direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]+-- Lengths : [Arg {argCName = "size", argType = TBasicType TUInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]+-- returnType : TBasicType TBoolean+-- throws : False+-- Skip return : False++foreign import ccall "gst_audio_reorder_channels" gst_audio_reorder_channels :: +    Ptr Word8 ->                            -- data : TCArray False (-1) 1 (TBasicType TUInt8)+    Word64 ->                               -- size : TBasicType TUInt64+    CUInt ->                                -- format : TInterface "GstAudio" "AudioFormat"+    Int32 ->                                -- channels : TBasicType TInt32+    Ptr CUInt ->                            -- from : TCArray False (-1) (-1) (TInterface "GstAudio" "AudioChannelPosition")+    Ptr CUInt ->                            -- to : TCArray False (-1) (-1) (TInterface "GstAudio" "AudioChannelPosition")+    IO CInt+++audioReorderChannels ::+    (MonadIO m) =>+    ByteString                              -- data_+    -> AudioFormat                          -- format+    -> Int32                                -- channels+    -> Ptr CUInt                            -- from+    -> Ptr CUInt                            -- to+    -> m Bool                               -- result+audioReorderChannels data_ format channels from to = liftIO $ do+    let size = fromIntegral $ B.length data_+    data_' <- packByteString data_+    let format' = (fromIntegral . fromEnum) format+    result <- gst_audio_reorder_channels data_' size format' channels from to+    let result' = (/= 0) result+    freeMem data_'+    return result'+++-- function gst_audio_iec61937_payload+-- Args : [Arg {argCName = "src", argType = TCArray False (-1) 1 (TBasicType TUInt8), direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "src_n", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "dst", argType = TCArray False (-1) 3 (TBasicType TUInt8), direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "dst_n", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "spec", argType = TInterface "GstAudio" "AudioRingBufferSpec", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "endianness", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]+-- Lengths : [Arg {argCName = "dst_n", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "src_n", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]+-- returnType : TBasicType TBoolean+-- throws : False+-- Skip return : False++foreign import ccall "gst_audio_iec61937_payload" gst_audio_iec61937_payload :: +    Ptr Word8 ->                            -- src : TCArray False (-1) 1 (TBasicType TUInt8)+    Word32 ->                               -- src_n : TBasicType TUInt32+    Ptr Word8 ->                            -- dst : TCArray False (-1) 3 (TBasicType TUInt8)+    Word32 ->                               -- dst_n : TBasicType TUInt32+    Ptr AudioRingBufferSpec ->              -- spec : TInterface "GstAudio" "AudioRingBufferSpec"+    Int32 ->                                -- endianness : TBasicType TInt32+    IO CInt+++audioIec61937Payload ::+    (MonadIO m) =>+    ByteString                              -- src+    -> ByteString                           -- dst+    -> AudioRingBufferSpec                  -- spec+    -> Int32                                -- endianness+    -> m Bool                               -- result+audioIec61937Payload src dst spec endianness = liftIO $ do+    let dstN = fromIntegral $ B.length dst+    let srcN = fromIntegral $ B.length src+    src' <- packByteString src+    dst' <- packByteString dst+    let spec' = unsafeManagedPtrGetPtr spec+    result <- gst_audio_iec61937_payload src' srcN dst' dstN spec' endianness+    let result' = (/= 0) result+    touchManagedPtr spec+    freeMem src'+    freeMem dst'+    return result'+++-- function gst_audio_iec61937_frame_size+-- Args : [Arg {argCName = "spec", argType = TInterface "GstAudio" "AudioRingBufferSpec", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]+-- Lengths : []+-- returnType : TBasicType TUInt32+-- throws : False+-- Skip return : False++foreign import ccall "gst_audio_iec61937_frame_size" gst_audio_iec61937_frame_size :: +    Ptr AudioRingBufferSpec ->              -- spec : TInterface "GstAudio" "AudioRingBufferSpec"+    IO Word32+++audioIec61937FrameSize ::+    (MonadIO m) =>+    AudioRingBufferSpec                     -- spec+    -> m Word32                             -- result+audioIec61937FrameSize spec = liftIO $ do+    let spec' = unsafeManagedPtrGetPtr spec+    result <- gst_audio_iec61937_frame_size spec'+    touchManagedPtr spec+    return result+++-- function gst_audio_get_channel_reorder_map+-- Args : [Arg {argCName = "channels", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "from", argType = TCArray False (-1) (-1) (TInterface "GstAudio" "AudioChannelPosition"), direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "to", argType = TCArray False (-1) (-1) (TInterface "GstAudio" "AudioChannelPosition"), direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "reorder_map", argType = TCArray False (-1) (-1) (TBasicType TInt32), direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]+-- Lengths : []+-- returnType : TBasicType TBoolean+-- throws : False+-- Skip return : False++foreign import ccall "gst_audio_get_channel_reorder_map" gst_audio_get_channel_reorder_map :: +    Int32 ->                                -- channels : TBasicType TInt32+    Ptr CUInt ->                            -- from : TCArray False (-1) (-1) (TInterface "GstAudio" "AudioChannelPosition")+    Ptr CUInt ->                            -- to : TCArray False (-1) (-1) (TInterface "GstAudio" "AudioChannelPosition")+    Ptr Int32 ->                            -- reorder_map : TCArray False (-1) (-1) (TBasicType TInt32)+    IO CInt+++audioGetChannelReorderMap ::+    (MonadIO m) =>+    Int32                                   -- channels+    -> Ptr CUInt                            -- from+    -> Ptr CUInt                            -- to+    -> Ptr Int32                            -- reorderMap+    -> m Bool                               -- result+audioGetChannelReorderMap channels from to reorderMap = liftIO $ do+    result <- gst_audio_get_channel_reorder_map channels from to reorderMap+    let result' = (/= 0) result+    return result'+++-- function gst_audio_format_info_get_type+-- Args : []+-- Lengths : []+-- returnType : TBasicType TGType+-- throws : False+-- Skip return : False++foreign import ccall "gst_audio_format_info_get_type" gst_audio_format_info_get_type :: +    IO CGType+++audioFormatInfoGetType ::+    (MonadIO m) =>+    m GType                                 -- result+audioFormatInfoGetType  = liftIO $ do+    result <- gst_audio_format_info_get_type+    let result' = GType result+    return result'+++-- function gst_audio_downmix_meta_api_get_type+-- Args : []+-- Lengths : []+-- returnType : TBasicType TGType+-- throws : False+-- Skip return : False++foreign import ccall "gst_audio_downmix_meta_api_get_type" gst_audio_downmix_meta_api_get_type :: +    IO CGType+++audioDownmixMetaApiGetType ::+    (MonadIO m) =>+    m GType                                 -- result+audioDownmixMetaApiGetType  = liftIO $ do+    result <- gst_audio_downmix_meta_api_get_type+    let result' = GType result+    return result'+++-- function gst_audio_check_valid_channel_positions+-- Args : [Arg {argCName = "position", argType = TCArray False (-1) 1 (TInterface "GstAudio" "AudioChannelPosition"), direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "channels", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "force_order", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]+-- Lengths : [Arg {argCName = "channels", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]+-- returnType : TBasicType TBoolean+-- throws : False+-- Skip return : False++foreign import ccall "gst_audio_check_valid_channel_positions" gst_audio_check_valid_channel_positions :: +    Ptr CUInt ->                            -- position : TCArray False (-1) 1 (TInterface "GstAudio" "AudioChannelPosition")+    Int32 ->                                -- channels : TBasicType TInt32+    CInt ->                                 -- force_order : TBasicType TBoolean+    IO CInt+++audioCheckValidChannelPositions ::+    (MonadIO m) =>+    [AudioChannelPosition]                  -- position+    -> Bool                                 -- forceOrder+    -> m Bool                               -- result+audioCheckValidChannelPositions position forceOrder = liftIO $ do+    let channels = fromIntegral $ length position+    let position' = map (fromIntegral . fromEnum) position+    position'' <- packStorableArray position'+    let forceOrder' = (fromIntegral . fromEnum) forceOrder+    result <- gst_audio_check_valid_channel_positions position'' channels forceOrder'+    let result' = (/= 0) result+    freeMem position''+    return result'+++-- function gst_audio_channel_positions_to_valid_order+-- Args : [Arg {argCName = "position", argType = TCArray False (-1) 1 (TInterface "GstAudio" "AudioChannelPosition"), direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "channels", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]+-- Lengths : [Arg {argCName = "channels", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]+-- returnType : TBasicType TBoolean+-- throws : False+-- Skip return : False++foreign import ccall "gst_audio_channel_positions_to_valid_order" gst_audio_channel_positions_to_valid_order :: +    Ptr CUInt ->                            -- position : TCArray False (-1) 1 (TInterface "GstAudio" "AudioChannelPosition")+    Int32 ->                                -- channels : TBasicType TInt32+    IO CInt+++audioChannelPositionsToValidOrder ::+    (MonadIO m) =>+    [AudioChannelPosition]                  -- position+    -> m Bool                               -- result+audioChannelPositionsToValidOrder position = liftIO $ do+    let channels = fromIntegral $ length position+    let position' = map (fromIntegral . fromEnum) position+    position'' <- packStorableArray position'+    result <- gst_audio_channel_positions_to_valid_order position'' channels+    let result' = (/= 0) result+    freeMem position''+    return result'+++-- function gst_audio_channel_positions_to_mask+-- Args : [Arg {argCName = "position", argType = TCArray False (-1) 1 (TInterface "GstAudio" "AudioChannelPosition"), direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "channels", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "force_order", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "channel_mask", argType = TCArray False (-1) (-1) (TBasicType TUInt64), direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]+-- Lengths : [Arg {argCName = "channels", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]+-- returnType : TBasicType TBoolean+-- throws : False+-- Skip return : False++foreign import ccall "gst_audio_channel_positions_to_mask" gst_audio_channel_positions_to_mask :: +    Ptr CUInt ->                            -- position : TCArray False (-1) 1 (TInterface "GstAudio" "AudioChannelPosition")+    Int32 ->                                -- channels : TBasicType TInt32+    CInt ->                                 -- force_order : TBasicType TBoolean+    Ptr Word64 ->                           -- channel_mask : TCArray False (-1) (-1) (TBasicType TUInt64)+    IO CInt+++audioChannelPositionsToMask ::+    (MonadIO m) =>+    [AudioChannelPosition]                  -- position+    -> Bool                                 -- forceOrder+    -> Ptr Word64                           -- channelMask+    -> m Bool                               -- result+audioChannelPositionsToMask position forceOrder channelMask = liftIO $ do+    let channels = fromIntegral $ length position+    let position' = map (fromIntegral . fromEnum) position+    position'' <- packStorableArray position'+    let forceOrder' = (fromIntegral . fromEnum) forceOrder+    result <- gst_audio_channel_positions_to_mask position'' channels forceOrder' channelMask+    let result' = (/= 0) result+    freeMem position''+    return result'+++-- function gst_audio_channel_positions_from_mask+-- Args : [Arg {argCName = "channels", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "channel_mask", argType = TBasicType TUInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "position", argType = TCArray False (-1) 0 (TInterface "GstAudio" "AudioChannelPosition"), direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]+-- Lengths : [Arg {argCName = "channels", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]+-- returnType : TBasicType TBoolean+-- throws : False+-- Skip return : False++foreign import ccall "gst_audio_channel_positions_from_mask" gst_audio_channel_positions_from_mask :: +    Int32 ->                                -- channels : TBasicType TInt32+    Word64 ->                               -- channel_mask : TBasicType TUInt64+    Ptr CUInt ->                            -- position : TCArray False (-1) 0 (TInterface "GstAudio" "AudioChannelPosition")+    IO CInt+++audioChannelPositionsFromMask ::+    (MonadIO m) =>+    Word64                                  -- channelMask+    -> [AudioChannelPosition]               -- position+    -> m Bool                               -- result+audioChannelPositionsFromMask channelMask position = liftIO $ do+    let channels = fromIntegral $ length position+    let position' = map (fromIntegral . fromEnum) position+    position'' <- packStorableArray position'+    result <- gst_audio_channel_positions_from_mask channels channelMask position''+    let result' = (/= 0) result+    freeMem position''+    return result'+++-- function gst_audio_buffer_reorder_channels+-- Args : [Arg {argCName = "buffer", argType = TInterface "Gst" "Buffer", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "format", argType = TInterface "GstAudio" "AudioFormat", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "channels", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "from", argType = TCArray False (-1) (-1) (TInterface "GstAudio" "AudioChannelPosition"), direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "to", argType = TCArray False (-1) (-1) (TInterface "GstAudio" "AudioChannelPosition"), direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]+-- Lengths : []+-- returnType : TBasicType TBoolean+-- throws : False+-- Skip return : False++foreign import ccall "gst_audio_buffer_reorder_channels" gst_audio_buffer_reorder_channels :: +    Ptr Gst.Buffer ->                       -- buffer : TInterface "Gst" "Buffer"+    CUInt ->                                -- format : TInterface "GstAudio" "AudioFormat"+    Int32 ->                                -- channels : TBasicType TInt32+    Ptr CUInt ->                            -- from : TCArray False (-1) (-1) (TInterface "GstAudio" "AudioChannelPosition")+    Ptr CUInt ->                            -- to : TCArray False (-1) (-1) (TInterface "GstAudio" "AudioChannelPosition")+    IO CInt+++audioBufferReorderChannels ::+    (MonadIO m) =>+    Gst.Buffer                              -- buffer+    -> AudioFormat                          -- format+    -> Int32                                -- channels+    -> Ptr CUInt                            -- from+    -> Ptr CUInt                            -- to+    -> m Bool                               -- result+audioBufferReorderChannels buffer format channels from to = liftIO $ do+    let buffer' = unsafeManagedPtrGetPtr buffer+    let format' = (fromIntegral . fromEnum) format+    result <- gst_audio_buffer_reorder_channels buffer' format' channels from to+    let result' = (/= 0) result+    touchManagedPtr buffer+    return result'+++-- function gst_audio_buffer_clip+-- Args : [Arg {argCName = "buffer", argType = TInterface "Gst" "Buffer", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything},Arg {argCName = "segment", argType = TInterface "Gst" "Segment", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "rate", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "bpf", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]+-- Lengths : []+-- returnType : TInterface "Gst" "Buffer"+-- throws : False+-- Skip return : False++foreign import ccall "gst_audio_buffer_clip" gst_audio_buffer_clip :: +    Ptr Gst.Buffer ->                       -- buffer : TInterface "Gst" "Buffer"+    Ptr Gst.Segment ->                      -- segment : TInterface "Gst" "Segment"+    Int32 ->                                -- rate : TBasicType TInt32+    Int32 ->                                -- bpf : TBasicType TInt32+    IO (Ptr Gst.Buffer)+++audioBufferClip ::+    (MonadIO m) =>+    Gst.Buffer                              -- buffer+    -> Gst.Segment                          -- segment+    -> Int32                                -- rate+    -> Int32                                -- bpf+    -> m Gst.Buffer                         -- result+audioBufferClip buffer segment rate bpf = liftIO $ do+    buffer' <- copyBoxed buffer+    let segment' = unsafeManagedPtrGetPtr segment+    result <- gst_audio_buffer_clip buffer' segment' rate bpf+    checkUnexpectedReturnNULL "gst_audio_buffer_clip" result+    result' <- (wrapBoxed Gst.Buffer) result+    touchManagedPtr buffer+    touchManagedPtr segment+    return result'+++
+ GI/GstAudio/Interfaces.hs view
@@ -0,0 +1,27 @@+++{- |+Copyright  : Will Thompson, Iñaki García Etxebarria and Jonas Platte+License    : LGPL-2.1+Maintainer : Iñaki García Etxebarria (garetxe@gmail.com)+-}++module GI.GstAudio.Interfaces+    (     module GI.GstAudio.Interfaces.StreamVolume,+++    ) where++import GI.GstAudio.Interfaces.StreamVolume++import Prelude ()+import Data.GI.Base.ShortPrelude++import qualified Data.Text as T+import qualified Data.ByteString.Char8 as B+import qualified Data.Map as Map++import GI.GstAudio.Types+import GI.GstAudio.Callbacks++
+ GI/GstAudio/Interfaces/StreamVolume.hs view
@@ -0,0 +1,341 @@+++{- |+Copyright  : Will Thompson, Iñaki García Etxebarria and Jonas Platte+License    : LGPL-2.1+Maintainer : Iñaki García Etxebarria (garetxe@gmail.com)+-}++module GI.GstAudio.Interfaces.StreamVolume+    ( ++-- * Exported types+    StreamVolume(..)                        ,+    noStreamVolume                          ,+    StreamVolumeK                           ,+    toStreamVolume                          ,+++ -- * Methods+-- ** streamVolumeConvertVolume+    streamVolumeConvertVolume               ,+++-- ** streamVolumeGetMute+    StreamVolumeGetMuteMethodInfo           ,+    streamVolumeGetMute                     ,+++-- ** streamVolumeGetVolume+    StreamVolumeGetVolumeMethodInfo         ,+    streamVolumeGetVolume                   ,+++-- ** streamVolumeSetMute+    StreamVolumeSetMuteMethodInfo           ,+    streamVolumeSetMute                     ,+++-- ** streamVolumeSetVolume+    StreamVolumeSetVolumeMethodInfo         ,+    streamVolumeSetVolume                   ,+++++ -- * Properties+-- ** Mute+    StreamVolumeMutePropertyInfo            ,+    constructStreamVolumeMute               ,+    getStreamVolumeMute                     ,+    setStreamVolumeMute                     ,+++-- ** Volume+    StreamVolumeVolumePropertyInfo          ,+    constructStreamVolumeVolume             ,+    getStreamVolumeVolume                   ,+    setStreamVolumeVolume                   ,+++++    ) where++import Prelude ()+import Data.GI.Base.ShortPrelude++import qualified Data.Text as T+import qualified Data.ByteString.Char8 as B+import qualified Data.Map as Map++import GI.GstAudio.Types+import GI.GstAudio.Callbacks+import qualified GI.GObject as GObject++-- interface StreamVolume ++newtype StreamVolume = StreamVolume (ForeignPtr StreamVolume)+noStreamVolume :: Maybe StreamVolume+noStreamVolume = Nothing++type family ResolveStreamVolumeMethod (t :: Symbol) (o :: *) :: * where+    ResolveStreamVolumeMethod "bindProperty" o = GObject.ObjectBindPropertyMethodInfo+    ResolveStreamVolumeMethod "bindPropertyFull" o = GObject.ObjectBindPropertyFullMethodInfo+    ResolveStreamVolumeMethod "forceFloating" o = GObject.ObjectForceFloatingMethodInfo+    ResolveStreamVolumeMethod "freezeNotify" o = GObject.ObjectFreezeNotifyMethodInfo+    ResolveStreamVolumeMethod "isFloating" o = GObject.ObjectIsFloatingMethodInfo+    ResolveStreamVolumeMethod "notify" o = GObject.ObjectNotifyMethodInfo+    ResolveStreamVolumeMethod "notifyByPspec" o = GObject.ObjectNotifyByPspecMethodInfo+    ResolveStreamVolumeMethod "ref" o = GObject.ObjectRefMethodInfo+    ResolveStreamVolumeMethod "refSink" o = GObject.ObjectRefSinkMethodInfo+    ResolveStreamVolumeMethod "replaceData" o = GObject.ObjectReplaceDataMethodInfo+    ResolveStreamVolumeMethod "replaceQdata" o = GObject.ObjectReplaceQdataMethodInfo+    ResolveStreamVolumeMethod "runDispose" o = GObject.ObjectRunDisposeMethodInfo+    ResolveStreamVolumeMethod "stealData" o = GObject.ObjectStealDataMethodInfo+    ResolveStreamVolumeMethod "stealQdata" o = GObject.ObjectStealQdataMethodInfo+    ResolveStreamVolumeMethod "thawNotify" o = GObject.ObjectThawNotifyMethodInfo+    ResolveStreamVolumeMethod "unref" o = GObject.ObjectUnrefMethodInfo+    ResolveStreamVolumeMethod "watchClosure" o = GObject.ObjectWatchClosureMethodInfo+    ResolveStreamVolumeMethod "getData" o = GObject.ObjectGetDataMethodInfo+    ResolveStreamVolumeMethod "getMute" o = StreamVolumeGetMuteMethodInfo+    ResolveStreamVolumeMethod "getProperty" o = GObject.ObjectGetPropertyMethodInfo+    ResolveStreamVolumeMethod "getQdata" o = GObject.ObjectGetQdataMethodInfo+    ResolveStreamVolumeMethod "getVolume" o = StreamVolumeGetVolumeMethodInfo+    ResolveStreamVolumeMethod "setData" o = GObject.ObjectSetDataMethodInfo+    ResolveStreamVolumeMethod "setMute" o = StreamVolumeSetMuteMethodInfo+    ResolveStreamVolumeMethod "setProperty" o = GObject.ObjectSetPropertyMethodInfo+    ResolveStreamVolumeMethod "setVolume" o = StreamVolumeSetVolumeMethodInfo+    ResolveStreamVolumeMethod l o = MethodResolutionFailed l o++instance (info ~ ResolveStreamVolumeMethod t StreamVolume, MethodInfo info StreamVolume p) => IsLabelProxy t (StreamVolume -> p) where+    fromLabelProxy _ = overloadedMethod (MethodProxy :: MethodProxy info)++#if MIN_VERSION_base(4,9,0)+instance (info ~ ResolveStreamVolumeMethod t StreamVolume, MethodInfo info StreamVolume p) => IsLabel t (StreamVolume -> p) where+    fromLabel _ = overloadedMethod (MethodProxy :: MethodProxy info)+#endif++-- VVV Prop "mute"+   -- Type: TBasicType TBoolean+   -- Flags: [PropertyReadable,PropertyWritable]++getStreamVolumeMute :: (MonadIO m, StreamVolumeK o) => o -> m Bool+getStreamVolumeMute obj = liftIO $ getObjectPropertyBool obj "mute"++setStreamVolumeMute :: (MonadIO m, StreamVolumeK o) => o -> Bool -> m ()+setStreamVolumeMute obj val = liftIO $ setObjectPropertyBool obj "mute" val++constructStreamVolumeMute :: Bool -> IO ([Char], GValue)+constructStreamVolumeMute val = constructObjectPropertyBool "mute" val++data StreamVolumeMutePropertyInfo+instance AttrInfo StreamVolumeMutePropertyInfo where+    type AttrAllowedOps StreamVolumeMutePropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet]+    type AttrSetTypeConstraint StreamVolumeMutePropertyInfo = (~) Bool+    type AttrBaseTypeConstraint StreamVolumeMutePropertyInfo = StreamVolumeK+    type AttrGetType StreamVolumeMutePropertyInfo = Bool+    type AttrLabel StreamVolumeMutePropertyInfo = "mute"+    attrGet _ = getStreamVolumeMute+    attrSet _ = setStreamVolumeMute+    attrConstruct _ = constructStreamVolumeMute++-- VVV Prop "volume"+   -- Type: TBasicType TDouble+   -- Flags: [PropertyReadable,PropertyWritable]++getStreamVolumeVolume :: (MonadIO m, StreamVolumeK o) => o -> m Double+getStreamVolumeVolume obj = liftIO $ getObjectPropertyDouble obj "volume"++setStreamVolumeVolume :: (MonadIO m, StreamVolumeK o) => o -> Double -> m ()+setStreamVolumeVolume obj val = liftIO $ setObjectPropertyDouble obj "volume" val++constructStreamVolumeVolume :: Double -> IO ([Char], GValue)+constructStreamVolumeVolume val = constructObjectPropertyDouble "volume" val++data StreamVolumeVolumePropertyInfo+instance AttrInfo StreamVolumeVolumePropertyInfo where+    type AttrAllowedOps StreamVolumeVolumePropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet]+    type AttrSetTypeConstraint StreamVolumeVolumePropertyInfo = (~) Double+    type AttrBaseTypeConstraint StreamVolumeVolumePropertyInfo = StreamVolumeK+    type AttrGetType StreamVolumeVolumePropertyInfo = Double+    type AttrLabel StreamVolumeVolumePropertyInfo = "volume"+    attrGet _ = getStreamVolumeVolume+    attrSet _ = setStreamVolumeVolume+    attrConstruct _ = constructStreamVolumeVolume++type instance AttributeList StreamVolume = StreamVolumeAttributeList+type StreamVolumeAttributeList = ('[ '("mute", StreamVolumeMutePropertyInfo), '("volume", StreamVolumeVolumePropertyInfo)] :: [(Symbol, *)])++type instance SignalList StreamVolume = StreamVolumeSignalList+type StreamVolumeSignalList = ('[ '("notify", GObject.ObjectNotifySignalInfo)] :: [(Symbol, *)])++foreign import ccall "gst_stream_volume_get_type"+    c_gst_stream_volume_get_type :: IO GType++type instance ParentTypes StreamVolume = StreamVolumeParentTypes+type StreamVolumeParentTypes = '[GObject.Object]++instance GObject StreamVolume where+    gobjectIsInitiallyUnowned _ = False+    gobjectType _ = c_gst_stream_volume_get_type+    ++class GObject o => StreamVolumeK o+instance (GObject o, IsDescendantOf StreamVolume o) => StreamVolumeK o++toStreamVolume :: StreamVolumeK o => o -> IO StreamVolume+toStreamVolume = unsafeCastTo StreamVolume++-- method StreamVolume::get_mute+-- method type : OrdinaryMethod+-- Args : [Arg {argCName = "_obj", argType = TInterface "GstAudio" "StreamVolume", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]+-- Lengths : []+-- returnType : TBasicType TBoolean+-- throws : False+-- Skip return : False++foreign import ccall "gst_stream_volume_get_mute" gst_stream_volume_get_mute :: +    Ptr StreamVolume ->                     -- _obj : TInterface "GstAudio" "StreamVolume"+    IO CInt+++streamVolumeGetMute ::+    (MonadIO m, StreamVolumeK a) =>+    a                                       -- _obj+    -> m Bool                               -- result+streamVolumeGetMute _obj = liftIO $ do+    let _obj' = unsafeManagedPtrCastPtr _obj+    result <- gst_stream_volume_get_mute _obj'+    let result' = (/= 0) result+    touchManagedPtr _obj+    return result'++data StreamVolumeGetMuteMethodInfo+instance (signature ~ (m Bool), MonadIO m, StreamVolumeK a) => MethodInfo StreamVolumeGetMuteMethodInfo a signature where+    overloadedMethod _ = streamVolumeGetMute++-- method StreamVolume::get_volume+-- method type : OrdinaryMethod+-- Args : [Arg {argCName = "_obj", argType = TInterface "GstAudio" "StreamVolume", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "format", argType = TInterface "GstAudio" "StreamVolumeFormat", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]+-- Lengths : []+-- returnType : TBasicType TDouble+-- throws : False+-- Skip return : False++foreign import ccall "gst_stream_volume_get_volume" gst_stream_volume_get_volume :: +    Ptr StreamVolume ->                     -- _obj : TInterface "GstAudio" "StreamVolume"+    CUInt ->                                -- format : TInterface "GstAudio" "StreamVolumeFormat"+    IO CDouble+++streamVolumeGetVolume ::+    (MonadIO m, StreamVolumeK a) =>+    a                                       -- _obj+    -> StreamVolumeFormat                   -- format+    -> m Double                             -- result+streamVolumeGetVolume _obj format = liftIO $ do+    let _obj' = unsafeManagedPtrCastPtr _obj+    let format' = (fromIntegral . fromEnum) format+    result <- gst_stream_volume_get_volume _obj' format'+    let result' = realToFrac result+    touchManagedPtr _obj+    return result'++data StreamVolumeGetVolumeMethodInfo+instance (signature ~ (StreamVolumeFormat -> m Double), MonadIO m, StreamVolumeK a) => MethodInfo StreamVolumeGetVolumeMethodInfo a signature where+    overloadedMethod _ = streamVolumeGetVolume++-- method StreamVolume::set_mute+-- method type : OrdinaryMethod+-- Args : [Arg {argCName = "_obj", argType = TInterface "GstAudio" "StreamVolume", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "mute", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]+-- Lengths : []+-- returnType : TBasicType TVoid+-- throws : False+-- Skip return : False++foreign import ccall "gst_stream_volume_set_mute" gst_stream_volume_set_mute :: +    Ptr StreamVolume ->                     -- _obj : TInterface "GstAudio" "StreamVolume"+    CInt ->                                 -- mute : TBasicType TBoolean+    IO ()+++streamVolumeSetMute ::+    (MonadIO m, StreamVolumeK a) =>+    a                                       -- _obj+    -> Bool                                 -- mute+    -> m ()                                 -- result+streamVolumeSetMute _obj mute = liftIO $ do+    let _obj' = unsafeManagedPtrCastPtr _obj+    let mute' = (fromIntegral . fromEnum) mute+    gst_stream_volume_set_mute _obj' mute'+    touchManagedPtr _obj+    return ()++data StreamVolumeSetMuteMethodInfo+instance (signature ~ (Bool -> m ()), MonadIO m, StreamVolumeK a) => MethodInfo StreamVolumeSetMuteMethodInfo a signature where+    overloadedMethod _ = streamVolumeSetMute++-- method StreamVolume::set_volume+-- method type : OrdinaryMethod+-- Args : [Arg {argCName = "_obj", argType = TInterface "GstAudio" "StreamVolume", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "format", argType = TInterface "GstAudio" "StreamVolumeFormat", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "val", argType = TBasicType TDouble, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]+-- Lengths : []+-- returnType : TBasicType TVoid+-- throws : False+-- Skip return : False++foreign import ccall "gst_stream_volume_set_volume" gst_stream_volume_set_volume :: +    Ptr StreamVolume ->                     -- _obj : TInterface "GstAudio" "StreamVolume"+    CUInt ->                                -- format : TInterface "GstAudio" "StreamVolumeFormat"+    CDouble ->                              -- val : TBasicType TDouble+    IO ()+++streamVolumeSetVolume ::+    (MonadIO m, StreamVolumeK a) =>+    a                                       -- _obj+    -> StreamVolumeFormat                   -- format+    -> Double                               -- val+    -> m ()                                 -- result+streamVolumeSetVolume _obj format val = liftIO $ do+    let _obj' = unsafeManagedPtrCastPtr _obj+    let format' = (fromIntegral . fromEnum) format+    let val' = realToFrac val+    gst_stream_volume_set_volume _obj' format' val'+    touchManagedPtr _obj+    return ()++data StreamVolumeSetVolumeMethodInfo+instance (signature ~ (StreamVolumeFormat -> Double -> m ()), MonadIO m, StreamVolumeK a) => MethodInfo StreamVolumeSetVolumeMethodInfo a signature where+    overloadedMethod _ = streamVolumeSetVolume++-- method StreamVolume::convert_volume+-- method type : MemberFunction+-- Args : [Arg {argCName = "from", argType = TInterface "GstAudio" "StreamVolumeFormat", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "to", argType = TInterface "GstAudio" "StreamVolumeFormat", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "val", argType = TBasicType TDouble, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]+-- Lengths : []+-- returnType : TBasicType TDouble+-- throws : False+-- Skip return : False++foreign import ccall "gst_stream_volume_convert_volume" gst_stream_volume_convert_volume :: +    CUInt ->                                -- from : TInterface "GstAudio" "StreamVolumeFormat"+    CUInt ->                                -- to : TInterface "GstAudio" "StreamVolumeFormat"+    CDouble ->                              -- val : TBasicType TDouble+    IO CDouble+++streamVolumeConvertVolume ::+    (MonadIO m) =>+    StreamVolumeFormat                      -- from+    -> StreamVolumeFormat                   -- to+    -> Double                               -- val+    -> m Double                             -- result+streamVolumeConvertVolume from to val = liftIO $ do+    let from' = (fromIntegral . fromEnum) from+    let to' = (fromIntegral . fromEnum) to+    let val' = realToFrac val+    result <- gst_stream_volume_convert_volume from' to' val'+    let result' = realToFrac result+    return result'++
+ GI/GstAudio/Interfaces/StreamVolume.hs-boot view
@@ -0,0 +1,19 @@+module GI.GstAudio.Interfaces.StreamVolume where++import Prelude ()+import Data.GI.Base.ShortPrelude++import qualified Data.Text as T+import qualified Data.ByteString.Char8 as B+import qualified Data.Map as Map++newtype StreamVolume = StreamVolume (ForeignPtr StreamVolume)+data StreamVolumeMutePropertyInfo+data StreamVolumeVolumePropertyInfo+instance GObject StreamVolume where+class GObject o => StreamVolumeK o+instance (GObject o, IsDescendantOf StreamVolume o) => StreamVolumeK o+data StreamVolumeGetMuteMethodInfo+data StreamVolumeGetVolumeMethodInfo+data StreamVolumeSetMuteMethodInfo+data StreamVolumeSetVolumeMethodInfo
+ GI/GstAudio/Objects.hs view
@@ -0,0 +1,45 @@+++{- |+Copyright  : Will Thompson, Iñaki García Etxebarria and Jonas Platte+License    : LGPL-2.1+Maintainer : Iñaki García Etxebarria (garetxe@gmail.com)+-}++module GI.GstAudio.Objects+    (     module GI.GstAudio.Objects.AudioBaseSink,+    module GI.GstAudio.Objects.AudioBaseSrc ,+    module GI.GstAudio.Objects.AudioCdSrc   ,+    module GI.GstAudio.Objects.AudioClock   ,+    module GI.GstAudio.Objects.AudioDecoder ,+    module GI.GstAudio.Objects.AudioEncoder ,+    module GI.GstAudio.Objects.AudioFilter  ,+    module GI.GstAudio.Objects.AudioRingBuffer,+    module GI.GstAudio.Objects.AudioSink    ,+    module GI.GstAudio.Objects.AudioSrc     ,+++    ) where++import GI.GstAudio.Objects.AudioBaseSink+import GI.GstAudio.Objects.AudioBaseSrc+import GI.GstAudio.Objects.AudioCdSrc+import GI.GstAudio.Objects.AudioClock+import GI.GstAudio.Objects.AudioDecoder+import GI.GstAudio.Objects.AudioEncoder+import GI.GstAudio.Objects.AudioFilter+import GI.GstAudio.Objects.AudioRingBuffer+import GI.GstAudio.Objects.AudioSink+import GI.GstAudio.Objects.AudioSrc++import Prelude ()+import Data.GI.Base.ShortPrelude++import qualified Data.Text as T+import qualified Data.ByteString.Char8 as B+import qualified Data.Map as Map++import GI.GstAudio.Types+import GI.GstAudio.Callbacks++
+ GI/GstAudio/Objects/AudioBaseSink.hs view
@@ -0,0 +1,898 @@+++{- |+Copyright  : Will Thompson, Iñaki García Etxebarria and Jonas Platte+License    : LGPL-2.1+Maintainer : Iñaki García Etxebarria (garetxe@gmail.com)+-}++module GI.GstAudio.Objects.AudioBaseSink+    ( ++-- * Exported types+    AudioBaseSink(..)                       ,+    AudioBaseSinkK                          ,+    toAudioBaseSink                         ,+    noAudioBaseSink                         ,+++ -- * Methods+-- ** audioBaseSinkCreateRingbuffer+    AudioBaseSinkCreateRingbufferMethodInfo ,+    audioBaseSinkCreateRingbuffer           ,+++-- ** audioBaseSinkGetAlignmentThreshold+    AudioBaseSinkGetAlignmentThresholdMethodInfo,+    audioBaseSinkGetAlignmentThreshold      ,+++-- ** audioBaseSinkGetDiscontWait+    AudioBaseSinkGetDiscontWaitMethodInfo   ,+    audioBaseSinkGetDiscontWait             ,+++-- ** audioBaseSinkGetDriftTolerance+    AudioBaseSinkGetDriftToleranceMethodInfo,+    audioBaseSinkGetDriftTolerance          ,+++-- ** audioBaseSinkGetProvideClock+    AudioBaseSinkGetProvideClockMethodInfo  ,+    audioBaseSinkGetProvideClock            ,+++-- ** audioBaseSinkGetSlaveMethod+    AudioBaseSinkGetSlaveMethodMethodInfo   ,+    audioBaseSinkGetSlaveMethod             ,+++-- ** audioBaseSinkReportDeviceFailure+    AudioBaseSinkReportDeviceFailureMethodInfo,+    audioBaseSinkReportDeviceFailure        ,+++-- ** audioBaseSinkSetAlignmentThreshold+    AudioBaseSinkSetAlignmentThresholdMethodInfo,+    audioBaseSinkSetAlignmentThreshold      ,+++-- ** audioBaseSinkSetCustomSlavingCallback+    AudioBaseSinkSetCustomSlavingCallbackMethodInfo,+    audioBaseSinkSetCustomSlavingCallback   ,+++-- ** audioBaseSinkSetDiscontWait+    AudioBaseSinkSetDiscontWaitMethodInfo   ,+    audioBaseSinkSetDiscontWait             ,+++-- ** audioBaseSinkSetDriftTolerance+    AudioBaseSinkSetDriftToleranceMethodInfo,+    audioBaseSinkSetDriftTolerance          ,+++-- ** audioBaseSinkSetProvideClock+    AudioBaseSinkSetProvideClockMethodInfo  ,+    audioBaseSinkSetProvideClock            ,+++-- ** audioBaseSinkSetSlaveMethod+    AudioBaseSinkSetSlaveMethodMethodInfo   ,+    audioBaseSinkSetSlaveMethod             ,+++++ -- * Properties+-- ** AlignmentThreshold+    AudioBaseSinkAlignmentThresholdPropertyInfo,+    constructAudioBaseSinkAlignmentThreshold,+    getAudioBaseSinkAlignmentThreshold      ,+    setAudioBaseSinkAlignmentThreshold      ,+++-- ** BufferTime+    AudioBaseSinkBufferTimePropertyInfo     ,+    constructAudioBaseSinkBufferTime        ,+    getAudioBaseSinkBufferTime              ,+    setAudioBaseSinkBufferTime              ,+++-- ** CanActivatePull+    AudioBaseSinkCanActivatePullPropertyInfo,+    constructAudioBaseSinkCanActivatePull   ,+    getAudioBaseSinkCanActivatePull         ,+    setAudioBaseSinkCanActivatePull         ,+++-- ** DiscontWait+    AudioBaseSinkDiscontWaitPropertyInfo    ,+    constructAudioBaseSinkDiscontWait       ,+    getAudioBaseSinkDiscontWait             ,+    setAudioBaseSinkDiscontWait             ,+++-- ** DriftTolerance+    AudioBaseSinkDriftTolerancePropertyInfo ,+    constructAudioBaseSinkDriftTolerance    ,+    getAudioBaseSinkDriftTolerance          ,+    setAudioBaseSinkDriftTolerance          ,+++-- ** LatencyTime+    AudioBaseSinkLatencyTimePropertyInfo    ,+    constructAudioBaseSinkLatencyTime       ,+    getAudioBaseSinkLatencyTime             ,+    setAudioBaseSinkLatencyTime             ,+++-- ** ProvideClock+    AudioBaseSinkProvideClockPropertyInfo   ,+    constructAudioBaseSinkProvideClock      ,+    getAudioBaseSinkProvideClock            ,+    setAudioBaseSinkProvideClock            ,+++-- ** SlaveMethod+    AudioBaseSinkSlaveMethodPropertyInfo    ,+    constructAudioBaseSinkSlaveMethod       ,+    getAudioBaseSinkSlaveMethod             ,+    setAudioBaseSinkSlaveMethod             ,+++++    ) where++import Prelude ()+import Data.GI.Base.ShortPrelude++import qualified Data.Text as T+import qualified Data.ByteString.Char8 as B+import qualified Data.Map as Map++import GI.GstAudio.Types+import GI.GstAudio.Callbacks+import qualified GI.GLib as GLib+import qualified GI.GObject as GObject+import qualified GI.Gst as Gst+import qualified GI.GstBase as GstBase++newtype AudioBaseSink = AudioBaseSink (ForeignPtr AudioBaseSink)+foreign import ccall "gst_audio_base_sink_get_type"+    c_gst_audio_base_sink_get_type :: IO GType++type instance ParentTypes AudioBaseSink = AudioBaseSinkParentTypes+type AudioBaseSinkParentTypes = '[GstBase.BaseSink, Gst.Element, Gst.Object, GObject.Object]++instance GObject AudioBaseSink where+    gobjectIsInitiallyUnowned _ = True+    gobjectType _ = c_gst_audio_base_sink_get_type+    ++class GObject o => AudioBaseSinkK o+instance (GObject o, IsDescendantOf AudioBaseSink o) => AudioBaseSinkK o++toAudioBaseSink :: AudioBaseSinkK o => o -> IO AudioBaseSink+toAudioBaseSink = unsafeCastTo AudioBaseSink++noAudioBaseSink :: Maybe AudioBaseSink+noAudioBaseSink = Nothing++type family ResolveAudioBaseSinkMethod (t :: Symbol) (o :: *) :: * where+    ResolveAudioBaseSinkMethod "abortState" o = Gst.ElementAbortStateMethodInfo+    ResolveAudioBaseSinkMethod "addControlBinding" o = Gst.ObjectAddControlBindingMethodInfo+    ResolveAudioBaseSinkMethod "addPad" o = Gst.ElementAddPadMethodInfo+    ResolveAudioBaseSinkMethod "bindProperty" o = GObject.ObjectBindPropertyMethodInfo+    ResolveAudioBaseSinkMethod "bindPropertyFull" o = GObject.ObjectBindPropertyFullMethodInfo+    ResolveAudioBaseSinkMethod "changeState" o = Gst.ElementChangeStateMethodInfo+    ResolveAudioBaseSinkMethod "continueState" o = Gst.ElementContinueStateMethodInfo+    ResolveAudioBaseSinkMethod "createAllPads" o = Gst.ElementCreateAllPadsMethodInfo+    ResolveAudioBaseSinkMethod "createRingbuffer" o = AudioBaseSinkCreateRingbufferMethodInfo+    ResolveAudioBaseSinkMethod "defaultError" o = Gst.ObjectDefaultErrorMethodInfo+    ResolveAudioBaseSinkMethod "doPreroll" o = GstBase.BaseSinkDoPrerollMethodInfo+    ResolveAudioBaseSinkMethod "forceFloating" o = GObject.ObjectForceFloatingMethodInfo+    ResolveAudioBaseSinkMethod "freezeNotify" o = GObject.ObjectFreezeNotifyMethodInfo+    ResolveAudioBaseSinkMethod "hasActiveControlBindings" o = Gst.ObjectHasActiveControlBindingsMethodInfo+    ResolveAudioBaseSinkMethod "hasAncestor" o = Gst.ObjectHasAncestorMethodInfo+    ResolveAudioBaseSinkMethod "hasAsAncestor" o = Gst.ObjectHasAsAncestorMethodInfo+    ResolveAudioBaseSinkMethod "hasAsParent" o = Gst.ObjectHasAsParentMethodInfo+    ResolveAudioBaseSinkMethod "isAsyncEnabled" o = GstBase.BaseSinkIsAsyncEnabledMethodInfo+    ResolveAudioBaseSinkMethod "isFloating" o = GObject.ObjectIsFloatingMethodInfo+    ResolveAudioBaseSinkMethod "isLastSampleEnabled" o = GstBase.BaseSinkIsLastSampleEnabledMethodInfo+    ResolveAudioBaseSinkMethod "isLockedState" o = Gst.ElementIsLockedStateMethodInfo+    ResolveAudioBaseSinkMethod "isQosEnabled" o = GstBase.BaseSinkIsQosEnabledMethodInfo+    ResolveAudioBaseSinkMethod "iteratePads" o = Gst.ElementIteratePadsMethodInfo+    ResolveAudioBaseSinkMethod "iterateSinkPads" o = Gst.ElementIterateSinkPadsMethodInfo+    ResolveAudioBaseSinkMethod "iterateSrcPads" o = Gst.ElementIterateSrcPadsMethodInfo+    ResolveAudioBaseSinkMethod "link" o = Gst.ElementLinkMethodInfo+    ResolveAudioBaseSinkMethod "linkFiltered" o = Gst.ElementLinkFilteredMethodInfo+    ResolveAudioBaseSinkMethod "linkPads" o = Gst.ElementLinkPadsMethodInfo+    ResolveAudioBaseSinkMethod "linkPadsFiltered" o = Gst.ElementLinkPadsFilteredMethodInfo+    ResolveAudioBaseSinkMethod "linkPadsFull" o = Gst.ElementLinkPadsFullMethodInfo+    ResolveAudioBaseSinkMethod "lostState" o = Gst.ElementLostStateMethodInfo+    ResolveAudioBaseSinkMethod "messageFull" o = Gst.ElementMessageFullMethodInfo+    ResolveAudioBaseSinkMethod "noMorePads" o = Gst.ElementNoMorePadsMethodInfo+    ResolveAudioBaseSinkMethod "notify" o = GObject.ObjectNotifyMethodInfo+    ResolveAudioBaseSinkMethod "notifyByPspec" o = GObject.ObjectNotifyByPspecMethodInfo+    ResolveAudioBaseSinkMethod "postMessage" o = Gst.ElementPostMessageMethodInfo+    ResolveAudioBaseSinkMethod "provideClock" o = Gst.ElementProvideClockMethodInfo+    ResolveAudioBaseSinkMethod "query" o = Gst.ElementQueryMethodInfo+    ResolveAudioBaseSinkMethod "queryConvert" o = Gst.ElementQueryConvertMethodInfo+    ResolveAudioBaseSinkMethod "queryDuration" o = Gst.ElementQueryDurationMethodInfo+    ResolveAudioBaseSinkMethod "queryLatency" o = GstBase.BaseSinkQueryLatencyMethodInfo+    ResolveAudioBaseSinkMethod "queryPosition" o = Gst.ElementQueryPositionMethodInfo+    ResolveAudioBaseSinkMethod "refSink" o = GObject.ObjectRefSinkMethodInfo+    ResolveAudioBaseSinkMethod "releaseRequestPad" o = Gst.ElementReleaseRequestPadMethodInfo+    ResolveAudioBaseSinkMethod "removeControlBinding" o = Gst.ObjectRemoveControlBindingMethodInfo+    ResolveAudioBaseSinkMethod "removePad" o = Gst.ElementRemovePadMethodInfo+    ResolveAudioBaseSinkMethod "replaceData" o = GObject.ObjectReplaceDataMethodInfo+    ResolveAudioBaseSinkMethod "replaceQdata" o = GObject.ObjectReplaceQdataMethodInfo+    ResolveAudioBaseSinkMethod "reportDeviceFailure" o = AudioBaseSinkReportDeviceFailureMethodInfo+    ResolveAudioBaseSinkMethod "requestPad" o = Gst.ElementRequestPadMethodInfo+    ResolveAudioBaseSinkMethod "runDispose" o = GObject.ObjectRunDisposeMethodInfo+    ResolveAudioBaseSinkMethod "seek" o = Gst.ElementSeekMethodInfo+    ResolveAudioBaseSinkMethod "seekSimple" o = Gst.ElementSeekSimpleMethodInfo+    ResolveAudioBaseSinkMethod "sendEvent" o = Gst.ElementSendEventMethodInfo+    ResolveAudioBaseSinkMethod "stealData" o = GObject.ObjectStealDataMethodInfo+    ResolveAudioBaseSinkMethod "stealQdata" o = GObject.ObjectStealQdataMethodInfo+    ResolveAudioBaseSinkMethod "suggestNextSync" o = Gst.ObjectSuggestNextSyncMethodInfo+    ResolveAudioBaseSinkMethod "syncStateWithParent" o = Gst.ElementSyncStateWithParentMethodInfo+    ResolveAudioBaseSinkMethod "syncValues" o = Gst.ObjectSyncValuesMethodInfo+    ResolveAudioBaseSinkMethod "thawNotify" o = GObject.ObjectThawNotifyMethodInfo+    ResolveAudioBaseSinkMethod "unlink" o = Gst.ElementUnlinkMethodInfo+    ResolveAudioBaseSinkMethod "unlinkPads" o = Gst.ElementUnlinkPadsMethodInfo+    ResolveAudioBaseSinkMethod "unparent" o = Gst.ObjectUnparentMethodInfo+    ResolveAudioBaseSinkMethod "wait" o = GstBase.BaseSinkWaitMethodInfo+    ResolveAudioBaseSinkMethod "waitClock" o = GstBase.BaseSinkWaitClockMethodInfo+    ResolveAudioBaseSinkMethod "waitPreroll" o = GstBase.BaseSinkWaitPrerollMethodInfo+    ResolveAudioBaseSinkMethod "watchClosure" o = GObject.ObjectWatchClosureMethodInfo+    ResolveAudioBaseSinkMethod "getAlignmentThreshold" o = AudioBaseSinkGetAlignmentThresholdMethodInfo+    ResolveAudioBaseSinkMethod "getBaseTime" o = Gst.ElementGetBaseTimeMethodInfo+    ResolveAudioBaseSinkMethod "getBlocksize" o = GstBase.BaseSinkGetBlocksizeMethodInfo+    ResolveAudioBaseSinkMethod "getBus" o = Gst.ElementGetBusMethodInfo+    ResolveAudioBaseSinkMethod "getClock" o = Gst.ElementGetClockMethodInfo+    ResolveAudioBaseSinkMethod "getCompatiblePad" o = Gst.ElementGetCompatiblePadMethodInfo+    ResolveAudioBaseSinkMethod "getCompatiblePadTemplate" o = Gst.ElementGetCompatiblePadTemplateMethodInfo+    ResolveAudioBaseSinkMethod "getControlBinding" o = Gst.ObjectGetControlBindingMethodInfo+    ResolveAudioBaseSinkMethod "getControlRate" o = Gst.ObjectGetControlRateMethodInfo+    ResolveAudioBaseSinkMethod "getData" o = GObject.ObjectGetDataMethodInfo+    ResolveAudioBaseSinkMethod "getDiscontWait" o = AudioBaseSinkGetDiscontWaitMethodInfo+    ResolveAudioBaseSinkMethod "getDriftTolerance" o = AudioBaseSinkGetDriftToleranceMethodInfo+    ResolveAudioBaseSinkMethod "getFactory" o = Gst.ElementGetFactoryMethodInfo+    ResolveAudioBaseSinkMethod "getGValueArray" o = Gst.ObjectGetGValueArrayMethodInfo+    ResolveAudioBaseSinkMethod "getLastSample" o = GstBase.BaseSinkGetLastSampleMethodInfo+    ResolveAudioBaseSinkMethod "getLatency" o = GstBase.BaseSinkGetLatencyMethodInfo+    ResolveAudioBaseSinkMethod "getMaxBitrate" o = GstBase.BaseSinkGetMaxBitrateMethodInfo+    ResolveAudioBaseSinkMethod "getMaxLateness" o = GstBase.BaseSinkGetMaxLatenessMethodInfo+    ResolveAudioBaseSinkMethod "getName" o = Gst.ObjectGetNameMethodInfo+    ResolveAudioBaseSinkMethod "getParent" o = Gst.ObjectGetParentMethodInfo+    ResolveAudioBaseSinkMethod "getPathString" o = Gst.ObjectGetPathStringMethodInfo+    ResolveAudioBaseSinkMethod "getProperty" o = GObject.ObjectGetPropertyMethodInfo+    ResolveAudioBaseSinkMethod "getProvideClock" o = AudioBaseSinkGetProvideClockMethodInfo+    ResolveAudioBaseSinkMethod "getQdata" o = GObject.ObjectGetQdataMethodInfo+    ResolveAudioBaseSinkMethod "getRenderDelay" o = GstBase.BaseSinkGetRenderDelayMethodInfo+    ResolveAudioBaseSinkMethod "getRequestPad" o = Gst.ElementGetRequestPadMethodInfo+    ResolveAudioBaseSinkMethod "getSlaveMethod" o = AudioBaseSinkGetSlaveMethodMethodInfo+    ResolveAudioBaseSinkMethod "getStartTime" o = Gst.ElementGetStartTimeMethodInfo+    ResolveAudioBaseSinkMethod "getState" o = Gst.ElementGetStateMethodInfo+    ResolveAudioBaseSinkMethod "getStaticPad" o = Gst.ElementGetStaticPadMethodInfo+    ResolveAudioBaseSinkMethod "getSync" o = GstBase.BaseSinkGetSyncMethodInfo+    ResolveAudioBaseSinkMethod "getThrottleTime" o = GstBase.BaseSinkGetThrottleTimeMethodInfo+    ResolveAudioBaseSinkMethod "getTsOffset" o = GstBase.BaseSinkGetTsOffsetMethodInfo+    ResolveAudioBaseSinkMethod "getValue" o = Gst.ObjectGetValueMethodInfo+    ResolveAudioBaseSinkMethod "getValueArray" o = Gst.ObjectGetValueArrayMethodInfo+    ResolveAudioBaseSinkMethod "setAlignmentThreshold" o = AudioBaseSinkSetAlignmentThresholdMethodInfo+    ResolveAudioBaseSinkMethod "setAsyncEnabled" o = GstBase.BaseSinkSetAsyncEnabledMethodInfo+    ResolveAudioBaseSinkMethod "setBaseTime" o = Gst.ElementSetBaseTimeMethodInfo+    ResolveAudioBaseSinkMethod "setBlocksize" o = GstBase.BaseSinkSetBlocksizeMethodInfo+    ResolveAudioBaseSinkMethod "setBus" o = Gst.ElementSetBusMethodInfo+    ResolveAudioBaseSinkMethod "setClock" o = Gst.ElementSetClockMethodInfo+    ResolveAudioBaseSinkMethod "setContext" o = Gst.ElementSetContextMethodInfo+    ResolveAudioBaseSinkMethod "setControlBindingDisabled" o = Gst.ObjectSetControlBindingDisabledMethodInfo+    ResolveAudioBaseSinkMethod "setControlBindingsDisabled" o = Gst.ObjectSetControlBindingsDisabledMethodInfo+    ResolveAudioBaseSinkMethod "setControlRate" o = Gst.ObjectSetControlRateMethodInfo+    ResolveAudioBaseSinkMethod "setCustomSlavingCallback" o = AudioBaseSinkSetCustomSlavingCallbackMethodInfo+    ResolveAudioBaseSinkMethod "setData" o = GObject.ObjectSetDataMethodInfo+    ResolveAudioBaseSinkMethod "setDiscontWait" o = AudioBaseSinkSetDiscontWaitMethodInfo+    ResolveAudioBaseSinkMethod "setDriftTolerance" o = AudioBaseSinkSetDriftToleranceMethodInfo+    ResolveAudioBaseSinkMethod "setLastSampleEnabled" o = GstBase.BaseSinkSetLastSampleEnabledMethodInfo+    ResolveAudioBaseSinkMethod "setLockedState" o = Gst.ElementSetLockedStateMethodInfo+    ResolveAudioBaseSinkMethod "setMaxBitrate" o = GstBase.BaseSinkSetMaxBitrateMethodInfo+    ResolveAudioBaseSinkMethod "setMaxLateness" o = GstBase.BaseSinkSetMaxLatenessMethodInfo+    ResolveAudioBaseSinkMethod "setName" o = Gst.ObjectSetNameMethodInfo+    ResolveAudioBaseSinkMethod "setParent" o = Gst.ObjectSetParentMethodInfo+    ResolveAudioBaseSinkMethod "setProperty" o = GObject.ObjectSetPropertyMethodInfo+    ResolveAudioBaseSinkMethod "setProvideClock" o = AudioBaseSinkSetProvideClockMethodInfo+    ResolveAudioBaseSinkMethod "setQosEnabled" o = GstBase.BaseSinkSetQosEnabledMethodInfo+    ResolveAudioBaseSinkMethod "setRenderDelay" o = GstBase.BaseSinkSetRenderDelayMethodInfo+    ResolveAudioBaseSinkMethod "setSlaveMethod" o = AudioBaseSinkSetSlaveMethodMethodInfo+    ResolveAudioBaseSinkMethod "setStartTime" o = Gst.ElementSetStartTimeMethodInfo+    ResolveAudioBaseSinkMethod "setState" o = Gst.ElementSetStateMethodInfo+    ResolveAudioBaseSinkMethod "setSync" o = GstBase.BaseSinkSetSyncMethodInfo+    ResolveAudioBaseSinkMethod "setThrottleTime" o = GstBase.BaseSinkSetThrottleTimeMethodInfo+    ResolveAudioBaseSinkMethod "setTsOffset" o = GstBase.BaseSinkSetTsOffsetMethodInfo+    ResolveAudioBaseSinkMethod l o = MethodResolutionFailed l o++instance (info ~ ResolveAudioBaseSinkMethod t AudioBaseSink, MethodInfo info AudioBaseSink p) => IsLabelProxy t (AudioBaseSink -> p) where+    fromLabelProxy _ = overloadedMethod (MethodProxy :: MethodProxy info)++#if MIN_VERSION_base(4,9,0)+instance (info ~ ResolveAudioBaseSinkMethod t AudioBaseSink, MethodInfo info AudioBaseSink p) => IsLabel t (AudioBaseSink -> p) where+    fromLabel _ = overloadedMethod (MethodProxy :: MethodProxy info)+#endif++-- VVV Prop "alignment-threshold"+   -- Type: TBasicType TUInt64+   -- Flags: [PropertyReadable,PropertyWritable]++getAudioBaseSinkAlignmentThreshold :: (MonadIO m, AudioBaseSinkK o) => o -> m Word64+getAudioBaseSinkAlignmentThreshold obj = liftIO $ getObjectPropertyUInt64 obj "alignment-threshold"++setAudioBaseSinkAlignmentThreshold :: (MonadIO m, AudioBaseSinkK o) => o -> Word64 -> m ()+setAudioBaseSinkAlignmentThreshold obj val = liftIO $ setObjectPropertyUInt64 obj "alignment-threshold" val++constructAudioBaseSinkAlignmentThreshold :: Word64 -> IO ([Char], GValue)+constructAudioBaseSinkAlignmentThreshold val = constructObjectPropertyUInt64 "alignment-threshold" val++data AudioBaseSinkAlignmentThresholdPropertyInfo+instance AttrInfo AudioBaseSinkAlignmentThresholdPropertyInfo where+    type AttrAllowedOps AudioBaseSinkAlignmentThresholdPropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet]+    type AttrSetTypeConstraint AudioBaseSinkAlignmentThresholdPropertyInfo = (~) Word64+    type AttrBaseTypeConstraint AudioBaseSinkAlignmentThresholdPropertyInfo = AudioBaseSinkK+    type AttrGetType AudioBaseSinkAlignmentThresholdPropertyInfo = Word64+    type AttrLabel AudioBaseSinkAlignmentThresholdPropertyInfo = "alignment-threshold"+    attrGet _ = getAudioBaseSinkAlignmentThreshold+    attrSet _ = setAudioBaseSinkAlignmentThreshold+    attrConstruct _ = constructAudioBaseSinkAlignmentThreshold++-- VVV Prop "buffer-time"+   -- Type: TBasicType TInt64+   -- Flags: [PropertyReadable,PropertyWritable]++getAudioBaseSinkBufferTime :: (MonadIO m, AudioBaseSinkK o) => o -> m Int64+getAudioBaseSinkBufferTime obj = liftIO $ getObjectPropertyInt64 obj "buffer-time"++setAudioBaseSinkBufferTime :: (MonadIO m, AudioBaseSinkK o) => o -> Int64 -> m ()+setAudioBaseSinkBufferTime obj val = liftIO $ setObjectPropertyInt64 obj "buffer-time" val++constructAudioBaseSinkBufferTime :: Int64 -> IO ([Char], GValue)+constructAudioBaseSinkBufferTime val = constructObjectPropertyInt64 "buffer-time" val++data AudioBaseSinkBufferTimePropertyInfo+instance AttrInfo AudioBaseSinkBufferTimePropertyInfo where+    type AttrAllowedOps AudioBaseSinkBufferTimePropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet]+    type AttrSetTypeConstraint AudioBaseSinkBufferTimePropertyInfo = (~) Int64+    type AttrBaseTypeConstraint AudioBaseSinkBufferTimePropertyInfo = AudioBaseSinkK+    type AttrGetType AudioBaseSinkBufferTimePropertyInfo = Int64+    type AttrLabel AudioBaseSinkBufferTimePropertyInfo = "buffer-time"+    attrGet _ = getAudioBaseSinkBufferTime+    attrSet _ = setAudioBaseSinkBufferTime+    attrConstruct _ = constructAudioBaseSinkBufferTime++-- VVV Prop "can-activate-pull"+   -- Type: TBasicType TBoolean+   -- Flags: [PropertyReadable,PropertyWritable]++getAudioBaseSinkCanActivatePull :: (MonadIO m, AudioBaseSinkK o) => o -> m Bool+getAudioBaseSinkCanActivatePull obj = liftIO $ getObjectPropertyBool obj "can-activate-pull"++setAudioBaseSinkCanActivatePull :: (MonadIO m, AudioBaseSinkK o) => o -> Bool -> m ()+setAudioBaseSinkCanActivatePull obj val = liftIO $ setObjectPropertyBool obj "can-activate-pull" val++constructAudioBaseSinkCanActivatePull :: Bool -> IO ([Char], GValue)+constructAudioBaseSinkCanActivatePull val = constructObjectPropertyBool "can-activate-pull" val++data AudioBaseSinkCanActivatePullPropertyInfo+instance AttrInfo AudioBaseSinkCanActivatePullPropertyInfo where+    type AttrAllowedOps AudioBaseSinkCanActivatePullPropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet]+    type AttrSetTypeConstraint AudioBaseSinkCanActivatePullPropertyInfo = (~) Bool+    type AttrBaseTypeConstraint AudioBaseSinkCanActivatePullPropertyInfo = AudioBaseSinkK+    type AttrGetType AudioBaseSinkCanActivatePullPropertyInfo = Bool+    type AttrLabel AudioBaseSinkCanActivatePullPropertyInfo = "can-activate-pull"+    attrGet _ = getAudioBaseSinkCanActivatePull+    attrSet _ = setAudioBaseSinkCanActivatePull+    attrConstruct _ = constructAudioBaseSinkCanActivatePull++-- VVV Prop "discont-wait"+   -- Type: TBasicType TUInt64+   -- Flags: [PropertyReadable,PropertyWritable]++getAudioBaseSinkDiscontWait :: (MonadIO m, AudioBaseSinkK o) => o -> m Word64+getAudioBaseSinkDiscontWait obj = liftIO $ getObjectPropertyUInt64 obj "discont-wait"++setAudioBaseSinkDiscontWait :: (MonadIO m, AudioBaseSinkK o) => o -> Word64 -> m ()+setAudioBaseSinkDiscontWait obj val = liftIO $ setObjectPropertyUInt64 obj "discont-wait" val++constructAudioBaseSinkDiscontWait :: Word64 -> IO ([Char], GValue)+constructAudioBaseSinkDiscontWait val = constructObjectPropertyUInt64 "discont-wait" val++data AudioBaseSinkDiscontWaitPropertyInfo+instance AttrInfo AudioBaseSinkDiscontWaitPropertyInfo where+    type AttrAllowedOps AudioBaseSinkDiscontWaitPropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet]+    type AttrSetTypeConstraint AudioBaseSinkDiscontWaitPropertyInfo = (~) Word64+    type AttrBaseTypeConstraint AudioBaseSinkDiscontWaitPropertyInfo = AudioBaseSinkK+    type AttrGetType AudioBaseSinkDiscontWaitPropertyInfo = Word64+    type AttrLabel AudioBaseSinkDiscontWaitPropertyInfo = "discont-wait"+    attrGet _ = getAudioBaseSinkDiscontWait+    attrSet _ = setAudioBaseSinkDiscontWait+    attrConstruct _ = constructAudioBaseSinkDiscontWait++-- VVV Prop "drift-tolerance"+   -- Type: TBasicType TInt64+   -- Flags: [PropertyReadable,PropertyWritable]++getAudioBaseSinkDriftTolerance :: (MonadIO m, AudioBaseSinkK o) => o -> m Int64+getAudioBaseSinkDriftTolerance obj = liftIO $ getObjectPropertyInt64 obj "drift-tolerance"++setAudioBaseSinkDriftTolerance :: (MonadIO m, AudioBaseSinkK o) => o -> Int64 -> m ()+setAudioBaseSinkDriftTolerance obj val = liftIO $ setObjectPropertyInt64 obj "drift-tolerance" val++constructAudioBaseSinkDriftTolerance :: Int64 -> IO ([Char], GValue)+constructAudioBaseSinkDriftTolerance val = constructObjectPropertyInt64 "drift-tolerance" val++data AudioBaseSinkDriftTolerancePropertyInfo+instance AttrInfo AudioBaseSinkDriftTolerancePropertyInfo where+    type AttrAllowedOps AudioBaseSinkDriftTolerancePropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet]+    type AttrSetTypeConstraint AudioBaseSinkDriftTolerancePropertyInfo = (~) Int64+    type AttrBaseTypeConstraint AudioBaseSinkDriftTolerancePropertyInfo = AudioBaseSinkK+    type AttrGetType AudioBaseSinkDriftTolerancePropertyInfo = Int64+    type AttrLabel AudioBaseSinkDriftTolerancePropertyInfo = "drift-tolerance"+    attrGet _ = getAudioBaseSinkDriftTolerance+    attrSet _ = setAudioBaseSinkDriftTolerance+    attrConstruct _ = constructAudioBaseSinkDriftTolerance++-- VVV Prop "latency-time"+   -- Type: TBasicType TInt64+   -- Flags: [PropertyReadable,PropertyWritable]++getAudioBaseSinkLatencyTime :: (MonadIO m, AudioBaseSinkK o) => o -> m Int64+getAudioBaseSinkLatencyTime obj = liftIO $ getObjectPropertyInt64 obj "latency-time"++setAudioBaseSinkLatencyTime :: (MonadIO m, AudioBaseSinkK o) => o -> Int64 -> m ()+setAudioBaseSinkLatencyTime obj val = liftIO $ setObjectPropertyInt64 obj "latency-time" val++constructAudioBaseSinkLatencyTime :: Int64 -> IO ([Char], GValue)+constructAudioBaseSinkLatencyTime val = constructObjectPropertyInt64 "latency-time" val++data AudioBaseSinkLatencyTimePropertyInfo+instance AttrInfo AudioBaseSinkLatencyTimePropertyInfo where+    type AttrAllowedOps AudioBaseSinkLatencyTimePropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet]+    type AttrSetTypeConstraint AudioBaseSinkLatencyTimePropertyInfo = (~) Int64+    type AttrBaseTypeConstraint AudioBaseSinkLatencyTimePropertyInfo = AudioBaseSinkK+    type AttrGetType AudioBaseSinkLatencyTimePropertyInfo = Int64+    type AttrLabel AudioBaseSinkLatencyTimePropertyInfo = "latency-time"+    attrGet _ = getAudioBaseSinkLatencyTime+    attrSet _ = setAudioBaseSinkLatencyTime+    attrConstruct _ = constructAudioBaseSinkLatencyTime++-- VVV Prop "provide-clock"+   -- Type: TBasicType TBoolean+   -- Flags: [PropertyReadable,PropertyWritable]++getAudioBaseSinkProvideClock :: (MonadIO m, AudioBaseSinkK o) => o -> m Bool+getAudioBaseSinkProvideClock obj = liftIO $ getObjectPropertyBool obj "provide-clock"++setAudioBaseSinkProvideClock :: (MonadIO m, AudioBaseSinkK o) => o -> Bool -> m ()+setAudioBaseSinkProvideClock obj val = liftIO $ setObjectPropertyBool obj "provide-clock" val++constructAudioBaseSinkProvideClock :: Bool -> IO ([Char], GValue)+constructAudioBaseSinkProvideClock val = constructObjectPropertyBool "provide-clock" val++data AudioBaseSinkProvideClockPropertyInfo+instance AttrInfo AudioBaseSinkProvideClockPropertyInfo where+    type AttrAllowedOps AudioBaseSinkProvideClockPropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet]+    type AttrSetTypeConstraint AudioBaseSinkProvideClockPropertyInfo = (~) Bool+    type AttrBaseTypeConstraint AudioBaseSinkProvideClockPropertyInfo = AudioBaseSinkK+    type AttrGetType AudioBaseSinkProvideClockPropertyInfo = Bool+    type AttrLabel AudioBaseSinkProvideClockPropertyInfo = "provide-clock"+    attrGet _ = getAudioBaseSinkProvideClock+    attrSet _ = setAudioBaseSinkProvideClock+    attrConstruct _ = constructAudioBaseSinkProvideClock++-- VVV Prop "slave-method"+   -- Type: TInterface "GstAudio" "AudioBaseSinkSlaveMethod"+   -- Flags: [PropertyReadable,PropertyWritable]++getAudioBaseSinkSlaveMethod :: (MonadIO m, AudioBaseSinkK o) => o -> m AudioBaseSinkSlaveMethod+getAudioBaseSinkSlaveMethod obj = liftIO $ getObjectPropertyEnum obj "slave-method"++setAudioBaseSinkSlaveMethod :: (MonadIO m, AudioBaseSinkK o) => o -> AudioBaseSinkSlaveMethod -> m ()+setAudioBaseSinkSlaveMethod obj val = liftIO $ setObjectPropertyEnum obj "slave-method" val++constructAudioBaseSinkSlaveMethod :: AudioBaseSinkSlaveMethod -> IO ([Char], GValue)+constructAudioBaseSinkSlaveMethod val = constructObjectPropertyEnum "slave-method" val++data AudioBaseSinkSlaveMethodPropertyInfo+instance AttrInfo AudioBaseSinkSlaveMethodPropertyInfo where+    type AttrAllowedOps AudioBaseSinkSlaveMethodPropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet]+    type AttrSetTypeConstraint AudioBaseSinkSlaveMethodPropertyInfo = (~) AudioBaseSinkSlaveMethod+    type AttrBaseTypeConstraint AudioBaseSinkSlaveMethodPropertyInfo = AudioBaseSinkK+    type AttrGetType AudioBaseSinkSlaveMethodPropertyInfo = AudioBaseSinkSlaveMethod+    type AttrLabel AudioBaseSinkSlaveMethodPropertyInfo = "slave-method"+    attrGet _ = getAudioBaseSinkSlaveMethod+    attrSet _ = setAudioBaseSinkSlaveMethod+    attrConstruct _ = constructAudioBaseSinkSlaveMethod++type instance AttributeList AudioBaseSink = AudioBaseSinkAttributeList+type AudioBaseSinkAttributeList = ('[ '("alignmentThreshold", AudioBaseSinkAlignmentThresholdPropertyInfo), '("async", GstBase.BaseSinkAsyncPropertyInfo), '("blocksize", GstBase.BaseSinkBlocksizePropertyInfo), '("bufferTime", AudioBaseSinkBufferTimePropertyInfo), '("canActivatePull", AudioBaseSinkCanActivatePullPropertyInfo), '("discontWait", AudioBaseSinkDiscontWaitPropertyInfo), '("driftTolerance", AudioBaseSinkDriftTolerancePropertyInfo), '("enableLastSample", GstBase.BaseSinkEnableLastSamplePropertyInfo), '("lastSample", GstBase.BaseSinkLastSamplePropertyInfo), '("latencyTime", AudioBaseSinkLatencyTimePropertyInfo), '("maxBitrate", GstBase.BaseSinkMaxBitratePropertyInfo), '("maxLateness", GstBase.BaseSinkMaxLatenessPropertyInfo), '("name", Gst.ObjectNamePropertyInfo), '("parent", Gst.ObjectParentPropertyInfo), '("provideClock", AudioBaseSinkProvideClockPropertyInfo), '("qos", GstBase.BaseSinkQosPropertyInfo), '("renderDelay", GstBase.BaseSinkRenderDelayPropertyInfo), '("slaveMethod", AudioBaseSinkSlaveMethodPropertyInfo), '("sync", GstBase.BaseSinkSyncPropertyInfo), '("throttleTime", GstBase.BaseSinkThrottleTimePropertyInfo), '("tsOffset", GstBase.BaseSinkTsOffsetPropertyInfo)] :: [(Symbol, *)])++type instance SignalList AudioBaseSink = AudioBaseSinkSignalList+type AudioBaseSinkSignalList = ('[ '("deepNotify", Gst.ObjectDeepNotifySignalInfo), '("noMorePads", Gst.ElementNoMorePadsSignalInfo), '("notify", GObject.ObjectNotifySignalInfo), '("padAdded", Gst.ElementPadAddedSignalInfo), '("padRemoved", Gst.ElementPadRemovedSignalInfo)] :: [(Symbol, *)])++-- method AudioBaseSink::create_ringbuffer+-- method type : OrdinaryMethod+-- Args : [Arg {argCName = "_obj", argType = TInterface "GstAudio" "AudioBaseSink", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]+-- Lengths : []+-- returnType : TInterface "GstAudio" "AudioRingBuffer"+-- throws : False+-- Skip return : False++foreign import ccall "gst_audio_base_sink_create_ringbuffer" gst_audio_base_sink_create_ringbuffer :: +    Ptr AudioBaseSink ->                    -- _obj : TInterface "GstAudio" "AudioBaseSink"+    IO (Ptr AudioRingBuffer)+++audioBaseSinkCreateRingbuffer ::+    (MonadIO m, AudioBaseSinkK a) =>+    a                                       -- _obj+    -> m AudioRingBuffer                    -- result+audioBaseSinkCreateRingbuffer _obj = liftIO $ do+    let _obj' = unsafeManagedPtrCastPtr _obj+    result <- gst_audio_base_sink_create_ringbuffer _obj'+    checkUnexpectedReturnNULL "gst_audio_base_sink_create_ringbuffer" result+    result' <- (newObject AudioRingBuffer) result+    touchManagedPtr _obj+    return result'++data AudioBaseSinkCreateRingbufferMethodInfo+instance (signature ~ (m AudioRingBuffer), MonadIO m, AudioBaseSinkK a) => MethodInfo AudioBaseSinkCreateRingbufferMethodInfo a signature where+    overloadedMethod _ = audioBaseSinkCreateRingbuffer++-- method AudioBaseSink::get_alignment_threshold+-- method type : OrdinaryMethod+-- Args : [Arg {argCName = "_obj", argType = TInterface "GstAudio" "AudioBaseSink", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]+-- Lengths : []+-- returnType : TBasicType TUInt64+-- throws : False+-- Skip return : False++foreign import ccall "gst_audio_base_sink_get_alignment_threshold" gst_audio_base_sink_get_alignment_threshold :: +    Ptr AudioBaseSink ->                    -- _obj : TInterface "GstAudio" "AudioBaseSink"+    IO Word64+++audioBaseSinkGetAlignmentThreshold ::+    (MonadIO m, AudioBaseSinkK a) =>+    a                                       -- _obj+    -> m Word64                             -- result+audioBaseSinkGetAlignmentThreshold _obj = liftIO $ do+    let _obj' = unsafeManagedPtrCastPtr _obj+    result <- gst_audio_base_sink_get_alignment_threshold _obj'+    touchManagedPtr _obj+    return result++data AudioBaseSinkGetAlignmentThresholdMethodInfo+instance (signature ~ (m Word64), MonadIO m, AudioBaseSinkK a) => MethodInfo AudioBaseSinkGetAlignmentThresholdMethodInfo a signature where+    overloadedMethod _ = audioBaseSinkGetAlignmentThreshold++-- method AudioBaseSink::get_discont_wait+-- method type : OrdinaryMethod+-- Args : [Arg {argCName = "_obj", argType = TInterface "GstAudio" "AudioBaseSink", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]+-- Lengths : []+-- returnType : TBasicType TUInt64+-- throws : False+-- Skip return : False++foreign import ccall "gst_audio_base_sink_get_discont_wait" gst_audio_base_sink_get_discont_wait :: +    Ptr AudioBaseSink ->                    -- _obj : TInterface "GstAudio" "AudioBaseSink"+    IO Word64+++audioBaseSinkGetDiscontWait ::+    (MonadIO m, AudioBaseSinkK a) =>+    a                                       -- _obj+    -> m Word64                             -- result+audioBaseSinkGetDiscontWait _obj = liftIO $ do+    let _obj' = unsafeManagedPtrCastPtr _obj+    result <- gst_audio_base_sink_get_discont_wait _obj'+    touchManagedPtr _obj+    return result++data AudioBaseSinkGetDiscontWaitMethodInfo+instance (signature ~ (m Word64), MonadIO m, AudioBaseSinkK a) => MethodInfo AudioBaseSinkGetDiscontWaitMethodInfo a signature where+    overloadedMethod _ = audioBaseSinkGetDiscontWait++-- method AudioBaseSink::get_drift_tolerance+-- method type : OrdinaryMethod+-- Args : [Arg {argCName = "_obj", argType = TInterface "GstAudio" "AudioBaseSink", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]+-- Lengths : []+-- returnType : TBasicType TInt64+-- throws : False+-- Skip return : False++foreign import ccall "gst_audio_base_sink_get_drift_tolerance" gst_audio_base_sink_get_drift_tolerance :: +    Ptr AudioBaseSink ->                    -- _obj : TInterface "GstAudio" "AudioBaseSink"+    IO Int64+++audioBaseSinkGetDriftTolerance ::+    (MonadIO m, AudioBaseSinkK a) =>+    a                                       -- _obj+    -> m Int64                              -- result+audioBaseSinkGetDriftTolerance _obj = liftIO $ do+    let _obj' = unsafeManagedPtrCastPtr _obj+    result <- gst_audio_base_sink_get_drift_tolerance _obj'+    touchManagedPtr _obj+    return result++data AudioBaseSinkGetDriftToleranceMethodInfo+instance (signature ~ (m Int64), MonadIO m, AudioBaseSinkK a) => MethodInfo AudioBaseSinkGetDriftToleranceMethodInfo a signature where+    overloadedMethod _ = audioBaseSinkGetDriftTolerance++-- method AudioBaseSink::get_provide_clock+-- method type : OrdinaryMethod+-- Args : [Arg {argCName = "_obj", argType = TInterface "GstAudio" "AudioBaseSink", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]+-- Lengths : []+-- returnType : TBasicType TBoolean+-- throws : False+-- Skip return : False++foreign import ccall "gst_audio_base_sink_get_provide_clock" gst_audio_base_sink_get_provide_clock :: +    Ptr AudioBaseSink ->                    -- _obj : TInterface "GstAudio" "AudioBaseSink"+    IO CInt+++audioBaseSinkGetProvideClock ::+    (MonadIO m, AudioBaseSinkK a) =>+    a                                       -- _obj+    -> m Bool                               -- result+audioBaseSinkGetProvideClock _obj = liftIO $ do+    let _obj' = unsafeManagedPtrCastPtr _obj+    result <- gst_audio_base_sink_get_provide_clock _obj'+    let result' = (/= 0) result+    touchManagedPtr _obj+    return result'++data AudioBaseSinkGetProvideClockMethodInfo+instance (signature ~ (m Bool), MonadIO m, AudioBaseSinkK a) => MethodInfo AudioBaseSinkGetProvideClockMethodInfo a signature where+    overloadedMethod _ = audioBaseSinkGetProvideClock++-- method AudioBaseSink::get_slave_method+-- method type : OrdinaryMethod+-- Args : [Arg {argCName = "_obj", argType = TInterface "GstAudio" "AudioBaseSink", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]+-- Lengths : []+-- returnType : TInterface "GstAudio" "AudioBaseSinkSlaveMethod"+-- throws : False+-- Skip return : False++foreign import ccall "gst_audio_base_sink_get_slave_method" gst_audio_base_sink_get_slave_method :: +    Ptr AudioBaseSink ->                    -- _obj : TInterface "GstAudio" "AudioBaseSink"+    IO CUInt+++audioBaseSinkGetSlaveMethod ::+    (MonadIO m, AudioBaseSinkK a) =>+    a                                       -- _obj+    -> m AudioBaseSinkSlaveMethod           -- result+audioBaseSinkGetSlaveMethod _obj = liftIO $ do+    let _obj' = unsafeManagedPtrCastPtr _obj+    result <- gst_audio_base_sink_get_slave_method _obj'+    let result' = (toEnum . fromIntegral) result+    touchManagedPtr _obj+    return result'++data AudioBaseSinkGetSlaveMethodMethodInfo+instance (signature ~ (m AudioBaseSinkSlaveMethod), MonadIO m, AudioBaseSinkK a) => MethodInfo AudioBaseSinkGetSlaveMethodMethodInfo a signature where+    overloadedMethod _ = audioBaseSinkGetSlaveMethod++-- method AudioBaseSink::report_device_failure+-- method type : OrdinaryMethod+-- Args : [Arg {argCName = "_obj", argType = TInterface "GstAudio" "AudioBaseSink", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]+-- Lengths : []+-- returnType : TBasicType TVoid+-- throws : False+-- Skip return : False++foreign import ccall "gst_audio_base_sink_report_device_failure" gst_audio_base_sink_report_device_failure :: +    Ptr AudioBaseSink ->                    -- _obj : TInterface "GstAudio" "AudioBaseSink"+    IO ()+++audioBaseSinkReportDeviceFailure ::+    (MonadIO m, AudioBaseSinkK a) =>+    a                                       -- _obj+    -> m ()                                 -- result+audioBaseSinkReportDeviceFailure _obj = liftIO $ do+    let _obj' = unsafeManagedPtrCastPtr _obj+    gst_audio_base_sink_report_device_failure _obj'+    touchManagedPtr _obj+    return ()++data AudioBaseSinkReportDeviceFailureMethodInfo+instance (signature ~ (m ()), MonadIO m, AudioBaseSinkK a) => MethodInfo AudioBaseSinkReportDeviceFailureMethodInfo a signature where+    overloadedMethod _ = audioBaseSinkReportDeviceFailure++-- method AudioBaseSink::set_alignment_threshold+-- method type : OrdinaryMethod+-- Args : [Arg {argCName = "_obj", argType = TInterface "GstAudio" "AudioBaseSink", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "alignment_threshold", argType = TBasicType TUInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]+-- Lengths : []+-- returnType : TBasicType TVoid+-- throws : False+-- Skip return : False++foreign import ccall "gst_audio_base_sink_set_alignment_threshold" gst_audio_base_sink_set_alignment_threshold :: +    Ptr AudioBaseSink ->                    -- _obj : TInterface "GstAudio" "AudioBaseSink"+    Word64 ->                               -- alignment_threshold : TBasicType TUInt64+    IO ()+++audioBaseSinkSetAlignmentThreshold ::+    (MonadIO m, AudioBaseSinkK a) =>+    a                                       -- _obj+    -> Word64                               -- alignmentThreshold+    -> m ()                                 -- result+audioBaseSinkSetAlignmentThreshold _obj alignmentThreshold = liftIO $ do+    let _obj' = unsafeManagedPtrCastPtr _obj+    gst_audio_base_sink_set_alignment_threshold _obj' alignmentThreshold+    touchManagedPtr _obj+    return ()++data AudioBaseSinkSetAlignmentThresholdMethodInfo+instance (signature ~ (Word64 -> m ()), MonadIO m, AudioBaseSinkK a) => MethodInfo AudioBaseSinkSetAlignmentThresholdMethodInfo a signature where+    overloadedMethod _ = audioBaseSinkSetAlignmentThreshold++-- method AudioBaseSink::set_custom_slaving_callback+-- method type : OrdinaryMethod+-- Args : [Arg {argCName = "_obj", argType = TInterface "GstAudio" "AudioBaseSink", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "callback", argType = TInterface "GstAudio" "AudioBaseSinkCustomSlavingCallback", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeNotified, argClosure = 2, argDestroy = 3, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "user_data", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "notify", argType = TInterface "GLib" "DestroyNotify", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeAsync, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]+-- Lengths : []+-- returnType : TBasicType TVoid+-- throws : False+-- Skip return : False++foreign import ccall "gst_audio_base_sink_set_custom_slaving_callback" gst_audio_base_sink_set_custom_slaving_callback :: +    Ptr AudioBaseSink ->                    -- _obj : TInterface "GstAudio" "AudioBaseSink"+    FunPtr AudioBaseSinkCustomSlavingCallbackC -> -- callback : TInterface "GstAudio" "AudioBaseSinkCustomSlavingCallback"+    Ptr () ->                               -- user_data : TBasicType TVoid+    FunPtr GLib.DestroyNotifyC ->           -- notify : TInterface "GLib" "DestroyNotify"+    IO ()+++audioBaseSinkSetCustomSlavingCallback ::+    (MonadIO m, AudioBaseSinkK a) =>+    a                                       -- _obj+    -> AudioBaseSinkCustomSlavingCallback   -- callback+    -> m ()                                 -- result+audioBaseSinkSetCustomSlavingCallback _obj callback = liftIO $ do+    let _obj' = unsafeManagedPtrCastPtr _obj+    callback' <- mkAudioBaseSinkCustomSlavingCallback (audioBaseSinkCustomSlavingCallbackWrapper Nothing callback)+    let userData = castFunPtrToPtr callback'+    let notify = safeFreeFunPtrPtr+    gst_audio_base_sink_set_custom_slaving_callback _obj' callback' userData notify+    touchManagedPtr _obj+    return ()++data AudioBaseSinkSetCustomSlavingCallbackMethodInfo+instance (signature ~ (AudioBaseSinkCustomSlavingCallback -> m ()), MonadIO m, AudioBaseSinkK a) => MethodInfo AudioBaseSinkSetCustomSlavingCallbackMethodInfo a signature where+    overloadedMethod _ = audioBaseSinkSetCustomSlavingCallback++-- method AudioBaseSink::set_discont_wait+-- method type : OrdinaryMethod+-- Args : [Arg {argCName = "_obj", argType = TInterface "GstAudio" "AudioBaseSink", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "discont_wait", argType = TBasicType TUInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]+-- Lengths : []+-- returnType : TBasicType TVoid+-- throws : False+-- Skip return : False++foreign import ccall "gst_audio_base_sink_set_discont_wait" gst_audio_base_sink_set_discont_wait :: +    Ptr AudioBaseSink ->                    -- _obj : TInterface "GstAudio" "AudioBaseSink"+    Word64 ->                               -- discont_wait : TBasicType TUInt64+    IO ()+++audioBaseSinkSetDiscontWait ::+    (MonadIO m, AudioBaseSinkK a) =>+    a                                       -- _obj+    -> Word64                               -- discontWait+    -> m ()                                 -- result+audioBaseSinkSetDiscontWait _obj discontWait = liftIO $ do+    let _obj' = unsafeManagedPtrCastPtr _obj+    gst_audio_base_sink_set_discont_wait _obj' discontWait+    touchManagedPtr _obj+    return ()++data AudioBaseSinkSetDiscontWaitMethodInfo+instance (signature ~ (Word64 -> m ()), MonadIO m, AudioBaseSinkK a) => MethodInfo AudioBaseSinkSetDiscontWaitMethodInfo a signature where+    overloadedMethod _ = audioBaseSinkSetDiscontWait++-- method AudioBaseSink::set_drift_tolerance+-- method type : OrdinaryMethod+-- Args : [Arg {argCName = "_obj", argType = TInterface "GstAudio" "AudioBaseSink", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "drift_tolerance", argType = TBasicType TInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]+-- Lengths : []+-- returnType : TBasicType TVoid+-- throws : False+-- Skip return : False++foreign import ccall "gst_audio_base_sink_set_drift_tolerance" gst_audio_base_sink_set_drift_tolerance :: +    Ptr AudioBaseSink ->                    -- _obj : TInterface "GstAudio" "AudioBaseSink"+    Int64 ->                                -- drift_tolerance : TBasicType TInt64+    IO ()+++audioBaseSinkSetDriftTolerance ::+    (MonadIO m, AudioBaseSinkK a) =>+    a                                       -- _obj+    -> Int64                                -- driftTolerance+    -> m ()                                 -- result+audioBaseSinkSetDriftTolerance _obj driftTolerance = liftIO $ do+    let _obj' = unsafeManagedPtrCastPtr _obj+    gst_audio_base_sink_set_drift_tolerance _obj' driftTolerance+    touchManagedPtr _obj+    return ()++data AudioBaseSinkSetDriftToleranceMethodInfo+instance (signature ~ (Int64 -> m ()), MonadIO m, AudioBaseSinkK a) => MethodInfo AudioBaseSinkSetDriftToleranceMethodInfo a signature where+    overloadedMethod _ = audioBaseSinkSetDriftTolerance++-- method AudioBaseSink::set_provide_clock+-- method type : OrdinaryMethod+-- Args : [Arg {argCName = "_obj", argType = TInterface "GstAudio" "AudioBaseSink", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "provide", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]+-- Lengths : []+-- returnType : TBasicType TVoid+-- throws : False+-- Skip return : False++foreign import ccall "gst_audio_base_sink_set_provide_clock" gst_audio_base_sink_set_provide_clock :: +    Ptr AudioBaseSink ->                    -- _obj : TInterface "GstAudio" "AudioBaseSink"+    CInt ->                                 -- provide : TBasicType TBoolean+    IO ()+++audioBaseSinkSetProvideClock ::+    (MonadIO m, AudioBaseSinkK a) =>+    a                                       -- _obj+    -> Bool                                 -- provide+    -> m ()                                 -- result+audioBaseSinkSetProvideClock _obj provide = liftIO $ do+    let _obj' = unsafeManagedPtrCastPtr _obj+    let provide' = (fromIntegral . fromEnum) provide+    gst_audio_base_sink_set_provide_clock _obj' provide'+    touchManagedPtr _obj+    return ()++data AudioBaseSinkSetProvideClockMethodInfo+instance (signature ~ (Bool -> m ()), MonadIO m, AudioBaseSinkK a) => MethodInfo AudioBaseSinkSetProvideClockMethodInfo a signature where+    overloadedMethod _ = audioBaseSinkSetProvideClock++-- method AudioBaseSink::set_slave_method+-- method type : OrdinaryMethod+-- Args : [Arg {argCName = "_obj", argType = TInterface "GstAudio" "AudioBaseSink", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "method", argType = TInterface "GstAudio" "AudioBaseSinkSlaveMethod", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]+-- Lengths : []+-- returnType : TBasicType TVoid+-- throws : False+-- Skip return : False++foreign import ccall "gst_audio_base_sink_set_slave_method" gst_audio_base_sink_set_slave_method :: +    Ptr AudioBaseSink ->                    -- _obj : TInterface "GstAudio" "AudioBaseSink"+    CUInt ->                                -- method : TInterface "GstAudio" "AudioBaseSinkSlaveMethod"+    IO ()+++audioBaseSinkSetSlaveMethod ::+    (MonadIO m, AudioBaseSinkK a) =>+    a                                       -- _obj+    -> AudioBaseSinkSlaveMethod             -- method+    -> m ()                                 -- result+audioBaseSinkSetSlaveMethod _obj method = liftIO $ do+    let _obj' = unsafeManagedPtrCastPtr _obj+    let method' = (fromIntegral . fromEnum) method+    gst_audio_base_sink_set_slave_method _obj' method'+    touchManagedPtr _obj+    return ()++data AudioBaseSinkSetSlaveMethodMethodInfo+instance (signature ~ (AudioBaseSinkSlaveMethod -> m ()), MonadIO m, AudioBaseSinkK a) => MethodInfo AudioBaseSinkSetSlaveMethodMethodInfo a signature where+    overloadedMethod _ = audioBaseSinkSetSlaveMethod++
+ GI/GstAudio/Objects/AudioBaseSink.hs-boot view
@@ -0,0 +1,34 @@+module GI.GstAudio.Objects.AudioBaseSink where++import Prelude ()+import Data.GI.Base.ShortPrelude++import qualified Data.Text as T+import qualified Data.ByteString.Char8 as B+import qualified Data.Map as Map++newtype AudioBaseSink = AudioBaseSink (ForeignPtr AudioBaseSink)+instance GObject AudioBaseSink where+class GObject o => AudioBaseSinkK o+instance (GObject o, IsDescendantOf AudioBaseSink o) => AudioBaseSinkK o+data AudioBaseSinkAlignmentThresholdPropertyInfo+data AudioBaseSinkBufferTimePropertyInfo+data AudioBaseSinkCanActivatePullPropertyInfo+data AudioBaseSinkDiscontWaitPropertyInfo+data AudioBaseSinkDriftTolerancePropertyInfo+data AudioBaseSinkLatencyTimePropertyInfo+data AudioBaseSinkProvideClockPropertyInfo+data AudioBaseSinkSlaveMethodPropertyInfo+data AudioBaseSinkCreateRingbufferMethodInfo+data AudioBaseSinkGetAlignmentThresholdMethodInfo+data AudioBaseSinkGetDiscontWaitMethodInfo+data AudioBaseSinkGetDriftToleranceMethodInfo+data AudioBaseSinkGetProvideClockMethodInfo+data AudioBaseSinkGetSlaveMethodMethodInfo+data AudioBaseSinkReportDeviceFailureMethodInfo+data AudioBaseSinkSetAlignmentThresholdMethodInfo+data AudioBaseSinkSetCustomSlavingCallbackMethodInfo+data AudioBaseSinkSetDiscontWaitMethodInfo+data AudioBaseSinkSetDriftToleranceMethodInfo+data AudioBaseSinkSetProvideClockMethodInfo+data AudioBaseSinkSetSlaveMethodMethodInfo
+ GI/GstAudio/Objects/AudioBaseSrc.hs view
@@ -0,0 +1,534 @@+++{- |+Copyright  : Will Thompson, Iñaki García Etxebarria and Jonas Platte+License    : LGPL-2.1+Maintainer : Iñaki García Etxebarria (garetxe@gmail.com)+-}++module GI.GstAudio.Objects.AudioBaseSrc+    ( ++-- * Exported types+    AudioBaseSrc(..)                        ,+    AudioBaseSrcK                           ,+    toAudioBaseSrc                          ,+    noAudioBaseSrc                          ,+++ -- * Methods+-- ** audioBaseSrcCreateRingbuffer+    AudioBaseSrcCreateRingbufferMethodInfo  ,+    audioBaseSrcCreateRingbuffer            ,+++-- ** audioBaseSrcGetProvideClock+    AudioBaseSrcGetProvideClockMethodInfo   ,+    audioBaseSrcGetProvideClock             ,+++-- ** audioBaseSrcGetSlaveMethod+    AudioBaseSrcGetSlaveMethodMethodInfo    ,+    audioBaseSrcGetSlaveMethod              ,+++-- ** audioBaseSrcSetProvideClock+    AudioBaseSrcSetProvideClockMethodInfo   ,+    audioBaseSrcSetProvideClock             ,+++-- ** audioBaseSrcSetSlaveMethod+    AudioBaseSrcSetSlaveMethodMethodInfo    ,+    audioBaseSrcSetSlaveMethod              ,+++++ -- * Properties+-- ** ActualBufferTime+    AudioBaseSrcActualBufferTimePropertyInfo,+    getAudioBaseSrcActualBufferTime         ,+++-- ** ActualLatencyTime+    AudioBaseSrcActualLatencyTimePropertyInfo,+    getAudioBaseSrcActualLatencyTime        ,+++-- ** BufferTime+    AudioBaseSrcBufferTimePropertyInfo      ,+    constructAudioBaseSrcBufferTime         ,+    getAudioBaseSrcBufferTime               ,+    setAudioBaseSrcBufferTime               ,+++-- ** LatencyTime+    AudioBaseSrcLatencyTimePropertyInfo     ,+    constructAudioBaseSrcLatencyTime        ,+    getAudioBaseSrcLatencyTime              ,+    setAudioBaseSrcLatencyTime              ,+++-- ** ProvideClock+    AudioBaseSrcProvideClockPropertyInfo    ,+    constructAudioBaseSrcProvideClock       ,+    getAudioBaseSrcProvideClock             ,+    setAudioBaseSrcProvideClock             ,+++-- ** SlaveMethod+    AudioBaseSrcSlaveMethodPropertyInfo     ,+    constructAudioBaseSrcSlaveMethod        ,+    getAudioBaseSrcSlaveMethod              ,+    setAudioBaseSrcSlaveMethod              ,+++++    ) where++import Prelude ()+import Data.GI.Base.ShortPrelude++import qualified Data.Text as T+import qualified Data.ByteString.Char8 as B+import qualified Data.Map as Map++import GI.GstAudio.Types+import GI.GstAudio.Callbacks+import qualified GI.GObject as GObject+import qualified GI.Gst as Gst+import qualified GI.GstBase as GstBase++newtype AudioBaseSrc = AudioBaseSrc (ForeignPtr AudioBaseSrc)+foreign import ccall "gst_audio_base_src_get_type"+    c_gst_audio_base_src_get_type :: IO GType++type instance ParentTypes AudioBaseSrc = AudioBaseSrcParentTypes+type AudioBaseSrcParentTypes = '[GstBase.PushSrc, GstBase.BaseSrc, Gst.Element, Gst.Object, GObject.Object]++instance GObject AudioBaseSrc where+    gobjectIsInitiallyUnowned _ = True+    gobjectType _ = c_gst_audio_base_src_get_type+    ++class GObject o => AudioBaseSrcK o+instance (GObject o, IsDescendantOf AudioBaseSrc o) => AudioBaseSrcK o++toAudioBaseSrc :: AudioBaseSrcK o => o -> IO AudioBaseSrc+toAudioBaseSrc = unsafeCastTo AudioBaseSrc++noAudioBaseSrc :: Maybe AudioBaseSrc+noAudioBaseSrc = Nothing++type family ResolveAudioBaseSrcMethod (t :: Symbol) (o :: *) :: * where+    ResolveAudioBaseSrcMethod "abortState" o = Gst.ElementAbortStateMethodInfo+    ResolveAudioBaseSrcMethod "addControlBinding" o = Gst.ObjectAddControlBindingMethodInfo+    ResolveAudioBaseSrcMethod "addPad" o = Gst.ElementAddPadMethodInfo+    ResolveAudioBaseSrcMethod "bindProperty" o = GObject.ObjectBindPropertyMethodInfo+    ResolveAudioBaseSrcMethod "bindPropertyFull" o = GObject.ObjectBindPropertyFullMethodInfo+    ResolveAudioBaseSrcMethod "changeState" o = Gst.ElementChangeStateMethodInfo+    ResolveAudioBaseSrcMethod "continueState" o = Gst.ElementContinueStateMethodInfo+    ResolveAudioBaseSrcMethod "createAllPads" o = Gst.ElementCreateAllPadsMethodInfo+    ResolveAudioBaseSrcMethod "createRingbuffer" o = AudioBaseSrcCreateRingbufferMethodInfo+    ResolveAudioBaseSrcMethod "defaultError" o = Gst.ObjectDefaultErrorMethodInfo+    ResolveAudioBaseSrcMethod "forceFloating" o = GObject.ObjectForceFloatingMethodInfo+    ResolveAudioBaseSrcMethod "freezeNotify" o = GObject.ObjectFreezeNotifyMethodInfo+    ResolveAudioBaseSrcMethod "hasActiveControlBindings" o = Gst.ObjectHasActiveControlBindingsMethodInfo+    ResolveAudioBaseSrcMethod "hasAncestor" o = Gst.ObjectHasAncestorMethodInfo+    ResolveAudioBaseSrcMethod "hasAsAncestor" o = Gst.ObjectHasAsAncestorMethodInfo+    ResolveAudioBaseSrcMethod "hasAsParent" o = Gst.ObjectHasAsParentMethodInfo+    ResolveAudioBaseSrcMethod "isAsync" o = GstBase.BaseSrcIsAsyncMethodInfo+    ResolveAudioBaseSrcMethod "isFloating" o = GObject.ObjectIsFloatingMethodInfo+    ResolveAudioBaseSrcMethod "isLive" o = GstBase.BaseSrcIsLiveMethodInfo+    ResolveAudioBaseSrcMethod "isLockedState" o = Gst.ElementIsLockedStateMethodInfo+    ResolveAudioBaseSrcMethod "iteratePads" o = Gst.ElementIteratePadsMethodInfo+    ResolveAudioBaseSrcMethod "iterateSinkPads" o = Gst.ElementIterateSinkPadsMethodInfo+    ResolveAudioBaseSrcMethod "iterateSrcPads" o = Gst.ElementIterateSrcPadsMethodInfo+    ResolveAudioBaseSrcMethod "link" o = Gst.ElementLinkMethodInfo+    ResolveAudioBaseSrcMethod "linkFiltered" o = Gst.ElementLinkFilteredMethodInfo+    ResolveAudioBaseSrcMethod "linkPads" o = Gst.ElementLinkPadsMethodInfo+    ResolveAudioBaseSrcMethod "linkPadsFiltered" o = Gst.ElementLinkPadsFilteredMethodInfo+    ResolveAudioBaseSrcMethod "linkPadsFull" o = Gst.ElementLinkPadsFullMethodInfo+    ResolveAudioBaseSrcMethod "lostState" o = Gst.ElementLostStateMethodInfo+    ResolveAudioBaseSrcMethod "messageFull" o = Gst.ElementMessageFullMethodInfo+    ResolveAudioBaseSrcMethod "newSeamlessSegment" o = GstBase.BaseSrcNewSeamlessSegmentMethodInfo+    ResolveAudioBaseSrcMethod "noMorePads" o = Gst.ElementNoMorePadsMethodInfo+    ResolveAudioBaseSrcMethod "notify" o = GObject.ObjectNotifyMethodInfo+    ResolveAudioBaseSrcMethod "notifyByPspec" o = GObject.ObjectNotifyByPspecMethodInfo+    ResolveAudioBaseSrcMethod "postMessage" o = Gst.ElementPostMessageMethodInfo+    ResolveAudioBaseSrcMethod "provideClock" o = Gst.ElementProvideClockMethodInfo+    ResolveAudioBaseSrcMethod "query" o = Gst.ElementQueryMethodInfo+    ResolveAudioBaseSrcMethod "queryConvert" o = Gst.ElementQueryConvertMethodInfo+    ResolveAudioBaseSrcMethod "queryDuration" o = Gst.ElementQueryDurationMethodInfo+    ResolveAudioBaseSrcMethod "queryLatency" o = GstBase.BaseSrcQueryLatencyMethodInfo+    ResolveAudioBaseSrcMethod "queryPosition" o = Gst.ElementQueryPositionMethodInfo+    ResolveAudioBaseSrcMethod "refSink" o = GObject.ObjectRefSinkMethodInfo+    ResolveAudioBaseSrcMethod "releaseRequestPad" o = Gst.ElementReleaseRequestPadMethodInfo+    ResolveAudioBaseSrcMethod "removeControlBinding" o = Gst.ObjectRemoveControlBindingMethodInfo+    ResolveAudioBaseSrcMethod "removePad" o = Gst.ElementRemovePadMethodInfo+    ResolveAudioBaseSrcMethod "replaceData" o = GObject.ObjectReplaceDataMethodInfo+    ResolveAudioBaseSrcMethod "replaceQdata" o = GObject.ObjectReplaceQdataMethodInfo+    ResolveAudioBaseSrcMethod "requestPad" o = Gst.ElementRequestPadMethodInfo+    ResolveAudioBaseSrcMethod "runDispose" o = GObject.ObjectRunDisposeMethodInfo+    ResolveAudioBaseSrcMethod "seek" o = Gst.ElementSeekMethodInfo+    ResolveAudioBaseSrcMethod "seekSimple" o = Gst.ElementSeekSimpleMethodInfo+    ResolveAudioBaseSrcMethod "sendEvent" o = Gst.ElementSendEventMethodInfo+    ResolveAudioBaseSrcMethod "startComplete" o = GstBase.BaseSrcStartCompleteMethodInfo+    ResolveAudioBaseSrcMethod "startWait" o = GstBase.BaseSrcStartWaitMethodInfo+    ResolveAudioBaseSrcMethod "stealData" o = GObject.ObjectStealDataMethodInfo+    ResolveAudioBaseSrcMethod "stealQdata" o = GObject.ObjectStealQdataMethodInfo+    ResolveAudioBaseSrcMethod "suggestNextSync" o = Gst.ObjectSuggestNextSyncMethodInfo+    ResolveAudioBaseSrcMethod "syncStateWithParent" o = Gst.ElementSyncStateWithParentMethodInfo+    ResolveAudioBaseSrcMethod "syncValues" o = Gst.ObjectSyncValuesMethodInfo+    ResolveAudioBaseSrcMethod "thawNotify" o = GObject.ObjectThawNotifyMethodInfo+    ResolveAudioBaseSrcMethod "unlink" o = Gst.ElementUnlinkMethodInfo+    ResolveAudioBaseSrcMethod "unlinkPads" o = Gst.ElementUnlinkPadsMethodInfo+    ResolveAudioBaseSrcMethod "unparent" o = Gst.ObjectUnparentMethodInfo+    ResolveAudioBaseSrcMethod "waitPlaying" o = GstBase.BaseSrcWaitPlayingMethodInfo+    ResolveAudioBaseSrcMethod "watchClosure" o = GObject.ObjectWatchClosureMethodInfo+    ResolveAudioBaseSrcMethod "getAllocator" o = GstBase.BaseSrcGetAllocatorMethodInfo+    ResolveAudioBaseSrcMethod "getBaseTime" o = Gst.ElementGetBaseTimeMethodInfo+    ResolveAudioBaseSrcMethod "getBlocksize" o = GstBase.BaseSrcGetBlocksizeMethodInfo+    ResolveAudioBaseSrcMethod "getBufferPool" o = GstBase.BaseSrcGetBufferPoolMethodInfo+    ResolveAudioBaseSrcMethod "getBus" o = Gst.ElementGetBusMethodInfo+    ResolveAudioBaseSrcMethod "getClock" o = Gst.ElementGetClockMethodInfo+    ResolveAudioBaseSrcMethod "getCompatiblePad" o = Gst.ElementGetCompatiblePadMethodInfo+    ResolveAudioBaseSrcMethod "getCompatiblePadTemplate" o = Gst.ElementGetCompatiblePadTemplateMethodInfo+    ResolveAudioBaseSrcMethod "getControlBinding" o = Gst.ObjectGetControlBindingMethodInfo+    ResolveAudioBaseSrcMethod "getControlRate" o = Gst.ObjectGetControlRateMethodInfo+    ResolveAudioBaseSrcMethod "getData" o = GObject.ObjectGetDataMethodInfo+    ResolveAudioBaseSrcMethod "getDoTimestamp" o = GstBase.BaseSrcGetDoTimestampMethodInfo+    ResolveAudioBaseSrcMethod "getFactory" o = Gst.ElementGetFactoryMethodInfo+    ResolveAudioBaseSrcMethod "getGValueArray" o = Gst.ObjectGetGValueArrayMethodInfo+    ResolveAudioBaseSrcMethod "getName" o = Gst.ObjectGetNameMethodInfo+    ResolveAudioBaseSrcMethod "getParent" o = Gst.ObjectGetParentMethodInfo+    ResolveAudioBaseSrcMethod "getPathString" o = Gst.ObjectGetPathStringMethodInfo+    ResolveAudioBaseSrcMethod "getProperty" o = GObject.ObjectGetPropertyMethodInfo+    ResolveAudioBaseSrcMethod "getProvideClock" o = AudioBaseSrcGetProvideClockMethodInfo+    ResolveAudioBaseSrcMethod "getQdata" o = GObject.ObjectGetQdataMethodInfo+    ResolveAudioBaseSrcMethod "getRequestPad" o = Gst.ElementGetRequestPadMethodInfo+    ResolveAudioBaseSrcMethod "getSlaveMethod" o = AudioBaseSrcGetSlaveMethodMethodInfo+    ResolveAudioBaseSrcMethod "getStartTime" o = Gst.ElementGetStartTimeMethodInfo+    ResolveAudioBaseSrcMethod "getState" o = Gst.ElementGetStateMethodInfo+    ResolveAudioBaseSrcMethod "getStaticPad" o = Gst.ElementGetStaticPadMethodInfo+    ResolveAudioBaseSrcMethod "getValue" o = Gst.ObjectGetValueMethodInfo+    ResolveAudioBaseSrcMethod "getValueArray" o = Gst.ObjectGetValueArrayMethodInfo+    ResolveAudioBaseSrcMethod "setAsync" o = GstBase.BaseSrcSetAsyncMethodInfo+    ResolveAudioBaseSrcMethod "setAutomaticEos" o = GstBase.BaseSrcSetAutomaticEosMethodInfo+    ResolveAudioBaseSrcMethod "setBaseTime" o = Gst.ElementSetBaseTimeMethodInfo+    ResolveAudioBaseSrcMethod "setBlocksize" o = GstBase.BaseSrcSetBlocksizeMethodInfo+    ResolveAudioBaseSrcMethod "setBus" o = Gst.ElementSetBusMethodInfo+    ResolveAudioBaseSrcMethod "setCaps" o = GstBase.BaseSrcSetCapsMethodInfo+    ResolveAudioBaseSrcMethod "setClock" o = Gst.ElementSetClockMethodInfo+    ResolveAudioBaseSrcMethod "setContext" o = Gst.ElementSetContextMethodInfo+    ResolveAudioBaseSrcMethod "setControlBindingDisabled" o = Gst.ObjectSetControlBindingDisabledMethodInfo+    ResolveAudioBaseSrcMethod "setControlBindingsDisabled" o = Gst.ObjectSetControlBindingsDisabledMethodInfo+    ResolveAudioBaseSrcMethod "setControlRate" o = Gst.ObjectSetControlRateMethodInfo+    ResolveAudioBaseSrcMethod "setData" o = GObject.ObjectSetDataMethodInfo+    ResolveAudioBaseSrcMethod "setDoTimestamp" o = GstBase.BaseSrcSetDoTimestampMethodInfo+    ResolveAudioBaseSrcMethod "setDynamicSize" o = GstBase.BaseSrcSetDynamicSizeMethodInfo+    ResolveAudioBaseSrcMethod "setFormat" o = GstBase.BaseSrcSetFormatMethodInfo+    ResolveAudioBaseSrcMethod "setLive" o = GstBase.BaseSrcSetLiveMethodInfo+    ResolveAudioBaseSrcMethod "setLockedState" o = Gst.ElementSetLockedStateMethodInfo+    ResolveAudioBaseSrcMethod "setName" o = Gst.ObjectSetNameMethodInfo+    ResolveAudioBaseSrcMethod "setParent" o = Gst.ObjectSetParentMethodInfo+    ResolveAudioBaseSrcMethod "setProperty" o = GObject.ObjectSetPropertyMethodInfo+    ResolveAudioBaseSrcMethod "setProvideClock" o = AudioBaseSrcSetProvideClockMethodInfo+    ResolveAudioBaseSrcMethod "setSlaveMethod" o = AudioBaseSrcSetSlaveMethodMethodInfo+    ResolveAudioBaseSrcMethod "setStartTime" o = Gst.ElementSetStartTimeMethodInfo+    ResolveAudioBaseSrcMethod "setState" o = Gst.ElementSetStateMethodInfo+    ResolveAudioBaseSrcMethod l o = MethodResolutionFailed l o++instance (info ~ ResolveAudioBaseSrcMethod t AudioBaseSrc, MethodInfo info AudioBaseSrc p) => IsLabelProxy t (AudioBaseSrc -> p) where+    fromLabelProxy _ = overloadedMethod (MethodProxy :: MethodProxy info)++#if MIN_VERSION_base(4,9,0)+instance (info ~ ResolveAudioBaseSrcMethod t AudioBaseSrc, MethodInfo info AudioBaseSrc p) => IsLabel t (AudioBaseSrc -> p) where+    fromLabel _ = overloadedMethod (MethodProxy :: MethodProxy info)+#endif++-- VVV Prop "actual-buffer-time"+   -- Type: TBasicType TInt64+   -- Flags: [PropertyReadable]++getAudioBaseSrcActualBufferTime :: (MonadIO m, AudioBaseSrcK o) => o -> m Int64+getAudioBaseSrcActualBufferTime obj = liftIO $ getObjectPropertyInt64 obj "actual-buffer-time"++data AudioBaseSrcActualBufferTimePropertyInfo+instance AttrInfo AudioBaseSrcActualBufferTimePropertyInfo where+    type AttrAllowedOps AudioBaseSrcActualBufferTimePropertyInfo = '[ 'AttrGet]+    type AttrSetTypeConstraint AudioBaseSrcActualBufferTimePropertyInfo = (~) ()+    type AttrBaseTypeConstraint AudioBaseSrcActualBufferTimePropertyInfo = AudioBaseSrcK+    type AttrGetType AudioBaseSrcActualBufferTimePropertyInfo = Int64+    type AttrLabel AudioBaseSrcActualBufferTimePropertyInfo = "actual-buffer-time"+    attrGet _ = getAudioBaseSrcActualBufferTime+    attrSet _ = undefined+    attrConstruct _ = undefined++-- VVV Prop "actual-latency-time"+   -- Type: TBasicType TInt64+   -- Flags: [PropertyReadable]++getAudioBaseSrcActualLatencyTime :: (MonadIO m, AudioBaseSrcK o) => o -> m Int64+getAudioBaseSrcActualLatencyTime obj = liftIO $ getObjectPropertyInt64 obj "actual-latency-time"++data AudioBaseSrcActualLatencyTimePropertyInfo+instance AttrInfo AudioBaseSrcActualLatencyTimePropertyInfo where+    type AttrAllowedOps AudioBaseSrcActualLatencyTimePropertyInfo = '[ 'AttrGet]+    type AttrSetTypeConstraint AudioBaseSrcActualLatencyTimePropertyInfo = (~) ()+    type AttrBaseTypeConstraint AudioBaseSrcActualLatencyTimePropertyInfo = AudioBaseSrcK+    type AttrGetType AudioBaseSrcActualLatencyTimePropertyInfo = Int64+    type AttrLabel AudioBaseSrcActualLatencyTimePropertyInfo = "actual-latency-time"+    attrGet _ = getAudioBaseSrcActualLatencyTime+    attrSet _ = undefined+    attrConstruct _ = undefined++-- VVV Prop "buffer-time"+   -- Type: TBasicType TInt64+   -- Flags: [PropertyReadable,PropertyWritable]++getAudioBaseSrcBufferTime :: (MonadIO m, AudioBaseSrcK o) => o -> m Int64+getAudioBaseSrcBufferTime obj = liftIO $ getObjectPropertyInt64 obj "buffer-time"++setAudioBaseSrcBufferTime :: (MonadIO m, AudioBaseSrcK o) => o -> Int64 -> m ()+setAudioBaseSrcBufferTime obj val = liftIO $ setObjectPropertyInt64 obj "buffer-time" val++constructAudioBaseSrcBufferTime :: Int64 -> IO ([Char], GValue)+constructAudioBaseSrcBufferTime val = constructObjectPropertyInt64 "buffer-time" val++data AudioBaseSrcBufferTimePropertyInfo+instance AttrInfo AudioBaseSrcBufferTimePropertyInfo where+    type AttrAllowedOps AudioBaseSrcBufferTimePropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet]+    type AttrSetTypeConstraint AudioBaseSrcBufferTimePropertyInfo = (~) Int64+    type AttrBaseTypeConstraint AudioBaseSrcBufferTimePropertyInfo = AudioBaseSrcK+    type AttrGetType AudioBaseSrcBufferTimePropertyInfo = Int64+    type AttrLabel AudioBaseSrcBufferTimePropertyInfo = "buffer-time"+    attrGet _ = getAudioBaseSrcBufferTime+    attrSet _ = setAudioBaseSrcBufferTime+    attrConstruct _ = constructAudioBaseSrcBufferTime++-- VVV Prop "latency-time"+   -- Type: TBasicType TInt64+   -- Flags: [PropertyReadable,PropertyWritable]++getAudioBaseSrcLatencyTime :: (MonadIO m, AudioBaseSrcK o) => o -> m Int64+getAudioBaseSrcLatencyTime obj = liftIO $ getObjectPropertyInt64 obj "latency-time"++setAudioBaseSrcLatencyTime :: (MonadIO m, AudioBaseSrcK o) => o -> Int64 -> m ()+setAudioBaseSrcLatencyTime obj val = liftIO $ setObjectPropertyInt64 obj "latency-time" val++constructAudioBaseSrcLatencyTime :: Int64 -> IO ([Char], GValue)+constructAudioBaseSrcLatencyTime val = constructObjectPropertyInt64 "latency-time" val++data AudioBaseSrcLatencyTimePropertyInfo+instance AttrInfo AudioBaseSrcLatencyTimePropertyInfo where+    type AttrAllowedOps AudioBaseSrcLatencyTimePropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet]+    type AttrSetTypeConstraint AudioBaseSrcLatencyTimePropertyInfo = (~) Int64+    type AttrBaseTypeConstraint AudioBaseSrcLatencyTimePropertyInfo = AudioBaseSrcK+    type AttrGetType AudioBaseSrcLatencyTimePropertyInfo = Int64+    type AttrLabel AudioBaseSrcLatencyTimePropertyInfo = "latency-time"+    attrGet _ = getAudioBaseSrcLatencyTime+    attrSet _ = setAudioBaseSrcLatencyTime+    attrConstruct _ = constructAudioBaseSrcLatencyTime++-- VVV Prop "provide-clock"+   -- Type: TBasicType TBoolean+   -- Flags: [PropertyReadable,PropertyWritable]++getAudioBaseSrcProvideClock :: (MonadIO m, AudioBaseSrcK o) => o -> m Bool+getAudioBaseSrcProvideClock obj = liftIO $ getObjectPropertyBool obj "provide-clock"++setAudioBaseSrcProvideClock :: (MonadIO m, AudioBaseSrcK o) => o -> Bool -> m ()+setAudioBaseSrcProvideClock obj val = liftIO $ setObjectPropertyBool obj "provide-clock" val++constructAudioBaseSrcProvideClock :: Bool -> IO ([Char], GValue)+constructAudioBaseSrcProvideClock val = constructObjectPropertyBool "provide-clock" val++data AudioBaseSrcProvideClockPropertyInfo+instance AttrInfo AudioBaseSrcProvideClockPropertyInfo where+    type AttrAllowedOps AudioBaseSrcProvideClockPropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet]+    type AttrSetTypeConstraint AudioBaseSrcProvideClockPropertyInfo = (~) Bool+    type AttrBaseTypeConstraint AudioBaseSrcProvideClockPropertyInfo = AudioBaseSrcK+    type AttrGetType AudioBaseSrcProvideClockPropertyInfo = Bool+    type AttrLabel AudioBaseSrcProvideClockPropertyInfo = "provide-clock"+    attrGet _ = getAudioBaseSrcProvideClock+    attrSet _ = setAudioBaseSrcProvideClock+    attrConstruct _ = constructAudioBaseSrcProvideClock++-- VVV Prop "slave-method"+   -- Type: TInterface "GstAudio" "AudioBaseSrcSlaveMethod"+   -- Flags: [PropertyReadable,PropertyWritable]++getAudioBaseSrcSlaveMethod :: (MonadIO m, AudioBaseSrcK o) => o -> m AudioBaseSrcSlaveMethod+getAudioBaseSrcSlaveMethod obj = liftIO $ getObjectPropertyEnum obj "slave-method"++setAudioBaseSrcSlaveMethod :: (MonadIO m, AudioBaseSrcK o) => o -> AudioBaseSrcSlaveMethod -> m ()+setAudioBaseSrcSlaveMethod obj val = liftIO $ setObjectPropertyEnum obj "slave-method" val++constructAudioBaseSrcSlaveMethod :: AudioBaseSrcSlaveMethod -> IO ([Char], GValue)+constructAudioBaseSrcSlaveMethod val = constructObjectPropertyEnum "slave-method" val++data AudioBaseSrcSlaveMethodPropertyInfo+instance AttrInfo AudioBaseSrcSlaveMethodPropertyInfo where+    type AttrAllowedOps AudioBaseSrcSlaveMethodPropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet]+    type AttrSetTypeConstraint AudioBaseSrcSlaveMethodPropertyInfo = (~) AudioBaseSrcSlaveMethod+    type AttrBaseTypeConstraint AudioBaseSrcSlaveMethodPropertyInfo = AudioBaseSrcK+    type AttrGetType AudioBaseSrcSlaveMethodPropertyInfo = AudioBaseSrcSlaveMethod+    type AttrLabel AudioBaseSrcSlaveMethodPropertyInfo = "slave-method"+    attrGet _ = getAudioBaseSrcSlaveMethod+    attrSet _ = setAudioBaseSrcSlaveMethod+    attrConstruct _ = constructAudioBaseSrcSlaveMethod++type instance AttributeList AudioBaseSrc = AudioBaseSrcAttributeList+type AudioBaseSrcAttributeList = ('[ '("actualBufferTime", AudioBaseSrcActualBufferTimePropertyInfo), '("actualLatencyTime", AudioBaseSrcActualLatencyTimePropertyInfo), '("blocksize", GstBase.BaseSrcBlocksizePropertyInfo), '("bufferTime", AudioBaseSrcBufferTimePropertyInfo), '("doTimestamp", GstBase.BaseSrcDoTimestampPropertyInfo), '("latencyTime", AudioBaseSrcLatencyTimePropertyInfo), '("name", Gst.ObjectNamePropertyInfo), '("numBuffers", GstBase.BaseSrcNumBuffersPropertyInfo), '("parent", Gst.ObjectParentPropertyInfo), '("provideClock", AudioBaseSrcProvideClockPropertyInfo), '("slaveMethod", AudioBaseSrcSlaveMethodPropertyInfo), '("typefind", GstBase.BaseSrcTypefindPropertyInfo)] :: [(Symbol, *)])++type instance SignalList AudioBaseSrc = AudioBaseSrcSignalList+type AudioBaseSrcSignalList = ('[ '("deepNotify", Gst.ObjectDeepNotifySignalInfo), '("noMorePads", Gst.ElementNoMorePadsSignalInfo), '("notify", GObject.ObjectNotifySignalInfo), '("padAdded", Gst.ElementPadAddedSignalInfo), '("padRemoved", Gst.ElementPadRemovedSignalInfo)] :: [(Symbol, *)])++-- method AudioBaseSrc::create_ringbuffer+-- method type : OrdinaryMethod+-- Args : [Arg {argCName = "_obj", argType = TInterface "GstAudio" "AudioBaseSrc", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]+-- Lengths : []+-- returnType : TInterface "GstAudio" "AudioRingBuffer"+-- throws : False+-- Skip return : False++foreign import ccall "gst_audio_base_src_create_ringbuffer" gst_audio_base_src_create_ringbuffer :: +    Ptr AudioBaseSrc ->                     -- _obj : TInterface "GstAudio" "AudioBaseSrc"+    IO (Ptr AudioRingBuffer)+++audioBaseSrcCreateRingbuffer ::+    (MonadIO m, AudioBaseSrcK a) =>+    a                                       -- _obj+    -> m AudioRingBuffer                    -- result+audioBaseSrcCreateRingbuffer _obj = liftIO $ do+    let _obj' = unsafeManagedPtrCastPtr _obj+    result <- gst_audio_base_src_create_ringbuffer _obj'+    checkUnexpectedReturnNULL "gst_audio_base_src_create_ringbuffer" result+    result' <- (newObject AudioRingBuffer) result+    touchManagedPtr _obj+    return result'++data AudioBaseSrcCreateRingbufferMethodInfo+instance (signature ~ (m AudioRingBuffer), MonadIO m, AudioBaseSrcK a) => MethodInfo AudioBaseSrcCreateRingbufferMethodInfo a signature where+    overloadedMethod _ = audioBaseSrcCreateRingbuffer++-- method AudioBaseSrc::get_provide_clock+-- method type : OrdinaryMethod+-- Args : [Arg {argCName = "_obj", argType = TInterface "GstAudio" "AudioBaseSrc", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]+-- Lengths : []+-- returnType : TBasicType TBoolean+-- throws : False+-- Skip return : False++foreign import ccall "gst_audio_base_src_get_provide_clock" gst_audio_base_src_get_provide_clock :: +    Ptr AudioBaseSrc ->                     -- _obj : TInterface "GstAudio" "AudioBaseSrc"+    IO CInt+++audioBaseSrcGetProvideClock ::+    (MonadIO m, AudioBaseSrcK a) =>+    a                                       -- _obj+    -> m Bool                               -- result+audioBaseSrcGetProvideClock _obj = liftIO $ do+    let _obj' = unsafeManagedPtrCastPtr _obj+    result <- gst_audio_base_src_get_provide_clock _obj'+    let result' = (/= 0) result+    touchManagedPtr _obj+    return result'++data AudioBaseSrcGetProvideClockMethodInfo+instance (signature ~ (m Bool), MonadIO m, AudioBaseSrcK a) => MethodInfo AudioBaseSrcGetProvideClockMethodInfo a signature where+    overloadedMethod _ = audioBaseSrcGetProvideClock++-- method AudioBaseSrc::get_slave_method+-- method type : OrdinaryMethod+-- Args : [Arg {argCName = "_obj", argType = TInterface "GstAudio" "AudioBaseSrc", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]+-- Lengths : []+-- returnType : TInterface "GstAudio" "AudioBaseSrcSlaveMethod"+-- throws : False+-- Skip return : False++foreign import ccall "gst_audio_base_src_get_slave_method" gst_audio_base_src_get_slave_method :: +    Ptr AudioBaseSrc ->                     -- _obj : TInterface "GstAudio" "AudioBaseSrc"+    IO CUInt+++audioBaseSrcGetSlaveMethod ::+    (MonadIO m, AudioBaseSrcK a) =>+    a                                       -- _obj+    -> m AudioBaseSrcSlaveMethod            -- result+audioBaseSrcGetSlaveMethod _obj = liftIO $ do+    let _obj' = unsafeManagedPtrCastPtr _obj+    result <- gst_audio_base_src_get_slave_method _obj'+    let result' = (toEnum . fromIntegral) result+    touchManagedPtr _obj+    return result'++data AudioBaseSrcGetSlaveMethodMethodInfo+instance (signature ~ (m AudioBaseSrcSlaveMethod), MonadIO m, AudioBaseSrcK a) => MethodInfo AudioBaseSrcGetSlaveMethodMethodInfo a signature where+    overloadedMethod _ = audioBaseSrcGetSlaveMethod++-- method AudioBaseSrc::set_provide_clock+-- method type : OrdinaryMethod+-- Args : [Arg {argCName = "_obj", argType = TInterface "GstAudio" "AudioBaseSrc", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "provide", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]+-- Lengths : []+-- returnType : TBasicType TVoid+-- throws : False+-- Skip return : False++foreign import ccall "gst_audio_base_src_set_provide_clock" gst_audio_base_src_set_provide_clock :: +    Ptr AudioBaseSrc ->                     -- _obj : TInterface "GstAudio" "AudioBaseSrc"+    CInt ->                                 -- provide : TBasicType TBoolean+    IO ()+++audioBaseSrcSetProvideClock ::+    (MonadIO m, AudioBaseSrcK a) =>+    a                                       -- _obj+    -> Bool                                 -- provide+    -> m ()                                 -- result+audioBaseSrcSetProvideClock _obj provide = liftIO $ do+    let _obj' = unsafeManagedPtrCastPtr _obj+    let provide' = (fromIntegral . fromEnum) provide+    gst_audio_base_src_set_provide_clock _obj' provide'+    touchManagedPtr _obj+    return ()++data AudioBaseSrcSetProvideClockMethodInfo+instance (signature ~ (Bool -> m ()), MonadIO m, AudioBaseSrcK a) => MethodInfo AudioBaseSrcSetProvideClockMethodInfo a signature where+    overloadedMethod _ = audioBaseSrcSetProvideClock++-- method AudioBaseSrc::set_slave_method+-- method type : OrdinaryMethod+-- Args : [Arg {argCName = "_obj", argType = TInterface "GstAudio" "AudioBaseSrc", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "method", argType = TInterface "GstAudio" "AudioBaseSrcSlaveMethod", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]+-- Lengths : []+-- returnType : TBasicType TVoid+-- throws : False+-- Skip return : False++foreign import ccall "gst_audio_base_src_set_slave_method" gst_audio_base_src_set_slave_method :: +    Ptr AudioBaseSrc ->                     -- _obj : TInterface "GstAudio" "AudioBaseSrc"+    CUInt ->                                -- method : TInterface "GstAudio" "AudioBaseSrcSlaveMethod"+    IO ()+++audioBaseSrcSetSlaveMethod ::+    (MonadIO m, AudioBaseSrcK a) =>+    a                                       -- _obj+    -> AudioBaseSrcSlaveMethod              -- method+    -> m ()                                 -- result+audioBaseSrcSetSlaveMethod _obj method = liftIO $ do+    let _obj' = unsafeManagedPtrCastPtr _obj+    let method' = (fromIntegral . fromEnum) method+    gst_audio_base_src_set_slave_method _obj' method'+    touchManagedPtr _obj+    return ()++data AudioBaseSrcSetSlaveMethodMethodInfo+instance (signature ~ (AudioBaseSrcSlaveMethod -> m ()), MonadIO m, AudioBaseSrcK a) => MethodInfo AudioBaseSrcSetSlaveMethodMethodInfo a signature where+    overloadedMethod _ = audioBaseSrcSetSlaveMethod++
+ GI/GstAudio/Objects/AudioBaseSrc.hs-boot view
@@ -0,0 +1,24 @@+module GI.GstAudio.Objects.AudioBaseSrc where++import Prelude ()+import Data.GI.Base.ShortPrelude++import qualified Data.Text as T+import qualified Data.ByteString.Char8 as B+import qualified Data.Map as Map++newtype AudioBaseSrc = AudioBaseSrc (ForeignPtr AudioBaseSrc)+instance GObject AudioBaseSrc where+class GObject o => AudioBaseSrcK o+instance (GObject o, IsDescendantOf AudioBaseSrc o) => AudioBaseSrcK o+data AudioBaseSrcActualBufferTimePropertyInfo+data AudioBaseSrcActualLatencyTimePropertyInfo+data AudioBaseSrcBufferTimePropertyInfo+data AudioBaseSrcLatencyTimePropertyInfo+data AudioBaseSrcProvideClockPropertyInfo+data AudioBaseSrcSlaveMethodPropertyInfo+data AudioBaseSrcCreateRingbufferMethodInfo+data AudioBaseSrcGetProvideClockMethodInfo+data AudioBaseSrcGetSlaveMethodMethodInfo+data AudioBaseSrcSetProvideClockMethodInfo+data AudioBaseSrcSetSlaveMethodMethodInfo
+ GI/GstAudio/Objects/AudioCdSrc.hs view
@@ -0,0 +1,324 @@+++{- |+Copyright  : Will Thompson, Iñaki García Etxebarria and Jonas Platte+License    : LGPL-2.1+Maintainer : Iñaki García Etxebarria (garetxe@gmail.com)+-}++module GI.GstAudio.Objects.AudioCdSrc+    ( ++-- * Exported types+    AudioCdSrc(..)                          ,+    AudioCdSrcK                             ,+    toAudioCdSrc                            ,+    noAudioCdSrc                            ,+++ -- * Methods+-- ** audioCdSrcAddTrack+    AudioCdSrcAddTrackMethodInfo            ,+    audioCdSrcAddTrack                      ,+++++ -- * Properties+-- ** Device+    AudioCdSrcDevicePropertyInfo            ,+    constructAudioCdSrcDevice               ,+    getAudioCdSrcDevice                     ,+    setAudioCdSrcDevice                     ,+++-- ** Mode+    AudioCdSrcModePropertyInfo              ,+    constructAudioCdSrcMode                 ,+    getAudioCdSrcMode                       ,+    setAudioCdSrcMode                       ,+++-- ** Track+    AudioCdSrcTrackPropertyInfo             ,+    constructAudioCdSrcTrack                ,+    getAudioCdSrcTrack                      ,+    setAudioCdSrcTrack                      ,+++++    ) where++import Prelude ()+import Data.GI.Base.ShortPrelude++import qualified Data.Text as T+import qualified Data.ByteString.Char8 as B+import qualified Data.Map as Map++import GI.GstAudio.Types+import GI.GstAudio.Callbacks+import qualified GI.GObject as GObject+import qualified GI.Gst as Gst+import qualified GI.GstBase as GstBase++newtype AudioCdSrc = AudioCdSrc (ForeignPtr AudioCdSrc)+foreign import ccall "gst_audio_cd_src_get_type"+    c_gst_audio_cd_src_get_type :: IO GType++type instance ParentTypes AudioCdSrc = AudioCdSrcParentTypes+type AudioCdSrcParentTypes = '[GstBase.PushSrc, GstBase.BaseSrc, Gst.Element, Gst.Object, GObject.Object, Gst.URIHandler]++instance GObject AudioCdSrc where+    gobjectIsInitiallyUnowned _ = True+    gobjectType _ = c_gst_audio_cd_src_get_type+    ++class GObject o => AudioCdSrcK o+instance (GObject o, IsDescendantOf AudioCdSrc o) => AudioCdSrcK o++toAudioCdSrc :: AudioCdSrcK o => o -> IO AudioCdSrc+toAudioCdSrc = unsafeCastTo AudioCdSrc++noAudioCdSrc :: Maybe AudioCdSrc+noAudioCdSrc = Nothing++type family ResolveAudioCdSrcMethod (t :: Symbol) (o :: *) :: * where+    ResolveAudioCdSrcMethod "abortState" o = Gst.ElementAbortStateMethodInfo+    ResolveAudioCdSrcMethod "addControlBinding" o = Gst.ObjectAddControlBindingMethodInfo+    ResolveAudioCdSrcMethod "addPad" o = Gst.ElementAddPadMethodInfo+    ResolveAudioCdSrcMethod "addTrack" o = AudioCdSrcAddTrackMethodInfo+    ResolveAudioCdSrcMethod "bindProperty" o = GObject.ObjectBindPropertyMethodInfo+    ResolveAudioCdSrcMethod "bindPropertyFull" o = GObject.ObjectBindPropertyFullMethodInfo+    ResolveAudioCdSrcMethod "changeState" o = Gst.ElementChangeStateMethodInfo+    ResolveAudioCdSrcMethod "continueState" o = Gst.ElementContinueStateMethodInfo+    ResolveAudioCdSrcMethod "createAllPads" o = Gst.ElementCreateAllPadsMethodInfo+    ResolveAudioCdSrcMethod "defaultError" o = Gst.ObjectDefaultErrorMethodInfo+    ResolveAudioCdSrcMethod "forceFloating" o = GObject.ObjectForceFloatingMethodInfo+    ResolveAudioCdSrcMethod "freezeNotify" o = GObject.ObjectFreezeNotifyMethodInfo+    ResolveAudioCdSrcMethod "hasActiveControlBindings" o = Gst.ObjectHasActiveControlBindingsMethodInfo+    ResolveAudioCdSrcMethod "hasAncestor" o = Gst.ObjectHasAncestorMethodInfo+    ResolveAudioCdSrcMethod "hasAsAncestor" o = Gst.ObjectHasAsAncestorMethodInfo+    ResolveAudioCdSrcMethod "hasAsParent" o = Gst.ObjectHasAsParentMethodInfo+    ResolveAudioCdSrcMethod "isAsync" o = GstBase.BaseSrcIsAsyncMethodInfo+    ResolveAudioCdSrcMethod "isFloating" o = GObject.ObjectIsFloatingMethodInfo+    ResolveAudioCdSrcMethod "isLive" o = GstBase.BaseSrcIsLiveMethodInfo+    ResolveAudioCdSrcMethod "isLockedState" o = Gst.ElementIsLockedStateMethodInfo+    ResolveAudioCdSrcMethod "iteratePads" o = Gst.ElementIteratePadsMethodInfo+    ResolveAudioCdSrcMethod "iterateSinkPads" o = Gst.ElementIterateSinkPadsMethodInfo+    ResolveAudioCdSrcMethod "iterateSrcPads" o = Gst.ElementIterateSrcPadsMethodInfo+    ResolveAudioCdSrcMethod "link" o = Gst.ElementLinkMethodInfo+    ResolveAudioCdSrcMethod "linkFiltered" o = Gst.ElementLinkFilteredMethodInfo+    ResolveAudioCdSrcMethod "linkPads" o = Gst.ElementLinkPadsMethodInfo+    ResolveAudioCdSrcMethod "linkPadsFiltered" o = Gst.ElementLinkPadsFilteredMethodInfo+    ResolveAudioCdSrcMethod "linkPadsFull" o = Gst.ElementLinkPadsFullMethodInfo+    ResolveAudioCdSrcMethod "lostState" o = Gst.ElementLostStateMethodInfo+    ResolveAudioCdSrcMethod "messageFull" o = Gst.ElementMessageFullMethodInfo+    ResolveAudioCdSrcMethod "newSeamlessSegment" o = GstBase.BaseSrcNewSeamlessSegmentMethodInfo+    ResolveAudioCdSrcMethod "noMorePads" o = Gst.ElementNoMorePadsMethodInfo+    ResolveAudioCdSrcMethod "notify" o = GObject.ObjectNotifyMethodInfo+    ResolveAudioCdSrcMethod "notifyByPspec" o = GObject.ObjectNotifyByPspecMethodInfo+    ResolveAudioCdSrcMethod "postMessage" o = Gst.ElementPostMessageMethodInfo+    ResolveAudioCdSrcMethod "provideClock" o = Gst.ElementProvideClockMethodInfo+    ResolveAudioCdSrcMethod "query" o = Gst.ElementQueryMethodInfo+    ResolveAudioCdSrcMethod "queryConvert" o = Gst.ElementQueryConvertMethodInfo+    ResolveAudioCdSrcMethod "queryDuration" o = Gst.ElementQueryDurationMethodInfo+    ResolveAudioCdSrcMethod "queryLatency" o = GstBase.BaseSrcQueryLatencyMethodInfo+    ResolveAudioCdSrcMethod "queryPosition" o = Gst.ElementQueryPositionMethodInfo+    ResolveAudioCdSrcMethod "refSink" o = GObject.ObjectRefSinkMethodInfo+    ResolveAudioCdSrcMethod "releaseRequestPad" o = Gst.ElementReleaseRequestPadMethodInfo+    ResolveAudioCdSrcMethod "removeControlBinding" o = Gst.ObjectRemoveControlBindingMethodInfo+    ResolveAudioCdSrcMethod "removePad" o = Gst.ElementRemovePadMethodInfo+    ResolveAudioCdSrcMethod "replaceData" o = GObject.ObjectReplaceDataMethodInfo+    ResolveAudioCdSrcMethod "replaceQdata" o = GObject.ObjectReplaceQdataMethodInfo+    ResolveAudioCdSrcMethod "requestPad" o = Gst.ElementRequestPadMethodInfo+    ResolveAudioCdSrcMethod "runDispose" o = GObject.ObjectRunDisposeMethodInfo+    ResolveAudioCdSrcMethod "seek" o = Gst.ElementSeekMethodInfo+    ResolveAudioCdSrcMethod "seekSimple" o = Gst.ElementSeekSimpleMethodInfo+    ResolveAudioCdSrcMethod "sendEvent" o = Gst.ElementSendEventMethodInfo+    ResolveAudioCdSrcMethod "startComplete" o = GstBase.BaseSrcStartCompleteMethodInfo+    ResolveAudioCdSrcMethod "startWait" o = GstBase.BaseSrcStartWaitMethodInfo+    ResolveAudioCdSrcMethod "stealData" o = GObject.ObjectStealDataMethodInfo+    ResolveAudioCdSrcMethod "stealQdata" o = GObject.ObjectStealQdataMethodInfo+    ResolveAudioCdSrcMethod "suggestNextSync" o = Gst.ObjectSuggestNextSyncMethodInfo+    ResolveAudioCdSrcMethod "syncStateWithParent" o = Gst.ElementSyncStateWithParentMethodInfo+    ResolveAudioCdSrcMethod "syncValues" o = Gst.ObjectSyncValuesMethodInfo+    ResolveAudioCdSrcMethod "thawNotify" o = GObject.ObjectThawNotifyMethodInfo+    ResolveAudioCdSrcMethod "unlink" o = Gst.ElementUnlinkMethodInfo+    ResolveAudioCdSrcMethod "unlinkPads" o = Gst.ElementUnlinkPadsMethodInfo+    ResolveAudioCdSrcMethod "unparent" o = Gst.ObjectUnparentMethodInfo+    ResolveAudioCdSrcMethod "waitPlaying" o = GstBase.BaseSrcWaitPlayingMethodInfo+    ResolveAudioCdSrcMethod "watchClosure" o = GObject.ObjectWatchClosureMethodInfo+    ResolveAudioCdSrcMethod "getAllocator" o = GstBase.BaseSrcGetAllocatorMethodInfo+    ResolveAudioCdSrcMethod "getBaseTime" o = Gst.ElementGetBaseTimeMethodInfo+    ResolveAudioCdSrcMethod "getBlocksize" o = GstBase.BaseSrcGetBlocksizeMethodInfo+    ResolveAudioCdSrcMethod "getBufferPool" o = GstBase.BaseSrcGetBufferPoolMethodInfo+    ResolveAudioCdSrcMethod "getBus" o = Gst.ElementGetBusMethodInfo+    ResolveAudioCdSrcMethod "getClock" o = Gst.ElementGetClockMethodInfo+    ResolveAudioCdSrcMethod "getCompatiblePad" o = Gst.ElementGetCompatiblePadMethodInfo+    ResolveAudioCdSrcMethod "getCompatiblePadTemplate" o = Gst.ElementGetCompatiblePadTemplateMethodInfo+    ResolveAudioCdSrcMethod "getControlBinding" o = Gst.ObjectGetControlBindingMethodInfo+    ResolveAudioCdSrcMethod "getControlRate" o = Gst.ObjectGetControlRateMethodInfo+    ResolveAudioCdSrcMethod "getData" o = GObject.ObjectGetDataMethodInfo+    ResolveAudioCdSrcMethod "getDoTimestamp" o = GstBase.BaseSrcGetDoTimestampMethodInfo+    ResolveAudioCdSrcMethod "getFactory" o = Gst.ElementGetFactoryMethodInfo+    ResolveAudioCdSrcMethod "getGValueArray" o = Gst.ObjectGetGValueArrayMethodInfo+    ResolveAudioCdSrcMethod "getName" o = Gst.ObjectGetNameMethodInfo+    ResolveAudioCdSrcMethod "getParent" o = Gst.ObjectGetParentMethodInfo+    ResolveAudioCdSrcMethod "getPathString" o = Gst.ObjectGetPathStringMethodInfo+    ResolveAudioCdSrcMethod "getProperty" o = GObject.ObjectGetPropertyMethodInfo+    ResolveAudioCdSrcMethod "getProtocols" o = Gst.URIHandlerGetProtocolsMethodInfo+    ResolveAudioCdSrcMethod "getQdata" o = GObject.ObjectGetQdataMethodInfo+    ResolveAudioCdSrcMethod "getRequestPad" o = Gst.ElementGetRequestPadMethodInfo+    ResolveAudioCdSrcMethod "getStartTime" o = Gst.ElementGetStartTimeMethodInfo+    ResolveAudioCdSrcMethod "getState" o = Gst.ElementGetStateMethodInfo+    ResolveAudioCdSrcMethod "getStaticPad" o = Gst.ElementGetStaticPadMethodInfo+    ResolveAudioCdSrcMethod "getUri" o = Gst.URIHandlerGetUriMethodInfo+    ResolveAudioCdSrcMethod "getUriType" o = Gst.URIHandlerGetUriTypeMethodInfo+    ResolveAudioCdSrcMethod "getValue" o = Gst.ObjectGetValueMethodInfo+    ResolveAudioCdSrcMethod "getValueArray" o = Gst.ObjectGetValueArrayMethodInfo+    ResolveAudioCdSrcMethod "setAsync" o = GstBase.BaseSrcSetAsyncMethodInfo+    ResolveAudioCdSrcMethod "setAutomaticEos" o = GstBase.BaseSrcSetAutomaticEosMethodInfo+    ResolveAudioCdSrcMethod "setBaseTime" o = Gst.ElementSetBaseTimeMethodInfo+    ResolveAudioCdSrcMethod "setBlocksize" o = GstBase.BaseSrcSetBlocksizeMethodInfo+    ResolveAudioCdSrcMethod "setBus" o = Gst.ElementSetBusMethodInfo+    ResolveAudioCdSrcMethod "setCaps" o = GstBase.BaseSrcSetCapsMethodInfo+    ResolveAudioCdSrcMethod "setClock" o = Gst.ElementSetClockMethodInfo+    ResolveAudioCdSrcMethod "setContext" o = Gst.ElementSetContextMethodInfo+    ResolveAudioCdSrcMethod "setControlBindingDisabled" o = Gst.ObjectSetControlBindingDisabledMethodInfo+    ResolveAudioCdSrcMethod "setControlBindingsDisabled" o = Gst.ObjectSetControlBindingsDisabledMethodInfo+    ResolveAudioCdSrcMethod "setControlRate" o = Gst.ObjectSetControlRateMethodInfo+    ResolveAudioCdSrcMethod "setData" o = GObject.ObjectSetDataMethodInfo+    ResolveAudioCdSrcMethod "setDoTimestamp" o = GstBase.BaseSrcSetDoTimestampMethodInfo+    ResolveAudioCdSrcMethod "setDynamicSize" o = GstBase.BaseSrcSetDynamicSizeMethodInfo+    ResolveAudioCdSrcMethod "setFormat" o = GstBase.BaseSrcSetFormatMethodInfo+    ResolveAudioCdSrcMethod "setLive" o = GstBase.BaseSrcSetLiveMethodInfo+    ResolveAudioCdSrcMethod "setLockedState" o = Gst.ElementSetLockedStateMethodInfo+    ResolveAudioCdSrcMethod "setName" o = Gst.ObjectSetNameMethodInfo+    ResolveAudioCdSrcMethod "setParent" o = Gst.ObjectSetParentMethodInfo+    ResolveAudioCdSrcMethod "setProperty" o = GObject.ObjectSetPropertyMethodInfo+    ResolveAudioCdSrcMethod "setStartTime" o = Gst.ElementSetStartTimeMethodInfo+    ResolveAudioCdSrcMethod "setState" o = Gst.ElementSetStateMethodInfo+    ResolveAudioCdSrcMethod "setUri" o = Gst.URIHandlerSetUriMethodInfo+    ResolveAudioCdSrcMethod l o = MethodResolutionFailed l o++instance (info ~ ResolveAudioCdSrcMethod t AudioCdSrc, MethodInfo info AudioCdSrc p) => IsLabelProxy t (AudioCdSrc -> p) where+    fromLabelProxy _ = overloadedMethod (MethodProxy :: MethodProxy info)++#if MIN_VERSION_base(4,9,0)+instance (info ~ ResolveAudioCdSrcMethod t AudioCdSrc, MethodInfo info AudioCdSrc p) => IsLabel t (AudioCdSrc -> p) where+    fromLabel _ = overloadedMethod (MethodProxy :: MethodProxy info)+#endif++-- VVV Prop "device"+   -- Type: TBasicType TUTF8+   -- Flags: [PropertyReadable,PropertyWritable]++getAudioCdSrcDevice :: (MonadIO m, AudioCdSrcK o) => o -> m T.Text+getAudioCdSrcDevice obj = liftIO $ getObjectPropertyString obj "device"++setAudioCdSrcDevice :: (MonadIO m, AudioCdSrcK o) => o -> T.Text -> m ()+setAudioCdSrcDevice obj val = liftIO $ setObjectPropertyString obj "device" val++constructAudioCdSrcDevice :: T.Text -> IO ([Char], GValue)+constructAudioCdSrcDevice val = constructObjectPropertyString "device" val++data AudioCdSrcDevicePropertyInfo+instance AttrInfo AudioCdSrcDevicePropertyInfo where+    type AttrAllowedOps AudioCdSrcDevicePropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet]+    type AttrSetTypeConstraint AudioCdSrcDevicePropertyInfo = (~) T.Text+    type AttrBaseTypeConstraint AudioCdSrcDevicePropertyInfo = AudioCdSrcK+    type AttrGetType AudioCdSrcDevicePropertyInfo = T.Text+    type AttrLabel AudioCdSrcDevicePropertyInfo = "device"+    attrGet _ = getAudioCdSrcDevice+    attrSet _ = setAudioCdSrcDevice+    attrConstruct _ = constructAudioCdSrcDevice++-- VVV Prop "mode"+   -- Type: TInterface "GstAudio" "AudioCdSrcMode"+   -- Flags: [PropertyReadable,PropertyWritable]++getAudioCdSrcMode :: (MonadIO m, AudioCdSrcK o) => o -> m AudioCdSrcMode+getAudioCdSrcMode obj = liftIO $ getObjectPropertyEnum obj "mode"++setAudioCdSrcMode :: (MonadIO m, AudioCdSrcK o) => o -> AudioCdSrcMode -> m ()+setAudioCdSrcMode obj val = liftIO $ setObjectPropertyEnum obj "mode" val++constructAudioCdSrcMode :: AudioCdSrcMode -> IO ([Char], GValue)+constructAudioCdSrcMode val = constructObjectPropertyEnum "mode" val++data AudioCdSrcModePropertyInfo+instance AttrInfo AudioCdSrcModePropertyInfo where+    type AttrAllowedOps AudioCdSrcModePropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet]+    type AttrSetTypeConstraint AudioCdSrcModePropertyInfo = (~) AudioCdSrcMode+    type AttrBaseTypeConstraint AudioCdSrcModePropertyInfo = AudioCdSrcK+    type AttrGetType AudioCdSrcModePropertyInfo = AudioCdSrcMode+    type AttrLabel AudioCdSrcModePropertyInfo = "mode"+    attrGet _ = getAudioCdSrcMode+    attrSet _ = setAudioCdSrcMode+    attrConstruct _ = constructAudioCdSrcMode++-- VVV Prop "track"+   -- Type: TBasicType TUInt32+   -- Flags: [PropertyReadable,PropertyWritable]++getAudioCdSrcTrack :: (MonadIO m, AudioCdSrcK o) => o -> m Word32+getAudioCdSrcTrack obj = liftIO $ getObjectPropertyCUInt obj "track"++setAudioCdSrcTrack :: (MonadIO m, AudioCdSrcK o) => o -> Word32 -> m ()+setAudioCdSrcTrack obj val = liftIO $ setObjectPropertyCUInt obj "track" val++constructAudioCdSrcTrack :: Word32 -> IO ([Char], GValue)+constructAudioCdSrcTrack val = constructObjectPropertyCUInt "track" val++data AudioCdSrcTrackPropertyInfo+instance AttrInfo AudioCdSrcTrackPropertyInfo where+    type AttrAllowedOps AudioCdSrcTrackPropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet]+    type AttrSetTypeConstraint AudioCdSrcTrackPropertyInfo = (~) Word32+    type AttrBaseTypeConstraint AudioCdSrcTrackPropertyInfo = AudioCdSrcK+    type AttrGetType AudioCdSrcTrackPropertyInfo = Word32+    type AttrLabel AudioCdSrcTrackPropertyInfo = "track"+    attrGet _ = getAudioCdSrcTrack+    attrSet _ = setAudioCdSrcTrack+    attrConstruct _ = constructAudioCdSrcTrack++type instance AttributeList AudioCdSrc = AudioCdSrcAttributeList+type AudioCdSrcAttributeList = ('[ '("blocksize", GstBase.BaseSrcBlocksizePropertyInfo), '("device", AudioCdSrcDevicePropertyInfo), '("doTimestamp", GstBase.BaseSrcDoTimestampPropertyInfo), '("mode", AudioCdSrcModePropertyInfo), '("name", Gst.ObjectNamePropertyInfo), '("numBuffers", GstBase.BaseSrcNumBuffersPropertyInfo), '("parent", Gst.ObjectParentPropertyInfo), '("track", AudioCdSrcTrackPropertyInfo), '("typefind", GstBase.BaseSrcTypefindPropertyInfo)] :: [(Symbol, *)])++type instance SignalList AudioCdSrc = AudioCdSrcSignalList+type AudioCdSrcSignalList = ('[ '("deepNotify", Gst.ObjectDeepNotifySignalInfo), '("noMorePads", Gst.ElementNoMorePadsSignalInfo), '("notify", GObject.ObjectNotifySignalInfo), '("padAdded", Gst.ElementPadAddedSignalInfo), '("padRemoved", Gst.ElementPadRemovedSignalInfo)] :: [(Symbol, *)])++-- method AudioCdSrc::add_track+-- method type : OrdinaryMethod+-- Args : [Arg {argCName = "_obj", argType = TInterface "GstAudio" "AudioCdSrc", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "track", argType = TInterface "GstAudio" "AudioCdSrcTrack", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]+-- Lengths : []+-- returnType : TBasicType TBoolean+-- throws : False+-- Skip return : False++foreign import ccall "gst_audio_cd_src_add_track" gst_audio_cd_src_add_track :: +    Ptr AudioCdSrc ->                       -- _obj : TInterface "GstAudio" "AudioCdSrc"+    Ptr AudioCdSrcTrack ->                  -- track : TInterface "GstAudio" "AudioCdSrcTrack"+    IO CInt+++audioCdSrcAddTrack ::+    (MonadIO m, AudioCdSrcK a) =>+    a                                       -- _obj+    -> AudioCdSrcTrack                      -- track+    -> m Bool                               -- result+audioCdSrcAddTrack _obj track = liftIO $ do+    let _obj' = unsafeManagedPtrCastPtr _obj+    let track' = unsafeManagedPtrGetPtr track+    result <- gst_audio_cd_src_add_track _obj' track'+    let result' = (/= 0) result+    touchManagedPtr _obj+    touchManagedPtr track+    return result'++data AudioCdSrcAddTrackMethodInfo+instance (signature ~ (AudioCdSrcTrack -> m Bool), MonadIO m, AudioCdSrcK a) => MethodInfo AudioCdSrcAddTrackMethodInfo a signature where+    overloadedMethod _ = audioCdSrcAddTrack++
+ GI/GstAudio/Objects/AudioCdSrc.hs-boot view
@@ -0,0 +1,17 @@+module GI.GstAudio.Objects.AudioCdSrc where++import Prelude ()+import Data.GI.Base.ShortPrelude++import qualified Data.Text as T+import qualified Data.ByteString.Char8 as B+import qualified Data.Map as Map++newtype AudioCdSrc = AudioCdSrc (ForeignPtr AudioCdSrc)+instance GObject AudioCdSrc where+class GObject o => AudioCdSrcK o+instance (GObject o, IsDescendantOf AudioCdSrc o) => AudioCdSrcK o+data AudioCdSrcDevicePropertyInfo+data AudioCdSrcModePropertyInfo+data AudioCdSrcTrackPropertyInfo+data AudioCdSrcAddTrackMethodInfo
+ GI/GstAudio/Objects/AudioClock.hs view
@@ -0,0 +1,293 @@+++{- |+Copyright  : Will Thompson, Iñaki García Etxebarria and Jonas Platte+License    : LGPL-2.1+Maintainer : Iñaki García Etxebarria (garetxe@gmail.com)+-}++module GI.GstAudio.Objects.AudioClock+    ( ++-- * Exported types+    AudioClock(..)                          ,+    AudioClockK                             ,+    toAudioClock                            ,+    noAudioClock                            ,+++ -- * Methods+-- ** audioClockAdjust+    audioClockAdjust                        ,+++-- ** audioClockGetTime+    audioClockGetTime                       ,+++-- ** audioClockInvalidate+    audioClockInvalidate                    ,+++-- ** audioClockNew+    audioClockNew                           ,+++-- ** audioClockReset+    AudioClockResetMethodInfo               ,+    audioClockReset                         ,+++++    ) where++import Prelude ()+import Data.GI.Base.ShortPrelude++import qualified Data.Text as T+import qualified Data.ByteString.Char8 as B+import qualified Data.Map as Map++import GI.GstAudio.Types+import GI.GstAudio.Callbacks+import qualified GI.GLib as GLib+import qualified GI.GObject as GObject+import qualified GI.Gst as Gst++newtype AudioClock = AudioClock (ForeignPtr AudioClock)+foreign import ccall "gst_audio_clock_get_type"+    c_gst_audio_clock_get_type :: IO GType++type instance ParentTypes AudioClock = AudioClockParentTypes+type AudioClockParentTypes = '[Gst.SystemClock, Gst.Clock, Gst.Object, GObject.Object]++instance GObject AudioClock where+    gobjectIsInitiallyUnowned _ = True+    gobjectType _ = c_gst_audio_clock_get_type+    ++class GObject o => AudioClockK o+instance (GObject o, IsDescendantOf AudioClock o) => AudioClockK o++toAudioClock :: AudioClockK o => o -> IO AudioClock+toAudioClock = unsafeCastTo AudioClock++noAudioClock :: Maybe AudioClock+noAudioClock = Nothing++type family ResolveAudioClockMethod (t :: Symbol) (o :: *) :: * where+    ResolveAudioClockMethod "addControlBinding" o = Gst.ObjectAddControlBindingMethodInfo+    ResolveAudioClockMethod "addObservation" o = Gst.ClockAddObservationMethodInfo+    ResolveAudioClockMethod "addObservationUnapplied" o = Gst.ClockAddObservationUnappliedMethodInfo+    ResolveAudioClockMethod "adjustUnlocked" o = Gst.ClockAdjustUnlockedMethodInfo+    ResolveAudioClockMethod "adjustWithCalibration" o = Gst.ClockAdjustWithCalibrationMethodInfo+    ResolveAudioClockMethod "bindProperty" o = GObject.ObjectBindPropertyMethodInfo+    ResolveAudioClockMethod "bindPropertyFull" o = GObject.ObjectBindPropertyFullMethodInfo+    ResolveAudioClockMethod "defaultError" o = Gst.ObjectDefaultErrorMethodInfo+    ResolveAudioClockMethod "forceFloating" o = GObject.ObjectForceFloatingMethodInfo+    ResolveAudioClockMethod "freezeNotify" o = GObject.ObjectFreezeNotifyMethodInfo+    ResolveAudioClockMethod "hasActiveControlBindings" o = Gst.ObjectHasActiveControlBindingsMethodInfo+    ResolveAudioClockMethod "hasAncestor" o = Gst.ObjectHasAncestorMethodInfo+    ResolveAudioClockMethod "hasAsAncestor" o = Gst.ObjectHasAsAncestorMethodInfo+    ResolveAudioClockMethod "hasAsParent" o = Gst.ObjectHasAsParentMethodInfo+    ResolveAudioClockMethod "isFloating" o = GObject.ObjectIsFloatingMethodInfo+    ResolveAudioClockMethod "isSynced" o = Gst.ClockIsSyncedMethodInfo+    ResolveAudioClockMethod "newPeriodicId" o = Gst.ClockNewPeriodicIdMethodInfo+    ResolveAudioClockMethod "newSingleShotId" o = Gst.ClockNewSingleShotIdMethodInfo+    ResolveAudioClockMethod "notify" o = GObject.ObjectNotifyMethodInfo+    ResolveAudioClockMethod "notifyByPspec" o = GObject.ObjectNotifyByPspecMethodInfo+    ResolveAudioClockMethod "periodicIdReinit" o = Gst.ClockPeriodicIdReinitMethodInfo+    ResolveAudioClockMethod "refSink" o = GObject.ObjectRefSinkMethodInfo+    ResolveAudioClockMethod "removeControlBinding" o = Gst.ObjectRemoveControlBindingMethodInfo+    ResolveAudioClockMethod "replaceData" o = GObject.ObjectReplaceDataMethodInfo+    ResolveAudioClockMethod "replaceQdata" o = GObject.ObjectReplaceQdataMethodInfo+    ResolveAudioClockMethod "reset" o = AudioClockResetMethodInfo+    ResolveAudioClockMethod "runDispose" o = GObject.ObjectRunDisposeMethodInfo+    ResolveAudioClockMethod "singleShotIdReinit" o = Gst.ClockSingleShotIdReinitMethodInfo+    ResolveAudioClockMethod "stealData" o = GObject.ObjectStealDataMethodInfo+    ResolveAudioClockMethod "stealQdata" o = GObject.ObjectStealQdataMethodInfo+    ResolveAudioClockMethod "suggestNextSync" o = Gst.ObjectSuggestNextSyncMethodInfo+    ResolveAudioClockMethod "syncValues" o = Gst.ObjectSyncValuesMethodInfo+    ResolveAudioClockMethod "thawNotify" o = GObject.ObjectThawNotifyMethodInfo+    ResolveAudioClockMethod "unadjustUnlocked" o = Gst.ClockUnadjustUnlockedMethodInfo+    ResolveAudioClockMethod "unparent" o = Gst.ObjectUnparentMethodInfo+    ResolveAudioClockMethod "waitForSync" o = Gst.ClockWaitForSyncMethodInfo+    ResolveAudioClockMethod "watchClosure" o = GObject.ObjectWatchClosureMethodInfo+    ResolveAudioClockMethod "getCalibration" o = Gst.ClockGetCalibrationMethodInfo+    ResolveAudioClockMethod "getControlBinding" o = Gst.ObjectGetControlBindingMethodInfo+    ResolveAudioClockMethod "getControlRate" o = Gst.ObjectGetControlRateMethodInfo+    ResolveAudioClockMethod "getData" o = GObject.ObjectGetDataMethodInfo+    ResolveAudioClockMethod "getGValueArray" o = Gst.ObjectGetGValueArrayMethodInfo+    ResolveAudioClockMethod "getInternalTime" o = Gst.ClockGetInternalTimeMethodInfo+    ResolveAudioClockMethod "getMaster" o = Gst.ClockGetMasterMethodInfo+    ResolveAudioClockMethod "getName" o = Gst.ObjectGetNameMethodInfo+    ResolveAudioClockMethod "getParent" o = Gst.ObjectGetParentMethodInfo+    ResolveAudioClockMethod "getPathString" o = Gst.ObjectGetPathStringMethodInfo+    ResolveAudioClockMethod "getProperty" o = GObject.ObjectGetPropertyMethodInfo+    ResolveAudioClockMethod "getQdata" o = GObject.ObjectGetQdataMethodInfo+    ResolveAudioClockMethod "getResolution" o = Gst.ClockGetResolutionMethodInfo+    ResolveAudioClockMethod "getTimeout" o = Gst.ClockGetTimeoutMethodInfo+    ResolveAudioClockMethod "getValue" o = Gst.ObjectGetValueMethodInfo+    ResolveAudioClockMethod "getValueArray" o = Gst.ObjectGetValueArrayMethodInfo+    ResolveAudioClockMethod "setCalibration" o = Gst.ClockSetCalibrationMethodInfo+    ResolveAudioClockMethod "setControlBindingDisabled" o = Gst.ObjectSetControlBindingDisabledMethodInfo+    ResolveAudioClockMethod "setControlBindingsDisabled" o = Gst.ObjectSetControlBindingsDisabledMethodInfo+    ResolveAudioClockMethod "setControlRate" o = Gst.ObjectSetControlRateMethodInfo+    ResolveAudioClockMethod "setData" o = GObject.ObjectSetDataMethodInfo+    ResolveAudioClockMethod "setMaster" o = Gst.ClockSetMasterMethodInfo+    ResolveAudioClockMethod "setName" o = Gst.ObjectSetNameMethodInfo+    ResolveAudioClockMethod "setParent" o = Gst.ObjectSetParentMethodInfo+    ResolveAudioClockMethod "setProperty" o = GObject.ObjectSetPropertyMethodInfo+    ResolveAudioClockMethod "setResolution" o = Gst.ClockSetResolutionMethodInfo+    ResolveAudioClockMethod "setSynced" o = Gst.ClockSetSyncedMethodInfo+    ResolveAudioClockMethod "setTimeout" o = Gst.ClockSetTimeoutMethodInfo+    ResolveAudioClockMethod l o = MethodResolutionFailed l o++instance (info ~ ResolveAudioClockMethod t AudioClock, MethodInfo info AudioClock p) => IsLabelProxy t (AudioClock -> p) where+    fromLabelProxy _ = overloadedMethod (MethodProxy :: MethodProxy info)++#if MIN_VERSION_base(4,9,0)+instance (info ~ ResolveAudioClockMethod t AudioClock, MethodInfo info AudioClock p) => IsLabel t (AudioClock -> p) where+    fromLabel _ = overloadedMethod (MethodProxy :: MethodProxy info)+#endif++type instance AttributeList AudioClock = AudioClockAttributeList+type AudioClockAttributeList = ('[ '("clockType", Gst.SystemClockClockTypePropertyInfo), '("name", Gst.ObjectNamePropertyInfo), '("parent", Gst.ObjectParentPropertyInfo), '("timeout", Gst.ClockTimeoutPropertyInfo), '("windowSize", Gst.ClockWindowSizePropertyInfo), '("windowThreshold", Gst.ClockWindowThresholdPropertyInfo)] :: [(Symbol, *)])++type instance SignalList AudioClock = AudioClockSignalList+type AudioClockSignalList = ('[ '("deepNotify", Gst.ObjectDeepNotifySignalInfo), '("notify", GObject.ObjectNotifySignalInfo), '("synced", Gst.ClockSyncedSignalInfo)] :: [(Symbol, *)])++-- method AudioClock::new+-- method type : Constructor+-- Args : [Arg {argCName = "name", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "func", argType = TInterface "GstAudio" "AudioClockGetTimeFunc", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeNotified, argClosure = 2, argDestroy = 3, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "user_data", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "destroy_notify", argType = TInterface "GLib" "DestroyNotify", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeAsync, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]+-- Lengths : []+-- returnType : TInterface "GstAudio" "AudioClock"+-- throws : False+-- Skip return : False++foreign import ccall "gst_audio_clock_new" gst_audio_clock_new :: +    CString ->                              -- name : TBasicType TUTF8+    FunPtr AudioClockGetTimeFuncC ->        -- func : TInterface "GstAudio" "AudioClockGetTimeFunc"+    Ptr () ->                               -- user_data : TBasicType TVoid+    FunPtr GLib.DestroyNotifyC ->           -- destroy_notify : TInterface "GLib" "DestroyNotify"+    IO (Ptr AudioClock)+++audioClockNew ::+    (MonadIO m) =>+    T.Text                                  -- name+    -> AudioClockGetTimeFunc                -- func+    -> m AudioClock                         -- result+audioClockNew name func = liftIO $ do+    name' <- textToCString name+    func' <- mkAudioClockGetTimeFunc (audioClockGetTimeFuncWrapper Nothing func)+    let userData = castFunPtrToPtr func'+    let destroyNotify = safeFreeFunPtrPtr+    result <- gst_audio_clock_new name' func' userData destroyNotify+    checkUnexpectedReturnNULL "gst_audio_clock_new" result+    result' <- (newObject AudioClock) result+    freeMem name'+    return result'++-- method AudioClock::reset+-- method type : OrdinaryMethod+-- Args : [Arg {argCName = "_obj", argType = TInterface "GstAudio" "AudioClock", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "time", argType = TBasicType TUInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]+-- Lengths : []+-- returnType : TBasicType TVoid+-- throws : False+-- Skip return : False++foreign import ccall "gst_audio_clock_reset" gst_audio_clock_reset :: +    Ptr AudioClock ->                       -- _obj : TInterface "GstAudio" "AudioClock"+    Word64 ->                               -- time : TBasicType TUInt64+    IO ()+++audioClockReset ::+    (MonadIO m, AudioClockK a) =>+    a                                       -- _obj+    -> Word64                               -- time+    -> m ()                                 -- result+audioClockReset _obj time = liftIO $ do+    let _obj' = unsafeManagedPtrCastPtr _obj+    gst_audio_clock_reset _obj' time+    touchManagedPtr _obj+    return ()++data AudioClockResetMethodInfo+instance (signature ~ (Word64 -> m ()), MonadIO m, AudioClockK a) => MethodInfo AudioClockResetMethodInfo a signature where+    overloadedMethod _ = audioClockReset++-- method AudioClock::adjust+-- method type : MemberFunction+-- Args : [Arg {argCName = "clock", argType = TInterface "Gst" "Clock", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "time", argType = TBasicType TUInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]+-- Lengths : []+-- returnType : TBasicType TUInt64+-- throws : False+-- Skip return : False++foreign import ccall "gst_audio_clock_adjust" gst_audio_clock_adjust :: +    Ptr Gst.Clock ->                        -- clock : TInterface "Gst" "Clock"+    Word64 ->                               -- time : TBasicType TUInt64+    IO Word64+++audioClockAdjust ::+    (MonadIO m, Gst.ClockK a) =>+    a                                       -- clock+    -> Word64                               -- time+    -> m Word64                             -- result+audioClockAdjust clock time = liftIO $ do+    let clock' = unsafeManagedPtrCastPtr clock+    result <- gst_audio_clock_adjust clock' time+    touchManagedPtr clock+    return result++-- method AudioClock::get_time+-- method type : MemberFunction+-- Args : [Arg {argCName = "clock", argType = TInterface "Gst" "Clock", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]+-- Lengths : []+-- returnType : TBasicType TUInt64+-- throws : False+-- Skip return : False++foreign import ccall "gst_audio_clock_get_time" gst_audio_clock_get_time :: +    Ptr Gst.Clock ->                        -- clock : TInterface "Gst" "Clock"+    IO Word64+++audioClockGetTime ::+    (MonadIO m, Gst.ClockK a) =>+    a                                       -- clock+    -> m Word64                             -- result+audioClockGetTime clock = liftIO $ do+    let clock' = unsafeManagedPtrCastPtr clock+    result <- gst_audio_clock_get_time clock'+    touchManagedPtr clock+    return result++-- method AudioClock::invalidate+-- method type : MemberFunction+-- Args : [Arg {argCName = "clock", argType = TInterface "Gst" "Clock", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]+-- Lengths : []+-- returnType : TBasicType TVoid+-- throws : False+-- Skip return : False++foreign import ccall "gst_audio_clock_invalidate" gst_audio_clock_invalidate :: +    Ptr Gst.Clock ->                        -- clock : TInterface "Gst" "Clock"+    IO ()+++audioClockInvalidate ::+    (MonadIO m, Gst.ClockK a) =>+    a                                       -- clock+    -> m ()                                 -- result+audioClockInvalidate clock = liftIO $ do+    let clock' = unsafeManagedPtrCastPtr clock+    gst_audio_clock_invalidate clock'+    touchManagedPtr clock+    return ()++
+ GI/GstAudio/Objects/AudioClock.hs-boot view
@@ -0,0 +1,14 @@+module GI.GstAudio.Objects.AudioClock where++import Prelude ()+import Data.GI.Base.ShortPrelude++import qualified Data.Text as T+import qualified Data.ByteString.Char8 as B+import qualified Data.Map as Map++newtype AudioClock = AudioClock (ForeignPtr AudioClock)+instance GObject AudioClock where+class GObject o => AudioClockK o+instance (GObject o, IsDescendantOf AudioClock o) => AudioClockK o+data AudioClockResetMethodInfo
+ GI/GstAudio/Objects/AudioDecoder.hs view
@@ -0,0 +1,1320 @@+++{- |+Copyright  : Will Thompson, Iñaki García Etxebarria and Jonas Platte+License    : LGPL-2.1+Maintainer : Iñaki García Etxebarria (garetxe@gmail.com)+-}++module GI.GstAudio.Objects.AudioDecoder+    ( ++-- * Exported types+    AudioDecoder(..)                        ,+    AudioDecoderK                           ,+    toAudioDecoder                          ,+    noAudioDecoder                          ,+++ -- * Methods+-- ** audioDecoderAllocateOutputBuffer+    AudioDecoderAllocateOutputBufferMethodInfo,+    audioDecoderAllocateOutputBuffer        ,+++-- ** audioDecoderFinishFrame+    AudioDecoderFinishFrameMethodInfo       ,+    audioDecoderFinishFrame                 ,+++-- ** audioDecoderGetAllocator+    AudioDecoderGetAllocatorMethodInfo      ,+    audioDecoderGetAllocator                ,+++-- ** audioDecoderGetAudioInfo+    AudioDecoderGetAudioInfoMethodInfo      ,+    audioDecoderGetAudioInfo                ,+++-- ** audioDecoderGetDelay+    AudioDecoderGetDelayMethodInfo          ,+    audioDecoderGetDelay                    ,+++-- ** audioDecoderGetDrainable+    AudioDecoderGetDrainableMethodInfo      ,+    audioDecoderGetDrainable                ,+++-- ** audioDecoderGetEstimateRate+    AudioDecoderGetEstimateRateMethodInfo   ,+    audioDecoderGetEstimateRate             ,+++-- ** audioDecoderGetLatency+    AudioDecoderGetLatencyMethodInfo        ,+    audioDecoderGetLatency                  ,+++-- ** audioDecoderGetMaxErrors+    AudioDecoderGetMaxErrorsMethodInfo      ,+    audioDecoderGetMaxErrors                ,+++-- ** audioDecoderGetMinLatency+    AudioDecoderGetMinLatencyMethodInfo     ,+    audioDecoderGetMinLatency               ,+++-- ** audioDecoderGetNeedsFormat+    AudioDecoderGetNeedsFormatMethodInfo    ,+    audioDecoderGetNeedsFormat              ,+++-- ** audioDecoderGetParseState+    AudioDecoderGetParseStateMethodInfo     ,+    audioDecoderGetParseState               ,+++-- ** audioDecoderGetPlc+    AudioDecoderGetPlcMethodInfo            ,+    audioDecoderGetPlc                      ,+++-- ** audioDecoderGetPlcAware+    AudioDecoderGetPlcAwareMethodInfo       ,+    audioDecoderGetPlcAware                 ,+++-- ** audioDecoderGetTolerance+    AudioDecoderGetToleranceMethodInfo      ,+    audioDecoderGetTolerance                ,+++-- ** audioDecoderMergeTags+    AudioDecoderMergeTagsMethodInfo         ,+    audioDecoderMergeTags                   ,+++-- ** audioDecoderNegotiate+    AudioDecoderNegotiateMethodInfo         ,+    audioDecoderNegotiate                   ,+++-- ** audioDecoderProxyGetcaps+    AudioDecoderProxyGetcapsMethodInfo      ,+    audioDecoderProxyGetcaps                ,+++-- ** audioDecoderSetDrainable+    AudioDecoderSetDrainableMethodInfo      ,+    audioDecoderSetDrainable                ,+++-- ** audioDecoderSetEstimateRate+    AudioDecoderSetEstimateRateMethodInfo   ,+    audioDecoderSetEstimateRate             ,+++-- ** audioDecoderSetLatency+    AudioDecoderSetLatencyMethodInfo        ,+    audioDecoderSetLatency                  ,+++-- ** audioDecoderSetMaxErrors+    AudioDecoderSetMaxErrorsMethodInfo      ,+    audioDecoderSetMaxErrors                ,+++-- ** audioDecoderSetMinLatency+    AudioDecoderSetMinLatencyMethodInfo     ,+    audioDecoderSetMinLatency               ,+++-- ** audioDecoderSetNeedsFormat+    AudioDecoderSetNeedsFormatMethodInfo    ,+    audioDecoderSetNeedsFormat              ,+++-- ** audioDecoderSetOutputFormat+    AudioDecoderSetOutputFormatMethodInfo   ,+    audioDecoderSetOutputFormat             ,+++-- ** audioDecoderSetPlc+    AudioDecoderSetPlcMethodInfo            ,+    audioDecoderSetPlc                      ,+++-- ** audioDecoderSetPlcAware+    AudioDecoderSetPlcAwareMethodInfo       ,+    audioDecoderSetPlcAware                 ,+++-- ** audioDecoderSetTolerance+    AudioDecoderSetToleranceMethodInfo      ,+    audioDecoderSetTolerance                ,+++-- ** audioDecoderSetUseDefaultPadAcceptcaps+    AudioDecoderSetUseDefaultPadAcceptcapsMethodInfo,+    audioDecoderSetUseDefaultPadAcceptcaps  ,+++++ -- * Properties+-- ** MinLatency+    AudioDecoderMinLatencyPropertyInfo      ,+    constructAudioDecoderMinLatency         ,+    getAudioDecoderMinLatency               ,+    setAudioDecoderMinLatency               ,+++-- ** Plc+    AudioDecoderPlcPropertyInfo             ,+    constructAudioDecoderPlc                ,+    getAudioDecoderPlc                      ,+    setAudioDecoderPlc                      ,+++-- ** Tolerance+    AudioDecoderTolerancePropertyInfo       ,+    constructAudioDecoderTolerance          ,+    getAudioDecoderTolerance                ,+    setAudioDecoderTolerance                ,+++++    ) where++import Prelude ()+import Data.GI.Base.ShortPrelude++import qualified Data.Text as T+import qualified Data.ByteString.Char8 as B+import qualified Data.Map as Map++import GI.GstAudio.Types+import GI.GstAudio.Callbacks+import qualified GI.GObject as GObject+import qualified GI.Gst as Gst++newtype AudioDecoder = AudioDecoder (ForeignPtr AudioDecoder)+foreign import ccall "gst_audio_decoder_get_type"+    c_gst_audio_decoder_get_type :: IO GType++type instance ParentTypes AudioDecoder = AudioDecoderParentTypes+type AudioDecoderParentTypes = '[Gst.Element, Gst.Object, GObject.Object]++instance GObject AudioDecoder where+    gobjectIsInitiallyUnowned _ = True+    gobjectType _ = c_gst_audio_decoder_get_type+    ++class GObject o => AudioDecoderK o+instance (GObject o, IsDescendantOf AudioDecoder o) => AudioDecoderK o++toAudioDecoder :: AudioDecoderK o => o -> IO AudioDecoder+toAudioDecoder = unsafeCastTo AudioDecoder++noAudioDecoder :: Maybe AudioDecoder+noAudioDecoder = Nothing++type family ResolveAudioDecoderMethod (t :: Symbol) (o :: *) :: * where+    ResolveAudioDecoderMethod "abortState" o = Gst.ElementAbortStateMethodInfo+    ResolveAudioDecoderMethod "addControlBinding" o = Gst.ObjectAddControlBindingMethodInfo+    ResolveAudioDecoderMethod "addPad" o = Gst.ElementAddPadMethodInfo+    ResolveAudioDecoderMethod "allocateOutputBuffer" o = AudioDecoderAllocateOutputBufferMethodInfo+    ResolveAudioDecoderMethod "bindProperty" o = GObject.ObjectBindPropertyMethodInfo+    ResolveAudioDecoderMethod "bindPropertyFull" o = GObject.ObjectBindPropertyFullMethodInfo+    ResolveAudioDecoderMethod "changeState" o = Gst.ElementChangeStateMethodInfo+    ResolveAudioDecoderMethod "continueState" o = Gst.ElementContinueStateMethodInfo+    ResolveAudioDecoderMethod "createAllPads" o = Gst.ElementCreateAllPadsMethodInfo+    ResolveAudioDecoderMethod "defaultError" o = Gst.ObjectDefaultErrorMethodInfo+    ResolveAudioDecoderMethod "finishFrame" o = AudioDecoderFinishFrameMethodInfo+    ResolveAudioDecoderMethod "forceFloating" o = GObject.ObjectForceFloatingMethodInfo+    ResolveAudioDecoderMethod "freezeNotify" o = GObject.ObjectFreezeNotifyMethodInfo+    ResolveAudioDecoderMethod "hasActiveControlBindings" o = Gst.ObjectHasActiveControlBindingsMethodInfo+    ResolveAudioDecoderMethod "hasAncestor" o = Gst.ObjectHasAncestorMethodInfo+    ResolveAudioDecoderMethod "hasAsAncestor" o = Gst.ObjectHasAsAncestorMethodInfo+    ResolveAudioDecoderMethod "hasAsParent" o = Gst.ObjectHasAsParentMethodInfo+    ResolveAudioDecoderMethod "isFloating" o = GObject.ObjectIsFloatingMethodInfo+    ResolveAudioDecoderMethod "isLockedState" o = Gst.ElementIsLockedStateMethodInfo+    ResolveAudioDecoderMethod "iteratePads" o = Gst.ElementIteratePadsMethodInfo+    ResolveAudioDecoderMethod "iterateSinkPads" o = Gst.ElementIterateSinkPadsMethodInfo+    ResolveAudioDecoderMethod "iterateSrcPads" o = Gst.ElementIterateSrcPadsMethodInfo+    ResolveAudioDecoderMethod "link" o = Gst.ElementLinkMethodInfo+    ResolveAudioDecoderMethod "linkFiltered" o = Gst.ElementLinkFilteredMethodInfo+    ResolveAudioDecoderMethod "linkPads" o = Gst.ElementLinkPadsMethodInfo+    ResolveAudioDecoderMethod "linkPadsFiltered" o = Gst.ElementLinkPadsFilteredMethodInfo+    ResolveAudioDecoderMethod "linkPadsFull" o = Gst.ElementLinkPadsFullMethodInfo+    ResolveAudioDecoderMethod "lostState" o = Gst.ElementLostStateMethodInfo+    ResolveAudioDecoderMethod "mergeTags" o = AudioDecoderMergeTagsMethodInfo+    ResolveAudioDecoderMethod "messageFull" o = Gst.ElementMessageFullMethodInfo+    ResolveAudioDecoderMethod "negotiate" o = AudioDecoderNegotiateMethodInfo+    ResolveAudioDecoderMethod "noMorePads" o = Gst.ElementNoMorePadsMethodInfo+    ResolveAudioDecoderMethod "notify" o = GObject.ObjectNotifyMethodInfo+    ResolveAudioDecoderMethod "notifyByPspec" o = GObject.ObjectNotifyByPspecMethodInfo+    ResolveAudioDecoderMethod "postMessage" o = Gst.ElementPostMessageMethodInfo+    ResolveAudioDecoderMethod "provideClock" o = Gst.ElementProvideClockMethodInfo+    ResolveAudioDecoderMethod "proxyGetcaps" o = AudioDecoderProxyGetcapsMethodInfo+    ResolveAudioDecoderMethod "query" o = Gst.ElementQueryMethodInfo+    ResolveAudioDecoderMethod "queryConvert" o = Gst.ElementQueryConvertMethodInfo+    ResolveAudioDecoderMethod "queryDuration" o = Gst.ElementQueryDurationMethodInfo+    ResolveAudioDecoderMethod "queryPosition" o = Gst.ElementQueryPositionMethodInfo+    ResolveAudioDecoderMethod "refSink" o = GObject.ObjectRefSinkMethodInfo+    ResolveAudioDecoderMethod "releaseRequestPad" o = Gst.ElementReleaseRequestPadMethodInfo+    ResolveAudioDecoderMethod "removeControlBinding" o = Gst.ObjectRemoveControlBindingMethodInfo+    ResolveAudioDecoderMethod "removePad" o = Gst.ElementRemovePadMethodInfo+    ResolveAudioDecoderMethod "replaceData" o = GObject.ObjectReplaceDataMethodInfo+    ResolveAudioDecoderMethod "replaceQdata" o = GObject.ObjectReplaceQdataMethodInfo+    ResolveAudioDecoderMethod "requestPad" o = Gst.ElementRequestPadMethodInfo+    ResolveAudioDecoderMethod "runDispose" o = GObject.ObjectRunDisposeMethodInfo+    ResolveAudioDecoderMethod "seek" o = Gst.ElementSeekMethodInfo+    ResolveAudioDecoderMethod "seekSimple" o = Gst.ElementSeekSimpleMethodInfo+    ResolveAudioDecoderMethod "sendEvent" o = Gst.ElementSendEventMethodInfo+    ResolveAudioDecoderMethod "stealData" o = GObject.ObjectStealDataMethodInfo+    ResolveAudioDecoderMethod "stealQdata" o = GObject.ObjectStealQdataMethodInfo+    ResolveAudioDecoderMethod "suggestNextSync" o = Gst.ObjectSuggestNextSyncMethodInfo+    ResolveAudioDecoderMethod "syncStateWithParent" o = Gst.ElementSyncStateWithParentMethodInfo+    ResolveAudioDecoderMethod "syncValues" o = Gst.ObjectSyncValuesMethodInfo+    ResolveAudioDecoderMethod "thawNotify" o = GObject.ObjectThawNotifyMethodInfo+    ResolveAudioDecoderMethod "unlink" o = Gst.ElementUnlinkMethodInfo+    ResolveAudioDecoderMethod "unlinkPads" o = Gst.ElementUnlinkPadsMethodInfo+    ResolveAudioDecoderMethod "unparent" o = Gst.ObjectUnparentMethodInfo+    ResolveAudioDecoderMethod "watchClosure" o = GObject.ObjectWatchClosureMethodInfo+    ResolveAudioDecoderMethod "getAllocator" o = AudioDecoderGetAllocatorMethodInfo+    ResolveAudioDecoderMethod "getAudioInfo" o = AudioDecoderGetAudioInfoMethodInfo+    ResolveAudioDecoderMethod "getBaseTime" o = Gst.ElementGetBaseTimeMethodInfo+    ResolveAudioDecoderMethod "getBus" o = Gst.ElementGetBusMethodInfo+    ResolveAudioDecoderMethod "getClock" o = Gst.ElementGetClockMethodInfo+    ResolveAudioDecoderMethod "getCompatiblePad" o = Gst.ElementGetCompatiblePadMethodInfo+    ResolveAudioDecoderMethod "getCompatiblePadTemplate" o = Gst.ElementGetCompatiblePadTemplateMethodInfo+    ResolveAudioDecoderMethod "getControlBinding" o = Gst.ObjectGetControlBindingMethodInfo+    ResolveAudioDecoderMethod "getControlRate" o = Gst.ObjectGetControlRateMethodInfo+    ResolveAudioDecoderMethod "getData" o = GObject.ObjectGetDataMethodInfo+    ResolveAudioDecoderMethod "getDelay" o = AudioDecoderGetDelayMethodInfo+    ResolveAudioDecoderMethod "getDrainable" o = AudioDecoderGetDrainableMethodInfo+    ResolveAudioDecoderMethod "getEstimateRate" o = AudioDecoderGetEstimateRateMethodInfo+    ResolveAudioDecoderMethod "getFactory" o = Gst.ElementGetFactoryMethodInfo+    ResolveAudioDecoderMethod "getGValueArray" o = Gst.ObjectGetGValueArrayMethodInfo+    ResolveAudioDecoderMethod "getLatency" o = AudioDecoderGetLatencyMethodInfo+    ResolveAudioDecoderMethod "getMaxErrors" o = AudioDecoderGetMaxErrorsMethodInfo+    ResolveAudioDecoderMethod "getMinLatency" o = AudioDecoderGetMinLatencyMethodInfo+    ResolveAudioDecoderMethod "getName" o = Gst.ObjectGetNameMethodInfo+    ResolveAudioDecoderMethod "getNeedsFormat" o = AudioDecoderGetNeedsFormatMethodInfo+    ResolveAudioDecoderMethod "getParent" o = Gst.ObjectGetParentMethodInfo+    ResolveAudioDecoderMethod "getParseState" o = AudioDecoderGetParseStateMethodInfo+    ResolveAudioDecoderMethod "getPathString" o = Gst.ObjectGetPathStringMethodInfo+    ResolveAudioDecoderMethod "getPlc" o = AudioDecoderGetPlcMethodInfo+    ResolveAudioDecoderMethod "getPlcAware" o = AudioDecoderGetPlcAwareMethodInfo+    ResolveAudioDecoderMethod "getProperty" o = GObject.ObjectGetPropertyMethodInfo+    ResolveAudioDecoderMethod "getQdata" o = GObject.ObjectGetQdataMethodInfo+    ResolveAudioDecoderMethod "getRequestPad" o = Gst.ElementGetRequestPadMethodInfo+    ResolveAudioDecoderMethod "getStartTime" o = Gst.ElementGetStartTimeMethodInfo+    ResolveAudioDecoderMethod "getState" o = Gst.ElementGetStateMethodInfo+    ResolveAudioDecoderMethod "getStaticPad" o = Gst.ElementGetStaticPadMethodInfo+    ResolveAudioDecoderMethod "getTolerance" o = AudioDecoderGetToleranceMethodInfo+    ResolveAudioDecoderMethod "getValue" o = Gst.ObjectGetValueMethodInfo+    ResolveAudioDecoderMethod "getValueArray" o = Gst.ObjectGetValueArrayMethodInfo+    ResolveAudioDecoderMethod "setBaseTime" o = Gst.ElementSetBaseTimeMethodInfo+    ResolveAudioDecoderMethod "setBus" o = Gst.ElementSetBusMethodInfo+    ResolveAudioDecoderMethod "setClock" o = Gst.ElementSetClockMethodInfo+    ResolveAudioDecoderMethod "setContext" o = Gst.ElementSetContextMethodInfo+    ResolveAudioDecoderMethod "setControlBindingDisabled" o = Gst.ObjectSetControlBindingDisabledMethodInfo+    ResolveAudioDecoderMethod "setControlBindingsDisabled" o = Gst.ObjectSetControlBindingsDisabledMethodInfo+    ResolveAudioDecoderMethod "setControlRate" o = Gst.ObjectSetControlRateMethodInfo+    ResolveAudioDecoderMethod "setData" o = GObject.ObjectSetDataMethodInfo+    ResolveAudioDecoderMethod "setDrainable" o = AudioDecoderSetDrainableMethodInfo+    ResolveAudioDecoderMethod "setEstimateRate" o = AudioDecoderSetEstimateRateMethodInfo+    ResolveAudioDecoderMethod "setLatency" o = AudioDecoderSetLatencyMethodInfo+    ResolveAudioDecoderMethod "setLockedState" o = Gst.ElementSetLockedStateMethodInfo+    ResolveAudioDecoderMethod "setMaxErrors" o = AudioDecoderSetMaxErrorsMethodInfo+    ResolveAudioDecoderMethod "setMinLatency" o = AudioDecoderSetMinLatencyMethodInfo+    ResolveAudioDecoderMethod "setName" o = Gst.ObjectSetNameMethodInfo+    ResolveAudioDecoderMethod "setNeedsFormat" o = AudioDecoderSetNeedsFormatMethodInfo+    ResolveAudioDecoderMethod "setOutputFormat" o = AudioDecoderSetOutputFormatMethodInfo+    ResolveAudioDecoderMethod "setParent" o = Gst.ObjectSetParentMethodInfo+    ResolveAudioDecoderMethod "setPlc" o = AudioDecoderSetPlcMethodInfo+    ResolveAudioDecoderMethod "setPlcAware" o = AudioDecoderSetPlcAwareMethodInfo+    ResolveAudioDecoderMethod "setProperty" o = GObject.ObjectSetPropertyMethodInfo+    ResolveAudioDecoderMethod "setStartTime" o = Gst.ElementSetStartTimeMethodInfo+    ResolveAudioDecoderMethod "setState" o = Gst.ElementSetStateMethodInfo+    ResolveAudioDecoderMethod "setTolerance" o = AudioDecoderSetToleranceMethodInfo+    ResolveAudioDecoderMethod "setUseDefaultPadAcceptcaps" o = AudioDecoderSetUseDefaultPadAcceptcapsMethodInfo+    ResolveAudioDecoderMethod l o = MethodResolutionFailed l o++instance (info ~ ResolveAudioDecoderMethod t AudioDecoder, MethodInfo info AudioDecoder p) => IsLabelProxy t (AudioDecoder -> p) where+    fromLabelProxy _ = overloadedMethod (MethodProxy :: MethodProxy info)++#if MIN_VERSION_base(4,9,0)+instance (info ~ ResolveAudioDecoderMethod t AudioDecoder, MethodInfo info AudioDecoder p) => IsLabel t (AudioDecoder -> p) where+    fromLabel _ = overloadedMethod (MethodProxy :: MethodProxy info)+#endif++-- VVV Prop "min-latency"+   -- Type: TBasicType TInt64+   -- Flags: [PropertyReadable,PropertyWritable]++getAudioDecoderMinLatency :: (MonadIO m, AudioDecoderK o) => o -> m Int64+getAudioDecoderMinLatency obj = liftIO $ getObjectPropertyInt64 obj "min-latency"++setAudioDecoderMinLatency :: (MonadIO m, AudioDecoderK o) => o -> Int64 -> m ()+setAudioDecoderMinLatency obj val = liftIO $ setObjectPropertyInt64 obj "min-latency" val++constructAudioDecoderMinLatency :: Int64 -> IO ([Char], GValue)+constructAudioDecoderMinLatency val = constructObjectPropertyInt64 "min-latency" val++data AudioDecoderMinLatencyPropertyInfo+instance AttrInfo AudioDecoderMinLatencyPropertyInfo where+    type AttrAllowedOps AudioDecoderMinLatencyPropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet]+    type AttrSetTypeConstraint AudioDecoderMinLatencyPropertyInfo = (~) Int64+    type AttrBaseTypeConstraint AudioDecoderMinLatencyPropertyInfo = AudioDecoderK+    type AttrGetType AudioDecoderMinLatencyPropertyInfo = Int64+    type AttrLabel AudioDecoderMinLatencyPropertyInfo = "min-latency"+    attrGet _ = getAudioDecoderMinLatency+    attrSet _ = setAudioDecoderMinLatency+    attrConstruct _ = constructAudioDecoderMinLatency++-- VVV Prop "plc"+   -- Type: TBasicType TBoolean+   -- Flags: [PropertyReadable,PropertyWritable]++getAudioDecoderPlc :: (MonadIO m, AudioDecoderK o) => o -> m Bool+getAudioDecoderPlc obj = liftIO $ getObjectPropertyBool obj "plc"++setAudioDecoderPlc :: (MonadIO m, AudioDecoderK o) => o -> Bool -> m ()+setAudioDecoderPlc obj val = liftIO $ setObjectPropertyBool obj "plc" val++constructAudioDecoderPlc :: Bool -> IO ([Char], GValue)+constructAudioDecoderPlc val = constructObjectPropertyBool "plc" val++data AudioDecoderPlcPropertyInfo+instance AttrInfo AudioDecoderPlcPropertyInfo where+    type AttrAllowedOps AudioDecoderPlcPropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet]+    type AttrSetTypeConstraint AudioDecoderPlcPropertyInfo = (~) Bool+    type AttrBaseTypeConstraint AudioDecoderPlcPropertyInfo = AudioDecoderK+    type AttrGetType AudioDecoderPlcPropertyInfo = Bool+    type AttrLabel AudioDecoderPlcPropertyInfo = "plc"+    attrGet _ = getAudioDecoderPlc+    attrSet _ = setAudioDecoderPlc+    attrConstruct _ = constructAudioDecoderPlc++-- VVV Prop "tolerance"+   -- Type: TBasicType TInt64+   -- Flags: [PropertyReadable,PropertyWritable]++getAudioDecoderTolerance :: (MonadIO m, AudioDecoderK o) => o -> m Int64+getAudioDecoderTolerance obj = liftIO $ getObjectPropertyInt64 obj "tolerance"++setAudioDecoderTolerance :: (MonadIO m, AudioDecoderK o) => o -> Int64 -> m ()+setAudioDecoderTolerance obj val = liftIO $ setObjectPropertyInt64 obj "tolerance" val++constructAudioDecoderTolerance :: Int64 -> IO ([Char], GValue)+constructAudioDecoderTolerance val = constructObjectPropertyInt64 "tolerance" val++data AudioDecoderTolerancePropertyInfo+instance AttrInfo AudioDecoderTolerancePropertyInfo where+    type AttrAllowedOps AudioDecoderTolerancePropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet]+    type AttrSetTypeConstraint AudioDecoderTolerancePropertyInfo = (~) Int64+    type AttrBaseTypeConstraint AudioDecoderTolerancePropertyInfo = AudioDecoderK+    type AttrGetType AudioDecoderTolerancePropertyInfo = Int64+    type AttrLabel AudioDecoderTolerancePropertyInfo = "tolerance"+    attrGet _ = getAudioDecoderTolerance+    attrSet _ = setAudioDecoderTolerance+    attrConstruct _ = constructAudioDecoderTolerance++type instance AttributeList AudioDecoder = AudioDecoderAttributeList+type AudioDecoderAttributeList = ('[ '("minLatency", AudioDecoderMinLatencyPropertyInfo), '("name", Gst.ObjectNamePropertyInfo), '("parent", Gst.ObjectParentPropertyInfo), '("plc", AudioDecoderPlcPropertyInfo), '("tolerance", AudioDecoderTolerancePropertyInfo)] :: [(Symbol, *)])++type instance SignalList AudioDecoder = AudioDecoderSignalList+type AudioDecoderSignalList = ('[ '("deepNotify", Gst.ObjectDeepNotifySignalInfo), '("noMorePads", Gst.ElementNoMorePadsSignalInfo), '("notify", GObject.ObjectNotifySignalInfo), '("padAdded", Gst.ElementPadAddedSignalInfo), '("padRemoved", Gst.ElementPadRemovedSignalInfo)] :: [(Symbol, *)])++-- method AudioDecoder::allocate_output_buffer+-- method type : OrdinaryMethod+-- Args : [Arg {argCName = "_obj", argType = TInterface "GstAudio" "AudioDecoder", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "size", argType = TBasicType TUInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]+-- Lengths : []+-- returnType : TInterface "Gst" "Buffer"+-- throws : False+-- Skip return : False++foreign import ccall "gst_audio_decoder_allocate_output_buffer" gst_audio_decoder_allocate_output_buffer :: +    Ptr AudioDecoder ->                     -- _obj : TInterface "GstAudio" "AudioDecoder"+    Word64 ->                               -- size : TBasicType TUInt64+    IO (Ptr Gst.Buffer)+++audioDecoderAllocateOutputBuffer ::+    (MonadIO m, AudioDecoderK a) =>+    a                                       -- _obj+    -> Word64                               -- size+    -> m Gst.Buffer                         -- result+audioDecoderAllocateOutputBuffer _obj size = liftIO $ do+    let _obj' = unsafeManagedPtrCastPtr _obj+    result <- gst_audio_decoder_allocate_output_buffer _obj' size+    checkUnexpectedReturnNULL "gst_audio_decoder_allocate_output_buffer" result+    result' <- (wrapBoxed Gst.Buffer) result+    touchManagedPtr _obj+    return result'++data AudioDecoderAllocateOutputBufferMethodInfo+instance (signature ~ (Word64 -> m Gst.Buffer), MonadIO m, AudioDecoderK a) => MethodInfo AudioDecoderAllocateOutputBufferMethodInfo a signature where+    overloadedMethod _ = audioDecoderAllocateOutputBuffer++-- method AudioDecoder::finish_frame+-- method type : OrdinaryMethod+-- Args : [Arg {argCName = "_obj", argType = TInterface "GstAudio" "AudioDecoder", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "buf", argType = TInterface "Gst" "Buffer", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "frames", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]+-- Lengths : []+-- returnType : TInterface "Gst" "FlowReturn"+-- throws : False+-- Skip return : False++foreign import ccall "gst_audio_decoder_finish_frame" gst_audio_decoder_finish_frame :: +    Ptr AudioDecoder ->                     -- _obj : TInterface "GstAudio" "AudioDecoder"+    Ptr Gst.Buffer ->                       -- buf : TInterface "Gst" "Buffer"+    Int32 ->                                -- frames : TBasicType TInt32+    IO CUInt+++audioDecoderFinishFrame ::+    (MonadIO m, AudioDecoderK a) =>+    a                                       -- _obj+    -> Gst.Buffer                           -- buf+    -> Int32                                -- frames+    -> m Gst.FlowReturn                     -- result+audioDecoderFinishFrame _obj buf frames = liftIO $ do+    let _obj' = unsafeManagedPtrCastPtr _obj+    let buf' = unsafeManagedPtrGetPtr buf+    result <- gst_audio_decoder_finish_frame _obj' buf' frames+    let result' = (toEnum . fromIntegral) result+    touchManagedPtr _obj+    touchManagedPtr buf+    return result'++data AudioDecoderFinishFrameMethodInfo+instance (signature ~ (Gst.Buffer -> Int32 -> m Gst.FlowReturn), MonadIO m, AudioDecoderK a) => MethodInfo AudioDecoderFinishFrameMethodInfo a signature where+    overloadedMethod _ = audioDecoderFinishFrame++-- method AudioDecoder::get_allocator+-- method type : OrdinaryMethod+-- Args : [Arg {argCName = "_obj", argType = TInterface "GstAudio" "AudioDecoder", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "allocator", argType = TInterface "Gst" "Allocator", direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything},Arg {argCName = "params", argType = TInterface "Gst" "AllocationParams", direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = True, transfer = TransferEverything}]+-- Lengths : []+-- returnType : TBasicType TVoid+-- throws : False+-- Skip return : False++foreign import ccall "gst_audio_decoder_get_allocator" gst_audio_decoder_get_allocator :: +    Ptr AudioDecoder ->                     -- _obj : TInterface "GstAudio" "AudioDecoder"+    Ptr (Ptr Gst.Allocator) ->              -- allocator : TInterface "Gst" "Allocator"+    Ptr Gst.AllocationParams ->             -- params : TInterface "Gst" "AllocationParams"+    IO ()+++audioDecoderGetAllocator ::+    (MonadIO m, AudioDecoderK a) =>+    a                                       -- _obj+    -> m (Gst.Allocator,Gst.AllocationParams)-- result+audioDecoderGetAllocator _obj = liftIO $ do+    let _obj' = unsafeManagedPtrCastPtr _obj+    allocator <- allocMem :: IO (Ptr (Ptr Gst.Allocator))+    params <- callocBoxedBytes 64 :: IO (Ptr Gst.AllocationParams)+    gst_audio_decoder_get_allocator _obj' allocator params+    allocator' <- peek allocator+    allocator'' <- (wrapObject Gst.Allocator) allocator'+    params' <- (wrapBoxed Gst.AllocationParams) params+    touchManagedPtr _obj+    freeMem allocator+    return (allocator'', params')++data AudioDecoderGetAllocatorMethodInfo+instance (signature ~ (m (Gst.Allocator,Gst.AllocationParams)), MonadIO m, AudioDecoderK a) => MethodInfo AudioDecoderGetAllocatorMethodInfo a signature where+    overloadedMethod _ = audioDecoderGetAllocator++-- method AudioDecoder::get_audio_info+-- method type : OrdinaryMethod+-- Args : [Arg {argCName = "_obj", argType = TInterface "GstAudio" "AudioDecoder", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]+-- Lengths : []+-- returnType : TInterface "GstAudio" "AudioInfo"+-- throws : False+-- Skip return : False++foreign import ccall "gst_audio_decoder_get_audio_info" gst_audio_decoder_get_audio_info :: +    Ptr AudioDecoder ->                     -- _obj : TInterface "GstAudio" "AudioDecoder"+    IO (Ptr AudioInfo)+++audioDecoderGetAudioInfo ::+    (MonadIO m, AudioDecoderK a) =>+    a                                       -- _obj+    -> m AudioInfo                          -- result+audioDecoderGetAudioInfo _obj = liftIO $ do+    let _obj' = unsafeManagedPtrCastPtr _obj+    result <- gst_audio_decoder_get_audio_info _obj'+    checkUnexpectedReturnNULL "gst_audio_decoder_get_audio_info" result+    result' <- (wrapBoxed AudioInfo) result+    touchManagedPtr _obj+    return result'++data AudioDecoderGetAudioInfoMethodInfo+instance (signature ~ (m AudioInfo), MonadIO m, AudioDecoderK a) => MethodInfo AudioDecoderGetAudioInfoMethodInfo a signature where+    overloadedMethod _ = audioDecoderGetAudioInfo++-- method AudioDecoder::get_delay+-- method type : OrdinaryMethod+-- Args : [Arg {argCName = "_obj", argType = TInterface "GstAudio" "AudioDecoder", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]+-- Lengths : []+-- returnType : TBasicType TInt32+-- throws : False+-- Skip return : False++foreign import ccall "gst_audio_decoder_get_delay" gst_audio_decoder_get_delay :: +    Ptr AudioDecoder ->                     -- _obj : TInterface "GstAudio" "AudioDecoder"+    IO Int32+++audioDecoderGetDelay ::+    (MonadIO m, AudioDecoderK a) =>+    a                                       -- _obj+    -> m Int32                              -- result+audioDecoderGetDelay _obj = liftIO $ do+    let _obj' = unsafeManagedPtrCastPtr _obj+    result <- gst_audio_decoder_get_delay _obj'+    touchManagedPtr _obj+    return result++data AudioDecoderGetDelayMethodInfo+instance (signature ~ (m Int32), MonadIO m, AudioDecoderK a) => MethodInfo AudioDecoderGetDelayMethodInfo a signature where+    overloadedMethod _ = audioDecoderGetDelay++-- method AudioDecoder::get_drainable+-- method type : OrdinaryMethod+-- Args : [Arg {argCName = "_obj", argType = TInterface "GstAudio" "AudioDecoder", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]+-- Lengths : []+-- returnType : TBasicType TBoolean+-- throws : False+-- Skip return : False++foreign import ccall "gst_audio_decoder_get_drainable" gst_audio_decoder_get_drainable :: +    Ptr AudioDecoder ->                     -- _obj : TInterface "GstAudio" "AudioDecoder"+    IO CInt+++audioDecoderGetDrainable ::+    (MonadIO m, AudioDecoderK a) =>+    a                                       -- _obj+    -> m Bool                               -- result+audioDecoderGetDrainable _obj = liftIO $ do+    let _obj' = unsafeManagedPtrCastPtr _obj+    result <- gst_audio_decoder_get_drainable _obj'+    let result' = (/= 0) result+    touchManagedPtr _obj+    return result'++data AudioDecoderGetDrainableMethodInfo+instance (signature ~ (m Bool), MonadIO m, AudioDecoderK a) => MethodInfo AudioDecoderGetDrainableMethodInfo a signature where+    overloadedMethod _ = audioDecoderGetDrainable++-- method AudioDecoder::get_estimate_rate+-- method type : OrdinaryMethod+-- Args : [Arg {argCName = "_obj", argType = TInterface "GstAudio" "AudioDecoder", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]+-- Lengths : []+-- returnType : TBasicType TInt32+-- throws : False+-- Skip return : False++foreign import ccall "gst_audio_decoder_get_estimate_rate" gst_audio_decoder_get_estimate_rate :: +    Ptr AudioDecoder ->                     -- _obj : TInterface "GstAudio" "AudioDecoder"+    IO Int32+++audioDecoderGetEstimateRate ::+    (MonadIO m, AudioDecoderK a) =>+    a                                       -- _obj+    -> m Int32                              -- result+audioDecoderGetEstimateRate _obj = liftIO $ do+    let _obj' = unsafeManagedPtrCastPtr _obj+    result <- gst_audio_decoder_get_estimate_rate _obj'+    touchManagedPtr _obj+    return result++data AudioDecoderGetEstimateRateMethodInfo+instance (signature ~ (m Int32), MonadIO m, AudioDecoderK a) => MethodInfo AudioDecoderGetEstimateRateMethodInfo a signature where+    overloadedMethod _ = audioDecoderGetEstimateRate++-- method AudioDecoder::get_latency+-- method type : OrdinaryMethod+-- Args : [Arg {argCName = "_obj", argType = TInterface "GstAudio" "AudioDecoder", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "min", argType = TBasicType TUInt64, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything},Arg {argCName = "max", argType = TBasicType TUInt64, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything}]+-- Lengths : []+-- returnType : TBasicType TVoid+-- throws : False+-- Skip return : False++foreign import ccall "gst_audio_decoder_get_latency" gst_audio_decoder_get_latency :: +    Ptr AudioDecoder ->                     -- _obj : TInterface "GstAudio" "AudioDecoder"+    Ptr Word64 ->                           -- min : TBasicType TUInt64+    Ptr Word64 ->                           -- max : TBasicType TUInt64+    IO ()+++audioDecoderGetLatency ::+    (MonadIO m, AudioDecoderK a) =>+    a                                       -- _obj+    -> m (Word64,Word64)                    -- result+audioDecoderGetLatency _obj = liftIO $ do+    let _obj' = unsafeManagedPtrCastPtr _obj+    min <- allocMem :: IO (Ptr Word64)+    max <- allocMem :: IO (Ptr Word64)+    gst_audio_decoder_get_latency _obj' min max+    min' <- peek min+    max' <- peek max+    touchManagedPtr _obj+    freeMem min+    freeMem max+    return (min', max')++data AudioDecoderGetLatencyMethodInfo+instance (signature ~ (m (Word64,Word64)), MonadIO m, AudioDecoderK a) => MethodInfo AudioDecoderGetLatencyMethodInfo a signature where+    overloadedMethod _ = audioDecoderGetLatency++-- method AudioDecoder::get_max_errors+-- method type : OrdinaryMethod+-- Args : [Arg {argCName = "_obj", argType = TInterface "GstAudio" "AudioDecoder", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]+-- Lengths : []+-- returnType : TBasicType TInt32+-- throws : False+-- Skip return : False++foreign import ccall "gst_audio_decoder_get_max_errors" gst_audio_decoder_get_max_errors :: +    Ptr AudioDecoder ->                     -- _obj : TInterface "GstAudio" "AudioDecoder"+    IO Int32+++audioDecoderGetMaxErrors ::+    (MonadIO m, AudioDecoderK a) =>+    a                                       -- _obj+    -> m Int32                              -- result+audioDecoderGetMaxErrors _obj = liftIO $ do+    let _obj' = unsafeManagedPtrCastPtr _obj+    result <- gst_audio_decoder_get_max_errors _obj'+    touchManagedPtr _obj+    return result++data AudioDecoderGetMaxErrorsMethodInfo+instance (signature ~ (m Int32), MonadIO m, AudioDecoderK a) => MethodInfo AudioDecoderGetMaxErrorsMethodInfo a signature where+    overloadedMethod _ = audioDecoderGetMaxErrors++-- method AudioDecoder::get_min_latency+-- method type : OrdinaryMethod+-- Args : [Arg {argCName = "_obj", argType = TInterface "GstAudio" "AudioDecoder", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]+-- Lengths : []+-- returnType : TBasicType TUInt64+-- throws : False+-- Skip return : False++foreign import ccall "gst_audio_decoder_get_min_latency" gst_audio_decoder_get_min_latency :: +    Ptr AudioDecoder ->                     -- _obj : TInterface "GstAudio" "AudioDecoder"+    IO Word64+++audioDecoderGetMinLatency ::+    (MonadIO m, AudioDecoderK a) =>+    a                                       -- _obj+    -> m Word64                             -- result+audioDecoderGetMinLatency _obj = liftIO $ do+    let _obj' = unsafeManagedPtrCastPtr _obj+    result <- gst_audio_decoder_get_min_latency _obj'+    touchManagedPtr _obj+    return result++data AudioDecoderGetMinLatencyMethodInfo+instance (signature ~ (m Word64), MonadIO m, AudioDecoderK a) => MethodInfo AudioDecoderGetMinLatencyMethodInfo a signature where+    overloadedMethod _ = audioDecoderGetMinLatency++-- method AudioDecoder::get_needs_format+-- method type : OrdinaryMethod+-- Args : [Arg {argCName = "_obj", argType = TInterface "GstAudio" "AudioDecoder", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]+-- Lengths : []+-- returnType : TBasicType TBoolean+-- throws : False+-- Skip return : False++foreign import ccall "gst_audio_decoder_get_needs_format" gst_audio_decoder_get_needs_format :: +    Ptr AudioDecoder ->                     -- _obj : TInterface "GstAudio" "AudioDecoder"+    IO CInt+++audioDecoderGetNeedsFormat ::+    (MonadIO m, AudioDecoderK a) =>+    a                                       -- _obj+    -> m Bool                               -- result+audioDecoderGetNeedsFormat _obj = liftIO $ do+    let _obj' = unsafeManagedPtrCastPtr _obj+    result <- gst_audio_decoder_get_needs_format _obj'+    let result' = (/= 0) result+    touchManagedPtr _obj+    return result'++data AudioDecoderGetNeedsFormatMethodInfo+instance (signature ~ (m Bool), MonadIO m, AudioDecoderK a) => MethodInfo AudioDecoderGetNeedsFormatMethodInfo a signature where+    overloadedMethod _ = audioDecoderGetNeedsFormat++-- method AudioDecoder::get_parse_state+-- method type : OrdinaryMethod+-- Args : [Arg {argCName = "_obj", argType = TInterface "GstAudio" "AudioDecoder", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "sync", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "eos", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]+-- Lengths : []+-- returnType : TBasicType TVoid+-- throws : False+-- Skip return : False++foreign import ccall "gst_audio_decoder_get_parse_state" gst_audio_decoder_get_parse_state :: +    Ptr AudioDecoder ->                     -- _obj : TInterface "GstAudio" "AudioDecoder"+    CInt ->                                 -- sync : TBasicType TBoolean+    CInt ->                                 -- eos : TBasicType TBoolean+    IO ()+++audioDecoderGetParseState ::+    (MonadIO m, AudioDecoderK a) =>+    a                                       -- _obj+    -> Bool                                 -- sync+    -> Bool                                 -- eos+    -> m ()                                 -- result+audioDecoderGetParseState _obj sync eos = liftIO $ do+    let _obj' = unsafeManagedPtrCastPtr _obj+    let sync' = (fromIntegral . fromEnum) sync+    let eos' = (fromIntegral . fromEnum) eos+    gst_audio_decoder_get_parse_state _obj' sync' eos'+    touchManagedPtr _obj+    return ()++data AudioDecoderGetParseStateMethodInfo+instance (signature ~ (Bool -> Bool -> m ()), MonadIO m, AudioDecoderK a) => MethodInfo AudioDecoderGetParseStateMethodInfo a signature where+    overloadedMethod _ = audioDecoderGetParseState++-- method AudioDecoder::get_plc+-- method type : OrdinaryMethod+-- Args : [Arg {argCName = "_obj", argType = TInterface "GstAudio" "AudioDecoder", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]+-- Lengths : []+-- returnType : TBasicType TBoolean+-- throws : False+-- Skip return : False++foreign import ccall "gst_audio_decoder_get_plc" gst_audio_decoder_get_plc :: +    Ptr AudioDecoder ->                     -- _obj : TInterface "GstAudio" "AudioDecoder"+    IO CInt+++audioDecoderGetPlc ::+    (MonadIO m, AudioDecoderK a) =>+    a                                       -- _obj+    -> m Bool                               -- result+audioDecoderGetPlc _obj = liftIO $ do+    let _obj' = unsafeManagedPtrCastPtr _obj+    result <- gst_audio_decoder_get_plc _obj'+    let result' = (/= 0) result+    touchManagedPtr _obj+    return result'++data AudioDecoderGetPlcMethodInfo+instance (signature ~ (m Bool), MonadIO m, AudioDecoderK a) => MethodInfo AudioDecoderGetPlcMethodInfo a signature where+    overloadedMethod _ = audioDecoderGetPlc++-- method AudioDecoder::get_plc_aware+-- method type : OrdinaryMethod+-- Args : [Arg {argCName = "_obj", argType = TInterface "GstAudio" "AudioDecoder", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]+-- Lengths : []+-- returnType : TBasicType TInt32+-- throws : False+-- Skip return : False++foreign import ccall "gst_audio_decoder_get_plc_aware" gst_audio_decoder_get_plc_aware :: +    Ptr AudioDecoder ->                     -- _obj : TInterface "GstAudio" "AudioDecoder"+    IO Int32+++audioDecoderGetPlcAware ::+    (MonadIO m, AudioDecoderK a) =>+    a                                       -- _obj+    -> m Int32                              -- result+audioDecoderGetPlcAware _obj = liftIO $ do+    let _obj' = unsafeManagedPtrCastPtr _obj+    result <- gst_audio_decoder_get_plc_aware _obj'+    touchManagedPtr _obj+    return result++data AudioDecoderGetPlcAwareMethodInfo+instance (signature ~ (m Int32), MonadIO m, AudioDecoderK a) => MethodInfo AudioDecoderGetPlcAwareMethodInfo a signature where+    overloadedMethod _ = audioDecoderGetPlcAware++-- method AudioDecoder::get_tolerance+-- method type : OrdinaryMethod+-- Args : [Arg {argCName = "_obj", argType = TInterface "GstAudio" "AudioDecoder", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]+-- Lengths : []+-- returnType : TBasicType TUInt64+-- throws : False+-- Skip return : False++foreign import ccall "gst_audio_decoder_get_tolerance" gst_audio_decoder_get_tolerance :: +    Ptr AudioDecoder ->                     -- _obj : TInterface "GstAudio" "AudioDecoder"+    IO Word64+++audioDecoderGetTolerance ::+    (MonadIO m, AudioDecoderK a) =>+    a                                       -- _obj+    -> m Word64                             -- result+audioDecoderGetTolerance _obj = liftIO $ do+    let _obj' = unsafeManagedPtrCastPtr _obj+    result <- gst_audio_decoder_get_tolerance _obj'+    touchManagedPtr _obj+    return result++data AudioDecoderGetToleranceMethodInfo+instance (signature ~ (m Word64), MonadIO m, AudioDecoderK a) => MethodInfo AudioDecoderGetToleranceMethodInfo a signature where+    overloadedMethod _ = audioDecoderGetTolerance++-- method AudioDecoder::merge_tags+-- method type : OrdinaryMethod+-- Args : [Arg {argCName = "_obj", argType = TInterface "GstAudio" "AudioDecoder", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "tags", argType = TInterface "Gst" "TagList", direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "mode", argType = TInterface "Gst" "TagMergeMode", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]+-- Lengths : []+-- returnType : TBasicType TVoid+-- throws : False+-- Skip return : False++foreign import ccall "gst_audio_decoder_merge_tags" gst_audio_decoder_merge_tags :: +    Ptr AudioDecoder ->                     -- _obj : TInterface "GstAudio" "AudioDecoder"+    Ptr Gst.TagList ->                      -- tags : TInterface "Gst" "TagList"+    CUInt ->                                -- mode : TInterface "Gst" "TagMergeMode"+    IO ()+++audioDecoderMergeTags ::+    (MonadIO m, AudioDecoderK a) =>+    a                                       -- _obj+    -> Maybe (Gst.TagList)                  -- tags+    -> Gst.TagMergeMode                     -- mode+    -> m ()                                 -- result+audioDecoderMergeTags _obj tags mode = liftIO $ do+    let _obj' = unsafeManagedPtrCastPtr _obj+    maybeTags <- case tags of+        Nothing -> return nullPtr+        Just jTags -> do+            let jTags' = unsafeManagedPtrGetPtr jTags+            return jTags'+    let mode' = (fromIntegral . fromEnum) mode+    gst_audio_decoder_merge_tags _obj' maybeTags mode'+    touchManagedPtr _obj+    whenJust tags touchManagedPtr+    return ()++data AudioDecoderMergeTagsMethodInfo+instance (signature ~ (Maybe (Gst.TagList) -> Gst.TagMergeMode -> m ()), MonadIO m, AudioDecoderK a) => MethodInfo AudioDecoderMergeTagsMethodInfo a signature where+    overloadedMethod _ = audioDecoderMergeTags++-- method AudioDecoder::negotiate+-- method type : OrdinaryMethod+-- Args : [Arg {argCName = "_obj", argType = TInterface "GstAudio" "AudioDecoder", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]+-- Lengths : []+-- returnType : TBasicType TBoolean+-- throws : False+-- Skip return : False++foreign import ccall "gst_audio_decoder_negotiate" gst_audio_decoder_negotiate :: +    Ptr AudioDecoder ->                     -- _obj : TInterface "GstAudio" "AudioDecoder"+    IO CInt+++audioDecoderNegotiate ::+    (MonadIO m, AudioDecoderK a) =>+    a                                       -- _obj+    -> m Bool                               -- result+audioDecoderNegotiate _obj = liftIO $ do+    let _obj' = unsafeManagedPtrCastPtr _obj+    result <- gst_audio_decoder_negotiate _obj'+    let result' = (/= 0) result+    touchManagedPtr _obj+    return result'++data AudioDecoderNegotiateMethodInfo+instance (signature ~ (m Bool), MonadIO m, AudioDecoderK a) => MethodInfo AudioDecoderNegotiateMethodInfo a signature where+    overloadedMethod _ = audioDecoderNegotiate++-- method AudioDecoder::proxy_getcaps+-- method type : OrdinaryMethod+-- Args : [Arg {argCName = "_obj", argType = TInterface "GstAudio" "AudioDecoder", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "caps", argType = TInterface "Gst" "Caps", direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "filter", argType = TInterface "Gst" "Caps", direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]+-- Lengths : []+-- returnType : TInterface "Gst" "Caps"+-- throws : False+-- Skip return : False++foreign import ccall "gst_audio_decoder_proxy_getcaps" gst_audio_decoder_proxy_getcaps :: +    Ptr AudioDecoder ->                     -- _obj : TInterface "GstAudio" "AudioDecoder"+    Ptr Gst.Caps ->                         -- caps : TInterface "Gst" "Caps"+    Ptr Gst.Caps ->                         -- filter : TInterface "Gst" "Caps"+    IO (Ptr Gst.Caps)+++audioDecoderProxyGetcaps ::+    (MonadIO m, AudioDecoderK a) =>+    a                                       -- _obj+    -> Maybe (Gst.Caps)                     -- caps+    -> Maybe (Gst.Caps)                     -- filter+    -> m Gst.Caps                           -- result+audioDecoderProxyGetcaps _obj caps filter = liftIO $ do+    let _obj' = unsafeManagedPtrCastPtr _obj+    maybeCaps <- case caps of+        Nothing -> return nullPtr+        Just jCaps -> do+            let jCaps' = unsafeManagedPtrGetPtr jCaps+            return jCaps'+    maybeFilter <- case filter of+        Nothing -> return nullPtr+        Just jFilter -> do+            let jFilter' = unsafeManagedPtrGetPtr jFilter+            return jFilter'+    result <- gst_audio_decoder_proxy_getcaps _obj' maybeCaps maybeFilter+    checkUnexpectedReturnNULL "gst_audio_decoder_proxy_getcaps" result+    result' <- (wrapBoxed Gst.Caps) result+    touchManagedPtr _obj+    whenJust caps touchManagedPtr+    whenJust filter touchManagedPtr+    return result'++data AudioDecoderProxyGetcapsMethodInfo+instance (signature ~ (Maybe (Gst.Caps) -> Maybe (Gst.Caps) -> m Gst.Caps), MonadIO m, AudioDecoderK a) => MethodInfo AudioDecoderProxyGetcapsMethodInfo a signature where+    overloadedMethod _ = audioDecoderProxyGetcaps++-- method AudioDecoder::set_drainable+-- method type : OrdinaryMethod+-- Args : [Arg {argCName = "_obj", argType = TInterface "GstAudio" "AudioDecoder", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "enabled", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]+-- Lengths : []+-- returnType : TBasicType TVoid+-- throws : False+-- Skip return : False++foreign import ccall "gst_audio_decoder_set_drainable" gst_audio_decoder_set_drainable :: +    Ptr AudioDecoder ->                     -- _obj : TInterface "GstAudio" "AudioDecoder"+    CInt ->                                 -- enabled : TBasicType TBoolean+    IO ()+++audioDecoderSetDrainable ::+    (MonadIO m, AudioDecoderK a) =>+    a                                       -- _obj+    -> Bool                                 -- enabled+    -> m ()                                 -- result+audioDecoderSetDrainable _obj enabled = liftIO $ do+    let _obj' = unsafeManagedPtrCastPtr _obj+    let enabled' = (fromIntegral . fromEnum) enabled+    gst_audio_decoder_set_drainable _obj' enabled'+    touchManagedPtr _obj+    return ()++data AudioDecoderSetDrainableMethodInfo+instance (signature ~ (Bool -> m ()), MonadIO m, AudioDecoderK a) => MethodInfo AudioDecoderSetDrainableMethodInfo a signature where+    overloadedMethod _ = audioDecoderSetDrainable++-- method AudioDecoder::set_estimate_rate+-- method type : OrdinaryMethod+-- Args : [Arg {argCName = "_obj", argType = TInterface "GstAudio" "AudioDecoder", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "enabled", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]+-- Lengths : []+-- returnType : TBasicType TVoid+-- throws : False+-- Skip return : False++foreign import ccall "gst_audio_decoder_set_estimate_rate" gst_audio_decoder_set_estimate_rate :: +    Ptr AudioDecoder ->                     -- _obj : TInterface "GstAudio" "AudioDecoder"+    CInt ->                                 -- enabled : TBasicType TBoolean+    IO ()+++audioDecoderSetEstimateRate ::+    (MonadIO m, AudioDecoderK a) =>+    a                                       -- _obj+    -> Bool                                 -- enabled+    -> m ()                                 -- result+audioDecoderSetEstimateRate _obj enabled = liftIO $ do+    let _obj' = unsafeManagedPtrCastPtr _obj+    let enabled' = (fromIntegral . fromEnum) enabled+    gst_audio_decoder_set_estimate_rate _obj' enabled'+    touchManagedPtr _obj+    return ()++data AudioDecoderSetEstimateRateMethodInfo+instance (signature ~ (Bool -> m ()), MonadIO m, AudioDecoderK a) => MethodInfo AudioDecoderSetEstimateRateMethodInfo a signature where+    overloadedMethod _ = audioDecoderSetEstimateRate++-- method AudioDecoder::set_latency+-- method type : OrdinaryMethod+-- Args : [Arg {argCName = "_obj", argType = TInterface "GstAudio" "AudioDecoder", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "min", argType = TBasicType TUInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "max", argType = TBasicType TUInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]+-- Lengths : []+-- returnType : TBasicType TVoid+-- throws : False+-- Skip return : False++foreign import ccall "gst_audio_decoder_set_latency" gst_audio_decoder_set_latency :: +    Ptr AudioDecoder ->                     -- _obj : TInterface "GstAudio" "AudioDecoder"+    Word64 ->                               -- min : TBasicType TUInt64+    Word64 ->                               -- max : TBasicType TUInt64+    IO ()+++audioDecoderSetLatency ::+    (MonadIO m, AudioDecoderK a) =>+    a                                       -- _obj+    -> Word64                               -- min+    -> Word64                               -- max+    -> m ()                                 -- result+audioDecoderSetLatency _obj min max = liftIO $ do+    let _obj' = unsafeManagedPtrCastPtr _obj+    gst_audio_decoder_set_latency _obj' min max+    touchManagedPtr _obj+    return ()++data AudioDecoderSetLatencyMethodInfo+instance (signature ~ (Word64 -> Word64 -> m ()), MonadIO m, AudioDecoderK a) => MethodInfo AudioDecoderSetLatencyMethodInfo a signature where+    overloadedMethod _ = audioDecoderSetLatency++-- method AudioDecoder::set_max_errors+-- method type : OrdinaryMethod+-- Args : [Arg {argCName = "_obj", argType = TInterface "GstAudio" "AudioDecoder", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "num", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]+-- Lengths : []+-- returnType : TBasicType TVoid+-- throws : False+-- Skip return : False++foreign import ccall "gst_audio_decoder_set_max_errors" gst_audio_decoder_set_max_errors :: +    Ptr AudioDecoder ->                     -- _obj : TInterface "GstAudio" "AudioDecoder"+    Int32 ->                                -- num : TBasicType TInt32+    IO ()+++audioDecoderSetMaxErrors ::+    (MonadIO m, AudioDecoderK a) =>+    a                                       -- _obj+    -> Int32                                -- num+    -> m ()                                 -- result+audioDecoderSetMaxErrors _obj num = liftIO $ do+    let _obj' = unsafeManagedPtrCastPtr _obj+    gst_audio_decoder_set_max_errors _obj' num+    touchManagedPtr _obj+    return ()++data AudioDecoderSetMaxErrorsMethodInfo+instance (signature ~ (Int32 -> m ()), MonadIO m, AudioDecoderK a) => MethodInfo AudioDecoderSetMaxErrorsMethodInfo a signature where+    overloadedMethod _ = audioDecoderSetMaxErrors++-- method AudioDecoder::set_min_latency+-- method type : OrdinaryMethod+-- Args : [Arg {argCName = "_obj", argType = TInterface "GstAudio" "AudioDecoder", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "num", argType = TBasicType TUInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]+-- Lengths : []+-- returnType : TBasicType TVoid+-- throws : False+-- Skip return : False++foreign import ccall "gst_audio_decoder_set_min_latency" gst_audio_decoder_set_min_latency :: +    Ptr AudioDecoder ->                     -- _obj : TInterface "GstAudio" "AudioDecoder"+    Word64 ->                               -- num : TBasicType TUInt64+    IO ()+++audioDecoderSetMinLatency ::+    (MonadIO m, AudioDecoderK a) =>+    a                                       -- _obj+    -> Word64                               -- num+    -> m ()                                 -- result+audioDecoderSetMinLatency _obj num = liftIO $ do+    let _obj' = unsafeManagedPtrCastPtr _obj+    gst_audio_decoder_set_min_latency _obj' num+    touchManagedPtr _obj+    return ()++data AudioDecoderSetMinLatencyMethodInfo+instance (signature ~ (Word64 -> m ()), MonadIO m, AudioDecoderK a) => MethodInfo AudioDecoderSetMinLatencyMethodInfo a signature where+    overloadedMethod _ = audioDecoderSetMinLatency++-- method AudioDecoder::set_needs_format+-- method type : OrdinaryMethod+-- Args : [Arg {argCName = "_obj", argType = TInterface "GstAudio" "AudioDecoder", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "enabled", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]+-- Lengths : []+-- returnType : TBasicType TVoid+-- throws : False+-- Skip return : False++foreign import ccall "gst_audio_decoder_set_needs_format" gst_audio_decoder_set_needs_format :: +    Ptr AudioDecoder ->                     -- _obj : TInterface "GstAudio" "AudioDecoder"+    CInt ->                                 -- enabled : TBasicType TBoolean+    IO ()+++audioDecoderSetNeedsFormat ::+    (MonadIO m, AudioDecoderK a) =>+    a                                       -- _obj+    -> Bool                                 -- enabled+    -> m ()                                 -- result+audioDecoderSetNeedsFormat _obj enabled = liftIO $ do+    let _obj' = unsafeManagedPtrCastPtr _obj+    let enabled' = (fromIntegral . fromEnum) enabled+    gst_audio_decoder_set_needs_format _obj' enabled'+    touchManagedPtr _obj+    return ()++data AudioDecoderSetNeedsFormatMethodInfo+instance (signature ~ (Bool -> m ()), MonadIO m, AudioDecoderK a) => MethodInfo AudioDecoderSetNeedsFormatMethodInfo a signature where+    overloadedMethod _ = audioDecoderSetNeedsFormat++-- method AudioDecoder::set_output_format+-- method type : OrdinaryMethod+-- Args : [Arg {argCName = "_obj", argType = TInterface "GstAudio" "AudioDecoder", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "info", argType = TInterface "GstAudio" "AudioInfo", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]+-- Lengths : []+-- returnType : TBasicType TBoolean+-- throws : False+-- Skip return : False++foreign import ccall "gst_audio_decoder_set_output_format" gst_audio_decoder_set_output_format :: +    Ptr AudioDecoder ->                     -- _obj : TInterface "GstAudio" "AudioDecoder"+    Ptr AudioInfo ->                        -- info : TInterface "GstAudio" "AudioInfo"+    IO CInt+++audioDecoderSetOutputFormat ::+    (MonadIO m, AudioDecoderK a) =>+    a                                       -- _obj+    -> AudioInfo                            -- info+    -> m Bool                               -- result+audioDecoderSetOutputFormat _obj info = liftIO $ do+    let _obj' = unsafeManagedPtrCastPtr _obj+    let info' = unsafeManagedPtrGetPtr info+    result <- gst_audio_decoder_set_output_format _obj' info'+    let result' = (/= 0) result+    touchManagedPtr _obj+    touchManagedPtr info+    return result'++data AudioDecoderSetOutputFormatMethodInfo+instance (signature ~ (AudioInfo -> m Bool), MonadIO m, AudioDecoderK a) => MethodInfo AudioDecoderSetOutputFormatMethodInfo a signature where+    overloadedMethod _ = audioDecoderSetOutputFormat++-- method AudioDecoder::set_plc+-- method type : OrdinaryMethod+-- Args : [Arg {argCName = "_obj", argType = TInterface "GstAudio" "AudioDecoder", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "enabled", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]+-- Lengths : []+-- returnType : TBasicType TVoid+-- throws : False+-- Skip return : False++foreign import ccall "gst_audio_decoder_set_plc" gst_audio_decoder_set_plc :: +    Ptr AudioDecoder ->                     -- _obj : TInterface "GstAudio" "AudioDecoder"+    CInt ->                                 -- enabled : TBasicType TBoolean+    IO ()+++audioDecoderSetPlc ::+    (MonadIO m, AudioDecoderK a) =>+    a                                       -- _obj+    -> Bool                                 -- enabled+    -> m ()                                 -- result+audioDecoderSetPlc _obj enabled = liftIO $ do+    let _obj' = unsafeManagedPtrCastPtr _obj+    let enabled' = (fromIntegral . fromEnum) enabled+    gst_audio_decoder_set_plc _obj' enabled'+    touchManagedPtr _obj+    return ()++data AudioDecoderSetPlcMethodInfo+instance (signature ~ (Bool -> m ()), MonadIO m, AudioDecoderK a) => MethodInfo AudioDecoderSetPlcMethodInfo a signature where+    overloadedMethod _ = audioDecoderSetPlc++-- method AudioDecoder::set_plc_aware+-- method type : OrdinaryMethod+-- Args : [Arg {argCName = "_obj", argType = TInterface "GstAudio" "AudioDecoder", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "plc", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]+-- Lengths : []+-- returnType : TBasicType TVoid+-- throws : False+-- Skip return : False++foreign import ccall "gst_audio_decoder_set_plc_aware" gst_audio_decoder_set_plc_aware :: +    Ptr AudioDecoder ->                     -- _obj : TInterface "GstAudio" "AudioDecoder"+    CInt ->                                 -- plc : TBasicType TBoolean+    IO ()+++audioDecoderSetPlcAware ::+    (MonadIO m, AudioDecoderK a) =>+    a                                       -- _obj+    -> Bool                                 -- plc+    -> m ()                                 -- result+audioDecoderSetPlcAware _obj plc = liftIO $ do+    let _obj' = unsafeManagedPtrCastPtr _obj+    let plc' = (fromIntegral . fromEnum) plc+    gst_audio_decoder_set_plc_aware _obj' plc'+    touchManagedPtr _obj+    return ()++data AudioDecoderSetPlcAwareMethodInfo+instance (signature ~ (Bool -> m ()), MonadIO m, AudioDecoderK a) => MethodInfo AudioDecoderSetPlcAwareMethodInfo a signature where+    overloadedMethod _ = audioDecoderSetPlcAware++-- method AudioDecoder::set_tolerance+-- method type : OrdinaryMethod+-- Args : [Arg {argCName = "_obj", argType = TInterface "GstAudio" "AudioDecoder", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "tolerance", argType = TBasicType TUInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]+-- Lengths : []+-- returnType : TBasicType TVoid+-- throws : False+-- Skip return : False++foreign import ccall "gst_audio_decoder_set_tolerance" gst_audio_decoder_set_tolerance :: +    Ptr AudioDecoder ->                     -- _obj : TInterface "GstAudio" "AudioDecoder"+    Word64 ->                               -- tolerance : TBasicType TUInt64+    IO ()+++audioDecoderSetTolerance ::+    (MonadIO m, AudioDecoderK a) =>+    a                                       -- _obj+    -> Word64                               -- tolerance+    -> m ()                                 -- result+audioDecoderSetTolerance _obj tolerance = liftIO $ do+    let _obj' = unsafeManagedPtrCastPtr _obj+    gst_audio_decoder_set_tolerance _obj' tolerance+    touchManagedPtr _obj+    return ()++data AudioDecoderSetToleranceMethodInfo+instance (signature ~ (Word64 -> m ()), MonadIO m, AudioDecoderK a) => MethodInfo AudioDecoderSetToleranceMethodInfo a signature where+    overloadedMethod _ = audioDecoderSetTolerance++-- method AudioDecoder::set_use_default_pad_acceptcaps+-- method type : OrdinaryMethod+-- Args : [Arg {argCName = "_obj", argType = TInterface "GstAudio" "AudioDecoder", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "use", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]+-- Lengths : []+-- returnType : TBasicType TVoid+-- throws : False+-- Skip return : False++foreign import ccall "gst_audio_decoder_set_use_default_pad_acceptcaps" gst_audio_decoder_set_use_default_pad_acceptcaps :: +    Ptr AudioDecoder ->                     -- _obj : TInterface "GstAudio" "AudioDecoder"+    CInt ->                                 -- use : TBasicType TBoolean+    IO ()+++audioDecoderSetUseDefaultPadAcceptcaps ::+    (MonadIO m, AudioDecoderK a) =>+    a                                       -- _obj+    -> Bool                                 -- use+    -> m ()                                 -- result+audioDecoderSetUseDefaultPadAcceptcaps _obj use = liftIO $ do+    let _obj' = unsafeManagedPtrCastPtr _obj+    let use' = (fromIntegral . fromEnum) use+    gst_audio_decoder_set_use_default_pad_acceptcaps _obj' use'+    touchManagedPtr _obj+    return ()++data AudioDecoderSetUseDefaultPadAcceptcapsMethodInfo+instance (signature ~ (Bool -> m ()), MonadIO m, AudioDecoderK a) => MethodInfo AudioDecoderSetUseDefaultPadAcceptcapsMethodInfo a signature where+    overloadedMethod _ = audioDecoderSetUseDefaultPadAcceptcaps++
+ GI/GstAudio/Objects/AudioDecoder.hs-boot view
@@ -0,0 +1,45 @@+module GI.GstAudio.Objects.AudioDecoder where++import Prelude ()+import Data.GI.Base.ShortPrelude++import qualified Data.Text as T+import qualified Data.ByteString.Char8 as B+import qualified Data.Map as Map++newtype AudioDecoder = AudioDecoder (ForeignPtr AudioDecoder)+instance GObject AudioDecoder where+class GObject o => AudioDecoderK o+instance (GObject o, IsDescendantOf AudioDecoder o) => AudioDecoderK o+data AudioDecoderMinLatencyPropertyInfo+data AudioDecoderPlcPropertyInfo+data AudioDecoderTolerancePropertyInfo+data AudioDecoderAllocateOutputBufferMethodInfo+data AudioDecoderFinishFrameMethodInfo+data AudioDecoderGetAllocatorMethodInfo+data AudioDecoderGetAudioInfoMethodInfo+data AudioDecoderGetDelayMethodInfo+data AudioDecoderGetDrainableMethodInfo+data AudioDecoderGetEstimateRateMethodInfo+data AudioDecoderGetLatencyMethodInfo+data AudioDecoderGetMaxErrorsMethodInfo+data AudioDecoderGetMinLatencyMethodInfo+data AudioDecoderGetNeedsFormatMethodInfo+data AudioDecoderGetParseStateMethodInfo+data AudioDecoderGetPlcMethodInfo+data AudioDecoderGetPlcAwareMethodInfo+data AudioDecoderGetToleranceMethodInfo+data AudioDecoderMergeTagsMethodInfo+data AudioDecoderNegotiateMethodInfo+data AudioDecoderProxyGetcapsMethodInfo+data AudioDecoderSetDrainableMethodInfo+data AudioDecoderSetEstimateRateMethodInfo+data AudioDecoderSetLatencyMethodInfo+data AudioDecoderSetMaxErrorsMethodInfo+data AudioDecoderSetMinLatencyMethodInfo+data AudioDecoderSetNeedsFormatMethodInfo+data AudioDecoderSetOutputFormatMethodInfo+data AudioDecoderSetPlcMethodInfo+data AudioDecoderSetPlcAwareMethodInfo+data AudioDecoderSetToleranceMethodInfo+data AudioDecoderSetUseDefaultPadAcceptcapsMethodInfo
+ GI/GstAudio/Objects/AudioEncoder.hs view
@@ -0,0 +1,1420 @@+++{- |+Copyright  : Will Thompson, Iñaki García Etxebarria and Jonas Platte+License    : LGPL-2.1+Maintainer : Iñaki García Etxebarria (garetxe@gmail.com)+-}++module GI.GstAudio.Objects.AudioEncoder+    ( ++-- * Exported types+    AudioEncoder(..)                        ,+    AudioEncoderK                           ,+    toAudioEncoder                          ,+    noAudioEncoder                          ,+++ -- * Methods+-- ** audioEncoderAllocateOutputBuffer+    AudioEncoderAllocateOutputBufferMethodInfo,+    audioEncoderAllocateOutputBuffer        ,+++-- ** audioEncoderFinishFrame+    AudioEncoderFinishFrameMethodInfo       ,+    audioEncoderFinishFrame                 ,+++-- ** audioEncoderGetAllocator+    AudioEncoderGetAllocatorMethodInfo      ,+    audioEncoderGetAllocator                ,+++-- ** audioEncoderGetAudioInfo+    AudioEncoderGetAudioInfoMethodInfo      ,+    audioEncoderGetAudioInfo                ,+++-- ** audioEncoderGetDrainable+    AudioEncoderGetDrainableMethodInfo      ,+    audioEncoderGetDrainable                ,+++-- ** audioEncoderGetFrameMax+    AudioEncoderGetFrameMaxMethodInfo       ,+    audioEncoderGetFrameMax                 ,+++-- ** audioEncoderGetFrameSamplesMax+    AudioEncoderGetFrameSamplesMaxMethodInfo,+    audioEncoderGetFrameSamplesMax          ,+++-- ** audioEncoderGetFrameSamplesMin+    AudioEncoderGetFrameSamplesMinMethodInfo,+    audioEncoderGetFrameSamplesMin          ,+++-- ** audioEncoderGetHardMin+    AudioEncoderGetHardMinMethodInfo        ,+    audioEncoderGetHardMin                  ,+++-- ** audioEncoderGetHardResync+    AudioEncoderGetHardResyncMethodInfo     ,+    audioEncoderGetHardResync               ,+++-- ** audioEncoderGetLatency+    AudioEncoderGetLatencyMethodInfo        ,+    audioEncoderGetLatency                  ,+++-- ** audioEncoderGetLookahead+    AudioEncoderGetLookaheadMethodInfo      ,+    audioEncoderGetLookahead                ,+++-- ** audioEncoderGetMarkGranule+    AudioEncoderGetMarkGranuleMethodInfo    ,+    audioEncoderGetMarkGranule              ,+++-- ** audioEncoderGetPerfectTimestamp+    AudioEncoderGetPerfectTimestampMethodInfo,+    audioEncoderGetPerfectTimestamp         ,+++-- ** audioEncoderGetTolerance+    AudioEncoderGetToleranceMethodInfo      ,+    audioEncoderGetTolerance                ,+++-- ** audioEncoderMergeTags+    AudioEncoderMergeTagsMethodInfo         ,+    audioEncoderMergeTags                   ,+++-- ** audioEncoderNegotiate+    AudioEncoderNegotiateMethodInfo         ,+    audioEncoderNegotiate                   ,+++-- ** audioEncoderProxyGetcaps+    AudioEncoderProxyGetcapsMethodInfo      ,+    audioEncoderProxyGetcaps                ,+++-- ** audioEncoderSetDrainable+    AudioEncoderSetDrainableMethodInfo      ,+    audioEncoderSetDrainable                ,+++-- ** audioEncoderSetFrameMax+    AudioEncoderSetFrameMaxMethodInfo       ,+    audioEncoderSetFrameMax                 ,+++-- ** audioEncoderSetFrameSamplesMax+    AudioEncoderSetFrameSamplesMaxMethodInfo,+    audioEncoderSetFrameSamplesMax          ,+++-- ** audioEncoderSetFrameSamplesMin+    AudioEncoderSetFrameSamplesMinMethodInfo,+    audioEncoderSetFrameSamplesMin          ,+++-- ** audioEncoderSetHardMin+    AudioEncoderSetHardMinMethodInfo        ,+    audioEncoderSetHardMin                  ,+++-- ** audioEncoderSetHardResync+    AudioEncoderSetHardResyncMethodInfo     ,+    audioEncoderSetHardResync               ,+++-- ** audioEncoderSetHeaders+    AudioEncoderSetHeadersMethodInfo        ,+    audioEncoderSetHeaders                  ,+++-- ** audioEncoderSetLatency+    AudioEncoderSetLatencyMethodInfo        ,+    audioEncoderSetLatency                  ,+++-- ** audioEncoderSetLookahead+    AudioEncoderSetLookaheadMethodInfo      ,+    audioEncoderSetLookahead                ,+++-- ** audioEncoderSetMarkGranule+    AudioEncoderSetMarkGranuleMethodInfo    ,+    audioEncoderSetMarkGranule              ,+++-- ** audioEncoderSetOutputFormat+    AudioEncoderSetOutputFormatMethodInfo   ,+    audioEncoderSetOutputFormat             ,+++-- ** audioEncoderSetPerfectTimestamp+    AudioEncoderSetPerfectTimestampMethodInfo,+    audioEncoderSetPerfectTimestamp         ,+++-- ** audioEncoderSetTolerance+    AudioEncoderSetToleranceMethodInfo      ,+    audioEncoderSetTolerance                ,+++++ -- * Properties+-- ** HardResync+    AudioEncoderHardResyncPropertyInfo      ,+    constructAudioEncoderHardResync         ,+    getAudioEncoderHardResync               ,+    setAudioEncoderHardResync               ,+++-- ** MarkGranule+    AudioEncoderMarkGranulePropertyInfo     ,+    getAudioEncoderMarkGranule              ,+++-- ** PerfectTimestamp+    AudioEncoderPerfectTimestampPropertyInfo,+    constructAudioEncoderPerfectTimestamp   ,+    getAudioEncoderPerfectTimestamp         ,+    setAudioEncoderPerfectTimestamp         ,+++-- ** Tolerance+    AudioEncoderTolerancePropertyInfo       ,+    constructAudioEncoderTolerance          ,+    getAudioEncoderTolerance                ,+    setAudioEncoderTolerance                ,+++++    ) where++import Prelude ()+import Data.GI.Base.ShortPrelude++import qualified Data.Text as T+import qualified Data.ByteString.Char8 as B+import qualified Data.Map as Map++import GI.GstAudio.Types+import GI.GstAudio.Callbacks+import qualified GI.GObject as GObject+import qualified GI.Gst as Gst++newtype AudioEncoder = AudioEncoder (ForeignPtr AudioEncoder)+foreign import ccall "gst_audio_encoder_get_type"+    c_gst_audio_encoder_get_type :: IO GType++type instance ParentTypes AudioEncoder = AudioEncoderParentTypes+type AudioEncoderParentTypes = '[Gst.Element, Gst.Object, GObject.Object, Gst.Preset]++instance GObject AudioEncoder where+    gobjectIsInitiallyUnowned _ = True+    gobjectType _ = c_gst_audio_encoder_get_type+    ++class GObject o => AudioEncoderK o+instance (GObject o, IsDescendantOf AudioEncoder o) => AudioEncoderK o++toAudioEncoder :: AudioEncoderK o => o -> IO AudioEncoder+toAudioEncoder = unsafeCastTo AudioEncoder++noAudioEncoder :: Maybe AudioEncoder+noAudioEncoder = Nothing++type family ResolveAudioEncoderMethod (t :: Symbol) (o :: *) :: * where+    ResolveAudioEncoderMethod "abortState" o = Gst.ElementAbortStateMethodInfo+    ResolveAudioEncoderMethod "addControlBinding" o = Gst.ObjectAddControlBindingMethodInfo+    ResolveAudioEncoderMethod "addPad" o = Gst.ElementAddPadMethodInfo+    ResolveAudioEncoderMethod "allocateOutputBuffer" o = AudioEncoderAllocateOutputBufferMethodInfo+    ResolveAudioEncoderMethod "bindProperty" o = GObject.ObjectBindPropertyMethodInfo+    ResolveAudioEncoderMethod "bindPropertyFull" o = GObject.ObjectBindPropertyFullMethodInfo+    ResolveAudioEncoderMethod "changeState" o = Gst.ElementChangeStateMethodInfo+    ResolveAudioEncoderMethod "continueState" o = Gst.ElementContinueStateMethodInfo+    ResolveAudioEncoderMethod "createAllPads" o = Gst.ElementCreateAllPadsMethodInfo+    ResolveAudioEncoderMethod "defaultError" o = Gst.ObjectDefaultErrorMethodInfo+    ResolveAudioEncoderMethod "deletePreset" o = Gst.PresetDeletePresetMethodInfo+    ResolveAudioEncoderMethod "finishFrame" o = AudioEncoderFinishFrameMethodInfo+    ResolveAudioEncoderMethod "forceFloating" o = GObject.ObjectForceFloatingMethodInfo+    ResolveAudioEncoderMethod "freezeNotify" o = GObject.ObjectFreezeNotifyMethodInfo+    ResolveAudioEncoderMethod "hasActiveControlBindings" o = Gst.ObjectHasActiveControlBindingsMethodInfo+    ResolveAudioEncoderMethod "hasAncestor" o = Gst.ObjectHasAncestorMethodInfo+    ResolveAudioEncoderMethod "hasAsAncestor" o = Gst.ObjectHasAsAncestorMethodInfo+    ResolveAudioEncoderMethod "hasAsParent" o = Gst.ObjectHasAsParentMethodInfo+    ResolveAudioEncoderMethod "isEditable" o = Gst.PresetIsEditableMethodInfo+    ResolveAudioEncoderMethod "isFloating" o = GObject.ObjectIsFloatingMethodInfo+    ResolveAudioEncoderMethod "isLockedState" o = Gst.ElementIsLockedStateMethodInfo+    ResolveAudioEncoderMethod "iteratePads" o = Gst.ElementIteratePadsMethodInfo+    ResolveAudioEncoderMethod "iterateSinkPads" o = Gst.ElementIterateSinkPadsMethodInfo+    ResolveAudioEncoderMethod "iterateSrcPads" o = Gst.ElementIterateSrcPadsMethodInfo+    ResolveAudioEncoderMethod "link" o = Gst.ElementLinkMethodInfo+    ResolveAudioEncoderMethod "linkFiltered" o = Gst.ElementLinkFilteredMethodInfo+    ResolveAudioEncoderMethod "linkPads" o = Gst.ElementLinkPadsMethodInfo+    ResolveAudioEncoderMethod "linkPadsFiltered" o = Gst.ElementLinkPadsFilteredMethodInfo+    ResolveAudioEncoderMethod "linkPadsFull" o = Gst.ElementLinkPadsFullMethodInfo+    ResolveAudioEncoderMethod "loadPreset" o = Gst.PresetLoadPresetMethodInfo+    ResolveAudioEncoderMethod "lostState" o = Gst.ElementLostStateMethodInfo+    ResolveAudioEncoderMethod "mergeTags" o = AudioEncoderMergeTagsMethodInfo+    ResolveAudioEncoderMethod "messageFull" o = Gst.ElementMessageFullMethodInfo+    ResolveAudioEncoderMethod "negotiate" o = AudioEncoderNegotiateMethodInfo+    ResolveAudioEncoderMethod "noMorePads" o = Gst.ElementNoMorePadsMethodInfo+    ResolveAudioEncoderMethod "notify" o = GObject.ObjectNotifyMethodInfo+    ResolveAudioEncoderMethod "notifyByPspec" o = GObject.ObjectNotifyByPspecMethodInfo+    ResolveAudioEncoderMethod "postMessage" o = Gst.ElementPostMessageMethodInfo+    ResolveAudioEncoderMethod "provideClock" o = Gst.ElementProvideClockMethodInfo+    ResolveAudioEncoderMethod "proxyGetcaps" o = AudioEncoderProxyGetcapsMethodInfo+    ResolveAudioEncoderMethod "query" o = Gst.ElementQueryMethodInfo+    ResolveAudioEncoderMethod "queryConvert" o = Gst.ElementQueryConvertMethodInfo+    ResolveAudioEncoderMethod "queryDuration" o = Gst.ElementQueryDurationMethodInfo+    ResolveAudioEncoderMethod "queryPosition" o = Gst.ElementQueryPositionMethodInfo+    ResolveAudioEncoderMethod "refSink" o = GObject.ObjectRefSinkMethodInfo+    ResolveAudioEncoderMethod "releaseRequestPad" o = Gst.ElementReleaseRequestPadMethodInfo+    ResolveAudioEncoderMethod "removeControlBinding" o = Gst.ObjectRemoveControlBindingMethodInfo+    ResolveAudioEncoderMethod "removePad" o = Gst.ElementRemovePadMethodInfo+    ResolveAudioEncoderMethod "renamePreset" o = Gst.PresetRenamePresetMethodInfo+    ResolveAudioEncoderMethod "replaceData" o = GObject.ObjectReplaceDataMethodInfo+    ResolveAudioEncoderMethod "replaceQdata" o = GObject.ObjectReplaceQdataMethodInfo+    ResolveAudioEncoderMethod "requestPad" o = Gst.ElementRequestPadMethodInfo+    ResolveAudioEncoderMethod "runDispose" o = GObject.ObjectRunDisposeMethodInfo+    ResolveAudioEncoderMethod "savePreset" o = Gst.PresetSavePresetMethodInfo+    ResolveAudioEncoderMethod "seek" o = Gst.ElementSeekMethodInfo+    ResolveAudioEncoderMethod "seekSimple" o = Gst.ElementSeekSimpleMethodInfo+    ResolveAudioEncoderMethod "sendEvent" o = Gst.ElementSendEventMethodInfo+    ResolveAudioEncoderMethod "stealData" o = GObject.ObjectStealDataMethodInfo+    ResolveAudioEncoderMethod "stealQdata" o = GObject.ObjectStealQdataMethodInfo+    ResolveAudioEncoderMethod "suggestNextSync" o = Gst.ObjectSuggestNextSyncMethodInfo+    ResolveAudioEncoderMethod "syncStateWithParent" o = Gst.ElementSyncStateWithParentMethodInfo+    ResolveAudioEncoderMethod "syncValues" o = Gst.ObjectSyncValuesMethodInfo+    ResolveAudioEncoderMethod "thawNotify" o = GObject.ObjectThawNotifyMethodInfo+    ResolveAudioEncoderMethod "unlink" o = Gst.ElementUnlinkMethodInfo+    ResolveAudioEncoderMethod "unlinkPads" o = Gst.ElementUnlinkPadsMethodInfo+    ResolveAudioEncoderMethod "unparent" o = Gst.ObjectUnparentMethodInfo+    ResolveAudioEncoderMethod "watchClosure" o = GObject.ObjectWatchClosureMethodInfo+    ResolveAudioEncoderMethod "getAllocator" o = AudioEncoderGetAllocatorMethodInfo+    ResolveAudioEncoderMethod "getAudioInfo" o = AudioEncoderGetAudioInfoMethodInfo+    ResolveAudioEncoderMethod "getBaseTime" o = Gst.ElementGetBaseTimeMethodInfo+    ResolveAudioEncoderMethod "getBus" o = Gst.ElementGetBusMethodInfo+    ResolveAudioEncoderMethod "getClock" o = Gst.ElementGetClockMethodInfo+    ResolveAudioEncoderMethod "getCompatiblePad" o = Gst.ElementGetCompatiblePadMethodInfo+    ResolveAudioEncoderMethod "getCompatiblePadTemplate" o = Gst.ElementGetCompatiblePadTemplateMethodInfo+    ResolveAudioEncoderMethod "getControlBinding" o = Gst.ObjectGetControlBindingMethodInfo+    ResolveAudioEncoderMethod "getControlRate" o = Gst.ObjectGetControlRateMethodInfo+    ResolveAudioEncoderMethod "getData" o = GObject.ObjectGetDataMethodInfo+    ResolveAudioEncoderMethod "getDrainable" o = AudioEncoderGetDrainableMethodInfo+    ResolveAudioEncoderMethod "getFactory" o = Gst.ElementGetFactoryMethodInfo+    ResolveAudioEncoderMethod "getFrameMax" o = AudioEncoderGetFrameMaxMethodInfo+    ResolveAudioEncoderMethod "getFrameSamplesMax" o = AudioEncoderGetFrameSamplesMaxMethodInfo+    ResolveAudioEncoderMethod "getFrameSamplesMin" o = AudioEncoderGetFrameSamplesMinMethodInfo+    ResolveAudioEncoderMethod "getGValueArray" o = Gst.ObjectGetGValueArrayMethodInfo+    ResolveAudioEncoderMethod "getHardMin" o = AudioEncoderGetHardMinMethodInfo+    ResolveAudioEncoderMethod "getHardResync" o = AudioEncoderGetHardResyncMethodInfo+    ResolveAudioEncoderMethod "getLatency" o = AudioEncoderGetLatencyMethodInfo+    ResolveAudioEncoderMethod "getLookahead" o = AudioEncoderGetLookaheadMethodInfo+    ResolveAudioEncoderMethod "getMarkGranule" o = AudioEncoderGetMarkGranuleMethodInfo+    ResolveAudioEncoderMethod "getMeta" o = Gst.PresetGetMetaMethodInfo+    ResolveAudioEncoderMethod "getName" o = Gst.ObjectGetNameMethodInfo+    ResolveAudioEncoderMethod "getParent" o = Gst.ObjectGetParentMethodInfo+    ResolveAudioEncoderMethod "getPathString" o = Gst.ObjectGetPathStringMethodInfo+    ResolveAudioEncoderMethod "getPerfectTimestamp" o = AudioEncoderGetPerfectTimestampMethodInfo+    ResolveAudioEncoderMethod "getPresetNames" o = Gst.PresetGetPresetNamesMethodInfo+    ResolveAudioEncoderMethod "getProperty" o = GObject.ObjectGetPropertyMethodInfo+    ResolveAudioEncoderMethod "getPropertyNames" o = Gst.PresetGetPropertyNamesMethodInfo+    ResolveAudioEncoderMethod "getQdata" o = GObject.ObjectGetQdataMethodInfo+    ResolveAudioEncoderMethod "getRequestPad" o = Gst.ElementGetRequestPadMethodInfo+    ResolveAudioEncoderMethod "getStartTime" o = Gst.ElementGetStartTimeMethodInfo+    ResolveAudioEncoderMethod "getState" o = Gst.ElementGetStateMethodInfo+    ResolveAudioEncoderMethod "getStaticPad" o = Gst.ElementGetStaticPadMethodInfo+    ResolveAudioEncoderMethod "getTolerance" o = AudioEncoderGetToleranceMethodInfo+    ResolveAudioEncoderMethod "getValue" o = Gst.ObjectGetValueMethodInfo+    ResolveAudioEncoderMethod "getValueArray" o = Gst.ObjectGetValueArrayMethodInfo+    ResolveAudioEncoderMethod "setBaseTime" o = Gst.ElementSetBaseTimeMethodInfo+    ResolveAudioEncoderMethod "setBus" o = Gst.ElementSetBusMethodInfo+    ResolveAudioEncoderMethod "setClock" o = Gst.ElementSetClockMethodInfo+    ResolveAudioEncoderMethod "setContext" o = Gst.ElementSetContextMethodInfo+    ResolveAudioEncoderMethod "setControlBindingDisabled" o = Gst.ObjectSetControlBindingDisabledMethodInfo+    ResolveAudioEncoderMethod "setControlBindingsDisabled" o = Gst.ObjectSetControlBindingsDisabledMethodInfo+    ResolveAudioEncoderMethod "setControlRate" o = Gst.ObjectSetControlRateMethodInfo+    ResolveAudioEncoderMethod "setData" o = GObject.ObjectSetDataMethodInfo+    ResolveAudioEncoderMethod "setDrainable" o = AudioEncoderSetDrainableMethodInfo+    ResolveAudioEncoderMethod "setFrameMax" o = AudioEncoderSetFrameMaxMethodInfo+    ResolveAudioEncoderMethod "setFrameSamplesMax" o = AudioEncoderSetFrameSamplesMaxMethodInfo+    ResolveAudioEncoderMethod "setFrameSamplesMin" o = AudioEncoderSetFrameSamplesMinMethodInfo+    ResolveAudioEncoderMethod "setHardMin" o = AudioEncoderSetHardMinMethodInfo+    ResolveAudioEncoderMethod "setHardResync" o = AudioEncoderSetHardResyncMethodInfo+    ResolveAudioEncoderMethod "setHeaders" o = AudioEncoderSetHeadersMethodInfo+    ResolveAudioEncoderMethod "setLatency" o = AudioEncoderSetLatencyMethodInfo+    ResolveAudioEncoderMethod "setLockedState" o = Gst.ElementSetLockedStateMethodInfo+    ResolveAudioEncoderMethod "setLookahead" o = AudioEncoderSetLookaheadMethodInfo+    ResolveAudioEncoderMethod "setMarkGranule" o = AudioEncoderSetMarkGranuleMethodInfo+    ResolveAudioEncoderMethod "setMeta" o = Gst.PresetSetMetaMethodInfo+    ResolveAudioEncoderMethod "setName" o = Gst.ObjectSetNameMethodInfo+    ResolveAudioEncoderMethod "setOutputFormat" o = AudioEncoderSetOutputFormatMethodInfo+    ResolveAudioEncoderMethod "setParent" o = Gst.ObjectSetParentMethodInfo+    ResolveAudioEncoderMethod "setPerfectTimestamp" o = AudioEncoderSetPerfectTimestampMethodInfo+    ResolveAudioEncoderMethod "setProperty" o = GObject.ObjectSetPropertyMethodInfo+    ResolveAudioEncoderMethod "setStartTime" o = Gst.ElementSetStartTimeMethodInfo+    ResolveAudioEncoderMethod "setState" o = Gst.ElementSetStateMethodInfo+    ResolveAudioEncoderMethod "setTolerance" o = AudioEncoderSetToleranceMethodInfo+    ResolveAudioEncoderMethod l o = MethodResolutionFailed l o++instance (info ~ ResolveAudioEncoderMethod t AudioEncoder, MethodInfo info AudioEncoder p) => IsLabelProxy t (AudioEncoder -> p) where+    fromLabelProxy _ = overloadedMethod (MethodProxy :: MethodProxy info)++#if MIN_VERSION_base(4,9,0)+instance (info ~ ResolveAudioEncoderMethod t AudioEncoder, MethodInfo info AudioEncoder p) => IsLabel t (AudioEncoder -> p) where+    fromLabel _ = overloadedMethod (MethodProxy :: MethodProxy info)+#endif++-- VVV Prop "hard-resync"+   -- Type: TBasicType TBoolean+   -- Flags: [PropertyReadable,PropertyWritable]++getAudioEncoderHardResync :: (MonadIO m, AudioEncoderK o) => o -> m Bool+getAudioEncoderHardResync obj = liftIO $ getObjectPropertyBool obj "hard-resync"++setAudioEncoderHardResync :: (MonadIO m, AudioEncoderK o) => o -> Bool -> m ()+setAudioEncoderHardResync obj val = liftIO $ setObjectPropertyBool obj "hard-resync" val++constructAudioEncoderHardResync :: Bool -> IO ([Char], GValue)+constructAudioEncoderHardResync val = constructObjectPropertyBool "hard-resync" val++data AudioEncoderHardResyncPropertyInfo+instance AttrInfo AudioEncoderHardResyncPropertyInfo where+    type AttrAllowedOps AudioEncoderHardResyncPropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet]+    type AttrSetTypeConstraint AudioEncoderHardResyncPropertyInfo = (~) Bool+    type AttrBaseTypeConstraint AudioEncoderHardResyncPropertyInfo = AudioEncoderK+    type AttrGetType AudioEncoderHardResyncPropertyInfo = Bool+    type AttrLabel AudioEncoderHardResyncPropertyInfo = "hard-resync"+    attrGet _ = getAudioEncoderHardResync+    attrSet _ = setAudioEncoderHardResync+    attrConstruct _ = constructAudioEncoderHardResync++-- VVV Prop "mark-granule"+   -- Type: TBasicType TBoolean+   -- Flags: [PropertyReadable]++getAudioEncoderMarkGranule :: (MonadIO m, AudioEncoderK o) => o -> m Bool+getAudioEncoderMarkGranule obj = liftIO $ getObjectPropertyBool obj "mark-granule"++data AudioEncoderMarkGranulePropertyInfo+instance AttrInfo AudioEncoderMarkGranulePropertyInfo where+    type AttrAllowedOps AudioEncoderMarkGranulePropertyInfo = '[ 'AttrGet]+    type AttrSetTypeConstraint AudioEncoderMarkGranulePropertyInfo = (~) ()+    type AttrBaseTypeConstraint AudioEncoderMarkGranulePropertyInfo = AudioEncoderK+    type AttrGetType AudioEncoderMarkGranulePropertyInfo = Bool+    type AttrLabel AudioEncoderMarkGranulePropertyInfo = "mark-granule"+    attrGet _ = getAudioEncoderMarkGranule+    attrSet _ = undefined+    attrConstruct _ = undefined++-- VVV Prop "perfect-timestamp"+   -- Type: TBasicType TBoolean+   -- Flags: [PropertyReadable,PropertyWritable]++getAudioEncoderPerfectTimestamp :: (MonadIO m, AudioEncoderK o) => o -> m Bool+getAudioEncoderPerfectTimestamp obj = liftIO $ getObjectPropertyBool obj "perfect-timestamp"++setAudioEncoderPerfectTimestamp :: (MonadIO m, AudioEncoderK o) => o -> Bool -> m ()+setAudioEncoderPerfectTimestamp obj val = liftIO $ setObjectPropertyBool obj "perfect-timestamp" val++constructAudioEncoderPerfectTimestamp :: Bool -> IO ([Char], GValue)+constructAudioEncoderPerfectTimestamp val = constructObjectPropertyBool "perfect-timestamp" val++data AudioEncoderPerfectTimestampPropertyInfo+instance AttrInfo AudioEncoderPerfectTimestampPropertyInfo where+    type AttrAllowedOps AudioEncoderPerfectTimestampPropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet]+    type AttrSetTypeConstraint AudioEncoderPerfectTimestampPropertyInfo = (~) Bool+    type AttrBaseTypeConstraint AudioEncoderPerfectTimestampPropertyInfo = AudioEncoderK+    type AttrGetType AudioEncoderPerfectTimestampPropertyInfo = Bool+    type AttrLabel AudioEncoderPerfectTimestampPropertyInfo = "perfect-timestamp"+    attrGet _ = getAudioEncoderPerfectTimestamp+    attrSet _ = setAudioEncoderPerfectTimestamp+    attrConstruct _ = constructAudioEncoderPerfectTimestamp++-- VVV Prop "tolerance"+   -- Type: TBasicType TInt64+   -- Flags: [PropertyReadable,PropertyWritable]++getAudioEncoderTolerance :: (MonadIO m, AudioEncoderK o) => o -> m Int64+getAudioEncoderTolerance obj = liftIO $ getObjectPropertyInt64 obj "tolerance"++setAudioEncoderTolerance :: (MonadIO m, AudioEncoderK o) => o -> Int64 -> m ()+setAudioEncoderTolerance obj val = liftIO $ setObjectPropertyInt64 obj "tolerance" val++constructAudioEncoderTolerance :: Int64 -> IO ([Char], GValue)+constructAudioEncoderTolerance val = constructObjectPropertyInt64 "tolerance" val++data AudioEncoderTolerancePropertyInfo+instance AttrInfo AudioEncoderTolerancePropertyInfo where+    type AttrAllowedOps AudioEncoderTolerancePropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet]+    type AttrSetTypeConstraint AudioEncoderTolerancePropertyInfo = (~) Int64+    type AttrBaseTypeConstraint AudioEncoderTolerancePropertyInfo = AudioEncoderK+    type AttrGetType AudioEncoderTolerancePropertyInfo = Int64+    type AttrLabel AudioEncoderTolerancePropertyInfo = "tolerance"+    attrGet _ = getAudioEncoderTolerance+    attrSet _ = setAudioEncoderTolerance+    attrConstruct _ = constructAudioEncoderTolerance++type instance AttributeList AudioEncoder = AudioEncoderAttributeList+type AudioEncoderAttributeList = ('[ '("hardResync", AudioEncoderHardResyncPropertyInfo), '("markGranule", AudioEncoderMarkGranulePropertyInfo), '("name", Gst.ObjectNamePropertyInfo), '("parent", Gst.ObjectParentPropertyInfo), '("perfectTimestamp", AudioEncoderPerfectTimestampPropertyInfo), '("tolerance", AudioEncoderTolerancePropertyInfo)] :: [(Symbol, *)])++type instance SignalList AudioEncoder = AudioEncoderSignalList+type AudioEncoderSignalList = ('[ '("deepNotify", Gst.ObjectDeepNotifySignalInfo), '("noMorePads", Gst.ElementNoMorePadsSignalInfo), '("notify", GObject.ObjectNotifySignalInfo), '("padAdded", Gst.ElementPadAddedSignalInfo), '("padRemoved", Gst.ElementPadRemovedSignalInfo)] :: [(Symbol, *)])++-- method AudioEncoder::allocate_output_buffer+-- method type : OrdinaryMethod+-- Args : [Arg {argCName = "_obj", argType = TInterface "GstAudio" "AudioEncoder", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "size", argType = TBasicType TUInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]+-- Lengths : []+-- returnType : TInterface "Gst" "Buffer"+-- throws : False+-- Skip return : False++foreign import ccall "gst_audio_encoder_allocate_output_buffer" gst_audio_encoder_allocate_output_buffer :: +    Ptr AudioEncoder ->                     -- _obj : TInterface "GstAudio" "AudioEncoder"+    Word64 ->                               -- size : TBasicType TUInt64+    IO (Ptr Gst.Buffer)+++audioEncoderAllocateOutputBuffer ::+    (MonadIO m, AudioEncoderK a) =>+    a                                       -- _obj+    -> Word64                               -- size+    -> m Gst.Buffer                         -- result+audioEncoderAllocateOutputBuffer _obj size = liftIO $ do+    let _obj' = unsafeManagedPtrCastPtr _obj+    result <- gst_audio_encoder_allocate_output_buffer _obj' size+    checkUnexpectedReturnNULL "gst_audio_encoder_allocate_output_buffer" result+    result' <- (wrapBoxed Gst.Buffer) result+    touchManagedPtr _obj+    return result'++data AudioEncoderAllocateOutputBufferMethodInfo+instance (signature ~ (Word64 -> m Gst.Buffer), MonadIO m, AudioEncoderK a) => MethodInfo AudioEncoderAllocateOutputBufferMethodInfo a signature where+    overloadedMethod _ = audioEncoderAllocateOutputBuffer++-- method AudioEncoder::finish_frame+-- method type : OrdinaryMethod+-- Args : [Arg {argCName = "_obj", argType = TInterface "GstAudio" "AudioEncoder", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "buffer", argType = TInterface "Gst" "Buffer", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "samples", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]+-- Lengths : []+-- returnType : TInterface "Gst" "FlowReturn"+-- throws : False+-- Skip return : False++foreign import ccall "gst_audio_encoder_finish_frame" gst_audio_encoder_finish_frame :: +    Ptr AudioEncoder ->                     -- _obj : TInterface "GstAudio" "AudioEncoder"+    Ptr Gst.Buffer ->                       -- buffer : TInterface "Gst" "Buffer"+    Int32 ->                                -- samples : TBasicType TInt32+    IO CUInt+++audioEncoderFinishFrame ::+    (MonadIO m, AudioEncoderK a) =>+    a                                       -- _obj+    -> Gst.Buffer                           -- buffer+    -> Int32                                -- samples+    -> m Gst.FlowReturn                     -- result+audioEncoderFinishFrame _obj buffer samples = liftIO $ do+    let _obj' = unsafeManagedPtrCastPtr _obj+    let buffer' = unsafeManagedPtrGetPtr buffer+    result <- gst_audio_encoder_finish_frame _obj' buffer' samples+    let result' = (toEnum . fromIntegral) result+    touchManagedPtr _obj+    touchManagedPtr buffer+    return result'++data AudioEncoderFinishFrameMethodInfo+instance (signature ~ (Gst.Buffer -> Int32 -> m Gst.FlowReturn), MonadIO m, AudioEncoderK a) => MethodInfo AudioEncoderFinishFrameMethodInfo a signature where+    overloadedMethod _ = audioEncoderFinishFrame++-- method AudioEncoder::get_allocator+-- method type : OrdinaryMethod+-- Args : [Arg {argCName = "_obj", argType = TInterface "GstAudio" "AudioEncoder", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "allocator", argType = TInterface "Gst" "Allocator", direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything},Arg {argCName = "params", argType = TInterface "Gst" "AllocationParams", direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = True, transfer = TransferEverything}]+-- Lengths : []+-- returnType : TBasicType TVoid+-- throws : False+-- Skip return : False++foreign import ccall "gst_audio_encoder_get_allocator" gst_audio_encoder_get_allocator :: +    Ptr AudioEncoder ->                     -- _obj : TInterface "GstAudio" "AudioEncoder"+    Ptr (Ptr Gst.Allocator) ->              -- allocator : TInterface "Gst" "Allocator"+    Ptr Gst.AllocationParams ->             -- params : TInterface "Gst" "AllocationParams"+    IO ()+++audioEncoderGetAllocator ::+    (MonadIO m, AudioEncoderK a) =>+    a                                       -- _obj+    -> m (Gst.Allocator,Gst.AllocationParams)-- result+audioEncoderGetAllocator _obj = liftIO $ do+    let _obj' = unsafeManagedPtrCastPtr _obj+    allocator <- allocMem :: IO (Ptr (Ptr Gst.Allocator))+    params <- callocBoxedBytes 64 :: IO (Ptr Gst.AllocationParams)+    gst_audio_encoder_get_allocator _obj' allocator params+    allocator' <- peek allocator+    allocator'' <- (wrapObject Gst.Allocator) allocator'+    params' <- (wrapBoxed Gst.AllocationParams) params+    touchManagedPtr _obj+    freeMem allocator+    return (allocator'', params')++data AudioEncoderGetAllocatorMethodInfo+instance (signature ~ (m (Gst.Allocator,Gst.AllocationParams)), MonadIO m, AudioEncoderK a) => MethodInfo AudioEncoderGetAllocatorMethodInfo a signature where+    overloadedMethod _ = audioEncoderGetAllocator++-- method AudioEncoder::get_audio_info+-- method type : OrdinaryMethod+-- Args : [Arg {argCName = "_obj", argType = TInterface "GstAudio" "AudioEncoder", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]+-- Lengths : []+-- returnType : TInterface "GstAudio" "AudioInfo"+-- throws : False+-- Skip return : False++foreign import ccall "gst_audio_encoder_get_audio_info" gst_audio_encoder_get_audio_info :: +    Ptr AudioEncoder ->                     -- _obj : TInterface "GstAudio" "AudioEncoder"+    IO (Ptr AudioInfo)+++audioEncoderGetAudioInfo ::+    (MonadIO m, AudioEncoderK a) =>+    a                                       -- _obj+    -> m AudioInfo                          -- result+audioEncoderGetAudioInfo _obj = liftIO $ do+    let _obj' = unsafeManagedPtrCastPtr _obj+    result <- gst_audio_encoder_get_audio_info _obj'+    checkUnexpectedReturnNULL "gst_audio_encoder_get_audio_info" result+    result' <- (wrapBoxed AudioInfo) result+    touchManagedPtr _obj+    return result'++data AudioEncoderGetAudioInfoMethodInfo+instance (signature ~ (m AudioInfo), MonadIO m, AudioEncoderK a) => MethodInfo AudioEncoderGetAudioInfoMethodInfo a signature where+    overloadedMethod _ = audioEncoderGetAudioInfo++-- method AudioEncoder::get_drainable+-- method type : OrdinaryMethod+-- Args : [Arg {argCName = "_obj", argType = TInterface "GstAudio" "AudioEncoder", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]+-- Lengths : []+-- returnType : TBasicType TBoolean+-- throws : False+-- Skip return : False++foreign import ccall "gst_audio_encoder_get_drainable" gst_audio_encoder_get_drainable :: +    Ptr AudioEncoder ->                     -- _obj : TInterface "GstAudio" "AudioEncoder"+    IO CInt+++audioEncoderGetDrainable ::+    (MonadIO m, AudioEncoderK a) =>+    a                                       -- _obj+    -> m Bool                               -- result+audioEncoderGetDrainable _obj = liftIO $ do+    let _obj' = unsafeManagedPtrCastPtr _obj+    result <- gst_audio_encoder_get_drainable _obj'+    let result' = (/= 0) result+    touchManagedPtr _obj+    return result'++data AudioEncoderGetDrainableMethodInfo+instance (signature ~ (m Bool), MonadIO m, AudioEncoderK a) => MethodInfo AudioEncoderGetDrainableMethodInfo a signature where+    overloadedMethod _ = audioEncoderGetDrainable++-- method AudioEncoder::get_frame_max+-- method type : OrdinaryMethod+-- Args : [Arg {argCName = "_obj", argType = TInterface "GstAudio" "AudioEncoder", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]+-- Lengths : []+-- returnType : TBasicType TInt32+-- throws : False+-- Skip return : False++foreign import ccall "gst_audio_encoder_get_frame_max" gst_audio_encoder_get_frame_max :: +    Ptr AudioEncoder ->                     -- _obj : TInterface "GstAudio" "AudioEncoder"+    IO Int32+++audioEncoderGetFrameMax ::+    (MonadIO m, AudioEncoderK a) =>+    a                                       -- _obj+    -> m Int32                              -- result+audioEncoderGetFrameMax _obj = liftIO $ do+    let _obj' = unsafeManagedPtrCastPtr _obj+    result <- gst_audio_encoder_get_frame_max _obj'+    touchManagedPtr _obj+    return result++data AudioEncoderGetFrameMaxMethodInfo+instance (signature ~ (m Int32), MonadIO m, AudioEncoderK a) => MethodInfo AudioEncoderGetFrameMaxMethodInfo a signature where+    overloadedMethod _ = audioEncoderGetFrameMax++-- method AudioEncoder::get_frame_samples_max+-- method type : OrdinaryMethod+-- Args : [Arg {argCName = "_obj", argType = TInterface "GstAudio" "AudioEncoder", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]+-- Lengths : []+-- returnType : TBasicType TInt32+-- throws : False+-- Skip return : False++foreign import ccall "gst_audio_encoder_get_frame_samples_max" gst_audio_encoder_get_frame_samples_max :: +    Ptr AudioEncoder ->                     -- _obj : TInterface "GstAudio" "AudioEncoder"+    IO Int32+++audioEncoderGetFrameSamplesMax ::+    (MonadIO m, AudioEncoderK a) =>+    a                                       -- _obj+    -> m Int32                              -- result+audioEncoderGetFrameSamplesMax _obj = liftIO $ do+    let _obj' = unsafeManagedPtrCastPtr _obj+    result <- gst_audio_encoder_get_frame_samples_max _obj'+    touchManagedPtr _obj+    return result++data AudioEncoderGetFrameSamplesMaxMethodInfo+instance (signature ~ (m Int32), MonadIO m, AudioEncoderK a) => MethodInfo AudioEncoderGetFrameSamplesMaxMethodInfo a signature where+    overloadedMethod _ = audioEncoderGetFrameSamplesMax++-- method AudioEncoder::get_frame_samples_min+-- method type : OrdinaryMethod+-- Args : [Arg {argCName = "_obj", argType = TInterface "GstAudio" "AudioEncoder", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]+-- Lengths : []+-- returnType : TBasicType TInt32+-- throws : False+-- Skip return : False++foreign import ccall "gst_audio_encoder_get_frame_samples_min" gst_audio_encoder_get_frame_samples_min :: +    Ptr AudioEncoder ->                     -- _obj : TInterface "GstAudio" "AudioEncoder"+    IO Int32+++audioEncoderGetFrameSamplesMin ::+    (MonadIO m, AudioEncoderK a) =>+    a                                       -- _obj+    -> m Int32                              -- result+audioEncoderGetFrameSamplesMin _obj = liftIO $ do+    let _obj' = unsafeManagedPtrCastPtr _obj+    result <- gst_audio_encoder_get_frame_samples_min _obj'+    touchManagedPtr _obj+    return result++data AudioEncoderGetFrameSamplesMinMethodInfo+instance (signature ~ (m Int32), MonadIO m, AudioEncoderK a) => MethodInfo AudioEncoderGetFrameSamplesMinMethodInfo a signature where+    overloadedMethod _ = audioEncoderGetFrameSamplesMin++-- method AudioEncoder::get_hard_min+-- method type : OrdinaryMethod+-- Args : [Arg {argCName = "_obj", argType = TInterface "GstAudio" "AudioEncoder", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]+-- Lengths : []+-- returnType : TBasicType TBoolean+-- throws : False+-- Skip return : False++foreign import ccall "gst_audio_encoder_get_hard_min" gst_audio_encoder_get_hard_min :: +    Ptr AudioEncoder ->                     -- _obj : TInterface "GstAudio" "AudioEncoder"+    IO CInt+++audioEncoderGetHardMin ::+    (MonadIO m, AudioEncoderK a) =>+    a                                       -- _obj+    -> m Bool                               -- result+audioEncoderGetHardMin _obj = liftIO $ do+    let _obj' = unsafeManagedPtrCastPtr _obj+    result <- gst_audio_encoder_get_hard_min _obj'+    let result' = (/= 0) result+    touchManagedPtr _obj+    return result'++data AudioEncoderGetHardMinMethodInfo+instance (signature ~ (m Bool), MonadIO m, AudioEncoderK a) => MethodInfo AudioEncoderGetHardMinMethodInfo a signature where+    overloadedMethod _ = audioEncoderGetHardMin++-- method AudioEncoder::get_hard_resync+-- method type : OrdinaryMethod+-- Args : [Arg {argCName = "_obj", argType = TInterface "GstAudio" "AudioEncoder", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]+-- Lengths : []+-- returnType : TBasicType TBoolean+-- throws : False+-- Skip return : False++foreign import ccall "gst_audio_encoder_get_hard_resync" gst_audio_encoder_get_hard_resync :: +    Ptr AudioEncoder ->                     -- _obj : TInterface "GstAudio" "AudioEncoder"+    IO CInt+++audioEncoderGetHardResync ::+    (MonadIO m, AudioEncoderK a) =>+    a                                       -- _obj+    -> m Bool                               -- result+audioEncoderGetHardResync _obj = liftIO $ do+    let _obj' = unsafeManagedPtrCastPtr _obj+    result <- gst_audio_encoder_get_hard_resync _obj'+    let result' = (/= 0) result+    touchManagedPtr _obj+    return result'++data AudioEncoderGetHardResyncMethodInfo+instance (signature ~ (m Bool), MonadIO m, AudioEncoderK a) => MethodInfo AudioEncoderGetHardResyncMethodInfo a signature where+    overloadedMethod _ = audioEncoderGetHardResync++-- method AudioEncoder::get_latency+-- method type : OrdinaryMethod+-- Args : [Arg {argCName = "_obj", argType = TInterface "GstAudio" "AudioEncoder", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "min", argType = TBasicType TUInt64, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything},Arg {argCName = "max", argType = TBasicType TUInt64, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything}]+-- Lengths : []+-- returnType : TBasicType TVoid+-- throws : False+-- Skip return : False++foreign import ccall "gst_audio_encoder_get_latency" gst_audio_encoder_get_latency :: +    Ptr AudioEncoder ->                     -- _obj : TInterface "GstAudio" "AudioEncoder"+    Ptr Word64 ->                           -- min : TBasicType TUInt64+    Ptr Word64 ->                           -- max : TBasicType TUInt64+    IO ()+++audioEncoderGetLatency ::+    (MonadIO m, AudioEncoderK a) =>+    a                                       -- _obj+    -> m (Word64,Word64)                    -- result+audioEncoderGetLatency _obj = liftIO $ do+    let _obj' = unsafeManagedPtrCastPtr _obj+    min <- allocMem :: IO (Ptr Word64)+    max <- allocMem :: IO (Ptr Word64)+    gst_audio_encoder_get_latency _obj' min max+    min' <- peek min+    max' <- peek max+    touchManagedPtr _obj+    freeMem min+    freeMem max+    return (min', max')++data AudioEncoderGetLatencyMethodInfo+instance (signature ~ (m (Word64,Word64)), MonadIO m, AudioEncoderK a) => MethodInfo AudioEncoderGetLatencyMethodInfo a signature where+    overloadedMethod _ = audioEncoderGetLatency++-- method AudioEncoder::get_lookahead+-- method type : OrdinaryMethod+-- Args : [Arg {argCName = "_obj", argType = TInterface "GstAudio" "AudioEncoder", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]+-- Lengths : []+-- returnType : TBasicType TInt32+-- throws : False+-- Skip return : False++foreign import ccall "gst_audio_encoder_get_lookahead" gst_audio_encoder_get_lookahead :: +    Ptr AudioEncoder ->                     -- _obj : TInterface "GstAudio" "AudioEncoder"+    IO Int32+++audioEncoderGetLookahead ::+    (MonadIO m, AudioEncoderK a) =>+    a                                       -- _obj+    -> m Int32                              -- result+audioEncoderGetLookahead _obj = liftIO $ do+    let _obj' = unsafeManagedPtrCastPtr _obj+    result <- gst_audio_encoder_get_lookahead _obj'+    touchManagedPtr _obj+    return result++data AudioEncoderGetLookaheadMethodInfo+instance (signature ~ (m Int32), MonadIO m, AudioEncoderK a) => MethodInfo AudioEncoderGetLookaheadMethodInfo a signature where+    overloadedMethod _ = audioEncoderGetLookahead++-- method AudioEncoder::get_mark_granule+-- method type : OrdinaryMethod+-- Args : [Arg {argCName = "_obj", argType = TInterface "GstAudio" "AudioEncoder", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]+-- Lengths : []+-- returnType : TBasicType TBoolean+-- throws : False+-- Skip return : False++foreign import ccall "gst_audio_encoder_get_mark_granule" gst_audio_encoder_get_mark_granule :: +    Ptr AudioEncoder ->                     -- _obj : TInterface "GstAudio" "AudioEncoder"+    IO CInt+++audioEncoderGetMarkGranule ::+    (MonadIO m, AudioEncoderK a) =>+    a                                       -- _obj+    -> m Bool                               -- result+audioEncoderGetMarkGranule _obj = liftIO $ do+    let _obj' = unsafeManagedPtrCastPtr _obj+    result <- gst_audio_encoder_get_mark_granule _obj'+    let result' = (/= 0) result+    touchManagedPtr _obj+    return result'++data AudioEncoderGetMarkGranuleMethodInfo+instance (signature ~ (m Bool), MonadIO m, AudioEncoderK a) => MethodInfo AudioEncoderGetMarkGranuleMethodInfo a signature where+    overloadedMethod _ = audioEncoderGetMarkGranule++-- method AudioEncoder::get_perfect_timestamp+-- method type : OrdinaryMethod+-- Args : [Arg {argCName = "_obj", argType = TInterface "GstAudio" "AudioEncoder", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]+-- Lengths : []+-- returnType : TBasicType TBoolean+-- throws : False+-- Skip return : False++foreign import ccall "gst_audio_encoder_get_perfect_timestamp" gst_audio_encoder_get_perfect_timestamp :: +    Ptr AudioEncoder ->                     -- _obj : TInterface "GstAudio" "AudioEncoder"+    IO CInt+++audioEncoderGetPerfectTimestamp ::+    (MonadIO m, AudioEncoderK a) =>+    a                                       -- _obj+    -> m Bool                               -- result+audioEncoderGetPerfectTimestamp _obj = liftIO $ do+    let _obj' = unsafeManagedPtrCastPtr _obj+    result <- gst_audio_encoder_get_perfect_timestamp _obj'+    let result' = (/= 0) result+    touchManagedPtr _obj+    return result'++data AudioEncoderGetPerfectTimestampMethodInfo+instance (signature ~ (m Bool), MonadIO m, AudioEncoderK a) => MethodInfo AudioEncoderGetPerfectTimestampMethodInfo a signature where+    overloadedMethod _ = audioEncoderGetPerfectTimestamp++-- method AudioEncoder::get_tolerance+-- method type : OrdinaryMethod+-- Args : [Arg {argCName = "_obj", argType = TInterface "GstAudio" "AudioEncoder", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]+-- Lengths : []+-- returnType : TBasicType TUInt64+-- throws : False+-- Skip return : False++foreign import ccall "gst_audio_encoder_get_tolerance" gst_audio_encoder_get_tolerance :: +    Ptr AudioEncoder ->                     -- _obj : TInterface "GstAudio" "AudioEncoder"+    IO Word64+++audioEncoderGetTolerance ::+    (MonadIO m, AudioEncoderK a) =>+    a                                       -- _obj+    -> m Word64                             -- result+audioEncoderGetTolerance _obj = liftIO $ do+    let _obj' = unsafeManagedPtrCastPtr _obj+    result <- gst_audio_encoder_get_tolerance _obj'+    touchManagedPtr _obj+    return result++data AudioEncoderGetToleranceMethodInfo+instance (signature ~ (m Word64), MonadIO m, AudioEncoderK a) => MethodInfo AudioEncoderGetToleranceMethodInfo a signature where+    overloadedMethod _ = audioEncoderGetTolerance++-- method AudioEncoder::merge_tags+-- method type : OrdinaryMethod+-- Args : [Arg {argCName = "_obj", argType = TInterface "GstAudio" "AudioEncoder", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "tags", argType = TInterface "Gst" "TagList", direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "mode", argType = TInterface "Gst" "TagMergeMode", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]+-- Lengths : []+-- returnType : TBasicType TVoid+-- throws : False+-- Skip return : False++foreign import ccall "gst_audio_encoder_merge_tags" gst_audio_encoder_merge_tags :: +    Ptr AudioEncoder ->                     -- _obj : TInterface "GstAudio" "AudioEncoder"+    Ptr Gst.TagList ->                      -- tags : TInterface "Gst" "TagList"+    CUInt ->                                -- mode : TInterface "Gst" "TagMergeMode"+    IO ()+++audioEncoderMergeTags ::+    (MonadIO m, AudioEncoderK a) =>+    a                                       -- _obj+    -> Maybe (Gst.TagList)                  -- tags+    -> Gst.TagMergeMode                     -- mode+    -> m ()                                 -- result+audioEncoderMergeTags _obj tags mode = liftIO $ do+    let _obj' = unsafeManagedPtrCastPtr _obj+    maybeTags <- case tags of+        Nothing -> return nullPtr+        Just jTags -> do+            let jTags' = unsafeManagedPtrGetPtr jTags+            return jTags'+    let mode' = (fromIntegral . fromEnum) mode+    gst_audio_encoder_merge_tags _obj' maybeTags mode'+    touchManagedPtr _obj+    whenJust tags touchManagedPtr+    return ()++data AudioEncoderMergeTagsMethodInfo+instance (signature ~ (Maybe (Gst.TagList) -> Gst.TagMergeMode -> m ()), MonadIO m, AudioEncoderK a) => MethodInfo AudioEncoderMergeTagsMethodInfo a signature where+    overloadedMethod _ = audioEncoderMergeTags++-- method AudioEncoder::negotiate+-- method type : OrdinaryMethod+-- Args : [Arg {argCName = "_obj", argType = TInterface "GstAudio" "AudioEncoder", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]+-- Lengths : []+-- returnType : TBasicType TBoolean+-- throws : False+-- Skip return : False++foreign import ccall "gst_audio_encoder_negotiate" gst_audio_encoder_negotiate :: +    Ptr AudioEncoder ->                     -- _obj : TInterface "GstAudio" "AudioEncoder"+    IO CInt+++audioEncoderNegotiate ::+    (MonadIO m, AudioEncoderK a) =>+    a                                       -- _obj+    -> m Bool                               -- result+audioEncoderNegotiate _obj = liftIO $ do+    let _obj' = unsafeManagedPtrCastPtr _obj+    result <- gst_audio_encoder_negotiate _obj'+    let result' = (/= 0) result+    touchManagedPtr _obj+    return result'++data AudioEncoderNegotiateMethodInfo+instance (signature ~ (m Bool), MonadIO m, AudioEncoderK a) => MethodInfo AudioEncoderNegotiateMethodInfo a signature where+    overloadedMethod _ = audioEncoderNegotiate++-- method AudioEncoder::proxy_getcaps+-- method type : OrdinaryMethod+-- Args : [Arg {argCName = "_obj", argType = TInterface "GstAudio" "AudioEncoder", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "caps", argType = TInterface "Gst" "Caps", direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "filter", argType = TInterface "Gst" "Caps", direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]+-- Lengths : []+-- returnType : TInterface "Gst" "Caps"+-- throws : False+-- Skip return : False++foreign import ccall "gst_audio_encoder_proxy_getcaps" gst_audio_encoder_proxy_getcaps :: +    Ptr AudioEncoder ->                     -- _obj : TInterface "GstAudio" "AudioEncoder"+    Ptr Gst.Caps ->                         -- caps : TInterface "Gst" "Caps"+    Ptr Gst.Caps ->                         -- filter : TInterface "Gst" "Caps"+    IO (Ptr Gst.Caps)+++audioEncoderProxyGetcaps ::+    (MonadIO m, AudioEncoderK a) =>+    a                                       -- _obj+    -> Maybe (Gst.Caps)                     -- caps+    -> Maybe (Gst.Caps)                     -- filter+    -> m Gst.Caps                           -- result+audioEncoderProxyGetcaps _obj caps filter = liftIO $ do+    let _obj' = unsafeManagedPtrCastPtr _obj+    maybeCaps <- case caps of+        Nothing -> return nullPtr+        Just jCaps -> do+            let jCaps' = unsafeManagedPtrGetPtr jCaps+            return jCaps'+    maybeFilter <- case filter of+        Nothing -> return nullPtr+        Just jFilter -> do+            let jFilter' = unsafeManagedPtrGetPtr jFilter+            return jFilter'+    result <- gst_audio_encoder_proxy_getcaps _obj' maybeCaps maybeFilter+    checkUnexpectedReturnNULL "gst_audio_encoder_proxy_getcaps" result+    result' <- (wrapBoxed Gst.Caps) result+    touchManagedPtr _obj+    whenJust caps touchManagedPtr+    whenJust filter touchManagedPtr+    return result'++data AudioEncoderProxyGetcapsMethodInfo+instance (signature ~ (Maybe (Gst.Caps) -> Maybe (Gst.Caps) -> m Gst.Caps), MonadIO m, AudioEncoderK a) => MethodInfo AudioEncoderProxyGetcapsMethodInfo a signature where+    overloadedMethod _ = audioEncoderProxyGetcaps++-- method AudioEncoder::set_drainable+-- method type : OrdinaryMethod+-- Args : [Arg {argCName = "_obj", argType = TInterface "GstAudio" "AudioEncoder", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "enabled", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]+-- Lengths : []+-- returnType : TBasicType TVoid+-- throws : False+-- Skip return : False++foreign import ccall "gst_audio_encoder_set_drainable" gst_audio_encoder_set_drainable :: +    Ptr AudioEncoder ->                     -- _obj : TInterface "GstAudio" "AudioEncoder"+    CInt ->                                 -- enabled : TBasicType TBoolean+    IO ()+++audioEncoderSetDrainable ::+    (MonadIO m, AudioEncoderK a) =>+    a                                       -- _obj+    -> Bool                                 -- enabled+    -> m ()                                 -- result+audioEncoderSetDrainable _obj enabled = liftIO $ do+    let _obj' = unsafeManagedPtrCastPtr _obj+    let enabled' = (fromIntegral . fromEnum) enabled+    gst_audio_encoder_set_drainable _obj' enabled'+    touchManagedPtr _obj+    return ()++data AudioEncoderSetDrainableMethodInfo+instance (signature ~ (Bool -> m ()), MonadIO m, AudioEncoderK a) => MethodInfo AudioEncoderSetDrainableMethodInfo a signature where+    overloadedMethod _ = audioEncoderSetDrainable++-- method AudioEncoder::set_frame_max+-- method type : OrdinaryMethod+-- Args : [Arg {argCName = "_obj", argType = TInterface "GstAudio" "AudioEncoder", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "num", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]+-- Lengths : []+-- returnType : TBasicType TVoid+-- throws : False+-- Skip return : False++foreign import ccall "gst_audio_encoder_set_frame_max" gst_audio_encoder_set_frame_max :: +    Ptr AudioEncoder ->                     -- _obj : TInterface "GstAudio" "AudioEncoder"+    Int32 ->                                -- num : TBasicType TInt32+    IO ()+++audioEncoderSetFrameMax ::+    (MonadIO m, AudioEncoderK a) =>+    a                                       -- _obj+    -> Int32                                -- num+    -> m ()                                 -- result+audioEncoderSetFrameMax _obj num = liftIO $ do+    let _obj' = unsafeManagedPtrCastPtr _obj+    gst_audio_encoder_set_frame_max _obj' num+    touchManagedPtr _obj+    return ()++data AudioEncoderSetFrameMaxMethodInfo+instance (signature ~ (Int32 -> m ()), MonadIO m, AudioEncoderK a) => MethodInfo AudioEncoderSetFrameMaxMethodInfo a signature where+    overloadedMethod _ = audioEncoderSetFrameMax++-- method AudioEncoder::set_frame_samples_max+-- method type : OrdinaryMethod+-- Args : [Arg {argCName = "_obj", argType = TInterface "GstAudio" "AudioEncoder", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "num", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]+-- Lengths : []+-- returnType : TBasicType TVoid+-- throws : False+-- Skip return : False++foreign import ccall "gst_audio_encoder_set_frame_samples_max" gst_audio_encoder_set_frame_samples_max :: +    Ptr AudioEncoder ->                     -- _obj : TInterface "GstAudio" "AudioEncoder"+    Int32 ->                                -- num : TBasicType TInt32+    IO ()+++audioEncoderSetFrameSamplesMax ::+    (MonadIO m, AudioEncoderK a) =>+    a                                       -- _obj+    -> Int32                                -- num+    -> m ()                                 -- result+audioEncoderSetFrameSamplesMax _obj num = liftIO $ do+    let _obj' = unsafeManagedPtrCastPtr _obj+    gst_audio_encoder_set_frame_samples_max _obj' num+    touchManagedPtr _obj+    return ()++data AudioEncoderSetFrameSamplesMaxMethodInfo+instance (signature ~ (Int32 -> m ()), MonadIO m, AudioEncoderK a) => MethodInfo AudioEncoderSetFrameSamplesMaxMethodInfo a signature where+    overloadedMethod _ = audioEncoderSetFrameSamplesMax++-- method AudioEncoder::set_frame_samples_min+-- method type : OrdinaryMethod+-- Args : [Arg {argCName = "_obj", argType = TInterface "GstAudio" "AudioEncoder", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "num", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]+-- Lengths : []+-- returnType : TBasicType TVoid+-- throws : False+-- Skip return : False++foreign import ccall "gst_audio_encoder_set_frame_samples_min" gst_audio_encoder_set_frame_samples_min :: +    Ptr AudioEncoder ->                     -- _obj : TInterface "GstAudio" "AudioEncoder"+    Int32 ->                                -- num : TBasicType TInt32+    IO ()+++audioEncoderSetFrameSamplesMin ::+    (MonadIO m, AudioEncoderK a) =>+    a                                       -- _obj+    -> Int32                                -- num+    -> m ()                                 -- result+audioEncoderSetFrameSamplesMin _obj num = liftIO $ do+    let _obj' = unsafeManagedPtrCastPtr _obj+    gst_audio_encoder_set_frame_samples_min _obj' num+    touchManagedPtr _obj+    return ()++data AudioEncoderSetFrameSamplesMinMethodInfo+instance (signature ~ (Int32 -> m ()), MonadIO m, AudioEncoderK a) => MethodInfo AudioEncoderSetFrameSamplesMinMethodInfo a signature where+    overloadedMethod _ = audioEncoderSetFrameSamplesMin++-- method AudioEncoder::set_hard_min+-- method type : OrdinaryMethod+-- Args : [Arg {argCName = "_obj", argType = TInterface "GstAudio" "AudioEncoder", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "enabled", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]+-- Lengths : []+-- returnType : TBasicType TVoid+-- throws : False+-- Skip return : False++foreign import ccall "gst_audio_encoder_set_hard_min" gst_audio_encoder_set_hard_min :: +    Ptr AudioEncoder ->                     -- _obj : TInterface "GstAudio" "AudioEncoder"+    CInt ->                                 -- enabled : TBasicType TBoolean+    IO ()+++audioEncoderSetHardMin ::+    (MonadIO m, AudioEncoderK a) =>+    a                                       -- _obj+    -> Bool                                 -- enabled+    -> m ()                                 -- result+audioEncoderSetHardMin _obj enabled = liftIO $ do+    let _obj' = unsafeManagedPtrCastPtr _obj+    let enabled' = (fromIntegral . fromEnum) enabled+    gst_audio_encoder_set_hard_min _obj' enabled'+    touchManagedPtr _obj+    return ()++data AudioEncoderSetHardMinMethodInfo+instance (signature ~ (Bool -> m ()), MonadIO m, AudioEncoderK a) => MethodInfo AudioEncoderSetHardMinMethodInfo a signature where+    overloadedMethod _ = audioEncoderSetHardMin++-- method AudioEncoder::set_hard_resync+-- method type : OrdinaryMethod+-- Args : [Arg {argCName = "_obj", argType = TInterface "GstAudio" "AudioEncoder", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "enabled", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]+-- Lengths : []+-- returnType : TBasicType TVoid+-- throws : False+-- Skip return : False++foreign import ccall "gst_audio_encoder_set_hard_resync" gst_audio_encoder_set_hard_resync :: +    Ptr AudioEncoder ->                     -- _obj : TInterface "GstAudio" "AudioEncoder"+    CInt ->                                 -- enabled : TBasicType TBoolean+    IO ()+++audioEncoderSetHardResync ::+    (MonadIO m, AudioEncoderK a) =>+    a                                       -- _obj+    -> Bool                                 -- enabled+    -> m ()                                 -- result+audioEncoderSetHardResync _obj enabled = liftIO $ do+    let _obj' = unsafeManagedPtrCastPtr _obj+    let enabled' = (fromIntegral . fromEnum) enabled+    gst_audio_encoder_set_hard_resync _obj' enabled'+    touchManagedPtr _obj+    return ()++data AudioEncoderSetHardResyncMethodInfo+instance (signature ~ (Bool -> m ()), MonadIO m, AudioEncoderK a) => MethodInfo AudioEncoderSetHardResyncMethodInfo a signature where+    overloadedMethod _ = audioEncoderSetHardResync++-- method AudioEncoder::set_headers+-- method type : OrdinaryMethod+-- Args : [Arg {argCName = "_obj", argType = TInterface "GstAudio" "AudioEncoder", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "headers", argType = TGList (TInterface "Gst" "Buffer"), direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything}]+-- Lengths : []+-- returnType : TBasicType TVoid+-- throws : False+-- Skip return : False++foreign import ccall "gst_audio_encoder_set_headers" gst_audio_encoder_set_headers :: +    Ptr AudioEncoder ->                     -- _obj : TInterface "GstAudio" "AudioEncoder"+    Ptr (GList (Ptr Gst.Buffer)) ->         -- headers : TGList (TInterface "Gst" "Buffer")+    IO ()+++audioEncoderSetHeaders ::+    (MonadIO m, AudioEncoderK a) =>+    a                                       -- _obj+    -> [Gst.Buffer]                         -- headers+    -> m ()                                 -- result+audioEncoderSetHeaders _obj headers = liftIO $ do+    let _obj' = unsafeManagedPtrCastPtr _obj+    headers' <- mapM copyBoxed headers+    headers'' <- packGList headers'+    gst_audio_encoder_set_headers _obj' headers''+    touchManagedPtr _obj+    mapM_ touchManagedPtr headers+    return ()++data AudioEncoderSetHeadersMethodInfo+instance (signature ~ ([Gst.Buffer] -> m ()), MonadIO m, AudioEncoderK a) => MethodInfo AudioEncoderSetHeadersMethodInfo a signature where+    overloadedMethod _ = audioEncoderSetHeaders++-- method AudioEncoder::set_latency+-- method type : OrdinaryMethod+-- Args : [Arg {argCName = "_obj", argType = TInterface "GstAudio" "AudioEncoder", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "min", argType = TBasicType TUInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "max", argType = TBasicType TUInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]+-- Lengths : []+-- returnType : TBasicType TVoid+-- throws : False+-- Skip return : False++foreign import ccall "gst_audio_encoder_set_latency" gst_audio_encoder_set_latency :: +    Ptr AudioEncoder ->                     -- _obj : TInterface "GstAudio" "AudioEncoder"+    Word64 ->                               -- min : TBasicType TUInt64+    Word64 ->                               -- max : TBasicType TUInt64+    IO ()+++audioEncoderSetLatency ::+    (MonadIO m, AudioEncoderK a) =>+    a                                       -- _obj+    -> Word64                               -- min+    -> Word64                               -- max+    -> m ()                                 -- result+audioEncoderSetLatency _obj min max = liftIO $ do+    let _obj' = unsafeManagedPtrCastPtr _obj+    gst_audio_encoder_set_latency _obj' min max+    touchManagedPtr _obj+    return ()++data AudioEncoderSetLatencyMethodInfo+instance (signature ~ (Word64 -> Word64 -> m ()), MonadIO m, AudioEncoderK a) => MethodInfo AudioEncoderSetLatencyMethodInfo a signature where+    overloadedMethod _ = audioEncoderSetLatency++-- method AudioEncoder::set_lookahead+-- method type : OrdinaryMethod+-- Args : [Arg {argCName = "_obj", argType = TInterface "GstAudio" "AudioEncoder", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "num", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]+-- Lengths : []+-- returnType : TBasicType TVoid+-- throws : False+-- Skip return : False++foreign import ccall "gst_audio_encoder_set_lookahead" gst_audio_encoder_set_lookahead :: +    Ptr AudioEncoder ->                     -- _obj : TInterface "GstAudio" "AudioEncoder"+    Int32 ->                                -- num : TBasicType TInt32+    IO ()+++audioEncoderSetLookahead ::+    (MonadIO m, AudioEncoderK a) =>+    a                                       -- _obj+    -> Int32                                -- num+    -> m ()                                 -- result+audioEncoderSetLookahead _obj num = liftIO $ do+    let _obj' = unsafeManagedPtrCastPtr _obj+    gst_audio_encoder_set_lookahead _obj' num+    touchManagedPtr _obj+    return ()++data AudioEncoderSetLookaheadMethodInfo+instance (signature ~ (Int32 -> m ()), MonadIO m, AudioEncoderK a) => MethodInfo AudioEncoderSetLookaheadMethodInfo a signature where+    overloadedMethod _ = audioEncoderSetLookahead++-- method AudioEncoder::set_mark_granule+-- method type : OrdinaryMethod+-- Args : [Arg {argCName = "_obj", argType = TInterface "GstAudio" "AudioEncoder", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "enabled", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]+-- Lengths : []+-- returnType : TBasicType TVoid+-- throws : False+-- Skip return : False++foreign import ccall "gst_audio_encoder_set_mark_granule" gst_audio_encoder_set_mark_granule :: +    Ptr AudioEncoder ->                     -- _obj : TInterface "GstAudio" "AudioEncoder"+    CInt ->                                 -- enabled : TBasicType TBoolean+    IO ()+++audioEncoderSetMarkGranule ::+    (MonadIO m, AudioEncoderK a) =>+    a                                       -- _obj+    -> Bool                                 -- enabled+    -> m ()                                 -- result+audioEncoderSetMarkGranule _obj enabled = liftIO $ do+    let _obj' = unsafeManagedPtrCastPtr _obj+    let enabled' = (fromIntegral . fromEnum) enabled+    gst_audio_encoder_set_mark_granule _obj' enabled'+    touchManagedPtr _obj+    return ()++data AudioEncoderSetMarkGranuleMethodInfo+instance (signature ~ (Bool -> m ()), MonadIO m, AudioEncoderK a) => MethodInfo AudioEncoderSetMarkGranuleMethodInfo a signature where+    overloadedMethod _ = audioEncoderSetMarkGranule++-- method AudioEncoder::set_output_format+-- method type : OrdinaryMethod+-- Args : [Arg {argCName = "_obj", argType = TInterface "GstAudio" "AudioEncoder", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "caps", argType = TInterface "Gst" "Caps", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]+-- Lengths : []+-- returnType : TBasicType TBoolean+-- throws : False+-- Skip return : False++foreign import ccall "gst_audio_encoder_set_output_format" gst_audio_encoder_set_output_format :: +    Ptr AudioEncoder ->                     -- _obj : TInterface "GstAudio" "AudioEncoder"+    Ptr Gst.Caps ->                         -- caps : TInterface "Gst" "Caps"+    IO CInt+++audioEncoderSetOutputFormat ::+    (MonadIO m, AudioEncoderK a) =>+    a                                       -- _obj+    -> Gst.Caps                             -- caps+    -> m Bool                               -- result+audioEncoderSetOutputFormat _obj caps = liftIO $ do+    let _obj' = unsafeManagedPtrCastPtr _obj+    let caps' = unsafeManagedPtrGetPtr caps+    result <- gst_audio_encoder_set_output_format _obj' caps'+    let result' = (/= 0) result+    touchManagedPtr _obj+    touchManagedPtr caps+    return result'++data AudioEncoderSetOutputFormatMethodInfo+instance (signature ~ (Gst.Caps -> m Bool), MonadIO m, AudioEncoderK a) => MethodInfo AudioEncoderSetOutputFormatMethodInfo a signature where+    overloadedMethod _ = audioEncoderSetOutputFormat++-- method AudioEncoder::set_perfect_timestamp+-- method type : OrdinaryMethod+-- Args : [Arg {argCName = "_obj", argType = TInterface "GstAudio" "AudioEncoder", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "enabled", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]+-- Lengths : []+-- returnType : TBasicType TVoid+-- throws : False+-- Skip return : False++foreign import ccall "gst_audio_encoder_set_perfect_timestamp" gst_audio_encoder_set_perfect_timestamp :: +    Ptr AudioEncoder ->                     -- _obj : TInterface "GstAudio" "AudioEncoder"+    CInt ->                                 -- enabled : TBasicType TBoolean+    IO ()+++audioEncoderSetPerfectTimestamp ::+    (MonadIO m, AudioEncoderK a) =>+    a                                       -- _obj+    -> Bool                                 -- enabled+    -> m ()                                 -- result+audioEncoderSetPerfectTimestamp _obj enabled = liftIO $ do+    let _obj' = unsafeManagedPtrCastPtr _obj+    let enabled' = (fromIntegral . fromEnum) enabled+    gst_audio_encoder_set_perfect_timestamp _obj' enabled'+    touchManagedPtr _obj+    return ()++data AudioEncoderSetPerfectTimestampMethodInfo+instance (signature ~ (Bool -> m ()), MonadIO m, AudioEncoderK a) => MethodInfo AudioEncoderSetPerfectTimestampMethodInfo a signature where+    overloadedMethod _ = audioEncoderSetPerfectTimestamp++-- method AudioEncoder::set_tolerance+-- method type : OrdinaryMethod+-- Args : [Arg {argCName = "_obj", argType = TInterface "GstAudio" "AudioEncoder", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "tolerance", argType = TBasicType TUInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]+-- Lengths : []+-- returnType : TBasicType TVoid+-- throws : False+-- Skip return : False++foreign import ccall "gst_audio_encoder_set_tolerance" gst_audio_encoder_set_tolerance :: +    Ptr AudioEncoder ->                     -- _obj : TInterface "GstAudio" "AudioEncoder"+    Word64 ->                               -- tolerance : TBasicType TUInt64+    IO ()+++audioEncoderSetTolerance ::+    (MonadIO m, AudioEncoderK a) =>+    a                                       -- _obj+    -> Word64                               -- tolerance+    -> m ()                                 -- result+audioEncoderSetTolerance _obj tolerance = liftIO $ do+    let _obj' = unsafeManagedPtrCastPtr _obj+    gst_audio_encoder_set_tolerance _obj' tolerance+    touchManagedPtr _obj+    return ()++data AudioEncoderSetToleranceMethodInfo+instance (signature ~ (Word64 -> m ()), MonadIO m, AudioEncoderK a) => MethodInfo AudioEncoderSetToleranceMethodInfo a signature where+    overloadedMethod _ = audioEncoderSetTolerance++
+ GI/GstAudio/Objects/AudioEncoder.hs-boot view
@@ -0,0 +1,48 @@+module GI.GstAudio.Objects.AudioEncoder where++import Prelude ()+import Data.GI.Base.ShortPrelude++import qualified Data.Text as T+import qualified Data.ByteString.Char8 as B+import qualified Data.Map as Map++newtype AudioEncoder = AudioEncoder (ForeignPtr AudioEncoder)+instance GObject AudioEncoder where+class GObject o => AudioEncoderK o+instance (GObject o, IsDescendantOf AudioEncoder o) => AudioEncoderK o+data AudioEncoderHardResyncPropertyInfo+data AudioEncoderMarkGranulePropertyInfo+data AudioEncoderPerfectTimestampPropertyInfo+data AudioEncoderTolerancePropertyInfo+data AudioEncoderAllocateOutputBufferMethodInfo+data AudioEncoderFinishFrameMethodInfo+data AudioEncoderGetAllocatorMethodInfo+data AudioEncoderGetAudioInfoMethodInfo+data AudioEncoderGetDrainableMethodInfo+data AudioEncoderGetFrameMaxMethodInfo+data AudioEncoderGetFrameSamplesMaxMethodInfo+data AudioEncoderGetFrameSamplesMinMethodInfo+data AudioEncoderGetHardMinMethodInfo+data AudioEncoderGetHardResyncMethodInfo+data AudioEncoderGetLatencyMethodInfo+data AudioEncoderGetLookaheadMethodInfo+data AudioEncoderGetMarkGranuleMethodInfo+data AudioEncoderGetPerfectTimestampMethodInfo+data AudioEncoderGetToleranceMethodInfo+data AudioEncoderMergeTagsMethodInfo+data AudioEncoderNegotiateMethodInfo+data AudioEncoderProxyGetcapsMethodInfo+data AudioEncoderSetDrainableMethodInfo+data AudioEncoderSetFrameMaxMethodInfo+data AudioEncoderSetFrameSamplesMaxMethodInfo+data AudioEncoderSetFrameSamplesMinMethodInfo+data AudioEncoderSetHardMinMethodInfo+data AudioEncoderSetHardResyncMethodInfo+data AudioEncoderSetHeadersMethodInfo+data AudioEncoderSetLatencyMethodInfo+data AudioEncoderSetLookaheadMethodInfo+data AudioEncoderSetMarkGranuleMethodInfo+data AudioEncoderSetOutputFormatMethodInfo+data AudioEncoderSetPerfectTimestampMethodInfo+data AudioEncoderSetToleranceMethodInfo
+ GI/GstAudio/Objects/AudioFilter.hs view
@@ -0,0 +1,178 @@+++{- |+Copyright  : Will Thompson, Iñaki García Etxebarria and Jonas Platte+License    : LGPL-2.1+Maintainer : Iñaki García Etxebarria (garetxe@gmail.com)+-}++module GI.GstAudio.Objects.AudioFilter+    ( ++-- * Exported types+    AudioFilter(..)                         ,+    AudioFilterK                            ,+    toAudioFilter                           ,+    noAudioFilter                           ,+++    ) where++import Prelude ()+import Data.GI.Base.ShortPrelude++import qualified Data.Text as T+import qualified Data.ByteString.Char8 as B+import qualified Data.Map as Map++import GI.GstAudio.Types+import GI.GstAudio.Callbacks+import qualified GI.GObject as GObject+import qualified GI.Gst as Gst+import qualified GI.GstBase as GstBase++newtype AudioFilter = AudioFilter (ForeignPtr AudioFilter)+foreign import ccall "gst_audio_filter_get_type"+    c_gst_audio_filter_get_type :: IO GType++type instance ParentTypes AudioFilter = AudioFilterParentTypes+type AudioFilterParentTypes = '[GstBase.BaseTransform, Gst.Element, Gst.Object, GObject.Object]++instance GObject AudioFilter where+    gobjectIsInitiallyUnowned _ = True+    gobjectType _ = c_gst_audio_filter_get_type+    ++class GObject o => AudioFilterK o+instance (GObject o, IsDescendantOf AudioFilter o) => AudioFilterK o++toAudioFilter :: AudioFilterK o => o -> IO AudioFilter+toAudioFilter = unsafeCastTo AudioFilter++noAudioFilter :: Maybe AudioFilter+noAudioFilter = Nothing++type family ResolveAudioFilterMethod (t :: Symbol) (o :: *) :: * where+    ResolveAudioFilterMethod "abortState" o = Gst.ElementAbortStateMethodInfo+    ResolveAudioFilterMethod "addControlBinding" o = Gst.ObjectAddControlBindingMethodInfo+    ResolveAudioFilterMethod "addPad" o = Gst.ElementAddPadMethodInfo+    ResolveAudioFilterMethod "bindProperty" o = GObject.ObjectBindPropertyMethodInfo+    ResolveAudioFilterMethod "bindPropertyFull" o = GObject.ObjectBindPropertyFullMethodInfo+    ResolveAudioFilterMethod "changeState" o = Gst.ElementChangeStateMethodInfo+    ResolveAudioFilterMethod "continueState" o = Gst.ElementContinueStateMethodInfo+    ResolveAudioFilterMethod "createAllPads" o = Gst.ElementCreateAllPadsMethodInfo+    ResolveAudioFilterMethod "defaultError" o = Gst.ObjectDefaultErrorMethodInfo+    ResolveAudioFilterMethod "forceFloating" o = GObject.ObjectForceFloatingMethodInfo+    ResolveAudioFilterMethod "freezeNotify" o = GObject.ObjectFreezeNotifyMethodInfo+    ResolveAudioFilterMethod "hasActiveControlBindings" o = Gst.ObjectHasActiveControlBindingsMethodInfo+    ResolveAudioFilterMethod "hasAncestor" o = Gst.ObjectHasAncestorMethodInfo+    ResolveAudioFilterMethod "hasAsAncestor" o = Gst.ObjectHasAsAncestorMethodInfo+    ResolveAudioFilterMethod "hasAsParent" o = Gst.ObjectHasAsParentMethodInfo+    ResolveAudioFilterMethod "isFloating" o = GObject.ObjectIsFloatingMethodInfo+    ResolveAudioFilterMethod "isInPlace" o = GstBase.BaseTransformIsInPlaceMethodInfo+    ResolveAudioFilterMethod "isLockedState" o = Gst.ElementIsLockedStateMethodInfo+    ResolveAudioFilterMethod "isPassthrough" o = GstBase.BaseTransformIsPassthroughMethodInfo+    ResolveAudioFilterMethod "isQosEnabled" o = GstBase.BaseTransformIsQosEnabledMethodInfo+    ResolveAudioFilterMethod "iteratePads" o = Gst.ElementIteratePadsMethodInfo+    ResolveAudioFilterMethod "iterateSinkPads" o = Gst.ElementIterateSinkPadsMethodInfo+    ResolveAudioFilterMethod "iterateSrcPads" o = Gst.ElementIterateSrcPadsMethodInfo+    ResolveAudioFilterMethod "link" o = Gst.ElementLinkMethodInfo+    ResolveAudioFilterMethod "linkFiltered" o = Gst.ElementLinkFilteredMethodInfo+    ResolveAudioFilterMethod "linkPads" o = Gst.ElementLinkPadsMethodInfo+    ResolveAudioFilterMethod "linkPadsFiltered" o = Gst.ElementLinkPadsFilteredMethodInfo+    ResolveAudioFilterMethod "linkPadsFull" o = Gst.ElementLinkPadsFullMethodInfo+    ResolveAudioFilterMethod "lostState" o = Gst.ElementLostStateMethodInfo+    ResolveAudioFilterMethod "messageFull" o = Gst.ElementMessageFullMethodInfo+    ResolveAudioFilterMethod "noMorePads" o = Gst.ElementNoMorePadsMethodInfo+    ResolveAudioFilterMethod "notify" o = GObject.ObjectNotifyMethodInfo+    ResolveAudioFilterMethod "notifyByPspec" o = GObject.ObjectNotifyByPspecMethodInfo+    ResolveAudioFilterMethod "postMessage" o = Gst.ElementPostMessageMethodInfo+    ResolveAudioFilterMethod "provideClock" o = Gst.ElementProvideClockMethodInfo+    ResolveAudioFilterMethod "query" o = Gst.ElementQueryMethodInfo+    ResolveAudioFilterMethod "queryConvert" o = Gst.ElementQueryConvertMethodInfo+    ResolveAudioFilterMethod "queryDuration" o = Gst.ElementQueryDurationMethodInfo+    ResolveAudioFilterMethod "queryPosition" o = Gst.ElementQueryPositionMethodInfo+    ResolveAudioFilterMethod "reconfigureSink" o = GstBase.BaseTransformReconfigureSinkMethodInfo+    ResolveAudioFilterMethod "reconfigureSrc" o = GstBase.BaseTransformReconfigureSrcMethodInfo+    ResolveAudioFilterMethod "refSink" o = GObject.ObjectRefSinkMethodInfo+    ResolveAudioFilterMethod "releaseRequestPad" o = Gst.ElementReleaseRequestPadMethodInfo+    ResolveAudioFilterMethod "removeControlBinding" o = Gst.ObjectRemoveControlBindingMethodInfo+    ResolveAudioFilterMethod "removePad" o = Gst.ElementRemovePadMethodInfo+    ResolveAudioFilterMethod "replaceData" o = GObject.ObjectReplaceDataMethodInfo+    ResolveAudioFilterMethod "replaceQdata" o = GObject.ObjectReplaceQdataMethodInfo+    ResolveAudioFilterMethod "requestPad" o = Gst.ElementRequestPadMethodInfo+    ResolveAudioFilterMethod "runDispose" o = GObject.ObjectRunDisposeMethodInfo+    ResolveAudioFilterMethod "seek" o = Gst.ElementSeekMethodInfo+    ResolveAudioFilterMethod "seekSimple" o = Gst.ElementSeekSimpleMethodInfo+    ResolveAudioFilterMethod "sendEvent" o = Gst.ElementSendEventMethodInfo+    ResolveAudioFilterMethod "stealData" o = GObject.ObjectStealDataMethodInfo+    ResolveAudioFilterMethod "stealQdata" o = GObject.ObjectStealQdataMethodInfo+    ResolveAudioFilterMethod "suggestNextSync" o = Gst.ObjectSuggestNextSyncMethodInfo+    ResolveAudioFilterMethod "syncStateWithParent" o = Gst.ElementSyncStateWithParentMethodInfo+    ResolveAudioFilterMethod "syncValues" o = Gst.ObjectSyncValuesMethodInfo+    ResolveAudioFilterMethod "thawNotify" o = GObject.ObjectThawNotifyMethodInfo+    ResolveAudioFilterMethod "unlink" o = Gst.ElementUnlinkMethodInfo+    ResolveAudioFilterMethod "unlinkPads" o = Gst.ElementUnlinkPadsMethodInfo+    ResolveAudioFilterMethod "unparent" o = Gst.ObjectUnparentMethodInfo+    ResolveAudioFilterMethod "updateQos" o = GstBase.BaseTransformUpdateQosMethodInfo+    ResolveAudioFilterMethod "updateSrcCaps" o = GstBase.BaseTransformUpdateSrcCapsMethodInfo+    ResolveAudioFilterMethod "watchClosure" o = GObject.ObjectWatchClosureMethodInfo+    ResolveAudioFilterMethod "getAllocator" o = GstBase.BaseTransformGetAllocatorMethodInfo+    ResolveAudioFilterMethod "getBaseTime" o = Gst.ElementGetBaseTimeMethodInfo+    ResolveAudioFilterMethod "getBufferPool" o = GstBase.BaseTransformGetBufferPoolMethodInfo+    ResolveAudioFilterMethod "getBus" o = Gst.ElementGetBusMethodInfo+    ResolveAudioFilterMethod "getClock" o = Gst.ElementGetClockMethodInfo+    ResolveAudioFilterMethod "getCompatiblePad" o = Gst.ElementGetCompatiblePadMethodInfo+    ResolveAudioFilterMethod "getCompatiblePadTemplate" o = Gst.ElementGetCompatiblePadTemplateMethodInfo+    ResolveAudioFilterMethod "getControlBinding" o = Gst.ObjectGetControlBindingMethodInfo+    ResolveAudioFilterMethod "getControlRate" o = Gst.ObjectGetControlRateMethodInfo+    ResolveAudioFilterMethod "getData" o = GObject.ObjectGetDataMethodInfo+    ResolveAudioFilterMethod "getFactory" o = Gst.ElementGetFactoryMethodInfo+    ResolveAudioFilterMethod "getGValueArray" o = Gst.ObjectGetGValueArrayMethodInfo+    ResolveAudioFilterMethod "getName" o = Gst.ObjectGetNameMethodInfo+    ResolveAudioFilterMethod "getParent" o = Gst.ObjectGetParentMethodInfo+    ResolveAudioFilterMethod "getPathString" o = Gst.ObjectGetPathStringMethodInfo+    ResolveAudioFilterMethod "getProperty" o = GObject.ObjectGetPropertyMethodInfo+    ResolveAudioFilterMethod "getQdata" o = GObject.ObjectGetQdataMethodInfo+    ResolveAudioFilterMethod "getRequestPad" o = Gst.ElementGetRequestPadMethodInfo+    ResolveAudioFilterMethod "getStartTime" o = Gst.ElementGetStartTimeMethodInfo+    ResolveAudioFilterMethod "getState" o = Gst.ElementGetStateMethodInfo+    ResolveAudioFilterMethod "getStaticPad" o = Gst.ElementGetStaticPadMethodInfo+    ResolveAudioFilterMethod "getValue" o = Gst.ObjectGetValueMethodInfo+    ResolveAudioFilterMethod "getValueArray" o = Gst.ObjectGetValueArrayMethodInfo+    ResolveAudioFilterMethod "setBaseTime" o = Gst.ElementSetBaseTimeMethodInfo+    ResolveAudioFilterMethod "setBus" o = Gst.ElementSetBusMethodInfo+    ResolveAudioFilterMethod "setClock" o = Gst.ElementSetClockMethodInfo+    ResolveAudioFilterMethod "setContext" o = Gst.ElementSetContextMethodInfo+    ResolveAudioFilterMethod "setControlBindingDisabled" o = Gst.ObjectSetControlBindingDisabledMethodInfo+    ResolveAudioFilterMethod "setControlBindingsDisabled" o = Gst.ObjectSetControlBindingsDisabledMethodInfo+    ResolveAudioFilterMethod "setControlRate" o = Gst.ObjectSetControlRateMethodInfo+    ResolveAudioFilterMethod "setData" o = GObject.ObjectSetDataMethodInfo+    ResolveAudioFilterMethod "setGapAware" o = GstBase.BaseTransformSetGapAwareMethodInfo+    ResolveAudioFilterMethod "setInPlace" o = GstBase.BaseTransformSetInPlaceMethodInfo+    ResolveAudioFilterMethod "setLockedState" o = Gst.ElementSetLockedStateMethodInfo+    ResolveAudioFilterMethod "setName" o = Gst.ObjectSetNameMethodInfo+    ResolveAudioFilterMethod "setParent" o = Gst.ObjectSetParentMethodInfo+    ResolveAudioFilterMethod "setPassthrough" o = GstBase.BaseTransformSetPassthroughMethodInfo+    ResolveAudioFilterMethod "setPreferPassthrough" o = GstBase.BaseTransformSetPreferPassthroughMethodInfo+    ResolveAudioFilterMethod "setProperty" o = GObject.ObjectSetPropertyMethodInfo+    ResolveAudioFilterMethod "setQosEnabled" o = GstBase.BaseTransformSetQosEnabledMethodInfo+    ResolveAudioFilterMethod "setStartTime" o = Gst.ElementSetStartTimeMethodInfo+    ResolveAudioFilterMethod "setState" o = Gst.ElementSetStateMethodInfo+    ResolveAudioFilterMethod l o = MethodResolutionFailed l o++instance (info ~ ResolveAudioFilterMethod t AudioFilter, MethodInfo info AudioFilter p) => IsLabelProxy t (AudioFilter -> p) where+    fromLabelProxy _ = overloadedMethod (MethodProxy :: MethodProxy info)++#if MIN_VERSION_base(4,9,0)+instance (info ~ ResolveAudioFilterMethod t AudioFilter, MethodInfo info AudioFilter p) => IsLabel t (AudioFilter -> p) where+    fromLabel _ = overloadedMethod (MethodProxy :: MethodProxy info)+#endif++type instance AttributeList AudioFilter = AudioFilterAttributeList+type AudioFilterAttributeList = ('[ '("name", Gst.ObjectNamePropertyInfo), '("parent", Gst.ObjectParentPropertyInfo), '("qos", GstBase.BaseTransformQosPropertyInfo)] :: [(Symbol, *)])++type instance SignalList AudioFilter = AudioFilterSignalList+type AudioFilterSignalList = ('[ '("deepNotify", Gst.ObjectDeepNotifySignalInfo), '("noMorePads", Gst.ElementNoMorePadsSignalInfo), '("notify", GObject.ObjectNotifySignalInfo), '("padAdded", Gst.ElementPadAddedSignalInfo), '("padRemoved", Gst.ElementPadRemovedSignalInfo)] :: [(Symbol, *)])++
+ GI/GstAudio/Objects/AudioFilter.hs-boot view
@@ -0,0 +1,13 @@+module GI.GstAudio.Objects.AudioFilter where++import Prelude ()+import Data.GI.Base.ShortPrelude++import qualified Data.Text as T+import qualified Data.ByteString.Char8 as B+import qualified Data.Map as Map++newtype AudioFilter = AudioFilter (ForeignPtr AudioFilter)+instance GObject AudioFilter where+class GObject o => AudioFilterK o+instance (GObject o, IsDescendantOf AudioFilter o) => AudioFilterK o
+ GI/GstAudio/Objects/AudioRingBuffer.hs view
@@ -0,0 +1,1175 @@+++{- |+Copyright  : Will Thompson, Iñaki García Etxebarria and Jonas Platte+License    : LGPL-2.1+Maintainer : Iñaki García Etxebarria (garetxe@gmail.com)+-}++module GI.GstAudio.Objects.AudioRingBuffer+    ( ++-- * Exported types+    AudioRingBuffer(..)                     ,+    AudioRingBufferK                        ,+    toAudioRingBuffer                       ,+    noAudioRingBuffer                       ,+++ -- * Methods+-- ** audioRingBufferAcquire+    AudioRingBufferAcquireMethodInfo        ,+    audioRingBufferAcquire                  ,+++-- ** audioRingBufferActivate+    AudioRingBufferActivateMethodInfo       ,+    audioRingBufferActivate                 ,+++-- ** audioRingBufferAdvance+    AudioRingBufferAdvanceMethodInfo        ,+    audioRingBufferAdvance                  ,+++-- ** audioRingBufferClear+    AudioRingBufferClearMethodInfo          ,+    audioRingBufferClear                    ,+++-- ** audioRingBufferClearAll+    AudioRingBufferClearAllMethodInfo       ,+    audioRingBufferClearAll                 ,+++-- ** audioRingBufferCloseDevice+    AudioRingBufferCloseDeviceMethodInfo    ,+    audioRingBufferCloseDevice              ,+++-- ** audioRingBufferCommit+    AudioRingBufferCommitMethodInfo         ,+    audioRingBufferCommit                   ,+++-- ** audioRingBufferConvert+    AudioRingBufferConvertMethodInfo        ,+    audioRingBufferConvert                  ,+++-- ** audioRingBufferDebugSpecBuff+    audioRingBufferDebugSpecBuff            ,+++-- ** audioRingBufferDebugSpecCaps+    audioRingBufferDebugSpecCaps            ,+++-- ** audioRingBufferDelay+    AudioRingBufferDelayMethodInfo          ,+    audioRingBufferDelay                    ,+++-- ** audioRingBufferDeviceIsOpen+    AudioRingBufferDeviceIsOpenMethodInfo   ,+    audioRingBufferDeviceIsOpen             ,+++-- ** audioRingBufferIsAcquired+    AudioRingBufferIsAcquiredMethodInfo     ,+    audioRingBufferIsAcquired               ,+++-- ** audioRingBufferIsActive+    AudioRingBufferIsActiveMethodInfo       ,+    audioRingBufferIsActive                 ,+++-- ** audioRingBufferIsFlushing+    AudioRingBufferIsFlushingMethodInfo     ,+    audioRingBufferIsFlushing               ,+++-- ** audioRingBufferMayStart+    AudioRingBufferMayStartMethodInfo       ,+    audioRingBufferMayStart                 ,+++-- ** audioRingBufferOpenDevice+    AudioRingBufferOpenDeviceMethodInfo     ,+    audioRingBufferOpenDevice               ,+++-- ** audioRingBufferParseCaps+    audioRingBufferParseCaps                ,+++-- ** audioRingBufferPause+    AudioRingBufferPauseMethodInfo          ,+    audioRingBufferPause                    ,+++-- ** audioRingBufferPrepareRead+    AudioRingBufferPrepareReadMethodInfo    ,+    audioRingBufferPrepareRead              ,+++-- ** audioRingBufferRead+    AudioRingBufferReadMethodInfo           ,+    audioRingBufferRead                     ,+++-- ** audioRingBufferRelease+    AudioRingBufferReleaseMethodInfo        ,+    audioRingBufferRelease                  ,+++-- ** audioRingBufferSamplesDone+    AudioRingBufferSamplesDoneMethodInfo    ,+    audioRingBufferSamplesDone              ,+++-- ** audioRingBufferSetCallback+    AudioRingBufferSetCallbackMethodInfo    ,+    audioRingBufferSetCallback              ,+++-- ** audioRingBufferSetChannelPositions+    AudioRingBufferSetChannelPositionsMethodInfo,+    audioRingBufferSetChannelPositions      ,+++-- ** audioRingBufferSetFlushing+    AudioRingBufferSetFlushingMethodInfo    ,+    audioRingBufferSetFlushing              ,+++-- ** audioRingBufferSetSample+    AudioRingBufferSetSampleMethodInfo      ,+    audioRingBufferSetSample                ,+++-- ** audioRingBufferSetTimestamp+    AudioRingBufferSetTimestampMethodInfo   ,+    audioRingBufferSetTimestamp             ,+++-- ** audioRingBufferStart+    AudioRingBufferStartMethodInfo          ,+    audioRingBufferStart                    ,+++-- ** audioRingBufferStop+    AudioRingBufferStopMethodInfo           ,+    audioRingBufferStop                     ,+++++    ) where++import Prelude ()+import Data.GI.Base.ShortPrelude++import qualified Data.Text as T+import qualified Data.ByteString.Char8 as B+import qualified Data.Map as Map++import GI.GstAudio.Types+import GI.GstAudio.Callbacks+import qualified GI.GObject as GObject+import qualified GI.Gst as Gst++newtype AudioRingBuffer = AudioRingBuffer (ForeignPtr AudioRingBuffer)+foreign import ccall "gst_audio_ring_buffer_get_type"+    c_gst_audio_ring_buffer_get_type :: IO GType++type instance ParentTypes AudioRingBuffer = AudioRingBufferParentTypes+type AudioRingBufferParentTypes = '[Gst.Object, GObject.Object]++instance GObject AudioRingBuffer where+    gobjectIsInitiallyUnowned _ = True+    gobjectType _ = c_gst_audio_ring_buffer_get_type+    ++class GObject o => AudioRingBufferK o+instance (GObject o, IsDescendantOf AudioRingBuffer o) => AudioRingBufferK o++toAudioRingBuffer :: AudioRingBufferK o => o -> IO AudioRingBuffer+toAudioRingBuffer = unsafeCastTo AudioRingBuffer++noAudioRingBuffer :: Maybe AudioRingBuffer+noAudioRingBuffer = Nothing++type family ResolveAudioRingBufferMethod (t :: Symbol) (o :: *) :: * where+    ResolveAudioRingBufferMethod "acquire" o = AudioRingBufferAcquireMethodInfo+    ResolveAudioRingBufferMethod "activate" o = AudioRingBufferActivateMethodInfo+    ResolveAudioRingBufferMethod "addControlBinding" o = Gst.ObjectAddControlBindingMethodInfo+    ResolveAudioRingBufferMethod "advance" o = AudioRingBufferAdvanceMethodInfo+    ResolveAudioRingBufferMethod "bindProperty" o = GObject.ObjectBindPropertyMethodInfo+    ResolveAudioRingBufferMethod "bindPropertyFull" o = GObject.ObjectBindPropertyFullMethodInfo+    ResolveAudioRingBufferMethod "clear" o = AudioRingBufferClearMethodInfo+    ResolveAudioRingBufferMethod "clearAll" o = AudioRingBufferClearAllMethodInfo+    ResolveAudioRingBufferMethod "closeDevice" o = AudioRingBufferCloseDeviceMethodInfo+    ResolveAudioRingBufferMethod "commit" o = AudioRingBufferCommitMethodInfo+    ResolveAudioRingBufferMethod "convert" o = AudioRingBufferConvertMethodInfo+    ResolveAudioRingBufferMethod "defaultError" o = Gst.ObjectDefaultErrorMethodInfo+    ResolveAudioRingBufferMethod "delay" o = AudioRingBufferDelayMethodInfo+    ResolveAudioRingBufferMethod "deviceIsOpen" o = AudioRingBufferDeviceIsOpenMethodInfo+    ResolveAudioRingBufferMethod "forceFloating" o = GObject.ObjectForceFloatingMethodInfo+    ResolveAudioRingBufferMethod "freezeNotify" o = GObject.ObjectFreezeNotifyMethodInfo+    ResolveAudioRingBufferMethod "hasActiveControlBindings" o = Gst.ObjectHasActiveControlBindingsMethodInfo+    ResolveAudioRingBufferMethod "hasAncestor" o = Gst.ObjectHasAncestorMethodInfo+    ResolveAudioRingBufferMethod "hasAsAncestor" o = Gst.ObjectHasAsAncestorMethodInfo+    ResolveAudioRingBufferMethod "hasAsParent" o = Gst.ObjectHasAsParentMethodInfo+    ResolveAudioRingBufferMethod "isAcquired" o = AudioRingBufferIsAcquiredMethodInfo+    ResolveAudioRingBufferMethod "isActive" o = AudioRingBufferIsActiveMethodInfo+    ResolveAudioRingBufferMethod "isFloating" o = GObject.ObjectIsFloatingMethodInfo+    ResolveAudioRingBufferMethod "isFlushing" o = AudioRingBufferIsFlushingMethodInfo+    ResolveAudioRingBufferMethod "mayStart" o = AudioRingBufferMayStartMethodInfo+    ResolveAudioRingBufferMethod "notify" o = GObject.ObjectNotifyMethodInfo+    ResolveAudioRingBufferMethod "notifyByPspec" o = GObject.ObjectNotifyByPspecMethodInfo+    ResolveAudioRingBufferMethod "openDevice" o = AudioRingBufferOpenDeviceMethodInfo+    ResolveAudioRingBufferMethod "pause" o = AudioRingBufferPauseMethodInfo+    ResolveAudioRingBufferMethod "prepareRead" o = AudioRingBufferPrepareReadMethodInfo+    ResolveAudioRingBufferMethod "read" o = AudioRingBufferReadMethodInfo+    ResolveAudioRingBufferMethod "refSink" o = GObject.ObjectRefSinkMethodInfo+    ResolveAudioRingBufferMethod "release" o = AudioRingBufferReleaseMethodInfo+    ResolveAudioRingBufferMethod "removeControlBinding" o = Gst.ObjectRemoveControlBindingMethodInfo+    ResolveAudioRingBufferMethod "replaceData" o = GObject.ObjectReplaceDataMethodInfo+    ResolveAudioRingBufferMethod "replaceQdata" o = GObject.ObjectReplaceQdataMethodInfo+    ResolveAudioRingBufferMethod "runDispose" o = GObject.ObjectRunDisposeMethodInfo+    ResolveAudioRingBufferMethod "samplesDone" o = AudioRingBufferSamplesDoneMethodInfo+    ResolveAudioRingBufferMethod "start" o = AudioRingBufferStartMethodInfo+    ResolveAudioRingBufferMethod "stealData" o = GObject.ObjectStealDataMethodInfo+    ResolveAudioRingBufferMethod "stealQdata" o = GObject.ObjectStealQdataMethodInfo+    ResolveAudioRingBufferMethod "stop" o = AudioRingBufferStopMethodInfo+    ResolveAudioRingBufferMethod "suggestNextSync" o = Gst.ObjectSuggestNextSyncMethodInfo+    ResolveAudioRingBufferMethod "syncValues" o = Gst.ObjectSyncValuesMethodInfo+    ResolveAudioRingBufferMethod "thawNotify" o = GObject.ObjectThawNotifyMethodInfo+    ResolveAudioRingBufferMethod "unparent" o = Gst.ObjectUnparentMethodInfo+    ResolveAudioRingBufferMethod "watchClosure" o = GObject.ObjectWatchClosureMethodInfo+    ResolveAudioRingBufferMethod "getControlBinding" o = Gst.ObjectGetControlBindingMethodInfo+    ResolveAudioRingBufferMethod "getControlRate" o = Gst.ObjectGetControlRateMethodInfo+    ResolveAudioRingBufferMethod "getData" o = GObject.ObjectGetDataMethodInfo+    ResolveAudioRingBufferMethod "getGValueArray" o = Gst.ObjectGetGValueArrayMethodInfo+    ResolveAudioRingBufferMethod "getName" o = Gst.ObjectGetNameMethodInfo+    ResolveAudioRingBufferMethod "getParent" o = Gst.ObjectGetParentMethodInfo+    ResolveAudioRingBufferMethod "getPathString" o = Gst.ObjectGetPathStringMethodInfo+    ResolveAudioRingBufferMethod "getProperty" o = GObject.ObjectGetPropertyMethodInfo+    ResolveAudioRingBufferMethod "getQdata" o = GObject.ObjectGetQdataMethodInfo+    ResolveAudioRingBufferMethod "getValue" o = Gst.ObjectGetValueMethodInfo+    ResolveAudioRingBufferMethod "getValueArray" o = Gst.ObjectGetValueArrayMethodInfo+    ResolveAudioRingBufferMethod "setCallback" o = AudioRingBufferSetCallbackMethodInfo+    ResolveAudioRingBufferMethod "setChannelPositions" o = AudioRingBufferSetChannelPositionsMethodInfo+    ResolveAudioRingBufferMethod "setControlBindingDisabled" o = Gst.ObjectSetControlBindingDisabledMethodInfo+    ResolveAudioRingBufferMethod "setControlBindingsDisabled" o = Gst.ObjectSetControlBindingsDisabledMethodInfo+    ResolveAudioRingBufferMethod "setControlRate" o = Gst.ObjectSetControlRateMethodInfo+    ResolveAudioRingBufferMethod "setData" o = GObject.ObjectSetDataMethodInfo+    ResolveAudioRingBufferMethod "setFlushing" o = AudioRingBufferSetFlushingMethodInfo+    ResolveAudioRingBufferMethod "setName" o = Gst.ObjectSetNameMethodInfo+    ResolveAudioRingBufferMethod "setParent" o = Gst.ObjectSetParentMethodInfo+    ResolveAudioRingBufferMethod "setProperty" o = GObject.ObjectSetPropertyMethodInfo+    ResolveAudioRingBufferMethod "setSample" o = AudioRingBufferSetSampleMethodInfo+    ResolveAudioRingBufferMethod "setTimestamp" o = AudioRingBufferSetTimestampMethodInfo+    ResolveAudioRingBufferMethod l o = MethodResolutionFailed l o++instance (info ~ ResolveAudioRingBufferMethod t AudioRingBuffer, MethodInfo info AudioRingBuffer p) => IsLabelProxy t (AudioRingBuffer -> p) where+    fromLabelProxy _ = overloadedMethod (MethodProxy :: MethodProxy info)++#if MIN_VERSION_base(4,9,0)+instance (info ~ ResolveAudioRingBufferMethod t AudioRingBuffer, MethodInfo info AudioRingBuffer p) => IsLabel t (AudioRingBuffer -> p) where+    fromLabel _ = overloadedMethod (MethodProxy :: MethodProxy info)+#endif++type instance AttributeList AudioRingBuffer = AudioRingBufferAttributeList+type AudioRingBufferAttributeList = ('[ '("name", Gst.ObjectNamePropertyInfo), '("parent", Gst.ObjectParentPropertyInfo)] :: [(Symbol, *)])++type instance SignalList AudioRingBuffer = AudioRingBufferSignalList+type AudioRingBufferSignalList = ('[ '("deepNotify", Gst.ObjectDeepNotifySignalInfo), '("notify", GObject.ObjectNotifySignalInfo)] :: [(Symbol, *)])++-- method AudioRingBuffer::acquire+-- method type : OrdinaryMethod+-- Args : [Arg {argCName = "_obj", argType = TInterface "GstAudio" "AudioRingBuffer", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "spec", argType = TInterface "GstAudio" "AudioRingBufferSpec", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]+-- Lengths : []+-- returnType : TBasicType TBoolean+-- throws : False+-- Skip return : False++foreign import ccall "gst_audio_ring_buffer_acquire" gst_audio_ring_buffer_acquire :: +    Ptr AudioRingBuffer ->                  -- _obj : TInterface "GstAudio" "AudioRingBuffer"+    Ptr AudioRingBufferSpec ->              -- spec : TInterface "GstAudio" "AudioRingBufferSpec"+    IO CInt+++audioRingBufferAcquire ::+    (MonadIO m, AudioRingBufferK a) =>+    a                                       -- _obj+    -> AudioRingBufferSpec                  -- spec+    -> m Bool                               -- result+audioRingBufferAcquire _obj spec = liftIO $ do+    let _obj' = unsafeManagedPtrCastPtr _obj+    let spec' = unsafeManagedPtrGetPtr spec+    result <- gst_audio_ring_buffer_acquire _obj' spec'+    let result' = (/= 0) result+    touchManagedPtr _obj+    touchManagedPtr spec+    return result'++data AudioRingBufferAcquireMethodInfo+instance (signature ~ (AudioRingBufferSpec -> m Bool), MonadIO m, AudioRingBufferK a) => MethodInfo AudioRingBufferAcquireMethodInfo a signature where+    overloadedMethod _ = audioRingBufferAcquire++-- method AudioRingBuffer::activate+-- method type : OrdinaryMethod+-- Args : [Arg {argCName = "_obj", argType = TInterface "GstAudio" "AudioRingBuffer", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "active", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]+-- Lengths : []+-- returnType : TBasicType TBoolean+-- throws : False+-- Skip return : False++foreign import ccall "gst_audio_ring_buffer_activate" gst_audio_ring_buffer_activate :: +    Ptr AudioRingBuffer ->                  -- _obj : TInterface "GstAudio" "AudioRingBuffer"+    CInt ->                                 -- active : TBasicType TBoolean+    IO CInt+++audioRingBufferActivate ::+    (MonadIO m, AudioRingBufferK a) =>+    a                                       -- _obj+    -> Bool                                 -- active+    -> m Bool                               -- result+audioRingBufferActivate _obj active = liftIO $ do+    let _obj' = unsafeManagedPtrCastPtr _obj+    let active' = (fromIntegral . fromEnum) active+    result <- gst_audio_ring_buffer_activate _obj' active'+    let result' = (/= 0) result+    touchManagedPtr _obj+    return result'++data AudioRingBufferActivateMethodInfo+instance (signature ~ (Bool -> m Bool), MonadIO m, AudioRingBufferK a) => MethodInfo AudioRingBufferActivateMethodInfo a signature where+    overloadedMethod _ = audioRingBufferActivate++-- method AudioRingBuffer::advance+-- method type : OrdinaryMethod+-- Args : [Arg {argCName = "_obj", argType = TInterface "GstAudio" "AudioRingBuffer", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "advance", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]+-- Lengths : []+-- returnType : TBasicType TVoid+-- throws : False+-- Skip return : False++foreign import ccall "gst_audio_ring_buffer_advance" gst_audio_ring_buffer_advance :: +    Ptr AudioRingBuffer ->                  -- _obj : TInterface "GstAudio" "AudioRingBuffer"+    Word32 ->                               -- advance : TBasicType TUInt32+    IO ()+++audioRingBufferAdvance ::+    (MonadIO m, AudioRingBufferK a) =>+    a                                       -- _obj+    -> Word32                               -- advance+    -> m ()                                 -- result+audioRingBufferAdvance _obj advance = liftIO $ do+    let _obj' = unsafeManagedPtrCastPtr _obj+    gst_audio_ring_buffer_advance _obj' advance+    touchManagedPtr _obj+    return ()++data AudioRingBufferAdvanceMethodInfo+instance (signature ~ (Word32 -> m ()), MonadIO m, AudioRingBufferK a) => MethodInfo AudioRingBufferAdvanceMethodInfo a signature where+    overloadedMethod _ = audioRingBufferAdvance++-- method AudioRingBuffer::clear+-- method type : OrdinaryMethod+-- Args : [Arg {argCName = "_obj", argType = TInterface "GstAudio" "AudioRingBuffer", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "segment", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]+-- Lengths : []+-- returnType : TBasicType TVoid+-- throws : False+-- Skip return : False++foreign import ccall "gst_audio_ring_buffer_clear" gst_audio_ring_buffer_clear :: +    Ptr AudioRingBuffer ->                  -- _obj : TInterface "GstAudio" "AudioRingBuffer"+    Int32 ->                                -- segment : TBasicType TInt32+    IO ()+++audioRingBufferClear ::+    (MonadIO m, AudioRingBufferK a) =>+    a                                       -- _obj+    -> Int32                                -- segment+    -> m ()                                 -- result+audioRingBufferClear _obj segment = liftIO $ do+    let _obj' = unsafeManagedPtrCastPtr _obj+    gst_audio_ring_buffer_clear _obj' segment+    touchManagedPtr _obj+    return ()++data AudioRingBufferClearMethodInfo+instance (signature ~ (Int32 -> m ()), MonadIO m, AudioRingBufferK a) => MethodInfo AudioRingBufferClearMethodInfo a signature where+    overloadedMethod _ = audioRingBufferClear++-- method AudioRingBuffer::clear_all+-- method type : OrdinaryMethod+-- Args : [Arg {argCName = "_obj", argType = TInterface "GstAudio" "AudioRingBuffer", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]+-- Lengths : []+-- returnType : TBasicType TVoid+-- throws : False+-- Skip return : False++foreign import ccall "gst_audio_ring_buffer_clear_all" gst_audio_ring_buffer_clear_all :: +    Ptr AudioRingBuffer ->                  -- _obj : TInterface "GstAudio" "AudioRingBuffer"+    IO ()+++audioRingBufferClearAll ::+    (MonadIO m, AudioRingBufferK a) =>+    a                                       -- _obj+    -> m ()                                 -- result+audioRingBufferClearAll _obj = liftIO $ do+    let _obj' = unsafeManagedPtrCastPtr _obj+    gst_audio_ring_buffer_clear_all _obj'+    touchManagedPtr _obj+    return ()++data AudioRingBufferClearAllMethodInfo+instance (signature ~ (m ()), MonadIO m, AudioRingBufferK a) => MethodInfo AudioRingBufferClearAllMethodInfo a signature where+    overloadedMethod _ = audioRingBufferClearAll++-- method AudioRingBuffer::close_device+-- method type : OrdinaryMethod+-- Args : [Arg {argCName = "_obj", argType = TInterface "GstAudio" "AudioRingBuffer", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]+-- Lengths : []+-- returnType : TBasicType TBoolean+-- throws : False+-- Skip return : False++foreign import ccall "gst_audio_ring_buffer_close_device" gst_audio_ring_buffer_close_device :: +    Ptr AudioRingBuffer ->                  -- _obj : TInterface "GstAudio" "AudioRingBuffer"+    IO CInt+++audioRingBufferCloseDevice ::+    (MonadIO m, AudioRingBufferK a) =>+    a                                       -- _obj+    -> m Bool                               -- result+audioRingBufferCloseDevice _obj = liftIO $ do+    let _obj' = unsafeManagedPtrCastPtr _obj+    result <- gst_audio_ring_buffer_close_device _obj'+    let result' = (/= 0) result+    touchManagedPtr _obj+    return result'++data AudioRingBufferCloseDeviceMethodInfo+instance (signature ~ (m Bool), MonadIO m, AudioRingBufferK a) => MethodInfo AudioRingBufferCloseDeviceMethodInfo a signature where+    overloadedMethod _ = audioRingBufferCloseDevice++-- method AudioRingBuffer::commit+-- method type : OrdinaryMethod+-- Args : [Arg {argCName = "_obj", argType = TInterface "GstAudio" "AudioRingBuffer", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "sample", argType = TBasicType TUInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "data", argType = TBasicType TUInt8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "in_samples", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "out_samples", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "accum", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]+-- Lengths : []+-- returnType : TBasicType TUInt32+-- throws : False+-- Skip return : False++foreign import ccall "gst_audio_ring_buffer_commit" gst_audio_ring_buffer_commit :: +    Ptr AudioRingBuffer ->                  -- _obj : TInterface "GstAudio" "AudioRingBuffer"+    Word64 ->                               -- sample : TBasicType TUInt64+    Word8 ->                                -- data : TBasicType TUInt8+    Int32 ->                                -- in_samples : TBasicType TInt32+    Int32 ->                                -- out_samples : TBasicType TInt32+    Int32 ->                                -- accum : TBasicType TInt32+    IO Word32+++audioRingBufferCommit ::+    (MonadIO m, AudioRingBufferK a) =>+    a                                       -- _obj+    -> Word64                               -- sample+    -> Word8                                -- data_+    -> Int32                                -- inSamples+    -> Int32                                -- outSamples+    -> Int32                                -- accum+    -> m Word32                             -- result+audioRingBufferCommit _obj sample data_ inSamples outSamples accum = liftIO $ do+    let _obj' = unsafeManagedPtrCastPtr _obj+    result <- gst_audio_ring_buffer_commit _obj' sample data_ inSamples outSamples accum+    touchManagedPtr _obj+    return result++data AudioRingBufferCommitMethodInfo+instance (signature ~ (Word64 -> Word8 -> Int32 -> Int32 -> Int32 -> m Word32), MonadIO m, AudioRingBufferK a) => MethodInfo AudioRingBufferCommitMethodInfo a signature where+    overloadedMethod _ = audioRingBufferCommit++-- method AudioRingBuffer::convert+-- method type : OrdinaryMethod+-- Args : [Arg {argCName = "_obj", argType = TInterface "GstAudio" "AudioRingBuffer", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "src_fmt", argType = TInterface "Gst" "Format", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "src_val", argType = TBasicType TInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "dest_fmt", argType = TInterface "Gst" "Format", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "dest_val", argType = TBasicType TInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]+-- Lengths : []+-- returnType : TBasicType TBoolean+-- throws : False+-- Skip return : False++foreign import ccall "gst_audio_ring_buffer_convert" gst_audio_ring_buffer_convert :: +    Ptr AudioRingBuffer ->                  -- _obj : TInterface "GstAudio" "AudioRingBuffer"+    CUInt ->                                -- src_fmt : TInterface "Gst" "Format"+    Int64 ->                                -- src_val : TBasicType TInt64+    CUInt ->                                -- dest_fmt : TInterface "Gst" "Format"+    Int64 ->                                -- dest_val : TBasicType TInt64+    IO CInt+++audioRingBufferConvert ::+    (MonadIO m, AudioRingBufferK a) =>+    a                                       -- _obj+    -> Gst.Format                           -- srcFmt+    -> Int64                                -- srcVal+    -> Gst.Format                           -- destFmt+    -> Int64                                -- destVal+    -> m Bool                               -- result+audioRingBufferConvert _obj srcFmt srcVal destFmt destVal = liftIO $ do+    let _obj' = unsafeManagedPtrCastPtr _obj+    let srcFmt' = (fromIntegral . fromEnum) srcFmt+    let destFmt' = (fromIntegral . fromEnum) destFmt+    result <- gst_audio_ring_buffer_convert _obj' srcFmt' srcVal destFmt' destVal+    let result' = (/= 0) result+    touchManagedPtr _obj+    return result'++data AudioRingBufferConvertMethodInfo+instance (signature ~ (Gst.Format -> Int64 -> Gst.Format -> Int64 -> m Bool), MonadIO m, AudioRingBufferK a) => MethodInfo AudioRingBufferConvertMethodInfo a signature where+    overloadedMethod _ = audioRingBufferConvert++-- method AudioRingBuffer::delay+-- method type : OrdinaryMethod+-- Args : [Arg {argCName = "_obj", argType = TInterface "GstAudio" "AudioRingBuffer", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]+-- Lengths : []+-- returnType : TBasicType TUInt32+-- throws : False+-- Skip return : False++foreign import ccall "gst_audio_ring_buffer_delay" gst_audio_ring_buffer_delay :: +    Ptr AudioRingBuffer ->                  -- _obj : TInterface "GstAudio" "AudioRingBuffer"+    IO Word32+++audioRingBufferDelay ::+    (MonadIO m, AudioRingBufferK a) =>+    a                                       -- _obj+    -> m Word32                             -- result+audioRingBufferDelay _obj = liftIO $ do+    let _obj' = unsafeManagedPtrCastPtr _obj+    result <- gst_audio_ring_buffer_delay _obj'+    touchManagedPtr _obj+    return result++data AudioRingBufferDelayMethodInfo+instance (signature ~ (m Word32), MonadIO m, AudioRingBufferK a) => MethodInfo AudioRingBufferDelayMethodInfo a signature where+    overloadedMethod _ = audioRingBufferDelay++-- method AudioRingBuffer::device_is_open+-- method type : OrdinaryMethod+-- Args : [Arg {argCName = "_obj", argType = TInterface "GstAudio" "AudioRingBuffer", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]+-- Lengths : []+-- returnType : TBasicType TBoolean+-- throws : False+-- Skip return : False++foreign import ccall "gst_audio_ring_buffer_device_is_open" gst_audio_ring_buffer_device_is_open :: +    Ptr AudioRingBuffer ->                  -- _obj : TInterface "GstAudio" "AudioRingBuffer"+    IO CInt+++audioRingBufferDeviceIsOpen ::+    (MonadIO m, AudioRingBufferK a) =>+    a                                       -- _obj+    -> m Bool                               -- result+audioRingBufferDeviceIsOpen _obj = liftIO $ do+    let _obj' = unsafeManagedPtrCastPtr _obj+    result <- gst_audio_ring_buffer_device_is_open _obj'+    let result' = (/= 0) result+    touchManagedPtr _obj+    return result'++data AudioRingBufferDeviceIsOpenMethodInfo+instance (signature ~ (m Bool), MonadIO m, AudioRingBufferK a) => MethodInfo AudioRingBufferDeviceIsOpenMethodInfo a signature where+    overloadedMethod _ = audioRingBufferDeviceIsOpen++-- method AudioRingBuffer::is_acquired+-- method type : OrdinaryMethod+-- Args : [Arg {argCName = "_obj", argType = TInterface "GstAudio" "AudioRingBuffer", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]+-- Lengths : []+-- returnType : TBasicType TBoolean+-- throws : False+-- Skip return : False++foreign import ccall "gst_audio_ring_buffer_is_acquired" gst_audio_ring_buffer_is_acquired :: +    Ptr AudioRingBuffer ->                  -- _obj : TInterface "GstAudio" "AudioRingBuffer"+    IO CInt+++audioRingBufferIsAcquired ::+    (MonadIO m, AudioRingBufferK a) =>+    a                                       -- _obj+    -> m Bool                               -- result+audioRingBufferIsAcquired _obj = liftIO $ do+    let _obj' = unsafeManagedPtrCastPtr _obj+    result <- gst_audio_ring_buffer_is_acquired _obj'+    let result' = (/= 0) result+    touchManagedPtr _obj+    return result'++data AudioRingBufferIsAcquiredMethodInfo+instance (signature ~ (m Bool), MonadIO m, AudioRingBufferK a) => MethodInfo AudioRingBufferIsAcquiredMethodInfo a signature where+    overloadedMethod _ = audioRingBufferIsAcquired++-- method AudioRingBuffer::is_active+-- method type : OrdinaryMethod+-- Args : [Arg {argCName = "_obj", argType = TInterface "GstAudio" "AudioRingBuffer", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]+-- Lengths : []+-- returnType : TBasicType TBoolean+-- throws : False+-- Skip return : False++foreign import ccall "gst_audio_ring_buffer_is_active" gst_audio_ring_buffer_is_active :: +    Ptr AudioRingBuffer ->                  -- _obj : TInterface "GstAudio" "AudioRingBuffer"+    IO CInt+++audioRingBufferIsActive ::+    (MonadIO m, AudioRingBufferK a) =>+    a                                       -- _obj+    -> m Bool                               -- result+audioRingBufferIsActive _obj = liftIO $ do+    let _obj' = unsafeManagedPtrCastPtr _obj+    result <- gst_audio_ring_buffer_is_active _obj'+    let result' = (/= 0) result+    touchManagedPtr _obj+    return result'++data AudioRingBufferIsActiveMethodInfo+instance (signature ~ (m Bool), MonadIO m, AudioRingBufferK a) => MethodInfo AudioRingBufferIsActiveMethodInfo a signature where+    overloadedMethod _ = audioRingBufferIsActive++-- method AudioRingBuffer::is_flushing+-- method type : OrdinaryMethod+-- Args : [Arg {argCName = "_obj", argType = TInterface "GstAudio" "AudioRingBuffer", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]+-- Lengths : []+-- returnType : TBasicType TBoolean+-- throws : False+-- Skip return : False++foreign import ccall "gst_audio_ring_buffer_is_flushing" gst_audio_ring_buffer_is_flushing :: +    Ptr AudioRingBuffer ->                  -- _obj : TInterface "GstAudio" "AudioRingBuffer"+    IO CInt+++audioRingBufferIsFlushing ::+    (MonadIO m, AudioRingBufferK a) =>+    a                                       -- _obj+    -> m Bool                               -- result+audioRingBufferIsFlushing _obj = liftIO $ do+    let _obj' = unsafeManagedPtrCastPtr _obj+    result <- gst_audio_ring_buffer_is_flushing _obj'+    let result' = (/= 0) result+    touchManagedPtr _obj+    return result'++data AudioRingBufferIsFlushingMethodInfo+instance (signature ~ (m Bool), MonadIO m, AudioRingBufferK a) => MethodInfo AudioRingBufferIsFlushingMethodInfo a signature where+    overloadedMethod _ = audioRingBufferIsFlushing++-- method AudioRingBuffer::may_start+-- method type : OrdinaryMethod+-- Args : [Arg {argCName = "_obj", argType = TInterface "GstAudio" "AudioRingBuffer", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "allowed", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]+-- Lengths : []+-- returnType : TBasicType TVoid+-- throws : False+-- Skip return : False++foreign import ccall "gst_audio_ring_buffer_may_start" gst_audio_ring_buffer_may_start :: +    Ptr AudioRingBuffer ->                  -- _obj : TInterface "GstAudio" "AudioRingBuffer"+    CInt ->                                 -- allowed : TBasicType TBoolean+    IO ()+++audioRingBufferMayStart ::+    (MonadIO m, AudioRingBufferK a) =>+    a                                       -- _obj+    -> Bool                                 -- allowed+    -> m ()                                 -- result+audioRingBufferMayStart _obj allowed = liftIO $ do+    let _obj' = unsafeManagedPtrCastPtr _obj+    let allowed' = (fromIntegral . fromEnum) allowed+    gst_audio_ring_buffer_may_start _obj' allowed'+    touchManagedPtr _obj+    return ()++data AudioRingBufferMayStartMethodInfo+instance (signature ~ (Bool -> m ()), MonadIO m, AudioRingBufferK a) => MethodInfo AudioRingBufferMayStartMethodInfo a signature where+    overloadedMethod _ = audioRingBufferMayStart++-- method AudioRingBuffer::open_device+-- method type : OrdinaryMethod+-- Args : [Arg {argCName = "_obj", argType = TInterface "GstAudio" "AudioRingBuffer", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]+-- Lengths : []+-- returnType : TBasicType TBoolean+-- throws : False+-- Skip return : False++foreign import ccall "gst_audio_ring_buffer_open_device" gst_audio_ring_buffer_open_device :: +    Ptr AudioRingBuffer ->                  -- _obj : TInterface "GstAudio" "AudioRingBuffer"+    IO CInt+++audioRingBufferOpenDevice ::+    (MonadIO m, AudioRingBufferK a) =>+    a                                       -- _obj+    -> m Bool                               -- result+audioRingBufferOpenDevice _obj = liftIO $ do+    let _obj' = unsafeManagedPtrCastPtr _obj+    result <- gst_audio_ring_buffer_open_device _obj'+    let result' = (/= 0) result+    touchManagedPtr _obj+    return result'++data AudioRingBufferOpenDeviceMethodInfo+instance (signature ~ (m Bool), MonadIO m, AudioRingBufferK a) => MethodInfo AudioRingBufferOpenDeviceMethodInfo a signature where+    overloadedMethod _ = audioRingBufferOpenDevice++-- method AudioRingBuffer::pause+-- method type : OrdinaryMethod+-- Args : [Arg {argCName = "_obj", argType = TInterface "GstAudio" "AudioRingBuffer", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]+-- Lengths : []+-- returnType : TBasicType TBoolean+-- throws : False+-- Skip return : False++foreign import ccall "gst_audio_ring_buffer_pause" gst_audio_ring_buffer_pause :: +    Ptr AudioRingBuffer ->                  -- _obj : TInterface "GstAudio" "AudioRingBuffer"+    IO CInt+++audioRingBufferPause ::+    (MonadIO m, AudioRingBufferK a) =>+    a                                       -- _obj+    -> m Bool                               -- result+audioRingBufferPause _obj = liftIO $ do+    let _obj' = unsafeManagedPtrCastPtr _obj+    result <- gst_audio_ring_buffer_pause _obj'+    let result' = (/= 0) result+    touchManagedPtr _obj+    return result'++data AudioRingBufferPauseMethodInfo+instance (signature ~ (m Bool), MonadIO m, AudioRingBufferK a) => MethodInfo AudioRingBufferPauseMethodInfo a signature where+    overloadedMethod _ = audioRingBufferPause++-- method AudioRingBuffer::prepare_read+-- method type : OrdinaryMethod+-- Args : [Arg {argCName = "_obj", argType = TInterface "GstAudio" "AudioRingBuffer", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "segment", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "readptr", argType = TBasicType TUInt8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "len", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]+-- Lengths : []+-- returnType : TBasicType TBoolean+-- throws : False+-- Skip return : False++foreign import ccall "gst_audio_ring_buffer_prepare_read" gst_audio_ring_buffer_prepare_read :: +    Ptr AudioRingBuffer ->                  -- _obj : TInterface "GstAudio" "AudioRingBuffer"+    Int32 ->                                -- segment : TBasicType TInt32+    Word8 ->                                -- readptr : TBasicType TUInt8+    Int32 ->                                -- len : TBasicType TInt32+    IO CInt+++audioRingBufferPrepareRead ::+    (MonadIO m, AudioRingBufferK a) =>+    a                                       -- _obj+    -> Int32                                -- segment+    -> Word8                                -- readptr+    -> Int32                                -- len+    -> m Bool                               -- result+audioRingBufferPrepareRead _obj segment readptr len = liftIO $ do+    let _obj' = unsafeManagedPtrCastPtr _obj+    result <- gst_audio_ring_buffer_prepare_read _obj' segment readptr len+    let result' = (/= 0) result+    touchManagedPtr _obj+    return result'++data AudioRingBufferPrepareReadMethodInfo+instance (signature ~ (Int32 -> Word8 -> Int32 -> m Bool), MonadIO m, AudioRingBufferK a) => MethodInfo AudioRingBufferPrepareReadMethodInfo a signature where+    overloadedMethod _ = audioRingBufferPrepareRead++-- method AudioRingBuffer::read+-- method type : OrdinaryMethod+-- Args : [Arg {argCName = "_obj", argType = TInterface "GstAudio" "AudioRingBuffer", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "sample", argType = TBasicType TUInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "data", argType = TBasicType TUInt8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "len", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "timestamp", argType = TBasicType TUInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]+-- Lengths : []+-- returnType : TBasicType TUInt32+-- throws : False+-- Skip return : False++foreign import ccall "gst_audio_ring_buffer_read" gst_audio_ring_buffer_read :: +    Ptr AudioRingBuffer ->                  -- _obj : TInterface "GstAudio" "AudioRingBuffer"+    Word64 ->                               -- sample : TBasicType TUInt64+    Word8 ->                                -- data : TBasicType TUInt8+    Word32 ->                               -- len : TBasicType TUInt32+    Word64 ->                               -- timestamp : TBasicType TUInt64+    IO Word32+++audioRingBufferRead ::+    (MonadIO m, AudioRingBufferK a) =>+    a                                       -- _obj+    -> Word64                               -- sample+    -> Word8                                -- data_+    -> Word32                               -- len+    -> Word64                               -- timestamp+    -> m Word32                             -- result+audioRingBufferRead _obj sample data_ len timestamp = liftIO $ do+    let _obj' = unsafeManagedPtrCastPtr _obj+    result <- gst_audio_ring_buffer_read _obj' sample data_ len timestamp+    touchManagedPtr _obj+    return result++data AudioRingBufferReadMethodInfo+instance (signature ~ (Word64 -> Word8 -> Word32 -> Word64 -> m Word32), MonadIO m, AudioRingBufferK a) => MethodInfo AudioRingBufferReadMethodInfo a signature where+    overloadedMethod _ = audioRingBufferRead++-- method AudioRingBuffer::release+-- method type : OrdinaryMethod+-- Args : [Arg {argCName = "_obj", argType = TInterface "GstAudio" "AudioRingBuffer", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]+-- Lengths : []+-- returnType : TBasicType TBoolean+-- throws : False+-- Skip return : False++foreign import ccall "gst_audio_ring_buffer_release" gst_audio_ring_buffer_release :: +    Ptr AudioRingBuffer ->                  -- _obj : TInterface "GstAudio" "AudioRingBuffer"+    IO CInt+++audioRingBufferRelease ::+    (MonadIO m, AudioRingBufferK a) =>+    a                                       -- _obj+    -> m Bool                               -- result+audioRingBufferRelease _obj = liftIO $ do+    let _obj' = unsafeManagedPtrCastPtr _obj+    result <- gst_audio_ring_buffer_release _obj'+    let result' = (/= 0) result+    touchManagedPtr _obj+    return result'++data AudioRingBufferReleaseMethodInfo+instance (signature ~ (m Bool), MonadIO m, AudioRingBufferK a) => MethodInfo AudioRingBufferReleaseMethodInfo a signature where+    overloadedMethod _ = audioRingBufferRelease++-- method AudioRingBuffer::samples_done+-- method type : OrdinaryMethod+-- Args : [Arg {argCName = "_obj", argType = TInterface "GstAudio" "AudioRingBuffer", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]+-- Lengths : []+-- returnType : TBasicType TUInt64+-- throws : False+-- Skip return : False++foreign import ccall "gst_audio_ring_buffer_samples_done" gst_audio_ring_buffer_samples_done :: +    Ptr AudioRingBuffer ->                  -- _obj : TInterface "GstAudio" "AudioRingBuffer"+    IO Word64+++audioRingBufferSamplesDone ::+    (MonadIO m, AudioRingBufferK a) =>+    a                                       -- _obj+    -> m Word64                             -- result+audioRingBufferSamplesDone _obj = liftIO $ do+    let _obj' = unsafeManagedPtrCastPtr _obj+    result <- gst_audio_ring_buffer_samples_done _obj'+    touchManagedPtr _obj+    return result++data AudioRingBufferSamplesDoneMethodInfo+instance (signature ~ (m Word64), MonadIO m, AudioRingBufferK a) => MethodInfo AudioRingBufferSamplesDoneMethodInfo a signature where+    overloadedMethod _ = audioRingBufferSamplesDone++-- method AudioRingBuffer::set_callback+-- method type : OrdinaryMethod+-- Args : [Arg {argCName = "_obj", argType = TInterface "GstAudio" "AudioRingBuffer", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "cb", argType = TInterface "GstAudio" "AudioRingBufferCallback", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeAsync, argClosure = 2, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "user_data", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]+-- Lengths : []+-- returnType : TBasicType TVoid+-- throws : False+-- Skip return : False++foreign import ccall "gst_audio_ring_buffer_set_callback" gst_audio_ring_buffer_set_callback :: +    Ptr AudioRingBuffer ->                  -- _obj : TInterface "GstAudio" "AudioRingBuffer"+    FunPtr AudioRingBufferCallbackC ->      -- cb : TInterface "GstAudio" "AudioRingBufferCallback"+    Ptr () ->                               -- user_data : TBasicType TVoid+    IO ()+++audioRingBufferSetCallback ::+    (MonadIO m, AudioRingBufferK a) =>+    a                                       -- _obj+    -> AudioRingBufferCallback              -- cb+    -> m ()                                 -- result+audioRingBufferSetCallback _obj cb = liftIO $ do+    let _obj' = unsafeManagedPtrCastPtr _obj+    ptrcb <- callocMem :: IO (Ptr (FunPtr AudioRingBufferCallbackC))+    cb' <- mkAudioRingBufferCallback (audioRingBufferCallbackWrapper (Just ptrcb) cb)+    poke ptrcb cb'+    let userData = nullPtr+    gst_audio_ring_buffer_set_callback _obj' cb' userData+    touchManagedPtr _obj+    return ()++data AudioRingBufferSetCallbackMethodInfo+instance (signature ~ (AudioRingBufferCallback -> m ()), MonadIO m, AudioRingBufferK a) => MethodInfo AudioRingBufferSetCallbackMethodInfo a signature where+    overloadedMethod _ = audioRingBufferSetCallback++-- method AudioRingBuffer::set_channel_positions+-- method type : OrdinaryMethod+-- Args : [Arg {argCName = "_obj", argType = TInterface "GstAudio" "AudioRingBuffer", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "position", argType = TInterface "GstAudio" "AudioChannelPosition", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]+-- Lengths : []+-- returnType : TBasicType TVoid+-- throws : False+-- Skip return : False++foreign import ccall "gst_audio_ring_buffer_set_channel_positions" gst_audio_ring_buffer_set_channel_positions :: +    Ptr AudioRingBuffer ->                  -- _obj : TInterface "GstAudio" "AudioRingBuffer"+    CUInt ->                                -- position : TInterface "GstAudio" "AudioChannelPosition"+    IO ()+++audioRingBufferSetChannelPositions ::+    (MonadIO m, AudioRingBufferK a) =>+    a                                       -- _obj+    -> AudioChannelPosition                 -- position+    -> m ()                                 -- result+audioRingBufferSetChannelPositions _obj position = liftIO $ do+    let _obj' = unsafeManagedPtrCastPtr _obj+    let position' = (fromIntegral . fromEnum) position+    gst_audio_ring_buffer_set_channel_positions _obj' position'+    touchManagedPtr _obj+    return ()++data AudioRingBufferSetChannelPositionsMethodInfo+instance (signature ~ (AudioChannelPosition -> m ()), MonadIO m, AudioRingBufferK a) => MethodInfo AudioRingBufferSetChannelPositionsMethodInfo a signature where+    overloadedMethod _ = audioRingBufferSetChannelPositions++-- method AudioRingBuffer::set_flushing+-- method type : OrdinaryMethod+-- Args : [Arg {argCName = "_obj", argType = TInterface "GstAudio" "AudioRingBuffer", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "flushing", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]+-- Lengths : []+-- returnType : TBasicType TVoid+-- throws : False+-- Skip return : False++foreign import ccall "gst_audio_ring_buffer_set_flushing" gst_audio_ring_buffer_set_flushing :: +    Ptr AudioRingBuffer ->                  -- _obj : TInterface "GstAudio" "AudioRingBuffer"+    CInt ->                                 -- flushing : TBasicType TBoolean+    IO ()+++audioRingBufferSetFlushing ::+    (MonadIO m, AudioRingBufferK a) =>+    a                                       -- _obj+    -> Bool                                 -- flushing+    -> m ()                                 -- result+audioRingBufferSetFlushing _obj flushing = liftIO $ do+    let _obj' = unsafeManagedPtrCastPtr _obj+    let flushing' = (fromIntegral . fromEnum) flushing+    gst_audio_ring_buffer_set_flushing _obj' flushing'+    touchManagedPtr _obj+    return ()++data AudioRingBufferSetFlushingMethodInfo+instance (signature ~ (Bool -> m ()), MonadIO m, AudioRingBufferK a) => MethodInfo AudioRingBufferSetFlushingMethodInfo a signature where+    overloadedMethod _ = audioRingBufferSetFlushing++-- method AudioRingBuffer::set_sample+-- method type : OrdinaryMethod+-- Args : [Arg {argCName = "_obj", argType = TInterface "GstAudio" "AudioRingBuffer", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "sample", argType = TBasicType TUInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]+-- Lengths : []+-- returnType : TBasicType TVoid+-- throws : False+-- Skip return : False++foreign import ccall "gst_audio_ring_buffer_set_sample" gst_audio_ring_buffer_set_sample :: +    Ptr AudioRingBuffer ->                  -- _obj : TInterface "GstAudio" "AudioRingBuffer"+    Word64 ->                               -- sample : TBasicType TUInt64+    IO ()+++audioRingBufferSetSample ::+    (MonadIO m, AudioRingBufferK a) =>+    a                                       -- _obj+    -> Word64                               -- sample+    -> m ()                                 -- result+audioRingBufferSetSample _obj sample = liftIO $ do+    let _obj' = unsafeManagedPtrCastPtr _obj+    gst_audio_ring_buffer_set_sample _obj' sample+    touchManagedPtr _obj+    return ()++data AudioRingBufferSetSampleMethodInfo+instance (signature ~ (Word64 -> m ()), MonadIO m, AudioRingBufferK a) => MethodInfo AudioRingBufferSetSampleMethodInfo a signature where+    overloadedMethod _ = audioRingBufferSetSample++-- method AudioRingBuffer::set_timestamp+-- method type : OrdinaryMethod+-- Args : [Arg {argCName = "_obj", argType = TInterface "GstAudio" "AudioRingBuffer", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "readseg", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "timestamp", argType = TBasicType TUInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]+-- Lengths : []+-- returnType : TBasicType TVoid+-- throws : False+-- Skip return : False++foreign import ccall "gst_audio_ring_buffer_set_timestamp" gst_audio_ring_buffer_set_timestamp :: +    Ptr AudioRingBuffer ->                  -- _obj : TInterface "GstAudio" "AudioRingBuffer"+    Int32 ->                                -- readseg : TBasicType TInt32+    Word64 ->                               -- timestamp : TBasicType TUInt64+    IO ()+++audioRingBufferSetTimestamp ::+    (MonadIO m, AudioRingBufferK a) =>+    a                                       -- _obj+    -> Int32                                -- readseg+    -> Word64                               -- timestamp+    -> m ()                                 -- result+audioRingBufferSetTimestamp _obj readseg timestamp = liftIO $ do+    let _obj' = unsafeManagedPtrCastPtr _obj+    gst_audio_ring_buffer_set_timestamp _obj' readseg timestamp+    touchManagedPtr _obj+    return ()++data AudioRingBufferSetTimestampMethodInfo+instance (signature ~ (Int32 -> Word64 -> m ()), MonadIO m, AudioRingBufferK a) => MethodInfo AudioRingBufferSetTimestampMethodInfo a signature where+    overloadedMethod _ = audioRingBufferSetTimestamp++-- method AudioRingBuffer::start+-- method type : OrdinaryMethod+-- Args : [Arg {argCName = "_obj", argType = TInterface "GstAudio" "AudioRingBuffer", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]+-- Lengths : []+-- returnType : TBasicType TBoolean+-- throws : False+-- Skip return : False++foreign import ccall "gst_audio_ring_buffer_start" gst_audio_ring_buffer_start :: +    Ptr AudioRingBuffer ->                  -- _obj : TInterface "GstAudio" "AudioRingBuffer"+    IO CInt+++audioRingBufferStart ::+    (MonadIO m, AudioRingBufferK a) =>+    a                                       -- _obj+    -> m Bool                               -- result+audioRingBufferStart _obj = liftIO $ do+    let _obj' = unsafeManagedPtrCastPtr _obj+    result <- gst_audio_ring_buffer_start _obj'+    let result' = (/= 0) result+    touchManagedPtr _obj+    return result'++data AudioRingBufferStartMethodInfo+instance (signature ~ (m Bool), MonadIO m, AudioRingBufferK a) => MethodInfo AudioRingBufferStartMethodInfo a signature where+    overloadedMethod _ = audioRingBufferStart++-- method AudioRingBuffer::stop+-- method type : OrdinaryMethod+-- Args : [Arg {argCName = "_obj", argType = TInterface "GstAudio" "AudioRingBuffer", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]+-- Lengths : []+-- returnType : TBasicType TBoolean+-- throws : False+-- Skip return : False++foreign import ccall "gst_audio_ring_buffer_stop" gst_audio_ring_buffer_stop :: +    Ptr AudioRingBuffer ->                  -- _obj : TInterface "GstAudio" "AudioRingBuffer"+    IO CInt+++audioRingBufferStop ::+    (MonadIO m, AudioRingBufferK a) =>+    a                                       -- _obj+    -> m Bool                               -- result+audioRingBufferStop _obj = liftIO $ do+    let _obj' = unsafeManagedPtrCastPtr _obj+    result <- gst_audio_ring_buffer_stop _obj'+    let result' = (/= 0) result+    touchManagedPtr _obj+    return result'++data AudioRingBufferStopMethodInfo+instance (signature ~ (m Bool), MonadIO m, AudioRingBufferK a) => MethodInfo AudioRingBufferStopMethodInfo a signature where+    overloadedMethod _ = audioRingBufferStop++-- method AudioRingBuffer::debug_spec_buff+-- method type : MemberFunction+-- Args : [Arg {argCName = "spec", argType = TInterface "GstAudio" "AudioRingBufferSpec", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]+-- Lengths : []+-- returnType : TBasicType TVoid+-- throws : False+-- Skip return : False++foreign import ccall "gst_audio_ring_buffer_debug_spec_buff" gst_audio_ring_buffer_debug_spec_buff :: +    Ptr AudioRingBufferSpec ->              -- spec : TInterface "GstAudio" "AudioRingBufferSpec"+    IO ()+++audioRingBufferDebugSpecBuff ::+    (MonadIO m) =>+    AudioRingBufferSpec                     -- spec+    -> m ()                                 -- result+audioRingBufferDebugSpecBuff spec = liftIO $ do+    let spec' = unsafeManagedPtrGetPtr spec+    gst_audio_ring_buffer_debug_spec_buff spec'+    touchManagedPtr spec+    return ()++-- method AudioRingBuffer::debug_spec_caps+-- method type : MemberFunction+-- Args : [Arg {argCName = "spec", argType = TInterface "GstAudio" "AudioRingBufferSpec", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]+-- Lengths : []+-- returnType : TBasicType TVoid+-- throws : False+-- Skip return : False++foreign import ccall "gst_audio_ring_buffer_debug_spec_caps" gst_audio_ring_buffer_debug_spec_caps :: +    Ptr AudioRingBufferSpec ->              -- spec : TInterface "GstAudio" "AudioRingBufferSpec"+    IO ()+++audioRingBufferDebugSpecCaps ::+    (MonadIO m) =>+    AudioRingBufferSpec                     -- spec+    -> m ()                                 -- result+audioRingBufferDebugSpecCaps spec = liftIO $ do+    let spec' = unsafeManagedPtrGetPtr spec+    gst_audio_ring_buffer_debug_spec_caps spec'+    touchManagedPtr spec+    return ()++-- method AudioRingBuffer::parse_caps+-- method type : MemberFunction+-- Args : [Arg {argCName = "spec", argType = TInterface "GstAudio" "AudioRingBufferSpec", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "caps", argType = TInterface "Gst" "Caps", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]+-- Lengths : []+-- returnType : TBasicType TBoolean+-- throws : False+-- Skip return : False++foreign import ccall "gst_audio_ring_buffer_parse_caps" gst_audio_ring_buffer_parse_caps :: +    Ptr AudioRingBufferSpec ->              -- spec : TInterface "GstAudio" "AudioRingBufferSpec"+    Ptr Gst.Caps ->                         -- caps : TInterface "Gst" "Caps"+    IO CInt+++audioRingBufferParseCaps ::+    (MonadIO m) =>+    AudioRingBufferSpec                     -- spec+    -> Gst.Caps                             -- caps+    -> m Bool                               -- result+audioRingBufferParseCaps spec caps = liftIO $ do+    let spec' = unsafeManagedPtrGetPtr spec+    let caps' = unsafeManagedPtrGetPtr caps+    result <- gst_audio_ring_buffer_parse_caps spec' caps'+    let result' = (/= 0) result+    touchManagedPtr spec+    touchManagedPtr caps+    return result'++
+ GI/GstAudio/Objects/AudioRingBuffer.hs-boot view
@@ -0,0 +1,40 @@+module GI.GstAudio.Objects.AudioRingBuffer where++import Prelude ()+import Data.GI.Base.ShortPrelude++import qualified Data.Text as T+import qualified Data.ByteString.Char8 as B+import qualified Data.Map as Map++newtype AudioRingBuffer = AudioRingBuffer (ForeignPtr AudioRingBuffer)+instance GObject AudioRingBuffer where+class GObject o => AudioRingBufferK o+instance (GObject o, IsDescendantOf AudioRingBuffer o) => AudioRingBufferK o+data AudioRingBufferAcquireMethodInfo+data AudioRingBufferActivateMethodInfo+data AudioRingBufferAdvanceMethodInfo+data AudioRingBufferClearMethodInfo+data AudioRingBufferClearAllMethodInfo+data AudioRingBufferCloseDeviceMethodInfo+data AudioRingBufferCommitMethodInfo+data AudioRingBufferConvertMethodInfo+data AudioRingBufferDelayMethodInfo+data AudioRingBufferDeviceIsOpenMethodInfo+data AudioRingBufferIsAcquiredMethodInfo+data AudioRingBufferIsActiveMethodInfo+data AudioRingBufferIsFlushingMethodInfo+data AudioRingBufferMayStartMethodInfo+data AudioRingBufferOpenDeviceMethodInfo+data AudioRingBufferPauseMethodInfo+data AudioRingBufferPrepareReadMethodInfo+data AudioRingBufferReadMethodInfo+data AudioRingBufferReleaseMethodInfo+data AudioRingBufferSamplesDoneMethodInfo+data AudioRingBufferSetCallbackMethodInfo+data AudioRingBufferSetChannelPositionsMethodInfo+data AudioRingBufferSetFlushingMethodInfo+data AudioRingBufferSetSampleMethodInfo+data AudioRingBufferSetTimestampMethodInfo+data AudioRingBufferStartMethodInfo+data AudioRingBufferStopMethodInfo
+ GI/GstAudio/Objects/AudioSink.hs view
@@ -0,0 +1,204 @@+++{- |+Copyright  : Will Thompson, Iñaki García Etxebarria and Jonas Platte+License    : LGPL-2.1+Maintainer : Iñaki García Etxebarria (garetxe@gmail.com)+-}++module GI.GstAudio.Objects.AudioSink+    ( ++-- * Exported types+    AudioSink(..)                           ,+    AudioSinkK                              ,+    toAudioSink                             ,+    noAudioSink                             ,+++    ) where++import Prelude ()+import Data.GI.Base.ShortPrelude++import qualified Data.Text as T+import qualified Data.ByteString.Char8 as B+import qualified Data.Map as Map++import GI.GstAudio.Types+import GI.GstAudio.Callbacks+import qualified GI.GObject as GObject+import qualified GI.Gst as Gst+import qualified GI.GstBase as GstBase++newtype AudioSink = AudioSink (ForeignPtr AudioSink)+foreign import ccall "gst_audio_sink_get_type"+    c_gst_audio_sink_get_type :: IO GType++type instance ParentTypes AudioSink = AudioSinkParentTypes+type AudioSinkParentTypes = '[AudioBaseSink, GstBase.BaseSink, Gst.Element, Gst.Object, GObject.Object]++instance GObject AudioSink where+    gobjectIsInitiallyUnowned _ = True+    gobjectType _ = c_gst_audio_sink_get_type+    ++class GObject o => AudioSinkK o+instance (GObject o, IsDescendantOf AudioSink o) => AudioSinkK o++toAudioSink :: AudioSinkK o => o -> IO AudioSink+toAudioSink = unsafeCastTo AudioSink++noAudioSink :: Maybe AudioSink+noAudioSink = Nothing++type family ResolveAudioSinkMethod (t :: Symbol) (o :: *) :: * where+    ResolveAudioSinkMethod "abortState" o = Gst.ElementAbortStateMethodInfo+    ResolveAudioSinkMethod "addControlBinding" o = Gst.ObjectAddControlBindingMethodInfo+    ResolveAudioSinkMethod "addPad" o = Gst.ElementAddPadMethodInfo+    ResolveAudioSinkMethod "bindProperty" o = GObject.ObjectBindPropertyMethodInfo+    ResolveAudioSinkMethod "bindPropertyFull" o = GObject.ObjectBindPropertyFullMethodInfo+    ResolveAudioSinkMethod "changeState" o = Gst.ElementChangeStateMethodInfo+    ResolveAudioSinkMethod "continueState" o = Gst.ElementContinueStateMethodInfo+    ResolveAudioSinkMethod "createAllPads" o = Gst.ElementCreateAllPadsMethodInfo+    ResolveAudioSinkMethod "createRingbuffer" o = AudioBaseSinkCreateRingbufferMethodInfo+    ResolveAudioSinkMethod "defaultError" o = Gst.ObjectDefaultErrorMethodInfo+    ResolveAudioSinkMethod "doPreroll" o = GstBase.BaseSinkDoPrerollMethodInfo+    ResolveAudioSinkMethod "forceFloating" o = GObject.ObjectForceFloatingMethodInfo+    ResolveAudioSinkMethod "freezeNotify" o = GObject.ObjectFreezeNotifyMethodInfo+    ResolveAudioSinkMethod "hasActiveControlBindings" o = Gst.ObjectHasActiveControlBindingsMethodInfo+    ResolveAudioSinkMethod "hasAncestor" o = Gst.ObjectHasAncestorMethodInfo+    ResolveAudioSinkMethod "hasAsAncestor" o = Gst.ObjectHasAsAncestorMethodInfo+    ResolveAudioSinkMethod "hasAsParent" o = Gst.ObjectHasAsParentMethodInfo+    ResolveAudioSinkMethod "isAsyncEnabled" o = GstBase.BaseSinkIsAsyncEnabledMethodInfo+    ResolveAudioSinkMethod "isFloating" o = GObject.ObjectIsFloatingMethodInfo+    ResolveAudioSinkMethod "isLastSampleEnabled" o = GstBase.BaseSinkIsLastSampleEnabledMethodInfo+    ResolveAudioSinkMethod "isLockedState" o = Gst.ElementIsLockedStateMethodInfo+    ResolveAudioSinkMethod "isQosEnabled" o = GstBase.BaseSinkIsQosEnabledMethodInfo+    ResolveAudioSinkMethod "iteratePads" o = Gst.ElementIteratePadsMethodInfo+    ResolveAudioSinkMethod "iterateSinkPads" o = Gst.ElementIterateSinkPadsMethodInfo+    ResolveAudioSinkMethod "iterateSrcPads" o = Gst.ElementIterateSrcPadsMethodInfo+    ResolveAudioSinkMethod "link" o = Gst.ElementLinkMethodInfo+    ResolveAudioSinkMethod "linkFiltered" o = Gst.ElementLinkFilteredMethodInfo+    ResolveAudioSinkMethod "linkPads" o = Gst.ElementLinkPadsMethodInfo+    ResolveAudioSinkMethod "linkPadsFiltered" o = Gst.ElementLinkPadsFilteredMethodInfo+    ResolveAudioSinkMethod "linkPadsFull" o = Gst.ElementLinkPadsFullMethodInfo+    ResolveAudioSinkMethod "lostState" o = Gst.ElementLostStateMethodInfo+    ResolveAudioSinkMethod "messageFull" o = Gst.ElementMessageFullMethodInfo+    ResolveAudioSinkMethod "noMorePads" o = Gst.ElementNoMorePadsMethodInfo+    ResolveAudioSinkMethod "notify" o = GObject.ObjectNotifyMethodInfo+    ResolveAudioSinkMethod "notifyByPspec" o = GObject.ObjectNotifyByPspecMethodInfo+    ResolveAudioSinkMethod "postMessage" o = Gst.ElementPostMessageMethodInfo+    ResolveAudioSinkMethod "provideClock" o = Gst.ElementProvideClockMethodInfo+    ResolveAudioSinkMethod "query" o = Gst.ElementQueryMethodInfo+    ResolveAudioSinkMethod "queryConvert" o = Gst.ElementQueryConvertMethodInfo+    ResolveAudioSinkMethod "queryDuration" o = Gst.ElementQueryDurationMethodInfo+    ResolveAudioSinkMethod "queryLatency" o = GstBase.BaseSinkQueryLatencyMethodInfo+    ResolveAudioSinkMethod "queryPosition" o = Gst.ElementQueryPositionMethodInfo+    ResolveAudioSinkMethod "refSink" o = GObject.ObjectRefSinkMethodInfo+    ResolveAudioSinkMethod "releaseRequestPad" o = Gst.ElementReleaseRequestPadMethodInfo+    ResolveAudioSinkMethod "removeControlBinding" o = Gst.ObjectRemoveControlBindingMethodInfo+    ResolveAudioSinkMethod "removePad" o = Gst.ElementRemovePadMethodInfo+    ResolveAudioSinkMethod "replaceData" o = GObject.ObjectReplaceDataMethodInfo+    ResolveAudioSinkMethod "replaceQdata" o = GObject.ObjectReplaceQdataMethodInfo+    ResolveAudioSinkMethod "reportDeviceFailure" o = AudioBaseSinkReportDeviceFailureMethodInfo+    ResolveAudioSinkMethod "requestPad" o = Gst.ElementRequestPadMethodInfo+    ResolveAudioSinkMethod "runDispose" o = GObject.ObjectRunDisposeMethodInfo+    ResolveAudioSinkMethod "seek" o = Gst.ElementSeekMethodInfo+    ResolveAudioSinkMethod "seekSimple" o = Gst.ElementSeekSimpleMethodInfo+    ResolveAudioSinkMethod "sendEvent" o = Gst.ElementSendEventMethodInfo+    ResolveAudioSinkMethod "stealData" o = GObject.ObjectStealDataMethodInfo+    ResolveAudioSinkMethod "stealQdata" o = GObject.ObjectStealQdataMethodInfo+    ResolveAudioSinkMethod "suggestNextSync" o = Gst.ObjectSuggestNextSyncMethodInfo+    ResolveAudioSinkMethod "syncStateWithParent" o = Gst.ElementSyncStateWithParentMethodInfo+    ResolveAudioSinkMethod "syncValues" o = Gst.ObjectSyncValuesMethodInfo+    ResolveAudioSinkMethod "thawNotify" o = GObject.ObjectThawNotifyMethodInfo+    ResolveAudioSinkMethod "unlink" o = Gst.ElementUnlinkMethodInfo+    ResolveAudioSinkMethod "unlinkPads" o = Gst.ElementUnlinkPadsMethodInfo+    ResolveAudioSinkMethod "unparent" o = Gst.ObjectUnparentMethodInfo+    ResolveAudioSinkMethod "wait" o = GstBase.BaseSinkWaitMethodInfo+    ResolveAudioSinkMethod "waitClock" o = GstBase.BaseSinkWaitClockMethodInfo+    ResolveAudioSinkMethod "waitPreroll" o = GstBase.BaseSinkWaitPrerollMethodInfo+    ResolveAudioSinkMethod "watchClosure" o = GObject.ObjectWatchClosureMethodInfo+    ResolveAudioSinkMethod "getAlignmentThreshold" o = AudioBaseSinkGetAlignmentThresholdMethodInfo+    ResolveAudioSinkMethod "getBaseTime" o = Gst.ElementGetBaseTimeMethodInfo+    ResolveAudioSinkMethod "getBlocksize" o = GstBase.BaseSinkGetBlocksizeMethodInfo+    ResolveAudioSinkMethod "getBus" o = Gst.ElementGetBusMethodInfo+    ResolveAudioSinkMethod "getClock" o = Gst.ElementGetClockMethodInfo+    ResolveAudioSinkMethod "getCompatiblePad" o = Gst.ElementGetCompatiblePadMethodInfo+    ResolveAudioSinkMethod "getCompatiblePadTemplate" o = Gst.ElementGetCompatiblePadTemplateMethodInfo+    ResolveAudioSinkMethod "getControlBinding" o = Gst.ObjectGetControlBindingMethodInfo+    ResolveAudioSinkMethod "getControlRate" o = Gst.ObjectGetControlRateMethodInfo+    ResolveAudioSinkMethod "getData" o = GObject.ObjectGetDataMethodInfo+    ResolveAudioSinkMethod "getDiscontWait" o = AudioBaseSinkGetDiscontWaitMethodInfo+    ResolveAudioSinkMethod "getDriftTolerance" o = AudioBaseSinkGetDriftToleranceMethodInfo+    ResolveAudioSinkMethod "getFactory" o = Gst.ElementGetFactoryMethodInfo+    ResolveAudioSinkMethod "getGValueArray" o = Gst.ObjectGetGValueArrayMethodInfo+    ResolveAudioSinkMethod "getLastSample" o = GstBase.BaseSinkGetLastSampleMethodInfo+    ResolveAudioSinkMethod "getLatency" o = GstBase.BaseSinkGetLatencyMethodInfo+    ResolveAudioSinkMethod "getMaxBitrate" o = GstBase.BaseSinkGetMaxBitrateMethodInfo+    ResolveAudioSinkMethod "getMaxLateness" o = GstBase.BaseSinkGetMaxLatenessMethodInfo+    ResolveAudioSinkMethod "getName" o = Gst.ObjectGetNameMethodInfo+    ResolveAudioSinkMethod "getParent" o = Gst.ObjectGetParentMethodInfo+    ResolveAudioSinkMethod "getPathString" o = Gst.ObjectGetPathStringMethodInfo+    ResolveAudioSinkMethod "getProperty" o = GObject.ObjectGetPropertyMethodInfo+    ResolveAudioSinkMethod "getProvideClock" o = AudioBaseSinkGetProvideClockMethodInfo+    ResolveAudioSinkMethod "getQdata" o = GObject.ObjectGetQdataMethodInfo+    ResolveAudioSinkMethod "getRenderDelay" o = GstBase.BaseSinkGetRenderDelayMethodInfo+    ResolveAudioSinkMethod "getRequestPad" o = Gst.ElementGetRequestPadMethodInfo+    ResolveAudioSinkMethod "getSlaveMethod" o = AudioBaseSinkGetSlaveMethodMethodInfo+    ResolveAudioSinkMethod "getStartTime" o = Gst.ElementGetStartTimeMethodInfo+    ResolveAudioSinkMethod "getState" o = Gst.ElementGetStateMethodInfo+    ResolveAudioSinkMethod "getStaticPad" o = Gst.ElementGetStaticPadMethodInfo+    ResolveAudioSinkMethod "getSync" o = GstBase.BaseSinkGetSyncMethodInfo+    ResolveAudioSinkMethod "getThrottleTime" o = GstBase.BaseSinkGetThrottleTimeMethodInfo+    ResolveAudioSinkMethod "getTsOffset" o = GstBase.BaseSinkGetTsOffsetMethodInfo+    ResolveAudioSinkMethod "getValue" o = Gst.ObjectGetValueMethodInfo+    ResolveAudioSinkMethod "getValueArray" o = Gst.ObjectGetValueArrayMethodInfo+    ResolveAudioSinkMethod "setAlignmentThreshold" o = AudioBaseSinkSetAlignmentThresholdMethodInfo+    ResolveAudioSinkMethod "setAsyncEnabled" o = GstBase.BaseSinkSetAsyncEnabledMethodInfo+    ResolveAudioSinkMethod "setBaseTime" o = Gst.ElementSetBaseTimeMethodInfo+    ResolveAudioSinkMethod "setBlocksize" o = GstBase.BaseSinkSetBlocksizeMethodInfo+    ResolveAudioSinkMethod "setBus" o = Gst.ElementSetBusMethodInfo+    ResolveAudioSinkMethod "setClock" o = Gst.ElementSetClockMethodInfo+    ResolveAudioSinkMethod "setContext" o = Gst.ElementSetContextMethodInfo+    ResolveAudioSinkMethod "setControlBindingDisabled" o = Gst.ObjectSetControlBindingDisabledMethodInfo+    ResolveAudioSinkMethod "setControlBindingsDisabled" o = Gst.ObjectSetControlBindingsDisabledMethodInfo+    ResolveAudioSinkMethod "setControlRate" o = Gst.ObjectSetControlRateMethodInfo+    ResolveAudioSinkMethod "setCustomSlavingCallback" o = AudioBaseSinkSetCustomSlavingCallbackMethodInfo+    ResolveAudioSinkMethod "setData" o = GObject.ObjectSetDataMethodInfo+    ResolveAudioSinkMethod "setDiscontWait" o = AudioBaseSinkSetDiscontWaitMethodInfo+    ResolveAudioSinkMethod "setDriftTolerance" o = AudioBaseSinkSetDriftToleranceMethodInfo+    ResolveAudioSinkMethod "setLastSampleEnabled" o = GstBase.BaseSinkSetLastSampleEnabledMethodInfo+    ResolveAudioSinkMethod "setLockedState" o = Gst.ElementSetLockedStateMethodInfo+    ResolveAudioSinkMethod "setMaxBitrate" o = GstBase.BaseSinkSetMaxBitrateMethodInfo+    ResolveAudioSinkMethod "setMaxLateness" o = GstBase.BaseSinkSetMaxLatenessMethodInfo+    ResolveAudioSinkMethod "setName" o = Gst.ObjectSetNameMethodInfo+    ResolveAudioSinkMethod "setParent" o = Gst.ObjectSetParentMethodInfo+    ResolveAudioSinkMethod "setProperty" o = GObject.ObjectSetPropertyMethodInfo+    ResolveAudioSinkMethod "setProvideClock" o = AudioBaseSinkSetProvideClockMethodInfo+    ResolveAudioSinkMethod "setQosEnabled" o = GstBase.BaseSinkSetQosEnabledMethodInfo+    ResolveAudioSinkMethod "setRenderDelay" o = GstBase.BaseSinkSetRenderDelayMethodInfo+    ResolveAudioSinkMethod "setSlaveMethod" o = AudioBaseSinkSetSlaveMethodMethodInfo+    ResolveAudioSinkMethod "setStartTime" o = Gst.ElementSetStartTimeMethodInfo+    ResolveAudioSinkMethod "setState" o = Gst.ElementSetStateMethodInfo+    ResolveAudioSinkMethod "setSync" o = GstBase.BaseSinkSetSyncMethodInfo+    ResolveAudioSinkMethod "setThrottleTime" o = GstBase.BaseSinkSetThrottleTimeMethodInfo+    ResolveAudioSinkMethod "setTsOffset" o = GstBase.BaseSinkSetTsOffsetMethodInfo+    ResolveAudioSinkMethod l o = MethodResolutionFailed l o++instance (info ~ ResolveAudioSinkMethod t AudioSink, MethodInfo info AudioSink p) => IsLabelProxy t (AudioSink -> p) where+    fromLabelProxy _ = overloadedMethod (MethodProxy :: MethodProxy info)++#if MIN_VERSION_base(4,9,0)+instance (info ~ ResolveAudioSinkMethod t AudioSink, MethodInfo info AudioSink p) => IsLabel t (AudioSink -> p) where+    fromLabel _ = overloadedMethod (MethodProxy :: MethodProxy info)+#endif++type instance AttributeList AudioSink = AudioSinkAttributeList+type AudioSinkAttributeList = ('[ '("alignmentThreshold", AudioBaseSinkAlignmentThresholdPropertyInfo), '("async", GstBase.BaseSinkAsyncPropertyInfo), '("blocksize", GstBase.BaseSinkBlocksizePropertyInfo), '("bufferTime", AudioBaseSinkBufferTimePropertyInfo), '("canActivatePull", AudioBaseSinkCanActivatePullPropertyInfo), '("discontWait", AudioBaseSinkDiscontWaitPropertyInfo), '("driftTolerance", AudioBaseSinkDriftTolerancePropertyInfo), '("enableLastSample", GstBase.BaseSinkEnableLastSamplePropertyInfo), '("lastSample", GstBase.BaseSinkLastSamplePropertyInfo), '("latencyTime", AudioBaseSinkLatencyTimePropertyInfo), '("maxBitrate", GstBase.BaseSinkMaxBitratePropertyInfo), '("maxLateness", GstBase.BaseSinkMaxLatenessPropertyInfo), '("name", Gst.ObjectNamePropertyInfo), '("parent", Gst.ObjectParentPropertyInfo), '("provideClock", AudioBaseSinkProvideClockPropertyInfo), '("qos", GstBase.BaseSinkQosPropertyInfo), '("renderDelay", GstBase.BaseSinkRenderDelayPropertyInfo), '("slaveMethod", AudioBaseSinkSlaveMethodPropertyInfo), '("sync", GstBase.BaseSinkSyncPropertyInfo), '("throttleTime", GstBase.BaseSinkThrottleTimePropertyInfo), '("tsOffset", GstBase.BaseSinkTsOffsetPropertyInfo)] :: [(Symbol, *)])++type instance SignalList AudioSink = AudioSinkSignalList+type AudioSinkSignalList = ('[ '("deepNotify", Gst.ObjectDeepNotifySignalInfo), '("noMorePads", Gst.ElementNoMorePadsSignalInfo), '("notify", GObject.ObjectNotifySignalInfo), '("padAdded", Gst.ElementPadAddedSignalInfo), '("padRemoved", Gst.ElementPadRemovedSignalInfo)] :: [(Symbol, *)])++
+ GI/GstAudio/Objects/AudioSink.hs-boot view
@@ -0,0 +1,13 @@+module GI.GstAudio.Objects.AudioSink where++import Prelude ()+import Data.GI.Base.ShortPrelude++import qualified Data.Text as T+import qualified Data.ByteString.Char8 as B+import qualified Data.Map as Map++newtype AudioSink = AudioSink (ForeignPtr AudioSink)+instance GObject AudioSink where+class GObject o => AudioSinkK o+instance (GObject o, IsDescendantOf AudioSink o) => AudioSinkK o
+ GI/GstAudio/Objects/AudioSrc.hs view
@@ -0,0 +1,188 @@+++{- |+Copyright  : Will Thompson, Iñaki García Etxebarria and Jonas Platte+License    : LGPL-2.1+Maintainer : Iñaki García Etxebarria (garetxe@gmail.com)+-}++module GI.GstAudio.Objects.AudioSrc+    ( ++-- * Exported types+    AudioSrc(..)                            ,+    AudioSrcK                               ,+    toAudioSrc                              ,+    noAudioSrc                              ,+++    ) where++import Prelude ()+import Data.GI.Base.ShortPrelude++import qualified Data.Text as T+import qualified Data.ByteString.Char8 as B+import qualified Data.Map as Map++import GI.GstAudio.Types+import GI.GstAudio.Callbacks+import qualified GI.GObject as GObject+import qualified GI.Gst as Gst+import qualified GI.GstBase as GstBase++newtype AudioSrc = AudioSrc (ForeignPtr AudioSrc)+foreign import ccall "gst_audio_src_get_type"+    c_gst_audio_src_get_type :: IO GType++type instance ParentTypes AudioSrc = AudioSrcParentTypes+type AudioSrcParentTypes = '[AudioBaseSrc, GstBase.PushSrc, GstBase.BaseSrc, Gst.Element, Gst.Object, GObject.Object]++instance GObject AudioSrc where+    gobjectIsInitiallyUnowned _ = True+    gobjectType _ = c_gst_audio_src_get_type+    ++class GObject o => AudioSrcK o+instance (GObject o, IsDescendantOf AudioSrc o) => AudioSrcK o++toAudioSrc :: AudioSrcK o => o -> IO AudioSrc+toAudioSrc = unsafeCastTo AudioSrc++noAudioSrc :: Maybe AudioSrc+noAudioSrc = Nothing++type family ResolveAudioSrcMethod (t :: Symbol) (o :: *) :: * where+    ResolveAudioSrcMethod "abortState" o = Gst.ElementAbortStateMethodInfo+    ResolveAudioSrcMethod "addControlBinding" o = Gst.ObjectAddControlBindingMethodInfo+    ResolveAudioSrcMethod "addPad" o = Gst.ElementAddPadMethodInfo+    ResolveAudioSrcMethod "bindProperty" o = GObject.ObjectBindPropertyMethodInfo+    ResolveAudioSrcMethod "bindPropertyFull" o = GObject.ObjectBindPropertyFullMethodInfo+    ResolveAudioSrcMethod "changeState" o = Gst.ElementChangeStateMethodInfo+    ResolveAudioSrcMethod "continueState" o = Gst.ElementContinueStateMethodInfo+    ResolveAudioSrcMethod "createAllPads" o = Gst.ElementCreateAllPadsMethodInfo+    ResolveAudioSrcMethod "createRingbuffer" o = AudioBaseSrcCreateRingbufferMethodInfo+    ResolveAudioSrcMethod "defaultError" o = Gst.ObjectDefaultErrorMethodInfo+    ResolveAudioSrcMethod "forceFloating" o = GObject.ObjectForceFloatingMethodInfo+    ResolveAudioSrcMethod "freezeNotify" o = GObject.ObjectFreezeNotifyMethodInfo+    ResolveAudioSrcMethod "hasActiveControlBindings" o = Gst.ObjectHasActiveControlBindingsMethodInfo+    ResolveAudioSrcMethod "hasAncestor" o = Gst.ObjectHasAncestorMethodInfo+    ResolveAudioSrcMethod "hasAsAncestor" o = Gst.ObjectHasAsAncestorMethodInfo+    ResolveAudioSrcMethod "hasAsParent" o = Gst.ObjectHasAsParentMethodInfo+    ResolveAudioSrcMethod "isAsync" o = GstBase.BaseSrcIsAsyncMethodInfo+    ResolveAudioSrcMethod "isFloating" o = GObject.ObjectIsFloatingMethodInfo+    ResolveAudioSrcMethod "isLive" o = GstBase.BaseSrcIsLiveMethodInfo+    ResolveAudioSrcMethod "isLockedState" o = Gst.ElementIsLockedStateMethodInfo+    ResolveAudioSrcMethod "iteratePads" o = Gst.ElementIteratePadsMethodInfo+    ResolveAudioSrcMethod "iterateSinkPads" o = Gst.ElementIterateSinkPadsMethodInfo+    ResolveAudioSrcMethod "iterateSrcPads" o = Gst.ElementIterateSrcPadsMethodInfo+    ResolveAudioSrcMethod "link" o = Gst.ElementLinkMethodInfo+    ResolveAudioSrcMethod "linkFiltered" o = Gst.ElementLinkFilteredMethodInfo+    ResolveAudioSrcMethod "linkPads" o = Gst.ElementLinkPadsMethodInfo+    ResolveAudioSrcMethod "linkPadsFiltered" o = Gst.ElementLinkPadsFilteredMethodInfo+    ResolveAudioSrcMethod "linkPadsFull" o = Gst.ElementLinkPadsFullMethodInfo+    ResolveAudioSrcMethod "lostState" o = Gst.ElementLostStateMethodInfo+    ResolveAudioSrcMethod "messageFull" o = Gst.ElementMessageFullMethodInfo+    ResolveAudioSrcMethod "newSeamlessSegment" o = GstBase.BaseSrcNewSeamlessSegmentMethodInfo+    ResolveAudioSrcMethod "noMorePads" o = Gst.ElementNoMorePadsMethodInfo+    ResolveAudioSrcMethod "notify" o = GObject.ObjectNotifyMethodInfo+    ResolveAudioSrcMethod "notifyByPspec" o = GObject.ObjectNotifyByPspecMethodInfo+    ResolveAudioSrcMethod "postMessage" o = Gst.ElementPostMessageMethodInfo+    ResolveAudioSrcMethod "provideClock" o = Gst.ElementProvideClockMethodInfo+    ResolveAudioSrcMethod "query" o = Gst.ElementQueryMethodInfo+    ResolveAudioSrcMethod "queryConvert" o = Gst.ElementQueryConvertMethodInfo+    ResolveAudioSrcMethod "queryDuration" o = Gst.ElementQueryDurationMethodInfo+    ResolveAudioSrcMethod "queryLatency" o = GstBase.BaseSrcQueryLatencyMethodInfo+    ResolveAudioSrcMethod "queryPosition" o = Gst.ElementQueryPositionMethodInfo+    ResolveAudioSrcMethod "refSink" o = GObject.ObjectRefSinkMethodInfo+    ResolveAudioSrcMethod "releaseRequestPad" o = Gst.ElementReleaseRequestPadMethodInfo+    ResolveAudioSrcMethod "removeControlBinding" o = Gst.ObjectRemoveControlBindingMethodInfo+    ResolveAudioSrcMethod "removePad" o = Gst.ElementRemovePadMethodInfo+    ResolveAudioSrcMethod "replaceData" o = GObject.ObjectReplaceDataMethodInfo+    ResolveAudioSrcMethod "replaceQdata" o = GObject.ObjectReplaceQdataMethodInfo+    ResolveAudioSrcMethod "requestPad" o = Gst.ElementRequestPadMethodInfo+    ResolveAudioSrcMethod "runDispose" o = GObject.ObjectRunDisposeMethodInfo+    ResolveAudioSrcMethod "seek" o = Gst.ElementSeekMethodInfo+    ResolveAudioSrcMethod "seekSimple" o = Gst.ElementSeekSimpleMethodInfo+    ResolveAudioSrcMethod "sendEvent" o = Gst.ElementSendEventMethodInfo+    ResolveAudioSrcMethod "startComplete" o = GstBase.BaseSrcStartCompleteMethodInfo+    ResolveAudioSrcMethod "startWait" o = GstBase.BaseSrcStartWaitMethodInfo+    ResolveAudioSrcMethod "stealData" o = GObject.ObjectStealDataMethodInfo+    ResolveAudioSrcMethod "stealQdata" o = GObject.ObjectStealQdataMethodInfo+    ResolveAudioSrcMethod "suggestNextSync" o = Gst.ObjectSuggestNextSyncMethodInfo+    ResolveAudioSrcMethod "syncStateWithParent" o = Gst.ElementSyncStateWithParentMethodInfo+    ResolveAudioSrcMethod "syncValues" o = Gst.ObjectSyncValuesMethodInfo+    ResolveAudioSrcMethod "thawNotify" o = GObject.ObjectThawNotifyMethodInfo+    ResolveAudioSrcMethod "unlink" o = Gst.ElementUnlinkMethodInfo+    ResolveAudioSrcMethod "unlinkPads" o = Gst.ElementUnlinkPadsMethodInfo+    ResolveAudioSrcMethod "unparent" o = Gst.ObjectUnparentMethodInfo+    ResolveAudioSrcMethod "waitPlaying" o = GstBase.BaseSrcWaitPlayingMethodInfo+    ResolveAudioSrcMethod "watchClosure" o = GObject.ObjectWatchClosureMethodInfo+    ResolveAudioSrcMethod "getAllocator" o = GstBase.BaseSrcGetAllocatorMethodInfo+    ResolveAudioSrcMethod "getBaseTime" o = Gst.ElementGetBaseTimeMethodInfo+    ResolveAudioSrcMethod "getBlocksize" o = GstBase.BaseSrcGetBlocksizeMethodInfo+    ResolveAudioSrcMethod "getBufferPool" o = GstBase.BaseSrcGetBufferPoolMethodInfo+    ResolveAudioSrcMethod "getBus" o = Gst.ElementGetBusMethodInfo+    ResolveAudioSrcMethod "getClock" o = Gst.ElementGetClockMethodInfo+    ResolveAudioSrcMethod "getCompatiblePad" o = Gst.ElementGetCompatiblePadMethodInfo+    ResolveAudioSrcMethod "getCompatiblePadTemplate" o = Gst.ElementGetCompatiblePadTemplateMethodInfo+    ResolveAudioSrcMethod "getControlBinding" o = Gst.ObjectGetControlBindingMethodInfo+    ResolveAudioSrcMethod "getControlRate" o = Gst.ObjectGetControlRateMethodInfo+    ResolveAudioSrcMethod "getData" o = GObject.ObjectGetDataMethodInfo+    ResolveAudioSrcMethod "getDoTimestamp" o = GstBase.BaseSrcGetDoTimestampMethodInfo+    ResolveAudioSrcMethod "getFactory" o = Gst.ElementGetFactoryMethodInfo+    ResolveAudioSrcMethod "getGValueArray" o = Gst.ObjectGetGValueArrayMethodInfo+    ResolveAudioSrcMethod "getName" o = Gst.ObjectGetNameMethodInfo+    ResolveAudioSrcMethod "getParent" o = Gst.ObjectGetParentMethodInfo+    ResolveAudioSrcMethod "getPathString" o = Gst.ObjectGetPathStringMethodInfo+    ResolveAudioSrcMethod "getProperty" o = GObject.ObjectGetPropertyMethodInfo+    ResolveAudioSrcMethod "getProvideClock" o = AudioBaseSrcGetProvideClockMethodInfo+    ResolveAudioSrcMethod "getQdata" o = GObject.ObjectGetQdataMethodInfo+    ResolveAudioSrcMethod "getRequestPad" o = Gst.ElementGetRequestPadMethodInfo+    ResolveAudioSrcMethod "getSlaveMethod" o = AudioBaseSrcGetSlaveMethodMethodInfo+    ResolveAudioSrcMethod "getStartTime" o = Gst.ElementGetStartTimeMethodInfo+    ResolveAudioSrcMethod "getState" o = Gst.ElementGetStateMethodInfo+    ResolveAudioSrcMethod "getStaticPad" o = Gst.ElementGetStaticPadMethodInfo+    ResolveAudioSrcMethod "getValue" o = Gst.ObjectGetValueMethodInfo+    ResolveAudioSrcMethod "getValueArray" o = Gst.ObjectGetValueArrayMethodInfo+    ResolveAudioSrcMethod "setAsync" o = GstBase.BaseSrcSetAsyncMethodInfo+    ResolveAudioSrcMethod "setAutomaticEos" o = GstBase.BaseSrcSetAutomaticEosMethodInfo+    ResolveAudioSrcMethod "setBaseTime" o = Gst.ElementSetBaseTimeMethodInfo+    ResolveAudioSrcMethod "setBlocksize" o = GstBase.BaseSrcSetBlocksizeMethodInfo+    ResolveAudioSrcMethod "setBus" o = Gst.ElementSetBusMethodInfo+    ResolveAudioSrcMethod "setCaps" o = GstBase.BaseSrcSetCapsMethodInfo+    ResolveAudioSrcMethod "setClock" o = Gst.ElementSetClockMethodInfo+    ResolveAudioSrcMethod "setContext" o = Gst.ElementSetContextMethodInfo+    ResolveAudioSrcMethod "setControlBindingDisabled" o = Gst.ObjectSetControlBindingDisabledMethodInfo+    ResolveAudioSrcMethod "setControlBindingsDisabled" o = Gst.ObjectSetControlBindingsDisabledMethodInfo+    ResolveAudioSrcMethod "setControlRate" o = Gst.ObjectSetControlRateMethodInfo+    ResolveAudioSrcMethod "setData" o = GObject.ObjectSetDataMethodInfo+    ResolveAudioSrcMethod "setDoTimestamp" o = GstBase.BaseSrcSetDoTimestampMethodInfo+    ResolveAudioSrcMethod "setDynamicSize" o = GstBase.BaseSrcSetDynamicSizeMethodInfo+    ResolveAudioSrcMethod "setFormat" o = GstBase.BaseSrcSetFormatMethodInfo+    ResolveAudioSrcMethod "setLive" o = GstBase.BaseSrcSetLiveMethodInfo+    ResolveAudioSrcMethod "setLockedState" o = Gst.ElementSetLockedStateMethodInfo+    ResolveAudioSrcMethod "setName" o = Gst.ObjectSetNameMethodInfo+    ResolveAudioSrcMethod "setParent" o = Gst.ObjectSetParentMethodInfo+    ResolveAudioSrcMethod "setProperty" o = GObject.ObjectSetPropertyMethodInfo+    ResolveAudioSrcMethod "setProvideClock" o = AudioBaseSrcSetProvideClockMethodInfo+    ResolveAudioSrcMethod "setSlaveMethod" o = AudioBaseSrcSetSlaveMethodMethodInfo+    ResolveAudioSrcMethod "setStartTime" o = Gst.ElementSetStartTimeMethodInfo+    ResolveAudioSrcMethod "setState" o = Gst.ElementSetStateMethodInfo+    ResolveAudioSrcMethod l o = MethodResolutionFailed l o++instance (info ~ ResolveAudioSrcMethod t AudioSrc, MethodInfo info AudioSrc p) => IsLabelProxy t (AudioSrc -> p) where+    fromLabelProxy _ = overloadedMethod (MethodProxy :: MethodProxy info)++#if MIN_VERSION_base(4,9,0)+instance (info ~ ResolveAudioSrcMethod t AudioSrc, MethodInfo info AudioSrc p) => IsLabel t (AudioSrc -> p) where+    fromLabel _ = overloadedMethod (MethodProxy :: MethodProxy info)+#endif++type instance AttributeList AudioSrc = AudioSrcAttributeList+type AudioSrcAttributeList = ('[ '("actualBufferTime", AudioBaseSrcActualBufferTimePropertyInfo), '("actualLatencyTime", AudioBaseSrcActualLatencyTimePropertyInfo), '("blocksize", GstBase.BaseSrcBlocksizePropertyInfo), '("bufferTime", AudioBaseSrcBufferTimePropertyInfo), '("doTimestamp", GstBase.BaseSrcDoTimestampPropertyInfo), '("latencyTime", AudioBaseSrcLatencyTimePropertyInfo), '("name", Gst.ObjectNamePropertyInfo), '("numBuffers", GstBase.BaseSrcNumBuffersPropertyInfo), '("parent", Gst.ObjectParentPropertyInfo), '("provideClock", AudioBaseSrcProvideClockPropertyInfo), '("slaveMethod", AudioBaseSrcSlaveMethodPropertyInfo), '("typefind", GstBase.BaseSrcTypefindPropertyInfo)] :: [(Symbol, *)])++type instance SignalList AudioSrc = AudioSrcSignalList+type AudioSrcSignalList = ('[ '("deepNotify", Gst.ObjectDeepNotifySignalInfo), '("noMorePads", Gst.ElementNoMorePadsSignalInfo), '("notify", GObject.ObjectNotifySignalInfo), '("padAdded", Gst.ElementPadAddedSignalInfo), '("padRemoved", Gst.ElementPadRemovedSignalInfo)] :: [(Symbol, *)])++
+ GI/GstAudio/Objects/AudioSrc.hs-boot view
@@ -0,0 +1,13 @@+module GI.GstAudio.Objects.AudioSrc where++import Prelude ()+import Data.GI.Base.ShortPrelude++import qualified Data.Text as T+import qualified Data.ByteString.Char8 as B+import qualified Data.Map as Map++newtype AudioSrc = AudioSrc (ForeignPtr AudioSrc)+instance GObject AudioSrc where+class GObject o => AudioSrcK o+instance (GObject o, IsDescendantOf AudioSrc o) => AudioSrcK o
+ GI/GstAudio/Structs.hs view
@@ -0,0 +1,35 @@+++{- |+Copyright  : Will Thompson, Iñaki García Etxebarria and Jonas Platte+License    : LGPL-2.1+Maintainer : Iñaki García Etxebarria (garetxe@gmail.com)+-}++module GI.GstAudio.Structs+    (     module GI.GstAudio.Structs.AudioCdSrcTrack,+    module GI.GstAudio.Structs.AudioDownmixMeta,+    module GI.GstAudio.Structs.AudioFormatInfo,+    module GI.GstAudio.Structs.AudioInfo    ,+    module GI.GstAudio.Structs.AudioRingBufferSpec,+++    ) where++import GI.GstAudio.Structs.AudioCdSrcTrack+import GI.GstAudio.Structs.AudioDownmixMeta+import GI.GstAudio.Structs.AudioFormatInfo+import GI.GstAudio.Structs.AudioInfo+import GI.GstAudio.Structs.AudioRingBufferSpec++import Prelude ()+import Data.GI.Base.ShortPrelude++import qualified Data.Text as T+import qualified Data.ByteString.Char8 as B+import qualified Data.Map as Map++import GI.GstAudio.Types+import GI.GstAudio.Callbacks++
+ GI/GstAudio/Structs/AudioCdSrcTrack.hs view
@@ -0,0 +1,108 @@+++{- |+Copyright  : Will Thompson, Iñaki García Etxebarria and Jonas Platte+License    : LGPL-2.1+Maintainer : Iñaki García Etxebarria (garetxe@gmail.com)++CD track abstraction to communicate TOC entries to the base class.++This structure is only for use by sub-classed in connection with+gst_audio_cd_src_add_track().++Applications will be informed of the available tracks via a TOC message+on the pipeline's #GstBus instead.+-}++module GI.GstAudio.Structs.AudioCdSrcTrack+    ( ++-- * Exported types+    AudioCdSrcTrack(..)                     ,+    newZeroAudioCdSrcTrack                  ,+    noAudioCdSrcTrack                       ,+++ -- * Properties+-- ** End+    audioCdSrcTrackReadEnd                  ,+++-- ** IsAudio+    audioCdSrcTrackReadIsAudio              ,+++-- ** Num+    audioCdSrcTrackReadNum                  ,+++-- ** Start+    audioCdSrcTrackReadStart                ,+++-- ** Tags+    audioCdSrcTrackReadTags                 ,+++++    ) where++import Prelude ()+import Data.GI.Base.ShortPrelude++import qualified Data.Text as T+import qualified Data.ByteString.Char8 as B+import qualified Data.Map as Map++import GI.GstAudio.Types+import GI.GstAudio.Callbacks+import qualified GI.Gst as Gst++newtype AudioCdSrcTrack = AudioCdSrcTrack (ForeignPtr AudioCdSrcTrack)+-- | Construct a `AudioCdSrcTrack` struct initialized to zero.+newZeroAudioCdSrcTrack :: MonadIO m => m AudioCdSrcTrack+newZeroAudioCdSrcTrack = liftIO $ callocBytes 48 >>= wrapPtr AudioCdSrcTrack++noAudioCdSrcTrack :: Maybe AudioCdSrcTrack+noAudioCdSrcTrack = Nothing++audioCdSrcTrackReadIsAudio :: AudioCdSrcTrack -> IO Bool+audioCdSrcTrackReadIsAudio s = withManagedPtr s $ \ptr -> do+    val <- peek (ptr `plusPtr` 0) :: IO CInt+    let val' = (/= 0) val+    return val'++audioCdSrcTrackReadNum :: AudioCdSrcTrack -> IO Word32+audioCdSrcTrackReadNum s = withManagedPtr s $ \ptr -> do+    val <- peek (ptr `plusPtr` 4) :: IO Word32+    return val++audioCdSrcTrackReadStart :: AudioCdSrcTrack -> IO Word32+audioCdSrcTrackReadStart s = withManagedPtr s $ \ptr -> do+    val <- peek (ptr `plusPtr` 8) :: IO Word32+    return val++audioCdSrcTrackReadEnd :: AudioCdSrcTrack -> IO Word32+audioCdSrcTrackReadEnd s = withManagedPtr s $ \ptr -> do+    val <- peek (ptr `plusPtr` 12) :: IO Word32+    return val++audioCdSrcTrackReadTags :: AudioCdSrcTrack -> IO Gst.TagList+audioCdSrcTrackReadTags s = withManagedPtr s $ \ptr -> do+    val <- peek (ptr `plusPtr` 16) :: IO (Ptr Gst.TagList)+    val' <- (newBoxed Gst.TagList) val+    return val'++type family ResolveAudioCdSrcTrackMethod (t :: Symbol) (o :: *) :: * where+    ResolveAudioCdSrcTrackMethod l o = MethodResolutionFailed l o++instance (info ~ ResolveAudioCdSrcTrackMethod t AudioCdSrcTrack, MethodInfo info AudioCdSrcTrack p) => IsLabelProxy t (AudioCdSrcTrack -> p) where+    fromLabelProxy _ = overloadedMethod (MethodProxy :: MethodProxy info)++#if MIN_VERSION_base(4,9,0)+instance (info ~ ResolveAudioCdSrcTrackMethod t AudioCdSrcTrack, MethodInfo info AudioCdSrcTrack p) => IsLabel t (AudioCdSrcTrack -> p) where+    fromLabel _ = overloadedMethod (MethodProxy :: MethodProxy info)+#endif++
+ GI/GstAudio/Structs/AudioCdSrcTrack.hs-boot view
@@ -0,0 +1,10 @@+module GI.GstAudio.Structs.AudioCdSrcTrack where++import Prelude ()+import Data.GI.Base.ShortPrelude++import qualified Data.Text as T+import qualified Data.ByteString.Char8 as B+import qualified Data.Map as Map++newtype AudioCdSrcTrack = AudioCdSrcTrack (ForeignPtr AudioCdSrcTrack)
+ GI/GstAudio/Structs/AudioDownmixMeta.hs view
@@ -0,0 +1,148 @@+++{- |+Copyright  : Will Thompson, Iñaki García Etxebarria and Jonas Platte+License    : LGPL-2.1+Maintainer : Iñaki García Etxebarria (garetxe@gmail.com)++Extra buffer metadata describing audio downmixing matrix. This metadata is+attached to audio buffers and contains a matrix to downmix the buffer number+of channels to @channels.++@matrix is an two-dimensional array of @to_channels times @from_channels+coefficients, i.e. the i-th output channels is constructed by multiplicating+the input channels with the coefficients in @matrix[i] and taking the sum+of the results.+-}++module GI.GstAudio.Structs.AudioDownmixMeta+    ( ++-- * Exported types+    AudioDownmixMeta(..)                    ,+    newZeroAudioDownmixMeta                 ,+    noAudioDownmixMeta                      ,+++ -- * Methods+-- ** audioDownmixMetaGetInfo+    audioDownmixMetaGetInfo                 ,+++++ -- * Properties+-- ** FromChannels+    audioDownmixMetaReadFromChannels        ,+++-- ** FromPosition+    audioDownmixMetaReadFromPosition        ,+++-- ** Matrix+    audioDownmixMetaReadMatrix              ,+++-- ** Meta+    audioDownmixMetaReadMeta                ,+++-- ** ToChannels+    audioDownmixMetaReadToChannels          ,+++-- ** ToPosition+    audioDownmixMetaReadToPosition          ,+++++    ) where++import Prelude ()+import Data.GI.Base.ShortPrelude++import qualified Data.Text as T+import qualified Data.ByteString.Char8 as B+import qualified Data.Map as Map++import GI.GstAudio.Types+import GI.GstAudio.Callbacks+import qualified GI.Gst as Gst++newtype AudioDownmixMeta = AudioDownmixMeta (ForeignPtr AudioDownmixMeta)+-- | Construct a `AudioDownmixMeta` struct initialized to zero.+newZeroAudioDownmixMeta :: MonadIO m => m AudioDownmixMeta+newZeroAudioDownmixMeta = liftIO $ callocBytes 48 >>= wrapPtr AudioDownmixMeta++noAudioDownmixMeta :: Maybe AudioDownmixMeta+noAudioDownmixMeta = Nothing++audioDownmixMetaReadMeta :: AudioDownmixMeta -> IO Gst.Meta+audioDownmixMetaReadMeta s = withManagedPtr s $ \ptr -> do+    val <- peek (ptr `plusPtr` 0) :: IO (Ptr Gst.Meta)+    val' <- (newPtr 16 Gst.Meta) val+    return val'++audioDownmixMetaReadFromPosition :: AudioDownmixMeta -> IO AudioChannelPosition+audioDownmixMetaReadFromPosition s = withManagedPtr s $ \ptr -> do+    val <- peek (ptr `plusPtr` 16) :: IO CUInt+    let val' = (toEnum . fromIntegral) val+    return val'++audioDownmixMetaReadToPosition :: AudioDownmixMeta -> IO AudioChannelPosition+audioDownmixMetaReadToPosition s = withManagedPtr s $ \ptr -> do+    val <- peek (ptr `plusPtr` 24) :: IO CUInt+    let val' = (toEnum . fromIntegral) val+    return val'++audioDownmixMetaReadFromChannels :: AudioDownmixMeta -> IO Int32+audioDownmixMetaReadFromChannels s = withManagedPtr s $ \ptr -> do+    val <- peek (ptr `plusPtr` 32) :: IO Int32+    return val++audioDownmixMetaReadToChannels :: AudioDownmixMeta -> IO Int32+audioDownmixMetaReadToChannels s = withManagedPtr s $ \ptr -> do+    val <- peek (ptr `plusPtr` 36) :: IO Int32+    return val++audioDownmixMetaReadMatrix :: AudioDownmixMeta -> IO Float+audioDownmixMetaReadMatrix s = withManagedPtr s $ \ptr -> do+    val <- peek (ptr `plusPtr` 40) :: IO CFloat+    let val' = realToFrac val+    return val'++-- method AudioDownmixMeta::get_info+-- method type : MemberFunction+-- Args : []+-- Lengths : []+-- returnType : TInterface "Gst" "MetaInfo"+-- throws : False+-- Skip return : False++foreign import ccall "gst_audio_downmix_meta_get_info" gst_audio_downmix_meta_get_info :: +    IO (Ptr Gst.MetaInfo)+++audioDownmixMetaGetInfo ::+    (MonadIO m) =>+    m Gst.MetaInfo                          -- result+audioDownmixMetaGetInfo  = liftIO $ do+    result <- gst_audio_downmix_meta_get_info+    checkUnexpectedReturnNULL "gst_audio_downmix_meta_get_info" result+    result' <- (newPtr 80 Gst.MetaInfo) result+    return result'++type family ResolveAudioDownmixMetaMethod (t :: Symbol) (o :: *) :: * where+    ResolveAudioDownmixMetaMethod l o = MethodResolutionFailed l o++instance (info ~ ResolveAudioDownmixMetaMethod t AudioDownmixMeta, MethodInfo info AudioDownmixMeta p) => IsLabelProxy t (AudioDownmixMeta -> p) where+    fromLabelProxy _ = overloadedMethod (MethodProxy :: MethodProxy info)++#if MIN_VERSION_base(4,9,0)+instance (info ~ ResolveAudioDownmixMetaMethod t AudioDownmixMeta, MethodInfo info AudioDownmixMeta p) => IsLabel t (AudioDownmixMeta -> p) where+    fromLabel _ = overloadedMethod (MethodProxy :: MethodProxy info)+#endif++
+ GI/GstAudio/Structs/AudioDownmixMeta.hs-boot view
@@ -0,0 +1,10 @@+module GI.GstAudio.Structs.AudioDownmixMeta where++import Prelude ()+import Data.GI.Base.ShortPrelude++import qualified Data.Text as T+import qualified Data.ByteString.Char8 as B+import qualified Data.Map as Map++newtype AudioDownmixMeta = AudioDownmixMeta (ForeignPtr AudioDownmixMeta)
+ GI/GstAudio/Structs/AudioFormatInfo.hs view
@@ -0,0 +1,137 @@+++{- |+Copyright  : Will Thompson, Iñaki García Etxebarria and Jonas Platte+License    : LGPL-2.1+Maintainer : Iñaki García Etxebarria (garetxe@gmail.com)++Information for an audio format.+-}++module GI.GstAudio.Structs.AudioFormatInfo+    ( ++-- * Exported types+    AudioFormatInfo(..)                     ,+    newZeroAudioFormatInfo                  ,+    noAudioFormatInfo                       ,+++ -- * Properties+-- ** Depth+    audioFormatInfoReadDepth                ,+++-- ** Description+    audioFormatInfoReadDescription          ,+++-- ** Endianness+    audioFormatInfoReadEndianness           ,+++-- ** Flags+    audioFormatInfoReadFlags                ,+++-- ** Format+    audioFormatInfoReadFormat               ,+++-- ** Name+    audioFormatInfoReadName                 ,+++-- ** UnpackFormat+    audioFormatInfoReadUnpackFormat         ,+++-- ** Width+    audioFormatInfoReadWidth                ,+++++    ) where++import Prelude ()+import Data.GI.Base.ShortPrelude++import qualified Data.Text as T+import qualified Data.ByteString.Char8 as B+import qualified Data.Map as Map++import GI.GstAudio.Types+import GI.GstAudio.Callbacks++newtype AudioFormatInfo = AudioFormatInfo (ForeignPtr AudioFormatInfo)+-- | Construct a `AudioFormatInfo` struct initialized to zero.+newZeroAudioFormatInfo :: MonadIO m => m AudioFormatInfo+newZeroAudioFormatInfo = liftIO $ callocBytes 104 >>= wrapPtr AudioFormatInfo++noAudioFormatInfo :: Maybe AudioFormatInfo+noAudioFormatInfo = Nothing++audioFormatInfoReadFormat :: AudioFormatInfo -> IO AudioFormat+audioFormatInfoReadFormat s = withManagedPtr s $ \ptr -> do+    val <- peek (ptr `plusPtr` 0) :: IO CUInt+    let val' = (toEnum . fromIntegral) val+    return val'++audioFormatInfoReadName :: AudioFormatInfo -> IO T.Text+audioFormatInfoReadName s = withManagedPtr s $ \ptr -> do+    val <- peek (ptr `plusPtr` 8) :: IO CString+    val' <- cstringToText val+    return val'++audioFormatInfoReadDescription :: AudioFormatInfo -> IO T.Text+audioFormatInfoReadDescription s = withManagedPtr s $ \ptr -> do+    val <- peek (ptr `plusPtr` 16) :: IO CString+    val' <- cstringToText val+    return val'++audioFormatInfoReadFlags :: AudioFormatInfo -> IO [AudioFormatFlags]+audioFormatInfoReadFlags s = withManagedPtr s $ \ptr -> do+    val <- peek (ptr `plusPtr` 24) :: IO CUInt+    let val' = wordToGFlags val+    return val'++audioFormatInfoReadEndianness :: AudioFormatInfo -> IO Int32+audioFormatInfoReadEndianness s = withManagedPtr s $ \ptr -> do+    val <- peek (ptr `plusPtr` 28) :: IO Int32+    return val++audioFormatInfoReadWidth :: AudioFormatInfo -> IO Int32+audioFormatInfoReadWidth s = withManagedPtr s $ \ptr -> do+    val <- peek (ptr `plusPtr` 32) :: IO Int32+    return val++audioFormatInfoReadDepth :: AudioFormatInfo -> IO Int32+audioFormatInfoReadDepth s = withManagedPtr s $ \ptr -> do+    val <- peek (ptr `plusPtr` 36) :: IO Int32+    return val++-- XXX Skipped getter for "AudioFormatInfo:silence" :: Not implemented: "Don't know how to unpack C array of type TCArray False 8 (-1) (TBasicType TUInt8)"++audioFormatInfoReadUnpackFormat :: AudioFormatInfo -> IO AudioFormat+audioFormatInfoReadUnpackFormat s = withManagedPtr s $ \ptr -> do+    val <- peek (ptr `plusPtr` 48) :: IO CUInt+    let val' = (toEnum . fromIntegral) val+    return val'++-- XXX Skipped getter for "AudioFormatInfo:unpack_func" :: Not implemented: "Wrapping foreign callbacks is not supported yet"++-- XXX Skipped getter for "AudioFormatInfo:pack_func" :: Not implemented: "Wrapping foreign callbacks is not supported yet"++type family ResolveAudioFormatInfoMethod (t :: Symbol) (o :: *) :: * where+    ResolveAudioFormatInfoMethod l o = MethodResolutionFailed l o++instance (info ~ ResolveAudioFormatInfoMethod t AudioFormatInfo, MethodInfo info AudioFormatInfo p) => IsLabelProxy t (AudioFormatInfo -> p) where+    fromLabelProxy _ = overloadedMethod (MethodProxy :: MethodProxy info)++#if MIN_VERSION_base(4,9,0)+instance (info ~ ResolveAudioFormatInfoMethod t AudioFormatInfo, MethodInfo info AudioFormatInfo p) => IsLabel t (AudioFormatInfo -> p) where+    fromLabel _ = overloadedMethod (MethodProxy :: MethodProxy info)+#endif++
+ GI/GstAudio/Structs/AudioFormatInfo.hs-boot view
@@ -0,0 +1,10 @@+module GI.GstAudio.Structs.AudioFormatInfo where++import Prelude ()+import Data.GI.Base.ShortPrelude++import qualified Data.Text as T+import qualified Data.ByteString.Char8 as B+import qualified Data.Map as Map++newtype AudioFormatInfo = AudioFormatInfo (ForeignPtr AudioFormatInfo)
+ GI/GstAudio/Structs/AudioInfo.hs view
@@ -0,0 +1,450 @@+++{- |+Copyright  : Will Thompson, Iñaki García Etxebarria and Jonas Platte+License    : LGPL-2.1+Maintainer : Iñaki García Etxebarria (garetxe@gmail.com)++Information describing audio properties. This information can be filled+in from GstCaps with gst_audio_info_from_caps().++Use the provided macros to access the info in this structure.+-}++module GI.GstAudio.Structs.AudioInfo+    ( ++-- * Exported types+    AudioInfo(..)                           ,+    newZeroAudioInfo                        ,+    noAudioInfo                             ,+++ -- * Methods+-- ** audioInfoConvert+    AudioInfoConvertMethodInfo              ,+    audioInfoConvert                        ,+++-- ** audioInfoCopy+    AudioInfoCopyMethodInfo                 ,+    audioInfoCopy                           ,+++-- ** audioInfoFree+    AudioInfoFreeMethodInfo                 ,+    audioInfoFree                           ,+++-- ** audioInfoFromCaps+    AudioInfoFromCapsMethodInfo             ,+    audioInfoFromCaps                       ,+++-- ** audioInfoInit+    AudioInfoInitMethodInfo                 ,+    audioInfoInit                           ,+++-- ** audioInfoIsEqual+    AudioInfoIsEqualMethodInfo              ,+    audioInfoIsEqual                        ,+++-- ** audioInfoNew+    audioInfoNew                            ,+++-- ** audioInfoSetFormat+    AudioInfoSetFormatMethodInfo            ,+    audioInfoSetFormat                      ,+++-- ** audioInfoToCaps+    AudioInfoToCapsMethodInfo               ,+    audioInfoToCaps                         ,+++++ -- * Properties+-- ** Bpf+    audioInfoReadBpf                        ,+++-- ** Channels+    audioInfoReadChannels                   ,+++-- ** Finfo+    audioInfoReadFinfo                      ,+++-- ** Flags+    audioInfoReadFlags                      ,+++-- ** Layout+    audioInfoReadLayout                     ,+++-- ** Rate+    audioInfoReadRate                       ,+++++    ) where++import Prelude ()+import Data.GI.Base.ShortPrelude++import qualified Data.Text as T+import qualified Data.ByteString.Char8 as B+import qualified Data.Map as Map++import GI.GstAudio.Types+import GI.GstAudio.Callbacks+import qualified GI.Gst as Gst++newtype AudioInfo = AudioInfo (ForeignPtr AudioInfo)+foreign import ccall "gst_audio_info_get_type" c_gst_audio_info_get_type :: +    IO GType++instance BoxedObject AudioInfo where+    boxedType _ = c_gst_audio_info_get_type++-- | Construct a `AudioInfo` struct initialized to zero.+newZeroAudioInfo :: MonadIO m => m AudioInfo+newZeroAudioInfo = liftIO $ callocBoxedBytes 320 >>= wrapBoxed AudioInfo++noAudioInfo :: Maybe AudioInfo+noAudioInfo = Nothing++audioInfoReadFinfo :: AudioInfo -> IO AudioFormatInfo+audioInfoReadFinfo s = withManagedPtr s $ \ptr -> do+    val <- peek (ptr `plusPtr` 0) :: IO (Ptr AudioFormatInfo)+    val' <- (newPtr 104 AudioFormatInfo) val+    return val'++audioInfoReadFlags :: AudioInfo -> IO [AudioFlags]+audioInfoReadFlags s = withManagedPtr s $ \ptr -> do+    val <- peek (ptr `plusPtr` 8) :: IO CUInt+    let val' = wordToGFlags val+    return val'++audioInfoReadLayout :: AudioInfo -> IO AudioLayout+audioInfoReadLayout s = withManagedPtr s $ \ptr -> do+    val <- peek (ptr `plusPtr` 12) :: IO CUInt+    let val' = (toEnum . fromIntegral) val+    return val'++audioInfoReadRate :: AudioInfo -> IO Int32+audioInfoReadRate s = withManagedPtr s $ \ptr -> do+    val <- peek (ptr `plusPtr` 16) :: IO Int32+    return val++audioInfoReadChannels :: AudioInfo -> IO Int32+audioInfoReadChannels s = withManagedPtr s $ \ptr -> do+    val <- peek (ptr `plusPtr` 20) :: IO Int32+    return val++audioInfoReadBpf :: AudioInfo -> IO Int32+audioInfoReadBpf s = withManagedPtr s $ \ptr -> do+    val <- peek (ptr `plusPtr` 24) :: IO Int32+    return val++-- XXX Skipped getter for "AudioInfo:position" :: Not implemented: "Don't know how to unpack C array of type TCArray False 64 (-1) (TInterface \"GstAudio\" \"AudioChannelPosition\")"++-- method AudioInfo::new+-- method type : Constructor+-- Args : []+-- Lengths : []+-- returnType : TInterface "GstAudio" "AudioInfo"+-- throws : False+-- Skip return : False++foreign import ccall "gst_audio_info_new" gst_audio_info_new :: +    IO (Ptr AudioInfo)+++audioInfoNew ::+    (MonadIO m) =>+    m AudioInfo                             -- result+audioInfoNew  = liftIO $ do+    result <- gst_audio_info_new+    checkUnexpectedReturnNULL "gst_audio_info_new" result+    result' <- (wrapBoxed AudioInfo) result+    return result'++-- method AudioInfo::convert+-- method type : OrdinaryMethod+-- Args : [Arg {argCName = "_obj", argType = TInterface "GstAudio" "AudioInfo", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "src_fmt", argType = TInterface "Gst" "Format", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "src_val", argType = TBasicType TInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "dest_fmt", argType = TInterface "Gst" "Format", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "dest_val", argType = TBasicType TInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]+-- Lengths : []+-- returnType : TBasicType TBoolean+-- throws : False+-- Skip return : False++foreign import ccall "gst_audio_info_convert" gst_audio_info_convert :: +    Ptr AudioInfo ->                        -- _obj : TInterface "GstAudio" "AudioInfo"+    CUInt ->                                -- src_fmt : TInterface "Gst" "Format"+    Int64 ->                                -- src_val : TBasicType TInt64+    CUInt ->                                -- dest_fmt : TInterface "Gst" "Format"+    Int64 ->                                -- dest_val : TBasicType TInt64+    IO CInt+++audioInfoConvert ::+    (MonadIO m) =>+    AudioInfo                               -- _obj+    -> Gst.Format                           -- srcFmt+    -> Int64                                -- srcVal+    -> Gst.Format                           -- destFmt+    -> Int64                                -- destVal+    -> m Bool                               -- result+audioInfoConvert _obj srcFmt srcVal destFmt destVal = liftIO $ do+    let _obj' = unsafeManagedPtrGetPtr _obj+    let srcFmt' = (fromIntegral . fromEnum) srcFmt+    let destFmt' = (fromIntegral . fromEnum) destFmt+    result <- gst_audio_info_convert _obj' srcFmt' srcVal destFmt' destVal+    let result' = (/= 0) result+    touchManagedPtr _obj+    return result'++data AudioInfoConvertMethodInfo+instance (signature ~ (Gst.Format -> Int64 -> Gst.Format -> Int64 -> m Bool), MonadIO m) => MethodInfo AudioInfoConvertMethodInfo AudioInfo signature where+    overloadedMethod _ = audioInfoConvert++-- method AudioInfo::copy+-- method type : OrdinaryMethod+-- Args : [Arg {argCName = "_obj", argType = TInterface "GstAudio" "AudioInfo", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]+-- Lengths : []+-- returnType : TInterface "GstAudio" "AudioInfo"+-- throws : False+-- Skip return : False++foreign import ccall "gst_audio_info_copy" gst_audio_info_copy :: +    Ptr AudioInfo ->                        -- _obj : TInterface "GstAudio" "AudioInfo"+    IO (Ptr AudioInfo)+++audioInfoCopy ::+    (MonadIO m) =>+    AudioInfo                               -- _obj+    -> m AudioInfo                          -- result+audioInfoCopy _obj = liftIO $ do+    let _obj' = unsafeManagedPtrGetPtr _obj+    result <- gst_audio_info_copy _obj'+    checkUnexpectedReturnNULL "gst_audio_info_copy" result+    result' <- (wrapBoxed AudioInfo) result+    touchManagedPtr _obj+    return result'++data AudioInfoCopyMethodInfo+instance (signature ~ (m AudioInfo), MonadIO m) => MethodInfo AudioInfoCopyMethodInfo AudioInfo signature where+    overloadedMethod _ = audioInfoCopy++-- method AudioInfo::free+-- method type : OrdinaryMethod+-- Args : [Arg {argCName = "_obj", argType = TInterface "GstAudio" "AudioInfo", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]+-- Lengths : []+-- returnType : TBasicType TVoid+-- throws : False+-- Skip return : False++foreign import ccall "gst_audio_info_free" gst_audio_info_free :: +    Ptr AudioInfo ->                        -- _obj : TInterface "GstAudio" "AudioInfo"+    IO ()+++audioInfoFree ::+    (MonadIO m) =>+    AudioInfo                               -- _obj+    -> m ()                                 -- result+audioInfoFree _obj = liftIO $ do+    let _obj' = unsafeManagedPtrGetPtr _obj+    gst_audio_info_free _obj'+    touchManagedPtr _obj+    return ()++data AudioInfoFreeMethodInfo+instance (signature ~ (m ()), MonadIO m) => MethodInfo AudioInfoFreeMethodInfo AudioInfo signature where+    overloadedMethod _ = audioInfoFree++-- method AudioInfo::from_caps+-- method type : OrdinaryMethod+-- Args : [Arg {argCName = "_obj", argType = TInterface "GstAudio" "AudioInfo", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "caps", argType = TInterface "Gst" "Caps", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]+-- Lengths : []+-- returnType : TBasicType TBoolean+-- throws : False+-- Skip return : False++foreign import ccall "gst_audio_info_from_caps" gst_audio_info_from_caps :: +    Ptr AudioInfo ->                        -- _obj : TInterface "GstAudio" "AudioInfo"+    Ptr Gst.Caps ->                         -- caps : TInterface "Gst" "Caps"+    IO CInt+++audioInfoFromCaps ::+    (MonadIO m) =>+    AudioInfo                               -- _obj+    -> Gst.Caps                             -- caps+    -> m Bool                               -- result+audioInfoFromCaps _obj caps = liftIO $ do+    let _obj' = unsafeManagedPtrGetPtr _obj+    let caps' = unsafeManagedPtrGetPtr caps+    result <- gst_audio_info_from_caps _obj' caps'+    let result' = (/= 0) result+    touchManagedPtr _obj+    touchManagedPtr caps+    return result'++data AudioInfoFromCapsMethodInfo+instance (signature ~ (Gst.Caps -> m Bool), MonadIO m) => MethodInfo AudioInfoFromCapsMethodInfo AudioInfo signature where+    overloadedMethod _ = audioInfoFromCaps++-- method AudioInfo::init+-- method type : OrdinaryMethod+-- Args : [Arg {argCName = "_obj", argType = TInterface "GstAudio" "AudioInfo", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]+-- Lengths : []+-- returnType : TBasicType TVoid+-- throws : False+-- Skip return : False++foreign import ccall "gst_audio_info_init" gst_audio_info_init :: +    Ptr AudioInfo ->                        -- _obj : TInterface "GstAudio" "AudioInfo"+    IO ()+++audioInfoInit ::+    (MonadIO m) =>+    AudioInfo                               -- _obj+    -> m ()                                 -- result+audioInfoInit _obj = liftIO $ do+    let _obj' = unsafeManagedPtrGetPtr _obj+    gst_audio_info_init _obj'+    touchManagedPtr _obj+    return ()++data AudioInfoInitMethodInfo+instance (signature ~ (m ()), MonadIO m) => MethodInfo AudioInfoInitMethodInfo AudioInfo signature where+    overloadedMethod _ = audioInfoInit++-- method AudioInfo::is_equal+-- method type : OrdinaryMethod+-- Args : [Arg {argCName = "_obj", argType = TInterface "GstAudio" "AudioInfo", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "other", argType = TInterface "GstAudio" "AudioInfo", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]+-- Lengths : []+-- returnType : TBasicType TBoolean+-- throws : False+-- Skip return : False++foreign import ccall "gst_audio_info_is_equal" gst_audio_info_is_equal :: +    Ptr AudioInfo ->                        -- _obj : TInterface "GstAudio" "AudioInfo"+    Ptr AudioInfo ->                        -- other : TInterface "GstAudio" "AudioInfo"+    IO CInt+++audioInfoIsEqual ::+    (MonadIO m) =>+    AudioInfo                               -- _obj+    -> AudioInfo                            -- other+    -> m Bool                               -- result+audioInfoIsEqual _obj other = liftIO $ do+    let _obj' = unsafeManagedPtrGetPtr _obj+    let other' = unsafeManagedPtrGetPtr other+    result <- gst_audio_info_is_equal _obj' other'+    let result' = (/= 0) result+    touchManagedPtr _obj+    touchManagedPtr other+    return result'++data AudioInfoIsEqualMethodInfo+instance (signature ~ (AudioInfo -> m Bool), MonadIO m) => MethodInfo AudioInfoIsEqualMethodInfo AudioInfo signature where+    overloadedMethod _ = audioInfoIsEqual++-- method AudioInfo::set_format+-- method type : OrdinaryMethod+-- Args : [Arg {argCName = "_obj", argType = TInterface "GstAudio" "AudioInfo", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "format", argType = TInterface "GstAudio" "AudioFormat", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "rate", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "channels", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "position", argType = TInterface "GstAudio" "AudioChannelPosition", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]+-- Lengths : []+-- returnType : TBasicType TVoid+-- throws : False+-- Skip return : False++foreign import ccall "gst_audio_info_set_format" gst_audio_info_set_format :: +    Ptr AudioInfo ->                        -- _obj : TInterface "GstAudio" "AudioInfo"+    CUInt ->                                -- format : TInterface "GstAudio" "AudioFormat"+    Int32 ->                                -- rate : TBasicType TInt32+    Int32 ->                                -- channels : TBasicType TInt32+    CUInt ->                                -- position : TInterface "GstAudio" "AudioChannelPosition"+    IO ()+++audioInfoSetFormat ::+    (MonadIO m) =>+    AudioInfo                               -- _obj+    -> AudioFormat                          -- format+    -> Int32                                -- rate+    -> Int32                                -- channels+    -> AudioChannelPosition                 -- position+    -> m ()                                 -- result+audioInfoSetFormat _obj format rate channels position = liftIO $ do+    let _obj' = unsafeManagedPtrGetPtr _obj+    let format' = (fromIntegral . fromEnum) format+    let position' = (fromIntegral . fromEnum) position+    gst_audio_info_set_format _obj' format' rate channels position'+    touchManagedPtr _obj+    return ()++data AudioInfoSetFormatMethodInfo+instance (signature ~ (AudioFormat -> Int32 -> Int32 -> AudioChannelPosition -> m ()), MonadIO m) => MethodInfo AudioInfoSetFormatMethodInfo AudioInfo signature where+    overloadedMethod _ = audioInfoSetFormat++-- method AudioInfo::to_caps+-- method type : OrdinaryMethod+-- Args : [Arg {argCName = "_obj", argType = TInterface "GstAudio" "AudioInfo", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]+-- Lengths : []+-- returnType : TInterface "Gst" "Caps"+-- throws : False+-- Skip return : False++foreign import ccall "gst_audio_info_to_caps" gst_audio_info_to_caps :: +    Ptr AudioInfo ->                        -- _obj : TInterface "GstAudio" "AudioInfo"+    IO (Ptr Gst.Caps)+++audioInfoToCaps ::+    (MonadIO m) =>+    AudioInfo                               -- _obj+    -> m Gst.Caps                           -- result+audioInfoToCaps _obj = liftIO $ do+    let _obj' = unsafeManagedPtrGetPtr _obj+    result <- gst_audio_info_to_caps _obj'+    checkUnexpectedReturnNULL "gst_audio_info_to_caps" result+    result' <- (wrapBoxed Gst.Caps) result+    touchManagedPtr _obj+    return result'++data AudioInfoToCapsMethodInfo+instance (signature ~ (m Gst.Caps), MonadIO m) => MethodInfo AudioInfoToCapsMethodInfo AudioInfo signature where+    overloadedMethod _ = audioInfoToCaps++type family ResolveAudioInfoMethod (t :: Symbol) (o :: *) :: * where+    ResolveAudioInfoMethod "convert" o = AudioInfoConvertMethodInfo+    ResolveAudioInfoMethod "copy" o = AudioInfoCopyMethodInfo+    ResolveAudioInfoMethod "free" o = AudioInfoFreeMethodInfo+    ResolveAudioInfoMethod "fromCaps" o = AudioInfoFromCapsMethodInfo+    ResolveAudioInfoMethod "init" o = AudioInfoInitMethodInfo+    ResolveAudioInfoMethod "isEqual" o = AudioInfoIsEqualMethodInfo+    ResolveAudioInfoMethod "toCaps" o = AudioInfoToCapsMethodInfo+    ResolveAudioInfoMethod "setFormat" o = AudioInfoSetFormatMethodInfo+    ResolveAudioInfoMethod l o = MethodResolutionFailed l o++instance (info ~ ResolveAudioInfoMethod t AudioInfo, MethodInfo info AudioInfo p) => IsLabelProxy t (AudioInfo -> p) where+    fromLabelProxy _ = overloadedMethod (MethodProxy :: MethodProxy info)++#if MIN_VERSION_base(4,9,0)+instance (info ~ ResolveAudioInfoMethod t AudioInfo, MethodInfo info AudioInfo p) => IsLabel t (AudioInfo -> p) where+    fromLabel _ = overloadedMethod (MethodProxy :: MethodProxy info)+#endif++
+ GI/GstAudio/Structs/AudioInfo.hs-boot view
@@ -0,0 +1,19 @@+module GI.GstAudio.Structs.AudioInfo where++import Prelude ()+import Data.GI.Base.ShortPrelude++import qualified Data.Text as T+import qualified Data.ByteString.Char8 as B+import qualified Data.Map as Map++newtype AudioInfo = AudioInfo (ForeignPtr AudioInfo)+instance BoxedObject AudioInfo where+data AudioInfoConvertMethodInfo+data AudioInfoCopyMethodInfo+data AudioInfoFreeMethodInfo+data AudioInfoFromCapsMethodInfo+data AudioInfoInitMethodInfo+data AudioInfoIsEqualMethodInfo+data AudioInfoSetFormatMethodInfo+data AudioInfoToCapsMethodInfo
+ GI/GstAudio/Structs/AudioRingBufferSpec.hs view
@@ -0,0 +1,130 @@+++{- |+Copyright  : Will Thompson, Iñaki García Etxebarria and Jonas Platte+License    : LGPL-2.1+Maintainer : Iñaki García Etxebarria (garetxe@gmail.com)++The structure containing the format specification of the ringbuffer.+-}++module GI.GstAudio.Structs.AudioRingBufferSpec+    ( ++-- * Exported types+    AudioRingBufferSpec(..)                 ,+    newZeroAudioRingBufferSpec              ,+    noAudioRingBufferSpec                   ,+++ -- * Properties+-- ** BufferTime+    audioRingBufferSpecReadBufferTime       ,+++-- ** Caps+    audioRingBufferSpecReadCaps             ,+++-- ** Info+    audioRingBufferSpecReadInfo             ,+++-- ** LatencyTime+    audioRingBufferSpecReadLatencyTime      ,+++-- ** Seglatency+    audioRingBufferSpecReadSeglatency       ,+++-- ** Segsize+    audioRingBufferSpecReadSegsize          ,+++-- ** Segtotal+    audioRingBufferSpecReadSegtotal         ,+++-- ** Type+    audioRingBufferSpecReadType             ,+++++    ) where++import Prelude ()+import Data.GI.Base.ShortPrelude++import qualified Data.Text as T+import qualified Data.ByteString.Char8 as B+import qualified Data.Map as Map++import GI.GstAudio.Types+import GI.GstAudio.Callbacks+import qualified GI.Gst as Gst++newtype AudioRingBufferSpec = AudioRingBufferSpec (ForeignPtr AudioRingBufferSpec)+-- | Construct a `AudioRingBufferSpec` struct initialized to zero.+newZeroAudioRingBufferSpec :: MonadIO m => m AudioRingBufferSpec+newZeroAudioRingBufferSpec = liftIO $ callocBytes 400 >>= wrapPtr AudioRingBufferSpec++noAudioRingBufferSpec :: Maybe AudioRingBufferSpec+noAudioRingBufferSpec = Nothing++audioRingBufferSpecReadCaps :: AudioRingBufferSpec -> IO Gst.Caps+audioRingBufferSpecReadCaps s = withManagedPtr s $ \ptr -> do+    val <- peek (ptr `plusPtr` 0) :: IO (Ptr Gst.Caps)+    val' <- (newBoxed Gst.Caps) val+    return val'++audioRingBufferSpecReadType :: AudioRingBufferSpec -> IO AudioRingBufferFormatType+audioRingBufferSpecReadType s = withManagedPtr s $ \ptr -> do+    val <- peek (ptr `plusPtr` 8) :: IO CUInt+    let val' = (toEnum . fromIntegral) val+    return val'++audioRingBufferSpecReadInfo :: AudioRingBufferSpec -> IO AudioInfo+audioRingBufferSpecReadInfo s = withManagedPtr s $ \ptr -> do+    val <- peek (ptr `plusPtr` 16) :: IO (Ptr AudioInfo)+    val' <- (newBoxed AudioInfo) val+    return val'++audioRingBufferSpecReadLatencyTime :: AudioRingBufferSpec -> IO Word64+audioRingBufferSpecReadLatencyTime s = withManagedPtr s $ \ptr -> do+    val <- peek (ptr `plusPtr` 336) :: IO Word64+    return val++audioRingBufferSpecReadBufferTime :: AudioRingBufferSpec -> IO Word64+audioRingBufferSpecReadBufferTime s = withManagedPtr s $ \ptr -> do+    val <- peek (ptr `plusPtr` 344) :: IO Word64+    return val++audioRingBufferSpecReadSegsize :: AudioRingBufferSpec -> IO Int32+audioRingBufferSpecReadSegsize s = withManagedPtr s $ \ptr -> do+    val <- peek (ptr `plusPtr` 352) :: IO Int32+    return val++audioRingBufferSpecReadSegtotal :: AudioRingBufferSpec -> IO Int32+audioRingBufferSpecReadSegtotal s = withManagedPtr s $ \ptr -> do+    val <- peek (ptr `plusPtr` 356) :: IO Int32+    return val++audioRingBufferSpecReadSeglatency :: AudioRingBufferSpec -> IO Int32+audioRingBufferSpecReadSeglatency s = withManagedPtr s $ \ptr -> do+    val <- peek (ptr `plusPtr` 360) :: IO Int32+    return val++type family ResolveAudioRingBufferSpecMethod (t :: Symbol) (o :: *) :: * where+    ResolveAudioRingBufferSpecMethod l o = MethodResolutionFailed l o++instance (info ~ ResolveAudioRingBufferSpecMethod t AudioRingBufferSpec, MethodInfo info AudioRingBufferSpec p) => IsLabelProxy t (AudioRingBufferSpec -> p) where+    fromLabelProxy _ = overloadedMethod (MethodProxy :: MethodProxy info)++#if MIN_VERSION_base(4,9,0)+instance (info ~ ResolveAudioRingBufferSpecMethod t AudioRingBufferSpec, MethodInfo info AudioRingBufferSpec p) => IsLabel t (AudioRingBufferSpec -> p) where+    fromLabel _ = overloadedMethod (MethodProxy :: MethodProxy info)+#endif++
+ GI/GstAudio/Structs/AudioRingBufferSpec.hs-boot view
@@ -0,0 +1,10 @@+module GI.GstAudio.Structs.AudioRingBufferSpec where++import Prelude ()+import Data.GI.Base.ShortPrelude++import qualified Data.Text as T+import qualified Data.ByteString.Char8 as B+import qualified Data.Map as Map++newtype AudioRingBufferSpec = AudioRingBufferSpec (ForeignPtr AudioRingBufferSpec)
+ GI/GstAudio/Types.hs view
@@ -0,0 +1,44 @@+module GI.GstAudio.Types+    (     module GI.GstAudio.Interfaces.StreamVolume,+    module GI.GstAudio.Objects.AudioBaseSink,+    module GI.GstAudio.Objects.AudioBaseSrc ,+    module GI.GstAudio.Objects.AudioCdSrc   ,+    module GI.GstAudio.Objects.AudioClock   ,+    module GI.GstAudio.Objects.AudioDecoder ,+    module GI.GstAudio.Objects.AudioEncoder ,+    module GI.GstAudio.Objects.AudioFilter  ,+    module GI.GstAudio.Objects.AudioRingBuffer,+    module GI.GstAudio.Objects.AudioSink    ,+    module GI.GstAudio.Objects.AudioSrc     ,+    module GI.GstAudio.Structs.AudioCdSrcTrack,+    module GI.GstAudio.Structs.AudioDownmixMeta,+    module GI.GstAudio.Structs.AudioFormatInfo,+    module GI.GstAudio.Structs.AudioInfo    ,+    module GI.GstAudio.Structs.AudioRingBufferSpec,+    module GI.GstAudio.Enums                ,+    module GI.GstAudio.Flags                ,+++    ) where+++import {-# SOURCE #-} GI.GstAudio.Interfaces.StreamVolume+import {-# SOURCE #-} GI.GstAudio.Objects.AudioBaseSink+import {-# SOURCE #-} GI.GstAudio.Objects.AudioBaseSrc+import {-# SOURCE #-} GI.GstAudio.Objects.AudioCdSrc+import {-# SOURCE #-} GI.GstAudio.Objects.AudioClock+import {-# SOURCE #-} GI.GstAudio.Objects.AudioDecoder+import {-# SOURCE #-} GI.GstAudio.Objects.AudioEncoder+import {-# SOURCE #-} GI.GstAudio.Objects.AudioFilter+import {-# SOURCE #-} GI.GstAudio.Objects.AudioRingBuffer+import {-# SOURCE #-} GI.GstAudio.Objects.AudioSink+import {-# SOURCE #-} GI.GstAudio.Objects.AudioSrc+import {-# SOURCE #-} GI.GstAudio.Structs.AudioCdSrcTrack+import {-# SOURCE #-} GI.GstAudio.Structs.AudioDownmixMeta+import {-# SOURCE #-} GI.GstAudio.Structs.AudioFormatInfo+import {-# SOURCE #-} GI.GstAudio.Structs.AudioInfo+import {-# SOURCE #-} GI.GstAudio.Structs.AudioRingBufferSpec++import GI.GstAudio.Enums+import GI.GstAudio.Flags+
+ LICENSE view
@@ -0,0 +1,456 @@+                  GNU LESSER GENERAL PUBLIC LICENSE+                       Version 2.1, February 1999++ Copyright (C) 1991, 1999 Free Software Foundation, Inc.+ 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA+ Everyone is permitted to copy and distribute verbatim copies+ of this license document, but changing it is not allowed.++[This is the first released version of the Lesser GPL.  It also counts+ as the successor of the GNU Library Public License, version 2, hence+ the version number 2.1.]++                            Preamble++  The licenses for most software are designed to take away your+freedom to share and change it.  By contrast, the GNU General Public+Licenses are intended to guarantee your freedom to share and change+free software--to make sure the software is free for all its users.++  This license, the Lesser General Public License, applies to some+specially designated software packages--typically libraries--of the+Free Software Foundation and other authors who decide to use it.  You+can use it too, but we suggest you first think carefully about whether+this license or the ordinary General Public License is the better+strategy to use in any particular case, based on the explanations below.++  When we speak of free software, we are referring to freedom of use,+not price.  Our General Public Licenses are designed to make sure that+you have the freedom to distribute copies of free software (and charge+for this service if you wish); that you receive source code or can get+it if you want it; that you can change the software and use pieces of+it in new free programs; and that you are informed that you can do+these things.++  To protect your rights, we need to make restrictions that forbid+distributors to deny you these rights or to ask you to surrender these+rights.  These restrictions translate to certain responsibilities for+you if you distribute copies of the library or if you modify it.++  For example, if you distribute copies of the library, whether gratis+or for a fee, you must give the recipients all the rights that we gave+you.  You must make sure that they, too, receive or can get the source+code.  If you link other code with the library, you must provide+complete object files to the recipients, so that they can relink them+with the library after making changes to the library and recompiling+it.  And you must show them these terms so they know their rights.++  We protect your rights with a two-step method: (1) we copyright the+library, and (2) we offer you this license, which gives you legal+permission to copy, distribute and/or modify the library.++  To protect each distributor, we want to make it very clear that+there is no warranty for the free library.  Also, if the library is+modified by someone else and passed on, the recipients should know+that what they have is not the original version, so that the original+author's reputation will not be affected by problems that might be+introduced by others.++  Finally, software patents pose a constant threat to the existence of+any free program.  We wish to make sure that a company cannot+effectively restrict the users of a free program by obtaining a+restrictive license from a patent holder.  Therefore, we insist that+any patent license obtained for a version of the library must be+consistent with the full freedom of use specified in this license.++  Most GNU software, including some libraries, is covered by the+ordinary GNU General Public License.  This license, the GNU Lesser+General Public License, applies to certain designated libraries, and+is quite different from the ordinary General Public License.  We use+this license for certain libraries in order to permit linking those+libraries into non-free programs.++  When a program is linked with a library, whether statically or using+a shared library, the combination of the two is legally speaking a+combined work, a derivative of the original library.  The ordinary+General Public License therefore permits such linking only if the+entire combination fits its criteria of freedom.  The Lesser General+Public License permits more lax criteria for linking other code with+the library.++  We call this license the "Lesser" General Public License because it+does Less to protect the user's freedom than the ordinary General+Public License.  It also provides other free software developers Less+of an advantage over competing non-free programs.  These disadvantages+are the reason we use the ordinary General Public License for many+libraries.  However, the Lesser license provides advantages in certain+special circumstances.++  For example, on rare occasions, there may be a special need to+encourage the widest possible use of a certain library, so that it becomes+a de-facto standard.  To achieve this, non-free programs must be+allowed to use the library.  A more frequent case is that a free+library does the same job as widely used non-free libraries.  In this+case, there is little to gain by limiting the free library to free+software only, so we use the Lesser General Public License.++  In other cases, permission to use a particular library in non-free+programs enables a greater number of people to use a large body of+free software.  For example, permission to use the GNU C Library in+non-free programs enables many more people to use the whole GNU+operating system, as well as its variant, the GNU/Linux operating+system.++  Although the Lesser General Public License is Less protective of the+users' freedom, it does ensure that the user of a program that is+linked with the Library has the freedom and the wherewithal to run+that program using a modified version of the Library.++  The precise terms and conditions for copying, distribution and+modification follow.  Pay close attention to the difference between a+"work based on the library" and a "work that uses the library".  The+former contains code derived from the library, whereas the latter must+be combined with the library in order to run.++                  GNU LESSER GENERAL PUBLIC LICENSE+   TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION++  0. This License Agreement applies to any software library or other+program which contains a notice placed by the copyright holder or+other authorized party saying it may be distributed under the terms of+this Lesser General Public License (also called "this License").+Each licensee is addressed as "you".++  A "library" means a collection of software functions and/or data+prepared so as to be conveniently linked with application programs+(which use some of those functions and data) to form executables.++  The "Library", below, refers to any such software library or work+which has been distributed under these terms.  A "work based on the+Library" means either the Library or any derivative work under+copyright law: that is to say, a work containing the Library or a+portion of it, either verbatim or with modifications and/or translated+straightforwardly into another language.  (Hereinafter, translation is+included without limitation in the term "modification".)++  "Source code" for a work means the preferred form of the work for+making modifications to it.  For a library, complete source code means+all the source code for all modules it contains, plus any associated+interface definition files, plus the scripts used to control compilation+and installation of the library.++  Activities other than copying, distribution and modification are not+covered by this License; they are outside its scope.  The act of+running a program using the Library is not restricted, and output from+such a program is covered only if its contents constitute a work based+on the Library (independent of the use of the Library in a tool for+writing it).  Whether that is true depends on what the Library does+and what the program that uses the Library does.++  1. You may copy and distribute verbatim copies of the Library's+complete source code as you receive it, in any medium, provided that+you conspicuously and appropriately publish on each copy an+appropriate copyright notice and disclaimer of warranty; keep intact+all the notices that refer to this License and to the absence of any+warranty; and distribute a copy of this License along with the+Library.++  You may charge a fee for the physical act of transferring a copy,+and you may at your option offer warranty protection in exchange for a+fee.++  2. You may modify your copy or copies of the Library or any portion+of it, thus forming a work based on the Library, and copy and+distribute such modifications or work under the terms of Section 1+above, provided that you also meet all of these conditions:++    a) The modified work must itself be a software library.++    b) You must cause the files modified to carry prominent notices+    stating that you changed the files and the date of any change.++    c) You must cause the whole of the work to be licensed at no+    charge to all third parties under the terms of this License.++    d) If a facility in the modified Library refers to a function or a+    table of data to be supplied by an application program that uses+    the facility, other than as an argument passed when the facility+    is invoked, then you must make a good faith effort to ensure that,+    in the event an application does not supply such function or+    table, the facility still operates, and performs whatever part of+    its purpose remains meaningful.++    (For example, a function in a library to compute square roots has+    a purpose that is entirely well-defined independent of the+    application.  Therefore, Subsection 2d requires that any+    application-supplied function or table used by this function must+    be optional: if the application does not supply it, the square+    root function must still compute square roots.)++These requirements apply to the modified work as a whole.  If+identifiable sections of that work are not derived from the Library,+and can be reasonably considered independent and separate works in+themselves, then this License, and its terms, do not apply to those+sections when you distribute them as separate works.  But when you+distribute the same sections as part of a whole which is a work based+on the Library, the distribution of the whole must be on the terms of+this License, whose permissions for other licensees extend to the+entire whole, and thus to each and every part regardless of who wrote+it.++Thus, it is not the intent of this section to claim rights or contest+your rights to work written entirely by you; rather, the intent is to+exercise the right to control the distribution of derivative or+collective works based on the Library.++In addition, mere aggregation of another work not based on the Library+with the Library (or with a work based on the Library) on a volume of+a storage or distribution medium does not bring the other work under+the scope of this License.++  3. You may opt to apply the terms of the ordinary GNU General Public+License instead of this License to a given copy of the Library.  To do+this, you must alter all the notices that refer to this License, so+that they refer to the ordinary GNU General Public License, version 2,+instead of to this License.  (If a newer version than version 2 of the+ordinary GNU General Public License has appeared, then you can specify+that version instead if you wish.)  Do not make any other change in+these notices.++  Once this change is made in a given copy, it is irreversible for+that copy, so the ordinary GNU General Public License applies to all+subsequent copies and derivative works made from that copy.++  This option is useful when you wish to copy part of the code of+the Library into a program that is not a library.++  4. You may copy and distribute the Library (or a portion or+derivative of it, under Section 2) in object code or executable form+under the terms of Sections 1 and 2 above provided that you accompany+it with the complete corresponding machine-readable source code, which+must be distributed under the terms of Sections 1 and 2 above on a+medium customarily used for software interchange.++  If distribution of object code is made by offering access to copy+from a designated place, then offering equivalent access to copy the+source code from the same place satisfies the requirement to+distribute the source code, even though third parties are not+compelled to copy the source along with the object code.++  5. A program that contains no derivative of any portion of the+Library, but is designed to work with the Library by being compiled or+linked with it, is called a "work that uses the Library".  Such a+work, in isolation, is not a derivative work of the Library, and+therefore falls outside the scope of this License.++  However, linking a "work that uses the Library" with the Library+creates an executable that is a derivative of the Library (because it+contains portions of the Library), rather than a "work that uses the+library".  The executable is therefore covered by this License.+Section 6 states terms for distribution of such executables.++  When a "work that uses the Library" uses material from a header file+that is part of the Library, the object code for the work may be a+derivative work of the Library even though the source code is not.+Whether this is true is especially significant if the work can be+linked without the Library, or if the work is itself a library.  The+threshold for this to be true is not precisely defined by law.++  If such an object file uses only numerical parameters, data+structure layouts and accessors, and small macros and small inline+functions (ten lines or less in length), then the use of the object+file is unrestricted, regardless of whether it is legally a derivative+work.  (Executables containing this object code plus portions of the+Library will still fall under Section 6.)++  Otherwise, if the work is a derivative of the Library, you may+distribute the object code for the work under the terms of Section 6.+Any executables containing that work also fall under Section 6,+whether or not they are linked directly with the Library itself.++  6. As an exception to the Sections above, you may also combine or+link a "work that uses the Library" with the Library to produce a+work containing portions of the Library, and distribute that work+under terms of your choice, provided that the terms permit+modification of the work for the customer's own use and reverse+engineering for debugging such modifications.++  You must give prominent notice with each copy of the work that the+Library is used in it and that the Library and its use are covered by+this License.  You must supply a copy of this License.  If the work+during execution displays copyright notices, you must include the+copyright notice for the Library among them, as well as a reference+directing the user to the copy of this License.  Also, you must do one+of these things:++    a) Accompany the work with the complete corresponding+    machine-readable source code for the Library including whatever+    changes were used in the work (which must be distributed under+    Sections 1 and 2 above); and, if the work is an executable linked+    with the Library, with the complete machine-readable "work that+    uses the Library", as object code and/or source code, so that the+    user can modify the Library and then relink to produce a modified+    executable containing the modified Library.  (It is understood+    that the user who changes the contents of definitions files in the+    Library will not necessarily be able to recompile the application+    to use the modified definitions.)++    b) Use a suitable shared library mechanism for linking with the+    Library.  A suitable mechanism is one that (1) uses at run time a+    copy of the library already present on the user's computer system,+    rather than copying library functions into the executable, and (2)+    will operate properly with a modified version of the library, if+    the user installs one, as long as the modified version is+    interface-compatible with the version that the work was made with.++    c) Accompany the work with a written offer, valid for at+    least three years, to give the same user the materials+    specified in Subsection 6a, above, for a charge no more+    than the cost of performing this distribution.++    d) If distribution of the work is made by offering access to copy+    from a designated place, offer equivalent access to copy the above+    specified materials from the same place.++    e) Verify that the user has already received a copy of these+    materials or that you have already sent this user a copy.++  For an executable, the required form of the "work that uses the+Library" must include any data and utility programs needed for+reproducing the executable from it.  However, as a special exception,+the materials to be distributed need not include anything that is+normally distributed (in either source or binary form) with the major+components (compiler, kernel, and so on) of the operating system on+which the executable runs, unless that component itself accompanies+the executable.++  It may happen that this requirement contradicts the license+restrictions of other proprietary libraries that do not normally+accompany the operating system.  Such a contradiction means you cannot+use both them and the Library together in an executable that you+distribute.++  7. You may place library facilities that are a work based on the+Library side-by-side in a single library together with other library+facilities not covered by this License, and distribute such a combined+library, provided that the separate distribution of the work based on+the Library and of the other library facilities is otherwise+permitted, and provided that you do these two things:++    a) Accompany the combined library with a copy of the same work+    based on the Library, uncombined with any other library+    facilities.  This must be distributed under the terms of the+    Sections above.++    b) Give prominent notice with the combined library of the fact+    that part of it is a work based on the Library, and explaining+    where to find the accompanying uncombined form of the same work.++  8. You may not copy, modify, sublicense, link with, or distribute+the Library except as expressly provided under this License.  Any+attempt otherwise to copy, modify, sublicense, link with, or+distribute the Library is void, and will automatically terminate your+rights under this License.  However, parties who have received copies,+or rights, from you under this License will not have their licenses+terminated so long as such parties remain in full compliance.++  9. You are not required to accept this License, since you have not+signed it.  However, nothing else grants you permission to modify or+distribute the Library or its derivative works.  These actions are+prohibited by law if you do not accept this License.  Therefore, by+modifying or distributing the Library (or any work based on the+Library), you indicate your acceptance of this License to do so, and+all its terms and conditions for copying, distributing or modifying+the Library or works based on it.++  10. Each time you redistribute the Library (or any work based on the+Library), the recipient automatically receives a license from the+original licensor to copy, distribute, link with or modify the Library+subject to these terms and conditions.  You may not impose any further+restrictions on the recipients' exercise of the rights granted herein.+You are not responsible for enforcing compliance by third parties with+this License.++  11. If, as a consequence of a court judgment or allegation of patent+infringement or for any other reason (not limited to patent issues),+conditions are imposed on you (whether by court order, agreement or+otherwise) that contradict the conditions of this License, they do not+excuse you from the conditions of this License.  If you cannot+distribute so as to satisfy simultaneously your obligations under this+License and any other pertinent obligations, then as a consequence you+may not distribute the Library at all.  For example, if a patent+license would not permit royalty-free redistribution of the Library by+all those who receive copies directly or indirectly through you, then+the only way you could satisfy both it and this License would be to+refrain entirely from distribution of the Library.++If any portion of this section is held invalid or unenforceable under any+particular circumstance, the balance of the section is intended to apply,+and the section as a whole is intended to apply in other circumstances.++It is not the purpose of this section to induce you to infringe any+patents or other property right claims or to contest validity of any+such claims; this section has the sole purpose of protecting the+integrity of the free software distribution system which is+implemented by public license practices.  Many people have made+generous contributions to the wide range of software distributed+through that system in reliance on consistent application of that+system; it is up to the author/donor to decide if he or she is willing+to distribute software through any other system and a licensee cannot+impose that choice.++This section is intended to make thoroughly clear what is believed to+be a consequence of the rest of this License.++  12. If the distribution and/or use of the Library is restricted in+certain countries either by patents or by copyrighted interfaces, the+original copyright holder who places the Library under this License may add+an explicit geographical distribution limitation excluding those countries,+so that distribution is permitted only in or among countries not thus+excluded.  In such case, this License incorporates the limitation as if+written in the body of this License.++  13. The Free Software Foundation may publish revised and/or new+versions of the Lesser General Public License from time to time.+Such new versions will be similar in spirit to the present version,+but may differ in detail to address new problems or concerns.++Each version is given a distinguishing version number.  If the Library+specifies a version number of this License which applies to it and+"any later version", you have the option of following the terms and+conditions either of that version or of any later version published by+the Free Software Foundation.  If the Library does not specify a+license version number, you may choose any version ever published by+the Free Software Foundation.++  14. If you wish to incorporate parts of the Library into other free+programs whose distribution conditions are incompatible with these,+write to the author to ask for permission.  For software which is+copyrighted by the Free Software Foundation, write to the Free+Software Foundation; we sometimes make exceptions for this.  Our+decision will be guided by the two goals of preserving the free status+of all derivatives of our free software and of promoting the sharing+and reuse of software generally.++                            NO WARRANTY++  15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO+WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW.+EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR+OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY+KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR+PURPOSE.  THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE+LIBRARY IS WITH YOU.  SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME+THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.++  16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN+WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY+AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU+FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR+CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE+LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING+RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A+FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF+SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH+DAMAGES.
+ Setup.hs view
@@ -0,0 +1,3 @@+#!/usr/bin/env runhaskell+import Distribution.Simple+main = defaultMain
+ gi-gstaudio.cabal view
@@ -0,0 +1,56 @@+-- Autogenerated, do not edit.+name:               gi-gstaudio+version:            0.1.6.13+synopsis:           GstAudio bindings+description:        Bindings for GstAudio, autogenerated by haskell-gi.+homepage:           https://github.com/haskell-gi/haskell-gi+license:            LGPL-2.1+license-file:       LICENSE+author:             Will Thompson, Iñaki García Etxebarria and Jonas Platte+maintainer:         Iñaki García Etxebarria (garetxe@gmail.com)+category:           Bindings+build-type:         Simple+cabal-version:      >=1.10++library+    default-language:   Haskell2010+    default-extensions: ScopedTypeVariables, CPP, OverloadedStrings, NegativeLiterals, ConstraintKinds, TypeFamilies, MultiParamTypeClasses, KindSignatures, FlexibleInstances, UndecidableInstances, DataKinds, FlexibleContexts+    other-extensions:   PatternSynonyms ViewPatterns+    ghc-options:        -fno-warn-unused-imports -fno-warn-warnings-deprecations+    exposed-modules:    GI.GstAudio.Types+                        GI.GstAudio+                        GI.GstAudio.Callbacks+                        GI.GstAudio.Constants+                        GI.GstAudio.Enums+                        GI.GstAudio.Flags+                        GI.GstAudio.Functions+                        GI.GstAudio.Interfaces+                        GI.GstAudio.Interfaces.StreamVolume+                        GI.GstAudio.Objects+                        GI.GstAudio.Objects.AudioBaseSink+                        GI.GstAudio.Objects.AudioBaseSrc+                        GI.GstAudio.Objects.AudioCdSrc+                        GI.GstAudio.Objects.AudioClock+                        GI.GstAudio.Objects.AudioDecoder+                        GI.GstAudio.Objects.AudioEncoder+                        GI.GstAudio.Objects.AudioFilter+                        GI.GstAudio.Objects.AudioRingBuffer+                        GI.GstAudio.Objects.AudioSink+                        GI.GstAudio.Objects.AudioSrc+                        GI.GstAudio.Structs+                        GI.GstAudio.Structs.AudioCdSrcTrack+                        GI.GstAudio.Structs.AudioDownmixMeta+                        GI.GstAudio.Structs.AudioFormatInfo+                        GI.GstAudio.Structs.AudioInfo+                        GI.GstAudio.Structs.AudioRingBufferSpec+    pkgconfig-depends:  gstreamer-audio-1.0 >= 1.6+    build-depends: base >= 4.7 && <5,+        haskell-gi-base >= 0.13 && < 1,+        gi-glib >= 0.2.46.13 && < 0.2.47,+        gi-gobject >= 0.2.46.13 && < 0.2.47,+        gi-gst >= 0.1.6.13 && < 0.1.7,+        gi-gstbase >= 0.1.6.13 && < 0.1.7,+        bytestring >= 0.10,+        containers >= 0.5,+        text >= 1.0,+        transformers >= 0.3