gi-gst-0.1.6.13: GI/Gst/Structs/Caps.hs
{- |
Copyright : Will Thompson, Iñaki García Etxebarria and Jonas Platte
License : LGPL-2.1
Maintainer : Iñaki García Etxebarria (garetxe@gmail.com)
Caps (capabilities) are lightweight refcounted objects describing media types.
They are composed of an array of #GstStructure.
Caps are exposed on #GstPadTemplate to describe all possible types a
given pad can handle. They are also stored in the #GstRegistry along with
a description of the #GstElement.
Caps are exposed on the element pads using the gst_pad_query_caps() pad
function. This function describes the possible types that the pad can
handle or produce at runtime.
A #GstCaps can be constructed with the following code fragment:
|[
GstCaps *caps = gst_caps_new_simple ("video/x-raw",
"format", G_TYPE_STRING, "I420",
"framerate", GST_TYPE_FRACTION, 25, 1,
"pixel-aspect-ratio", GST_TYPE_FRACTION, 1, 1,
"width", G_TYPE_INT, 320,
"height", G_TYPE_INT, 240,
NULL);
]|
A #GstCaps is fixed when it has no properties with ranges or lists. Use
gst_caps_is_fixed() to test for fixed caps. Fixed caps can be used in a
caps event to notify downstream elements of the current media type.
Various methods exist to work with the media types such as subtracting
or intersecting.
Be aware that the current #GstCaps / #GstStructure serialization into string
has limited support for nested #GstCaps / #GstStructure fields. It can only
support one level of nesting. Using more levels will lead to unexpected
behavior when using serialization features, such as gst_caps_to_string() or
gst_value_serialize() and their counterparts.
-}
module GI.Gst.Structs.Caps
(
-- * Exported types
Caps(..) ,
newZeroCaps ,
noCaps ,
-- * Methods
-- ** capsAppend
CapsAppendMethodInfo ,
capsAppend ,
-- ** capsAppendStructure
CapsAppendStructureMethodInfo ,
capsAppendStructure ,
-- ** capsAppendStructureFull
CapsAppendStructureFullMethodInfo ,
capsAppendStructureFull ,
-- ** capsCanIntersect
CapsCanIntersectMethodInfo ,
capsCanIntersect ,
-- ** capsCopyNth
CapsCopyNthMethodInfo ,
capsCopyNth ,
-- ** capsFilterAndMapInPlace
CapsFilterAndMapInPlaceMethodInfo ,
capsFilterAndMapInPlace ,
-- ** capsFixate
CapsFixateMethodInfo ,
capsFixate ,
-- ** capsForeach
CapsForeachMethodInfo ,
capsForeach ,
-- ** capsFromString
capsFromString ,
-- ** capsGetFeatures
CapsGetFeaturesMethodInfo ,
capsGetFeatures ,
-- ** capsGetSize
CapsGetSizeMethodInfo ,
capsGetSize ,
-- ** capsGetStructure
CapsGetStructureMethodInfo ,
capsGetStructure ,
-- ** capsIntersect
CapsIntersectMethodInfo ,
capsIntersect ,
-- ** capsIntersectFull
CapsIntersectFullMethodInfo ,
capsIntersectFull ,
-- ** capsIsAlwaysCompatible
CapsIsAlwaysCompatibleMethodInfo ,
capsIsAlwaysCompatible ,
-- ** capsIsAny
CapsIsAnyMethodInfo ,
capsIsAny ,
-- ** capsIsEmpty
CapsIsEmptyMethodInfo ,
capsIsEmpty ,
-- ** capsIsEqual
CapsIsEqualMethodInfo ,
capsIsEqual ,
-- ** capsIsEqualFixed
CapsIsEqualFixedMethodInfo ,
capsIsEqualFixed ,
-- ** capsIsFixed
CapsIsFixedMethodInfo ,
capsIsFixed ,
-- ** capsIsStrictlyEqual
CapsIsStrictlyEqualMethodInfo ,
capsIsStrictlyEqual ,
-- ** capsIsSubset
CapsIsSubsetMethodInfo ,
capsIsSubset ,
-- ** capsIsSubsetStructure
CapsIsSubsetStructureMethodInfo ,
capsIsSubsetStructure ,
-- ** capsIsSubsetStructureFull
CapsIsSubsetStructureFullMethodInfo ,
capsIsSubsetStructureFull ,
-- ** capsMapInPlace
CapsMapInPlaceMethodInfo ,
capsMapInPlace ,
-- ** capsMerge
CapsMergeMethodInfo ,
capsMerge ,
-- ** capsMergeStructure
CapsMergeStructureMethodInfo ,
capsMergeStructure ,
-- ** capsMergeStructureFull
CapsMergeStructureFullMethodInfo ,
capsMergeStructureFull ,
-- ** capsNewAny
capsNewAny ,
-- ** capsNewEmpty
capsNewEmpty ,
-- ** capsNewEmptySimple
capsNewEmptySimple ,
-- ** capsNormalize
CapsNormalizeMethodInfo ,
capsNormalize ,
-- ** capsRemoveStructure
CapsRemoveStructureMethodInfo ,
capsRemoveStructure ,
-- ** capsSetFeatures
CapsSetFeaturesMethodInfo ,
capsSetFeatures ,
-- ** capsSetValue
CapsSetValueMethodInfo ,
capsSetValue ,
-- ** capsSimplify
CapsSimplifyMethodInfo ,
capsSimplify ,
-- ** capsStealStructure
CapsStealStructureMethodInfo ,
capsStealStructure ,
-- ** capsSubtract
CapsSubtractMethodInfo ,
capsSubtract ,
-- ** capsToString
CapsToStringMethodInfo ,
capsToString ,
-- ** capsTruncate
CapsTruncateMethodInfo ,
capsTruncate ,
-- * Properties
-- ** MiniObject
capsReadMiniObject ,
) 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.Gst.Types
import GI.Gst.Callbacks
newtype Caps = Caps (ForeignPtr Caps)
foreign import ccall "gst_caps_get_type" c_gst_caps_get_type ::
IO GType
instance BoxedObject Caps where
boxedType _ = c_gst_caps_get_type
-- | Construct a `Caps` struct initialized to zero.
newZeroCaps :: MonadIO m => m Caps
newZeroCaps = liftIO $ callocBoxedBytes 64 >>= wrapBoxed Caps
noCaps :: Maybe Caps
noCaps = Nothing
capsReadMiniObject :: Caps -> IO MiniObject
capsReadMiniObject s = withManagedPtr s $ \ptr -> do
val <- peek (ptr `plusPtr` 0) :: IO (Ptr MiniObject)
val' <- (newPtr 64 MiniObject) val
return val'
-- method Caps::new_any
-- method type : Constructor
-- Args : []
-- Lengths : []
-- returnType : TInterface "Gst" "Caps"
-- throws : False
-- Skip return : False
foreign import ccall "gst_caps_new_any" gst_caps_new_any ::
IO (Ptr Caps)
capsNewAny ::
(MonadIO m) =>
m Caps -- result
capsNewAny = liftIO $ do
result <- gst_caps_new_any
checkUnexpectedReturnNULL "gst_caps_new_any" result
result' <- (wrapBoxed Caps) result
return result'
-- method Caps::new_empty
-- method type : Constructor
-- Args : []
-- Lengths : []
-- returnType : TInterface "Gst" "Caps"
-- throws : False
-- Skip return : False
foreign import ccall "gst_caps_new_empty" gst_caps_new_empty ::
IO (Ptr Caps)
capsNewEmpty ::
(MonadIO m) =>
m Caps -- result
capsNewEmpty = liftIO $ do
result <- gst_caps_new_empty
checkUnexpectedReturnNULL "gst_caps_new_empty" result
result' <- (wrapBoxed Caps) result
return result'
-- method Caps::new_empty_simple
-- method type : Constructor
-- Args : [Arg {argCName = "media_type", argType = TBasicType TUTF8, 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_caps_new_empty_simple" gst_caps_new_empty_simple ::
CString -> -- media_type : TBasicType TUTF8
IO (Ptr Caps)
capsNewEmptySimple ::
(MonadIO m) =>
T.Text -- mediaType
-> m Caps -- result
capsNewEmptySimple mediaType = liftIO $ do
mediaType' <- textToCString mediaType
result <- gst_caps_new_empty_simple mediaType'
checkUnexpectedReturnNULL "gst_caps_new_empty_simple" result
result' <- (wrapBoxed Caps) result
freeMem mediaType'
return result'
-- method Caps::append
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "_obj", argType = TInterface "Gst" "Caps", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "caps2", argType = TInterface "Gst" "Caps", 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_caps_append" gst_caps_append ::
Ptr Caps -> -- _obj : TInterface "Gst" "Caps"
Ptr Caps -> -- caps2 : TInterface "Gst" "Caps"
IO ()
capsAppend ::
(MonadIO m) =>
Caps -- _obj
-> Caps -- caps2
-> m () -- result
capsAppend _obj caps2 = liftIO $ do
let _obj' = unsafeManagedPtrGetPtr _obj
caps2' <- copyBoxed caps2
gst_caps_append _obj' caps2'
touchManagedPtr _obj
touchManagedPtr caps2
return ()
data CapsAppendMethodInfo
instance (signature ~ (Caps -> m ()), MonadIO m) => MethodInfo CapsAppendMethodInfo Caps signature where
overloadedMethod _ = capsAppend
-- method Caps::append_structure
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "_obj", argType = TInterface "Gst" "Caps", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "structure", argType = TInterface "Gst" "Structure", 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_caps_append_structure" gst_caps_append_structure ::
Ptr Caps -> -- _obj : TInterface "Gst" "Caps"
Ptr Structure -> -- structure : TInterface "Gst" "Structure"
IO ()
capsAppendStructure ::
(MonadIO m) =>
Caps -- _obj
-> Structure -- structure
-> m () -- result
capsAppendStructure _obj structure = liftIO $ do
let _obj' = unsafeManagedPtrGetPtr _obj
structure' <- copyBoxed structure
gst_caps_append_structure _obj' structure'
touchManagedPtr _obj
touchManagedPtr structure
return ()
data CapsAppendStructureMethodInfo
instance (signature ~ (Structure -> m ()), MonadIO m) => MethodInfo CapsAppendStructureMethodInfo Caps signature where
overloadedMethod _ = capsAppendStructure
-- method Caps::append_structure_full
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "_obj", argType = TInterface "Gst" "Caps", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "structure", argType = TInterface "Gst" "Structure", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything},Arg {argCName = "features", argType = TInterface "Gst" "CapsFeatures", direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything}]
-- Lengths : []
-- returnType : TBasicType TVoid
-- throws : False
-- Skip return : False
foreign import ccall "gst_caps_append_structure_full" gst_caps_append_structure_full ::
Ptr Caps -> -- _obj : TInterface "Gst" "Caps"
Ptr Structure -> -- structure : TInterface "Gst" "Structure"
Ptr CapsFeatures -> -- features : TInterface "Gst" "CapsFeatures"
IO ()
capsAppendStructureFull ::
(MonadIO m) =>
Caps -- _obj
-> Structure -- structure
-> Maybe (CapsFeatures) -- features
-> m () -- result
capsAppendStructureFull _obj structure features = liftIO $ do
let _obj' = unsafeManagedPtrGetPtr _obj
structure' <- copyBoxed structure
maybeFeatures <- case features of
Nothing -> return nullPtr
Just jFeatures -> do
jFeatures' <- copyBoxed jFeatures
return jFeatures'
gst_caps_append_structure_full _obj' structure' maybeFeatures
touchManagedPtr _obj
touchManagedPtr structure
whenJust features touchManagedPtr
return ()
data CapsAppendStructureFullMethodInfo
instance (signature ~ (Structure -> Maybe (CapsFeatures) -> m ()), MonadIO m) => MethodInfo CapsAppendStructureFullMethodInfo Caps signature where
overloadedMethod _ = capsAppendStructureFull
-- method Caps::can_intersect
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "_obj", argType = TInterface "Gst" "Caps", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "caps2", 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_caps_can_intersect" gst_caps_can_intersect ::
Ptr Caps -> -- _obj : TInterface "Gst" "Caps"
Ptr Caps -> -- caps2 : TInterface "Gst" "Caps"
IO CInt
capsCanIntersect ::
(MonadIO m) =>
Caps -- _obj
-> Caps -- caps2
-> m Bool -- result
capsCanIntersect _obj caps2 = liftIO $ do
let _obj' = unsafeManagedPtrGetPtr _obj
let caps2' = unsafeManagedPtrGetPtr caps2
result <- gst_caps_can_intersect _obj' caps2'
let result' = (/= 0) result
touchManagedPtr _obj
touchManagedPtr caps2
return result'
data CapsCanIntersectMethodInfo
instance (signature ~ (Caps -> m Bool), MonadIO m) => MethodInfo CapsCanIntersectMethodInfo Caps signature where
overloadedMethod _ = capsCanIntersect
-- method Caps::copy_nth
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "_obj", argType = TInterface "Gst" "Caps", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "nth", argType = TBasicType TUInt32, 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_caps_copy_nth" gst_caps_copy_nth ::
Ptr Caps -> -- _obj : TInterface "Gst" "Caps"
Word32 -> -- nth : TBasicType TUInt32
IO (Ptr Caps)
capsCopyNth ::
(MonadIO m) =>
Caps -- _obj
-> Word32 -- nth
-> m Caps -- result
capsCopyNth _obj nth = liftIO $ do
let _obj' = unsafeManagedPtrGetPtr _obj
result <- gst_caps_copy_nth _obj' nth
checkUnexpectedReturnNULL "gst_caps_copy_nth" result
result' <- (wrapBoxed Caps) result
touchManagedPtr _obj
return result'
data CapsCopyNthMethodInfo
instance (signature ~ (Word32 -> m Caps), MonadIO m) => MethodInfo CapsCopyNthMethodInfo Caps signature where
overloadedMethod _ = capsCopyNth
-- method Caps::filter_and_map_in_place
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "_obj", argType = TInterface "Gst" "Caps", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "func", argType = TInterface "Gst" "CapsFilterMapFunc", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeCall, 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_caps_filter_and_map_in_place" gst_caps_filter_and_map_in_place ::
Ptr Caps -> -- _obj : TInterface "Gst" "Caps"
FunPtr CapsFilterMapFuncC -> -- func : TInterface "Gst" "CapsFilterMapFunc"
Ptr () -> -- user_data : TBasicType TVoid
IO ()
capsFilterAndMapInPlace ::
(MonadIO m) =>
Caps -- _obj
-> CapsFilterMapFunc -- func
-> m () -- result
capsFilterAndMapInPlace _obj func = liftIO $ do
let _obj' = unsafeManagedPtrGetPtr _obj
func' <- mkCapsFilterMapFunc (capsFilterMapFuncWrapper Nothing func)
let userData = nullPtr
gst_caps_filter_and_map_in_place _obj' func' userData
safeFreeFunPtr $ castFunPtrToPtr func'
touchManagedPtr _obj
return ()
data CapsFilterAndMapInPlaceMethodInfo
instance (signature ~ (CapsFilterMapFunc -> m ()), MonadIO m) => MethodInfo CapsFilterAndMapInPlaceMethodInfo Caps signature where
overloadedMethod _ = capsFilterAndMapInPlace
-- method Caps::fixate
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "_obj", argType = TInterface "Gst" "Caps", 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_caps_fixate" gst_caps_fixate ::
Ptr Caps -> -- _obj : TInterface "Gst" "Caps"
IO (Ptr Caps)
capsFixate ::
(MonadIO m) =>
Caps -- _obj
-> m Caps -- result
capsFixate _obj = liftIO $ do
let _obj' = unsafeManagedPtrGetPtr _obj
result <- gst_caps_fixate _obj'
checkUnexpectedReturnNULL "gst_caps_fixate" result
result' <- (wrapBoxed Caps) result
touchManagedPtr _obj
return result'
data CapsFixateMethodInfo
instance (signature ~ (m Caps), MonadIO m) => MethodInfo CapsFixateMethodInfo Caps signature where
overloadedMethod _ = capsFixate
-- method Caps::foreach
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "_obj", argType = TInterface "Gst" "Caps", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "func", argType = TInterface "Gst" "CapsForeachFunc", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeCall, 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 TBoolean
-- throws : False
-- Skip return : False
foreign import ccall "gst_caps_foreach" gst_caps_foreach ::
Ptr Caps -> -- _obj : TInterface "Gst" "Caps"
FunPtr CapsForeachFuncC -> -- func : TInterface "Gst" "CapsForeachFunc"
Ptr () -> -- user_data : TBasicType TVoid
IO CInt
capsForeach ::
(MonadIO m) =>
Caps -- _obj
-> CapsForeachFunc -- func
-> m Bool -- result
capsForeach _obj func = liftIO $ do
let _obj' = unsafeManagedPtrGetPtr _obj
func' <- mkCapsForeachFunc (capsForeachFuncWrapper Nothing func)
let userData = nullPtr
result <- gst_caps_foreach _obj' func' userData
let result' = (/= 0) result
safeFreeFunPtr $ castFunPtrToPtr func'
touchManagedPtr _obj
return result'
data CapsForeachMethodInfo
instance (signature ~ (CapsForeachFunc -> m Bool), MonadIO m) => MethodInfo CapsForeachMethodInfo Caps signature where
overloadedMethod _ = capsForeach
-- method Caps::get_features
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "_obj", argType = TInterface "Gst" "Caps", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "index", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : TInterface "Gst" "CapsFeatures"
-- throws : False
-- Skip return : False
foreign import ccall "gst_caps_get_features" gst_caps_get_features ::
Ptr Caps -> -- _obj : TInterface "Gst" "Caps"
Word32 -> -- index : TBasicType TUInt32
IO (Ptr CapsFeatures)
capsGetFeatures ::
(MonadIO m) =>
Caps -- _obj
-> Word32 -- index
-> m CapsFeatures -- result
capsGetFeatures _obj index = liftIO $ do
let _obj' = unsafeManagedPtrGetPtr _obj
result <- gst_caps_get_features _obj' index
checkUnexpectedReturnNULL "gst_caps_get_features" result
result' <- (newBoxed CapsFeatures) result
touchManagedPtr _obj
return result'
data CapsGetFeaturesMethodInfo
instance (signature ~ (Word32 -> m CapsFeatures), MonadIO m) => MethodInfo CapsGetFeaturesMethodInfo Caps signature where
overloadedMethod _ = capsGetFeatures
-- method Caps::get_size
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "_obj", argType = TInterface "Gst" "Caps", 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_caps_get_size" gst_caps_get_size ::
Ptr Caps -> -- _obj : TInterface "Gst" "Caps"
IO Word32
capsGetSize ::
(MonadIO m) =>
Caps -- _obj
-> m Word32 -- result
capsGetSize _obj = liftIO $ do
let _obj' = unsafeManagedPtrGetPtr _obj
result <- gst_caps_get_size _obj'
touchManagedPtr _obj
return result
data CapsGetSizeMethodInfo
instance (signature ~ (m Word32), MonadIO m) => MethodInfo CapsGetSizeMethodInfo Caps signature where
overloadedMethod _ = capsGetSize
-- method Caps::get_structure
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "_obj", argType = TInterface "Gst" "Caps", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "index", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : TInterface "Gst" "Structure"
-- throws : False
-- Skip return : False
foreign import ccall "gst_caps_get_structure" gst_caps_get_structure ::
Ptr Caps -> -- _obj : TInterface "Gst" "Caps"
Word32 -> -- index : TBasicType TUInt32
IO (Ptr Structure)
capsGetStructure ::
(MonadIO m) =>
Caps -- _obj
-> Word32 -- index
-> m Structure -- result
capsGetStructure _obj index = liftIO $ do
let _obj' = unsafeManagedPtrGetPtr _obj
result <- gst_caps_get_structure _obj' index
checkUnexpectedReturnNULL "gst_caps_get_structure" result
result' <- (newBoxed Structure) result
touchManagedPtr _obj
return result'
data CapsGetStructureMethodInfo
instance (signature ~ (Word32 -> m Structure), MonadIO m) => MethodInfo CapsGetStructureMethodInfo Caps signature where
overloadedMethod _ = capsGetStructure
-- method Caps::intersect
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "_obj", argType = TInterface "Gst" "Caps", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "caps2", argType = TInterface "Gst" "Caps", 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_caps_intersect" gst_caps_intersect ::
Ptr Caps -> -- _obj : TInterface "Gst" "Caps"
Ptr Caps -> -- caps2 : TInterface "Gst" "Caps"
IO (Ptr Caps)
capsIntersect ::
(MonadIO m) =>
Caps -- _obj
-> Caps -- caps2
-> m Caps -- result
capsIntersect _obj caps2 = liftIO $ do
let _obj' = unsafeManagedPtrGetPtr _obj
let caps2' = unsafeManagedPtrGetPtr caps2
result <- gst_caps_intersect _obj' caps2'
checkUnexpectedReturnNULL "gst_caps_intersect" result
result' <- (wrapBoxed Caps) result
touchManagedPtr _obj
touchManagedPtr caps2
return result'
data CapsIntersectMethodInfo
instance (signature ~ (Caps -> m Caps), MonadIO m) => MethodInfo CapsIntersectMethodInfo Caps signature where
overloadedMethod _ = capsIntersect
-- method Caps::intersect_full
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "_obj", argType = TInterface "Gst" "Caps", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "caps2", argType = TInterface "Gst" "Caps", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "mode", argType = TInterface "Gst" "CapsIntersectMode", 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_caps_intersect_full" gst_caps_intersect_full ::
Ptr Caps -> -- _obj : TInterface "Gst" "Caps"
Ptr Caps -> -- caps2 : TInterface "Gst" "Caps"
CUInt -> -- mode : TInterface "Gst" "CapsIntersectMode"
IO (Ptr Caps)
capsIntersectFull ::
(MonadIO m) =>
Caps -- _obj
-> Caps -- caps2
-> CapsIntersectMode -- mode
-> m Caps -- result
capsIntersectFull _obj caps2 mode = liftIO $ do
let _obj' = unsafeManagedPtrGetPtr _obj
let caps2' = unsafeManagedPtrGetPtr caps2
let mode' = (fromIntegral . fromEnum) mode
result <- gst_caps_intersect_full _obj' caps2' mode'
checkUnexpectedReturnNULL "gst_caps_intersect_full" result
result' <- (wrapBoxed Caps) result
touchManagedPtr _obj
touchManagedPtr caps2
return result'
data CapsIntersectFullMethodInfo
instance (signature ~ (Caps -> CapsIntersectMode -> m Caps), MonadIO m) => MethodInfo CapsIntersectFullMethodInfo Caps signature where
overloadedMethod _ = capsIntersectFull
-- method Caps::is_always_compatible
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "_obj", argType = TInterface "Gst" "Caps", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "caps2", 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_caps_is_always_compatible" gst_caps_is_always_compatible ::
Ptr Caps -> -- _obj : TInterface "Gst" "Caps"
Ptr Caps -> -- caps2 : TInterface "Gst" "Caps"
IO CInt
capsIsAlwaysCompatible ::
(MonadIO m) =>
Caps -- _obj
-> Caps -- caps2
-> m Bool -- result
capsIsAlwaysCompatible _obj caps2 = liftIO $ do
let _obj' = unsafeManagedPtrGetPtr _obj
let caps2' = unsafeManagedPtrGetPtr caps2
result <- gst_caps_is_always_compatible _obj' caps2'
let result' = (/= 0) result
touchManagedPtr _obj
touchManagedPtr caps2
return result'
data CapsIsAlwaysCompatibleMethodInfo
instance (signature ~ (Caps -> m Bool), MonadIO m) => MethodInfo CapsIsAlwaysCompatibleMethodInfo Caps signature where
overloadedMethod _ = capsIsAlwaysCompatible
-- method Caps::is_any
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "_obj", 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_caps_is_any" gst_caps_is_any ::
Ptr Caps -> -- _obj : TInterface "Gst" "Caps"
IO CInt
capsIsAny ::
(MonadIO m) =>
Caps -- _obj
-> m Bool -- result
capsIsAny _obj = liftIO $ do
let _obj' = unsafeManagedPtrGetPtr _obj
result <- gst_caps_is_any _obj'
let result' = (/= 0) result
touchManagedPtr _obj
return result'
data CapsIsAnyMethodInfo
instance (signature ~ (m Bool), MonadIO m) => MethodInfo CapsIsAnyMethodInfo Caps signature where
overloadedMethod _ = capsIsAny
-- method Caps::is_empty
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "_obj", 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_caps_is_empty" gst_caps_is_empty ::
Ptr Caps -> -- _obj : TInterface "Gst" "Caps"
IO CInt
capsIsEmpty ::
(MonadIO m) =>
Caps -- _obj
-> m Bool -- result
capsIsEmpty _obj = liftIO $ do
let _obj' = unsafeManagedPtrGetPtr _obj
result <- gst_caps_is_empty _obj'
let result' = (/= 0) result
touchManagedPtr _obj
return result'
data CapsIsEmptyMethodInfo
instance (signature ~ (m Bool), MonadIO m) => MethodInfo CapsIsEmptyMethodInfo Caps signature where
overloadedMethod _ = capsIsEmpty
-- method Caps::is_equal
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "_obj", argType = TInterface "Gst" "Caps", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "caps2", 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_caps_is_equal" gst_caps_is_equal ::
Ptr Caps -> -- _obj : TInterface "Gst" "Caps"
Ptr Caps -> -- caps2 : TInterface "Gst" "Caps"
IO CInt
capsIsEqual ::
(MonadIO m) =>
Caps -- _obj
-> Caps -- caps2
-> m Bool -- result
capsIsEqual _obj caps2 = liftIO $ do
let _obj' = unsafeManagedPtrGetPtr _obj
let caps2' = unsafeManagedPtrGetPtr caps2
result <- gst_caps_is_equal _obj' caps2'
let result' = (/= 0) result
touchManagedPtr _obj
touchManagedPtr caps2
return result'
data CapsIsEqualMethodInfo
instance (signature ~ (Caps -> m Bool), MonadIO m) => MethodInfo CapsIsEqualMethodInfo Caps signature where
overloadedMethod _ = capsIsEqual
-- method Caps::is_equal_fixed
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "_obj", argType = TInterface "Gst" "Caps", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "caps2", 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_caps_is_equal_fixed" gst_caps_is_equal_fixed ::
Ptr Caps -> -- _obj : TInterface "Gst" "Caps"
Ptr Caps -> -- caps2 : TInterface "Gst" "Caps"
IO CInt
capsIsEqualFixed ::
(MonadIO m) =>
Caps -- _obj
-> Caps -- caps2
-> m Bool -- result
capsIsEqualFixed _obj caps2 = liftIO $ do
let _obj' = unsafeManagedPtrGetPtr _obj
let caps2' = unsafeManagedPtrGetPtr caps2
result <- gst_caps_is_equal_fixed _obj' caps2'
let result' = (/= 0) result
touchManagedPtr _obj
touchManagedPtr caps2
return result'
data CapsIsEqualFixedMethodInfo
instance (signature ~ (Caps -> m Bool), MonadIO m) => MethodInfo CapsIsEqualFixedMethodInfo Caps signature where
overloadedMethod _ = capsIsEqualFixed
-- method Caps::is_fixed
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "_obj", 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_caps_is_fixed" gst_caps_is_fixed ::
Ptr Caps -> -- _obj : TInterface "Gst" "Caps"
IO CInt
capsIsFixed ::
(MonadIO m) =>
Caps -- _obj
-> m Bool -- result
capsIsFixed _obj = liftIO $ do
let _obj' = unsafeManagedPtrGetPtr _obj
result <- gst_caps_is_fixed _obj'
let result' = (/= 0) result
touchManagedPtr _obj
return result'
data CapsIsFixedMethodInfo
instance (signature ~ (m Bool), MonadIO m) => MethodInfo CapsIsFixedMethodInfo Caps signature where
overloadedMethod _ = capsIsFixed
-- method Caps::is_strictly_equal
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "_obj", argType = TInterface "Gst" "Caps", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "caps2", 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_caps_is_strictly_equal" gst_caps_is_strictly_equal ::
Ptr Caps -> -- _obj : TInterface "Gst" "Caps"
Ptr Caps -> -- caps2 : TInterface "Gst" "Caps"
IO CInt
capsIsStrictlyEqual ::
(MonadIO m) =>
Caps -- _obj
-> Caps -- caps2
-> m Bool -- result
capsIsStrictlyEqual _obj caps2 = liftIO $ do
let _obj' = unsafeManagedPtrGetPtr _obj
let caps2' = unsafeManagedPtrGetPtr caps2
result <- gst_caps_is_strictly_equal _obj' caps2'
let result' = (/= 0) result
touchManagedPtr _obj
touchManagedPtr caps2
return result'
data CapsIsStrictlyEqualMethodInfo
instance (signature ~ (Caps -> m Bool), MonadIO m) => MethodInfo CapsIsStrictlyEqualMethodInfo Caps signature where
overloadedMethod _ = capsIsStrictlyEqual
-- method Caps::is_subset
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "_obj", argType = TInterface "Gst" "Caps", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "superset", 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_caps_is_subset" gst_caps_is_subset ::
Ptr Caps -> -- _obj : TInterface "Gst" "Caps"
Ptr Caps -> -- superset : TInterface "Gst" "Caps"
IO CInt
capsIsSubset ::
(MonadIO m) =>
Caps -- _obj
-> Caps -- superset
-> m Bool -- result
capsIsSubset _obj superset = liftIO $ do
let _obj' = unsafeManagedPtrGetPtr _obj
let superset' = unsafeManagedPtrGetPtr superset
result <- gst_caps_is_subset _obj' superset'
let result' = (/= 0) result
touchManagedPtr _obj
touchManagedPtr superset
return result'
data CapsIsSubsetMethodInfo
instance (signature ~ (Caps -> m Bool), MonadIO m) => MethodInfo CapsIsSubsetMethodInfo Caps signature where
overloadedMethod _ = capsIsSubset
-- method Caps::is_subset_structure
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "_obj", argType = TInterface "Gst" "Caps", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "structure", argType = TInterface "Gst" "Structure", 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_caps_is_subset_structure" gst_caps_is_subset_structure ::
Ptr Caps -> -- _obj : TInterface "Gst" "Caps"
Ptr Structure -> -- structure : TInterface "Gst" "Structure"
IO CInt
capsIsSubsetStructure ::
(MonadIO m) =>
Caps -- _obj
-> Structure -- structure
-> m Bool -- result
capsIsSubsetStructure _obj structure = liftIO $ do
let _obj' = unsafeManagedPtrGetPtr _obj
let structure' = unsafeManagedPtrGetPtr structure
result <- gst_caps_is_subset_structure _obj' structure'
let result' = (/= 0) result
touchManagedPtr _obj
touchManagedPtr structure
return result'
data CapsIsSubsetStructureMethodInfo
instance (signature ~ (Structure -> m Bool), MonadIO m) => MethodInfo CapsIsSubsetStructureMethodInfo Caps signature where
overloadedMethod _ = capsIsSubsetStructure
-- method Caps::is_subset_structure_full
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "_obj", argType = TInterface "Gst" "Caps", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "structure", argType = TInterface "Gst" "Structure", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "features", argType = TInterface "Gst" "CapsFeatures", direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : TBasicType TBoolean
-- throws : False
-- Skip return : False
foreign import ccall "gst_caps_is_subset_structure_full" gst_caps_is_subset_structure_full ::
Ptr Caps -> -- _obj : TInterface "Gst" "Caps"
Ptr Structure -> -- structure : TInterface "Gst" "Structure"
Ptr CapsFeatures -> -- features : TInterface "Gst" "CapsFeatures"
IO CInt
capsIsSubsetStructureFull ::
(MonadIO m) =>
Caps -- _obj
-> Structure -- structure
-> Maybe (CapsFeatures) -- features
-> m Bool -- result
capsIsSubsetStructureFull _obj structure features = liftIO $ do
let _obj' = unsafeManagedPtrGetPtr _obj
let structure' = unsafeManagedPtrGetPtr structure
maybeFeatures <- case features of
Nothing -> return nullPtr
Just jFeatures -> do
let jFeatures' = unsafeManagedPtrGetPtr jFeatures
return jFeatures'
result <- gst_caps_is_subset_structure_full _obj' structure' maybeFeatures
let result' = (/= 0) result
touchManagedPtr _obj
touchManagedPtr structure
whenJust features touchManagedPtr
return result'
data CapsIsSubsetStructureFullMethodInfo
instance (signature ~ (Structure -> Maybe (CapsFeatures) -> m Bool), MonadIO m) => MethodInfo CapsIsSubsetStructureFullMethodInfo Caps signature where
overloadedMethod _ = capsIsSubsetStructureFull
-- method Caps::map_in_place
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "_obj", argType = TInterface "Gst" "Caps", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "func", argType = TInterface "Gst" "CapsMapFunc", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeCall, 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 TBoolean
-- throws : False
-- Skip return : False
foreign import ccall "gst_caps_map_in_place" gst_caps_map_in_place ::
Ptr Caps -> -- _obj : TInterface "Gst" "Caps"
FunPtr CapsMapFuncC -> -- func : TInterface "Gst" "CapsMapFunc"
Ptr () -> -- user_data : TBasicType TVoid
IO CInt
capsMapInPlace ::
(MonadIO m) =>
Caps -- _obj
-> CapsMapFunc -- func
-> m Bool -- result
capsMapInPlace _obj func = liftIO $ do
let _obj' = unsafeManagedPtrGetPtr _obj
func' <- mkCapsMapFunc (capsMapFuncWrapper Nothing func)
let userData = nullPtr
result <- gst_caps_map_in_place _obj' func' userData
let result' = (/= 0) result
safeFreeFunPtr $ castFunPtrToPtr func'
touchManagedPtr _obj
return result'
data CapsMapInPlaceMethodInfo
instance (signature ~ (CapsMapFunc -> m Bool), MonadIO m) => MethodInfo CapsMapInPlaceMethodInfo Caps signature where
overloadedMethod _ = capsMapInPlace
-- method Caps::merge
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "_obj", argType = TInterface "Gst" "Caps", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "caps2", argType = TInterface "Gst" "Caps", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything}]
-- Lengths : []
-- returnType : TInterface "Gst" "Caps"
-- throws : False
-- Skip return : False
foreign import ccall "gst_caps_merge" gst_caps_merge ::
Ptr Caps -> -- _obj : TInterface "Gst" "Caps"
Ptr Caps -> -- caps2 : TInterface "Gst" "Caps"
IO (Ptr Caps)
capsMerge ::
(MonadIO m) =>
Caps -- _obj
-> Caps -- caps2
-> m Caps -- result
capsMerge _obj caps2 = liftIO $ do
let _obj' = unsafeManagedPtrGetPtr _obj
caps2' <- copyBoxed caps2
result <- gst_caps_merge _obj' caps2'
checkUnexpectedReturnNULL "gst_caps_merge" result
result' <- (wrapBoxed Caps) result
touchManagedPtr _obj
touchManagedPtr caps2
return result'
data CapsMergeMethodInfo
instance (signature ~ (Caps -> m Caps), MonadIO m) => MethodInfo CapsMergeMethodInfo Caps signature where
overloadedMethod _ = capsMerge
-- method Caps::merge_structure
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "_obj", argType = TInterface "Gst" "Caps", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "structure", argType = TInterface "Gst" "Structure", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything}]
-- Lengths : []
-- returnType : TInterface "Gst" "Caps"
-- throws : False
-- Skip return : False
foreign import ccall "gst_caps_merge_structure" gst_caps_merge_structure ::
Ptr Caps -> -- _obj : TInterface "Gst" "Caps"
Ptr Structure -> -- structure : TInterface "Gst" "Structure"
IO (Ptr Caps)
capsMergeStructure ::
(MonadIO m) =>
Caps -- _obj
-> Structure -- structure
-> m Caps -- result
capsMergeStructure _obj structure = liftIO $ do
let _obj' = unsafeManagedPtrGetPtr _obj
structure' <- copyBoxed structure
result <- gst_caps_merge_structure _obj' structure'
checkUnexpectedReturnNULL "gst_caps_merge_structure" result
result' <- (wrapBoxed Caps) result
touchManagedPtr _obj
touchManagedPtr structure
return result'
data CapsMergeStructureMethodInfo
instance (signature ~ (Structure -> m Caps), MonadIO m) => MethodInfo CapsMergeStructureMethodInfo Caps signature where
overloadedMethod _ = capsMergeStructure
-- method Caps::merge_structure_full
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "_obj", argType = TInterface "Gst" "Caps", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "structure", argType = TInterface "Gst" "Structure", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything},Arg {argCName = "features", argType = TInterface "Gst" "CapsFeatures", direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything}]
-- Lengths : []
-- returnType : TInterface "Gst" "Caps"
-- throws : False
-- Skip return : False
foreign import ccall "gst_caps_merge_structure_full" gst_caps_merge_structure_full ::
Ptr Caps -> -- _obj : TInterface "Gst" "Caps"
Ptr Structure -> -- structure : TInterface "Gst" "Structure"
Ptr CapsFeatures -> -- features : TInterface "Gst" "CapsFeatures"
IO (Ptr Caps)
capsMergeStructureFull ::
(MonadIO m) =>
Caps -- _obj
-> Structure -- structure
-> Maybe (CapsFeatures) -- features
-> m Caps -- result
capsMergeStructureFull _obj structure features = liftIO $ do
let _obj' = unsafeManagedPtrGetPtr _obj
structure' <- copyBoxed structure
maybeFeatures <- case features of
Nothing -> return nullPtr
Just jFeatures -> do
jFeatures' <- copyBoxed jFeatures
return jFeatures'
result <- gst_caps_merge_structure_full _obj' structure' maybeFeatures
checkUnexpectedReturnNULL "gst_caps_merge_structure_full" result
result' <- (wrapBoxed Caps) result
touchManagedPtr _obj
touchManagedPtr structure
whenJust features touchManagedPtr
return result'
data CapsMergeStructureFullMethodInfo
instance (signature ~ (Structure -> Maybe (CapsFeatures) -> m Caps), MonadIO m) => MethodInfo CapsMergeStructureFullMethodInfo Caps signature where
overloadedMethod _ = capsMergeStructureFull
-- method Caps::normalize
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "_obj", argType = TInterface "Gst" "Caps", 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_caps_normalize" gst_caps_normalize ::
Ptr Caps -> -- _obj : TInterface "Gst" "Caps"
IO (Ptr Caps)
capsNormalize ::
(MonadIO m) =>
Caps -- _obj
-> m Caps -- result
capsNormalize _obj = liftIO $ do
let _obj' = unsafeManagedPtrGetPtr _obj
result <- gst_caps_normalize _obj'
checkUnexpectedReturnNULL "gst_caps_normalize" result
result' <- (wrapBoxed Caps) result
touchManagedPtr _obj
return result'
data CapsNormalizeMethodInfo
instance (signature ~ (m Caps), MonadIO m) => MethodInfo CapsNormalizeMethodInfo Caps signature where
overloadedMethod _ = capsNormalize
-- method Caps::remove_structure
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "_obj", argType = TInterface "Gst" "Caps", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "idx", 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_caps_remove_structure" gst_caps_remove_structure ::
Ptr Caps -> -- _obj : TInterface "Gst" "Caps"
Word32 -> -- idx : TBasicType TUInt32
IO ()
capsRemoveStructure ::
(MonadIO m) =>
Caps -- _obj
-> Word32 -- idx
-> m () -- result
capsRemoveStructure _obj idx = liftIO $ do
let _obj' = unsafeManagedPtrGetPtr _obj
gst_caps_remove_structure _obj' idx
touchManagedPtr _obj
return ()
data CapsRemoveStructureMethodInfo
instance (signature ~ (Word32 -> m ()), MonadIO m) => MethodInfo CapsRemoveStructureMethodInfo Caps signature where
overloadedMethod _ = capsRemoveStructure
-- method Caps::set_features
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "_obj", argType = TInterface "Gst" "Caps", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "index", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "features", argType = TInterface "Gst" "CapsFeatures", direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything}]
-- Lengths : []
-- returnType : TBasicType TVoid
-- throws : False
-- Skip return : False
foreign import ccall "gst_caps_set_features" gst_caps_set_features ::
Ptr Caps -> -- _obj : TInterface "Gst" "Caps"
Word32 -> -- index : TBasicType TUInt32
Ptr CapsFeatures -> -- features : TInterface "Gst" "CapsFeatures"
IO ()
capsSetFeatures ::
(MonadIO m) =>
Caps -- _obj
-> Word32 -- index
-> Maybe (CapsFeatures) -- features
-> m () -- result
capsSetFeatures _obj index features = liftIO $ do
let _obj' = unsafeManagedPtrGetPtr _obj
maybeFeatures <- case features of
Nothing -> return nullPtr
Just jFeatures -> do
jFeatures' <- copyBoxed jFeatures
return jFeatures'
gst_caps_set_features _obj' index maybeFeatures
touchManagedPtr _obj
whenJust features touchManagedPtr
return ()
data CapsSetFeaturesMethodInfo
instance (signature ~ (Word32 -> Maybe (CapsFeatures) -> m ()), MonadIO m) => MethodInfo CapsSetFeaturesMethodInfo Caps signature where
overloadedMethod _ = capsSetFeatures
-- method Caps::set_value
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "_obj", argType = TInterface "Gst" "Caps", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "field", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "value", argType = TInterface "GObject" "Value", 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_caps_set_value" gst_caps_set_value ::
Ptr Caps -> -- _obj : TInterface "Gst" "Caps"
CString -> -- field : TBasicType TUTF8
Ptr GValue -> -- value : TInterface "GObject" "Value"
IO ()
capsSetValue ::
(MonadIO m) =>
Caps -- _obj
-> T.Text -- field
-> GValue -- value
-> m () -- result
capsSetValue _obj field value = liftIO $ do
let _obj' = unsafeManagedPtrGetPtr _obj
field' <- textToCString field
let value' = unsafeManagedPtrGetPtr value
gst_caps_set_value _obj' field' value'
touchManagedPtr _obj
touchManagedPtr value
freeMem field'
return ()
data CapsSetValueMethodInfo
instance (signature ~ (T.Text -> GValue -> m ()), MonadIO m) => MethodInfo CapsSetValueMethodInfo Caps signature where
overloadedMethod _ = capsSetValue
-- method Caps::simplify
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "_obj", argType = TInterface "Gst" "Caps", 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_caps_simplify" gst_caps_simplify ::
Ptr Caps -> -- _obj : TInterface "Gst" "Caps"
IO (Ptr Caps)
capsSimplify ::
(MonadIO m) =>
Caps -- _obj
-> m Caps -- result
capsSimplify _obj = liftIO $ do
let _obj' = unsafeManagedPtrGetPtr _obj
result <- gst_caps_simplify _obj'
checkUnexpectedReturnNULL "gst_caps_simplify" result
result' <- (wrapBoxed Caps) result
touchManagedPtr _obj
return result'
data CapsSimplifyMethodInfo
instance (signature ~ (m Caps), MonadIO m) => MethodInfo CapsSimplifyMethodInfo Caps signature where
overloadedMethod _ = capsSimplify
-- method Caps::steal_structure
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "_obj", argType = TInterface "Gst" "Caps", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "index", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : TInterface "Gst" "Structure"
-- throws : False
-- Skip return : False
foreign import ccall "gst_caps_steal_structure" gst_caps_steal_structure ::
Ptr Caps -> -- _obj : TInterface "Gst" "Caps"
Word32 -> -- index : TBasicType TUInt32
IO (Ptr Structure)
capsStealStructure ::
(MonadIO m) =>
Caps -- _obj
-> Word32 -- index
-> m Structure -- result
capsStealStructure _obj index = liftIO $ do
let _obj' = unsafeManagedPtrGetPtr _obj
result <- gst_caps_steal_structure _obj' index
checkUnexpectedReturnNULL "gst_caps_steal_structure" result
result' <- (wrapBoxed Structure) result
touchManagedPtr _obj
return result'
data CapsStealStructureMethodInfo
instance (signature ~ (Word32 -> m Structure), MonadIO m) => MethodInfo CapsStealStructureMethodInfo Caps signature where
overloadedMethod _ = capsStealStructure
-- method Caps::subtract
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "_obj", argType = TInterface "Gst" "Caps", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "subtrahend", argType = TInterface "Gst" "Caps", 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_caps_subtract" gst_caps_subtract ::
Ptr Caps -> -- _obj : TInterface "Gst" "Caps"
Ptr Caps -> -- subtrahend : TInterface "Gst" "Caps"
IO (Ptr Caps)
capsSubtract ::
(MonadIO m) =>
Caps -- _obj
-> Caps -- subtrahend
-> m Caps -- result
capsSubtract _obj subtrahend = liftIO $ do
let _obj' = unsafeManagedPtrGetPtr _obj
let subtrahend' = unsafeManagedPtrGetPtr subtrahend
result <- gst_caps_subtract _obj' subtrahend'
checkUnexpectedReturnNULL "gst_caps_subtract" result
result' <- (wrapBoxed Caps) result
touchManagedPtr _obj
touchManagedPtr subtrahend
return result'
data CapsSubtractMethodInfo
instance (signature ~ (Caps -> m Caps), MonadIO m) => MethodInfo CapsSubtractMethodInfo Caps signature where
overloadedMethod _ = capsSubtract
-- method Caps::to_string
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "_obj", argType = TInterface "Gst" "Caps", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : TBasicType TUTF8
-- throws : False
-- Skip return : False
foreign import ccall "gst_caps_to_string" gst_caps_to_string ::
Ptr Caps -> -- _obj : TInterface "Gst" "Caps"
IO CString
capsToString ::
(MonadIO m) =>
Caps -- _obj
-> m T.Text -- result
capsToString _obj = liftIO $ do
let _obj' = unsafeManagedPtrGetPtr _obj
result <- gst_caps_to_string _obj'
checkUnexpectedReturnNULL "gst_caps_to_string" result
result' <- cstringToText result
freeMem result
touchManagedPtr _obj
return result'
data CapsToStringMethodInfo
instance (signature ~ (m T.Text), MonadIO m) => MethodInfo CapsToStringMethodInfo Caps signature where
overloadedMethod _ = capsToString
-- method Caps::truncate
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "_obj", argType = TInterface "Gst" "Caps", 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_caps_truncate" gst_caps_truncate ::
Ptr Caps -> -- _obj : TInterface "Gst" "Caps"
IO (Ptr Caps)
capsTruncate ::
(MonadIO m) =>
Caps -- _obj
-> m Caps -- result
capsTruncate _obj = liftIO $ do
let _obj' = unsafeManagedPtrGetPtr _obj
result <- gst_caps_truncate _obj'
checkUnexpectedReturnNULL "gst_caps_truncate" result
result' <- (wrapBoxed Caps) result
touchManagedPtr _obj
return result'
data CapsTruncateMethodInfo
instance (signature ~ (m Caps), MonadIO m) => MethodInfo CapsTruncateMethodInfo Caps signature where
overloadedMethod _ = capsTruncate
-- method Caps::from_string
-- method type : MemberFunction
-- Args : [Arg {argCName = "string", argType = TBasicType TUTF8, 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_caps_from_string" gst_caps_from_string ::
CString -> -- string : TBasicType TUTF8
IO (Ptr Caps)
capsFromString ::
(MonadIO m) =>
T.Text -- string
-> m Caps -- result
capsFromString string = liftIO $ do
string' <- textToCString string
result <- gst_caps_from_string string'
checkUnexpectedReturnNULL "gst_caps_from_string" result
result' <- (wrapBoxed Caps) result
freeMem string'
return result'
type family ResolveCapsMethod (t :: Symbol) (o :: *) :: * where
ResolveCapsMethod "append" o = CapsAppendMethodInfo
ResolveCapsMethod "appendStructure" o = CapsAppendStructureMethodInfo
ResolveCapsMethod "appendStructureFull" o = CapsAppendStructureFullMethodInfo
ResolveCapsMethod "canIntersect" o = CapsCanIntersectMethodInfo
ResolveCapsMethod "copyNth" o = CapsCopyNthMethodInfo
ResolveCapsMethod "filterAndMapInPlace" o = CapsFilterAndMapInPlaceMethodInfo
ResolveCapsMethod "fixate" o = CapsFixateMethodInfo
ResolveCapsMethod "foreach" o = CapsForeachMethodInfo
ResolveCapsMethod "intersect" o = CapsIntersectMethodInfo
ResolveCapsMethod "intersectFull" o = CapsIntersectFullMethodInfo
ResolveCapsMethod "isAlwaysCompatible" o = CapsIsAlwaysCompatibleMethodInfo
ResolveCapsMethod "isAny" o = CapsIsAnyMethodInfo
ResolveCapsMethod "isEmpty" o = CapsIsEmptyMethodInfo
ResolveCapsMethod "isEqual" o = CapsIsEqualMethodInfo
ResolveCapsMethod "isEqualFixed" o = CapsIsEqualFixedMethodInfo
ResolveCapsMethod "isFixed" o = CapsIsFixedMethodInfo
ResolveCapsMethod "isStrictlyEqual" o = CapsIsStrictlyEqualMethodInfo
ResolveCapsMethod "isSubset" o = CapsIsSubsetMethodInfo
ResolveCapsMethod "isSubsetStructure" o = CapsIsSubsetStructureMethodInfo
ResolveCapsMethod "isSubsetStructureFull" o = CapsIsSubsetStructureFullMethodInfo
ResolveCapsMethod "mapInPlace" o = CapsMapInPlaceMethodInfo
ResolveCapsMethod "merge" o = CapsMergeMethodInfo
ResolveCapsMethod "mergeStructure" o = CapsMergeStructureMethodInfo
ResolveCapsMethod "mergeStructureFull" o = CapsMergeStructureFullMethodInfo
ResolveCapsMethod "normalize" o = CapsNormalizeMethodInfo
ResolveCapsMethod "removeStructure" o = CapsRemoveStructureMethodInfo
ResolveCapsMethod "simplify" o = CapsSimplifyMethodInfo
ResolveCapsMethod "stealStructure" o = CapsStealStructureMethodInfo
ResolveCapsMethod "subtract" o = CapsSubtractMethodInfo
ResolveCapsMethod "toString" o = CapsToStringMethodInfo
ResolveCapsMethod "truncate" o = CapsTruncateMethodInfo
ResolveCapsMethod "getFeatures" o = CapsGetFeaturesMethodInfo
ResolveCapsMethod "getSize" o = CapsGetSizeMethodInfo
ResolveCapsMethod "getStructure" o = CapsGetStructureMethodInfo
ResolveCapsMethod "setFeatures" o = CapsSetFeaturesMethodInfo
ResolveCapsMethod "setValue" o = CapsSetValueMethodInfo
ResolveCapsMethod l o = MethodResolutionFailed l o
instance (info ~ ResolveCapsMethod t Caps, MethodInfo info Caps p) => IsLabelProxy t (Caps -> p) where
fromLabelProxy _ = overloadedMethod (MethodProxy :: MethodProxy info)
#if MIN_VERSION_base(4,9,0)
instance (info ~ ResolveCapsMethod t Caps, MethodInfo info Caps p) => IsLabel t (Caps -> p) where
fromLabel _ = overloadedMethod (MethodProxy :: MethodProxy info)
#endif