gi-gst-1.0.18: GI/Gst/Structs/CapsFeatures.hs
{- |
Copyright : Will Thompson, Iñaki García Etxebarria and Jonas Platte
License : LGPL-2.1
Maintainer : Iñaki García Etxebarria (inaki@blueleaf.cc)
'GI.Gst.Structs.CapsFeatures.CapsFeatures' can optionally be set on a 'GI.Gst.Structs.Caps.Caps' to add requirements
for additional features for a specific 'GI.Gst.Structs.Structure.Structure'. Caps structures with
the same name but with a non-equal set of caps features are not compatible.
If a pad supports multiple sets of features it has to add multiple equal
structures with different feature sets to the caps.
Empty 'GI.Gst.Structs.CapsFeatures.CapsFeatures' are equivalent with the 'GI.Gst.Structs.CapsFeatures.CapsFeatures' that only
contain 'GI.Gst.Constants.CAPS_FEATURE_MEMORY_SYSTEM_MEMORY'. ANY 'GI.Gst.Structs.CapsFeatures.CapsFeatures' as
created by 'GI.Gst.Structs.CapsFeatures.capsFeaturesNewAny' are equal to any other 'GI.Gst.Structs.CapsFeatures.CapsFeatures'
and can be used to specify that any 'GI.Gst.Structs.CapsFeatures.CapsFeatures' would be supported, e.g.
for elements that don\'t touch buffer memory. 'GI.Gst.Structs.Caps.Caps' with ANY 'GI.Gst.Structs.CapsFeatures.CapsFeatures'
are considered non-fixed and during negotiation some 'GI.Gst.Structs.CapsFeatures.CapsFeatures' have
to be selected.
Examples for caps features would be the requirement of a specific 'GI.Gst.Structs.Memory.Memory'
types or the requirement of having a specific 'GI.Gst.Structs.Meta.Meta' on the buffer. Features
are given as a string of the format \"memory:GstMemoryTypeName\" or
\"meta:GstMetaAPIName\".
/Since: 1.2/
-}
#define ENABLE_OVERLOADING (MIN_VERSION_haskell_gi_overloading(1,0,0) \
&& !defined(__HADDOCK_VERSION__))
module GI.Gst.Structs.CapsFeatures
(
-- * Exported types
CapsFeatures(..) ,
noCapsFeatures ,
-- * Methods
-- ** add #method:add#
#if ENABLE_OVERLOADING
CapsFeaturesAddMethodInfo ,
#endif
capsFeaturesAdd ,
-- ** addId #method:addId#
#if ENABLE_OVERLOADING
CapsFeaturesAddIdMethodInfo ,
#endif
capsFeaturesAddId ,
-- ** contains #method:contains#
#if ENABLE_OVERLOADING
CapsFeaturesContainsMethodInfo ,
#endif
capsFeaturesContains ,
-- ** containsId #method:containsId#
#if ENABLE_OVERLOADING
CapsFeaturesContainsIdMethodInfo ,
#endif
capsFeaturesContainsId ,
-- ** copy #method:copy#
#if ENABLE_OVERLOADING
CapsFeaturesCopyMethodInfo ,
#endif
capsFeaturesCopy ,
-- ** free #method:free#
#if ENABLE_OVERLOADING
CapsFeaturesFreeMethodInfo ,
#endif
capsFeaturesFree ,
-- ** fromString #method:fromString#
capsFeaturesFromString ,
-- ** getNth #method:getNth#
#if ENABLE_OVERLOADING
CapsFeaturesGetNthMethodInfo ,
#endif
capsFeaturesGetNth ,
-- ** getNthId #method:getNthId#
#if ENABLE_OVERLOADING
CapsFeaturesGetNthIdMethodInfo ,
#endif
capsFeaturesGetNthId ,
-- ** getSize #method:getSize#
#if ENABLE_OVERLOADING
CapsFeaturesGetSizeMethodInfo ,
#endif
capsFeaturesGetSize ,
-- ** isAny #method:isAny#
#if ENABLE_OVERLOADING
CapsFeaturesIsAnyMethodInfo ,
#endif
capsFeaturesIsAny ,
-- ** isEqual #method:isEqual#
#if ENABLE_OVERLOADING
CapsFeaturesIsEqualMethodInfo ,
#endif
capsFeaturesIsEqual ,
-- ** newAny #method:newAny#
capsFeaturesNewAny ,
-- ** newEmpty #method:newEmpty#
capsFeaturesNewEmpty ,
-- ** remove #method:remove#
#if ENABLE_OVERLOADING
CapsFeaturesRemoveMethodInfo ,
#endif
capsFeaturesRemove ,
-- ** removeId #method:removeId#
#if ENABLE_OVERLOADING
CapsFeaturesRemoveIdMethodInfo ,
#endif
capsFeaturesRemoveId ,
-- ** setParentRefcount #method:setParentRefcount#
#if ENABLE_OVERLOADING
CapsFeaturesSetParentRefcountMethodInfo ,
#endif
capsFeaturesSetParentRefcount ,
-- ** toString #method:toString#
#if ENABLE_OVERLOADING
CapsFeaturesToStringMethodInfo ,
#endif
capsFeaturesToString ,
) where
import Data.GI.Base.ShortPrelude
import qualified Data.GI.Base.ShortPrelude as SP
import qualified Data.GI.Base.Overloading as O
import qualified Prelude as P
import qualified Data.GI.Base.Attributes as GI.Attributes
import qualified Data.GI.Base.ManagedPtr as B.ManagedPtr
import qualified Data.GI.Base.GClosure as B.GClosure
import qualified Data.GI.Base.GError as B.GError
import qualified Data.GI.Base.GVariant as B.GVariant
import qualified Data.GI.Base.GValue as B.GValue
import qualified Data.GI.Base.GParamSpec as B.GParamSpec
import qualified Data.GI.Base.CallStack as B.CallStack
import qualified Data.GI.Base.Properties as B.Properties
import qualified Data.Text as T
import qualified Data.ByteString.Char8 as B
import qualified Data.Map as Map
import qualified Foreign.Ptr as FP
import qualified GHC.OverloadedLabels as OL
-- | Memory-managed wrapper type.
newtype CapsFeatures = CapsFeatures (ManagedPtr CapsFeatures)
foreign import ccall "gst_caps_features_get_type" c_gst_caps_features_get_type ::
IO GType
instance BoxedObject CapsFeatures where
boxedType _ = c_gst_caps_features_get_type
-- | A convenience alias for `Nothing` :: `Maybe` `CapsFeatures`.
noCapsFeatures :: Maybe CapsFeatures
noCapsFeatures = Nothing
#if ENABLE_OVERLOADING
instance O.HasAttributeList CapsFeatures
type instance O.AttributeList CapsFeatures = CapsFeaturesAttributeList
type CapsFeaturesAttributeList = ('[ ] :: [(Symbol, *)])
#endif
-- method CapsFeatures::new_any
-- method type : Constructor
-- Args : []
-- Lengths : []
-- returnType : Just (TInterface (Name {namespace = "Gst", name = "CapsFeatures"}))
-- throws : False
-- Skip return : False
foreign import ccall "gst_caps_features_new_any" gst_caps_features_new_any ::
IO (Ptr CapsFeatures)
{- |
Creates a new, ANY 'GI.Gst.Structs.CapsFeatures.CapsFeatures'. This will be equal
to any other 'GI.Gst.Structs.CapsFeatures.CapsFeatures' but caps with these are
unfixed.
Free-function: gst_caps_features_free
/Since: 1.2/
-}
capsFeaturesNewAny ::
(B.CallStack.HasCallStack, MonadIO m) =>
m CapsFeatures
{- ^ __Returns:__ a new, ANY 'GI.Gst.Structs.CapsFeatures.CapsFeatures' -}
capsFeaturesNewAny = liftIO $ do
result <- gst_caps_features_new_any
checkUnexpectedReturnNULL "capsFeaturesNewAny" result
result' <- (wrapBoxed CapsFeatures) result
return result'
#if ENABLE_OVERLOADING
#endif
-- method CapsFeatures::new_empty
-- method type : Constructor
-- Args : []
-- Lengths : []
-- returnType : Just (TInterface (Name {namespace = "Gst", name = "CapsFeatures"}))
-- throws : False
-- Skip return : False
foreign import ccall "gst_caps_features_new_empty" gst_caps_features_new_empty ::
IO (Ptr CapsFeatures)
{- |
Creates a new, empty 'GI.Gst.Structs.CapsFeatures.CapsFeatures'.
Free-function: gst_caps_features_free
/Since: 1.2/
-}
capsFeaturesNewEmpty ::
(B.CallStack.HasCallStack, MonadIO m) =>
m CapsFeatures
{- ^ __Returns:__ a new, empty 'GI.Gst.Structs.CapsFeatures.CapsFeatures' -}
capsFeaturesNewEmpty = liftIO $ do
result <- gst_caps_features_new_empty
checkUnexpectedReturnNULL "capsFeaturesNewEmpty" result
result' <- (wrapBoxed CapsFeatures) result
return result'
#if ENABLE_OVERLOADING
#endif
-- method CapsFeatures::add
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "features", argType = TInterface (Name {namespace = "Gst", name = "CapsFeatures"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GstCapsFeatures.", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "feature", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a feature.", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Nothing
-- throws : False
-- Skip return : False
foreign import ccall "gst_caps_features_add" gst_caps_features_add ::
Ptr CapsFeatures -> -- features : TInterface (Name {namespace = "Gst", name = "CapsFeatures"})
CString -> -- feature : TBasicType TUTF8
IO ()
{- |
Adds /@feature@/ to /@features@/.
/Since: 1.2/
-}
capsFeaturesAdd ::
(B.CallStack.HasCallStack, MonadIO m) =>
CapsFeatures
{- ^ /@features@/: a 'GI.Gst.Structs.CapsFeatures.CapsFeatures'. -}
-> T.Text
{- ^ /@feature@/: a feature. -}
-> m ()
capsFeaturesAdd features feature = liftIO $ do
features' <- unsafeManagedPtrGetPtr features
feature' <- textToCString feature
gst_caps_features_add features' feature'
touchManagedPtr features
freeMem feature'
return ()
#if ENABLE_OVERLOADING
data CapsFeaturesAddMethodInfo
instance (signature ~ (T.Text -> m ()), MonadIO m) => O.MethodInfo CapsFeaturesAddMethodInfo CapsFeatures signature where
overloadedMethod _ = capsFeaturesAdd
#endif
-- method CapsFeatures::add_id
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "features", argType = TInterface (Name {namespace = "Gst", name = "CapsFeatures"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GstCapsFeatures.", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "feature", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a feature.", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Nothing
-- throws : False
-- Skip return : False
foreign import ccall "gst_caps_features_add_id" gst_caps_features_add_id ::
Ptr CapsFeatures -> -- features : TInterface (Name {namespace = "Gst", name = "CapsFeatures"})
Word32 -> -- feature : TBasicType TUInt32
IO ()
{- |
Adds /@feature@/ to /@features@/.
/Since: 1.2/
-}
capsFeaturesAddId ::
(B.CallStack.HasCallStack, MonadIO m) =>
CapsFeatures
{- ^ /@features@/: a 'GI.Gst.Structs.CapsFeatures.CapsFeatures'. -}
-> Word32
{- ^ /@feature@/: a feature. -}
-> m ()
capsFeaturesAddId features feature = liftIO $ do
features' <- unsafeManagedPtrGetPtr features
gst_caps_features_add_id features' feature
touchManagedPtr features
return ()
#if ENABLE_OVERLOADING
data CapsFeaturesAddIdMethodInfo
instance (signature ~ (Word32 -> m ()), MonadIO m) => O.MethodInfo CapsFeaturesAddIdMethodInfo CapsFeatures signature where
overloadedMethod _ = capsFeaturesAddId
#endif
-- method CapsFeatures::contains
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "features", argType = TInterface (Name {namespace = "Gst", name = "CapsFeatures"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GstCapsFeatures.", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "feature", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a feature", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Just (TBasicType TBoolean)
-- throws : False
-- Skip return : False
foreign import ccall "gst_caps_features_contains" gst_caps_features_contains ::
Ptr CapsFeatures -> -- features : TInterface (Name {namespace = "Gst", name = "CapsFeatures"})
CString -> -- feature : TBasicType TUTF8
IO CInt
{- |
Check if /@features@/ contains /@feature@/.
/Since: 1.2/
-}
capsFeaturesContains ::
(B.CallStack.HasCallStack, MonadIO m) =>
CapsFeatures
{- ^ /@features@/: a 'GI.Gst.Structs.CapsFeatures.CapsFeatures'. -}
-> T.Text
{- ^ /@feature@/: a feature -}
-> m Bool
{- ^ __Returns:__ 'True' if /@features@/ contains /@feature@/. -}
capsFeaturesContains features feature = liftIO $ do
features' <- unsafeManagedPtrGetPtr features
feature' <- textToCString feature
result <- gst_caps_features_contains features' feature'
let result' = (/= 0) result
touchManagedPtr features
freeMem feature'
return result'
#if ENABLE_OVERLOADING
data CapsFeaturesContainsMethodInfo
instance (signature ~ (T.Text -> m Bool), MonadIO m) => O.MethodInfo CapsFeaturesContainsMethodInfo CapsFeatures signature where
overloadedMethod _ = capsFeaturesContains
#endif
-- method CapsFeatures::contains_id
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "features", argType = TInterface (Name {namespace = "Gst", name = "CapsFeatures"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GstCapsFeatures.", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "feature", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a feature", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Just (TBasicType TBoolean)
-- throws : False
-- Skip return : False
foreign import ccall "gst_caps_features_contains_id" gst_caps_features_contains_id ::
Ptr CapsFeatures -> -- features : TInterface (Name {namespace = "Gst", name = "CapsFeatures"})
Word32 -> -- feature : TBasicType TUInt32
IO CInt
{- |
Check if /@features@/ contains /@feature@/.
/Since: 1.2/
-}
capsFeaturesContainsId ::
(B.CallStack.HasCallStack, MonadIO m) =>
CapsFeatures
{- ^ /@features@/: a 'GI.Gst.Structs.CapsFeatures.CapsFeatures'. -}
-> Word32
{- ^ /@feature@/: a feature -}
-> m Bool
{- ^ __Returns:__ 'True' if /@features@/ contains /@feature@/. -}
capsFeaturesContainsId features feature = liftIO $ do
features' <- unsafeManagedPtrGetPtr features
result <- gst_caps_features_contains_id features' feature
let result' = (/= 0) result
touchManagedPtr features
return result'
#if ENABLE_OVERLOADING
data CapsFeaturesContainsIdMethodInfo
instance (signature ~ (Word32 -> m Bool), MonadIO m) => O.MethodInfo CapsFeaturesContainsIdMethodInfo CapsFeatures signature where
overloadedMethod _ = capsFeaturesContainsId
#endif
-- method CapsFeatures::copy
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "features", argType = TInterface (Name {namespace = "Gst", name = "CapsFeatures"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GstCapsFeatures to duplicate", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Just (TInterface (Name {namespace = "Gst", name = "CapsFeatures"}))
-- throws : False
-- Skip return : False
foreign import ccall "gst_caps_features_copy" gst_caps_features_copy ::
Ptr CapsFeatures -> -- features : TInterface (Name {namespace = "Gst", name = "CapsFeatures"})
IO (Ptr CapsFeatures)
{- |
Duplicates a 'GI.Gst.Structs.CapsFeatures.CapsFeatures' and all its values.
Free-function: gst_caps_features_free
/Since: 1.2/
-}
capsFeaturesCopy ::
(B.CallStack.HasCallStack, MonadIO m) =>
CapsFeatures
{- ^ /@features@/: a 'GI.Gst.Structs.CapsFeatures.CapsFeatures' to duplicate -}
-> m CapsFeatures
{- ^ __Returns:__ a new 'GI.Gst.Structs.CapsFeatures.CapsFeatures'. -}
capsFeaturesCopy features = liftIO $ do
features' <- unsafeManagedPtrGetPtr features
result <- gst_caps_features_copy features'
checkUnexpectedReturnNULL "capsFeaturesCopy" result
result' <- (wrapBoxed CapsFeatures) result
touchManagedPtr features
return result'
#if ENABLE_OVERLOADING
data CapsFeaturesCopyMethodInfo
instance (signature ~ (m CapsFeatures), MonadIO m) => O.MethodInfo CapsFeaturesCopyMethodInfo CapsFeatures signature where
overloadedMethod _ = capsFeaturesCopy
#endif
-- method CapsFeatures::free
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "features", argType = TInterface (Name {namespace = "Gst", name = "CapsFeatures"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "the #GstCapsFeatures to free", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything}]
-- Lengths : []
-- returnType : Nothing
-- throws : False
-- Skip return : False
foreign import ccall "gst_caps_features_free" gst_caps_features_free ::
Ptr CapsFeatures -> -- features : TInterface (Name {namespace = "Gst", name = "CapsFeatures"})
IO ()
{- |
Frees a 'GI.Gst.Structs.CapsFeatures.CapsFeatures' and all its values. The caps features must not
have a parent when this function is called.
/Since: 1.2/
-}
capsFeaturesFree ::
(B.CallStack.HasCallStack, MonadIO m) =>
CapsFeatures
{- ^ /@features@/: the 'GI.Gst.Structs.CapsFeatures.CapsFeatures' to free -}
-> m ()
capsFeaturesFree features = liftIO $ do
features' <- B.ManagedPtr.disownBoxed features
gst_caps_features_free features'
touchManagedPtr features
return ()
#if ENABLE_OVERLOADING
data CapsFeaturesFreeMethodInfo
instance (signature ~ (m ()), MonadIO m) => O.MethodInfo CapsFeaturesFreeMethodInfo CapsFeatures signature where
overloadedMethod _ = capsFeaturesFree
#endif
-- method CapsFeatures::get_nth
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "features", argType = TInterface (Name {namespace = "Gst", name = "CapsFeatures"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GstCapsFeatures.", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "i", argType = TBasicType TUInt, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "index of the feature", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Just (TBasicType TUTF8)
-- throws : False
-- Skip return : False
foreign import ccall "gst_caps_features_get_nth" gst_caps_features_get_nth ::
Ptr CapsFeatures -> -- features : TInterface (Name {namespace = "Gst", name = "CapsFeatures"})
Word32 -> -- i : TBasicType TUInt
IO CString
{- |
Returns the /@i@/-th feature of /@features@/.
/Since: 1.2/
-}
capsFeaturesGetNth ::
(B.CallStack.HasCallStack, MonadIO m) =>
CapsFeatures
{- ^ /@features@/: a 'GI.Gst.Structs.CapsFeatures.CapsFeatures'. -}
-> Word32
{- ^ /@i@/: index of the feature -}
-> m (Maybe T.Text)
{- ^ __Returns:__ The /@i@/-th feature of /@features@/. -}
capsFeaturesGetNth features i = liftIO $ do
features' <- unsafeManagedPtrGetPtr features
result <- gst_caps_features_get_nth features' i
maybeResult <- convertIfNonNull result $ \result' -> do
result'' <- cstringToText result'
return result''
touchManagedPtr features
return maybeResult
#if ENABLE_OVERLOADING
data CapsFeaturesGetNthMethodInfo
instance (signature ~ (Word32 -> m (Maybe T.Text)), MonadIO m) => O.MethodInfo CapsFeaturesGetNthMethodInfo CapsFeatures signature where
overloadedMethod _ = capsFeaturesGetNth
#endif
-- method CapsFeatures::get_nth_id
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "features", argType = TInterface (Name {namespace = "Gst", name = "CapsFeatures"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GstCapsFeatures.", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "i", argType = TBasicType TUInt, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "index of the feature", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Just (TBasicType TUInt32)
-- throws : False
-- Skip return : False
foreign import ccall "gst_caps_features_get_nth_id" gst_caps_features_get_nth_id ::
Ptr CapsFeatures -> -- features : TInterface (Name {namespace = "Gst", name = "CapsFeatures"})
Word32 -> -- i : TBasicType TUInt
IO Word32
{- |
Returns the /@i@/-th feature of /@features@/.
/Since: 1.2/
-}
capsFeaturesGetNthId ::
(B.CallStack.HasCallStack, MonadIO m) =>
CapsFeatures
{- ^ /@features@/: a 'GI.Gst.Structs.CapsFeatures.CapsFeatures'. -}
-> Word32
{- ^ /@i@/: index of the feature -}
-> m Word32
{- ^ __Returns:__ The /@i@/-th feature of /@features@/. -}
capsFeaturesGetNthId features i = liftIO $ do
features' <- unsafeManagedPtrGetPtr features
result <- gst_caps_features_get_nth_id features' i
touchManagedPtr features
return result
#if ENABLE_OVERLOADING
data CapsFeaturesGetNthIdMethodInfo
instance (signature ~ (Word32 -> m Word32), MonadIO m) => O.MethodInfo CapsFeaturesGetNthIdMethodInfo CapsFeatures signature where
overloadedMethod _ = capsFeaturesGetNthId
#endif
-- method CapsFeatures::get_size
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "features", argType = TInterface (Name {namespace = "Gst", name = "CapsFeatures"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GstCapsFeatures.", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Just (TBasicType TUInt)
-- throws : False
-- Skip return : False
foreign import ccall "gst_caps_features_get_size" gst_caps_features_get_size ::
Ptr CapsFeatures -> -- features : TInterface (Name {namespace = "Gst", name = "CapsFeatures"})
IO Word32
{- |
Returns the number of features in /@features@/.
/Since: 1.2/
-}
capsFeaturesGetSize ::
(B.CallStack.HasCallStack, MonadIO m) =>
CapsFeatures
{- ^ /@features@/: a 'GI.Gst.Structs.CapsFeatures.CapsFeatures'. -}
-> m Word32
{- ^ __Returns:__ The number of features in /@features@/. -}
capsFeaturesGetSize features = liftIO $ do
features' <- unsafeManagedPtrGetPtr features
result <- gst_caps_features_get_size features'
touchManagedPtr features
return result
#if ENABLE_OVERLOADING
data CapsFeaturesGetSizeMethodInfo
instance (signature ~ (m Word32), MonadIO m) => O.MethodInfo CapsFeaturesGetSizeMethodInfo CapsFeatures signature where
overloadedMethod _ = capsFeaturesGetSize
#endif
-- method CapsFeatures::is_any
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "features", argType = TInterface (Name {namespace = "Gst", name = "CapsFeatures"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GstCapsFeatures.", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Just (TBasicType TBoolean)
-- throws : False
-- Skip return : False
foreign import ccall "gst_caps_features_is_any" gst_caps_features_is_any ::
Ptr CapsFeatures -> -- features : TInterface (Name {namespace = "Gst", name = "CapsFeatures"})
IO CInt
{- |
Check if /@features@/ is @/GST_CAPS_FEATURES_ANY/@.
/Since: 1.2/
-}
capsFeaturesIsAny ::
(B.CallStack.HasCallStack, MonadIO m) =>
CapsFeatures
{- ^ /@features@/: a 'GI.Gst.Structs.CapsFeatures.CapsFeatures'. -}
-> m Bool
{- ^ __Returns:__ 'True' if /@features@/ is @/GST_CAPS_FEATURES_ANY/@. -}
capsFeaturesIsAny features = liftIO $ do
features' <- unsafeManagedPtrGetPtr features
result <- gst_caps_features_is_any features'
let result' = (/= 0) result
touchManagedPtr features
return result'
#if ENABLE_OVERLOADING
data CapsFeaturesIsAnyMethodInfo
instance (signature ~ (m Bool), MonadIO m) => O.MethodInfo CapsFeaturesIsAnyMethodInfo CapsFeatures signature where
overloadedMethod _ = capsFeaturesIsAny
#endif
-- method CapsFeatures::is_equal
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "features1", argType = TInterface (Name {namespace = "Gst", name = "CapsFeatures"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GstCapsFeatures.", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "features2", argType = TInterface (Name {namespace = "Gst", name = "CapsFeatures"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GstCapsFeatures.", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Just (TBasicType TBoolean)
-- throws : False
-- Skip return : False
foreign import ccall "gst_caps_features_is_equal" gst_caps_features_is_equal ::
Ptr CapsFeatures -> -- features1 : TInterface (Name {namespace = "Gst", name = "CapsFeatures"})
Ptr CapsFeatures -> -- features2 : TInterface (Name {namespace = "Gst", name = "CapsFeatures"})
IO CInt
{- |
Check if /@features1@/ and /@features2@/ are equal.
/Since: 1.2/
-}
capsFeaturesIsEqual ::
(B.CallStack.HasCallStack, MonadIO m) =>
CapsFeatures
{- ^ /@features1@/: a 'GI.Gst.Structs.CapsFeatures.CapsFeatures'. -}
-> CapsFeatures
{- ^ /@features2@/: a 'GI.Gst.Structs.CapsFeatures.CapsFeatures'. -}
-> m Bool
{- ^ __Returns:__ 'True' if /@features1@/ and /@features2@/ are equal. -}
capsFeaturesIsEqual features1 features2 = liftIO $ do
features1' <- unsafeManagedPtrGetPtr features1
features2' <- unsafeManagedPtrGetPtr features2
result <- gst_caps_features_is_equal features1' features2'
let result' = (/= 0) result
touchManagedPtr features1
touchManagedPtr features2
return result'
#if ENABLE_OVERLOADING
data CapsFeaturesIsEqualMethodInfo
instance (signature ~ (CapsFeatures -> m Bool), MonadIO m) => O.MethodInfo CapsFeaturesIsEqualMethodInfo CapsFeatures signature where
overloadedMethod _ = capsFeaturesIsEqual
#endif
-- method CapsFeatures::remove
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "features", argType = TInterface (Name {namespace = "Gst", name = "CapsFeatures"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GstCapsFeatures.", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "feature", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a feature.", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Nothing
-- throws : False
-- Skip return : False
foreign import ccall "gst_caps_features_remove" gst_caps_features_remove ::
Ptr CapsFeatures -> -- features : TInterface (Name {namespace = "Gst", name = "CapsFeatures"})
CString -> -- feature : TBasicType TUTF8
IO ()
{- |
Removes /@feature@/ from /@features@/.
/Since: 1.2/
-}
capsFeaturesRemove ::
(B.CallStack.HasCallStack, MonadIO m) =>
CapsFeatures
{- ^ /@features@/: a 'GI.Gst.Structs.CapsFeatures.CapsFeatures'. -}
-> T.Text
{- ^ /@feature@/: a feature. -}
-> m ()
capsFeaturesRemove features feature = liftIO $ do
features' <- unsafeManagedPtrGetPtr features
feature' <- textToCString feature
gst_caps_features_remove features' feature'
touchManagedPtr features
freeMem feature'
return ()
#if ENABLE_OVERLOADING
data CapsFeaturesRemoveMethodInfo
instance (signature ~ (T.Text -> m ()), MonadIO m) => O.MethodInfo CapsFeaturesRemoveMethodInfo CapsFeatures signature where
overloadedMethod _ = capsFeaturesRemove
#endif
-- method CapsFeatures::remove_id
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "features", argType = TInterface (Name {namespace = "Gst", name = "CapsFeatures"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GstCapsFeatures.", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "feature", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a feature.", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Nothing
-- throws : False
-- Skip return : False
foreign import ccall "gst_caps_features_remove_id" gst_caps_features_remove_id ::
Ptr CapsFeatures -> -- features : TInterface (Name {namespace = "Gst", name = "CapsFeatures"})
Word32 -> -- feature : TBasicType TUInt32
IO ()
{- |
Removes /@feature@/ from /@features@/.
/Since: 1.2/
-}
capsFeaturesRemoveId ::
(B.CallStack.HasCallStack, MonadIO m) =>
CapsFeatures
{- ^ /@features@/: a 'GI.Gst.Structs.CapsFeatures.CapsFeatures'. -}
-> Word32
{- ^ /@feature@/: a feature. -}
-> m ()
capsFeaturesRemoveId features feature = liftIO $ do
features' <- unsafeManagedPtrGetPtr features
gst_caps_features_remove_id features' feature
touchManagedPtr features
return ()
#if ENABLE_OVERLOADING
data CapsFeaturesRemoveIdMethodInfo
instance (signature ~ (Word32 -> m ()), MonadIO m) => O.MethodInfo CapsFeaturesRemoveIdMethodInfo CapsFeatures signature where
overloadedMethod _ = capsFeaturesRemoveId
#endif
-- method CapsFeatures::set_parent_refcount
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "features", argType = TInterface (Name {namespace = "Gst", name = "CapsFeatures"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GstCapsFeatures", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "refcount", argType = TBasicType TInt, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a pointer to the parent's refcount", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Just (TBasicType TBoolean)
-- throws : False
-- Skip return : False
foreign import ccall "gst_caps_features_set_parent_refcount" gst_caps_features_set_parent_refcount ::
Ptr CapsFeatures -> -- features : TInterface (Name {namespace = "Gst", name = "CapsFeatures"})
Int32 -> -- refcount : TBasicType TInt
IO CInt
{- |
Sets the parent_refcount field of 'GI.Gst.Structs.CapsFeatures.CapsFeatures'. This field is used to
determine whether a caps features is mutable or not. This function should only be
called by code implementing parent objects of 'GI.Gst.Structs.CapsFeatures.CapsFeatures', as described in
the MT Refcounting section of the design documents.
/Since: 1.2/
-}
capsFeaturesSetParentRefcount ::
(B.CallStack.HasCallStack, MonadIO m) =>
CapsFeatures
{- ^ /@features@/: a 'GI.Gst.Structs.CapsFeatures.CapsFeatures' -}
-> Int32
{- ^ /@refcount@/: a pointer to the parent\'s refcount -}
-> m Bool
{- ^ __Returns:__ 'True' if the parent refcount could be set. -}
capsFeaturesSetParentRefcount features refcount = liftIO $ do
features' <- unsafeManagedPtrGetPtr features
result <- gst_caps_features_set_parent_refcount features' refcount
let result' = (/= 0) result
touchManagedPtr features
return result'
#if ENABLE_OVERLOADING
data CapsFeaturesSetParentRefcountMethodInfo
instance (signature ~ (Int32 -> m Bool), MonadIO m) => O.MethodInfo CapsFeaturesSetParentRefcountMethodInfo CapsFeatures signature where
overloadedMethod _ = capsFeaturesSetParentRefcount
#endif
-- method CapsFeatures::to_string
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "features", argType = TInterface (Name {namespace = "Gst", name = "CapsFeatures"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GstCapsFeatures", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Just (TBasicType TUTF8)
-- throws : False
-- Skip return : False
foreign import ccall "gst_caps_features_to_string" gst_caps_features_to_string ::
Ptr CapsFeatures -> -- features : TInterface (Name {namespace = "Gst", name = "CapsFeatures"})
IO CString
{- |
Converts /@features@/ to a human-readable string representation.
For debugging purposes its easier to do something like this:
=== /C code/
>
>GST_LOG ("features is %" GST_PTR_FORMAT, features);
This prints the features in human readable form.
Free-function: g_free
/Since: 1.2/
-}
capsFeaturesToString ::
(B.CallStack.HasCallStack, MonadIO m) =>
CapsFeatures
{- ^ /@features@/: a 'GI.Gst.Structs.CapsFeatures.CapsFeatures' -}
-> m T.Text
{- ^ __Returns:__ a pointer to string allocated by 'GI.GLib.Functions.malloc'.
'GI.GLib.Functions.free' after usage. -}
capsFeaturesToString features = liftIO $ do
features' <- unsafeManagedPtrGetPtr features
result <- gst_caps_features_to_string features'
checkUnexpectedReturnNULL "capsFeaturesToString" result
result' <- cstringToText result
freeMem result
touchManagedPtr features
return result'
#if ENABLE_OVERLOADING
data CapsFeaturesToStringMethodInfo
instance (signature ~ (m T.Text), MonadIO m) => O.MethodInfo CapsFeaturesToStringMethodInfo CapsFeatures signature where
overloadedMethod _ = capsFeaturesToString
#endif
-- method CapsFeatures::from_string
-- method type : MemberFunction
-- Args : [Arg {argCName = "features", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a string representation of a #GstCapsFeatures.", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Just (TInterface (Name {namespace = "Gst", name = "CapsFeatures"}))
-- throws : False
-- Skip return : False
foreign import ccall "gst_caps_features_from_string" gst_caps_features_from_string ::
CString -> -- features : TBasicType TUTF8
IO (Ptr CapsFeatures)
{- |
Creates a 'GI.Gst.Structs.CapsFeatures.CapsFeatures' from a string representation.
Free-function: gst_caps_features_free
/Since: 1.2/
-}
capsFeaturesFromString ::
(B.CallStack.HasCallStack, MonadIO m) =>
T.Text
{- ^ /@features@/: a string representation of a 'GI.Gst.Structs.CapsFeatures.CapsFeatures'. -}
-> m (Maybe CapsFeatures)
{- ^ __Returns:__ a new 'GI.Gst.Structs.CapsFeatures.CapsFeatures' or
'Nothing' when the string could not be parsed. Free with
'GI.Gst.Structs.CapsFeatures.capsFeaturesFree' after use. -}
capsFeaturesFromString features = liftIO $ do
features' <- textToCString features
result <- gst_caps_features_from_string features'
maybeResult <- convertIfNonNull result $ \result' -> do
result'' <- (wrapBoxed CapsFeatures) result'
return result''
freeMem features'
return maybeResult
#if ENABLE_OVERLOADING
#endif
#if ENABLE_OVERLOADING
type family ResolveCapsFeaturesMethod (t :: Symbol) (o :: *) :: * where
ResolveCapsFeaturesMethod "add" o = CapsFeaturesAddMethodInfo
ResolveCapsFeaturesMethod "addId" o = CapsFeaturesAddIdMethodInfo
ResolveCapsFeaturesMethod "contains" o = CapsFeaturesContainsMethodInfo
ResolveCapsFeaturesMethod "containsId" o = CapsFeaturesContainsIdMethodInfo
ResolveCapsFeaturesMethod "copy" o = CapsFeaturesCopyMethodInfo
ResolveCapsFeaturesMethod "free" o = CapsFeaturesFreeMethodInfo
ResolveCapsFeaturesMethod "isAny" o = CapsFeaturesIsAnyMethodInfo
ResolveCapsFeaturesMethod "isEqual" o = CapsFeaturesIsEqualMethodInfo
ResolveCapsFeaturesMethod "remove" o = CapsFeaturesRemoveMethodInfo
ResolveCapsFeaturesMethod "removeId" o = CapsFeaturesRemoveIdMethodInfo
ResolveCapsFeaturesMethod "toString" o = CapsFeaturesToStringMethodInfo
ResolveCapsFeaturesMethod "getNth" o = CapsFeaturesGetNthMethodInfo
ResolveCapsFeaturesMethod "getNthId" o = CapsFeaturesGetNthIdMethodInfo
ResolveCapsFeaturesMethod "getSize" o = CapsFeaturesGetSizeMethodInfo
ResolveCapsFeaturesMethod "setParentRefcount" o = CapsFeaturesSetParentRefcountMethodInfo
ResolveCapsFeaturesMethod l o = O.MethodResolutionFailed l o
instance (info ~ ResolveCapsFeaturesMethod t CapsFeatures, O.MethodInfo info CapsFeatures p) => OL.IsLabel t (CapsFeatures -> p) where
#if MIN_VERSION_base(4,10,0)
fromLabel = O.overloadedMethod (O.MethodProxy :: O.MethodProxy info)
#else
fromLabel _ = O.overloadedMethod (O.MethodProxy :: O.MethodProxy info)
#endif
#endif