module GI.Gst.Structs.MetaTransformCopy
(
MetaTransformCopy(..) ,
newZeroMetaTransformCopy ,
noMetaTransformCopy ,
getMetaTransformCopyOffset ,
metaTransformCopy_offset ,
setMetaTransformCopyOffset ,
getMetaTransformCopyRegion ,
metaTransformCopy_region ,
setMetaTransformCopyRegion ,
getMetaTransformCopySize ,
metaTransformCopy_size ,
setMetaTransformCopySize ,
) where
import Data.GI.Base.ShortPrelude
import qualified Data.GI.Base.ShortPrelude as SP
import qualified Data.GI.Base.Overloading as O
import qualified Prelude as P
import qualified Data.GI.Base.Attributes as GI.Attributes
import qualified Data.GI.Base.ManagedPtr as B.ManagedPtr
import qualified Data.GI.Base.GError as B.GError
import qualified Data.GI.Base.GVariant as B.GVariant
import qualified Data.GI.Base.GParamSpec as B.GParamSpec
import qualified Data.GI.Base.CallStack as B.CallStack
import qualified Data.Text as T
import qualified Data.ByteString.Char8 as B
import qualified Data.Map as Map
import qualified Foreign.Ptr as FP
newtype MetaTransformCopy = MetaTransformCopy (ManagedPtr MetaTransformCopy)
instance WrappedPtr MetaTransformCopy where
wrappedPtrCalloc = callocBytes 24
wrappedPtrCopy = \p -> withManagedPtr p (copyBytes 24 >=> wrapPtr MetaTransformCopy)
wrappedPtrFree = Just ptr_to_g_free
newZeroMetaTransformCopy :: MonadIO m => m MetaTransformCopy
newZeroMetaTransformCopy = liftIO $ wrappedPtrCalloc >>= wrapPtr MetaTransformCopy
instance tag ~ 'AttrSet => Constructible MetaTransformCopy tag where
new _ attrs = do
o <- newZeroMetaTransformCopy
GI.Attributes.set o attrs
return o
noMetaTransformCopy :: Maybe MetaTransformCopy
noMetaTransformCopy = Nothing
getMetaTransformCopyRegion :: MonadIO m => MetaTransformCopy -> m Bool
getMetaTransformCopyRegion s = liftIO $ withManagedPtr s $ \ptr -> do
val <- peek (ptr `plusPtr` 0) :: IO CInt
let val' = (/= 0) val
return val'
setMetaTransformCopyRegion :: MonadIO m => MetaTransformCopy -> Bool -> m ()
setMetaTransformCopyRegion s val = liftIO $ withManagedPtr s $ \ptr -> do
let val' = (fromIntegral . fromEnum) val
poke (ptr `plusPtr` 0) (val' :: CInt)
data MetaTransformCopyRegionFieldInfo
instance AttrInfo MetaTransformCopyRegionFieldInfo where
type AttrAllowedOps MetaTransformCopyRegionFieldInfo = '[ 'AttrSet, 'AttrGet]
type AttrSetTypeConstraint MetaTransformCopyRegionFieldInfo = (~) Bool
type AttrBaseTypeConstraint MetaTransformCopyRegionFieldInfo = (~) MetaTransformCopy
type AttrGetType MetaTransformCopyRegionFieldInfo = Bool
type AttrLabel MetaTransformCopyRegionFieldInfo = "region"
type AttrOrigin MetaTransformCopyRegionFieldInfo = MetaTransformCopy
attrGet _ = getMetaTransformCopyRegion
attrSet _ = setMetaTransformCopyRegion
attrConstruct = undefined
attrClear _ = undefined
metaTransformCopy_region :: AttrLabelProxy "region"
metaTransformCopy_region = AttrLabelProxy
getMetaTransformCopyOffset :: MonadIO m => MetaTransformCopy -> m Word64
getMetaTransformCopyOffset s = liftIO $ withManagedPtr s $ \ptr -> do
val <- peek (ptr `plusPtr` 8) :: IO Word64
return val
setMetaTransformCopyOffset :: MonadIO m => MetaTransformCopy -> Word64 -> m ()
setMetaTransformCopyOffset s val = liftIO $ withManagedPtr s $ \ptr -> do
poke (ptr `plusPtr` 8) (val :: Word64)
data MetaTransformCopyOffsetFieldInfo
instance AttrInfo MetaTransformCopyOffsetFieldInfo where
type AttrAllowedOps MetaTransformCopyOffsetFieldInfo = '[ 'AttrSet, 'AttrGet]
type AttrSetTypeConstraint MetaTransformCopyOffsetFieldInfo = (~) Word64
type AttrBaseTypeConstraint MetaTransformCopyOffsetFieldInfo = (~) MetaTransformCopy
type AttrGetType MetaTransformCopyOffsetFieldInfo = Word64
type AttrLabel MetaTransformCopyOffsetFieldInfo = "offset"
type AttrOrigin MetaTransformCopyOffsetFieldInfo = MetaTransformCopy
attrGet _ = getMetaTransformCopyOffset
attrSet _ = setMetaTransformCopyOffset
attrConstruct = undefined
attrClear _ = undefined
metaTransformCopy_offset :: AttrLabelProxy "offset"
metaTransformCopy_offset = AttrLabelProxy
getMetaTransformCopySize :: MonadIO m => MetaTransformCopy -> m Word64
getMetaTransformCopySize s = liftIO $ withManagedPtr s $ \ptr -> do
val <- peek (ptr `plusPtr` 16) :: IO Word64
return val
setMetaTransformCopySize :: MonadIO m => MetaTransformCopy -> Word64 -> m ()
setMetaTransformCopySize s val = liftIO $ withManagedPtr s $ \ptr -> do
poke (ptr `plusPtr` 16) (val :: Word64)
data MetaTransformCopySizeFieldInfo
instance AttrInfo MetaTransformCopySizeFieldInfo where
type AttrAllowedOps MetaTransformCopySizeFieldInfo = '[ 'AttrSet, 'AttrGet]
type AttrSetTypeConstraint MetaTransformCopySizeFieldInfo = (~) Word64
type AttrBaseTypeConstraint MetaTransformCopySizeFieldInfo = (~) MetaTransformCopy
type AttrGetType MetaTransformCopySizeFieldInfo = Word64
type AttrLabel MetaTransformCopySizeFieldInfo = "size"
type AttrOrigin MetaTransformCopySizeFieldInfo = MetaTransformCopy
attrGet _ = getMetaTransformCopySize
attrSet _ = setMetaTransformCopySize
attrConstruct = undefined
attrClear _ = undefined
metaTransformCopy_size :: AttrLabelProxy "size"
metaTransformCopy_size = AttrLabelProxy
instance O.HasAttributeList MetaTransformCopy
type instance O.AttributeList MetaTransformCopy = MetaTransformCopyAttributeList
type MetaTransformCopyAttributeList = ('[ '("region", MetaTransformCopyRegionFieldInfo), '("offset", MetaTransformCopyOffsetFieldInfo), '("size", MetaTransformCopySizeFieldInfo)] :: [(Symbol, *)])
type family ResolveMetaTransformCopyMethod (t :: Symbol) (o :: *) :: * where
ResolveMetaTransformCopyMethod l o = O.MethodResolutionFailed l o
instance (info ~ ResolveMetaTransformCopyMethod t MetaTransformCopy, O.MethodInfo info MetaTransformCopy p) => O.IsLabelProxy t (MetaTransformCopy -> p) where
fromLabelProxy _ = O.overloadedMethod (O.MethodProxy :: O.MethodProxy info)
#if MIN_VERSION_base(4,9,0)
instance (info ~ ResolveMetaTransformCopyMethod t MetaTransformCopy, O.MethodInfo info MetaTransformCopy p) => O.IsLabel t (MetaTransformCopy -> p) where
fromLabel _ = O.overloadedMethod (O.MethodProxy :: O.MethodProxy info)
#endif