module GI.GstAudio.Objects.AudioClock
(
AudioClock(..) ,
IsAudioClock ,
toAudioClock ,
noAudioClock ,
audioClockAdjust ,
audioClockGetTime ,
audioClockInvalidate ,
audioClockNew ,
AudioClockResetMethodInfo ,
audioClockReset ,
) 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.GLib.Callbacks as GLib.Callbacks
import qualified GI.GObject.Objects.Object as GObject.Object
import qualified GI.Gst.Objects.Clock as Gst.Clock
import qualified GI.Gst.Objects.Object as Gst.Object
import qualified GI.Gst.Objects.SystemClock as Gst.SystemClock
import qualified GI.GstAudio.Callbacks as GstAudio.Callbacks
newtype AudioClock = AudioClock (ManagedPtr AudioClock)
foreign import ccall "gst_audio_clock_get_type"
c_gst_audio_clock_get_type :: IO GType
instance GObject AudioClock where
gobjectType _ = c_gst_audio_clock_get_type
class GObject o => IsAudioClock o
#if MIN_VERSION_base(4,9,0)
instance (GObject a, O.UnknownAncestorError AudioClock a) =>
IsAudioClock a
#endif
instance IsAudioClock AudioClock
instance Gst.SystemClock.IsSystemClock AudioClock
instance Gst.Clock.IsClock AudioClock
instance Gst.Object.IsObject AudioClock
instance GObject.Object.IsObject AudioClock
toAudioClock :: IsAudioClock o => o -> IO AudioClock
toAudioClock = unsafeCastTo AudioClock
noAudioClock :: Maybe AudioClock
noAudioClock = Nothing
type family ResolveAudioClockMethod (t :: Symbol) (o :: *) :: * where
ResolveAudioClockMethod "addControlBinding" o = Gst.Object.ObjectAddControlBindingMethodInfo
ResolveAudioClockMethod "addObservation" o = Gst.Clock.ClockAddObservationMethodInfo
ResolveAudioClockMethod "addObservationUnapplied" o = Gst.Clock.ClockAddObservationUnappliedMethodInfo
ResolveAudioClockMethod "adjustUnlocked" o = Gst.Clock.ClockAdjustUnlockedMethodInfo
ResolveAudioClockMethod "adjustWithCalibration" o = Gst.Clock.ClockAdjustWithCalibrationMethodInfo
ResolveAudioClockMethod "bindProperty" o = GObject.Object.ObjectBindPropertyMethodInfo
ResolveAudioClockMethod "bindPropertyFull" o = GObject.Object.ObjectBindPropertyFullMethodInfo
ResolveAudioClockMethod "defaultError" o = Gst.Object.ObjectDefaultErrorMethodInfo
ResolveAudioClockMethod "forceFloating" o = GObject.Object.ObjectForceFloatingMethodInfo
ResolveAudioClockMethod "freezeNotify" o = GObject.Object.ObjectFreezeNotifyMethodInfo
ResolveAudioClockMethod "hasActiveControlBindings" o = Gst.Object.ObjectHasActiveControlBindingsMethodInfo
ResolveAudioClockMethod "hasAncestor" o = Gst.Object.ObjectHasAncestorMethodInfo
ResolveAudioClockMethod "hasAsAncestor" o = Gst.Object.ObjectHasAsAncestorMethodInfo
ResolveAudioClockMethod "hasAsParent" o = Gst.Object.ObjectHasAsParentMethodInfo
ResolveAudioClockMethod "isFloating" o = GObject.Object.ObjectIsFloatingMethodInfo
ResolveAudioClockMethod "isSynced" o = Gst.Clock.ClockIsSyncedMethodInfo
ResolveAudioClockMethod "newPeriodicId" o = Gst.Clock.ClockNewPeriodicIdMethodInfo
ResolveAudioClockMethod "newSingleShotId" o = Gst.Clock.ClockNewSingleShotIdMethodInfo
ResolveAudioClockMethod "notify" o = GObject.Object.ObjectNotifyMethodInfo
ResolveAudioClockMethod "notifyByPspec" o = GObject.Object.ObjectNotifyByPspecMethodInfo
ResolveAudioClockMethod "periodicIdReinit" o = Gst.Clock.ClockPeriodicIdReinitMethodInfo
ResolveAudioClockMethod "ref" o = Gst.Object.ObjectRefMethodInfo
ResolveAudioClockMethod "refSink" o = GObject.Object.ObjectRefSinkMethodInfo
ResolveAudioClockMethod "removeControlBinding" o = Gst.Object.ObjectRemoveControlBindingMethodInfo
ResolveAudioClockMethod "replaceData" o = GObject.Object.ObjectReplaceDataMethodInfo
ResolveAudioClockMethod "replaceQdata" o = GObject.Object.ObjectReplaceQdataMethodInfo
ResolveAudioClockMethod "reset" o = AudioClockResetMethodInfo
ResolveAudioClockMethod "runDispose" o = GObject.Object.ObjectRunDisposeMethodInfo
ResolveAudioClockMethod "singleShotIdReinit" o = Gst.Clock.ClockSingleShotIdReinitMethodInfo
ResolveAudioClockMethod "stealData" o = GObject.Object.ObjectStealDataMethodInfo
ResolveAudioClockMethod "stealQdata" o = GObject.Object.ObjectStealQdataMethodInfo
ResolveAudioClockMethod "suggestNextSync" o = Gst.Object.ObjectSuggestNextSyncMethodInfo
ResolveAudioClockMethod "syncValues" o = Gst.Object.ObjectSyncValuesMethodInfo
ResolveAudioClockMethod "thawNotify" o = GObject.Object.ObjectThawNotifyMethodInfo
ResolveAudioClockMethod "unadjustUnlocked" o = Gst.Clock.ClockUnadjustUnlockedMethodInfo
ResolveAudioClockMethod "unadjustWithCalibration" o = Gst.Clock.ClockUnadjustWithCalibrationMethodInfo
ResolveAudioClockMethod "unparent" o = Gst.Object.ObjectUnparentMethodInfo
ResolveAudioClockMethod "unref" o = Gst.Object.ObjectUnrefMethodInfo
ResolveAudioClockMethod "waitForSync" o = Gst.Clock.ClockWaitForSyncMethodInfo
ResolveAudioClockMethod "watchClosure" o = GObject.Object.ObjectWatchClosureMethodInfo
ResolveAudioClockMethod "getCalibration" o = Gst.Clock.ClockGetCalibrationMethodInfo
ResolveAudioClockMethod "getControlBinding" o = Gst.Object.ObjectGetControlBindingMethodInfo
ResolveAudioClockMethod "getControlRate" o = Gst.Object.ObjectGetControlRateMethodInfo
ResolveAudioClockMethod "getData" o = GObject.Object.ObjectGetDataMethodInfo
ResolveAudioClockMethod "getGValueArray" o = Gst.Object.ObjectGetGValueArrayMethodInfo
ResolveAudioClockMethod "getInternalTime" o = Gst.Clock.ClockGetInternalTimeMethodInfo
ResolveAudioClockMethod "getMaster" o = Gst.Clock.ClockGetMasterMethodInfo
ResolveAudioClockMethod "getName" o = Gst.Object.ObjectGetNameMethodInfo
ResolveAudioClockMethod "getParent" o = Gst.Object.ObjectGetParentMethodInfo
ResolveAudioClockMethod "getPathString" o = Gst.Object.ObjectGetPathStringMethodInfo
ResolveAudioClockMethod "getProperty" o = GObject.Object.ObjectGetPropertyMethodInfo
ResolveAudioClockMethod "getQdata" o = GObject.Object.ObjectGetQdataMethodInfo
ResolveAudioClockMethod "getResolution" o = Gst.Clock.ClockGetResolutionMethodInfo
ResolveAudioClockMethod "getTimeout" o = Gst.Clock.ClockGetTimeoutMethodInfo
ResolveAudioClockMethod "getValue" o = Gst.Object.ObjectGetValueMethodInfo
ResolveAudioClockMethod "getValueArray" o = Gst.Object.ObjectGetValueArrayMethodInfo
ResolveAudioClockMethod "setCalibration" o = Gst.Clock.ClockSetCalibrationMethodInfo
ResolveAudioClockMethod "setControlBindingDisabled" o = Gst.Object.ObjectSetControlBindingDisabledMethodInfo
ResolveAudioClockMethod "setControlBindingsDisabled" o = Gst.Object.ObjectSetControlBindingsDisabledMethodInfo
ResolveAudioClockMethod "setControlRate" o = Gst.Object.ObjectSetControlRateMethodInfo
ResolveAudioClockMethod "setData" o = GObject.Object.ObjectSetDataMethodInfo
ResolveAudioClockMethod "setMaster" o = Gst.Clock.ClockSetMasterMethodInfo
ResolveAudioClockMethod "setName" o = Gst.Object.ObjectSetNameMethodInfo
ResolveAudioClockMethod "setParent" o = Gst.Object.ObjectSetParentMethodInfo
ResolveAudioClockMethod "setProperty" o = GObject.Object.ObjectSetPropertyMethodInfo
ResolveAudioClockMethod "setResolution" o = Gst.Clock.ClockSetResolutionMethodInfo
ResolveAudioClockMethod "setSynced" o = Gst.Clock.ClockSetSyncedMethodInfo
ResolveAudioClockMethod "setTimeout" o = Gst.Clock.ClockSetTimeoutMethodInfo
ResolveAudioClockMethod l o = O.MethodResolutionFailed l o
instance (info ~ ResolveAudioClockMethod t AudioClock, O.MethodInfo info AudioClock p) => O.IsLabelProxy t (AudioClock -> p) where
fromLabelProxy _ = O.overloadedMethod (O.MethodProxy :: O.MethodProxy info)
#if MIN_VERSION_base(4,9,0)
instance (info ~ ResolveAudioClockMethod t AudioClock, O.MethodInfo info AudioClock p) => O.IsLabel t (AudioClock -> p) where
fromLabel _ = O.overloadedMethod (O.MethodProxy :: O.MethodProxy info)
#endif
instance O.HasAttributeList AudioClock
type instance O.AttributeList AudioClock = AudioClockAttributeList
type AudioClockAttributeList = ('[ '("clockType", Gst.SystemClock.SystemClockClockTypePropertyInfo), '("name", Gst.Object.ObjectNamePropertyInfo), '("parent", Gst.Object.ObjectParentPropertyInfo), '("timeout", Gst.Clock.ClockTimeoutPropertyInfo), '("windowSize", Gst.Clock.ClockWindowSizePropertyInfo), '("windowThreshold", Gst.Clock.ClockWindowThresholdPropertyInfo)] :: [(Symbol, *)])
type instance O.SignalList AudioClock = AudioClockSignalList
type AudioClockSignalList = ('[ '("deepNotify", Gst.Object.ObjectDeepNotifySignalInfo), '("notify", GObject.Object.ObjectNotifySignalInfo), '("synced", Gst.Clock.ClockSyncedSignalInfo)] :: [(Symbol, *)])
foreign import ccall "gst_audio_clock_new" gst_audio_clock_new ::
CString ->
FunPtr GstAudio.Callbacks.C_AudioClockGetTimeFunc ->
Ptr () ->
FunPtr GLib.Callbacks.C_DestroyNotify ->
IO (Ptr AudioClock)
audioClockNew ::
(B.CallStack.HasCallStack, MonadIO m) =>
T.Text
-> GstAudio.Callbacks.AudioClockGetTimeFunc
-> m AudioClock
audioClockNew name func = liftIO $ do
name' <- textToCString name
func' <- GstAudio.Callbacks.mk_AudioClockGetTimeFunc (GstAudio.Callbacks.wrap_AudioClockGetTimeFunc Nothing (GstAudio.Callbacks.drop_closures_AudioClockGetTimeFunc func))
let userData = castFunPtrToPtr func'
let destroyNotify = safeFreeFunPtrPtr
result <- gst_audio_clock_new name' func' userData destroyNotify
checkUnexpectedReturnNULL "audioClockNew" result
result' <- (newObject AudioClock) result
freeMem name'
return result'
foreign import ccall "gst_audio_clock_reset" gst_audio_clock_reset ::
Ptr AudioClock ->
Word64 ->
IO ()
audioClockReset ::
(B.CallStack.HasCallStack, MonadIO m, IsAudioClock a) =>
a
-> Word64
-> m ()
audioClockReset clock time = liftIO $ do
clock' <- unsafeManagedPtrCastPtr clock
gst_audio_clock_reset clock' time
touchManagedPtr clock
return ()
data AudioClockResetMethodInfo
instance (signature ~ (Word64 -> m ()), MonadIO m, IsAudioClock a) => O.MethodInfo AudioClockResetMethodInfo a signature where
overloadedMethod _ = audioClockReset
foreign import ccall "gst_audio_clock_adjust" gst_audio_clock_adjust ::
Ptr Gst.Clock.Clock ->
Word64 ->
IO Word64
audioClockAdjust ::
(B.CallStack.HasCallStack, MonadIO m, Gst.Clock.IsClock a) =>
a
-> Word64
-> m Word64
audioClockAdjust clock time = liftIO $ do
clock' <- unsafeManagedPtrCastPtr clock
result <- gst_audio_clock_adjust clock' time
touchManagedPtr clock
return result
foreign import ccall "gst_audio_clock_get_time" gst_audio_clock_get_time ::
Ptr Gst.Clock.Clock ->
IO Word64
audioClockGetTime ::
(B.CallStack.HasCallStack, MonadIO m, Gst.Clock.IsClock a) =>
a
-> m Word64
audioClockGetTime clock = liftIO $ do
clock' <- unsafeManagedPtrCastPtr clock
result <- gst_audio_clock_get_time clock'
touchManagedPtr clock
return result
foreign import ccall "gst_audio_clock_invalidate" gst_audio_clock_invalidate ::
Ptr Gst.Clock.Clock ->
IO ()
audioClockInvalidate ::
(B.CallStack.HasCallStack, MonadIO m, Gst.Clock.IsClock a) =>
a
-> m ()
audioClockInvalidate clock = liftIO $ do
clock' <- unsafeManagedPtrCastPtr clock
gst_audio_clock_invalidate clock'
touchManagedPtr clock
return ()