{- | 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