gi-gstbase-1.0.18: GI/GstBase/Structs/CollectData.hs
{- |
Copyright : Will Thompson, Iñaki García Etxebarria and Jonas Platte
License : LGPL-2.1
Maintainer : Iñaki García Etxebarria (inaki@blueleaf.cc)
Structure used by the collect_pads.
-}
#define ENABLE_OVERLOADING (MIN_VERSION_haskell_gi_overloading(1,0,0) \
&& !defined(__HADDOCK_VERSION__))
module GI.GstBase.Structs.CollectData
(
-- * Exported types
CollectData(..) ,
newZeroCollectData ,
noCollectData ,
-- * Properties
-- ** buffer #attr:buffer#
{- | currently queued buffer.
-}
clearCollectDataBuffer ,
#if ENABLE_OVERLOADING
collectData_buffer ,
#endif
getCollectDataBuffer ,
setCollectDataBuffer ,
-- ** collect #attr:collect#
{- | owner 'GI.GstBase.Objects.CollectPads.CollectPads'
-}
clearCollectDataCollect ,
#if ENABLE_OVERLOADING
collectData_collect ,
#endif
getCollectDataCollect ,
setCollectDataCollect ,
-- ** pad #attr:pad#
{- | 'GI.Gst.Objects.Pad.Pad' managed by this data
-}
clearCollectDataPad ,
#if ENABLE_OVERLOADING
collectData_pad ,
#endif
getCollectDataPad ,
setCollectDataPad ,
-- ** pos #attr:pos#
{- | position in the buffer
-}
#if ENABLE_OVERLOADING
collectData_pos ,
#endif
getCollectDataPos ,
setCollectDataPos ,
-- ** segment #attr:segment#
{- | last segment received.
-}
#if ENABLE_OVERLOADING
collectData_segment ,
#endif
getCollectDataSegment ,
) 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.Gst.Objects.Pad as Gst.Pad
import qualified GI.Gst.Structs.Buffer as Gst.Buffer
import qualified GI.Gst.Structs.Segment as Gst.Segment
import {-# SOURCE #-} qualified GI.GstBase.Objects.CollectPads as GstBase.CollectPads
-- | Memory-managed wrapper type.
newtype CollectData = CollectData (ManagedPtr CollectData)
instance WrappedPtr CollectData where
wrappedPtrCalloc = callocBytes 168
wrappedPtrCopy = \p -> withManagedPtr p (copyBytes 168 >=> wrapPtr CollectData)
wrappedPtrFree = Just ptr_to_g_free
-- | Construct a `CollectData` struct initialized to zero.
newZeroCollectData :: MonadIO m => m CollectData
newZeroCollectData = liftIO $ wrappedPtrCalloc >>= wrapPtr CollectData
instance tag ~ 'AttrSet => Constructible CollectData tag where
new _ attrs = do
o <- newZeroCollectData
GI.Attributes.set o attrs
return o
-- | A convenience alias for `Nothing` :: `Maybe` `CollectData`.
noCollectData :: Maybe CollectData
noCollectData = Nothing
{- |
Get the value of the “@collect@” field.
When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
@
'Data.GI.Base.Attributes.get' collectData #collect
@
-}
getCollectDataCollect :: MonadIO m => CollectData -> m (Maybe GstBase.CollectPads.CollectPads)
getCollectDataCollect s = liftIO $ withManagedPtr s $ \ptr -> do
val <- peek (ptr `plusPtr` 0) :: IO (Ptr GstBase.CollectPads.CollectPads)
result <- SP.convertIfNonNull val $ \val' -> do
val'' <- (newObject GstBase.CollectPads.CollectPads) val'
return val''
return result
{- |
Set the value of the “@collect@” field.
When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
@
'Data.GI.Base.Attributes.set' collectData [ #collect 'Data.GI.Base.Attributes.:=' value ]
@
-}
setCollectDataCollect :: MonadIO m => CollectData -> Ptr GstBase.CollectPads.CollectPads -> m ()
setCollectDataCollect s val = liftIO $ withManagedPtr s $ \ptr -> do
poke (ptr `plusPtr` 0) (val :: Ptr GstBase.CollectPads.CollectPads)
{- |
Set the value of the “@collect@” field to `Nothing`.
When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
@
'Data.GI.Base.Attributes.clear' #collect
@
-}
clearCollectDataCollect :: MonadIO m => CollectData -> m ()
clearCollectDataCollect s = liftIO $ withManagedPtr s $ \ptr -> do
poke (ptr `plusPtr` 0) (FP.nullPtr :: Ptr GstBase.CollectPads.CollectPads)
#if ENABLE_OVERLOADING
data CollectDataCollectFieldInfo
instance AttrInfo CollectDataCollectFieldInfo where
type AttrAllowedOps CollectDataCollectFieldInfo = '[ 'AttrSet, 'AttrGet, 'AttrClear]
type AttrSetTypeConstraint CollectDataCollectFieldInfo = (~) (Ptr GstBase.CollectPads.CollectPads)
type AttrBaseTypeConstraint CollectDataCollectFieldInfo = (~) CollectData
type AttrGetType CollectDataCollectFieldInfo = Maybe GstBase.CollectPads.CollectPads
type AttrLabel CollectDataCollectFieldInfo = "collect"
type AttrOrigin CollectDataCollectFieldInfo = CollectData
attrGet _ = getCollectDataCollect
attrSet _ = setCollectDataCollect
attrConstruct = undefined
attrClear _ = clearCollectDataCollect
collectData_collect :: AttrLabelProxy "collect"
collectData_collect = AttrLabelProxy
#endif
{- |
Get the value of the “@pad@” field.
When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
@
'Data.GI.Base.Attributes.get' collectData #pad
@
-}
getCollectDataPad :: MonadIO m => CollectData -> m (Maybe Gst.Pad.Pad)
getCollectDataPad s = liftIO $ withManagedPtr s $ \ptr -> do
val <- peek (ptr `plusPtr` 8) :: IO (Ptr Gst.Pad.Pad)
result <- SP.convertIfNonNull val $ \val' -> do
val'' <- (newObject Gst.Pad.Pad) val'
return val''
return result
{- |
Set the value of the “@pad@” field.
When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
@
'Data.GI.Base.Attributes.set' collectData [ #pad 'Data.GI.Base.Attributes.:=' value ]
@
-}
setCollectDataPad :: MonadIO m => CollectData -> Ptr Gst.Pad.Pad -> m ()
setCollectDataPad s val = liftIO $ withManagedPtr s $ \ptr -> do
poke (ptr `plusPtr` 8) (val :: Ptr Gst.Pad.Pad)
{- |
Set the value of the “@pad@” field to `Nothing`.
When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
@
'Data.GI.Base.Attributes.clear' #pad
@
-}
clearCollectDataPad :: MonadIO m => CollectData -> m ()
clearCollectDataPad s = liftIO $ withManagedPtr s $ \ptr -> do
poke (ptr `plusPtr` 8) (FP.nullPtr :: Ptr Gst.Pad.Pad)
#if ENABLE_OVERLOADING
data CollectDataPadFieldInfo
instance AttrInfo CollectDataPadFieldInfo where
type AttrAllowedOps CollectDataPadFieldInfo = '[ 'AttrSet, 'AttrGet, 'AttrClear]
type AttrSetTypeConstraint CollectDataPadFieldInfo = (~) (Ptr Gst.Pad.Pad)
type AttrBaseTypeConstraint CollectDataPadFieldInfo = (~) CollectData
type AttrGetType CollectDataPadFieldInfo = Maybe Gst.Pad.Pad
type AttrLabel CollectDataPadFieldInfo = "pad"
type AttrOrigin CollectDataPadFieldInfo = CollectData
attrGet _ = getCollectDataPad
attrSet _ = setCollectDataPad
attrConstruct = undefined
attrClear _ = clearCollectDataPad
collectData_pad :: AttrLabelProxy "pad"
collectData_pad = AttrLabelProxy
#endif
{- |
Get the value of the “@buffer@” field.
When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
@
'Data.GI.Base.Attributes.get' collectData #buffer
@
-}
getCollectDataBuffer :: MonadIO m => CollectData -> m (Maybe Gst.Buffer.Buffer)
getCollectDataBuffer s = liftIO $ withManagedPtr s $ \ptr -> do
val <- peek (ptr `plusPtr` 16) :: IO (Ptr Gst.Buffer.Buffer)
result <- SP.convertIfNonNull val $ \val' -> do
val'' <- (newBoxed Gst.Buffer.Buffer) val'
return val''
return result
{- |
Set the value of the “@buffer@” field.
When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
@
'Data.GI.Base.Attributes.set' collectData [ #buffer 'Data.GI.Base.Attributes.:=' value ]
@
-}
setCollectDataBuffer :: MonadIO m => CollectData -> Ptr Gst.Buffer.Buffer -> m ()
setCollectDataBuffer s val = liftIO $ withManagedPtr s $ \ptr -> do
poke (ptr `plusPtr` 16) (val :: Ptr Gst.Buffer.Buffer)
{- |
Set the value of the “@buffer@” field to `Nothing`.
When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
@
'Data.GI.Base.Attributes.clear' #buffer
@
-}
clearCollectDataBuffer :: MonadIO m => CollectData -> m ()
clearCollectDataBuffer s = liftIO $ withManagedPtr s $ \ptr -> do
poke (ptr `plusPtr` 16) (FP.nullPtr :: Ptr Gst.Buffer.Buffer)
#if ENABLE_OVERLOADING
data CollectDataBufferFieldInfo
instance AttrInfo CollectDataBufferFieldInfo where
type AttrAllowedOps CollectDataBufferFieldInfo = '[ 'AttrSet, 'AttrGet, 'AttrClear]
type AttrSetTypeConstraint CollectDataBufferFieldInfo = (~) (Ptr Gst.Buffer.Buffer)
type AttrBaseTypeConstraint CollectDataBufferFieldInfo = (~) CollectData
type AttrGetType CollectDataBufferFieldInfo = Maybe Gst.Buffer.Buffer
type AttrLabel CollectDataBufferFieldInfo = "buffer"
type AttrOrigin CollectDataBufferFieldInfo = CollectData
attrGet _ = getCollectDataBuffer
attrSet _ = setCollectDataBuffer
attrConstruct = undefined
attrClear _ = clearCollectDataBuffer
collectData_buffer :: AttrLabelProxy "buffer"
collectData_buffer = AttrLabelProxy
#endif
{- |
Get the value of the “@pos@” field.
When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
@
'Data.GI.Base.Attributes.get' collectData #pos
@
-}
getCollectDataPos :: MonadIO m => CollectData -> m Word32
getCollectDataPos s = liftIO $ withManagedPtr s $ \ptr -> do
val <- peek (ptr `plusPtr` 24) :: IO Word32
return val
{- |
Set the value of the “@pos@” field.
When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
@
'Data.GI.Base.Attributes.set' collectData [ #pos 'Data.GI.Base.Attributes.:=' value ]
@
-}
setCollectDataPos :: MonadIO m => CollectData -> Word32 -> m ()
setCollectDataPos s val = liftIO $ withManagedPtr s $ \ptr -> do
poke (ptr `plusPtr` 24) (val :: Word32)
#if ENABLE_OVERLOADING
data CollectDataPosFieldInfo
instance AttrInfo CollectDataPosFieldInfo where
type AttrAllowedOps CollectDataPosFieldInfo = '[ 'AttrSet, 'AttrGet]
type AttrSetTypeConstraint CollectDataPosFieldInfo = (~) Word32
type AttrBaseTypeConstraint CollectDataPosFieldInfo = (~) CollectData
type AttrGetType CollectDataPosFieldInfo = Word32
type AttrLabel CollectDataPosFieldInfo = "pos"
type AttrOrigin CollectDataPosFieldInfo = CollectData
attrGet _ = getCollectDataPos
attrSet _ = setCollectDataPos
attrConstruct = undefined
attrClear _ = undefined
collectData_pos :: AttrLabelProxy "pos"
collectData_pos = AttrLabelProxy
#endif
{- |
Get the value of the “@segment@” field.
When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
@
'Data.GI.Base.Attributes.get' collectData #segment
@
-}
getCollectDataSegment :: MonadIO m => CollectData -> m Gst.Segment.Segment
getCollectDataSegment s = liftIO $ withManagedPtr s $ \ptr -> do
let val = ptr `plusPtr` 32 :: (Ptr Gst.Segment.Segment)
val' <- (newBoxed Gst.Segment.Segment) val
return val'
#if ENABLE_OVERLOADING
data CollectDataSegmentFieldInfo
instance AttrInfo CollectDataSegmentFieldInfo where
type AttrAllowedOps CollectDataSegmentFieldInfo = '[ 'AttrGet]
type AttrSetTypeConstraint CollectDataSegmentFieldInfo = (~) (Ptr Gst.Segment.Segment)
type AttrBaseTypeConstraint CollectDataSegmentFieldInfo = (~) CollectData
type AttrGetType CollectDataSegmentFieldInfo = Gst.Segment.Segment
type AttrLabel CollectDataSegmentFieldInfo = "segment"
type AttrOrigin CollectDataSegmentFieldInfo = CollectData
attrGet _ = getCollectDataSegment
attrSet _ = undefined
attrConstruct = undefined
attrClear _ = undefined
collectData_segment :: AttrLabelProxy "segment"
collectData_segment = AttrLabelProxy
#endif
#if ENABLE_OVERLOADING
instance O.HasAttributeList CollectData
type instance O.AttributeList CollectData = CollectDataAttributeList
type CollectDataAttributeList = ('[ '("collect", CollectDataCollectFieldInfo), '("pad", CollectDataPadFieldInfo), '("buffer", CollectDataBufferFieldInfo), '("pos", CollectDataPosFieldInfo), '("segment", CollectDataSegmentFieldInfo)] :: [(Symbol, *)])
#endif
#if ENABLE_OVERLOADING
type family ResolveCollectDataMethod (t :: Symbol) (o :: *) :: * where
ResolveCollectDataMethod l o = O.MethodResolutionFailed l o
instance (info ~ ResolveCollectDataMethod t CollectData, O.MethodInfo info CollectData p) => OL.IsLabel t (CollectData -> 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