{-# LANGUAGE TypeApplications #-}
#if (MIN_VERSION_haskell_gi_overloading(1,0,0) && !defined(__HADDOCK_VERSION__))
#define ENABLE_OVERLOADING
#endif
module GI.Gst.Objects.DynamicTypeFactory
(
DynamicTypeFactory(..) ,
IsDynamicTypeFactory ,
toDynamicTypeFactory ,
#if defined(ENABLE_OVERLOADING)
ResolveDynamicTypeFactoryMethod ,
#endif
dynamicTypeFactoryLoad ,
) 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.BasicTypes as B.Types
import qualified Data.GI.Base.ManagedPtr as B.ManagedPtr
import qualified Data.GI.Base.GArray as B.GArray
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.GI.Base.Signals as B.Signals
import qualified Control.Monad.IO.Class as MIO
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 GHC.Records as R
import qualified GI.GObject.Objects.Object as GObject.Object
import {-# SOURCE #-} qualified GI.Gst.Objects.Object as Gst.Object
import {-# SOURCE #-} qualified GI.Gst.Objects.PluginFeature as Gst.PluginFeature
newtype DynamicTypeFactory = DynamicTypeFactory (SP.ManagedPtr DynamicTypeFactory)
deriving (DynamicTypeFactory -> DynamicTypeFactory -> Bool
(DynamicTypeFactory -> DynamicTypeFactory -> Bool)
-> (DynamicTypeFactory -> DynamicTypeFactory -> Bool)
-> Eq DynamicTypeFactory
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: DynamicTypeFactory -> DynamicTypeFactory -> Bool
$c/= :: DynamicTypeFactory -> DynamicTypeFactory -> Bool
== :: DynamicTypeFactory -> DynamicTypeFactory -> Bool
$c== :: DynamicTypeFactory -> DynamicTypeFactory -> Bool
Eq)
instance SP.ManagedPtrNewtype DynamicTypeFactory where
toManagedPtr :: DynamicTypeFactory -> ManagedPtr DynamicTypeFactory
toManagedPtr (DynamicTypeFactory ManagedPtr DynamicTypeFactory
p) = ManagedPtr DynamicTypeFactory
p
foreign import ccall "gst_dynamic_type_factory_get_type"
c_gst_dynamic_type_factory_get_type :: IO B.Types.GType
instance B.Types.TypedObject DynamicTypeFactory where
glibType :: IO GType
glibType = IO GType
c_gst_dynamic_type_factory_get_type
instance B.Types.GObject DynamicTypeFactory
class (SP.GObject o, O.IsDescendantOf DynamicTypeFactory o) => IsDynamicTypeFactory o
instance (SP.GObject o, O.IsDescendantOf DynamicTypeFactory o) => IsDynamicTypeFactory o
instance O.HasParentTypes DynamicTypeFactory
type instance O.ParentTypes DynamicTypeFactory = '[Gst.PluginFeature.PluginFeature, Gst.Object.Object, GObject.Object.Object]
toDynamicTypeFactory :: (MIO.MonadIO m, IsDynamicTypeFactory o) => o -> m DynamicTypeFactory
toDynamicTypeFactory :: forall (m :: * -> *) o.
(MonadIO m, IsDynamicTypeFactory o) =>
o -> m DynamicTypeFactory
toDynamicTypeFactory = IO DynamicTypeFactory -> m DynamicTypeFactory
forall (m :: * -> *) a. MonadIO m => IO a -> m a
MIO.liftIO (IO DynamicTypeFactory -> m DynamicTypeFactory)
-> (o -> IO DynamicTypeFactory) -> o -> m DynamicTypeFactory
forall b c a. (b -> c) -> (a -> b) -> a -> c
. (ManagedPtr DynamicTypeFactory -> DynamicTypeFactory)
-> o -> IO DynamicTypeFactory
forall o o'.
(HasCallStack, ManagedPtrNewtype o, TypedObject o,
ManagedPtrNewtype o', TypedObject o') =>
(ManagedPtr o' -> o') -> o -> IO o'
B.ManagedPtr.unsafeCastTo ManagedPtr DynamicTypeFactory -> DynamicTypeFactory
DynamicTypeFactory
instance B.GValue.IsGValue (Maybe DynamicTypeFactory) where
gvalueGType_ :: IO GType
gvalueGType_ = IO GType
c_gst_dynamic_type_factory_get_type
gvalueSet_ :: Ptr GValue -> Maybe DynamicTypeFactory -> IO ()
gvalueSet_ Ptr GValue
gv Maybe DynamicTypeFactory
P.Nothing = Ptr GValue -> Ptr DynamicTypeFactory -> IO ()
forall a. GObject a => Ptr GValue -> Ptr a -> IO ()
B.GValue.set_object Ptr GValue
gv (Ptr DynamicTypeFactory
forall a. Ptr a
FP.nullPtr :: FP.Ptr DynamicTypeFactory)
gvalueSet_ Ptr GValue
gv (P.Just DynamicTypeFactory
obj) = DynamicTypeFactory -> (Ptr DynamicTypeFactory -> IO ()) -> IO ()
forall a c.
(HasCallStack, ManagedPtrNewtype a) =>
a -> (Ptr a -> IO c) -> IO c
B.ManagedPtr.withManagedPtr DynamicTypeFactory
obj (Ptr GValue -> Ptr DynamicTypeFactory -> IO ()
forall a. GObject a => Ptr GValue -> Ptr a -> IO ()
B.GValue.set_object Ptr GValue
gv)
gvalueGet_ :: Ptr GValue -> IO (Maybe DynamicTypeFactory)
gvalueGet_ Ptr GValue
gv = do
Ptr DynamicTypeFactory
ptr <- Ptr GValue -> IO (Ptr DynamicTypeFactory)
forall a. GObject a => Ptr GValue -> IO (Ptr a)
B.GValue.get_object Ptr GValue
gv :: IO (FP.Ptr DynamicTypeFactory)
if Ptr DynamicTypeFactory
ptr Ptr DynamicTypeFactory -> Ptr DynamicTypeFactory -> Bool
forall a. Eq a => a -> a -> Bool
/= Ptr DynamicTypeFactory
forall a. Ptr a
FP.nullPtr
then DynamicTypeFactory -> Maybe DynamicTypeFactory
forall a. a -> Maybe a
P.Just (DynamicTypeFactory -> Maybe DynamicTypeFactory)
-> IO DynamicTypeFactory -> IO (Maybe DynamicTypeFactory)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (ManagedPtr DynamicTypeFactory -> DynamicTypeFactory)
-> Ptr DynamicTypeFactory -> IO DynamicTypeFactory
forall a b.
(HasCallStack, GObject a, GObject b) =>
(ManagedPtr a -> a) -> Ptr b -> IO a
B.ManagedPtr.newObject ManagedPtr DynamicTypeFactory -> DynamicTypeFactory
DynamicTypeFactory Ptr DynamicTypeFactory
ptr
else Maybe DynamicTypeFactory -> IO (Maybe DynamicTypeFactory)
forall (m :: * -> *) a. Monad m => a -> m a
return Maybe DynamicTypeFactory
forall a. Maybe a
P.Nothing
#if defined(ENABLE_OVERLOADING)
type family ResolveDynamicTypeFactoryMethod (t :: Symbol) (o :: *) :: * where
ResolveDynamicTypeFactoryMethod "addControlBinding" o = Gst.Object.ObjectAddControlBindingMethodInfo
ResolveDynamicTypeFactoryMethod "bindProperty" o = GObject.Object.ObjectBindPropertyMethodInfo
ResolveDynamicTypeFactoryMethod "bindPropertyFull" o = GObject.Object.ObjectBindPropertyFullMethodInfo
ResolveDynamicTypeFactoryMethod "checkVersion" o = Gst.PluginFeature.PluginFeatureCheckVersionMethodInfo
ResolveDynamicTypeFactoryMethod "defaultError" o = Gst.Object.ObjectDefaultErrorMethodInfo
ResolveDynamicTypeFactoryMethod "forceFloating" o = GObject.Object.ObjectForceFloatingMethodInfo
ResolveDynamicTypeFactoryMethod "freezeNotify" o = GObject.Object.ObjectFreezeNotifyMethodInfo
ResolveDynamicTypeFactoryMethod "getv" o = GObject.Object.ObjectGetvMethodInfo
ResolveDynamicTypeFactoryMethod "hasActiveControlBindings" o = Gst.Object.ObjectHasActiveControlBindingsMethodInfo
ResolveDynamicTypeFactoryMethod "hasAncestor" o = Gst.Object.ObjectHasAncestorMethodInfo
ResolveDynamicTypeFactoryMethod "hasAsAncestor" o = Gst.Object.ObjectHasAsAncestorMethodInfo
ResolveDynamicTypeFactoryMethod "hasAsParent" o = Gst.Object.ObjectHasAsParentMethodInfo
ResolveDynamicTypeFactoryMethod "isFloating" o = GObject.Object.ObjectIsFloatingMethodInfo
ResolveDynamicTypeFactoryMethod "notify" o = GObject.Object.ObjectNotifyMethodInfo
ResolveDynamicTypeFactoryMethod "notifyByPspec" o = GObject.Object.ObjectNotifyByPspecMethodInfo
ResolveDynamicTypeFactoryMethod "ref" o = Gst.Object.ObjectRefMethodInfo
ResolveDynamicTypeFactoryMethod "refSink" o = GObject.Object.ObjectRefSinkMethodInfo
ResolveDynamicTypeFactoryMethod "removeControlBinding" o = Gst.Object.ObjectRemoveControlBindingMethodInfo
ResolveDynamicTypeFactoryMethod "runDispose" o = GObject.Object.ObjectRunDisposeMethodInfo
ResolveDynamicTypeFactoryMethod "stealData" o = GObject.Object.ObjectStealDataMethodInfo
ResolveDynamicTypeFactoryMethod "stealQdata" o = GObject.Object.ObjectStealQdataMethodInfo
ResolveDynamicTypeFactoryMethod "suggestNextSync" o = Gst.Object.ObjectSuggestNextSyncMethodInfo
ResolveDynamicTypeFactoryMethod "syncValues" o = Gst.Object.ObjectSyncValuesMethodInfo
ResolveDynamicTypeFactoryMethod "thawNotify" o = GObject.Object.ObjectThawNotifyMethodInfo
ResolveDynamicTypeFactoryMethod "unparent" o = Gst.Object.ObjectUnparentMethodInfo
ResolveDynamicTypeFactoryMethod "unref" o = Gst.Object.ObjectUnrefMethodInfo
ResolveDynamicTypeFactoryMethod "watchClosure" o = GObject.Object.ObjectWatchClosureMethodInfo
ResolveDynamicTypeFactoryMethod "getControlBinding" o = Gst.Object.ObjectGetControlBindingMethodInfo
ResolveDynamicTypeFactoryMethod "getControlRate" o = Gst.Object.ObjectGetControlRateMethodInfo
ResolveDynamicTypeFactoryMethod "getData" o = GObject.Object.ObjectGetDataMethodInfo
ResolveDynamicTypeFactoryMethod "getGValueArray" o = Gst.Object.ObjectGetGValueArrayMethodInfo
ResolveDynamicTypeFactoryMethod "getName" o = Gst.Object.ObjectGetNameMethodInfo
ResolveDynamicTypeFactoryMethod "getParent" o = Gst.Object.ObjectGetParentMethodInfo
ResolveDynamicTypeFactoryMethod "getPathString" o = Gst.Object.ObjectGetPathStringMethodInfo
ResolveDynamicTypeFactoryMethod "getPlugin" o = Gst.PluginFeature.PluginFeatureGetPluginMethodInfo
ResolveDynamicTypeFactoryMethod "getPluginName" o = Gst.PluginFeature.PluginFeatureGetPluginNameMethodInfo
ResolveDynamicTypeFactoryMethod "getProperty" o = GObject.Object.ObjectGetPropertyMethodInfo
ResolveDynamicTypeFactoryMethod "getQdata" o = GObject.Object.ObjectGetQdataMethodInfo
ResolveDynamicTypeFactoryMethod "getRank" o = Gst.PluginFeature.PluginFeatureGetRankMethodInfo
ResolveDynamicTypeFactoryMethod "getValue" o = Gst.Object.ObjectGetValueMethodInfo
ResolveDynamicTypeFactoryMethod "setControlBindingDisabled" o = Gst.Object.ObjectSetControlBindingDisabledMethodInfo
ResolveDynamicTypeFactoryMethod "setControlBindingsDisabled" o = Gst.Object.ObjectSetControlBindingsDisabledMethodInfo
ResolveDynamicTypeFactoryMethod "setControlRate" o = Gst.Object.ObjectSetControlRateMethodInfo
ResolveDynamicTypeFactoryMethod "setData" o = GObject.Object.ObjectSetDataMethodInfo
ResolveDynamicTypeFactoryMethod "setDataFull" o = GObject.Object.ObjectSetDataFullMethodInfo
ResolveDynamicTypeFactoryMethod "setName" o = Gst.Object.ObjectSetNameMethodInfo
ResolveDynamicTypeFactoryMethod "setParent" o = Gst.Object.ObjectSetParentMethodInfo
ResolveDynamicTypeFactoryMethod "setProperty" o = GObject.Object.ObjectSetPropertyMethodInfo
ResolveDynamicTypeFactoryMethod "setRank" o = Gst.PluginFeature.PluginFeatureSetRankMethodInfo
ResolveDynamicTypeFactoryMethod l o = O.MethodResolutionFailed l o
instance (info ~ ResolveDynamicTypeFactoryMethod t DynamicTypeFactory, O.OverloadedMethod info DynamicTypeFactory p) => OL.IsLabel t (DynamicTypeFactory -> p) where
#if MIN_VERSION_base(4,10,0)
fromLabel = O.overloadedMethod @info
#else
fromLabel _ = O.overloadedMethod @info
#endif
#if MIN_VERSION_base(4,13,0)
instance (info ~ ResolveDynamicTypeFactoryMethod t DynamicTypeFactory, O.OverloadedMethod info DynamicTypeFactory p, R.HasField t DynamicTypeFactory p) => R.HasField t DynamicTypeFactory p where
getField = O.overloadedMethod @info
#endif
instance (info ~ ResolveDynamicTypeFactoryMethod t DynamicTypeFactory, O.OverloadedMethodInfo info DynamicTypeFactory) => OL.IsLabel t (O.MethodProxy info DynamicTypeFactory) where
#if MIN_VERSION_base(4,10,0)
fromLabel = O.MethodProxy
#else
fromLabel _ = O.MethodProxy
#endif
#endif
#if defined(ENABLE_OVERLOADING)
instance O.HasAttributeList DynamicTypeFactory
type instance O.AttributeList DynamicTypeFactory = DynamicTypeFactoryAttributeList
type DynamicTypeFactoryAttributeList = ('[ '("name", Gst.Object.ObjectNamePropertyInfo), '("parent", Gst.Object.ObjectParentPropertyInfo)] :: [(Symbol, *)])
#endif
#if defined(ENABLE_OVERLOADING)
#endif
#if defined(ENABLE_OVERLOADING)
type instance O.SignalList DynamicTypeFactory = DynamicTypeFactorySignalList
type DynamicTypeFactorySignalList = ('[ '("deepNotify", Gst.Object.ObjectDeepNotifySignalInfo), '("notify", GObject.Object.ObjectNotifySignalInfo)] :: [(Symbol, *)])
#endif
foreign import ccall "gst_dynamic_type_factory_load" gst_dynamic_type_factory_load ::
CString ->
IO CGType
dynamicTypeFactoryLoad ::
(B.CallStack.HasCallStack, MonadIO m) =>
T.Text
-> m GType
dynamicTypeFactoryLoad :: forall (m :: * -> *). (HasCallStack, MonadIO m) => Text -> m GType
dynamicTypeFactoryLoad Text
factoryname = IO GType -> m GType
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO GType -> m GType) -> IO GType -> m GType
forall a b. (a -> b) -> a -> b
$ do
CString
factoryname' <- Text -> IO CString
textToCString Text
factoryname
CGType
result <- CString -> IO CGType
gst_dynamic_type_factory_load CString
factoryname'
let result' :: GType
result' = CGType -> GType
GType CGType
result
CString -> IO ()
forall a. Ptr a -> IO ()
freeMem CString
factoryname'
GType -> IO GType
forall (m :: * -> *) a. Monad m => a -> m a
return GType
result'
#if defined(ENABLE_OVERLOADING)
#endif