#define ENABLE_OVERLOADING (MIN_VERSION_haskell_gi_overloading(1,0,0) \
&& !defined(__HADDOCK_VERSION__))
module GI.Gst.Objects.ControlBinding
(
ControlBinding(..) ,
IsControlBinding ,
toControlBinding ,
noControlBinding ,
#if ENABLE_OVERLOADING
ControlBindingGetGValueArrayMethodInfo ,
#endif
controlBindingGetGValueArray ,
#if ENABLE_OVERLOADING
ControlBindingGetValueMethodInfo ,
#endif
controlBindingGetValue ,
#if ENABLE_OVERLOADING
ControlBindingIsDisabledMethodInfo ,
#endif
controlBindingIsDisabled ,
#if ENABLE_OVERLOADING
ControlBindingSetDisabledMethodInfo ,
#endif
controlBindingSetDisabled ,
#if ENABLE_OVERLOADING
ControlBindingSyncValuesMethodInfo ,
#endif
controlBindingSyncValues ,
#if ENABLE_OVERLOADING
ControlBindingNamePropertyInfo ,
#endif
constructControlBindingName ,
#if ENABLE_OVERLOADING
controlBindingName ,
#endif
getControlBindingName ,
#if ENABLE_OVERLOADING
ControlBindingObjectPropertyInfo ,
#endif
constructControlBindingObject ,
#if ENABLE_OVERLOADING
controlBindingObject ,
#endif
getControlBindingObject ,
) where
import Data.GI.Base.ShortPrelude
import qualified Data.GI.Base.ShortPrelude as SP
import qualified Data.GI.Base.Overloading as O
import qualified Prelude as P
import qualified Data.GI.Base.Attributes as GI.Attributes
import qualified Data.GI.Base.ManagedPtr as B.ManagedPtr
import qualified Data.GI.Base.GClosure as B.GClosure
import qualified Data.GI.Base.GError as B.GError
import qualified Data.GI.Base.GVariant as B.GVariant
import qualified Data.GI.Base.GValue as B.GValue
import qualified Data.GI.Base.GParamSpec as B.GParamSpec
import qualified Data.GI.Base.CallStack as B.CallStack
import qualified Data.GI.Base.Properties as B.Properties
import qualified Data.Text as T
import qualified Data.ByteString.Char8 as B
import qualified Data.Map as Map
import qualified Foreign.Ptr as FP
import qualified GHC.OverloadedLabels as OL
import qualified GI.GObject.Objects.Object as GObject.Object
import {-# SOURCE #-} qualified GI.Gst.Objects.Object as Gst.Object
newtype ControlBinding = ControlBinding (ManagedPtr ControlBinding)
foreign import ccall "gst_control_binding_get_type"
c_gst_control_binding_get_type :: IO GType
instance GObject ControlBinding where
gobjectType = c_gst_control_binding_get_type
class (GObject o, O.IsDescendantOf ControlBinding o) => IsControlBinding o
instance (GObject o, O.IsDescendantOf ControlBinding o) => IsControlBinding o
instance O.HasParentTypes ControlBinding
type instance O.ParentTypes ControlBinding = '[Gst.Object.Object, GObject.Object.Object]
toControlBinding :: (MonadIO m, IsControlBinding o) => o -> m ControlBinding
toControlBinding = liftIO . unsafeCastTo ControlBinding
noControlBinding :: Maybe ControlBinding
noControlBinding = Nothing
#if ENABLE_OVERLOADING
type family ResolveControlBindingMethod (t :: Symbol) (o :: *) :: * where
ResolveControlBindingMethod "addControlBinding" o = Gst.Object.ObjectAddControlBindingMethodInfo
ResolveControlBindingMethod "bindProperty" o = GObject.Object.ObjectBindPropertyMethodInfo
ResolveControlBindingMethod "bindPropertyFull" o = GObject.Object.ObjectBindPropertyFullMethodInfo
ResolveControlBindingMethod "defaultError" o = Gst.Object.ObjectDefaultErrorMethodInfo
ResolveControlBindingMethod "forceFloating" o = GObject.Object.ObjectForceFloatingMethodInfo
ResolveControlBindingMethod "freezeNotify" o = GObject.Object.ObjectFreezeNotifyMethodInfo
ResolveControlBindingMethod "getv" o = GObject.Object.ObjectGetvMethodInfo
ResolveControlBindingMethod "hasActiveControlBindings" o = Gst.Object.ObjectHasActiveControlBindingsMethodInfo
ResolveControlBindingMethod "hasAncestor" o = Gst.Object.ObjectHasAncestorMethodInfo
ResolveControlBindingMethod "hasAsAncestor" o = Gst.Object.ObjectHasAsAncestorMethodInfo
ResolveControlBindingMethod "hasAsParent" o = Gst.Object.ObjectHasAsParentMethodInfo
ResolveControlBindingMethod "isDisabled" o = ControlBindingIsDisabledMethodInfo
ResolveControlBindingMethod "isFloating" o = GObject.Object.ObjectIsFloatingMethodInfo
ResolveControlBindingMethod "notify" o = GObject.Object.ObjectNotifyMethodInfo
ResolveControlBindingMethod "notifyByPspec" o = GObject.Object.ObjectNotifyByPspecMethodInfo
ResolveControlBindingMethod "ref" o = Gst.Object.ObjectRefMethodInfo
ResolveControlBindingMethod "refSink" o = GObject.Object.ObjectRefSinkMethodInfo
ResolveControlBindingMethod "removeControlBinding" o = Gst.Object.ObjectRemoveControlBindingMethodInfo
ResolveControlBindingMethod "runDispose" o = GObject.Object.ObjectRunDisposeMethodInfo
ResolveControlBindingMethod "stealData" o = GObject.Object.ObjectStealDataMethodInfo
ResolveControlBindingMethod "stealQdata" o = GObject.Object.ObjectStealQdataMethodInfo
ResolveControlBindingMethod "suggestNextSync" o = Gst.Object.ObjectSuggestNextSyncMethodInfo
ResolveControlBindingMethod "syncValues" o = ControlBindingSyncValuesMethodInfo
ResolveControlBindingMethod "thawNotify" o = GObject.Object.ObjectThawNotifyMethodInfo
ResolveControlBindingMethod "unparent" o = Gst.Object.ObjectUnparentMethodInfo
ResolveControlBindingMethod "unref" o = Gst.Object.ObjectUnrefMethodInfo
ResolveControlBindingMethod "watchClosure" o = GObject.Object.ObjectWatchClosureMethodInfo
ResolveControlBindingMethod "getControlBinding" o = Gst.Object.ObjectGetControlBindingMethodInfo
ResolveControlBindingMethod "getControlRate" o = Gst.Object.ObjectGetControlRateMethodInfo
ResolveControlBindingMethod "getData" o = GObject.Object.ObjectGetDataMethodInfo
ResolveControlBindingMethod "getGValueArray" o = ControlBindingGetGValueArrayMethodInfo
ResolveControlBindingMethod "getName" o = Gst.Object.ObjectGetNameMethodInfo
ResolveControlBindingMethod "getParent" o = Gst.Object.ObjectGetParentMethodInfo
ResolveControlBindingMethod "getPathString" o = Gst.Object.ObjectGetPathStringMethodInfo
ResolveControlBindingMethod "getProperty" o = GObject.Object.ObjectGetPropertyMethodInfo
ResolveControlBindingMethod "getQdata" o = GObject.Object.ObjectGetQdataMethodInfo
ResolveControlBindingMethod "getValue" o = ControlBindingGetValueMethodInfo
ResolveControlBindingMethod "setControlBindingDisabled" o = Gst.Object.ObjectSetControlBindingDisabledMethodInfo
ResolveControlBindingMethod "setControlBindingsDisabled" o = Gst.Object.ObjectSetControlBindingsDisabledMethodInfo
ResolveControlBindingMethod "setControlRate" o = Gst.Object.ObjectSetControlRateMethodInfo
ResolveControlBindingMethod "setData" o = GObject.Object.ObjectSetDataMethodInfo
ResolveControlBindingMethod "setDisabled" o = ControlBindingSetDisabledMethodInfo
ResolveControlBindingMethod "setName" o = Gst.Object.ObjectSetNameMethodInfo
ResolveControlBindingMethod "setParent" o = Gst.Object.ObjectSetParentMethodInfo
ResolveControlBindingMethod "setProperty" o = GObject.Object.ObjectSetPropertyMethodInfo
ResolveControlBindingMethod l o = O.MethodResolutionFailed l o
instance (info ~ ResolveControlBindingMethod t ControlBinding, O.MethodInfo info ControlBinding p) => OL.IsLabel t (ControlBinding -> p) where
#if MIN_VERSION_base(4,10,0)
fromLabel = O.overloadedMethod (O.MethodProxy :: O.MethodProxy info)
#else
fromLabel _ = O.overloadedMethod (O.MethodProxy :: O.MethodProxy info)
#endif
#endif
getControlBindingName :: (MonadIO m, IsControlBinding o) => o -> m (Maybe T.Text)
getControlBindingName obj = liftIO $ B.Properties.getObjectPropertyString obj "name"
constructControlBindingName :: (IsControlBinding o) => T.Text -> IO (GValueConstruct o)
constructControlBindingName val = B.Properties.constructObjectPropertyString "name" (Just val)
#if ENABLE_OVERLOADING
data ControlBindingNamePropertyInfo
instance AttrInfo ControlBindingNamePropertyInfo where
type AttrAllowedOps ControlBindingNamePropertyInfo = '[ 'AttrConstruct, 'AttrGet, 'AttrClear]
type AttrSetTypeConstraint ControlBindingNamePropertyInfo = (~) T.Text
type AttrBaseTypeConstraint ControlBindingNamePropertyInfo = IsControlBinding
type AttrGetType ControlBindingNamePropertyInfo = (Maybe T.Text)
type AttrLabel ControlBindingNamePropertyInfo = "name"
type AttrOrigin ControlBindingNamePropertyInfo = ControlBinding
attrGet _ = getControlBindingName
attrSet _ = undefined
attrConstruct _ = constructControlBindingName
attrClear _ = undefined
#endif
getControlBindingObject :: (MonadIO m, IsControlBinding o) => o -> m (Maybe Gst.Object.Object)
getControlBindingObject obj = liftIO $ B.Properties.getObjectPropertyObject obj "object" Gst.Object.Object
constructControlBindingObject :: (IsControlBinding o, Gst.Object.IsObject a) => a -> IO (GValueConstruct o)
constructControlBindingObject val = B.Properties.constructObjectPropertyObject "object" (Just val)
#if ENABLE_OVERLOADING
data ControlBindingObjectPropertyInfo
instance AttrInfo ControlBindingObjectPropertyInfo where
type AttrAllowedOps ControlBindingObjectPropertyInfo = '[ 'AttrConstruct, 'AttrGet, 'AttrClear]
type AttrSetTypeConstraint ControlBindingObjectPropertyInfo = Gst.Object.IsObject
type AttrBaseTypeConstraint ControlBindingObjectPropertyInfo = IsControlBinding
type AttrGetType ControlBindingObjectPropertyInfo = (Maybe Gst.Object.Object)
type AttrLabel ControlBindingObjectPropertyInfo = "object"
type AttrOrigin ControlBindingObjectPropertyInfo = ControlBinding
attrGet _ = getControlBindingObject
attrSet _ = undefined
attrConstruct _ = constructControlBindingObject
attrClear _ = undefined
#endif
#if ENABLE_OVERLOADING
instance O.HasAttributeList ControlBinding
type instance O.AttributeList ControlBinding = ControlBindingAttributeList
type ControlBindingAttributeList = ('[ '("name", ControlBindingNamePropertyInfo), '("object", ControlBindingObjectPropertyInfo), '("parent", Gst.Object.ObjectParentPropertyInfo)] :: [(Symbol, *)])
#endif
#if ENABLE_OVERLOADING
controlBindingName :: AttrLabelProxy "name"
controlBindingName = AttrLabelProxy
controlBindingObject :: AttrLabelProxy "object"
controlBindingObject = AttrLabelProxy
#endif
#if ENABLE_OVERLOADING
type instance O.SignalList ControlBinding = ControlBindingSignalList
type ControlBindingSignalList = ('[ '("deepNotify", Gst.Object.ObjectDeepNotifySignalInfo), '("notify", GObject.Object.ObjectNotifySignalInfo)] :: [(Symbol, *)])
#endif
foreign import ccall "gst_control_binding_get_g_value_array" gst_control_binding_get_g_value_array ::
Ptr ControlBinding ->
Word64 ->
Word64 ->
Word32 ->
Ptr GValue ->
IO CInt
controlBindingGetGValueArray ::
(B.CallStack.HasCallStack, MonadIO m, IsControlBinding a) =>
a
-> Word64
-> Word64
-> [GValue]
-> m Bool
controlBindingGetGValueArray binding timestamp interval values = liftIO $ do
let nValues = fromIntegral $ length values
binding' <- unsafeManagedPtrCastPtr binding
values' <- mapM unsafeManagedPtrGetPtr values
values'' <- packBlockArray 24 values'
result <- gst_control_binding_get_g_value_array binding' timestamp interval nValues values''
let result' = (/= 0) result
touchManagedPtr binding
mapM_ touchManagedPtr values
freeMem values''
return result'
#if ENABLE_OVERLOADING
data ControlBindingGetGValueArrayMethodInfo
instance (signature ~ (Word64 -> Word64 -> [GValue] -> m Bool), MonadIO m, IsControlBinding a) => O.MethodInfo ControlBindingGetGValueArrayMethodInfo a signature where
overloadedMethod _ = controlBindingGetGValueArray
#endif
foreign import ccall "gst_control_binding_get_value" gst_control_binding_get_value ::
Ptr ControlBinding ->
Word64 ->
IO (Ptr GValue)
controlBindingGetValue ::
(B.CallStack.HasCallStack, MonadIO m, IsControlBinding a) =>
a
-> Word64
-> m (Maybe GValue)
controlBindingGetValue binding timestamp = liftIO $ do
binding' <- unsafeManagedPtrCastPtr binding
result <- gst_control_binding_get_value binding' timestamp
maybeResult <- convertIfNonNull result $ \result' -> do
result'' <- (wrapBoxed GValue) result'
return result''
touchManagedPtr binding
return maybeResult
#if ENABLE_OVERLOADING
data ControlBindingGetValueMethodInfo
instance (signature ~ (Word64 -> m (Maybe GValue)), MonadIO m, IsControlBinding a) => O.MethodInfo ControlBindingGetValueMethodInfo a signature where
overloadedMethod _ = controlBindingGetValue
#endif
foreign import ccall "gst_control_binding_is_disabled" gst_control_binding_is_disabled ::
Ptr ControlBinding ->
IO CInt
controlBindingIsDisabled ::
(B.CallStack.HasCallStack, MonadIO m, IsControlBinding a) =>
a
-> m Bool
controlBindingIsDisabled binding = liftIO $ do
binding' <- unsafeManagedPtrCastPtr binding
result <- gst_control_binding_is_disabled binding'
let result' = (/= 0) result
touchManagedPtr binding
return result'
#if ENABLE_OVERLOADING
data ControlBindingIsDisabledMethodInfo
instance (signature ~ (m Bool), MonadIO m, IsControlBinding a) => O.MethodInfo ControlBindingIsDisabledMethodInfo a signature where
overloadedMethod _ = controlBindingIsDisabled
#endif
foreign import ccall "gst_control_binding_set_disabled" gst_control_binding_set_disabled ::
Ptr ControlBinding ->
CInt ->
IO ()
controlBindingSetDisabled ::
(B.CallStack.HasCallStack, MonadIO m, IsControlBinding a) =>
a
-> Bool
-> m ()
controlBindingSetDisabled binding disabled = liftIO $ do
binding' <- unsafeManagedPtrCastPtr binding
let disabled' = (fromIntegral . fromEnum) disabled
gst_control_binding_set_disabled binding' disabled'
touchManagedPtr binding
return ()
#if ENABLE_OVERLOADING
data ControlBindingSetDisabledMethodInfo
instance (signature ~ (Bool -> m ()), MonadIO m, IsControlBinding a) => O.MethodInfo ControlBindingSetDisabledMethodInfo a signature where
overloadedMethod _ = controlBindingSetDisabled
#endif
foreign import ccall "gst_control_binding_sync_values" gst_control_binding_sync_values ::
Ptr ControlBinding ->
Ptr Gst.Object.Object ->
Word64 ->
Word64 ->
IO CInt
controlBindingSyncValues ::
(B.CallStack.HasCallStack, MonadIO m, IsControlBinding a, Gst.Object.IsObject b) =>
a
-> b
-> Word64
-> Word64
-> m Bool
controlBindingSyncValues binding object timestamp lastSync = liftIO $ do
binding' <- unsafeManagedPtrCastPtr binding
object' <- unsafeManagedPtrCastPtr object
result <- gst_control_binding_sync_values binding' object' timestamp lastSync
let result' = (/= 0) result
touchManagedPtr binding
touchManagedPtr object
return result'
#if ENABLE_OVERLOADING
data ControlBindingSyncValuesMethodInfo
instance (signature ~ (b -> Word64 -> Word64 -> m Bool), MonadIO m, IsControlBinding a, Gst.Object.IsObject b) => O.MethodInfo ControlBindingSyncValuesMethodInfo a signature where
overloadedMethod _ = controlBindingSyncValues
#endif