{- | Copyright : Will Thompson, Iñaki García Etxebarria and Jonas Platte License : LGPL-2.1 Maintainer : Iñaki García Etxebarria (inaki@blueleaf.cc) Information for an audio format. -} #define ENABLE_OVERLOADING (MIN_VERSION_haskell_gi_overloading(1,0,0) \ && !defined(__HADDOCK_VERSION__)) module GI.GstAudio.Structs.AudioFormatInfo ( -- * Exported types AudioFormatInfo(..) , newZeroAudioFormatInfo , noAudioFormatInfo , -- * Properties -- ** depth #attr:depth# {- | amount of valid bits in /@width@/ -} #if ENABLE_OVERLOADING audioFormatInfo_depth , #endif getAudioFormatInfoDepth , setAudioFormatInfoDepth , -- ** description #attr:description# {- | user readable description of the format -} #if ENABLE_OVERLOADING audioFormatInfo_description , #endif clearAudioFormatInfoDescription , getAudioFormatInfoDescription , setAudioFormatInfoDescription , -- ** endianness #attr:endianness# {- | the endianness -} #if ENABLE_OVERLOADING audioFormatInfo_endianness , #endif getAudioFormatInfoEndianness , setAudioFormatInfoEndianness , -- ** flags #attr:flags# {- | 'GI.GstAudio.Flags.AudioFormatFlags' -} #if ENABLE_OVERLOADING audioFormatInfo_flags , #endif getAudioFormatInfoFlags , setAudioFormatInfoFlags , -- ** format #attr:format# {- | 'GI.GstAudio.Enums.AudioFormat' -} #if ENABLE_OVERLOADING audioFormatInfo_format , #endif getAudioFormatInfoFormat , setAudioFormatInfoFormat , -- ** name #attr:name# {- | string representation of the format -} #if ENABLE_OVERLOADING audioFormatInfo_name , #endif clearAudioFormatInfoName , getAudioFormatInfoName , setAudioFormatInfoName , -- ** packFunc #attr:packFunc# {- | function to pack samples -} #if ENABLE_OVERLOADING audioFormatInfo_packFunc , #endif clearAudioFormatInfoPackFunc , getAudioFormatInfoPackFunc , setAudioFormatInfoPackFunc , -- ** unpackFormat #attr:unpackFormat# {- | the format of the unpacked samples -} #if ENABLE_OVERLOADING audioFormatInfo_unpackFormat , #endif getAudioFormatInfoUnpackFormat , setAudioFormatInfoUnpackFormat , -- ** unpackFunc #attr:unpackFunc# {- | function to unpack samples -} #if ENABLE_OVERLOADING audioFormatInfo_unpackFunc , #endif clearAudioFormatInfoUnpackFunc , getAudioFormatInfoUnpackFunc , setAudioFormatInfoUnpackFunc , -- ** width #attr:width# {- | amount of bits used for one sample -} #if ENABLE_OVERLOADING audioFormatInfo_width , #endif getAudioFormatInfoWidth , setAudioFormatInfoWidth , ) where import Data.GI.Base.ShortPrelude import qualified Data.GI.Base.ShortPrelude as SP import qualified Data.GI.Base.Overloading as O import qualified Prelude as P import qualified Data.GI.Base.Attributes as GI.Attributes import qualified Data.GI.Base.ManagedPtr as B.ManagedPtr import qualified Data.GI.Base.GClosure as B.GClosure import qualified Data.GI.Base.GError as B.GError import qualified Data.GI.Base.GVariant as B.GVariant import qualified Data.GI.Base.GValue as B.GValue import qualified Data.GI.Base.GParamSpec as B.GParamSpec import qualified Data.GI.Base.CallStack as B.CallStack import qualified Data.GI.Base.Properties as B.Properties import qualified Data.Text as T import qualified Data.ByteString.Char8 as B import qualified Data.Map as Map import qualified Foreign.Ptr as FP import qualified GHC.OverloadedLabels as OL import qualified GI.GstAudio.Callbacks as GstAudio.Callbacks import {-# SOURCE #-} qualified GI.GstAudio.Enums as GstAudio.Enums import {-# SOURCE #-} qualified GI.GstAudio.Flags as GstAudio.Flags -- | Memory-managed wrapper type. newtype AudioFormatInfo = AudioFormatInfo (ManagedPtr AudioFormatInfo) instance WrappedPtr AudioFormatInfo where wrappedPtrCalloc = callocBytes 104 wrappedPtrCopy = \p -> withManagedPtr p (copyBytes 104 >=> wrapPtr AudioFormatInfo) wrappedPtrFree = Just ptr_to_g_free -- | Construct a `AudioFormatInfo` struct initialized to zero. newZeroAudioFormatInfo :: MonadIO m => m AudioFormatInfo newZeroAudioFormatInfo = liftIO $ wrappedPtrCalloc >>= wrapPtr AudioFormatInfo instance tag ~ 'AttrSet => Constructible AudioFormatInfo tag where new _ attrs = do o <- newZeroAudioFormatInfo GI.Attributes.set o attrs return o -- | A convenience alias for `Nothing` :: `Maybe` `AudioFormatInfo`. noAudioFormatInfo :: Maybe AudioFormatInfo noAudioFormatInfo = Nothing {- | Get the value of the “@format@” field. When is enabled, this is equivalent to @ 'Data.GI.Base.Attributes.get' audioFormatInfo #format @ -} getAudioFormatInfoFormat :: MonadIO m => AudioFormatInfo -> m GstAudio.Enums.AudioFormat getAudioFormatInfoFormat s = liftIO $ withManagedPtr s $ \ptr -> do val <- peek (ptr `plusPtr` 0) :: IO CUInt let val' = (toEnum . fromIntegral) val return val' {- | Set the value of the “@format@” field. When is enabled, this is equivalent to @ 'Data.GI.Base.Attributes.set' audioFormatInfo [ #format 'Data.GI.Base.Attributes.:=' value ] @ -} setAudioFormatInfoFormat :: MonadIO m => AudioFormatInfo -> GstAudio.Enums.AudioFormat -> m () setAudioFormatInfoFormat s val = liftIO $ withManagedPtr s $ \ptr -> do let val' = (fromIntegral . fromEnum) val poke (ptr `plusPtr` 0) (val' :: CUInt) #if ENABLE_OVERLOADING data AudioFormatInfoFormatFieldInfo instance AttrInfo AudioFormatInfoFormatFieldInfo where type AttrAllowedOps AudioFormatInfoFormatFieldInfo = '[ 'AttrSet, 'AttrGet] type AttrSetTypeConstraint AudioFormatInfoFormatFieldInfo = (~) GstAudio.Enums.AudioFormat type AttrBaseTypeConstraint AudioFormatInfoFormatFieldInfo = (~) AudioFormatInfo type AttrGetType AudioFormatInfoFormatFieldInfo = GstAudio.Enums.AudioFormat type AttrLabel AudioFormatInfoFormatFieldInfo = "format" type AttrOrigin AudioFormatInfoFormatFieldInfo = AudioFormatInfo attrGet _ = getAudioFormatInfoFormat attrSet _ = setAudioFormatInfoFormat attrConstruct = undefined attrClear _ = undefined audioFormatInfo_format :: AttrLabelProxy "format" audioFormatInfo_format = AttrLabelProxy #endif {- | Get the value of the “@name@” field. When is enabled, this is equivalent to @ 'Data.GI.Base.Attributes.get' audioFormatInfo #name @ -} getAudioFormatInfoName :: MonadIO m => AudioFormatInfo -> m (Maybe T.Text) getAudioFormatInfoName s = liftIO $ withManagedPtr s $ \ptr -> do val <- peek (ptr `plusPtr` 8) :: IO CString result <- SP.convertIfNonNull val $ \val' -> do val'' <- cstringToText val' return val'' return result {- | Set the value of the “@name@” field. When is enabled, this is equivalent to @ 'Data.GI.Base.Attributes.set' audioFormatInfo [ #name 'Data.GI.Base.Attributes.:=' value ] @ -} setAudioFormatInfoName :: MonadIO m => AudioFormatInfo -> CString -> m () setAudioFormatInfoName s val = liftIO $ withManagedPtr s $ \ptr -> do poke (ptr `plusPtr` 8) (val :: CString) {- | Set the value of the “@name@” field to `Nothing`. When is enabled, this is equivalent to @ 'Data.GI.Base.Attributes.clear' #name @ -} clearAudioFormatInfoName :: MonadIO m => AudioFormatInfo -> m () clearAudioFormatInfoName s = liftIO $ withManagedPtr s $ \ptr -> do poke (ptr `plusPtr` 8) (FP.nullPtr :: CString) #if ENABLE_OVERLOADING data AudioFormatInfoNameFieldInfo instance AttrInfo AudioFormatInfoNameFieldInfo where type AttrAllowedOps AudioFormatInfoNameFieldInfo = '[ 'AttrSet, 'AttrGet, 'AttrClear] type AttrSetTypeConstraint AudioFormatInfoNameFieldInfo = (~) CString type AttrBaseTypeConstraint AudioFormatInfoNameFieldInfo = (~) AudioFormatInfo type AttrGetType AudioFormatInfoNameFieldInfo = Maybe T.Text type AttrLabel AudioFormatInfoNameFieldInfo = "name" type AttrOrigin AudioFormatInfoNameFieldInfo = AudioFormatInfo attrGet _ = getAudioFormatInfoName attrSet _ = setAudioFormatInfoName attrConstruct = undefined attrClear _ = clearAudioFormatInfoName audioFormatInfo_name :: AttrLabelProxy "name" audioFormatInfo_name = AttrLabelProxy #endif {- | Get the value of the “@description@” field. When is enabled, this is equivalent to @ 'Data.GI.Base.Attributes.get' audioFormatInfo #description @ -} getAudioFormatInfoDescription :: MonadIO m => AudioFormatInfo -> m (Maybe T.Text) getAudioFormatInfoDescription s = liftIO $ withManagedPtr s $ \ptr -> do val <- peek (ptr `plusPtr` 16) :: IO CString result <- SP.convertIfNonNull val $ \val' -> do val'' <- cstringToText val' return val'' return result {- | Set the value of the “@description@” field. When is enabled, this is equivalent to @ 'Data.GI.Base.Attributes.set' audioFormatInfo [ #description 'Data.GI.Base.Attributes.:=' value ] @ -} setAudioFormatInfoDescription :: MonadIO m => AudioFormatInfo -> CString -> m () setAudioFormatInfoDescription s val = liftIO $ withManagedPtr s $ \ptr -> do poke (ptr `plusPtr` 16) (val :: CString) {- | Set the value of the “@description@” field to `Nothing`. When is enabled, this is equivalent to @ 'Data.GI.Base.Attributes.clear' #description @ -} clearAudioFormatInfoDescription :: MonadIO m => AudioFormatInfo -> m () clearAudioFormatInfoDescription s = liftIO $ withManagedPtr s $ \ptr -> do poke (ptr `plusPtr` 16) (FP.nullPtr :: CString) #if ENABLE_OVERLOADING data AudioFormatInfoDescriptionFieldInfo instance AttrInfo AudioFormatInfoDescriptionFieldInfo where type AttrAllowedOps AudioFormatInfoDescriptionFieldInfo = '[ 'AttrSet, 'AttrGet, 'AttrClear] type AttrSetTypeConstraint AudioFormatInfoDescriptionFieldInfo = (~) CString type AttrBaseTypeConstraint AudioFormatInfoDescriptionFieldInfo = (~) AudioFormatInfo type AttrGetType AudioFormatInfoDescriptionFieldInfo = Maybe T.Text type AttrLabel AudioFormatInfoDescriptionFieldInfo = "description" type AttrOrigin AudioFormatInfoDescriptionFieldInfo = AudioFormatInfo attrGet _ = getAudioFormatInfoDescription attrSet _ = setAudioFormatInfoDescription attrConstruct = undefined attrClear _ = clearAudioFormatInfoDescription audioFormatInfo_description :: AttrLabelProxy "description" audioFormatInfo_description = AttrLabelProxy #endif {- | Get the value of the “@flags@” field. When is enabled, this is equivalent to @ 'Data.GI.Base.Attributes.get' audioFormatInfo #flags @ -} getAudioFormatInfoFlags :: MonadIO m => AudioFormatInfo -> m [GstAudio.Flags.AudioFormatFlags] getAudioFormatInfoFlags s = liftIO $ withManagedPtr s $ \ptr -> do val <- peek (ptr `plusPtr` 24) :: IO CUInt let val' = wordToGFlags val return val' {- | Set the value of the “@flags@” field. When is enabled, this is equivalent to @ 'Data.GI.Base.Attributes.set' audioFormatInfo [ #flags 'Data.GI.Base.Attributes.:=' value ] @ -} setAudioFormatInfoFlags :: MonadIO m => AudioFormatInfo -> [GstAudio.Flags.AudioFormatFlags] -> m () setAudioFormatInfoFlags s val = liftIO $ withManagedPtr s $ \ptr -> do let val' = gflagsToWord val poke (ptr `plusPtr` 24) (val' :: CUInt) #if ENABLE_OVERLOADING data AudioFormatInfoFlagsFieldInfo instance AttrInfo AudioFormatInfoFlagsFieldInfo where type AttrAllowedOps AudioFormatInfoFlagsFieldInfo = '[ 'AttrSet, 'AttrGet] type AttrSetTypeConstraint AudioFormatInfoFlagsFieldInfo = (~) [GstAudio.Flags.AudioFormatFlags] type AttrBaseTypeConstraint AudioFormatInfoFlagsFieldInfo = (~) AudioFormatInfo type AttrGetType AudioFormatInfoFlagsFieldInfo = [GstAudio.Flags.AudioFormatFlags] type AttrLabel AudioFormatInfoFlagsFieldInfo = "flags" type AttrOrigin AudioFormatInfoFlagsFieldInfo = AudioFormatInfo attrGet _ = getAudioFormatInfoFlags attrSet _ = setAudioFormatInfoFlags attrConstruct = undefined attrClear _ = undefined audioFormatInfo_flags :: AttrLabelProxy "flags" audioFormatInfo_flags = AttrLabelProxy #endif {- | Get the value of the “@endianness@” field. When is enabled, this is equivalent to @ 'Data.GI.Base.Attributes.get' audioFormatInfo #endianness @ -} getAudioFormatInfoEndianness :: MonadIO m => AudioFormatInfo -> m Int32 getAudioFormatInfoEndianness s = liftIO $ withManagedPtr s $ \ptr -> do val <- peek (ptr `plusPtr` 28) :: IO Int32 return val {- | Set the value of the “@endianness@” field. When is enabled, this is equivalent to @ 'Data.GI.Base.Attributes.set' audioFormatInfo [ #endianness 'Data.GI.Base.Attributes.:=' value ] @ -} setAudioFormatInfoEndianness :: MonadIO m => AudioFormatInfo -> Int32 -> m () setAudioFormatInfoEndianness s val = liftIO $ withManagedPtr s $ \ptr -> do poke (ptr `plusPtr` 28) (val :: Int32) #if ENABLE_OVERLOADING data AudioFormatInfoEndiannessFieldInfo instance AttrInfo AudioFormatInfoEndiannessFieldInfo where type AttrAllowedOps AudioFormatInfoEndiannessFieldInfo = '[ 'AttrSet, 'AttrGet] type AttrSetTypeConstraint AudioFormatInfoEndiannessFieldInfo = (~) Int32 type AttrBaseTypeConstraint AudioFormatInfoEndiannessFieldInfo = (~) AudioFormatInfo type AttrGetType AudioFormatInfoEndiannessFieldInfo = Int32 type AttrLabel AudioFormatInfoEndiannessFieldInfo = "endianness" type AttrOrigin AudioFormatInfoEndiannessFieldInfo = AudioFormatInfo attrGet _ = getAudioFormatInfoEndianness attrSet _ = setAudioFormatInfoEndianness attrConstruct = undefined attrClear _ = undefined audioFormatInfo_endianness :: AttrLabelProxy "endianness" audioFormatInfo_endianness = AttrLabelProxy #endif {- | Get the value of the “@width@” field. When is enabled, this is equivalent to @ 'Data.GI.Base.Attributes.get' audioFormatInfo #width @ -} getAudioFormatInfoWidth :: MonadIO m => AudioFormatInfo -> m Int32 getAudioFormatInfoWidth s = liftIO $ withManagedPtr s $ \ptr -> do val <- peek (ptr `plusPtr` 32) :: IO Int32 return val {- | Set the value of the “@width@” field. When is enabled, this is equivalent to @ 'Data.GI.Base.Attributes.set' audioFormatInfo [ #width 'Data.GI.Base.Attributes.:=' value ] @ -} setAudioFormatInfoWidth :: MonadIO m => AudioFormatInfo -> Int32 -> m () setAudioFormatInfoWidth s val = liftIO $ withManagedPtr s $ \ptr -> do poke (ptr `plusPtr` 32) (val :: Int32) #if ENABLE_OVERLOADING data AudioFormatInfoWidthFieldInfo instance AttrInfo AudioFormatInfoWidthFieldInfo where type AttrAllowedOps AudioFormatInfoWidthFieldInfo = '[ 'AttrSet, 'AttrGet] type AttrSetTypeConstraint AudioFormatInfoWidthFieldInfo = (~) Int32 type AttrBaseTypeConstraint AudioFormatInfoWidthFieldInfo = (~) AudioFormatInfo type AttrGetType AudioFormatInfoWidthFieldInfo = Int32 type AttrLabel AudioFormatInfoWidthFieldInfo = "width" type AttrOrigin AudioFormatInfoWidthFieldInfo = AudioFormatInfo attrGet _ = getAudioFormatInfoWidth attrSet _ = setAudioFormatInfoWidth attrConstruct = undefined attrClear _ = undefined audioFormatInfo_width :: AttrLabelProxy "width" audioFormatInfo_width = AttrLabelProxy #endif {- | Get the value of the “@depth@” field. When is enabled, this is equivalent to @ 'Data.GI.Base.Attributes.get' audioFormatInfo #depth @ -} getAudioFormatInfoDepth :: MonadIO m => AudioFormatInfo -> m Int32 getAudioFormatInfoDepth s = liftIO $ withManagedPtr s $ \ptr -> do val <- peek (ptr `plusPtr` 36) :: IO Int32 return val {- | Set the value of the “@depth@” field. When is enabled, this is equivalent to @ 'Data.GI.Base.Attributes.set' audioFormatInfo [ #depth 'Data.GI.Base.Attributes.:=' value ] @ -} setAudioFormatInfoDepth :: MonadIO m => AudioFormatInfo -> Int32 -> m () setAudioFormatInfoDepth s val = liftIO $ withManagedPtr s $ \ptr -> do poke (ptr `plusPtr` 36) (val :: Int32) #if ENABLE_OVERLOADING data AudioFormatInfoDepthFieldInfo instance AttrInfo AudioFormatInfoDepthFieldInfo where type AttrAllowedOps AudioFormatInfoDepthFieldInfo = '[ 'AttrSet, 'AttrGet] type AttrSetTypeConstraint AudioFormatInfoDepthFieldInfo = (~) Int32 type AttrBaseTypeConstraint AudioFormatInfoDepthFieldInfo = (~) AudioFormatInfo type AttrGetType AudioFormatInfoDepthFieldInfo = Int32 type AttrLabel AudioFormatInfoDepthFieldInfo = "depth" type AttrOrigin AudioFormatInfoDepthFieldInfo = AudioFormatInfo attrGet _ = getAudioFormatInfoDepth attrSet _ = setAudioFormatInfoDepth attrConstruct = undefined attrClear _ = undefined audioFormatInfo_depth :: AttrLabelProxy "depth" audioFormatInfo_depth = AttrLabelProxy #endif -- XXX Skipped attribute for "AudioFormatInfo:silence" :: Not implemented: "Don't know how to unpack C array of type TCArray False 8 (-1) (TBasicType TUInt8)" {- | Get the value of the “@unpack_format@” field. When is enabled, this is equivalent to @ 'Data.GI.Base.Attributes.get' audioFormatInfo #unpackFormat @ -} getAudioFormatInfoUnpackFormat :: MonadIO m => AudioFormatInfo -> m GstAudio.Enums.AudioFormat getAudioFormatInfoUnpackFormat s = liftIO $ withManagedPtr s $ \ptr -> do val <- peek (ptr `plusPtr` 48) :: IO CUInt let val' = (toEnum . fromIntegral) val return val' {- | Set the value of the “@unpack_format@” field. When is enabled, this is equivalent to @ 'Data.GI.Base.Attributes.set' audioFormatInfo [ #unpackFormat 'Data.GI.Base.Attributes.:=' value ] @ -} setAudioFormatInfoUnpackFormat :: MonadIO m => AudioFormatInfo -> GstAudio.Enums.AudioFormat -> m () setAudioFormatInfoUnpackFormat s val = liftIO $ withManagedPtr s $ \ptr -> do let val' = (fromIntegral . fromEnum) val poke (ptr `plusPtr` 48) (val' :: CUInt) #if ENABLE_OVERLOADING data AudioFormatInfoUnpackFormatFieldInfo instance AttrInfo AudioFormatInfoUnpackFormatFieldInfo where type AttrAllowedOps AudioFormatInfoUnpackFormatFieldInfo = '[ 'AttrSet, 'AttrGet] type AttrSetTypeConstraint AudioFormatInfoUnpackFormatFieldInfo = (~) GstAudio.Enums.AudioFormat type AttrBaseTypeConstraint AudioFormatInfoUnpackFormatFieldInfo = (~) AudioFormatInfo type AttrGetType AudioFormatInfoUnpackFormatFieldInfo = GstAudio.Enums.AudioFormat type AttrLabel AudioFormatInfoUnpackFormatFieldInfo = "unpack_format" type AttrOrigin AudioFormatInfoUnpackFormatFieldInfo = AudioFormatInfo attrGet _ = getAudioFormatInfoUnpackFormat attrSet _ = setAudioFormatInfoUnpackFormat attrConstruct = undefined attrClear _ = undefined audioFormatInfo_unpackFormat :: AttrLabelProxy "unpackFormat" audioFormatInfo_unpackFormat = AttrLabelProxy #endif {- | Get the value of the “@unpack_func@” field. When is enabled, this is equivalent to @ 'Data.GI.Base.Attributes.get' audioFormatInfo #unpackFunc @ -} getAudioFormatInfoUnpackFunc :: MonadIO m => AudioFormatInfo -> m (Maybe GstAudio.Callbacks.AudioFormatUnpack) getAudioFormatInfoUnpackFunc s = liftIO $ withManagedPtr s $ \ptr -> do val <- peek (ptr `plusPtr` 56) :: IO (FunPtr GstAudio.Callbacks.C_AudioFormatUnpack) result <- SP.convertFunPtrIfNonNull val $ \val' -> do let val'' = GstAudio.Callbacks.dynamic_AudioFormatUnpack val' return val'' return result {- | Set the value of the “@unpack_func@” field. When is enabled, this is equivalent to @ 'Data.GI.Base.Attributes.set' audioFormatInfo [ #unpackFunc 'Data.GI.Base.Attributes.:=' value ] @ -} setAudioFormatInfoUnpackFunc :: MonadIO m => AudioFormatInfo -> FunPtr GstAudio.Callbacks.C_AudioFormatUnpack -> m () setAudioFormatInfoUnpackFunc s val = liftIO $ withManagedPtr s $ \ptr -> do poke (ptr `plusPtr` 56) (val :: FunPtr GstAudio.Callbacks.C_AudioFormatUnpack) {- | Set the value of the “@unpack_func@” field to `Nothing`. When is enabled, this is equivalent to @ 'Data.GI.Base.Attributes.clear' #unpackFunc @ -} clearAudioFormatInfoUnpackFunc :: MonadIO m => AudioFormatInfo -> m () clearAudioFormatInfoUnpackFunc s = liftIO $ withManagedPtr s $ \ptr -> do poke (ptr `plusPtr` 56) (FP.nullFunPtr :: FunPtr GstAudio.Callbacks.C_AudioFormatUnpack) #if ENABLE_OVERLOADING data AudioFormatInfoUnpackFuncFieldInfo instance AttrInfo AudioFormatInfoUnpackFuncFieldInfo where type AttrAllowedOps AudioFormatInfoUnpackFuncFieldInfo = '[ 'AttrSet, 'AttrGet, 'AttrClear] type AttrSetTypeConstraint AudioFormatInfoUnpackFuncFieldInfo = (~) (FunPtr GstAudio.Callbacks.C_AudioFormatUnpack) type AttrBaseTypeConstraint AudioFormatInfoUnpackFuncFieldInfo = (~) AudioFormatInfo type AttrGetType AudioFormatInfoUnpackFuncFieldInfo = Maybe GstAudio.Callbacks.AudioFormatUnpack type AttrLabel AudioFormatInfoUnpackFuncFieldInfo = "unpack_func" type AttrOrigin AudioFormatInfoUnpackFuncFieldInfo = AudioFormatInfo attrGet _ = getAudioFormatInfoUnpackFunc attrSet _ = setAudioFormatInfoUnpackFunc attrConstruct = undefined attrClear _ = clearAudioFormatInfoUnpackFunc audioFormatInfo_unpackFunc :: AttrLabelProxy "unpackFunc" audioFormatInfo_unpackFunc = AttrLabelProxy #endif {- | Get the value of the “@pack_func@” field. When is enabled, this is equivalent to @ 'Data.GI.Base.Attributes.get' audioFormatInfo #packFunc @ -} getAudioFormatInfoPackFunc :: MonadIO m => AudioFormatInfo -> m (Maybe GstAudio.Callbacks.AudioFormatPack) getAudioFormatInfoPackFunc s = liftIO $ withManagedPtr s $ \ptr -> do val <- peek (ptr `plusPtr` 64) :: IO (FunPtr GstAudio.Callbacks.C_AudioFormatPack) result <- SP.convertFunPtrIfNonNull val $ \val' -> do let val'' = GstAudio.Callbacks.dynamic_AudioFormatPack val' return val'' return result {- | Set the value of the “@pack_func@” field. When is enabled, this is equivalent to @ 'Data.GI.Base.Attributes.set' audioFormatInfo [ #packFunc 'Data.GI.Base.Attributes.:=' value ] @ -} setAudioFormatInfoPackFunc :: MonadIO m => AudioFormatInfo -> FunPtr GstAudio.Callbacks.C_AudioFormatPack -> m () setAudioFormatInfoPackFunc s val = liftIO $ withManagedPtr s $ \ptr -> do poke (ptr `plusPtr` 64) (val :: FunPtr GstAudio.Callbacks.C_AudioFormatPack) {- | Set the value of the “@pack_func@” field to `Nothing`. When is enabled, this is equivalent to @ 'Data.GI.Base.Attributes.clear' #packFunc @ -} clearAudioFormatInfoPackFunc :: MonadIO m => AudioFormatInfo -> m () clearAudioFormatInfoPackFunc s = liftIO $ withManagedPtr s $ \ptr -> do poke (ptr `plusPtr` 64) (FP.nullFunPtr :: FunPtr GstAudio.Callbacks.C_AudioFormatPack) #if ENABLE_OVERLOADING data AudioFormatInfoPackFuncFieldInfo instance AttrInfo AudioFormatInfoPackFuncFieldInfo where type AttrAllowedOps AudioFormatInfoPackFuncFieldInfo = '[ 'AttrSet, 'AttrGet, 'AttrClear] type AttrSetTypeConstraint AudioFormatInfoPackFuncFieldInfo = (~) (FunPtr GstAudio.Callbacks.C_AudioFormatPack) type AttrBaseTypeConstraint AudioFormatInfoPackFuncFieldInfo = (~) AudioFormatInfo type AttrGetType AudioFormatInfoPackFuncFieldInfo = Maybe GstAudio.Callbacks.AudioFormatPack type AttrLabel AudioFormatInfoPackFuncFieldInfo = "pack_func" type AttrOrigin AudioFormatInfoPackFuncFieldInfo = AudioFormatInfo attrGet _ = getAudioFormatInfoPackFunc attrSet _ = setAudioFormatInfoPackFunc attrConstruct = undefined attrClear _ = clearAudioFormatInfoPackFunc audioFormatInfo_packFunc :: AttrLabelProxy "packFunc" audioFormatInfo_packFunc = AttrLabelProxy #endif #if ENABLE_OVERLOADING instance O.HasAttributeList AudioFormatInfo type instance O.AttributeList AudioFormatInfo = AudioFormatInfoAttributeList type AudioFormatInfoAttributeList = ('[ '("format", AudioFormatInfoFormatFieldInfo), '("name", AudioFormatInfoNameFieldInfo), '("description", AudioFormatInfoDescriptionFieldInfo), '("flags", AudioFormatInfoFlagsFieldInfo), '("endianness", AudioFormatInfoEndiannessFieldInfo), '("width", AudioFormatInfoWidthFieldInfo), '("depth", AudioFormatInfoDepthFieldInfo), '("unpackFormat", AudioFormatInfoUnpackFormatFieldInfo), '("unpackFunc", AudioFormatInfoUnpackFuncFieldInfo), '("packFunc", AudioFormatInfoPackFuncFieldInfo)] :: [(Symbol, *)]) #endif #if ENABLE_OVERLOADING type family ResolveAudioFormatInfoMethod (t :: Symbol) (o :: *) :: * where ResolveAudioFormatInfoMethod l o = O.MethodResolutionFailed l o instance (info ~ ResolveAudioFormatInfoMethod t AudioFormatInfo, O.MethodInfo info AudioFormatInfo p) => OL.IsLabel t (AudioFormatInfo -> p) where #if MIN_VERSION_base(4,10,0) fromLabel = O.overloadedMethod (O.MethodProxy :: O.MethodProxy info) #else fromLabel _ = O.overloadedMethod (O.MethodProxy :: O.MethodProxy info) #endif #endif