{-# LANGUAGE TypeApplications #-}
#if (MIN_VERSION_haskell_gi_overloading(1,0,0) && !defined(__HADDOCK_VERSION__))
#define ENABLE_OVERLOADING
#endif
module GI.Gdk.Structs.FrameTimings
(
FrameTimings(..) ,
#if defined(ENABLE_OVERLOADING)
ResolveFrameTimingsMethod ,
#endif
#if defined(ENABLE_OVERLOADING)
FrameTimingsGetCompleteMethodInfo ,
#endif
frameTimingsGetComplete ,
#if defined(ENABLE_OVERLOADING)
FrameTimingsGetFrameCounterMethodInfo ,
#endif
frameTimingsGetFrameCounter ,
#if defined(ENABLE_OVERLOADING)
FrameTimingsGetFrameTimeMethodInfo ,
#endif
frameTimingsGetFrameTime ,
#if defined(ENABLE_OVERLOADING)
FrameTimingsGetPredictedPresentationTimeMethodInfo,
#endif
frameTimingsGetPredictedPresentationTime,
#if defined(ENABLE_OVERLOADING)
FrameTimingsGetPresentationTimeMethodInfo,
#endif
frameTimingsGetPresentationTime ,
#if defined(ENABLE_OVERLOADING)
FrameTimingsGetRefreshIntervalMethodInfo,
#endif
frameTimingsGetRefreshInterval ,
#if defined(ENABLE_OVERLOADING)
FrameTimingsRefMethodInfo ,
#endif
frameTimingsRef ,
#if defined(ENABLE_OVERLOADING)
FrameTimingsUnrefMethodInfo ,
#endif
frameTimingsUnref ,
) 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.Kind as DK
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 Data.Word as DW
import qualified Data.Int as DI
import qualified System.Posix.Types as SPT
import qualified Foreign.C.Types as FCT
#if MIN_VERSION_base(4,18,0)
#else
#endif
newtype FrameTimings = FrameTimings (SP.ManagedPtr FrameTimings)
deriving (FrameTimings -> FrameTimings -> Bool
(FrameTimings -> FrameTimings -> Bool)
-> (FrameTimings -> FrameTimings -> Bool) -> Eq FrameTimings
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: FrameTimings -> FrameTimings -> Bool
== :: FrameTimings -> FrameTimings -> Bool
$c/= :: FrameTimings -> FrameTimings -> Bool
/= :: FrameTimings -> FrameTimings -> Bool
Eq)
instance SP.ManagedPtrNewtype FrameTimings where
toManagedPtr :: FrameTimings -> ManagedPtr FrameTimings
toManagedPtr (FrameTimings ManagedPtr FrameTimings
p) = ManagedPtr FrameTimings
p
foreign import ccall "gdk_frame_timings_get_type" c_gdk_frame_timings_get_type ::
IO GType
type instance O.ParentTypes FrameTimings = '[]
instance O.HasParentTypes FrameTimings
instance B.Types.TypedObject FrameTimings where
glibType :: IO GType
glibType = IO GType
c_gdk_frame_timings_get_type
instance B.Types.GBoxed FrameTimings
instance B.GValue.IsGValue (Maybe FrameTimings) where
gvalueGType_ :: IO GType
gvalueGType_ = IO GType
c_gdk_frame_timings_get_type
gvalueSet_ :: Ptr GValue -> Maybe FrameTimings -> IO ()
gvalueSet_ Ptr GValue
gv Maybe FrameTimings
P.Nothing = Ptr GValue -> Ptr FrameTimings -> IO ()
forall a. Ptr GValue -> Ptr a -> IO ()
B.GValue.set_boxed Ptr GValue
gv (Ptr FrameTimings
forall a. Ptr a
FP.nullPtr :: FP.Ptr FrameTimings)
gvalueSet_ Ptr GValue
gv (P.Just FrameTimings
obj) = FrameTimings -> (Ptr FrameTimings -> IO ()) -> IO ()
forall a c.
(HasCallStack, ManagedPtrNewtype a) =>
a -> (Ptr a -> IO c) -> IO c
B.ManagedPtr.withManagedPtr FrameTimings
obj (Ptr GValue -> Ptr FrameTimings -> IO ()
forall a. Ptr GValue -> Ptr a -> IO ()
B.GValue.set_boxed Ptr GValue
gv)
gvalueGet_ :: Ptr GValue -> IO (Maybe FrameTimings)
gvalueGet_ Ptr GValue
gv = do
ptr <- Ptr GValue -> IO (Ptr FrameTimings)
forall b. Ptr GValue -> IO (Ptr b)
B.GValue.get_boxed Ptr GValue
gv :: IO (Ptr FrameTimings)
if ptr /= FP.nullPtr
then P.Just <$> B.ManagedPtr.newBoxed FrameTimings ptr
else return P.Nothing
#if defined(ENABLE_OVERLOADING)
instance O.HasAttributeList FrameTimings
type instance O.AttributeList FrameTimings = FrameTimingsAttributeList
type FrameTimingsAttributeList = ('[ ] :: [(Symbol, DK.Type)])
#endif
foreign import ccall "gdk_frame_timings_get_complete" gdk_frame_timings_get_complete ::
Ptr FrameTimings ->
IO CInt
frameTimingsGetComplete ::
(B.CallStack.HasCallStack, MonadIO m) =>
FrameTimings
-> m Bool
frameTimingsGetComplete :: forall (m :: * -> *).
(HasCallStack, MonadIO m) =>
FrameTimings -> m Bool
frameTimingsGetComplete FrameTimings
timings = 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
timings' <- FrameTimings -> IO (Ptr FrameTimings)
forall a. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr a)
unsafeManagedPtrGetPtr FrameTimings
timings
result <- gdk_frame_timings_get_complete timings'
let result' = (CInt -> CInt -> Bool
forall a. Eq a => a -> a -> Bool
/= CInt
0) CInt
result
touchManagedPtr timings
return result'
#if defined(ENABLE_OVERLOADING)
data FrameTimingsGetCompleteMethodInfo
instance (signature ~ (m Bool), MonadIO m) => O.OverloadedMethod FrameTimingsGetCompleteMethodInfo FrameTimings signature where
overloadedMethod = frameTimingsGetComplete
instance O.OverloadedMethodInfo FrameTimingsGetCompleteMethodInfo FrameTimings where
overloadedMethodInfo = P.Just (O.ResolvedSymbolInfo {
O.resolvedSymbolName = "GI.Gdk.Structs.FrameTimings.frameTimingsGetComplete",
O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-gdk-4.0.9/docs/GI-Gdk-Structs-FrameTimings.html#v:frameTimingsGetComplete"
})
#endif
foreign import ccall "gdk_frame_timings_get_frame_counter" gdk_frame_timings_get_frame_counter ::
Ptr FrameTimings ->
IO Int64
frameTimingsGetFrameCounter ::
(B.CallStack.HasCallStack, MonadIO m) =>
FrameTimings
-> m Int64
frameTimingsGetFrameCounter :: forall (m :: * -> *).
(HasCallStack, MonadIO m) =>
FrameTimings -> m Int64
frameTimingsGetFrameCounter FrameTimings
timings = IO Int64 -> m Int64
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO Int64 -> m Int64) -> IO Int64 -> m Int64
forall a b. (a -> b) -> a -> b
$ do
timings' <- FrameTimings -> IO (Ptr FrameTimings)
forall a. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr a)
unsafeManagedPtrGetPtr FrameTimings
timings
result <- gdk_frame_timings_get_frame_counter timings'
touchManagedPtr timings
return result
#if defined(ENABLE_OVERLOADING)
data FrameTimingsGetFrameCounterMethodInfo
instance (signature ~ (m Int64), MonadIO m) => O.OverloadedMethod FrameTimingsGetFrameCounterMethodInfo FrameTimings signature where
overloadedMethod = frameTimingsGetFrameCounter
instance O.OverloadedMethodInfo FrameTimingsGetFrameCounterMethodInfo FrameTimings where
overloadedMethodInfo = P.Just (O.ResolvedSymbolInfo {
O.resolvedSymbolName = "GI.Gdk.Structs.FrameTimings.frameTimingsGetFrameCounter",
O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-gdk-4.0.9/docs/GI-Gdk-Structs-FrameTimings.html#v:frameTimingsGetFrameCounter"
})
#endif
foreign import ccall "gdk_frame_timings_get_frame_time" gdk_frame_timings_get_frame_time ::
Ptr FrameTimings ->
IO Int64
frameTimingsGetFrameTime ::
(B.CallStack.HasCallStack, MonadIO m) =>
FrameTimings
-> m Int64
frameTimingsGetFrameTime :: forall (m :: * -> *).
(HasCallStack, MonadIO m) =>
FrameTimings -> m Int64
frameTimingsGetFrameTime FrameTimings
timings = IO Int64 -> m Int64
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO Int64 -> m Int64) -> IO Int64 -> m Int64
forall a b. (a -> b) -> a -> b
$ do
timings' <- FrameTimings -> IO (Ptr FrameTimings)
forall a. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr a)
unsafeManagedPtrGetPtr FrameTimings
timings
result <- gdk_frame_timings_get_frame_time timings'
touchManagedPtr timings
return result
#if defined(ENABLE_OVERLOADING)
data FrameTimingsGetFrameTimeMethodInfo
instance (signature ~ (m Int64), MonadIO m) => O.OverloadedMethod FrameTimingsGetFrameTimeMethodInfo FrameTimings signature where
overloadedMethod = frameTimingsGetFrameTime
instance O.OverloadedMethodInfo FrameTimingsGetFrameTimeMethodInfo FrameTimings where
overloadedMethodInfo = P.Just (O.ResolvedSymbolInfo {
O.resolvedSymbolName = "GI.Gdk.Structs.FrameTimings.frameTimingsGetFrameTime",
O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-gdk-4.0.9/docs/GI-Gdk-Structs-FrameTimings.html#v:frameTimingsGetFrameTime"
})
#endif
foreign import ccall "gdk_frame_timings_get_predicted_presentation_time" gdk_frame_timings_get_predicted_presentation_time ::
Ptr FrameTimings ->
IO Int64
frameTimingsGetPredictedPresentationTime ::
(B.CallStack.HasCallStack, MonadIO m) =>
FrameTimings
-> m Int64
frameTimingsGetPredictedPresentationTime :: forall (m :: * -> *).
(HasCallStack, MonadIO m) =>
FrameTimings -> m Int64
frameTimingsGetPredictedPresentationTime FrameTimings
timings = IO Int64 -> m Int64
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO Int64 -> m Int64) -> IO Int64 -> m Int64
forall a b. (a -> b) -> a -> b
$ do
timings' <- FrameTimings -> IO (Ptr FrameTimings)
forall a. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr a)
unsafeManagedPtrGetPtr FrameTimings
timings
result <- gdk_frame_timings_get_predicted_presentation_time timings'
touchManagedPtr timings
return result
#if defined(ENABLE_OVERLOADING)
data FrameTimingsGetPredictedPresentationTimeMethodInfo
instance (signature ~ (m Int64), MonadIO m) => O.OverloadedMethod FrameTimingsGetPredictedPresentationTimeMethodInfo FrameTimings signature where
overloadedMethod = frameTimingsGetPredictedPresentationTime
instance O.OverloadedMethodInfo FrameTimingsGetPredictedPresentationTimeMethodInfo FrameTimings where
overloadedMethodInfo = P.Just (O.ResolvedSymbolInfo {
O.resolvedSymbolName = "GI.Gdk.Structs.FrameTimings.frameTimingsGetPredictedPresentationTime",
O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-gdk-4.0.9/docs/GI-Gdk-Structs-FrameTimings.html#v:frameTimingsGetPredictedPresentationTime"
})
#endif
foreign import ccall "gdk_frame_timings_get_presentation_time" gdk_frame_timings_get_presentation_time ::
Ptr FrameTimings ->
IO Int64
frameTimingsGetPresentationTime ::
(B.CallStack.HasCallStack, MonadIO m) =>
FrameTimings
-> m Int64
frameTimingsGetPresentationTime :: forall (m :: * -> *).
(HasCallStack, MonadIO m) =>
FrameTimings -> m Int64
frameTimingsGetPresentationTime FrameTimings
timings = IO Int64 -> m Int64
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO Int64 -> m Int64) -> IO Int64 -> m Int64
forall a b. (a -> b) -> a -> b
$ do
timings' <- FrameTimings -> IO (Ptr FrameTimings)
forall a. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr a)
unsafeManagedPtrGetPtr FrameTimings
timings
result <- gdk_frame_timings_get_presentation_time timings'
touchManagedPtr timings
return result
#if defined(ENABLE_OVERLOADING)
data FrameTimingsGetPresentationTimeMethodInfo
instance (signature ~ (m Int64), MonadIO m) => O.OverloadedMethod FrameTimingsGetPresentationTimeMethodInfo FrameTimings signature where
overloadedMethod = frameTimingsGetPresentationTime
instance O.OverloadedMethodInfo FrameTimingsGetPresentationTimeMethodInfo FrameTimings where
overloadedMethodInfo = P.Just (O.ResolvedSymbolInfo {
O.resolvedSymbolName = "GI.Gdk.Structs.FrameTimings.frameTimingsGetPresentationTime",
O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-gdk-4.0.9/docs/GI-Gdk-Structs-FrameTimings.html#v:frameTimingsGetPresentationTime"
})
#endif
foreign import ccall "gdk_frame_timings_get_refresh_interval" gdk_frame_timings_get_refresh_interval ::
Ptr FrameTimings ->
IO Int64
frameTimingsGetRefreshInterval ::
(B.CallStack.HasCallStack, MonadIO m) =>
FrameTimings
-> m Int64
frameTimingsGetRefreshInterval :: forall (m :: * -> *).
(HasCallStack, MonadIO m) =>
FrameTimings -> m Int64
frameTimingsGetRefreshInterval FrameTimings
timings = IO Int64 -> m Int64
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO Int64 -> m Int64) -> IO Int64 -> m Int64
forall a b. (a -> b) -> a -> b
$ do
timings' <- FrameTimings -> IO (Ptr FrameTimings)
forall a. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr a)
unsafeManagedPtrGetPtr FrameTimings
timings
result <- gdk_frame_timings_get_refresh_interval timings'
touchManagedPtr timings
return result
#if defined(ENABLE_OVERLOADING)
data FrameTimingsGetRefreshIntervalMethodInfo
instance (signature ~ (m Int64), MonadIO m) => O.OverloadedMethod FrameTimingsGetRefreshIntervalMethodInfo FrameTimings signature where
overloadedMethod = frameTimingsGetRefreshInterval
instance O.OverloadedMethodInfo FrameTimingsGetRefreshIntervalMethodInfo FrameTimings where
overloadedMethodInfo = P.Just (O.ResolvedSymbolInfo {
O.resolvedSymbolName = "GI.Gdk.Structs.FrameTimings.frameTimingsGetRefreshInterval",
O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-gdk-4.0.9/docs/GI-Gdk-Structs-FrameTimings.html#v:frameTimingsGetRefreshInterval"
})
#endif
foreign import ccall "gdk_frame_timings_ref" gdk_frame_timings_ref ::
Ptr FrameTimings ->
IO (Ptr FrameTimings)
frameTimingsRef ::
(B.CallStack.HasCallStack, MonadIO m) =>
FrameTimings
-> m FrameTimings
frameTimingsRef :: forall (m :: * -> *).
(HasCallStack, MonadIO m) =>
FrameTimings -> m FrameTimings
frameTimingsRef FrameTimings
timings = IO FrameTimings -> m FrameTimings
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO FrameTimings -> m FrameTimings)
-> IO FrameTimings -> m FrameTimings
forall a b. (a -> b) -> a -> b
$ do
timings' <- FrameTimings -> IO (Ptr FrameTimings)
forall a. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr a)
unsafeManagedPtrGetPtr FrameTimings
timings
result <- gdk_frame_timings_ref timings'
checkUnexpectedReturnNULL "frameTimingsRef" result
result' <- (wrapBoxed FrameTimings) result
touchManagedPtr timings
return result'
#if defined(ENABLE_OVERLOADING)
data FrameTimingsRefMethodInfo
instance (signature ~ (m FrameTimings), MonadIO m) => O.OverloadedMethod FrameTimingsRefMethodInfo FrameTimings signature where
overloadedMethod = frameTimingsRef
instance O.OverloadedMethodInfo FrameTimingsRefMethodInfo FrameTimings where
overloadedMethodInfo = P.Just (O.ResolvedSymbolInfo {
O.resolvedSymbolName = "GI.Gdk.Structs.FrameTimings.frameTimingsRef",
O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-gdk-4.0.9/docs/GI-Gdk-Structs-FrameTimings.html#v:frameTimingsRef"
})
#endif
foreign import ccall "gdk_frame_timings_unref" gdk_frame_timings_unref ::
Ptr FrameTimings ->
IO ()
frameTimingsUnref ::
(B.CallStack.HasCallStack, MonadIO m) =>
FrameTimings
-> m ()
frameTimingsUnref :: forall (m :: * -> *).
(HasCallStack, MonadIO m) =>
FrameTimings -> m ()
frameTimingsUnref FrameTimings
timings = 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
timings' <- FrameTimings -> IO (Ptr FrameTimings)
forall a. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr a)
unsafeManagedPtrGetPtr FrameTimings
timings
gdk_frame_timings_unref timings'
touchManagedPtr timings
return ()
#if defined(ENABLE_OVERLOADING)
data FrameTimingsUnrefMethodInfo
instance (signature ~ (m ()), MonadIO m) => O.OverloadedMethod FrameTimingsUnrefMethodInfo FrameTimings signature where
overloadedMethod = frameTimingsUnref
instance O.OverloadedMethodInfo FrameTimingsUnrefMethodInfo FrameTimings where
overloadedMethodInfo = P.Just (O.ResolvedSymbolInfo {
O.resolvedSymbolName = "GI.Gdk.Structs.FrameTimings.frameTimingsUnref",
O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-gdk-4.0.9/docs/GI-Gdk-Structs-FrameTimings.html#v:frameTimingsUnref"
})
#endif
#if defined(ENABLE_OVERLOADING)
type family ResolveFrameTimingsMethod (t :: Symbol) (o :: DK.Type) :: DK.Type where
ResolveFrameTimingsMethod "ref" o = FrameTimingsRefMethodInfo
ResolveFrameTimingsMethod "unref" o = FrameTimingsUnrefMethodInfo
ResolveFrameTimingsMethod "getComplete" o = FrameTimingsGetCompleteMethodInfo
ResolveFrameTimingsMethod "getFrameCounter" o = FrameTimingsGetFrameCounterMethodInfo
ResolveFrameTimingsMethod "getFrameTime" o = FrameTimingsGetFrameTimeMethodInfo
ResolveFrameTimingsMethod "getPredictedPresentationTime" o = FrameTimingsGetPredictedPresentationTimeMethodInfo
ResolveFrameTimingsMethod "getPresentationTime" o = FrameTimingsGetPresentationTimeMethodInfo
ResolveFrameTimingsMethod "getRefreshInterval" o = FrameTimingsGetRefreshIntervalMethodInfo
ResolveFrameTimingsMethod l o = O.MethodResolutionFailed l o
instance (info ~ ResolveFrameTimingsMethod t FrameTimings, O.OverloadedMethod info FrameTimings p) => OL.IsLabel t (FrameTimings -> 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 ~ ResolveFrameTimingsMethod t FrameTimings, O.OverloadedMethod info FrameTimings p, R.HasField t FrameTimings p) => R.HasField t FrameTimings p where
getField = O.overloadedMethod @info
#endif
instance (info ~ ResolveFrameTimingsMethod t FrameTimings, O.OverloadedMethodInfo info FrameTimings) => OL.IsLabel t (O.MethodProxy info FrameTimings) where
#if MIN_VERSION_base(4,10,0)
fromLabel = O.MethodProxy
#else
fromLabel _ = O.MethodProxy
#endif
#endif