{-# LANGUAGE ImplicitParams, RankNTypes, TypeApplications #-}
#if (MIN_VERSION_haskell_gi_overloading(1,0,0) && !defined(__HADDOCK_VERSION__))
#define ENABLE_OVERLOADING
#endif
module GI.Gst.Objects.Object
(
Object(..) ,
IsObject ,
toObject ,
#if defined(ENABLE_OVERLOADING)
ResolveObjectMethod ,
#endif
#if defined(ENABLE_OVERLOADING)
ObjectAddControlBindingMethodInfo ,
#endif
objectAddControlBinding ,
objectCheckUniqueness ,
objectDefaultDeepNotify ,
#if defined(ENABLE_OVERLOADING)
ObjectDefaultErrorMethodInfo ,
#endif
objectDefaultError ,
#if defined(ENABLE_OVERLOADING)
ObjectGetControlBindingMethodInfo ,
#endif
objectGetControlBinding ,
#if defined(ENABLE_OVERLOADING)
ObjectGetControlRateMethodInfo ,
#endif
objectGetControlRate ,
#if defined(ENABLE_OVERLOADING)
ObjectGetGValueArrayMethodInfo ,
#endif
objectGetGValueArray ,
#if defined(ENABLE_OVERLOADING)
ObjectGetNameMethodInfo ,
#endif
objectGetName ,
#if defined(ENABLE_OVERLOADING)
ObjectGetParentMethodInfo ,
#endif
objectGetParent ,
#if defined(ENABLE_OVERLOADING)
ObjectGetPathStringMethodInfo ,
#endif
objectGetPathString ,
#if defined(ENABLE_OVERLOADING)
ObjectGetValueMethodInfo ,
#endif
objectGetValue ,
#if defined(ENABLE_OVERLOADING)
ObjectHasActiveControlBindingsMethodInfo,
#endif
objectHasActiveControlBindings ,
#if defined(ENABLE_OVERLOADING)
ObjectHasAncestorMethodInfo ,
#endif
objectHasAncestor ,
#if defined(ENABLE_OVERLOADING)
ObjectHasAsAncestorMethodInfo ,
#endif
objectHasAsAncestor ,
#if defined(ENABLE_OVERLOADING)
ObjectHasAsParentMethodInfo ,
#endif
objectHasAsParent ,
#if defined(ENABLE_OVERLOADING)
ObjectRefMethodInfo ,
#endif
objectRef ,
#if defined(ENABLE_OVERLOADING)
ObjectRemoveControlBindingMethodInfo ,
#endif
objectRemoveControlBinding ,
objectReplace ,
#if defined(ENABLE_OVERLOADING)
ObjectSetControlBindingDisabledMethodInfo,
#endif
objectSetControlBindingDisabled ,
#if defined(ENABLE_OVERLOADING)
ObjectSetControlBindingsDisabledMethodInfo,
#endif
objectSetControlBindingsDisabled ,
#if defined(ENABLE_OVERLOADING)
ObjectSetControlRateMethodInfo ,
#endif
objectSetControlRate ,
#if defined(ENABLE_OVERLOADING)
ObjectSetNameMethodInfo ,
#endif
objectSetName ,
#if defined(ENABLE_OVERLOADING)
ObjectSetParentMethodInfo ,
#endif
objectSetParent ,
#if defined(ENABLE_OVERLOADING)
ObjectSuggestNextSyncMethodInfo ,
#endif
objectSuggestNextSync ,
#if defined(ENABLE_OVERLOADING)
ObjectSyncValuesMethodInfo ,
#endif
objectSyncValues ,
#if defined(ENABLE_OVERLOADING)
ObjectUnparentMethodInfo ,
#endif
objectUnparent ,
#if defined(ENABLE_OVERLOADING)
ObjectUnrefMethodInfo ,
#endif
objectUnref ,
#if defined(ENABLE_OVERLOADING)
ObjectNamePropertyInfo ,
#endif
clearObjectName ,
constructObjectName ,
getObjectName ,
#if defined(ENABLE_OVERLOADING)
objectName ,
#endif
setObjectName ,
#if defined(ENABLE_OVERLOADING)
ObjectParentPropertyInfo ,
#endif
clearObjectParent ,
constructObjectParent ,
getObjectParent ,
#if defined(ENABLE_OVERLOADING)
objectParent ,
#endif
setObjectParent ,
ObjectDeepNotifyCallback ,
#if defined(ENABLE_OVERLOADING)
ObjectDeepNotifySignalInfo ,
#endif
afterObjectDeepNotify ,
onObjectDeepNotify ,
) 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.GHashTable as B.GHT
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.Coerce as Coerce
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.ControlBinding as Gst.ControlBinding
newtype Object = Object (SP.ManagedPtr Object)
deriving (Object -> Object -> Bool
(Object -> Object -> Bool)
-> (Object -> Object -> Bool) -> Eq Object
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: Object -> Object -> Bool
== :: Object -> Object -> Bool
$c/= :: Object -> Object -> Bool
/= :: Object -> Object -> Bool
Eq)
instance SP.ManagedPtrNewtype Object where
toManagedPtr :: Object -> ManagedPtr Object
toManagedPtr (Object ManagedPtr Object
p) = ManagedPtr Object
p
foreign import ccall "gst_object_get_type"
c_gst_object_get_type :: IO B.Types.GType
instance B.Types.TypedObject Object where
glibType :: IO GType
glibType = IO GType
c_gst_object_get_type
instance B.Types.GObject Object
class (SP.GObject o, O.IsDescendantOf Object o) => IsObject o
instance (SP.GObject o, O.IsDescendantOf Object o) => IsObject o
instance O.HasParentTypes Object
type instance O.ParentTypes Object = '[GObject.Object.Object]
toObject :: (MIO.MonadIO m, IsObject o) => o -> m Object
toObject :: forall (m :: * -> *) o. (MonadIO m, IsObject o) => o -> m Object
toObject = IO Object -> m Object
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
MIO.liftIO (IO Object -> m Object) -> (o -> IO Object) -> o -> m Object
forall b c a. (b -> c) -> (a -> b) -> a -> c
. (ManagedPtr Object -> Object) -> o -> IO Object
forall o o'.
(HasCallStack, ManagedPtrNewtype o, TypedObject o,
ManagedPtrNewtype o', TypedObject o') =>
(ManagedPtr o' -> o') -> o -> IO o'
B.ManagedPtr.unsafeCastTo ManagedPtr Object -> Object
Object
instance B.GValue.IsGValue (Maybe Object) where
gvalueGType_ :: IO GType
gvalueGType_ = IO GType
c_gst_object_get_type
gvalueSet_ :: Ptr GValue -> Maybe Object -> IO ()
gvalueSet_ Ptr GValue
gv Maybe Object
P.Nothing = Ptr GValue -> Ptr Object -> IO ()
forall a. GObject a => Ptr GValue -> Ptr a -> IO ()
B.GValue.set_object Ptr GValue
gv (Ptr Object
forall a. Ptr a
FP.nullPtr :: FP.Ptr Object)
gvalueSet_ Ptr GValue
gv (P.Just Object
obj) = Object -> (Ptr Object -> IO ()) -> IO ()
forall a c.
(HasCallStack, ManagedPtrNewtype a) =>
a -> (Ptr a -> IO c) -> IO c
B.ManagedPtr.withManagedPtr Object
obj (Ptr GValue -> Ptr Object -> IO ()
forall a. GObject a => Ptr GValue -> Ptr a -> IO ()
B.GValue.set_object Ptr GValue
gv)
gvalueGet_ :: Ptr GValue -> IO (Maybe Object)
gvalueGet_ Ptr GValue
gv = do
Ptr Object
ptr <- Ptr GValue -> IO (Ptr Object)
forall a. GObject a => Ptr GValue -> IO (Ptr a)
B.GValue.get_object Ptr GValue
gv :: IO (FP.Ptr Object)
if Ptr Object
ptr Ptr Object -> Ptr Object -> Bool
forall a. Eq a => a -> a -> Bool
/= Ptr Object
forall a. Ptr a
FP.nullPtr
then Object -> Maybe Object
forall a. a -> Maybe a
P.Just (Object -> Maybe Object) -> IO Object -> IO (Maybe Object)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (ManagedPtr Object -> Object) -> Ptr Object -> IO Object
forall a b.
(HasCallStack, GObject a, GObject b) =>
(ManagedPtr a -> a) -> Ptr b -> IO a
B.ManagedPtr.newObject ManagedPtr Object -> Object
Object Ptr Object
ptr
else Maybe Object -> IO (Maybe Object)
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return Maybe Object
forall a. Maybe a
P.Nothing
#if defined(ENABLE_OVERLOADING)
type family ResolveObjectMethod (t :: Symbol) (o :: *) :: * where
ResolveObjectMethod "addControlBinding" o = ObjectAddControlBindingMethodInfo
ResolveObjectMethod "bindProperty" o = GObject.Object.ObjectBindPropertyMethodInfo
ResolveObjectMethod "bindPropertyFull" o = GObject.Object.ObjectBindPropertyFullMethodInfo
ResolveObjectMethod "defaultError" o = ObjectDefaultErrorMethodInfo
ResolveObjectMethod "forceFloating" o = GObject.Object.ObjectForceFloatingMethodInfo
ResolveObjectMethod "freezeNotify" o = GObject.Object.ObjectFreezeNotifyMethodInfo
ResolveObjectMethod "getv" o = GObject.Object.ObjectGetvMethodInfo
ResolveObjectMethod "hasActiveControlBindings" o = ObjectHasActiveControlBindingsMethodInfo
ResolveObjectMethod "hasAncestor" o = ObjectHasAncestorMethodInfo
ResolveObjectMethod "hasAsAncestor" o = ObjectHasAsAncestorMethodInfo
ResolveObjectMethod "hasAsParent" o = ObjectHasAsParentMethodInfo
ResolveObjectMethod "isFloating" o = GObject.Object.ObjectIsFloatingMethodInfo
ResolveObjectMethod "notify" o = GObject.Object.ObjectNotifyMethodInfo
ResolveObjectMethod "notifyByPspec" o = GObject.Object.ObjectNotifyByPspecMethodInfo
ResolveObjectMethod "ref" o = ObjectRefMethodInfo
ResolveObjectMethod "refSink" o = GObject.Object.ObjectRefSinkMethodInfo
ResolveObjectMethod "removeControlBinding" o = ObjectRemoveControlBindingMethodInfo
ResolveObjectMethod "runDispose" o = GObject.Object.ObjectRunDisposeMethodInfo
ResolveObjectMethod "stealData" o = GObject.Object.ObjectStealDataMethodInfo
ResolveObjectMethod "stealQdata" o = GObject.Object.ObjectStealQdataMethodInfo
ResolveObjectMethod "suggestNextSync" o = ObjectSuggestNextSyncMethodInfo
ResolveObjectMethod "syncValues" o = ObjectSyncValuesMethodInfo
ResolveObjectMethod "thawNotify" o = GObject.Object.ObjectThawNotifyMethodInfo
ResolveObjectMethod "unparent" o = ObjectUnparentMethodInfo
ResolveObjectMethod "unref" o = ObjectUnrefMethodInfo
ResolveObjectMethod "watchClosure" o = GObject.Object.ObjectWatchClosureMethodInfo
ResolveObjectMethod "getControlBinding" o = ObjectGetControlBindingMethodInfo
ResolveObjectMethod "getControlRate" o = ObjectGetControlRateMethodInfo
ResolveObjectMethod "getData" o = GObject.Object.ObjectGetDataMethodInfo
ResolveObjectMethod "getGValueArray" o = ObjectGetGValueArrayMethodInfo
ResolveObjectMethod "getName" o = ObjectGetNameMethodInfo
ResolveObjectMethod "getParent" o = ObjectGetParentMethodInfo
ResolveObjectMethod "getPathString" o = ObjectGetPathStringMethodInfo
ResolveObjectMethod "getProperty" o = GObject.Object.ObjectGetPropertyMethodInfo
ResolveObjectMethod "getQdata" o = GObject.Object.ObjectGetQdataMethodInfo
ResolveObjectMethod "getValue" o = ObjectGetValueMethodInfo
ResolveObjectMethod "setControlBindingDisabled" o = ObjectSetControlBindingDisabledMethodInfo
ResolveObjectMethod "setControlBindingsDisabled" o = ObjectSetControlBindingsDisabledMethodInfo
ResolveObjectMethod "setControlRate" o = ObjectSetControlRateMethodInfo
ResolveObjectMethod "setData" o = GObject.Object.ObjectSetDataMethodInfo
ResolveObjectMethod "setDataFull" o = GObject.Object.ObjectSetDataFullMethodInfo
ResolveObjectMethod "setName" o = ObjectSetNameMethodInfo
ResolveObjectMethod "setParent" o = ObjectSetParentMethodInfo
ResolveObjectMethod "setProperty" o = GObject.Object.ObjectSetPropertyMethodInfo
ResolveObjectMethod l o = O.MethodResolutionFailed l o
instance (info ~ ResolveObjectMethod t Object, O.OverloadedMethod info Object p) => OL.IsLabel t (Object -> 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 ~ ResolveObjectMethod t Object, O.OverloadedMethod info Object p, R.HasField t Object p) => R.HasField t Object p where
getField = O.overloadedMethod @info
#endif
instance (info ~ ResolveObjectMethod t Object, O.OverloadedMethodInfo info Object) => OL.IsLabel t (O.MethodProxy info Object) where
#if MIN_VERSION_base(4,10,0)
fromLabel = O.MethodProxy
#else
fromLabel _ = O.MethodProxy
#endif
#endif
type ObjectDeepNotifyCallback =
Object
-> GParamSpec
-> IO ()
type C_ObjectDeepNotifyCallback =
Ptr Object ->
Ptr Object ->
Ptr GParamSpec ->
Ptr () ->
IO ()
foreign import ccall "wrapper"
mk_ObjectDeepNotifyCallback :: C_ObjectDeepNotifyCallback -> IO (FunPtr C_ObjectDeepNotifyCallback)
wrap_ObjectDeepNotifyCallback ::
GObject a => (a -> ObjectDeepNotifyCallback) ->
C_ObjectDeepNotifyCallback
wrap_ObjectDeepNotifyCallback :: forall a.
GObject a =>
(a -> ObjectDeepNotifyCallback) -> C_ObjectDeepNotifyCallback
wrap_ObjectDeepNotifyCallback a -> ObjectDeepNotifyCallback
gi'cb Ptr Object
gi'selfPtr Ptr Object
propObject Ptr GParamSpec
prop Ptr ()
_ = do
Object
propObject' <- ((ManagedPtr Object -> Object) -> Ptr Object -> IO Object
forall a b.
(HasCallStack, GObject a, GObject b) =>
(ManagedPtr a -> a) -> Ptr b -> IO a
newObject ManagedPtr Object -> Object
Object) Ptr Object
propObject
GParamSpec
prop' <- Ptr GParamSpec -> IO GParamSpec
B.GParamSpec.newGParamSpecFromPtr Ptr GParamSpec
prop
Ptr Object -> (Object -> IO ()) -> IO ()
forall a b.
(HasCallStack, ManagedPtrNewtype a) =>
Ptr a -> (a -> IO b) -> IO b
B.ManagedPtr.withTransient Ptr Object
gi'selfPtr ((Object -> IO ()) -> IO ()) -> (Object -> IO ()) -> IO ()
forall a b. (a -> b) -> a -> b
$ \Object
gi'self -> a -> ObjectDeepNotifyCallback
gi'cb (Object -> a
forall a b. Coercible a b => a -> b
Coerce.coerce Object
gi'self) Object
propObject' GParamSpec
prop'
onObjectDeepNotify :: (IsObject a, MonadIO m) => a -> P.Maybe T.Text -> ((?self :: a) => ObjectDeepNotifyCallback) -> m SignalHandlerId
onObjectDeepNotify :: forall a (m :: * -> *).
(IsObject a, MonadIO m) =>
a
-> Maybe Text
-> ((?self::a) => ObjectDeepNotifyCallback)
-> m SignalHandlerId
onObjectDeepNotify a
obj Maybe Text
detail (?self::a) => ObjectDeepNotifyCallback
cb = IO SignalHandlerId -> m SignalHandlerId
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO SignalHandlerId -> m SignalHandlerId)
-> IO SignalHandlerId -> m SignalHandlerId
forall a b. (a -> b) -> a -> b
$ do
let wrapped :: a -> ObjectDeepNotifyCallback
wrapped a
self = let ?self = a
?self::a
self in (?self::a) => ObjectDeepNotifyCallback
ObjectDeepNotifyCallback
cb
let wrapped' :: C_ObjectDeepNotifyCallback
wrapped' = (a -> ObjectDeepNotifyCallback) -> C_ObjectDeepNotifyCallback
forall a.
GObject a =>
(a -> ObjectDeepNotifyCallback) -> C_ObjectDeepNotifyCallback
wrap_ObjectDeepNotifyCallback a -> ObjectDeepNotifyCallback
wrapped
FunPtr C_ObjectDeepNotifyCallback
wrapped'' <- C_ObjectDeepNotifyCallback
-> IO (FunPtr C_ObjectDeepNotifyCallback)
mk_ObjectDeepNotifyCallback C_ObjectDeepNotifyCallback
wrapped'
a
-> Text
-> FunPtr C_ObjectDeepNotifyCallback
-> SignalConnectMode
-> Maybe Text
-> IO SignalHandlerId
forall o a.
GObject o =>
o
-> Text
-> FunPtr a
-> SignalConnectMode
-> Maybe Text
-> IO SignalHandlerId
connectSignalFunPtr a
obj Text
"deep-notify" FunPtr C_ObjectDeepNotifyCallback
wrapped'' SignalConnectMode
SignalConnectBefore Maybe Text
detail
afterObjectDeepNotify :: (IsObject a, MonadIO m) => a -> P.Maybe T.Text -> ((?self :: a) => ObjectDeepNotifyCallback) -> m SignalHandlerId
afterObjectDeepNotify :: forall a (m :: * -> *).
(IsObject a, MonadIO m) =>
a
-> Maybe Text
-> ((?self::a) => ObjectDeepNotifyCallback)
-> m SignalHandlerId
afterObjectDeepNotify a
obj Maybe Text
detail (?self::a) => ObjectDeepNotifyCallback
cb = IO SignalHandlerId -> m SignalHandlerId
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO SignalHandlerId -> m SignalHandlerId)
-> IO SignalHandlerId -> m SignalHandlerId
forall a b. (a -> b) -> a -> b
$ do
let wrapped :: a -> ObjectDeepNotifyCallback
wrapped a
self = let ?self = a
?self::a
self in (?self::a) => ObjectDeepNotifyCallback
ObjectDeepNotifyCallback
cb
let wrapped' :: C_ObjectDeepNotifyCallback
wrapped' = (a -> ObjectDeepNotifyCallback) -> C_ObjectDeepNotifyCallback
forall a.
GObject a =>
(a -> ObjectDeepNotifyCallback) -> C_ObjectDeepNotifyCallback
wrap_ObjectDeepNotifyCallback a -> ObjectDeepNotifyCallback
wrapped
FunPtr C_ObjectDeepNotifyCallback
wrapped'' <- C_ObjectDeepNotifyCallback
-> IO (FunPtr C_ObjectDeepNotifyCallback)
mk_ObjectDeepNotifyCallback C_ObjectDeepNotifyCallback
wrapped'
a
-> Text
-> FunPtr C_ObjectDeepNotifyCallback
-> SignalConnectMode
-> Maybe Text
-> IO SignalHandlerId
forall o a.
GObject o =>
o
-> Text
-> FunPtr a
-> SignalConnectMode
-> Maybe Text
-> IO SignalHandlerId
connectSignalFunPtr a
obj Text
"deep-notify" FunPtr C_ObjectDeepNotifyCallback
wrapped'' SignalConnectMode
SignalConnectAfter Maybe Text
detail
#if defined(ENABLE_OVERLOADING)
data ObjectDeepNotifySignalInfo
instance SignalInfo ObjectDeepNotifySignalInfo where
type HaskellCallbackType ObjectDeepNotifySignalInfo = ObjectDeepNotifyCallback
connectSignal obj cb connectMode detail = do
let cb' = wrap_ObjectDeepNotifyCallback cb
cb'' <- mk_ObjectDeepNotifyCallback cb'
connectSignalFunPtr obj "deep-notify" cb'' connectMode detail
dbgSignalInfo = P.Just (O.ResolvedSymbolInfo {
O.resolvedSymbolName = "GI.Gst.Objects.Object::deep-notify"
, O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-gst-1.0.26/docs/GI-Gst-Objects-Object.html#g:signal:deepNotify"})
#endif
getObjectName :: (MonadIO m, IsObject o) => o -> m (Maybe T.Text)
getObjectName :: forall (m :: * -> *) o.
(MonadIO m, IsObject o) =>
o -> m (Maybe Text)
getObjectName o
obj = IO (Maybe Text) -> m (Maybe Text)
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
MIO.liftIO (IO (Maybe Text) -> m (Maybe Text))
-> IO (Maybe Text) -> m (Maybe Text)
forall a b. (a -> b) -> a -> b
$ o -> String -> IO (Maybe Text)
forall a. GObject a => a -> String -> IO (Maybe Text)
B.Properties.getObjectPropertyString o
obj String
"name"
setObjectName :: (MonadIO m, IsObject o) => o -> T.Text -> m ()
setObjectName :: forall (m :: * -> *) o.
(MonadIO m, IsObject o) =>
o -> Text -> m ()
setObjectName o
obj Text
val = IO () -> m ()
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
MIO.liftIO (IO () -> m ()) -> IO () -> m ()
forall a b. (a -> b) -> a -> b
$ do
o -> String -> Maybe Text -> IO ()
forall a. GObject a => a -> String -> Maybe Text -> IO ()
B.Properties.setObjectPropertyString o
obj String
"name" (Text -> Maybe Text
forall a. a -> Maybe a
Just Text
val)
constructObjectName :: (IsObject o, MIO.MonadIO m) => T.Text -> m (GValueConstruct o)
constructObjectName :: forall o (m :: * -> *).
(IsObject o, MonadIO m) =>
Text -> m (GValueConstruct o)
constructObjectName Text
val = IO (GValueConstruct o) -> m (GValueConstruct o)
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
MIO.liftIO (IO (GValueConstruct o) -> m (GValueConstruct o))
-> IO (GValueConstruct o) -> m (GValueConstruct o)
forall a b. (a -> b) -> a -> b
$ do
IO (GValueConstruct o) -> IO (GValueConstruct o)
forall a. IO a -> IO a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
MIO.liftIO (IO (GValueConstruct o) -> IO (GValueConstruct o))
-> IO (GValueConstruct o) -> IO (GValueConstruct o)
forall a b. (a -> b) -> a -> b
$ String -> Maybe Text -> IO (GValueConstruct o)
forall o. String -> Maybe Text -> IO (GValueConstruct o)
B.Properties.constructObjectPropertyString String
"name" (Text -> Maybe Text
forall a. a -> Maybe a
P.Just Text
val)
clearObjectName :: (MonadIO m, IsObject o) => o -> m ()
clearObjectName :: forall (m :: * -> *) o. (MonadIO m, IsObject o) => o -> m ()
clearObjectName o
obj = IO () -> m ()
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO () -> m ()) -> IO () -> m ()
forall a b. (a -> b) -> a -> b
$ o -> String -> Maybe Text -> IO ()
forall a. GObject a => a -> String -> Maybe Text -> IO ()
B.Properties.setObjectPropertyString o
obj String
"name" (Maybe Text
forall a. Maybe a
Nothing :: Maybe T.Text)
#if defined(ENABLE_OVERLOADING)
data ObjectNamePropertyInfo
instance AttrInfo ObjectNamePropertyInfo where
type AttrAllowedOps ObjectNamePropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet, 'AttrClear]
type AttrBaseTypeConstraint ObjectNamePropertyInfo = IsObject
type AttrSetTypeConstraint ObjectNamePropertyInfo = (~) T.Text
type AttrTransferTypeConstraint ObjectNamePropertyInfo = (~) T.Text
type AttrTransferType ObjectNamePropertyInfo = T.Text
type AttrGetType ObjectNamePropertyInfo = (Maybe T.Text)
type AttrLabel ObjectNamePropertyInfo = "name"
type AttrOrigin ObjectNamePropertyInfo = Object
attrGet = getObjectName
attrSet = setObjectName
attrTransfer _ v = do
return v
attrConstruct = constructObjectName
attrClear = clearObjectName
dbgAttrInfo = P.Just (O.ResolvedSymbolInfo {
O.resolvedSymbolName = "GI.Gst.Objects.Object.name"
, O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-gst-1.0.26/docs/GI-Gst-Objects-Object.html#g:attr:name"
})
#endif
getObjectParent :: (MonadIO m, IsObject o) => o -> m (Maybe Object)
getObjectParent :: forall (m :: * -> *) o.
(MonadIO m, IsObject o) =>
o -> m (Maybe Object)
getObjectParent o
obj = IO (Maybe Object) -> m (Maybe Object)
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
MIO.liftIO (IO (Maybe Object) -> m (Maybe Object))
-> IO (Maybe Object) -> m (Maybe Object)
forall a b. (a -> b) -> a -> b
$ o -> String -> (ManagedPtr Object -> Object) -> IO (Maybe Object)
forall a b.
(GObject a, GObject b) =>
a -> String -> (ManagedPtr b -> b) -> IO (Maybe b)
B.Properties.getObjectPropertyObject o
obj String
"parent" ManagedPtr Object -> Object
Object
setObjectParent :: (MonadIO m, IsObject o, IsObject a) => o -> a -> m ()
setObjectParent :: forall (m :: * -> *) o a.
(MonadIO m, IsObject o, IsObject a) =>
o -> a -> m ()
setObjectParent o
obj a
val = IO () -> m ()
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
MIO.liftIO (IO () -> m ()) -> IO () -> m ()
forall a b. (a -> b) -> a -> b
$ do
o -> String -> Maybe a -> IO ()
forall a b.
(GObject a, GObject b) =>
a -> String -> Maybe b -> IO ()
B.Properties.setObjectPropertyObject o
obj String
"parent" (a -> Maybe a
forall a. a -> Maybe a
Just a
val)
constructObjectParent :: (IsObject o, MIO.MonadIO m, IsObject a) => a -> m (GValueConstruct o)
constructObjectParent :: forall o (m :: * -> *) a.
(IsObject o, MonadIO m, IsObject a) =>
a -> m (GValueConstruct o)
constructObjectParent a
val = IO (GValueConstruct o) -> m (GValueConstruct o)
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
MIO.liftIO (IO (GValueConstruct o) -> m (GValueConstruct o))
-> IO (GValueConstruct o) -> m (GValueConstruct o)
forall a b. (a -> b) -> a -> b
$ do
IO (GValueConstruct o) -> IO (GValueConstruct o)
forall a. IO a -> IO a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
MIO.liftIO (IO (GValueConstruct o) -> IO (GValueConstruct o))
-> IO (GValueConstruct o) -> IO (GValueConstruct o)
forall a b. (a -> b) -> a -> b
$ String -> Maybe a -> IO (GValueConstruct o)
forall a o.
GObject a =>
String -> Maybe a -> IO (GValueConstruct o)
B.Properties.constructObjectPropertyObject String
"parent" (a -> Maybe a
forall a. a -> Maybe a
P.Just a
val)
clearObjectParent :: (MonadIO m, IsObject o) => o -> m ()
clearObjectParent :: forall (m :: * -> *) o. (MonadIO m, IsObject o) => o -> m ()
clearObjectParent o
obj = IO () -> m ()
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO () -> m ()) -> IO () -> m ()
forall a b. (a -> b) -> a -> b
$ o -> String -> Maybe Object -> IO ()
forall a b.
(GObject a, GObject b) =>
a -> String -> Maybe b -> IO ()
B.Properties.setObjectPropertyObject o
obj String
"parent" (Maybe Object
forall a. Maybe a
Nothing :: Maybe Object)
#if defined(ENABLE_OVERLOADING)
data ObjectParentPropertyInfo
instance AttrInfo ObjectParentPropertyInfo where
type AttrAllowedOps ObjectParentPropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet, 'AttrClear]
type AttrBaseTypeConstraint ObjectParentPropertyInfo = IsObject
type AttrSetTypeConstraint ObjectParentPropertyInfo = IsObject
type AttrTransferTypeConstraint ObjectParentPropertyInfo = IsObject
type AttrTransferType ObjectParentPropertyInfo = Object
type AttrGetType ObjectParentPropertyInfo = (Maybe Object)
type AttrLabel ObjectParentPropertyInfo = "parent"
type AttrOrigin ObjectParentPropertyInfo = Object
attrGet = getObjectParent
attrSet = setObjectParent
attrTransfer _ v = do
unsafeCastTo Object v
attrConstruct = constructObjectParent
attrClear = clearObjectParent
dbgAttrInfo = P.Just (O.ResolvedSymbolInfo {
O.resolvedSymbolName = "GI.Gst.Objects.Object.parent"
, O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-gst-1.0.26/docs/GI-Gst-Objects-Object.html#g:attr:parent"
})
#endif
#if defined(ENABLE_OVERLOADING)
instance O.HasAttributeList Object
type instance O.AttributeList Object = ObjectAttributeList
type ObjectAttributeList = ('[ '("name", ObjectNamePropertyInfo), '("parent", ObjectParentPropertyInfo)] :: [(Symbol, *)])
#endif
#if defined(ENABLE_OVERLOADING)
objectName :: AttrLabelProxy "name"
objectName = AttrLabelProxy
objectParent :: AttrLabelProxy "parent"
objectParent = AttrLabelProxy
#endif
#if defined(ENABLE_OVERLOADING)
type instance O.SignalList Object = ObjectSignalList
type ObjectSignalList = ('[ '("deepNotify", ObjectDeepNotifySignalInfo), '("notify", GObject.Object.ObjectNotifySignalInfo)] :: [(Symbol, *)])
#endif
foreign import ccall "gst_object_add_control_binding" gst_object_add_control_binding ::
Ptr Object ->
Ptr Gst.ControlBinding.ControlBinding ->
IO CInt
objectAddControlBinding ::
(B.CallStack.HasCallStack, MonadIO m, IsObject a, Gst.ControlBinding.IsControlBinding b) =>
a
-> b
-> m Bool
objectAddControlBinding :: forall (m :: * -> *) a b.
(HasCallStack, MonadIO m, IsObject a, IsControlBinding b) =>
a -> b -> m Bool
objectAddControlBinding a
object b
binding = IO Bool -> m Bool
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO Bool -> m Bool) -> IO Bool -> m Bool
forall a b. (a -> b) -> a -> b
$ do
Ptr Object
object' <- a -> IO (Ptr Object)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
object
Ptr ControlBinding
binding' <- b -> IO (Ptr ControlBinding)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr b
binding
CInt
result <- Ptr Object -> Ptr ControlBinding -> IO CInt
gst_object_add_control_binding Ptr Object
object' Ptr ControlBinding
binding'
let result' :: Bool
result' = (CInt -> CInt -> Bool
forall a. Eq a => a -> a -> Bool
/= CInt
0) CInt
result
a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
object
b -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr b
binding
Bool -> IO Bool
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return Bool
result'
#if defined(ENABLE_OVERLOADING)
data ObjectAddControlBindingMethodInfo
instance (signature ~ (b -> m Bool), MonadIO m, IsObject a, Gst.ControlBinding.IsControlBinding b) => O.OverloadedMethod ObjectAddControlBindingMethodInfo a signature where
overloadedMethod = objectAddControlBinding
instance O.OverloadedMethodInfo ObjectAddControlBindingMethodInfo a where
overloadedMethodInfo = P.Just (O.ResolvedSymbolInfo {
O.resolvedSymbolName = "GI.Gst.Objects.Object.objectAddControlBinding",
O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-gst-1.0.26/docs/GI-Gst-Objects-Object.html#v:objectAddControlBinding"
})
#endif
foreign import ccall "gst_object_default_error" gst_object_default_error ::
Ptr Object ->
Ptr GError ->
CString ->
IO ()
objectDefaultError ::
(B.CallStack.HasCallStack, MonadIO m, IsObject a) =>
a
-> GError
-> Maybe (T.Text)
-> m ()
objectDefaultError :: forall (m :: * -> *) a.
(HasCallStack, MonadIO m, IsObject a) =>
a -> GError -> Maybe Text -> m ()
objectDefaultError a
source GError
error_ Maybe Text
debug = IO () -> m ()
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO () -> m ()) -> IO () -> m ()
forall a b. (a -> b) -> a -> b
$ do
Ptr Object
source' <- a -> IO (Ptr Object)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
source
Ptr GError
error_' <- GError -> IO (Ptr GError)
forall a. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr a)
unsafeManagedPtrGetPtr GError
error_
Ptr CChar
maybeDebug <- case Maybe Text
debug of
Maybe Text
Nothing -> Ptr CChar -> IO (Ptr CChar)
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return Ptr CChar
forall a. Ptr a
nullPtr
Just Text
jDebug -> do
Ptr CChar
jDebug' <- Text -> IO (Ptr CChar)
textToCString Text
jDebug
Ptr CChar -> IO (Ptr CChar)
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return Ptr CChar
jDebug'
Ptr Object -> Ptr GError -> Ptr CChar -> IO ()
gst_object_default_error Ptr Object
source' Ptr GError
error_' Ptr CChar
maybeDebug
a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
source
GError -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr GError
error_
Ptr CChar -> IO ()
forall a. Ptr a -> IO ()
freeMem Ptr CChar
maybeDebug
() -> IO ()
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return ()
#if defined(ENABLE_OVERLOADING)
data ObjectDefaultErrorMethodInfo
instance (signature ~ (GError -> Maybe (T.Text) -> m ()), MonadIO m, IsObject a) => O.OverloadedMethod ObjectDefaultErrorMethodInfo a signature where
overloadedMethod = objectDefaultError
instance O.OverloadedMethodInfo ObjectDefaultErrorMethodInfo a where
overloadedMethodInfo = P.Just (O.ResolvedSymbolInfo {
O.resolvedSymbolName = "GI.Gst.Objects.Object.objectDefaultError",
O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-gst-1.0.26/docs/GI-Gst-Objects-Object.html#v:objectDefaultError"
})
#endif
foreign import ccall "gst_object_get_control_binding" gst_object_get_control_binding ::
Ptr Object ->
CString ->
IO (Ptr Gst.ControlBinding.ControlBinding)
objectGetControlBinding ::
(B.CallStack.HasCallStack, MonadIO m, IsObject a) =>
a
-> T.Text
-> m (Maybe Gst.ControlBinding.ControlBinding)
objectGetControlBinding :: forall (m :: * -> *) a.
(HasCallStack, MonadIO m, IsObject a) =>
a -> Text -> m (Maybe ControlBinding)
objectGetControlBinding a
object Text
propertyName = IO (Maybe ControlBinding) -> m (Maybe ControlBinding)
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO (Maybe ControlBinding) -> m (Maybe ControlBinding))
-> IO (Maybe ControlBinding) -> m (Maybe ControlBinding)
forall a b. (a -> b) -> a -> b
$ do
Ptr Object
object' <- a -> IO (Ptr Object)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
object
Ptr CChar
propertyName' <- Text -> IO (Ptr CChar)
textToCString Text
propertyName
Ptr ControlBinding
result <- Ptr Object -> Ptr CChar -> IO (Ptr ControlBinding)
gst_object_get_control_binding Ptr Object
object' Ptr CChar
propertyName'
Maybe ControlBinding
maybeResult <- Ptr ControlBinding
-> (Ptr ControlBinding -> IO ControlBinding)
-> IO (Maybe ControlBinding)
forall a b. Ptr a -> (Ptr a -> IO b) -> IO (Maybe b)
convertIfNonNull Ptr ControlBinding
result ((Ptr ControlBinding -> IO ControlBinding)
-> IO (Maybe ControlBinding))
-> (Ptr ControlBinding -> IO ControlBinding)
-> IO (Maybe ControlBinding)
forall a b. (a -> b) -> a -> b
$ \Ptr ControlBinding
result' -> do
ControlBinding
result'' <- ((ManagedPtr ControlBinding -> ControlBinding)
-> Ptr ControlBinding -> IO ControlBinding
forall a b.
(HasCallStack, GObject a, GObject b) =>
(ManagedPtr a -> a) -> Ptr b -> IO a
wrapObject ManagedPtr ControlBinding -> ControlBinding
Gst.ControlBinding.ControlBinding) Ptr ControlBinding
result'
ControlBinding -> IO ControlBinding
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return ControlBinding
result''
a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
object
Ptr CChar -> IO ()
forall a. Ptr a -> IO ()
freeMem Ptr CChar
propertyName'
Maybe ControlBinding -> IO (Maybe ControlBinding)
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return Maybe ControlBinding
maybeResult
#if defined(ENABLE_OVERLOADING)
data ObjectGetControlBindingMethodInfo
instance (signature ~ (T.Text -> m (Maybe Gst.ControlBinding.ControlBinding)), MonadIO m, IsObject a) => O.OverloadedMethod ObjectGetControlBindingMethodInfo a signature where
overloadedMethod = objectGetControlBinding
instance O.OverloadedMethodInfo ObjectGetControlBindingMethodInfo a where
overloadedMethodInfo = P.Just (O.ResolvedSymbolInfo {
O.resolvedSymbolName = "GI.Gst.Objects.Object.objectGetControlBinding",
O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-gst-1.0.26/docs/GI-Gst-Objects-Object.html#v:objectGetControlBinding"
})
#endif
foreign import ccall "gst_object_get_control_rate" gst_object_get_control_rate ::
Ptr Object ->
IO Word64
objectGetControlRate ::
(B.CallStack.HasCallStack, MonadIO m, IsObject a) =>
a
-> m Word64
objectGetControlRate :: forall (m :: * -> *) a.
(HasCallStack, MonadIO m, IsObject a) =>
a -> m Word64
objectGetControlRate a
object = IO Word64 -> m Word64
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO Word64 -> m Word64) -> IO Word64 -> m Word64
forall a b. (a -> b) -> a -> b
$ do
Ptr Object
object' <- a -> IO (Ptr Object)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
object
Word64
result <- Ptr Object -> IO Word64
gst_object_get_control_rate Ptr Object
object'
a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
object
Word64 -> IO Word64
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return Word64
result
#if defined(ENABLE_OVERLOADING)
data ObjectGetControlRateMethodInfo
instance (signature ~ (m Word64), MonadIO m, IsObject a) => O.OverloadedMethod ObjectGetControlRateMethodInfo a signature where
overloadedMethod = objectGetControlRate
instance O.OverloadedMethodInfo ObjectGetControlRateMethodInfo a where
overloadedMethodInfo = P.Just (O.ResolvedSymbolInfo {
O.resolvedSymbolName = "GI.Gst.Objects.Object.objectGetControlRate",
O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-gst-1.0.26/docs/GI-Gst-Objects-Object.html#v:objectGetControlRate"
})
#endif
foreign import ccall "gst_object_get_g_value_array" gst_object_get_g_value_array ::
Ptr Object ->
CString ->
Word64 ->
Word64 ->
Word32 ->
Ptr B.GValue.GValue ->
IO CInt
objectGetGValueArray ::
(B.CallStack.HasCallStack, MonadIO m, IsObject a) =>
a
-> T.Text
-> Word64
-> Word64
-> [GValue]
-> m Bool
objectGetGValueArray :: forall (m :: * -> *) a.
(HasCallStack, MonadIO m, IsObject a) =>
a -> Text -> Word64 -> Word64 -> [GValue] -> m Bool
objectGetGValueArray a
object Text
propertyName Word64
timestamp Word64
interval [GValue]
values = IO Bool -> m Bool
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO Bool -> m Bool) -> IO Bool -> m Bool
forall a b. (a -> b) -> a -> b
$ do
let nValues :: Word32
nValues = Int -> Word32
forall a b. (Integral a, Num b) => a -> b
fromIntegral (Int -> Word32) -> Int -> Word32
forall a b. (a -> b) -> a -> b
$ [GValue] -> Int
forall a. [a] -> Int
forall (t :: * -> *) a. Foldable t => t a -> Int
P.length [GValue]
values
Ptr Object
object' <- a -> IO (Ptr Object)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
object
Ptr CChar
propertyName' <- Text -> IO (Ptr CChar)
textToCString Text
propertyName
Ptr GValue
values' <- [GValue] -> IO (Ptr GValue)
B.GValue.packGValueArray [GValue]
values
CInt
result <- Ptr Object
-> Ptr CChar -> Word64 -> Word64 -> Word32 -> Ptr GValue -> IO CInt
gst_object_get_g_value_array Ptr Object
object' Ptr CChar
propertyName' Word64
timestamp Word64
interval Word32
nValues Ptr GValue
values'
let result' :: Bool
result' = (CInt -> CInt -> Bool
forall a. Eq a => a -> a -> Bool
/= CInt
0) CInt
result
a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
object
(GValue -> IO ()) -> [GValue] -> IO ()
forall (t :: * -> *) (m :: * -> *) a b.
(Foldable t, Monad m) =>
(a -> m b) -> t a -> m ()
mapM_ GValue -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr [GValue]
values
Ptr CChar -> IO ()
forall a. Ptr a -> IO ()
freeMem Ptr CChar
propertyName'
Ptr GValue -> IO ()
forall a. Ptr a -> IO ()
freeMem Ptr GValue
values'
Bool -> IO Bool
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return Bool
result'
#if defined(ENABLE_OVERLOADING)
data ObjectGetGValueArrayMethodInfo
instance (signature ~ (T.Text -> Word64 -> Word64 -> [GValue] -> m Bool), MonadIO m, IsObject a) => O.OverloadedMethod ObjectGetGValueArrayMethodInfo a signature where
overloadedMethod = objectGetGValueArray
instance O.OverloadedMethodInfo ObjectGetGValueArrayMethodInfo a where
overloadedMethodInfo = P.Just (O.ResolvedSymbolInfo {
O.resolvedSymbolName = "GI.Gst.Objects.Object.objectGetGValueArray",
O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-gst-1.0.26/docs/GI-Gst-Objects-Object.html#v:objectGetGValueArray"
})
#endif
foreign import ccall "gst_object_get_name" gst_object_get_name ::
Ptr Object ->
IO CString
objectGetName ::
(B.CallStack.HasCallStack, MonadIO m, IsObject a) =>
a
-> m (Maybe T.Text)
objectGetName :: forall (m :: * -> *) a.
(HasCallStack, MonadIO m, IsObject a) =>
a -> m (Maybe Text)
objectGetName a
object = IO (Maybe Text) -> m (Maybe Text)
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO (Maybe Text) -> m (Maybe Text))
-> IO (Maybe Text) -> m (Maybe Text)
forall a b. (a -> b) -> a -> b
$ do
Ptr Object
object' <- a -> IO (Ptr Object)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
object
Ptr CChar
result <- Ptr Object -> IO (Ptr CChar)
gst_object_get_name Ptr Object
object'
Maybe Text
maybeResult <- Ptr CChar -> (Ptr CChar -> IO Text) -> IO (Maybe Text)
forall a b. Ptr a -> (Ptr a -> IO b) -> IO (Maybe b)
convertIfNonNull Ptr CChar
result ((Ptr CChar -> IO Text) -> IO (Maybe Text))
-> (Ptr CChar -> IO Text) -> IO (Maybe Text)
forall a b. (a -> b) -> a -> b
$ \Ptr CChar
result' -> do
Text
result'' <- HasCallStack => Ptr CChar -> IO Text
Ptr CChar -> IO Text
cstringToText Ptr CChar
result'
Ptr CChar -> IO ()
forall a. Ptr a -> IO ()
freeMem Ptr CChar
result'
Text -> IO Text
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return Text
result''
a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
object
Maybe Text -> IO (Maybe Text)
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return Maybe Text
maybeResult
#if defined(ENABLE_OVERLOADING)
data ObjectGetNameMethodInfo
instance (signature ~ (m (Maybe T.Text)), MonadIO m, IsObject a) => O.OverloadedMethod ObjectGetNameMethodInfo a signature where
overloadedMethod = objectGetName
instance O.OverloadedMethodInfo ObjectGetNameMethodInfo a where
overloadedMethodInfo = P.Just (O.ResolvedSymbolInfo {
O.resolvedSymbolName = "GI.Gst.Objects.Object.objectGetName",
O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-gst-1.0.26/docs/GI-Gst-Objects-Object.html#v:objectGetName"
})
#endif
foreign import ccall "gst_object_get_parent" gst_object_get_parent ::
Ptr Object ->
IO (Ptr Object)
objectGetParent ::
(B.CallStack.HasCallStack, MonadIO m, IsObject a) =>
a
-> m (Maybe Object)
objectGetParent :: forall (m :: * -> *) a.
(HasCallStack, MonadIO m, IsObject a) =>
a -> m (Maybe Object)
objectGetParent a
object = IO (Maybe Object) -> m (Maybe Object)
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO (Maybe Object) -> m (Maybe Object))
-> IO (Maybe Object) -> m (Maybe Object)
forall a b. (a -> b) -> a -> b
$ do
Ptr Object
object' <- a -> IO (Ptr Object)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
object
Ptr Object
result <- Ptr Object -> IO (Ptr Object)
gst_object_get_parent Ptr Object
object'
Maybe Object
maybeResult <- Ptr Object -> (Ptr Object -> IO Object) -> IO (Maybe Object)
forall a b. Ptr a -> (Ptr a -> IO b) -> IO (Maybe b)
convertIfNonNull Ptr Object
result ((Ptr Object -> IO Object) -> IO (Maybe Object))
-> (Ptr Object -> IO Object) -> IO (Maybe Object)
forall a b. (a -> b) -> a -> b
$ \Ptr Object
result' -> do
Object
result'' <- ((ManagedPtr Object -> Object) -> Ptr Object -> IO Object
forall a b.
(HasCallStack, GObject a, GObject b) =>
(ManagedPtr a -> a) -> Ptr b -> IO a
wrapObject ManagedPtr Object -> Object
Object) Ptr Object
result'
Object -> IO Object
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return Object
result''
a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
object
Maybe Object -> IO (Maybe Object)
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return Maybe Object
maybeResult
#if defined(ENABLE_OVERLOADING)
data ObjectGetParentMethodInfo
instance (signature ~ (m (Maybe Object)), MonadIO m, IsObject a) => O.OverloadedMethod ObjectGetParentMethodInfo a signature where
overloadedMethod = objectGetParent
instance O.OverloadedMethodInfo ObjectGetParentMethodInfo a where
overloadedMethodInfo = P.Just (O.ResolvedSymbolInfo {
O.resolvedSymbolName = "GI.Gst.Objects.Object.objectGetParent",
O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-gst-1.0.26/docs/GI-Gst-Objects-Object.html#v:objectGetParent"
})
#endif
foreign import ccall "gst_object_get_path_string" gst_object_get_path_string ::
Ptr Object ->
IO CString
objectGetPathString ::
(B.CallStack.HasCallStack, MonadIO m, IsObject a) =>
a
-> m T.Text
objectGetPathString :: forall (m :: * -> *) a.
(HasCallStack, MonadIO m, IsObject a) =>
a -> m Text
objectGetPathString a
object = IO Text -> m Text
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO Text -> m Text) -> IO Text -> m Text
forall a b. (a -> b) -> a -> b
$ do
Ptr Object
object' <- a -> IO (Ptr Object)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
object
Ptr CChar
result <- Ptr Object -> IO (Ptr CChar)
gst_object_get_path_string Ptr Object
object'
Text -> Ptr CChar -> IO ()
forall a. HasCallStack => Text -> Ptr a -> IO ()
checkUnexpectedReturnNULL Text
"objectGetPathString" Ptr CChar
result
Text
result' <- HasCallStack => Ptr CChar -> IO Text
Ptr CChar -> IO Text
cstringToText Ptr CChar
result
Ptr CChar -> IO ()
forall a. Ptr a -> IO ()
freeMem Ptr CChar
result
a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
object
Text -> IO Text
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return Text
result'
#if defined(ENABLE_OVERLOADING)
data ObjectGetPathStringMethodInfo
instance (signature ~ (m T.Text), MonadIO m, IsObject a) => O.OverloadedMethod ObjectGetPathStringMethodInfo a signature where
overloadedMethod = objectGetPathString
instance O.OverloadedMethodInfo ObjectGetPathStringMethodInfo a where
overloadedMethodInfo = P.Just (O.ResolvedSymbolInfo {
O.resolvedSymbolName = "GI.Gst.Objects.Object.objectGetPathString",
O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-gst-1.0.26/docs/GI-Gst-Objects-Object.html#v:objectGetPathString"
})
#endif
foreign import ccall "gst_object_get_value" gst_object_get_value ::
Ptr Object ->
CString ->
Word64 ->
IO (Ptr GValue)
objectGetValue ::
(B.CallStack.HasCallStack, MonadIO m, IsObject a) =>
a
-> T.Text
-> Word64
-> m (Maybe GValue)
objectGetValue :: forall (m :: * -> *) a.
(HasCallStack, MonadIO m, IsObject a) =>
a -> Text -> Word64 -> m (Maybe GValue)
objectGetValue a
object Text
propertyName Word64
timestamp = IO (Maybe GValue) -> m (Maybe GValue)
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO (Maybe GValue) -> m (Maybe GValue))
-> IO (Maybe GValue) -> m (Maybe GValue)
forall a b. (a -> b) -> a -> b
$ do
Ptr Object
object' <- a -> IO (Ptr Object)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
object
Ptr CChar
propertyName' <- Text -> IO (Ptr CChar)
textToCString Text
propertyName
Ptr GValue
result <- Ptr Object -> Ptr CChar -> Word64 -> IO (Ptr GValue)
gst_object_get_value Ptr Object
object' Ptr CChar
propertyName' Word64
timestamp
Maybe GValue
maybeResult <- Ptr GValue -> (Ptr GValue -> IO GValue) -> IO (Maybe GValue)
forall a b. Ptr a -> (Ptr a -> IO b) -> IO (Maybe b)
convertIfNonNull Ptr GValue
result ((Ptr GValue -> IO GValue) -> IO (Maybe GValue))
-> (Ptr GValue -> IO GValue) -> IO (Maybe GValue)
forall a b. (a -> b) -> a -> b
$ \Ptr GValue
result' -> do
GValue
result'' <- Ptr GValue -> IO GValue
B.GValue.wrapGValuePtr Ptr GValue
result'
GValue -> IO GValue
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return GValue
result''
a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
object
Ptr CChar -> IO ()
forall a. Ptr a -> IO ()
freeMem Ptr CChar
propertyName'
Maybe GValue -> IO (Maybe GValue)
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return Maybe GValue
maybeResult
#if defined(ENABLE_OVERLOADING)
data ObjectGetValueMethodInfo
instance (signature ~ (T.Text -> Word64 -> m (Maybe GValue)), MonadIO m, IsObject a) => O.OverloadedMethod ObjectGetValueMethodInfo a signature where
overloadedMethod = objectGetValue
instance O.OverloadedMethodInfo ObjectGetValueMethodInfo a where
overloadedMethodInfo = P.Just (O.ResolvedSymbolInfo {
O.resolvedSymbolName = "GI.Gst.Objects.Object.objectGetValue",
O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-gst-1.0.26/docs/GI-Gst-Objects-Object.html#v:objectGetValue"
})
#endif
foreign import ccall "gst_object_has_active_control_bindings" gst_object_has_active_control_bindings ::
Ptr Object ->
IO CInt
objectHasActiveControlBindings ::
(B.CallStack.HasCallStack, MonadIO m, IsObject a) =>
a
-> m Bool
objectHasActiveControlBindings :: forall (m :: * -> *) a.
(HasCallStack, MonadIO m, IsObject a) =>
a -> m Bool
objectHasActiveControlBindings a
object = IO Bool -> m Bool
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO Bool -> m Bool) -> IO Bool -> m Bool
forall a b. (a -> b) -> a -> b
$ do
Ptr Object
object' <- a -> IO (Ptr Object)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
object
CInt
result <- Ptr Object -> IO CInt
gst_object_has_active_control_bindings Ptr Object
object'
let result' :: Bool
result' = (CInt -> CInt -> Bool
forall a. Eq a => a -> a -> Bool
/= CInt
0) CInt
result
a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
object
Bool -> IO Bool
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return Bool
result'
#if defined(ENABLE_OVERLOADING)
data ObjectHasActiveControlBindingsMethodInfo
instance (signature ~ (m Bool), MonadIO m, IsObject a) => O.OverloadedMethod ObjectHasActiveControlBindingsMethodInfo a signature where
overloadedMethod = objectHasActiveControlBindings
instance O.OverloadedMethodInfo ObjectHasActiveControlBindingsMethodInfo a where
overloadedMethodInfo = P.Just (O.ResolvedSymbolInfo {
O.resolvedSymbolName = "GI.Gst.Objects.Object.objectHasActiveControlBindings",
O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-gst-1.0.26/docs/GI-Gst-Objects-Object.html#v:objectHasActiveControlBindings"
})
#endif
foreign import ccall "gst_object_has_ancestor" gst_object_has_ancestor ::
Ptr Object ->
Ptr Object ->
IO CInt
{-# DEPRECATED objectHasAncestor ["Use 'GI.Gst.Objects.Object.objectHasAsAncestor' instead.","","MT safe. Grabs and releases /@object@/\\'s locks."] #-}
objectHasAncestor ::
(B.CallStack.HasCallStack, MonadIO m, IsObject a, IsObject b) =>
a
-> b
-> m Bool
objectHasAncestor :: forall (m :: * -> *) a b.
(HasCallStack, MonadIO m, IsObject a, IsObject b) =>
a -> b -> m Bool
objectHasAncestor a
object b
ancestor = IO Bool -> m Bool
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO Bool -> m Bool) -> IO Bool -> m Bool
forall a b. (a -> b) -> a -> b
$ do
Ptr Object
object' <- a -> IO (Ptr Object)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
object
Ptr Object
ancestor' <- b -> IO (Ptr Object)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr b
ancestor
CInt
result <- Ptr Object -> Ptr Object -> IO CInt
gst_object_has_ancestor Ptr Object
object' Ptr Object
ancestor'
let result' :: Bool
result' = (CInt -> CInt -> Bool
forall a. Eq a => a -> a -> Bool
/= CInt
0) CInt
result
a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
object
b -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr b
ancestor
Bool -> IO Bool
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return Bool
result'
#if defined(ENABLE_OVERLOADING)
data ObjectHasAncestorMethodInfo
instance (signature ~ (b -> m Bool), MonadIO m, IsObject a, IsObject b) => O.OverloadedMethod ObjectHasAncestorMethodInfo a signature where
overloadedMethod = objectHasAncestor
instance O.OverloadedMethodInfo ObjectHasAncestorMethodInfo a where
overloadedMethodInfo = P.Just (O.ResolvedSymbolInfo {
O.resolvedSymbolName = "GI.Gst.Objects.Object.objectHasAncestor",
O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-gst-1.0.26/docs/GI-Gst-Objects-Object.html#v:objectHasAncestor"
})
#endif
foreign import ccall "gst_object_has_as_ancestor" gst_object_has_as_ancestor ::
Ptr Object ->
Ptr Object ->
IO CInt
objectHasAsAncestor ::
(B.CallStack.HasCallStack, MonadIO m, IsObject a, IsObject b) =>
a
-> b
-> m Bool
objectHasAsAncestor :: forall (m :: * -> *) a b.
(HasCallStack, MonadIO m, IsObject a, IsObject b) =>
a -> b -> m Bool
objectHasAsAncestor a
object b
ancestor = IO Bool -> m Bool
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO Bool -> m Bool) -> IO Bool -> m Bool
forall a b. (a -> b) -> a -> b
$ do
Ptr Object
object' <- a -> IO (Ptr Object)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
object
Ptr Object
ancestor' <- b -> IO (Ptr Object)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr b
ancestor
CInt
result <- Ptr Object -> Ptr Object -> IO CInt
gst_object_has_as_ancestor Ptr Object
object' Ptr Object
ancestor'
let result' :: Bool
result' = (CInt -> CInt -> Bool
forall a. Eq a => a -> a -> Bool
/= CInt
0) CInt
result
a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
object
b -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr b
ancestor
Bool -> IO Bool
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return Bool
result'
#if defined(ENABLE_OVERLOADING)
data ObjectHasAsAncestorMethodInfo
instance (signature ~ (b -> m Bool), MonadIO m, IsObject a, IsObject b) => O.OverloadedMethod ObjectHasAsAncestorMethodInfo a signature where
overloadedMethod = objectHasAsAncestor
instance O.OverloadedMethodInfo ObjectHasAsAncestorMethodInfo a where
overloadedMethodInfo = P.Just (O.ResolvedSymbolInfo {
O.resolvedSymbolName = "GI.Gst.Objects.Object.objectHasAsAncestor",
O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-gst-1.0.26/docs/GI-Gst-Objects-Object.html#v:objectHasAsAncestor"
})
#endif
foreign import ccall "gst_object_has_as_parent" gst_object_has_as_parent ::
Ptr Object ->
Ptr Object ->
IO CInt
objectHasAsParent ::
(B.CallStack.HasCallStack, MonadIO m, IsObject a, IsObject b) =>
a
-> b
-> m Bool
objectHasAsParent :: forall (m :: * -> *) a b.
(HasCallStack, MonadIO m, IsObject a, IsObject b) =>
a -> b -> m Bool
objectHasAsParent a
object b
parent = IO Bool -> m Bool
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO Bool -> m Bool) -> IO Bool -> m Bool
forall a b. (a -> b) -> a -> b
$ do
Ptr Object
object' <- a -> IO (Ptr Object)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
object
Ptr Object
parent' <- b -> IO (Ptr Object)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr b
parent
CInt
result <- Ptr Object -> Ptr Object -> IO CInt
gst_object_has_as_parent Ptr Object
object' Ptr Object
parent'
let result' :: Bool
result' = (CInt -> CInt -> Bool
forall a. Eq a => a -> a -> Bool
/= CInt
0) CInt
result
a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
object
b -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr b
parent
Bool -> IO Bool
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return Bool
result'
#if defined(ENABLE_OVERLOADING)
data ObjectHasAsParentMethodInfo
instance (signature ~ (b -> m Bool), MonadIO m, IsObject a, IsObject b) => O.OverloadedMethod ObjectHasAsParentMethodInfo a signature where
overloadedMethod = objectHasAsParent
instance O.OverloadedMethodInfo ObjectHasAsParentMethodInfo a where
overloadedMethodInfo = P.Just (O.ResolvedSymbolInfo {
O.resolvedSymbolName = "GI.Gst.Objects.Object.objectHasAsParent",
O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-gst-1.0.26/docs/GI-Gst-Objects-Object.html#v:objectHasAsParent"
})
#endif
foreign import ccall "gst_object_ref" gst_object_ref ::
Ptr Object ->
IO (Ptr Object)
objectRef ::
(B.CallStack.HasCallStack, MonadIO m, IsObject a) =>
a
-> m Object
objectRef :: forall (m :: * -> *) a.
(HasCallStack, MonadIO m, IsObject a) =>
a -> m Object
objectRef a
object = IO Object -> m Object
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO Object -> m Object) -> IO Object -> m Object
forall a b. (a -> b) -> a -> b
$ do
Ptr Object
object' <- a -> IO (Ptr Object)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
object
Ptr Object
result <- Ptr Object -> IO (Ptr Object)
gst_object_ref Ptr Object
object'
Text -> Ptr Object -> IO ()
forall a. HasCallStack => Text -> Ptr a -> IO ()
checkUnexpectedReturnNULL Text
"objectRef" Ptr Object
result
Object
result' <- ((ManagedPtr Object -> Object) -> Ptr Object -> IO Object
forall a b.
(HasCallStack, GObject a, GObject b) =>
(ManagedPtr a -> a) -> Ptr b -> IO a
wrapObject ManagedPtr Object -> Object
Object) Ptr Object
result
a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
object
Object -> IO Object
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return Object
result'
#if defined(ENABLE_OVERLOADING)
data ObjectRefMethodInfo
instance (signature ~ (m Object), MonadIO m, IsObject a) => O.OverloadedMethod ObjectRefMethodInfo a signature where
overloadedMethod = objectRef
instance O.OverloadedMethodInfo ObjectRefMethodInfo a where
overloadedMethodInfo = P.Just (O.ResolvedSymbolInfo {
O.resolvedSymbolName = "GI.Gst.Objects.Object.objectRef",
O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-gst-1.0.26/docs/GI-Gst-Objects-Object.html#v:objectRef"
})
#endif
foreign import ccall "gst_object_remove_control_binding" gst_object_remove_control_binding ::
Ptr Object ->
Ptr Gst.ControlBinding.ControlBinding ->
IO CInt
objectRemoveControlBinding ::
(B.CallStack.HasCallStack, MonadIO m, IsObject a, Gst.ControlBinding.IsControlBinding b) =>
a
-> b
-> m Bool
objectRemoveControlBinding :: forall (m :: * -> *) a b.
(HasCallStack, MonadIO m, IsObject a, IsControlBinding b) =>
a -> b -> m Bool
objectRemoveControlBinding a
object b
binding = IO Bool -> m Bool
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO Bool -> m Bool) -> IO Bool -> m Bool
forall a b. (a -> b) -> a -> b
$ do
Ptr Object
object' <- a -> IO (Ptr Object)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
object
Ptr ControlBinding
binding' <- b -> IO (Ptr ControlBinding)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr b
binding
CInt
result <- Ptr Object -> Ptr ControlBinding -> IO CInt
gst_object_remove_control_binding Ptr Object
object' Ptr ControlBinding
binding'
let result' :: Bool
result' = (CInt -> CInt -> Bool
forall a. Eq a => a -> a -> Bool
/= CInt
0) CInt
result
a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
object
b -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr b
binding
Bool -> IO Bool
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return Bool
result'
#if defined(ENABLE_OVERLOADING)
data ObjectRemoveControlBindingMethodInfo
instance (signature ~ (b -> m Bool), MonadIO m, IsObject a, Gst.ControlBinding.IsControlBinding b) => O.OverloadedMethod ObjectRemoveControlBindingMethodInfo a signature where
overloadedMethod = objectRemoveControlBinding
instance O.OverloadedMethodInfo ObjectRemoveControlBindingMethodInfo a where
overloadedMethodInfo = P.Just (O.ResolvedSymbolInfo {
O.resolvedSymbolName = "GI.Gst.Objects.Object.objectRemoveControlBinding",
O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-gst-1.0.26/docs/GI-Gst-Objects-Object.html#v:objectRemoveControlBinding"
})
#endif
foreign import ccall "gst_object_set_control_binding_disabled" gst_object_set_control_binding_disabled ::
Ptr Object ->
CString ->
CInt ->
IO ()
objectSetControlBindingDisabled ::
(B.CallStack.HasCallStack, MonadIO m, IsObject a) =>
a
-> T.Text
-> Bool
-> m ()
objectSetControlBindingDisabled :: forall (m :: * -> *) a.
(HasCallStack, MonadIO m, IsObject a) =>
a -> Text -> Bool -> m ()
objectSetControlBindingDisabled a
object Text
propertyName Bool
disabled = IO () -> m ()
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO () -> m ()) -> IO () -> m ()
forall a b. (a -> b) -> a -> b
$ do
Ptr Object
object' <- a -> IO (Ptr Object)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
object
Ptr CChar
propertyName' <- Text -> IO (Ptr CChar)
textToCString Text
propertyName
let disabled' :: CInt
disabled' = (Int -> CInt
forall a b. (Integral a, Num b) => a -> b
fromIntegral (Int -> CInt) -> (Bool -> Int) -> Bool -> CInt
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Bool -> Int
forall a. Enum a => a -> Int
fromEnum) Bool
disabled
Ptr Object -> Ptr CChar -> CInt -> IO ()
gst_object_set_control_binding_disabled Ptr Object
object' Ptr CChar
propertyName' CInt
disabled'
a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
object
Ptr CChar -> IO ()
forall a. Ptr a -> IO ()
freeMem Ptr CChar
propertyName'
() -> IO ()
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return ()
#if defined(ENABLE_OVERLOADING)
data ObjectSetControlBindingDisabledMethodInfo
instance (signature ~ (T.Text -> Bool -> m ()), MonadIO m, IsObject a) => O.OverloadedMethod ObjectSetControlBindingDisabledMethodInfo a signature where
overloadedMethod = objectSetControlBindingDisabled
instance O.OverloadedMethodInfo ObjectSetControlBindingDisabledMethodInfo a where
overloadedMethodInfo = P.Just (O.ResolvedSymbolInfo {
O.resolvedSymbolName = "GI.Gst.Objects.Object.objectSetControlBindingDisabled",
O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-gst-1.0.26/docs/GI-Gst-Objects-Object.html#v:objectSetControlBindingDisabled"
})
#endif
foreign import ccall "gst_object_set_control_bindings_disabled" gst_object_set_control_bindings_disabled ::
Ptr Object ->
CInt ->
IO ()
objectSetControlBindingsDisabled ::
(B.CallStack.HasCallStack, MonadIO m, IsObject a) =>
a
-> Bool
-> m ()
objectSetControlBindingsDisabled :: forall (m :: * -> *) a.
(HasCallStack, MonadIO m, IsObject a) =>
a -> Bool -> m ()
objectSetControlBindingsDisabled a
object Bool
disabled = IO () -> m ()
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO () -> m ()) -> IO () -> m ()
forall a b. (a -> b) -> a -> b
$ do
Ptr Object
object' <- a -> IO (Ptr Object)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
object
let disabled' :: CInt
disabled' = (Int -> CInt
forall a b. (Integral a, Num b) => a -> b
fromIntegral (Int -> CInt) -> (Bool -> Int) -> Bool -> CInt
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Bool -> Int
forall a. Enum a => a -> Int
fromEnum) Bool
disabled
Ptr Object -> CInt -> IO ()
gst_object_set_control_bindings_disabled Ptr Object
object' CInt
disabled'
a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
object
() -> IO ()
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return ()
#if defined(ENABLE_OVERLOADING)
data ObjectSetControlBindingsDisabledMethodInfo
instance (signature ~ (Bool -> m ()), MonadIO m, IsObject a) => O.OverloadedMethod ObjectSetControlBindingsDisabledMethodInfo a signature where
overloadedMethod = objectSetControlBindingsDisabled
instance O.OverloadedMethodInfo ObjectSetControlBindingsDisabledMethodInfo a where
overloadedMethodInfo = P.Just (O.ResolvedSymbolInfo {
O.resolvedSymbolName = "GI.Gst.Objects.Object.objectSetControlBindingsDisabled",
O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-gst-1.0.26/docs/GI-Gst-Objects-Object.html#v:objectSetControlBindingsDisabled"
})
#endif
foreign import ccall "gst_object_set_control_rate" gst_object_set_control_rate ::
Ptr Object ->
Word64 ->
IO ()
objectSetControlRate ::
(B.CallStack.HasCallStack, MonadIO m, IsObject a) =>
a
-> Word64
-> m ()
objectSetControlRate :: forall (m :: * -> *) a.
(HasCallStack, MonadIO m, IsObject a) =>
a -> Word64 -> m ()
objectSetControlRate a
object Word64
controlRate = IO () -> m ()
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO () -> m ()) -> IO () -> m ()
forall a b. (a -> b) -> a -> b
$ do
Ptr Object
object' <- a -> IO (Ptr Object)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
object
Ptr Object -> Word64 -> IO ()
gst_object_set_control_rate Ptr Object
object' Word64
controlRate
a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
object
() -> IO ()
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return ()
#if defined(ENABLE_OVERLOADING)
data ObjectSetControlRateMethodInfo
instance (signature ~ (Word64 -> m ()), MonadIO m, IsObject a) => O.OverloadedMethod ObjectSetControlRateMethodInfo a signature where
overloadedMethod = objectSetControlRate
instance O.OverloadedMethodInfo ObjectSetControlRateMethodInfo a where
overloadedMethodInfo = P.Just (O.ResolvedSymbolInfo {
O.resolvedSymbolName = "GI.Gst.Objects.Object.objectSetControlRate",
O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-gst-1.0.26/docs/GI-Gst-Objects-Object.html#v:objectSetControlRate"
})
#endif
foreign import ccall "gst_object_set_name" gst_object_set_name ::
Ptr Object ->
CString ->
IO CInt
objectSetName ::
(B.CallStack.HasCallStack, MonadIO m, IsObject a) =>
a
-> Maybe (T.Text)
-> m Bool
objectSetName :: forall (m :: * -> *) a.
(HasCallStack, MonadIO m, IsObject a) =>
a -> Maybe Text -> m Bool
objectSetName a
object Maybe Text
name = IO Bool -> m Bool
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO Bool -> m Bool) -> IO Bool -> m Bool
forall a b. (a -> b) -> a -> b
$ do
Ptr Object
object' <- a -> IO (Ptr Object)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
object
Ptr CChar
maybeName <- case Maybe Text
name of
Maybe Text
Nothing -> Ptr CChar -> IO (Ptr CChar)
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return Ptr CChar
forall a. Ptr a
nullPtr
Just Text
jName -> do
Ptr CChar
jName' <- Text -> IO (Ptr CChar)
textToCString Text
jName
Ptr CChar -> IO (Ptr CChar)
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return Ptr CChar
jName'
CInt
result <- Ptr Object -> Ptr CChar -> IO CInt
gst_object_set_name Ptr Object
object' Ptr CChar
maybeName
let result' :: Bool
result' = (CInt -> CInt -> Bool
forall a. Eq a => a -> a -> Bool
/= CInt
0) CInt
result
a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
object
Ptr CChar -> IO ()
forall a. Ptr a -> IO ()
freeMem Ptr CChar
maybeName
Bool -> IO Bool
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return Bool
result'
#if defined(ENABLE_OVERLOADING)
data ObjectSetNameMethodInfo
instance (signature ~ (Maybe (T.Text) -> m Bool), MonadIO m, IsObject a) => O.OverloadedMethod ObjectSetNameMethodInfo a signature where
overloadedMethod = objectSetName
instance O.OverloadedMethodInfo ObjectSetNameMethodInfo a where
overloadedMethodInfo = P.Just (O.ResolvedSymbolInfo {
O.resolvedSymbolName = "GI.Gst.Objects.Object.objectSetName",
O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-gst-1.0.26/docs/GI-Gst-Objects-Object.html#v:objectSetName"
})
#endif
foreign import ccall "gst_object_set_parent" gst_object_set_parent ::
Ptr Object ->
Ptr Object ->
IO CInt
objectSetParent ::
(B.CallStack.HasCallStack, MonadIO m, IsObject a, IsObject b) =>
a
-> b
-> m Bool
objectSetParent :: forall (m :: * -> *) a b.
(HasCallStack, MonadIO m, IsObject a, IsObject b) =>
a -> b -> m Bool
objectSetParent a
object b
parent = IO Bool -> m Bool
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO Bool -> m Bool) -> IO Bool -> m Bool
forall a b. (a -> b) -> a -> b
$ do
Ptr Object
object' <- a -> IO (Ptr Object)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
object
Ptr Object
parent' <- b -> IO (Ptr Object)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr b
parent
CInt
result <- Ptr Object -> Ptr Object -> IO CInt
gst_object_set_parent Ptr Object
object' Ptr Object
parent'
let result' :: Bool
result' = (CInt -> CInt -> Bool
forall a. Eq a => a -> a -> Bool
/= CInt
0) CInt
result
a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
object
b -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr b
parent
Bool -> IO Bool
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return Bool
result'
#if defined(ENABLE_OVERLOADING)
data ObjectSetParentMethodInfo
instance (signature ~ (b -> m Bool), MonadIO m, IsObject a, IsObject b) => O.OverloadedMethod ObjectSetParentMethodInfo a signature where
overloadedMethod = objectSetParent
instance O.OverloadedMethodInfo ObjectSetParentMethodInfo a where
overloadedMethodInfo = P.Just (O.ResolvedSymbolInfo {
O.resolvedSymbolName = "GI.Gst.Objects.Object.objectSetParent",
O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-gst-1.0.26/docs/GI-Gst-Objects-Object.html#v:objectSetParent"
})
#endif
foreign import ccall "gst_object_suggest_next_sync" gst_object_suggest_next_sync ::
Ptr Object ->
IO Word64
objectSuggestNextSync ::
(B.CallStack.HasCallStack, MonadIO m, IsObject a) =>
a
-> m Word64
objectSuggestNextSync :: forall (m :: * -> *) a.
(HasCallStack, MonadIO m, IsObject a) =>
a -> m Word64
objectSuggestNextSync a
object = IO Word64 -> m Word64
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO Word64 -> m Word64) -> IO Word64 -> m Word64
forall a b. (a -> b) -> a -> b
$ do
Ptr Object
object' <- a -> IO (Ptr Object)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
object
Word64
result <- Ptr Object -> IO Word64
gst_object_suggest_next_sync Ptr Object
object'
a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
object
Word64 -> IO Word64
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return Word64
result
#if defined(ENABLE_OVERLOADING)
data ObjectSuggestNextSyncMethodInfo
instance (signature ~ (m Word64), MonadIO m, IsObject a) => O.OverloadedMethod ObjectSuggestNextSyncMethodInfo a signature where
overloadedMethod = objectSuggestNextSync
instance O.OverloadedMethodInfo ObjectSuggestNextSyncMethodInfo a where
overloadedMethodInfo = P.Just (O.ResolvedSymbolInfo {
O.resolvedSymbolName = "GI.Gst.Objects.Object.objectSuggestNextSync",
O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-gst-1.0.26/docs/GI-Gst-Objects-Object.html#v:objectSuggestNextSync"
})
#endif
foreign import ccall "gst_object_sync_values" gst_object_sync_values ::
Ptr Object ->
Word64 ->
IO CInt
objectSyncValues ::
(B.CallStack.HasCallStack, MonadIO m, IsObject a) =>
a
-> Word64
-> m Bool
objectSyncValues :: forall (m :: * -> *) a.
(HasCallStack, MonadIO m, IsObject a) =>
a -> Word64 -> m Bool
objectSyncValues a
object Word64
timestamp = IO Bool -> m Bool
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO Bool -> m Bool) -> IO Bool -> m Bool
forall a b. (a -> b) -> a -> b
$ do
Ptr Object
object' <- a -> IO (Ptr Object)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
object
CInt
result <- Ptr Object -> Word64 -> IO CInt
gst_object_sync_values Ptr Object
object' Word64
timestamp
let result' :: Bool
result' = (CInt -> CInt -> Bool
forall a. Eq a => a -> a -> Bool
/= CInt
0) CInt
result
a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
object
Bool -> IO Bool
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return Bool
result'
#if defined(ENABLE_OVERLOADING)
data ObjectSyncValuesMethodInfo
instance (signature ~ (Word64 -> m Bool), MonadIO m, IsObject a) => O.OverloadedMethod ObjectSyncValuesMethodInfo a signature where
overloadedMethod = objectSyncValues
instance O.OverloadedMethodInfo ObjectSyncValuesMethodInfo a where
overloadedMethodInfo = P.Just (O.ResolvedSymbolInfo {
O.resolvedSymbolName = "GI.Gst.Objects.Object.objectSyncValues",
O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-gst-1.0.26/docs/GI-Gst-Objects-Object.html#v:objectSyncValues"
})
#endif
foreign import ccall "gst_object_unparent" gst_object_unparent ::
Ptr Object ->
IO ()
objectUnparent ::
(B.CallStack.HasCallStack, MonadIO m, IsObject a) =>
a
-> m ()
objectUnparent :: forall (m :: * -> *) a.
(HasCallStack, MonadIO m, IsObject a) =>
a -> m ()
objectUnparent a
object = IO () -> m ()
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO () -> m ()) -> IO () -> m ()
forall a b. (a -> b) -> a -> b
$ do
Ptr Object
object' <- a -> IO (Ptr Object)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
object
Ptr Object -> IO ()
gst_object_unparent Ptr Object
object'
a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
object
() -> IO ()
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return ()
#if defined(ENABLE_OVERLOADING)
data ObjectUnparentMethodInfo
instance (signature ~ (m ()), MonadIO m, IsObject a) => O.OverloadedMethod ObjectUnparentMethodInfo a signature where
overloadedMethod = objectUnparent
instance O.OverloadedMethodInfo ObjectUnparentMethodInfo a where
overloadedMethodInfo = P.Just (O.ResolvedSymbolInfo {
O.resolvedSymbolName = "GI.Gst.Objects.Object.objectUnparent",
O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-gst-1.0.26/docs/GI-Gst-Objects-Object.html#v:objectUnparent"
})
#endif
foreign import ccall "gst_object_unref" gst_object_unref ::
Ptr Object ->
IO ()
objectUnref ::
(B.CallStack.HasCallStack, MonadIO m, IsObject a) =>
a
-> m ()
objectUnref :: forall (m :: * -> *) a.
(HasCallStack, MonadIO m, IsObject a) =>
a -> m ()
objectUnref a
object = IO () -> m ()
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO () -> m ()) -> IO () -> m ()
forall a b. (a -> b) -> a -> b
$ do
Ptr Object
object' <- a -> IO (Ptr Object)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
object
Ptr Object -> IO ()
gst_object_unref Ptr Object
object'
a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
object
() -> IO ()
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return ()
#if defined(ENABLE_OVERLOADING)
data ObjectUnrefMethodInfo
instance (signature ~ (m ()), MonadIO m, IsObject a) => O.OverloadedMethod ObjectUnrefMethodInfo a signature where
overloadedMethod = objectUnref
instance O.OverloadedMethodInfo ObjectUnrefMethodInfo a where
overloadedMethodInfo = P.Just (O.ResolvedSymbolInfo {
O.resolvedSymbolName = "GI.Gst.Objects.Object.objectUnref",
O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-gst-1.0.26/docs/GI-Gst-Objects-Object.html#v:objectUnref"
})
#endif
foreign import ccall "gst_object_check_uniqueness" gst_object_check_uniqueness ::
Ptr (GList (Ptr Object)) ->
CString ->
IO CInt
objectCheckUniqueness ::
(B.CallStack.HasCallStack, MonadIO m, IsObject a) =>
[a]
-> T.Text
-> m Bool
objectCheckUniqueness :: forall (m :: * -> *) a.
(HasCallStack, MonadIO m, IsObject a) =>
[a] -> Text -> m Bool
objectCheckUniqueness [a]
list Text
name = IO Bool -> m Bool
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO Bool -> m Bool) -> IO Bool -> m Bool
forall a b. (a -> b) -> a -> b
$ do
[Ptr Object]
list' <- (a -> IO (Ptr Object)) -> [a] -> IO [Ptr Object]
forall (t :: * -> *) (m :: * -> *) a b.
(Traversable t, Monad m) =>
(a -> m b) -> t a -> m (t b)
forall (m :: * -> *) a b. Monad m => (a -> m b) -> [a] -> m [b]
mapM a -> IO (Ptr Object)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr [a]
list
Ptr (GList (Ptr Object))
list'' <- [Ptr Object] -> IO (Ptr (GList (Ptr Object)))
forall a. [Ptr a] -> IO (Ptr (GList (Ptr a)))
packGList [Ptr Object]
list'
Ptr CChar
name' <- Text -> IO (Ptr CChar)
textToCString Text
name
CInt
result <- Ptr (GList (Ptr Object)) -> Ptr CChar -> IO CInt
gst_object_check_uniqueness Ptr (GList (Ptr Object))
list'' Ptr CChar
name'
let result' :: Bool
result' = (CInt -> CInt -> Bool
forall a. Eq a => a -> a -> Bool
/= CInt
0) CInt
result
(a -> IO ()) -> [a] -> IO ()
forall (t :: * -> *) (m :: * -> *) a b.
(Foldable t, Monad m) =>
(a -> m b) -> t a -> m ()
mapM_ a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr [a]
list
Ptr (GList (Ptr Object)) -> IO ()
forall a. Ptr (GList a) -> IO ()
g_list_free Ptr (GList (Ptr Object))
list''
Ptr CChar -> IO ()
forall a. Ptr a -> IO ()
freeMem Ptr CChar
name'
Bool -> IO Bool
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return Bool
result'
#if defined(ENABLE_OVERLOADING)
#endif
foreign import ccall "gst_object_default_deep_notify" gst_object_default_deep_notify ::
Ptr GObject.Object.Object ->
Ptr Object ->
Ptr GParamSpec ->
Ptr CString ->
IO ()
objectDefaultDeepNotify ::
(B.CallStack.HasCallStack, MonadIO m, GObject.Object.IsObject a, IsObject b) =>
a
-> b
-> GParamSpec
-> Maybe ([T.Text])
-> m ()
objectDefaultDeepNotify :: forall (m :: * -> *) a b.
(HasCallStack, MonadIO m, IsObject a, IsObject b) =>
a -> b -> GParamSpec -> Maybe [Text] -> m ()
objectDefaultDeepNotify a
object b
orig GParamSpec
pspec Maybe [Text]
excludedProps = IO () -> m ()
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO () -> m ()) -> IO () -> m ()
forall a b. (a -> b) -> a -> b
$ do
Ptr Object
object' <- a -> IO (Ptr Object)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
object
Ptr Object
orig' <- b -> IO (Ptr Object)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr b
orig
Ptr GParamSpec
pspec' <- GParamSpec -> IO (Ptr GParamSpec)
forall a. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr a)
unsafeManagedPtrGetPtr GParamSpec
pspec
Ptr (Ptr CChar)
maybeExcludedProps <- case Maybe [Text]
excludedProps of
Maybe [Text]
Nothing -> Ptr (Ptr CChar) -> IO (Ptr (Ptr CChar))
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return Ptr (Ptr CChar)
forall a. Ptr a
nullPtr
Just [Text]
jExcludedProps -> do
Ptr (Ptr CChar)
jExcludedProps' <- [Text] -> IO (Ptr (Ptr CChar))
packZeroTerminatedUTF8CArray [Text]
jExcludedProps
Ptr (Ptr CChar) -> IO (Ptr (Ptr CChar))
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return Ptr (Ptr CChar)
jExcludedProps'
Ptr Object
-> Ptr Object -> Ptr GParamSpec -> Ptr (Ptr CChar) -> IO ()
gst_object_default_deep_notify Ptr Object
object' Ptr Object
orig' Ptr GParamSpec
pspec' Ptr (Ptr CChar)
maybeExcludedProps
a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
object
b -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr b
orig
GParamSpec -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr GParamSpec
pspec
(Ptr CChar -> IO ()) -> Ptr (Ptr CChar) -> IO ()
forall a b. (Ptr a -> IO b) -> Ptr (Ptr a) -> IO ()
mapZeroTerminatedCArray Ptr CChar -> IO ()
forall a. Ptr a -> IO ()
freeMem Ptr (Ptr CChar)
maybeExcludedProps
Ptr (Ptr CChar) -> IO ()
forall a. Ptr a -> IO ()
freeMem Ptr (Ptr CChar)
maybeExcludedProps
() -> IO ()
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return ()
#if defined(ENABLE_OVERLOADING)
#endif
foreign import ccall "gst_object_replace" gst_object_replace ::
Ptr (Ptr Object) ->
Ptr Object ->
IO CInt
objectReplace ::
(B.CallStack.HasCallStack, MonadIO m, IsObject a, IsObject b) =>
Maybe (a)
-> Maybe (b)
-> m ((Bool, Maybe Object))
objectReplace :: forall (m :: * -> *) a b.
(HasCallStack, MonadIO m, IsObject a, IsObject b) =>
Maybe a -> Maybe b -> m (Bool, Maybe Object)
objectReplace Maybe a
oldobj Maybe b
newobj = IO (Bool, Maybe Object) -> m (Bool, Maybe Object)
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO (Bool, Maybe Object) -> m (Bool, Maybe Object))
-> IO (Bool, Maybe Object) -> m (Bool, Maybe Object)
forall a b. (a -> b) -> a -> b
$ do
Ptr Object
maybeOldobj <- case Maybe a
oldobj of
Maybe a
Nothing -> Ptr Object -> IO (Ptr Object)
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return Ptr Object
forall a. Ptr a
nullPtr
Just a
jOldobj -> do
Ptr Object
jOldobj' <- a -> IO (Ptr Object)
forall a b. (HasCallStack, GObject a) => a -> IO (Ptr b)
B.ManagedPtr.disownObject a
jOldobj
Ptr Object -> IO (Ptr Object)
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return Ptr Object
jOldobj'
Ptr (Ptr Object)
maybeOldobj' <- IO (Ptr (Ptr Object))
forall a. Storable a => IO (Ptr a)
allocMem :: IO (Ptr (Ptr Object))
Ptr (Ptr Object) -> Ptr Object -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke Ptr (Ptr Object)
maybeOldobj' Ptr Object
maybeOldobj
Ptr Object
maybeNewobj <- case Maybe b
newobj of
Maybe b
Nothing -> Ptr Object -> IO (Ptr Object)
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return Ptr Object
forall a. Ptr a
nullPtr
Just b
jNewobj -> do
Ptr Object
jNewobj' <- b -> IO (Ptr Object)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr b
jNewobj
Ptr Object -> IO (Ptr Object)
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return Ptr Object
jNewobj'
CInt
result <- Ptr (Ptr Object) -> Ptr Object -> IO CInt
gst_object_replace Ptr (Ptr Object)
maybeOldobj' Ptr Object
maybeNewobj
let result' :: Bool
result' = (CInt -> CInt -> Bool
forall a. Eq a => a -> a -> Bool
/= CInt
0) CInt
result
Ptr Object
maybeOldobj'' <- Ptr (Ptr Object) -> IO (Ptr Object)
forall a. Storable a => Ptr a -> IO a
peek Ptr (Ptr Object)
maybeOldobj'
Maybe Object
maybeMaybeOldobj'' <- Ptr Object -> (Ptr Object -> IO Object) -> IO (Maybe Object)
forall a b. Ptr a -> (Ptr a -> IO b) -> IO (Maybe b)
convertIfNonNull Ptr Object
maybeOldobj'' ((Ptr Object -> IO Object) -> IO (Maybe Object))
-> (Ptr Object -> IO Object) -> IO (Maybe Object)
forall a b. (a -> b) -> a -> b
$ \Ptr Object
maybeOldobj''' -> do
Object
maybeOldobj'''' <- ((ManagedPtr Object -> Object) -> Ptr Object -> IO Object
forall a b.
(HasCallStack, GObject a, GObject b) =>
(ManagedPtr a -> a) -> Ptr b -> IO a
wrapObject ManagedPtr Object -> Object
Object) Ptr Object
maybeOldobj'''
Object -> IO Object
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return Object
maybeOldobj''''
Maybe a -> (a -> IO ()) -> IO ()
forall (m :: * -> *) a. Monad m => Maybe a -> (a -> m ()) -> m ()
whenJust Maybe a
oldobj a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr
Maybe b -> (b -> IO ()) -> IO ()
forall (m :: * -> *) a. Monad m => Maybe a -> (a -> m ()) -> m ()
whenJust Maybe b
newobj b -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr
Ptr (Ptr Object) -> IO ()
forall a. Ptr a -> IO ()
freeMem Ptr (Ptr Object)
maybeOldobj'
(Bool, Maybe Object) -> IO (Bool, Maybe Object)
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return (Bool
result', Maybe Object
maybeMaybeOldobj'')
#if defined(ENABLE_OVERLOADING)
#endif