#define ENABLE_OVERLOADING (MIN_VERSION_haskell_gi_overloading(1,0,0) \
&& !defined(__HADDOCK_VERSION__))
module GI.Gst.Objects.ControlSource
(
ControlSource(..) ,
IsControlSource ,
toControlSource ,
noControlSource ,
#if ENABLE_OVERLOADING
ControlSourceControlSourceGetValueMethodInfo,
#endif
controlSourceControlSourceGetValue ,
#if ENABLE_OVERLOADING
ControlSourceControlSourceGetValueArrayMethodInfo,
#endif
controlSourceControlSourceGetValueArray ,
) 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 ControlSource = ControlSource (ManagedPtr ControlSource)
foreign import ccall "gst_control_source_get_type"
c_gst_control_source_get_type :: IO GType
instance GObject ControlSource where
gobjectType = c_gst_control_source_get_type
class (GObject o, O.IsDescendantOf ControlSource o) => IsControlSource o
instance (GObject o, O.IsDescendantOf ControlSource o) => IsControlSource o
instance O.HasParentTypes ControlSource
type instance O.ParentTypes ControlSource = '[Gst.Object.Object, GObject.Object.Object]
toControlSource :: (MonadIO m, IsControlSource o) => o -> m ControlSource
toControlSource = liftIO . unsafeCastTo ControlSource
noControlSource :: Maybe ControlSource
noControlSource = Nothing
#if ENABLE_OVERLOADING
type family ResolveControlSourceMethod (t :: Symbol) (o :: *) :: * where
ResolveControlSourceMethod "addControlBinding" o = Gst.Object.ObjectAddControlBindingMethodInfo
ResolveControlSourceMethod "bindProperty" o = GObject.Object.ObjectBindPropertyMethodInfo
ResolveControlSourceMethod "bindPropertyFull" o = GObject.Object.ObjectBindPropertyFullMethodInfo
ResolveControlSourceMethod "controlSourceGetValue" o = ControlSourceControlSourceGetValueMethodInfo
ResolveControlSourceMethod "controlSourceGetValueArray" o = ControlSourceControlSourceGetValueArrayMethodInfo
ResolveControlSourceMethod "defaultError" o = Gst.Object.ObjectDefaultErrorMethodInfo
ResolveControlSourceMethod "forceFloating" o = GObject.Object.ObjectForceFloatingMethodInfo
ResolveControlSourceMethod "freezeNotify" o = GObject.Object.ObjectFreezeNotifyMethodInfo
ResolveControlSourceMethod "getv" o = GObject.Object.ObjectGetvMethodInfo
ResolveControlSourceMethod "hasActiveControlBindings" o = Gst.Object.ObjectHasActiveControlBindingsMethodInfo
ResolveControlSourceMethod "hasAncestor" o = Gst.Object.ObjectHasAncestorMethodInfo
ResolveControlSourceMethod "hasAsAncestor" o = Gst.Object.ObjectHasAsAncestorMethodInfo
ResolveControlSourceMethod "hasAsParent" o = Gst.Object.ObjectHasAsParentMethodInfo
ResolveControlSourceMethod "isFloating" o = GObject.Object.ObjectIsFloatingMethodInfo
ResolveControlSourceMethod "notify" o = GObject.Object.ObjectNotifyMethodInfo
ResolveControlSourceMethod "notifyByPspec" o = GObject.Object.ObjectNotifyByPspecMethodInfo
ResolveControlSourceMethod "ref" o = Gst.Object.ObjectRefMethodInfo
ResolveControlSourceMethod "refSink" o = GObject.Object.ObjectRefSinkMethodInfo
ResolveControlSourceMethod "removeControlBinding" o = Gst.Object.ObjectRemoveControlBindingMethodInfo
ResolveControlSourceMethod "runDispose" o = GObject.Object.ObjectRunDisposeMethodInfo
ResolveControlSourceMethod "stealData" o = GObject.Object.ObjectStealDataMethodInfo
ResolveControlSourceMethod "stealQdata" o = GObject.Object.ObjectStealQdataMethodInfo
ResolveControlSourceMethod "suggestNextSync" o = Gst.Object.ObjectSuggestNextSyncMethodInfo
ResolveControlSourceMethod "syncValues" o = Gst.Object.ObjectSyncValuesMethodInfo
ResolveControlSourceMethod "thawNotify" o = GObject.Object.ObjectThawNotifyMethodInfo
ResolveControlSourceMethod "unparent" o = Gst.Object.ObjectUnparentMethodInfo
ResolveControlSourceMethod "unref" o = Gst.Object.ObjectUnrefMethodInfo
ResolveControlSourceMethod "watchClosure" o = GObject.Object.ObjectWatchClosureMethodInfo
ResolveControlSourceMethod "getControlBinding" o = Gst.Object.ObjectGetControlBindingMethodInfo
ResolveControlSourceMethod "getControlRate" o = Gst.Object.ObjectGetControlRateMethodInfo
ResolveControlSourceMethod "getData" o = GObject.Object.ObjectGetDataMethodInfo
ResolveControlSourceMethod "getGValueArray" o = Gst.Object.ObjectGetGValueArrayMethodInfo
ResolveControlSourceMethod "getName" o = Gst.Object.ObjectGetNameMethodInfo
ResolveControlSourceMethod "getParent" o = Gst.Object.ObjectGetParentMethodInfo
ResolveControlSourceMethod "getPathString" o = Gst.Object.ObjectGetPathStringMethodInfo
ResolveControlSourceMethod "getProperty" o = GObject.Object.ObjectGetPropertyMethodInfo
ResolveControlSourceMethod "getQdata" o = GObject.Object.ObjectGetQdataMethodInfo
ResolveControlSourceMethod "getValue" o = Gst.Object.ObjectGetValueMethodInfo
ResolveControlSourceMethod "setControlBindingDisabled" o = Gst.Object.ObjectSetControlBindingDisabledMethodInfo
ResolveControlSourceMethod "setControlBindingsDisabled" o = Gst.Object.ObjectSetControlBindingsDisabledMethodInfo
ResolveControlSourceMethod "setControlRate" o = Gst.Object.ObjectSetControlRateMethodInfo
ResolveControlSourceMethod "setData" o = GObject.Object.ObjectSetDataMethodInfo
ResolveControlSourceMethod "setName" o = Gst.Object.ObjectSetNameMethodInfo
ResolveControlSourceMethod "setParent" o = Gst.Object.ObjectSetParentMethodInfo
ResolveControlSourceMethod "setProperty" o = GObject.Object.ObjectSetPropertyMethodInfo
ResolveControlSourceMethod l o = O.MethodResolutionFailed l o
instance (info ~ ResolveControlSourceMethod t ControlSource, O.MethodInfo info ControlSource p) => OL.IsLabel t (ControlSource -> p) where
#if MIN_VERSION_base(4,10,0)
fromLabel = O.overloadedMethod (O.MethodProxy :: O.MethodProxy info)
#else
fromLabel _ = O.overloadedMethod (O.MethodProxy :: O.MethodProxy info)
#endif
#endif
#if ENABLE_OVERLOADING
instance O.HasAttributeList ControlSource
type instance O.AttributeList ControlSource = ControlSourceAttributeList
type ControlSourceAttributeList = ('[ '("name", Gst.Object.ObjectNamePropertyInfo), '("parent", Gst.Object.ObjectParentPropertyInfo)] :: [(Symbol, *)])
#endif
#if ENABLE_OVERLOADING
#endif
#if ENABLE_OVERLOADING
type instance O.SignalList ControlSource = ControlSourceSignalList
type ControlSourceSignalList = ('[ '("deepNotify", Gst.Object.ObjectDeepNotifySignalInfo), '("notify", GObject.Object.ObjectNotifySignalInfo)] :: [(Symbol, *)])
#endif
foreign import ccall "gst_control_source_get_value" gst_control_source_get_value ::
Ptr ControlSource ->
Word64 ->
Ptr CDouble ->
IO CInt
controlSourceControlSourceGetValue ::
(B.CallStack.HasCallStack, MonadIO m, IsControlSource a) =>
a
-> Word64
-> m ((Bool, Double))
controlSourceControlSourceGetValue self timestamp = liftIO $ do
self' <- unsafeManagedPtrCastPtr self
value <- allocMem :: IO (Ptr CDouble)
result <- gst_control_source_get_value self' timestamp value
let result' = (/= 0) result
value' <- peek value
let value'' = realToFrac value'
touchManagedPtr self
freeMem value
return (result', value'')
#if ENABLE_OVERLOADING
data ControlSourceControlSourceGetValueMethodInfo
instance (signature ~ (Word64 -> m ((Bool, Double))), MonadIO m, IsControlSource a) => O.MethodInfo ControlSourceControlSourceGetValueMethodInfo a signature where
overloadedMethod _ = controlSourceControlSourceGetValue
#endif
foreign import ccall "gst_control_source_get_value_array" gst_control_source_get_value_array ::
Ptr ControlSource ->
Word64 ->
Word64 ->
Word32 ->
Ptr CDouble ->
IO CInt
controlSourceControlSourceGetValueArray ::
(B.CallStack.HasCallStack, MonadIO m, IsControlSource a) =>
a
-> Word64
-> Word64
-> [Double]
-> m Bool
controlSourceControlSourceGetValueArray self timestamp interval values = liftIO $ do
let nValues = fromIntegral $ length values
self' <- unsafeManagedPtrCastPtr self
values' <- (packMapStorableArray realToFrac) values
result <- gst_control_source_get_value_array self' timestamp interval nValues values'
let result' = (/= 0) result
touchManagedPtr self
freeMem values'
return result'
#if ENABLE_OVERLOADING
data ControlSourceControlSourceGetValueArrayMethodInfo
instance (signature ~ (Word64 -> Word64 -> [Double] -> m Bool), MonadIO m, IsControlSource a) => O.MethodInfo ControlSourceControlSourceGetValueArrayMethodInfo a signature where
overloadedMethod _ = controlSourceControlSourceGetValueArray
#endif