module GI.Gst.Interfaces.ChildProxy
(
ChildProxy(..) ,
noChildProxy ,
IsChildProxy ,
toChildProxy ,
ChildProxyChildAddedMethodInfo ,
childProxyChildAdded ,
ChildProxyChildRemovedMethodInfo ,
childProxyChildRemoved ,
ChildProxyGetChildByIndexMethodInfo ,
childProxyGetChildByIndex ,
ChildProxyGetChildByNameMethodInfo ,
childProxyGetChildByName ,
ChildProxyGetChildrenCountMethodInfo ,
childProxyGetChildrenCount ,
ChildProxyGetPropertyMethodInfo ,
childProxyGetProperty ,
ChildProxyLookupMethodInfo ,
childProxyLookup ,
ChildProxySetPropertyMethodInfo ,
childProxySetProperty ,
C_ChildProxyChildAddedCallback ,
ChildProxyChildAddedCallback ,
ChildProxyChildAddedSignalInfo ,
afterChildProxyChildAdded ,
genClosure_ChildProxyChildAdded ,
mk_ChildProxyChildAddedCallback ,
noChildProxyChildAddedCallback ,
onChildProxyChildAdded ,
wrap_ChildProxyChildAddedCallback ,
C_ChildProxyChildRemovedCallback ,
ChildProxyChildRemovedCallback ,
ChildProxyChildRemovedSignalInfo ,
afterChildProxyChildRemoved ,
genClosure_ChildProxyChildRemoved ,
mk_ChildProxyChildRemovedCallback ,
noChildProxyChildRemovedCallback ,
onChildProxyChildRemoved ,
wrap_ChildProxyChildRemovedCallback ,
) where
import Data.GI.Base.ShortPrelude
import qualified Data.GI.Base.ShortPrelude as SP
import qualified Data.GI.Base.Overloading as O
import qualified Prelude as P
import qualified Data.GI.Base.Attributes as GI.Attributes
import qualified Data.GI.Base.ManagedPtr as B.ManagedPtr
import qualified Data.GI.Base.GError as B.GError
import qualified Data.GI.Base.GVariant as B.GVariant
import qualified Data.GI.Base.GParamSpec as B.GParamSpec
import qualified Data.GI.Base.CallStack as B.CallStack
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 GI.GObject.Objects.Object as GObject.Object
newtype ChildProxy = ChildProxy (ManagedPtr ChildProxy)
noChildProxy :: Maybe ChildProxy
noChildProxy = Nothing
type family ResolveChildProxyMethod (t :: Symbol) (o :: *) :: * where
ResolveChildProxyMethod "bindProperty" o = GObject.Object.ObjectBindPropertyMethodInfo
ResolveChildProxyMethod "bindPropertyFull" o = GObject.Object.ObjectBindPropertyFullMethodInfo
ResolveChildProxyMethod "childAdded" o = ChildProxyChildAddedMethodInfo
ResolveChildProxyMethod "childRemoved" o = ChildProxyChildRemovedMethodInfo
ResolveChildProxyMethod "forceFloating" o = GObject.Object.ObjectForceFloatingMethodInfo
ResolveChildProxyMethod "freezeNotify" o = GObject.Object.ObjectFreezeNotifyMethodInfo
ResolveChildProxyMethod "isFloating" o = GObject.Object.ObjectIsFloatingMethodInfo
ResolveChildProxyMethod "lookup" o = ChildProxyLookupMethodInfo
ResolveChildProxyMethod "notify" o = GObject.Object.ObjectNotifyMethodInfo
ResolveChildProxyMethod "notifyByPspec" o = GObject.Object.ObjectNotifyByPspecMethodInfo
ResolveChildProxyMethod "ref" o = GObject.Object.ObjectRefMethodInfo
ResolveChildProxyMethod "refSink" o = GObject.Object.ObjectRefSinkMethodInfo
ResolveChildProxyMethod "replaceData" o = GObject.Object.ObjectReplaceDataMethodInfo
ResolveChildProxyMethod "replaceQdata" o = GObject.Object.ObjectReplaceQdataMethodInfo
ResolveChildProxyMethod "runDispose" o = GObject.Object.ObjectRunDisposeMethodInfo
ResolveChildProxyMethod "stealData" o = GObject.Object.ObjectStealDataMethodInfo
ResolveChildProxyMethod "stealQdata" o = GObject.Object.ObjectStealQdataMethodInfo
ResolveChildProxyMethod "thawNotify" o = GObject.Object.ObjectThawNotifyMethodInfo
ResolveChildProxyMethod "unref" o = GObject.Object.ObjectUnrefMethodInfo
ResolveChildProxyMethod "watchClosure" o = GObject.Object.ObjectWatchClosureMethodInfo
ResolveChildProxyMethod "getChildByIndex" o = ChildProxyGetChildByIndexMethodInfo
ResolveChildProxyMethod "getChildByName" o = ChildProxyGetChildByNameMethodInfo
ResolveChildProxyMethod "getChildrenCount" o = ChildProxyGetChildrenCountMethodInfo
ResolveChildProxyMethod "getData" o = GObject.Object.ObjectGetDataMethodInfo
ResolveChildProxyMethod "getProperty" o = ChildProxyGetPropertyMethodInfo
ResolveChildProxyMethod "getQdata" o = GObject.Object.ObjectGetQdataMethodInfo
ResolveChildProxyMethod "setData" o = GObject.Object.ObjectSetDataMethodInfo
ResolveChildProxyMethod "setProperty" o = ChildProxySetPropertyMethodInfo
ResolveChildProxyMethod l o = O.MethodResolutionFailed l o
instance (info ~ ResolveChildProxyMethod t ChildProxy, O.MethodInfo info ChildProxy p) => O.IsLabelProxy t (ChildProxy -> p) where
fromLabelProxy _ = O.overloadedMethod (O.MethodProxy :: O.MethodProxy info)
#if MIN_VERSION_base(4,9,0)
instance (info ~ ResolveChildProxyMethod t ChildProxy, O.MethodInfo info ChildProxy p) => O.IsLabel t (ChildProxy -> p) where
fromLabel _ = O.overloadedMethod (O.MethodProxy :: O.MethodProxy info)
#endif
type ChildProxyChildAddedCallback =
GObject.Object.Object ->
T.Text ->
IO ()
noChildProxyChildAddedCallback :: Maybe ChildProxyChildAddedCallback
noChildProxyChildAddedCallback = Nothing
type C_ChildProxyChildAddedCallback =
Ptr () ->
Ptr GObject.Object.Object ->
CString ->
Ptr () ->
IO ()
foreign import ccall "wrapper"
mk_ChildProxyChildAddedCallback :: C_ChildProxyChildAddedCallback -> IO (FunPtr C_ChildProxyChildAddedCallback)
genClosure_ChildProxyChildAdded :: ChildProxyChildAddedCallback -> IO Closure
genClosure_ChildProxyChildAdded cb = do
let cb' = wrap_ChildProxyChildAddedCallback cb
mk_ChildProxyChildAddedCallback cb' >>= newCClosure
wrap_ChildProxyChildAddedCallback ::
ChildProxyChildAddedCallback ->
Ptr () ->
Ptr GObject.Object.Object ->
CString ->
Ptr () ->
IO ()
wrap_ChildProxyChildAddedCallback _cb _ object name _ = do
object' <- (newObject GObject.Object.Object) object
name' <- cstringToText name
_cb object' name'
onChildProxyChildAdded :: (GObject a, MonadIO m) => a -> ChildProxyChildAddedCallback -> m SignalHandlerId
onChildProxyChildAdded obj cb = liftIO $ connectChildProxyChildAdded obj cb SignalConnectBefore
afterChildProxyChildAdded :: (GObject a, MonadIO m) => a -> ChildProxyChildAddedCallback -> m SignalHandlerId
afterChildProxyChildAdded obj cb = connectChildProxyChildAdded obj cb SignalConnectAfter
connectChildProxyChildAdded :: (GObject a, MonadIO m) =>
a -> ChildProxyChildAddedCallback -> SignalConnectMode -> m SignalHandlerId
connectChildProxyChildAdded obj cb after = liftIO $ do
let cb' = wrap_ChildProxyChildAddedCallback cb
cb'' <- mk_ChildProxyChildAddedCallback cb'
connectSignalFunPtr obj "child-added" cb'' after
type ChildProxyChildRemovedCallback =
GObject.Object.Object ->
T.Text ->
IO ()
noChildProxyChildRemovedCallback :: Maybe ChildProxyChildRemovedCallback
noChildProxyChildRemovedCallback = Nothing
type C_ChildProxyChildRemovedCallback =
Ptr () ->
Ptr GObject.Object.Object ->
CString ->
Ptr () ->
IO ()
foreign import ccall "wrapper"
mk_ChildProxyChildRemovedCallback :: C_ChildProxyChildRemovedCallback -> IO (FunPtr C_ChildProxyChildRemovedCallback)
genClosure_ChildProxyChildRemoved :: ChildProxyChildRemovedCallback -> IO Closure
genClosure_ChildProxyChildRemoved cb = do
let cb' = wrap_ChildProxyChildRemovedCallback cb
mk_ChildProxyChildRemovedCallback cb' >>= newCClosure
wrap_ChildProxyChildRemovedCallback ::
ChildProxyChildRemovedCallback ->
Ptr () ->
Ptr GObject.Object.Object ->
CString ->
Ptr () ->
IO ()
wrap_ChildProxyChildRemovedCallback _cb _ object name _ = do
object' <- (newObject GObject.Object.Object) object
name' <- cstringToText name
_cb object' name'
onChildProxyChildRemoved :: (GObject a, MonadIO m) => a -> ChildProxyChildRemovedCallback -> m SignalHandlerId
onChildProxyChildRemoved obj cb = liftIO $ connectChildProxyChildRemoved obj cb SignalConnectBefore
afterChildProxyChildRemoved :: (GObject a, MonadIO m) => a -> ChildProxyChildRemovedCallback -> m SignalHandlerId
afterChildProxyChildRemoved obj cb = connectChildProxyChildRemoved obj cb SignalConnectAfter
connectChildProxyChildRemoved :: (GObject a, MonadIO m) =>
a -> ChildProxyChildRemovedCallback -> SignalConnectMode -> m SignalHandlerId
connectChildProxyChildRemoved obj cb after = liftIO $ do
let cb' = wrap_ChildProxyChildRemovedCallback cb
cb'' <- mk_ChildProxyChildRemovedCallback cb'
connectSignalFunPtr obj "child-removed" cb'' after
instance O.HasAttributeList ChildProxy
type instance O.AttributeList ChildProxy = ChildProxyAttributeList
type ChildProxyAttributeList = ('[ ] :: [(Symbol, *)])
data ChildProxyChildAddedSignalInfo
instance SignalInfo ChildProxyChildAddedSignalInfo where
type HaskellCallbackType ChildProxyChildAddedSignalInfo = ChildProxyChildAddedCallback
connectSignal _ = connectChildProxyChildAdded
data ChildProxyChildRemovedSignalInfo
instance SignalInfo ChildProxyChildRemovedSignalInfo where
type HaskellCallbackType ChildProxyChildRemovedSignalInfo = ChildProxyChildRemovedCallback
connectSignal _ = connectChildProxyChildRemoved
type instance O.SignalList ChildProxy = ChildProxySignalList
type ChildProxySignalList = ('[ '("childAdded", ChildProxyChildAddedSignalInfo), '("childRemoved", ChildProxyChildRemovedSignalInfo), '("notify", GObject.Object.ObjectNotifySignalInfo)] :: [(Symbol, *)])
foreign import ccall "gst_child_proxy_get_type"
c_gst_child_proxy_get_type :: IO GType
instance GObject ChildProxy where
gobjectType _ = c_gst_child_proxy_get_type
class GObject o => IsChildProxy o
#if MIN_VERSION_base(4,9,0)
instance (GObject a, O.UnknownAncestorError ChildProxy a) =>
IsChildProxy a
#endif
instance IsChildProxy ChildProxy
instance GObject.Object.IsObject ChildProxy
toChildProxy :: IsChildProxy o => o -> IO ChildProxy
toChildProxy = unsafeCastTo ChildProxy
foreign import ccall "gst_child_proxy_child_added" gst_child_proxy_child_added ::
Ptr ChildProxy ->
Ptr GObject.Object.Object ->
CString ->
IO ()
childProxyChildAdded ::
(B.CallStack.HasCallStack, MonadIO m, IsChildProxy a, GObject.Object.IsObject b) =>
a
-> b
-> T.Text
-> m ()
childProxyChildAdded parent child name = liftIO $ do
parent' <- unsafeManagedPtrCastPtr parent
child' <- unsafeManagedPtrCastPtr child
name' <- textToCString name
gst_child_proxy_child_added parent' child' name'
touchManagedPtr parent
touchManagedPtr child
freeMem name'
return ()
data ChildProxyChildAddedMethodInfo
instance (signature ~ (b -> T.Text -> m ()), MonadIO m, IsChildProxy a, GObject.Object.IsObject b) => O.MethodInfo ChildProxyChildAddedMethodInfo a signature where
overloadedMethod _ = childProxyChildAdded
foreign import ccall "gst_child_proxy_child_removed" gst_child_proxy_child_removed ::
Ptr ChildProxy ->
Ptr GObject.Object.Object ->
CString ->
IO ()
childProxyChildRemoved ::
(B.CallStack.HasCallStack, MonadIO m, IsChildProxy a, GObject.Object.IsObject b) =>
a
-> b
-> T.Text
-> m ()
childProxyChildRemoved parent child name = liftIO $ do
parent' <- unsafeManagedPtrCastPtr parent
child' <- unsafeManagedPtrCastPtr child
name' <- textToCString name
gst_child_proxy_child_removed parent' child' name'
touchManagedPtr parent
touchManagedPtr child
freeMem name'
return ()
data ChildProxyChildRemovedMethodInfo
instance (signature ~ (b -> T.Text -> m ()), MonadIO m, IsChildProxy a, GObject.Object.IsObject b) => O.MethodInfo ChildProxyChildRemovedMethodInfo a signature where
overloadedMethod _ = childProxyChildRemoved
foreign import ccall "gst_child_proxy_get_child_by_index" gst_child_proxy_get_child_by_index ::
Ptr ChildProxy ->
Word32 ->
IO (Ptr GObject.Object.Object)
childProxyGetChildByIndex ::
(B.CallStack.HasCallStack, MonadIO m, IsChildProxy a) =>
a
-> Word32
-> m (Maybe GObject.Object.Object)
childProxyGetChildByIndex parent index = liftIO $ do
parent' <- unsafeManagedPtrCastPtr parent
result <- gst_child_proxy_get_child_by_index parent' index
maybeResult <- convertIfNonNull result $ \result' -> do
result'' <- (wrapObject GObject.Object.Object) result'
return result''
touchManagedPtr parent
return maybeResult
data ChildProxyGetChildByIndexMethodInfo
instance (signature ~ (Word32 -> m (Maybe GObject.Object.Object)), MonadIO m, IsChildProxy a) => O.MethodInfo ChildProxyGetChildByIndexMethodInfo a signature where
overloadedMethod _ = childProxyGetChildByIndex
foreign import ccall "gst_child_proxy_get_child_by_name" gst_child_proxy_get_child_by_name ::
Ptr ChildProxy ->
CString ->
IO (Ptr GObject.Object.Object)
childProxyGetChildByName ::
(B.CallStack.HasCallStack, MonadIO m, IsChildProxy a) =>
a
-> T.Text
-> m (Maybe GObject.Object.Object)
childProxyGetChildByName parent name = liftIO $ do
parent' <- unsafeManagedPtrCastPtr parent
name' <- textToCString name
result <- gst_child_proxy_get_child_by_name parent' name'
maybeResult <- convertIfNonNull result $ \result' -> do
result'' <- (wrapObject GObject.Object.Object) result'
return result''
touchManagedPtr parent
freeMem name'
return maybeResult
data ChildProxyGetChildByNameMethodInfo
instance (signature ~ (T.Text -> m (Maybe GObject.Object.Object)), MonadIO m, IsChildProxy a) => O.MethodInfo ChildProxyGetChildByNameMethodInfo a signature where
overloadedMethod _ = childProxyGetChildByName
foreign import ccall "gst_child_proxy_get_children_count" gst_child_proxy_get_children_count ::
Ptr ChildProxy ->
IO Word32
childProxyGetChildrenCount ::
(B.CallStack.HasCallStack, MonadIO m, IsChildProxy a) =>
a
-> m Word32
childProxyGetChildrenCount parent = liftIO $ do
parent' <- unsafeManagedPtrCastPtr parent
result <- gst_child_proxy_get_children_count parent'
touchManagedPtr parent
return result
data ChildProxyGetChildrenCountMethodInfo
instance (signature ~ (m Word32), MonadIO m, IsChildProxy a) => O.MethodInfo ChildProxyGetChildrenCountMethodInfo a signature where
overloadedMethod _ = childProxyGetChildrenCount
foreign import ccall "gst_child_proxy_get_property" gst_child_proxy_get_property ::
Ptr ChildProxy ->
CString ->
Ptr GValue ->
IO ()
childProxyGetProperty ::
(B.CallStack.HasCallStack, MonadIO m, IsChildProxy a) =>
a
-> T.Text
-> m (GValue)
childProxyGetProperty object name = liftIO $ do
object' <- unsafeManagedPtrCastPtr object
name' <- textToCString name
value <- callocBoxedBytes 24 :: IO (Ptr GValue)
gst_child_proxy_get_property object' name' value
value' <- (wrapBoxed GValue) value
touchManagedPtr object
freeMem name'
return value'
data ChildProxyGetPropertyMethodInfo
instance (signature ~ (T.Text -> m (GValue)), MonadIO m, IsChildProxy a) => O.MethodInfo ChildProxyGetPropertyMethodInfo a signature where
overloadedMethod _ = childProxyGetProperty
foreign import ccall "gst_child_proxy_lookup" gst_child_proxy_lookup ::
Ptr ChildProxy ->
CString ->
Ptr (Ptr GObject.Object.Object) ->
Ptr (Ptr GParamSpec) ->
IO CInt
childProxyLookup ::
(B.CallStack.HasCallStack, MonadIO m, IsChildProxy a) =>
a
-> T.Text
-> m (Bool,GObject.Object.Object,GParamSpec)
childProxyLookup object name = liftIO $ do
object' <- unsafeManagedPtrCastPtr object
name' <- textToCString name
target <- allocMem :: IO (Ptr (Ptr GObject.Object.Object))
pspec <- allocMem :: IO (Ptr (Ptr GParamSpec))
result <- gst_child_proxy_lookup object' name' target pspec
let result' = (/= 0) result
target' <- peek target
target'' <- (wrapObject GObject.Object.Object) target'
pspec' <- peek pspec
pspec'' <- newGParamSpecFromPtr pspec'
touchManagedPtr object
freeMem name'
freeMem target
freeMem pspec
return (result', target'', pspec'')
data ChildProxyLookupMethodInfo
instance (signature ~ (T.Text -> m (Bool,GObject.Object.Object,GParamSpec)), MonadIO m, IsChildProxy a) => O.MethodInfo ChildProxyLookupMethodInfo a signature where
overloadedMethod _ = childProxyLookup
foreign import ccall "gst_child_proxy_set_property" gst_child_proxy_set_property ::
Ptr ChildProxy ->
CString ->
Ptr GValue ->
IO ()
childProxySetProperty ::
(B.CallStack.HasCallStack, MonadIO m, IsChildProxy a) =>
a
-> T.Text
-> GValue
-> m ()
childProxySetProperty object name value = liftIO $ do
object' <- unsafeManagedPtrCastPtr object
name' <- textToCString name
value' <- unsafeManagedPtrGetPtr value
gst_child_proxy_set_property object' name' value'
touchManagedPtr object
touchManagedPtr value
freeMem name'
return ()
data ChildProxySetPropertyMethodInfo
instance (signature ~ (T.Text -> GValue -> m ()), MonadIO m, IsChildProxy a) => O.MethodInfo ChildProxySetPropertyMethodInfo a signature where
overloadedMethod _ = childProxySetProperty