#define ENABLE_OVERLOADING (MIN_VERSION_haskell_gi_overloading(1,0,0) \
&& !defined(__HADDOCK_VERSION__))
module GI.Gst.Objects.ElementFactory
(
ElementFactory(..) ,
IsElementFactory ,
toElementFactory ,
noElementFactory ,
#if ENABLE_OVERLOADING
ElementFactoryCanSinkAllCapsMethodInfo ,
#endif
elementFactoryCanSinkAllCaps ,
#if ENABLE_OVERLOADING
ElementFactoryCanSinkAnyCapsMethodInfo ,
#endif
elementFactoryCanSinkAnyCaps ,
#if ENABLE_OVERLOADING
ElementFactoryCanSrcAllCapsMethodInfo ,
#endif
elementFactoryCanSrcAllCaps ,
#if ENABLE_OVERLOADING
ElementFactoryCanSrcAnyCapsMethodInfo ,
#endif
elementFactoryCanSrcAnyCaps ,
#if ENABLE_OVERLOADING
ElementFactoryCreateMethodInfo ,
#endif
elementFactoryCreate ,
elementFactoryFind ,
#if ENABLE_OVERLOADING
ElementFactoryGetElementTypeMethodInfo ,
#endif
elementFactoryGetElementType ,
#if ENABLE_OVERLOADING
ElementFactoryGetMetadataMethodInfo ,
#endif
elementFactoryGetMetadata ,
#if ENABLE_OVERLOADING
ElementFactoryGetMetadataKeysMethodInfo ,
#endif
elementFactoryGetMetadataKeys ,
#if ENABLE_OVERLOADING
ElementFactoryGetNumPadTemplatesMethodInfo,
#endif
elementFactoryGetNumPadTemplates ,
#if ENABLE_OVERLOADING
ElementFactoryGetStaticPadTemplatesMethodInfo,
#endif
elementFactoryGetStaticPadTemplates ,
#if ENABLE_OVERLOADING
ElementFactoryGetUriProtocolsMethodInfo ,
#endif
elementFactoryGetUriProtocols ,
#if ENABLE_OVERLOADING
ElementFactoryGetUriTypeMethodInfo ,
#endif
elementFactoryGetUriType ,
#if ENABLE_OVERLOADING
ElementFactoryHasInterfaceMethodInfo ,
#endif
elementFactoryHasInterface ,
elementFactoryListFilter ,
elementFactoryListGetElements ,
#if ENABLE_OVERLOADING
ElementFactoryListIsTypeMethodInfo ,
#endif
elementFactoryListIsType ,
elementFactoryMake ,
) 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.Element as Gst.Element
import {-# SOURCE #-} qualified GI.Gst.Objects.Object as Gst.Object
import {-# SOURCE #-} qualified GI.Gst.Objects.PluginFeature as Gst.PluginFeature
import {-# SOURCE #-} qualified GI.Gst.Structs.Caps as Gst.Caps
import {-# SOURCE #-} qualified GI.Gst.Structs.StaticPadTemplate as Gst.StaticPadTemplate
newtype ElementFactory = ElementFactory (ManagedPtr ElementFactory)
foreign import ccall "gst_element_factory_get_type"
c_gst_element_factory_get_type :: IO GType
instance GObject ElementFactory where
gobjectType = c_gst_element_factory_get_type
class (GObject o, O.IsDescendantOf ElementFactory o) => IsElementFactory o
instance (GObject o, O.IsDescendantOf ElementFactory o) => IsElementFactory o
instance O.HasParentTypes ElementFactory
type instance O.ParentTypes ElementFactory = '[Gst.PluginFeature.PluginFeature, Gst.Object.Object, GObject.Object.Object]
toElementFactory :: (MonadIO m, IsElementFactory o) => o -> m ElementFactory
toElementFactory = liftIO . unsafeCastTo ElementFactory
noElementFactory :: Maybe ElementFactory
noElementFactory = Nothing
#if ENABLE_OVERLOADING
type family ResolveElementFactoryMethod (t :: Symbol) (o :: *) :: * where
ResolveElementFactoryMethod "addControlBinding" o = Gst.Object.ObjectAddControlBindingMethodInfo
ResolveElementFactoryMethod "bindProperty" o = GObject.Object.ObjectBindPropertyMethodInfo
ResolveElementFactoryMethod "bindPropertyFull" o = GObject.Object.ObjectBindPropertyFullMethodInfo
ResolveElementFactoryMethod "canSinkAllCaps" o = ElementFactoryCanSinkAllCapsMethodInfo
ResolveElementFactoryMethod "canSinkAnyCaps" o = ElementFactoryCanSinkAnyCapsMethodInfo
ResolveElementFactoryMethod "canSrcAllCaps" o = ElementFactoryCanSrcAllCapsMethodInfo
ResolveElementFactoryMethod "canSrcAnyCaps" o = ElementFactoryCanSrcAnyCapsMethodInfo
ResolveElementFactoryMethod "checkVersion" o = Gst.PluginFeature.PluginFeatureCheckVersionMethodInfo
ResolveElementFactoryMethod "create" o = ElementFactoryCreateMethodInfo
ResolveElementFactoryMethod "defaultError" o = Gst.Object.ObjectDefaultErrorMethodInfo
ResolveElementFactoryMethod "forceFloating" o = GObject.Object.ObjectForceFloatingMethodInfo
ResolveElementFactoryMethod "freezeNotify" o = GObject.Object.ObjectFreezeNotifyMethodInfo
ResolveElementFactoryMethod "getv" o = GObject.Object.ObjectGetvMethodInfo
ResolveElementFactoryMethod "hasActiveControlBindings" o = Gst.Object.ObjectHasActiveControlBindingsMethodInfo
ResolveElementFactoryMethod "hasAncestor" o = Gst.Object.ObjectHasAncestorMethodInfo
ResolveElementFactoryMethod "hasAsAncestor" o = Gst.Object.ObjectHasAsAncestorMethodInfo
ResolveElementFactoryMethod "hasAsParent" o = Gst.Object.ObjectHasAsParentMethodInfo
ResolveElementFactoryMethod "hasInterface" o = ElementFactoryHasInterfaceMethodInfo
ResolveElementFactoryMethod "isFloating" o = GObject.Object.ObjectIsFloatingMethodInfo
ResolveElementFactoryMethod "listIsType" o = ElementFactoryListIsTypeMethodInfo
ResolveElementFactoryMethod "load" o = Gst.PluginFeature.PluginFeatureLoadMethodInfo
ResolveElementFactoryMethod "notify" o = GObject.Object.ObjectNotifyMethodInfo
ResolveElementFactoryMethod "notifyByPspec" o = GObject.Object.ObjectNotifyByPspecMethodInfo
ResolveElementFactoryMethod "ref" o = Gst.Object.ObjectRefMethodInfo
ResolveElementFactoryMethod "refSink" o = GObject.Object.ObjectRefSinkMethodInfo
ResolveElementFactoryMethod "removeControlBinding" o = Gst.Object.ObjectRemoveControlBindingMethodInfo
ResolveElementFactoryMethod "runDispose" o = GObject.Object.ObjectRunDisposeMethodInfo
ResolveElementFactoryMethod "stealData" o = GObject.Object.ObjectStealDataMethodInfo
ResolveElementFactoryMethod "stealQdata" o = GObject.Object.ObjectStealQdataMethodInfo
ResolveElementFactoryMethod "suggestNextSync" o = Gst.Object.ObjectSuggestNextSyncMethodInfo
ResolveElementFactoryMethod "syncValues" o = Gst.Object.ObjectSyncValuesMethodInfo
ResolveElementFactoryMethod "thawNotify" o = GObject.Object.ObjectThawNotifyMethodInfo
ResolveElementFactoryMethod "unparent" o = Gst.Object.ObjectUnparentMethodInfo
ResolveElementFactoryMethod "unref" o = Gst.Object.ObjectUnrefMethodInfo
ResolveElementFactoryMethod "watchClosure" o = GObject.Object.ObjectWatchClosureMethodInfo
ResolveElementFactoryMethod "getControlBinding" o = Gst.Object.ObjectGetControlBindingMethodInfo
ResolveElementFactoryMethod "getControlRate" o = Gst.Object.ObjectGetControlRateMethodInfo
ResolveElementFactoryMethod "getData" o = GObject.Object.ObjectGetDataMethodInfo
ResolveElementFactoryMethod "getElementType" o = ElementFactoryGetElementTypeMethodInfo
ResolveElementFactoryMethod "getGValueArray" o = Gst.Object.ObjectGetGValueArrayMethodInfo
ResolveElementFactoryMethod "getMetadata" o = ElementFactoryGetMetadataMethodInfo
ResolveElementFactoryMethod "getMetadataKeys" o = ElementFactoryGetMetadataKeysMethodInfo
ResolveElementFactoryMethod "getName" o = Gst.Object.ObjectGetNameMethodInfo
ResolveElementFactoryMethod "getNumPadTemplates" o = ElementFactoryGetNumPadTemplatesMethodInfo
ResolveElementFactoryMethod "getParent" o = Gst.Object.ObjectGetParentMethodInfo
ResolveElementFactoryMethod "getPathString" o = Gst.Object.ObjectGetPathStringMethodInfo
ResolveElementFactoryMethod "getPlugin" o = Gst.PluginFeature.PluginFeatureGetPluginMethodInfo
ResolveElementFactoryMethod "getPluginName" o = Gst.PluginFeature.PluginFeatureGetPluginNameMethodInfo
ResolveElementFactoryMethod "getProperty" o = GObject.Object.ObjectGetPropertyMethodInfo
ResolveElementFactoryMethod "getQdata" o = GObject.Object.ObjectGetQdataMethodInfo
ResolveElementFactoryMethod "getRank" o = Gst.PluginFeature.PluginFeatureGetRankMethodInfo
ResolveElementFactoryMethod "getStaticPadTemplates" o = ElementFactoryGetStaticPadTemplatesMethodInfo
ResolveElementFactoryMethod "getUriProtocols" o = ElementFactoryGetUriProtocolsMethodInfo
ResolveElementFactoryMethod "getUriType" o = ElementFactoryGetUriTypeMethodInfo
ResolveElementFactoryMethod "getValue" o = Gst.Object.ObjectGetValueMethodInfo
ResolveElementFactoryMethod "setControlBindingDisabled" o = Gst.Object.ObjectSetControlBindingDisabledMethodInfo
ResolveElementFactoryMethod "setControlBindingsDisabled" o = Gst.Object.ObjectSetControlBindingsDisabledMethodInfo
ResolveElementFactoryMethod "setControlRate" o = Gst.Object.ObjectSetControlRateMethodInfo
ResolveElementFactoryMethod "setData" o = GObject.Object.ObjectSetDataMethodInfo
ResolveElementFactoryMethod "setName" o = Gst.Object.ObjectSetNameMethodInfo
ResolveElementFactoryMethod "setParent" o = Gst.Object.ObjectSetParentMethodInfo
ResolveElementFactoryMethod "setProperty" o = GObject.Object.ObjectSetPropertyMethodInfo
ResolveElementFactoryMethod "setRank" o = Gst.PluginFeature.PluginFeatureSetRankMethodInfo
ResolveElementFactoryMethod l o = O.MethodResolutionFailed l o
instance (info ~ ResolveElementFactoryMethod t ElementFactory, O.MethodInfo info ElementFactory p) => OL.IsLabel t (ElementFactory -> 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 ElementFactory
type instance O.AttributeList ElementFactory = ElementFactoryAttributeList
type ElementFactoryAttributeList = ('[ '("name", Gst.Object.ObjectNamePropertyInfo), '("parent", Gst.Object.ObjectParentPropertyInfo)] :: [(Symbol, *)])
#endif
#if ENABLE_OVERLOADING
#endif
#if ENABLE_OVERLOADING
type instance O.SignalList ElementFactory = ElementFactorySignalList
type ElementFactorySignalList = ('[ '("deepNotify", Gst.Object.ObjectDeepNotifySignalInfo), '("notify", GObject.Object.ObjectNotifySignalInfo)] :: [(Symbol, *)])
#endif
foreign import ccall "gst_element_factory_can_sink_all_caps" gst_element_factory_can_sink_all_caps ::
Ptr ElementFactory ->
Ptr Gst.Caps.Caps ->
IO CInt
elementFactoryCanSinkAllCaps ::
(B.CallStack.HasCallStack, MonadIO m, IsElementFactory a) =>
a
-> Gst.Caps.Caps
-> m Bool
elementFactoryCanSinkAllCaps factory caps = liftIO $ do
factory' <- unsafeManagedPtrCastPtr factory
caps' <- unsafeManagedPtrGetPtr caps
result <- gst_element_factory_can_sink_all_caps factory' caps'
let result' = (/= 0) result
touchManagedPtr factory
touchManagedPtr caps
return result'
#if ENABLE_OVERLOADING
data ElementFactoryCanSinkAllCapsMethodInfo
instance (signature ~ (Gst.Caps.Caps -> m Bool), MonadIO m, IsElementFactory a) => O.MethodInfo ElementFactoryCanSinkAllCapsMethodInfo a signature where
overloadedMethod _ = elementFactoryCanSinkAllCaps
#endif
foreign import ccall "gst_element_factory_can_sink_any_caps" gst_element_factory_can_sink_any_caps ::
Ptr ElementFactory ->
Ptr Gst.Caps.Caps ->
IO CInt
elementFactoryCanSinkAnyCaps ::
(B.CallStack.HasCallStack, MonadIO m, IsElementFactory a) =>
a
-> Gst.Caps.Caps
-> m Bool
elementFactoryCanSinkAnyCaps factory caps = liftIO $ do
factory' <- unsafeManagedPtrCastPtr factory
caps' <- unsafeManagedPtrGetPtr caps
result <- gst_element_factory_can_sink_any_caps factory' caps'
let result' = (/= 0) result
touchManagedPtr factory
touchManagedPtr caps
return result'
#if ENABLE_OVERLOADING
data ElementFactoryCanSinkAnyCapsMethodInfo
instance (signature ~ (Gst.Caps.Caps -> m Bool), MonadIO m, IsElementFactory a) => O.MethodInfo ElementFactoryCanSinkAnyCapsMethodInfo a signature where
overloadedMethod _ = elementFactoryCanSinkAnyCaps
#endif
foreign import ccall "gst_element_factory_can_src_all_caps" gst_element_factory_can_src_all_caps ::
Ptr ElementFactory ->
Ptr Gst.Caps.Caps ->
IO CInt
elementFactoryCanSrcAllCaps ::
(B.CallStack.HasCallStack, MonadIO m, IsElementFactory a) =>
a
-> Gst.Caps.Caps
-> m Bool
elementFactoryCanSrcAllCaps factory caps = liftIO $ do
factory' <- unsafeManagedPtrCastPtr factory
caps' <- unsafeManagedPtrGetPtr caps
result <- gst_element_factory_can_src_all_caps factory' caps'
let result' = (/= 0) result
touchManagedPtr factory
touchManagedPtr caps
return result'
#if ENABLE_OVERLOADING
data ElementFactoryCanSrcAllCapsMethodInfo
instance (signature ~ (Gst.Caps.Caps -> m Bool), MonadIO m, IsElementFactory a) => O.MethodInfo ElementFactoryCanSrcAllCapsMethodInfo a signature where
overloadedMethod _ = elementFactoryCanSrcAllCaps
#endif
foreign import ccall "gst_element_factory_can_src_any_caps" gst_element_factory_can_src_any_caps ::
Ptr ElementFactory ->
Ptr Gst.Caps.Caps ->
IO CInt
elementFactoryCanSrcAnyCaps ::
(B.CallStack.HasCallStack, MonadIO m, IsElementFactory a) =>
a
-> Gst.Caps.Caps
-> m Bool
elementFactoryCanSrcAnyCaps factory caps = liftIO $ do
factory' <- unsafeManagedPtrCastPtr factory
caps' <- unsafeManagedPtrGetPtr caps
result <- gst_element_factory_can_src_any_caps factory' caps'
let result' = (/= 0) result
touchManagedPtr factory
touchManagedPtr caps
return result'
#if ENABLE_OVERLOADING
data ElementFactoryCanSrcAnyCapsMethodInfo
instance (signature ~ (Gst.Caps.Caps -> m Bool), MonadIO m, IsElementFactory a) => O.MethodInfo ElementFactoryCanSrcAnyCapsMethodInfo a signature where
overloadedMethod _ = elementFactoryCanSrcAnyCaps
#endif
foreign import ccall "gst_element_factory_create" gst_element_factory_create ::
Ptr ElementFactory ->
CString ->
IO (Ptr Gst.Element.Element)
elementFactoryCreate ::
(B.CallStack.HasCallStack, MonadIO m, IsElementFactory a) =>
a
-> Maybe (T.Text)
-> m (Maybe Gst.Element.Element)
elementFactoryCreate factory name = liftIO $ do
factory' <- unsafeManagedPtrCastPtr factory
maybeName <- case name of
Nothing -> return nullPtr
Just jName -> do
jName' <- textToCString jName
return jName'
result <- gst_element_factory_create factory' maybeName
maybeResult <- convertIfNonNull result $ \result' -> do
result'' <- (newObject Gst.Element.Element) result'
return result''
touchManagedPtr factory
freeMem maybeName
return maybeResult
#if ENABLE_OVERLOADING
data ElementFactoryCreateMethodInfo
instance (signature ~ (Maybe (T.Text) -> m (Maybe Gst.Element.Element)), MonadIO m, IsElementFactory a) => O.MethodInfo ElementFactoryCreateMethodInfo a signature where
overloadedMethod _ = elementFactoryCreate
#endif
foreign import ccall "gst_element_factory_get_element_type" gst_element_factory_get_element_type ::
Ptr ElementFactory ->
IO CGType
elementFactoryGetElementType ::
(B.CallStack.HasCallStack, MonadIO m, IsElementFactory a) =>
a
-> m GType
elementFactoryGetElementType factory = liftIO $ do
factory' <- unsafeManagedPtrCastPtr factory
result <- gst_element_factory_get_element_type factory'
let result' = GType result
touchManagedPtr factory
return result'
#if ENABLE_OVERLOADING
data ElementFactoryGetElementTypeMethodInfo
instance (signature ~ (m GType), MonadIO m, IsElementFactory a) => O.MethodInfo ElementFactoryGetElementTypeMethodInfo a signature where
overloadedMethod _ = elementFactoryGetElementType
#endif
foreign import ccall "gst_element_factory_get_metadata" gst_element_factory_get_metadata ::
Ptr ElementFactory ->
CString ->
IO CString
elementFactoryGetMetadata ::
(B.CallStack.HasCallStack, MonadIO m, IsElementFactory a) =>
a
-> T.Text
-> m (Maybe T.Text)
elementFactoryGetMetadata factory key = liftIO $ do
factory' <- unsafeManagedPtrCastPtr factory
key' <- textToCString key
result <- gst_element_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 ElementFactoryGetMetadataMethodInfo
instance (signature ~ (T.Text -> m (Maybe T.Text)), MonadIO m, IsElementFactory a) => O.MethodInfo ElementFactoryGetMetadataMethodInfo a signature where
overloadedMethod _ = elementFactoryGetMetadata
#endif
foreign import ccall "gst_element_factory_get_metadata_keys" gst_element_factory_get_metadata_keys ::
Ptr ElementFactory ->
IO (Ptr CString)
elementFactoryGetMetadataKeys ::
(B.CallStack.HasCallStack, MonadIO m, IsElementFactory a) =>
a
-> m (Maybe [T.Text])
elementFactoryGetMetadataKeys factory = liftIO $ do
factory' <- unsafeManagedPtrCastPtr factory
result <- gst_element_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 ElementFactoryGetMetadataKeysMethodInfo
instance (signature ~ (m (Maybe [T.Text])), MonadIO m, IsElementFactory a) => O.MethodInfo ElementFactoryGetMetadataKeysMethodInfo a signature where
overloadedMethod _ = elementFactoryGetMetadataKeys
#endif
foreign import ccall "gst_element_factory_get_num_pad_templates" gst_element_factory_get_num_pad_templates ::
Ptr ElementFactory ->
IO Word32
elementFactoryGetNumPadTemplates ::
(B.CallStack.HasCallStack, MonadIO m, IsElementFactory a) =>
a
-> m Word32
elementFactoryGetNumPadTemplates factory = liftIO $ do
factory' <- unsafeManagedPtrCastPtr factory
result <- gst_element_factory_get_num_pad_templates factory'
touchManagedPtr factory
return result
#if ENABLE_OVERLOADING
data ElementFactoryGetNumPadTemplatesMethodInfo
instance (signature ~ (m Word32), MonadIO m, IsElementFactory a) => O.MethodInfo ElementFactoryGetNumPadTemplatesMethodInfo a signature where
overloadedMethod _ = elementFactoryGetNumPadTemplates
#endif
foreign import ccall "gst_element_factory_get_static_pad_templates" gst_element_factory_get_static_pad_templates ::
Ptr ElementFactory ->
IO (Ptr (GList (Ptr Gst.StaticPadTemplate.StaticPadTemplate)))
elementFactoryGetStaticPadTemplates ::
(B.CallStack.HasCallStack, MonadIO m, IsElementFactory a) =>
a
-> m [Gst.StaticPadTemplate.StaticPadTemplate]
elementFactoryGetStaticPadTemplates factory = liftIO $ do
factory' <- unsafeManagedPtrCastPtr factory
result <- gst_element_factory_get_static_pad_templates factory'
result' <- unpackGList result
result'' <- mapM (newPtr Gst.StaticPadTemplate.StaticPadTemplate) result'
touchManagedPtr factory
return result''
#if ENABLE_OVERLOADING
data ElementFactoryGetStaticPadTemplatesMethodInfo
instance (signature ~ (m [Gst.StaticPadTemplate.StaticPadTemplate]), MonadIO m, IsElementFactory a) => O.MethodInfo ElementFactoryGetStaticPadTemplatesMethodInfo a signature where
overloadedMethod _ = elementFactoryGetStaticPadTemplates
#endif
foreign import ccall "gst_element_factory_get_uri_protocols" gst_element_factory_get_uri_protocols ::
Ptr ElementFactory ->
IO (Ptr CString)
elementFactoryGetUriProtocols ::
(B.CallStack.HasCallStack, MonadIO m, IsElementFactory a) =>
a
-> m [T.Text]
elementFactoryGetUriProtocols factory = liftIO $ do
factory' <- unsafeManagedPtrCastPtr factory
result <- gst_element_factory_get_uri_protocols factory'
checkUnexpectedReturnNULL "elementFactoryGetUriProtocols" result
result' <- unpackZeroTerminatedUTF8CArray result
touchManagedPtr factory
return result'
#if ENABLE_OVERLOADING
data ElementFactoryGetUriProtocolsMethodInfo
instance (signature ~ (m [T.Text]), MonadIO m, IsElementFactory a) => O.MethodInfo ElementFactoryGetUriProtocolsMethodInfo a signature where
overloadedMethod _ = elementFactoryGetUriProtocols
#endif
foreign import ccall "gst_element_factory_get_uri_type" gst_element_factory_get_uri_type ::
Ptr ElementFactory ->
IO CUInt
elementFactoryGetUriType ::
(B.CallStack.HasCallStack, MonadIO m, IsElementFactory a) =>
a
-> m Gst.Enums.URIType
elementFactoryGetUriType factory = liftIO $ do
factory' <- unsafeManagedPtrCastPtr factory
result <- gst_element_factory_get_uri_type factory'
let result' = (toEnum . fromIntegral) result
touchManagedPtr factory
return result'
#if ENABLE_OVERLOADING
data ElementFactoryGetUriTypeMethodInfo
instance (signature ~ (m Gst.Enums.URIType), MonadIO m, IsElementFactory a) => O.MethodInfo ElementFactoryGetUriTypeMethodInfo a signature where
overloadedMethod _ = elementFactoryGetUriType
#endif
foreign import ccall "gst_element_factory_has_interface" gst_element_factory_has_interface ::
Ptr ElementFactory ->
CString ->
IO CInt
elementFactoryHasInterface ::
(B.CallStack.HasCallStack, MonadIO m, IsElementFactory a) =>
a
-> T.Text
-> m Bool
elementFactoryHasInterface factory interfacename = liftIO $ do
factory' <- unsafeManagedPtrCastPtr factory
interfacename' <- textToCString interfacename
result <- gst_element_factory_has_interface factory' interfacename'
let result' = (/= 0) result
touchManagedPtr factory
freeMem interfacename'
return result'
#if ENABLE_OVERLOADING
data ElementFactoryHasInterfaceMethodInfo
instance (signature ~ (T.Text -> m Bool), MonadIO m, IsElementFactory a) => O.MethodInfo ElementFactoryHasInterfaceMethodInfo a signature where
overloadedMethod _ = elementFactoryHasInterface
#endif
foreign import ccall "gst_element_factory_list_is_type" gst_element_factory_list_is_type ::
Ptr ElementFactory ->
Word64 ->
IO CInt
elementFactoryListIsType ::
(B.CallStack.HasCallStack, MonadIO m, IsElementFactory a) =>
a
-> Word64
-> m Bool
elementFactoryListIsType factory type_ = liftIO $ do
factory' <- unsafeManagedPtrCastPtr factory
result <- gst_element_factory_list_is_type factory' type_
let result' = (/= 0) result
touchManagedPtr factory
return result'
#if ENABLE_OVERLOADING
data ElementFactoryListIsTypeMethodInfo
instance (signature ~ (Word64 -> m Bool), MonadIO m, IsElementFactory a) => O.MethodInfo ElementFactoryListIsTypeMethodInfo a signature where
overloadedMethod _ = elementFactoryListIsType
#endif
foreign import ccall "gst_element_factory_find" gst_element_factory_find ::
CString ->
IO (Ptr ElementFactory)
elementFactoryFind ::
(B.CallStack.HasCallStack, MonadIO m) =>
T.Text
-> m (Maybe ElementFactory)
elementFactoryFind name = liftIO $ do
name' <- textToCString name
result <- gst_element_factory_find name'
maybeResult <- convertIfNonNull result $ \result' -> do
result'' <- (wrapObject ElementFactory) result'
return result''
freeMem name'
return maybeResult
#if ENABLE_OVERLOADING
#endif
foreign import ccall "gst_element_factory_list_filter" gst_element_factory_list_filter ::
Ptr (GList (Ptr ElementFactory)) ->
Ptr Gst.Caps.Caps ->
CUInt ->
CInt ->
IO (Ptr (GList (Ptr ElementFactory)))
elementFactoryListFilter ::
(B.CallStack.HasCallStack, MonadIO m, IsElementFactory a) =>
[a]
-> Gst.Caps.Caps
-> Gst.Enums.PadDirection
-> Bool
-> m [ElementFactory]
elementFactoryListFilter list caps direction subsetonly = liftIO $ do
list' <- mapM unsafeManagedPtrCastPtr list
list'' <- packGList list'
caps' <- unsafeManagedPtrGetPtr caps
let direction' = (fromIntegral . fromEnum) direction
let subsetonly' = (fromIntegral . fromEnum) subsetonly
result <- gst_element_factory_list_filter list'' caps' direction' subsetonly'
result' <- unpackGList result
result'' <- mapM (wrapObject ElementFactory) result'
g_list_free result
mapM_ touchManagedPtr list
touchManagedPtr caps
g_list_free list''
return result''
#if ENABLE_OVERLOADING
#endif
foreign import ccall "gst_element_factory_list_get_elements" gst_element_factory_list_get_elements ::
Word64 ->
CUInt ->
IO (Ptr (GList (Ptr ElementFactory)))
elementFactoryListGetElements ::
(B.CallStack.HasCallStack, MonadIO m) =>
Word64
-> Gst.Enums.Rank
-> m [ElementFactory]
elementFactoryListGetElements type_ minrank = liftIO $ do
let minrank' = (fromIntegral . fromEnum) minrank
result <- gst_element_factory_list_get_elements type_ minrank'
result' <- unpackGList result
result'' <- mapM (wrapObject ElementFactory) result'
g_list_free result
return result''
#if ENABLE_OVERLOADING
#endif
foreign import ccall "gst_element_factory_make" gst_element_factory_make ::
CString ->
CString ->
IO (Ptr Gst.Element.Element)
elementFactoryMake ::
(B.CallStack.HasCallStack, MonadIO m) =>
T.Text
-> Maybe (T.Text)
-> m (Maybe Gst.Element.Element)
elementFactoryMake factoryname name = liftIO $ do
factoryname' <- textToCString factoryname
maybeName <- case name of
Nothing -> return nullPtr
Just jName -> do
jName' <- textToCString jName
return jName'
result <- gst_element_factory_make factoryname' maybeName
maybeResult <- convertIfNonNull result $ \result' -> do
result'' <- (newObject Gst.Element.Element) result'
return result''
freeMem factoryname'
freeMem maybeName
return maybeResult
#if ENABLE_OVERLOADING
#endif