gi-gst-1.0.18: GI/Gst/Objects/DeviceProviderFactory.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.Objects.DeviceProviderFactory.DeviceProviderFactory' is used to create instances of device providers. A
GstDeviceProviderfactory can be added to a 'GI.Gst.Objects.Plugin.Plugin' as it is also a
'GI.Gst.Objects.PluginFeature.PluginFeature'.
Use the 'GI.Gst.Objects.DeviceProviderFactory.deviceProviderFactoryFind' and
'GI.Gst.Objects.DeviceProviderFactory.deviceProviderFactoryGet' functions to create device
provider instances or use 'GI.Gst.Objects.DeviceProviderFactory.deviceProviderFactoryGetByName' as a
convenient shortcut.
/Since: 1.4/
-}
#define ENABLE_OVERLOADING (MIN_VERSION_haskell_gi_overloading(1,0,0) \
&& !defined(__HADDOCK_VERSION__))
module GI.Gst.Objects.DeviceProviderFactory
(
-- * Exported types
DeviceProviderFactory(..) ,
IsDeviceProviderFactory ,
toDeviceProviderFactory ,
noDeviceProviderFactory ,
-- * Methods
-- ** find #method:find#
deviceProviderFactoryFind ,
-- ** get #method:get#
#if ENABLE_OVERLOADING
DeviceProviderFactoryGetMethodInfo ,
#endif
deviceProviderFactoryGet ,
-- ** getByName #method:getByName#
deviceProviderFactoryGetByName ,
-- ** getDeviceProviderType #method:getDeviceProviderType#
#if ENABLE_OVERLOADING
DeviceProviderFactoryGetDeviceProviderTypeMethodInfo,
#endif
deviceProviderFactoryGetDeviceProviderType,
-- ** getMetadata #method:getMetadata#
#if ENABLE_OVERLOADING
DeviceProviderFactoryGetMetadataMethodInfo,
#endif
deviceProviderFactoryGetMetadata ,
-- ** getMetadataKeys #method:getMetadataKeys#
#if ENABLE_OVERLOADING
DeviceProviderFactoryGetMetadataKeysMethodInfo,
#endif
deviceProviderFactoryGetMetadataKeys ,
-- ** hasClasses #method:hasClasses#
#if ENABLE_OVERLOADING
DeviceProviderFactoryHasClassesMethodInfo,
#endif
deviceProviderFactoryHasClasses ,
-- ** hasClassesv #method:hasClassesv#
#if ENABLE_OVERLOADING
DeviceProviderFactoryHasClassesvMethodInfo,
#endif
deviceProviderFactoryHasClassesv ,
-- ** listGetDeviceProviders #method:listGetDeviceProviders#
deviceProviderFactoryListGetDeviceProviders,
) where
import Data.GI.Base.ShortPrelude
import qualified Data.GI.Base.ShortPrelude as SP
import qualified Data.GI.Base.Overloading as O
import qualified Prelude as P
import qualified Data.GI.Base.Attributes as GI.Attributes
import qualified Data.GI.Base.ManagedPtr as B.ManagedPtr
import qualified Data.GI.Base.GClosure as B.GClosure
import qualified Data.GI.Base.GError as B.GError
import qualified Data.GI.Base.GVariant as B.GVariant
import qualified Data.GI.Base.GValue as B.GValue
import qualified Data.GI.Base.GParamSpec as B.GParamSpec
import qualified Data.GI.Base.CallStack as B.CallStack
import qualified Data.GI.Base.Properties as B.Properties
import qualified Data.Text as T
import qualified Data.ByteString.Char8 as B
import qualified Data.Map as Map
import qualified Foreign.Ptr as FP
import qualified GHC.OverloadedLabels as OL
import qualified GI.GObject.Objects.Object as GObject.Object
import {-# SOURCE #-} qualified GI.Gst.Enums as Gst.Enums
import {-# SOURCE #-} qualified GI.Gst.Objects.DeviceProvider as Gst.DeviceProvider
import {-# SOURCE #-} qualified GI.Gst.Objects.Object as Gst.Object
import {-# SOURCE #-} qualified GI.Gst.Objects.PluginFeature as Gst.PluginFeature
-- | Memory-managed wrapper type.
newtype DeviceProviderFactory = DeviceProviderFactory (ManagedPtr DeviceProviderFactory)
foreign import ccall "gst_device_provider_factory_get_type"
c_gst_device_provider_factory_get_type :: IO GType
instance GObject DeviceProviderFactory where
gobjectType = c_gst_device_provider_factory_get_type
-- | Type class for types which can be safely cast to `DeviceProviderFactory`, for instance with `toDeviceProviderFactory`.
class (GObject o, O.IsDescendantOf DeviceProviderFactory o) => IsDeviceProviderFactory o
instance (GObject o, O.IsDescendantOf DeviceProviderFactory o) => IsDeviceProviderFactory o
instance O.HasParentTypes DeviceProviderFactory
type instance O.ParentTypes DeviceProviderFactory = '[Gst.PluginFeature.PluginFeature, Gst.Object.Object, GObject.Object.Object]
-- | Cast to `DeviceProviderFactory`, for types for which this is known to be safe. For general casts, use `Data.GI.Base.ManagedPtr.castTo`.
toDeviceProviderFactory :: (MonadIO m, IsDeviceProviderFactory o) => o -> m DeviceProviderFactory
toDeviceProviderFactory = liftIO . unsafeCastTo DeviceProviderFactory
-- | A convenience alias for `Nothing` :: `Maybe` `DeviceProviderFactory`.
noDeviceProviderFactory :: Maybe DeviceProviderFactory
noDeviceProviderFactory = Nothing
#if ENABLE_OVERLOADING
type family ResolveDeviceProviderFactoryMethod (t :: Symbol) (o :: *) :: * where
ResolveDeviceProviderFactoryMethod "addControlBinding" o = Gst.Object.ObjectAddControlBindingMethodInfo
ResolveDeviceProviderFactoryMethod "bindProperty" o = GObject.Object.ObjectBindPropertyMethodInfo
ResolveDeviceProviderFactoryMethod "bindPropertyFull" o = GObject.Object.ObjectBindPropertyFullMethodInfo
ResolveDeviceProviderFactoryMethod "checkVersion" o = Gst.PluginFeature.PluginFeatureCheckVersionMethodInfo
ResolveDeviceProviderFactoryMethod "defaultError" o = Gst.Object.ObjectDefaultErrorMethodInfo
ResolveDeviceProviderFactoryMethod "forceFloating" o = GObject.Object.ObjectForceFloatingMethodInfo
ResolveDeviceProviderFactoryMethod "freezeNotify" o = GObject.Object.ObjectFreezeNotifyMethodInfo
ResolveDeviceProviderFactoryMethod "get" o = DeviceProviderFactoryGetMethodInfo
ResolveDeviceProviderFactoryMethod "getv" o = GObject.Object.ObjectGetvMethodInfo
ResolveDeviceProviderFactoryMethod "hasActiveControlBindings" o = Gst.Object.ObjectHasActiveControlBindingsMethodInfo
ResolveDeviceProviderFactoryMethod "hasAncestor" o = Gst.Object.ObjectHasAncestorMethodInfo
ResolveDeviceProviderFactoryMethod "hasAsAncestor" o = Gst.Object.ObjectHasAsAncestorMethodInfo
ResolveDeviceProviderFactoryMethod "hasAsParent" o = Gst.Object.ObjectHasAsParentMethodInfo
ResolveDeviceProviderFactoryMethod "hasClasses" o = DeviceProviderFactoryHasClassesMethodInfo
ResolveDeviceProviderFactoryMethod "hasClassesv" o = DeviceProviderFactoryHasClassesvMethodInfo
ResolveDeviceProviderFactoryMethod "isFloating" o = GObject.Object.ObjectIsFloatingMethodInfo
ResolveDeviceProviderFactoryMethod "load" o = Gst.PluginFeature.PluginFeatureLoadMethodInfo
ResolveDeviceProviderFactoryMethod "notify" o = GObject.Object.ObjectNotifyMethodInfo
ResolveDeviceProviderFactoryMethod "notifyByPspec" o = GObject.Object.ObjectNotifyByPspecMethodInfo
ResolveDeviceProviderFactoryMethod "ref" o = Gst.Object.ObjectRefMethodInfo
ResolveDeviceProviderFactoryMethod "refSink" o = GObject.Object.ObjectRefSinkMethodInfo
ResolveDeviceProviderFactoryMethod "removeControlBinding" o = Gst.Object.ObjectRemoveControlBindingMethodInfo
ResolveDeviceProviderFactoryMethod "runDispose" o = GObject.Object.ObjectRunDisposeMethodInfo
ResolveDeviceProviderFactoryMethod "stealData" o = GObject.Object.ObjectStealDataMethodInfo
ResolveDeviceProviderFactoryMethod "stealQdata" o = GObject.Object.ObjectStealQdataMethodInfo
ResolveDeviceProviderFactoryMethod "suggestNextSync" o = Gst.Object.ObjectSuggestNextSyncMethodInfo
ResolveDeviceProviderFactoryMethod "syncValues" o = Gst.Object.ObjectSyncValuesMethodInfo
ResolveDeviceProviderFactoryMethod "thawNotify" o = GObject.Object.ObjectThawNotifyMethodInfo
ResolveDeviceProviderFactoryMethod "unparent" o = Gst.Object.ObjectUnparentMethodInfo
ResolveDeviceProviderFactoryMethod "unref" o = Gst.Object.ObjectUnrefMethodInfo
ResolveDeviceProviderFactoryMethod "watchClosure" o = GObject.Object.ObjectWatchClosureMethodInfo
ResolveDeviceProviderFactoryMethod "getControlBinding" o = Gst.Object.ObjectGetControlBindingMethodInfo
ResolveDeviceProviderFactoryMethod "getControlRate" o = Gst.Object.ObjectGetControlRateMethodInfo
ResolveDeviceProviderFactoryMethod "getData" o = GObject.Object.ObjectGetDataMethodInfo
ResolveDeviceProviderFactoryMethod "getDeviceProviderType" o = DeviceProviderFactoryGetDeviceProviderTypeMethodInfo
ResolveDeviceProviderFactoryMethod "getGValueArray" o = Gst.Object.ObjectGetGValueArrayMethodInfo
ResolveDeviceProviderFactoryMethod "getMetadata" o = DeviceProviderFactoryGetMetadataMethodInfo
ResolveDeviceProviderFactoryMethod "getMetadataKeys" o = DeviceProviderFactoryGetMetadataKeysMethodInfo
ResolveDeviceProviderFactoryMethod "getName" o = Gst.Object.ObjectGetNameMethodInfo
ResolveDeviceProviderFactoryMethod "getParent" o = Gst.Object.ObjectGetParentMethodInfo
ResolveDeviceProviderFactoryMethod "getPathString" o = Gst.Object.ObjectGetPathStringMethodInfo
ResolveDeviceProviderFactoryMethod "getPlugin" o = Gst.PluginFeature.PluginFeatureGetPluginMethodInfo
ResolveDeviceProviderFactoryMethod "getPluginName" o = Gst.PluginFeature.PluginFeatureGetPluginNameMethodInfo
ResolveDeviceProviderFactoryMethod "getProperty" o = GObject.Object.ObjectGetPropertyMethodInfo
ResolveDeviceProviderFactoryMethod "getQdata" o = GObject.Object.ObjectGetQdataMethodInfo
ResolveDeviceProviderFactoryMethod "getRank" o = Gst.PluginFeature.PluginFeatureGetRankMethodInfo
ResolveDeviceProviderFactoryMethod "getValue" o = Gst.Object.ObjectGetValueMethodInfo
ResolveDeviceProviderFactoryMethod "setControlBindingDisabled" o = Gst.Object.ObjectSetControlBindingDisabledMethodInfo
ResolveDeviceProviderFactoryMethod "setControlBindingsDisabled" o = Gst.Object.ObjectSetControlBindingsDisabledMethodInfo
ResolveDeviceProviderFactoryMethod "setControlRate" o = Gst.Object.ObjectSetControlRateMethodInfo
ResolveDeviceProviderFactoryMethod "setData" o = GObject.Object.ObjectSetDataMethodInfo
ResolveDeviceProviderFactoryMethod "setName" o = Gst.Object.ObjectSetNameMethodInfo
ResolveDeviceProviderFactoryMethod "setParent" o = Gst.Object.ObjectSetParentMethodInfo
ResolveDeviceProviderFactoryMethod "setProperty" o = GObject.Object.ObjectSetPropertyMethodInfo
ResolveDeviceProviderFactoryMethod "setRank" o = Gst.PluginFeature.PluginFeatureSetRankMethodInfo
ResolveDeviceProviderFactoryMethod l o = O.MethodResolutionFailed l o
instance (info ~ ResolveDeviceProviderFactoryMethod t DeviceProviderFactory, O.MethodInfo info DeviceProviderFactory p) => OL.IsLabel t (DeviceProviderFactory -> 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
#if ENABLE_OVERLOADING
instance O.HasAttributeList DeviceProviderFactory
type instance O.AttributeList DeviceProviderFactory = DeviceProviderFactoryAttributeList
type DeviceProviderFactoryAttributeList = ('[ '("name", Gst.Object.ObjectNamePropertyInfo), '("parent", Gst.Object.ObjectParentPropertyInfo)] :: [(Symbol, *)])
#endif
#if ENABLE_OVERLOADING
#endif
#if ENABLE_OVERLOADING
type instance O.SignalList DeviceProviderFactory = DeviceProviderFactorySignalList
type DeviceProviderFactorySignalList = ('[ '("deepNotify", Gst.Object.ObjectDeepNotifySignalInfo), '("notify", GObject.Object.ObjectNotifySignalInfo)] :: [(Symbol, *)])
#endif
-- method DeviceProviderFactory::get
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "factory", argType = TInterface (Name {namespace = "Gst", name = "DeviceProviderFactory"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "factory to instantiate", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Just (TInterface (Name {namespace = "Gst", name = "DeviceProvider"}))
-- throws : False
-- Skip return : False
foreign import ccall "gst_device_provider_factory_get" gst_device_provider_factory_get ::
Ptr DeviceProviderFactory -> -- factory : TInterface (Name {namespace = "Gst", name = "DeviceProviderFactory"})
IO (Ptr Gst.DeviceProvider.DeviceProvider)
{- |
Returns the device provider of the type defined by the given device
providerfactory.
/Since: 1.4/
-}
deviceProviderFactoryGet ::
(B.CallStack.HasCallStack, MonadIO m, IsDeviceProviderFactory a) =>
a
{- ^ /@factory@/: factory to instantiate -}
-> m (Maybe Gst.DeviceProvider.DeviceProvider)
{- ^ __Returns:__ the 'GI.Gst.Objects.DeviceProvider.DeviceProvider' or 'Nothing'
if the device provider couldn\'t be created -}
deviceProviderFactoryGet factory = liftIO $ do
factory' <- unsafeManagedPtrCastPtr factory
result <- gst_device_provider_factory_get factory'
maybeResult <- convertIfNonNull result $ \result' -> do
result'' <- (wrapObject Gst.DeviceProvider.DeviceProvider) result'
return result''
touchManagedPtr factory
return maybeResult
#if ENABLE_OVERLOADING
data DeviceProviderFactoryGetMethodInfo
instance (signature ~ (m (Maybe Gst.DeviceProvider.DeviceProvider)), MonadIO m, IsDeviceProviderFactory a) => O.MethodInfo DeviceProviderFactoryGetMethodInfo a signature where
overloadedMethod _ = deviceProviderFactoryGet
#endif
-- method DeviceProviderFactory::get_device_provider_type
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "factory", argType = TInterface (Name {namespace = "Gst", name = "DeviceProviderFactory"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "factory to get managed #GType from", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Just (TBasicType TGType)
-- throws : False
-- Skip return : False
foreign import ccall "gst_device_provider_factory_get_device_provider_type" gst_device_provider_factory_get_device_provider_type ::
Ptr DeviceProviderFactory -> -- factory : TInterface (Name {namespace = "Gst", name = "DeviceProviderFactory"})
IO CGType
{- |
Get the 'GType' for device providers managed by this factory. The type can
only be retrieved if the device provider factory is loaded, which can be
assured with 'GI.Gst.Objects.PluginFeature.pluginFeatureLoad'.
/Since: 1.4/
-}
deviceProviderFactoryGetDeviceProviderType ::
(B.CallStack.HasCallStack, MonadIO m, IsDeviceProviderFactory a) =>
a
{- ^ /@factory@/: factory to get managed 'GType' from -}
-> m GType
{- ^ __Returns:__ the 'GType' for device providers managed by this factory. -}
deviceProviderFactoryGetDeviceProviderType factory = liftIO $ do
factory' <- unsafeManagedPtrCastPtr factory
result <- gst_device_provider_factory_get_device_provider_type factory'
let result' = GType result
touchManagedPtr factory
return result'
#if ENABLE_OVERLOADING
data DeviceProviderFactoryGetDeviceProviderTypeMethodInfo
instance (signature ~ (m GType), MonadIO m, IsDeviceProviderFactory a) => O.MethodInfo DeviceProviderFactoryGetDeviceProviderTypeMethodInfo a signature where
overloadedMethod _ = deviceProviderFactoryGetDeviceProviderType
#endif
-- method DeviceProviderFactory::get_metadata
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "factory", argType = TInterface (Name {namespace = "Gst", name = "DeviceProviderFactory"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GstDeviceProviderFactory", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "key", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a key", 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_device_provider_factory_get_metadata" gst_device_provider_factory_get_metadata ::
Ptr DeviceProviderFactory -> -- factory : TInterface (Name {namespace = "Gst", name = "DeviceProviderFactory"})
CString -> -- key : TBasicType TUTF8
IO CString
{- |
Get the metadata on /@factory@/ with /@key@/.
/Since: 1.4/
-}
deviceProviderFactoryGetMetadata ::
(B.CallStack.HasCallStack, MonadIO m, IsDeviceProviderFactory a) =>
a
{- ^ /@factory@/: a 'GI.Gst.Objects.DeviceProviderFactory.DeviceProviderFactory' -}
-> T.Text
{- ^ /@key@/: a key -}
-> m (Maybe T.Text)
{- ^ __Returns:__ the metadata with /@key@/ on /@factory@/ or 'Nothing'
when there was no metadata with the given /@key@/. -}
deviceProviderFactoryGetMetadata factory key = liftIO $ do
factory' <- unsafeManagedPtrCastPtr factory
key' <- textToCString key
result <- gst_device_provider_factory_get_metadata factory' key'
maybeResult <- convertIfNonNull result $ \result' -> do
result'' <- cstringToText result'
return result''
touchManagedPtr factory
freeMem key'
return maybeResult
#if ENABLE_OVERLOADING
data DeviceProviderFactoryGetMetadataMethodInfo
instance (signature ~ (T.Text -> m (Maybe T.Text)), MonadIO m, IsDeviceProviderFactory a) => O.MethodInfo DeviceProviderFactoryGetMetadataMethodInfo a signature where
overloadedMethod _ = deviceProviderFactoryGetMetadata
#endif
-- method DeviceProviderFactory::get_metadata_keys
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "factory", argType = TInterface (Name {namespace = "Gst", name = "DeviceProviderFactory"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GstDeviceProviderFactory", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Just (TCArray True (-1) (-1) (TBasicType TUTF8))
-- throws : False
-- Skip return : False
foreign import ccall "gst_device_provider_factory_get_metadata_keys" gst_device_provider_factory_get_metadata_keys ::
Ptr DeviceProviderFactory -> -- factory : TInterface (Name {namespace = "Gst", name = "DeviceProviderFactory"})
IO (Ptr CString)
{- |
Get the available keys for the metadata on /@factory@/.
/Since: 1.4/
-}
deviceProviderFactoryGetMetadataKeys ::
(B.CallStack.HasCallStack, MonadIO m, IsDeviceProviderFactory a) =>
a
{- ^ /@factory@/: a 'GI.Gst.Objects.DeviceProviderFactory.DeviceProviderFactory' -}
-> m (Maybe [T.Text])
{- ^ __Returns:__
a 'Nothing'-terminated array of key strings, or 'Nothing' when there is no
metadata. Free with 'GI.GLib.Functions.strfreev' when no longer needed. -}
deviceProviderFactoryGetMetadataKeys factory = liftIO $ do
factory' <- unsafeManagedPtrCastPtr factory
result <- gst_device_provider_factory_get_metadata_keys factory'
maybeResult <- convertIfNonNull result $ \result' -> do
result'' <- unpackZeroTerminatedUTF8CArray result'
mapZeroTerminatedCArray freeMem result'
freeMem result'
return result''
touchManagedPtr factory
return maybeResult
#if ENABLE_OVERLOADING
data DeviceProviderFactoryGetMetadataKeysMethodInfo
instance (signature ~ (m (Maybe [T.Text])), MonadIO m, IsDeviceProviderFactory a) => O.MethodInfo DeviceProviderFactoryGetMetadataKeysMethodInfo a signature where
overloadedMethod _ = deviceProviderFactoryGetMetadataKeys
#endif
-- method DeviceProviderFactory::has_classes
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "factory", argType = TInterface (Name {namespace = "Gst", name = "DeviceProviderFactory"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GstDeviceProviderFactory", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "classes", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = True, argDoc = Documentation {rawDocText = Just "a \"/\" separate list of classes to match, only match\n if all classes are matched", 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_device_provider_factory_has_classes" gst_device_provider_factory_has_classes ::
Ptr DeviceProviderFactory -> -- factory : TInterface (Name {namespace = "Gst", name = "DeviceProviderFactory"})
CString -> -- classes : TBasicType TUTF8
IO CInt
{- |
Check if /@factory@/ matches all of the given /@classes@/
/Since: 1.4/
-}
deviceProviderFactoryHasClasses ::
(B.CallStack.HasCallStack, MonadIO m, IsDeviceProviderFactory a) =>
a
{- ^ /@factory@/: a 'GI.Gst.Objects.DeviceProviderFactory.DeviceProviderFactory' -}
-> Maybe (T.Text)
{- ^ /@classes@/: a \"\/\" separate list of classes to match, only match
if all classes are matched -}
-> m Bool
{- ^ __Returns:__ 'True' if /@factory@/ matches or if /@classes@/ is 'Nothing'. -}
deviceProviderFactoryHasClasses factory classes = liftIO $ do
factory' <- unsafeManagedPtrCastPtr factory
maybeClasses <- case classes of
Nothing -> return nullPtr
Just jClasses -> do
jClasses' <- textToCString jClasses
return jClasses'
result <- gst_device_provider_factory_has_classes factory' maybeClasses
let result' = (/= 0) result
touchManagedPtr factory
freeMem maybeClasses
return result'
#if ENABLE_OVERLOADING
data DeviceProviderFactoryHasClassesMethodInfo
instance (signature ~ (Maybe (T.Text) -> m Bool), MonadIO m, IsDeviceProviderFactory a) => O.MethodInfo DeviceProviderFactoryHasClassesMethodInfo a signature where
overloadedMethod _ = deviceProviderFactoryHasClasses
#endif
-- method DeviceProviderFactory::has_classesv
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "factory", argType = TInterface (Name {namespace = "Gst", name = "DeviceProviderFactory"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GstDeviceProviderFactory", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "classes", argType = TCArray True (-1) (-1) (TBasicType TUTF8), direction = DirectionIn, mayBeNull = True, argDoc = Documentation {rawDocText = Just "a %NULL terminated array\n of classes to match, only match if all classes are matched", 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_device_provider_factory_has_classesv" gst_device_provider_factory_has_classesv ::
Ptr DeviceProviderFactory -> -- factory : TInterface (Name {namespace = "Gst", name = "DeviceProviderFactory"})
Ptr CString -> -- classes : TCArray True (-1) (-1) (TBasicType TUTF8)
IO CInt
{- |
Check if /@factory@/ matches all of the given classes
/Since: 1.4/
-}
deviceProviderFactoryHasClassesv ::
(B.CallStack.HasCallStack, MonadIO m, IsDeviceProviderFactory a) =>
a
{- ^ /@factory@/: a 'GI.Gst.Objects.DeviceProviderFactory.DeviceProviderFactory' -}
-> Maybe ([T.Text])
{- ^ /@classes@/: a 'Nothing' terminated array
of classes to match, only match if all classes are matched -}
-> m Bool
{- ^ __Returns:__ 'True' if /@factory@/ matches. -}
deviceProviderFactoryHasClassesv factory classes = liftIO $ do
factory' <- unsafeManagedPtrCastPtr factory
maybeClasses <- case classes of
Nothing -> return nullPtr
Just jClasses -> do
jClasses' <- packZeroTerminatedUTF8CArray jClasses
return jClasses'
result <- gst_device_provider_factory_has_classesv factory' maybeClasses
let result' = (/= 0) result
touchManagedPtr factory
mapZeroTerminatedCArray freeMem maybeClasses
freeMem maybeClasses
return result'
#if ENABLE_OVERLOADING
data DeviceProviderFactoryHasClassesvMethodInfo
instance (signature ~ (Maybe ([T.Text]) -> m Bool), MonadIO m, IsDeviceProviderFactory a) => O.MethodInfo DeviceProviderFactoryHasClassesvMethodInfo a signature where
overloadedMethod _ = deviceProviderFactoryHasClassesv
#endif
-- method DeviceProviderFactory::find
-- method type : MemberFunction
-- Args : [Arg {argCName = "name", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "name of factory to find", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Just (TInterface (Name {namespace = "Gst", name = "DeviceProviderFactory"}))
-- throws : False
-- Skip return : False
foreign import ccall "gst_device_provider_factory_find" gst_device_provider_factory_find ::
CString -> -- name : TBasicType TUTF8
IO (Ptr DeviceProviderFactory)
{- |
Search for an device provider factory of the given name. Refs the returned
device provider factory; caller is responsible for unreffing.
/Since: 1.4/
-}
deviceProviderFactoryFind ::
(B.CallStack.HasCallStack, MonadIO m) =>
T.Text
{- ^ /@name@/: name of factory to find -}
-> m (Maybe DeviceProviderFactory)
{- ^ __Returns:__ 'GI.Gst.Objects.DeviceProviderFactory.DeviceProviderFactory' if
found, 'Nothing' otherwise -}
deviceProviderFactoryFind name = liftIO $ do
name' <- textToCString name
result <- gst_device_provider_factory_find name'
maybeResult <- convertIfNonNull result $ \result' -> do
result'' <- (wrapObject DeviceProviderFactory) result'
return result''
freeMem name'
return maybeResult
#if ENABLE_OVERLOADING
#endif
-- method DeviceProviderFactory::get_by_name
-- method type : MemberFunction
-- Args : [Arg {argCName = "factoryname", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a named factory to instantiate", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Just (TInterface (Name {namespace = "Gst", name = "DeviceProvider"}))
-- throws : False
-- Skip return : False
foreign import ccall "gst_device_provider_factory_get_by_name" gst_device_provider_factory_get_by_name ::
CString -> -- factoryname : TBasicType TUTF8
IO (Ptr Gst.DeviceProvider.DeviceProvider)
{- |
Returns the device provider of the type defined by the given device
provider factory.
/Since: 1.4/
-}
deviceProviderFactoryGetByName ::
(B.CallStack.HasCallStack, MonadIO m) =>
T.Text
{- ^ /@factoryname@/: a named factory to instantiate -}
-> m (Maybe Gst.DeviceProvider.DeviceProvider)
{- ^ __Returns:__ a 'GI.Gst.Objects.DeviceProvider.DeviceProvider' or 'Nothing'
if unable to create device provider -}
deviceProviderFactoryGetByName factoryname = liftIO $ do
factoryname' <- textToCString factoryname
result <- gst_device_provider_factory_get_by_name factoryname'
maybeResult <- convertIfNonNull result $ \result' -> do
result'' <- (wrapObject Gst.DeviceProvider.DeviceProvider) result'
return result''
freeMem factoryname'
return maybeResult
#if ENABLE_OVERLOADING
#endif
-- method DeviceProviderFactory::list_get_device_providers
-- method type : MemberFunction
-- Args : [Arg {argCName = "minrank", argType = TInterface (Name {namespace = "Gst", name = "Rank"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "Minimum rank", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Just (TGList (TInterface (Name {namespace = "Gst", name = "DeviceProviderFactory"})))
-- throws : False
-- Skip return : False
foreign import ccall "gst_device_provider_factory_list_get_device_providers" gst_device_provider_factory_list_get_device_providers ::
CUInt -> -- minrank : TInterface (Name {namespace = "Gst", name = "Rank"})
IO (Ptr (GList (Ptr DeviceProviderFactory)))
{- |
Get a list of factories with a rank greater or equal to /@minrank@/.
The list of factories is returned by decreasing rank.
/Since: 1.4/
-}
deviceProviderFactoryListGetDeviceProviders ::
(B.CallStack.HasCallStack, MonadIO m) =>
Gst.Enums.Rank
{- ^ /@minrank@/: Minimum rank -}
-> m [DeviceProviderFactory]
{- ^ __Returns:__
a 'GI.GLib.Structs.List.List' of 'GI.Gst.Objects.DeviceProviderFactory.DeviceProviderFactory' device providers. Use
'GI.Gst.Objects.PluginFeature.pluginFeatureListFree' after usage. -}
deviceProviderFactoryListGetDeviceProviders minrank = liftIO $ do
let minrank' = (fromIntegral . fromEnum) minrank
result <- gst_device_provider_factory_list_get_device_providers minrank'
result' <- unpackGList result
result'' <- mapM (wrapObject DeviceProviderFactory) result'
g_list_free result
return result''
#if ENABLE_OVERLOADING
#endif