{-# LANGUAGE TypeApplications #-}
#if (MIN_VERSION_haskell_gi_overloading(1,0,0) && !defined(__HADDOCK_VERSION__))
#define ENABLE_OVERLOADING
#endif
module GI.GstAudio.Objects.AudioRingBuffer
(
AudioRingBuffer(..) ,
IsAudioRingBuffer ,
toAudioRingBuffer ,
noAudioRingBuffer ,
#if defined(ENABLE_OVERLOADING)
ResolveAudioRingBufferMethod ,
#endif
#if defined(ENABLE_OVERLOADING)
AudioRingBufferAcquireMethodInfo ,
#endif
audioRingBufferAcquire ,
#if defined(ENABLE_OVERLOADING)
AudioRingBufferActivateMethodInfo ,
#endif
audioRingBufferActivate ,
#if defined(ENABLE_OVERLOADING)
AudioRingBufferAdvanceMethodInfo ,
#endif
audioRingBufferAdvance ,
#if defined(ENABLE_OVERLOADING)
AudioRingBufferClearMethodInfo ,
#endif
audioRingBufferClear ,
#if defined(ENABLE_OVERLOADING)
AudioRingBufferClearAllMethodInfo ,
#endif
audioRingBufferClearAll ,
#if defined(ENABLE_OVERLOADING)
AudioRingBufferCloseDeviceMethodInfo ,
#endif
audioRingBufferCloseDevice ,
#if defined(ENABLE_OVERLOADING)
AudioRingBufferCommitMethodInfo ,
#endif
audioRingBufferCommit ,
#if defined(ENABLE_OVERLOADING)
AudioRingBufferConvertMethodInfo ,
#endif
audioRingBufferConvert ,
audioRingBufferDebugSpecBuff ,
audioRingBufferDebugSpecCaps ,
#if defined(ENABLE_OVERLOADING)
AudioRingBufferDelayMethodInfo ,
#endif
audioRingBufferDelay ,
#if defined(ENABLE_OVERLOADING)
AudioRingBufferDeviceIsOpenMethodInfo ,
#endif
audioRingBufferDeviceIsOpen ,
#if defined(ENABLE_OVERLOADING)
AudioRingBufferIsAcquiredMethodInfo ,
#endif
audioRingBufferIsAcquired ,
#if defined(ENABLE_OVERLOADING)
AudioRingBufferIsActiveMethodInfo ,
#endif
audioRingBufferIsActive ,
#if defined(ENABLE_OVERLOADING)
AudioRingBufferIsFlushingMethodInfo ,
#endif
audioRingBufferIsFlushing ,
#if defined(ENABLE_OVERLOADING)
AudioRingBufferMayStartMethodInfo ,
#endif
audioRingBufferMayStart ,
#if defined(ENABLE_OVERLOADING)
AudioRingBufferOpenDeviceMethodInfo ,
#endif
audioRingBufferOpenDevice ,
audioRingBufferParseCaps ,
#if defined(ENABLE_OVERLOADING)
AudioRingBufferPauseMethodInfo ,
#endif
audioRingBufferPause ,
#if defined(ENABLE_OVERLOADING)
AudioRingBufferPrepareReadMethodInfo ,
#endif
audioRingBufferPrepareRead ,
#if defined(ENABLE_OVERLOADING)
AudioRingBufferReadMethodInfo ,
#endif
audioRingBufferRead ,
#if defined(ENABLE_OVERLOADING)
AudioRingBufferReleaseMethodInfo ,
#endif
audioRingBufferRelease ,
#if defined(ENABLE_OVERLOADING)
AudioRingBufferSamplesDoneMethodInfo ,
#endif
audioRingBufferSamplesDone ,
#if defined(ENABLE_OVERLOADING)
AudioRingBufferSetCallbackMethodInfo ,
#endif
audioRingBufferSetCallback ,
#if defined(ENABLE_OVERLOADING)
AudioRingBufferSetChannelPositionsMethodInfo,
#endif
audioRingBufferSetChannelPositions ,
#if defined(ENABLE_OVERLOADING)
AudioRingBufferSetFlushingMethodInfo ,
#endif
audioRingBufferSetFlushing ,
#if defined(ENABLE_OVERLOADING)
AudioRingBufferSetSampleMethodInfo ,
#endif
audioRingBufferSetSample ,
#if defined(ENABLE_OVERLOADING)
AudioRingBufferSetTimestampMethodInfo ,
#endif
audioRingBufferSetTimestamp ,
#if defined(ENABLE_OVERLOADING)
AudioRingBufferStartMethodInfo ,
#endif
audioRingBufferStart ,
#if defined(ENABLE_OVERLOADING)
AudioRingBufferStopMethodInfo ,
#endif
audioRingBufferStop ,
) 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.GI.Base.Signals as B.Signals
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.GLib.Callbacks as GLib.Callbacks
import qualified GI.GObject.Objects.Object as GObject.Object
import qualified GI.Gst.Enums as Gst.Enums
import qualified GI.Gst.Objects.Object as Gst.Object
import qualified GI.Gst.Structs.Caps as Gst.Caps
import qualified GI.GstAudio.Callbacks as GstAudio.Callbacks
import {-# SOURCE #-} qualified GI.GstAudio.Enums as GstAudio.Enums
import {-# SOURCE #-} qualified GI.GstAudio.Structs.AudioRingBufferSpec as GstAudio.AudioRingBufferSpec
newtype AudioRingBuffer = AudioRingBuffer (ManagedPtr AudioRingBuffer)
deriving (AudioRingBuffer -> AudioRingBuffer -> Bool
(AudioRingBuffer -> AudioRingBuffer -> Bool)
-> (AudioRingBuffer -> AudioRingBuffer -> Bool)
-> Eq AudioRingBuffer
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: AudioRingBuffer -> AudioRingBuffer -> Bool
$c/= :: AudioRingBuffer -> AudioRingBuffer -> Bool
== :: AudioRingBuffer -> AudioRingBuffer -> Bool
$c== :: AudioRingBuffer -> AudioRingBuffer -> Bool
Eq)
foreign import ccall "gst_audio_ring_buffer_get_type"
c_gst_audio_ring_buffer_get_type :: IO GType
instance GObject AudioRingBuffer where
gobjectType :: IO GType
gobjectType = IO GType
c_gst_audio_ring_buffer_get_type
instance B.GValue.IsGValue AudioRingBuffer where
toGValue :: AudioRingBuffer -> IO GValue
toGValue o :: AudioRingBuffer
o = do
GType
gtype <- IO GType
c_gst_audio_ring_buffer_get_type
AudioRingBuffer -> (Ptr AudioRingBuffer -> IO GValue) -> IO GValue
forall a c.
(HasCallStack, ManagedPtrNewtype a) =>
a -> (Ptr a -> IO c) -> IO c
B.ManagedPtr.withManagedPtr AudioRingBuffer
o (GType
-> (GValue -> Ptr AudioRingBuffer -> IO ())
-> Ptr AudioRingBuffer
-> IO GValue
forall a. GType -> (GValue -> a -> IO ()) -> a -> IO GValue
B.GValue.buildGValue GType
gtype GValue -> Ptr AudioRingBuffer -> IO ()
forall a. GObject a => GValue -> Ptr a -> IO ()
B.GValue.set_object)
fromGValue :: GValue -> IO AudioRingBuffer
fromGValue gv :: GValue
gv = do
Ptr AudioRingBuffer
ptr <- GValue -> IO (Ptr AudioRingBuffer)
forall b. GObject b => GValue -> IO (Ptr b)
B.GValue.get_object GValue
gv :: IO (Ptr AudioRingBuffer)
(ManagedPtr AudioRingBuffer -> AudioRingBuffer)
-> Ptr AudioRingBuffer -> IO AudioRingBuffer
forall a b.
(HasCallStack, GObject a, GObject b) =>
(ManagedPtr a -> a) -> Ptr b -> IO a
B.ManagedPtr.newObject ManagedPtr AudioRingBuffer -> AudioRingBuffer
AudioRingBuffer Ptr AudioRingBuffer
ptr
class (GObject o, O.IsDescendantOf AudioRingBuffer o) => IsAudioRingBuffer o
instance (GObject o, O.IsDescendantOf AudioRingBuffer o) => IsAudioRingBuffer o
instance O.HasParentTypes AudioRingBuffer
type instance O.ParentTypes AudioRingBuffer = '[Gst.Object.Object, GObject.Object.Object]
toAudioRingBuffer :: (MonadIO m, IsAudioRingBuffer o) => o -> m AudioRingBuffer
toAudioRingBuffer :: o -> m AudioRingBuffer
toAudioRingBuffer = IO AudioRingBuffer -> m AudioRingBuffer
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO AudioRingBuffer -> m AudioRingBuffer)
-> (o -> IO AudioRingBuffer) -> o -> m AudioRingBuffer
forall b c a. (b -> c) -> (a -> b) -> a -> c
. (ManagedPtr AudioRingBuffer -> AudioRingBuffer)
-> o -> IO AudioRingBuffer
forall o o'.
(HasCallStack, GObject o, GObject o') =>
(ManagedPtr o' -> o') -> o -> IO o'
unsafeCastTo ManagedPtr AudioRingBuffer -> AudioRingBuffer
AudioRingBuffer
noAudioRingBuffer :: Maybe AudioRingBuffer
noAudioRingBuffer :: Maybe AudioRingBuffer
noAudioRingBuffer = Maybe AudioRingBuffer
forall a. Maybe a
Nothing
#if defined(ENABLE_OVERLOADING)
type family ResolveAudioRingBufferMethod (t :: Symbol) (o :: *) :: * where
ResolveAudioRingBufferMethod "acquire" o = AudioRingBufferAcquireMethodInfo
ResolveAudioRingBufferMethod "activate" o = AudioRingBufferActivateMethodInfo
ResolveAudioRingBufferMethod "addControlBinding" o = Gst.Object.ObjectAddControlBindingMethodInfo
ResolveAudioRingBufferMethod "advance" o = AudioRingBufferAdvanceMethodInfo
ResolveAudioRingBufferMethod "bindProperty" o = GObject.Object.ObjectBindPropertyMethodInfo
ResolveAudioRingBufferMethod "bindPropertyFull" o = GObject.Object.ObjectBindPropertyFullMethodInfo
ResolveAudioRingBufferMethod "clear" o = AudioRingBufferClearMethodInfo
ResolveAudioRingBufferMethod "clearAll" o = AudioRingBufferClearAllMethodInfo
ResolveAudioRingBufferMethod "closeDevice" o = AudioRingBufferCloseDeviceMethodInfo
ResolveAudioRingBufferMethod "commit" o = AudioRingBufferCommitMethodInfo
ResolveAudioRingBufferMethod "convert" o = AudioRingBufferConvertMethodInfo
ResolveAudioRingBufferMethod "defaultError" o = Gst.Object.ObjectDefaultErrorMethodInfo
ResolveAudioRingBufferMethod "delay" o = AudioRingBufferDelayMethodInfo
ResolveAudioRingBufferMethod "deviceIsOpen" o = AudioRingBufferDeviceIsOpenMethodInfo
ResolveAudioRingBufferMethod "forceFloating" o = GObject.Object.ObjectForceFloatingMethodInfo
ResolveAudioRingBufferMethod "freezeNotify" o = GObject.Object.ObjectFreezeNotifyMethodInfo
ResolveAudioRingBufferMethod "getv" o = GObject.Object.ObjectGetvMethodInfo
ResolveAudioRingBufferMethod "hasActiveControlBindings" o = Gst.Object.ObjectHasActiveControlBindingsMethodInfo
ResolveAudioRingBufferMethod "hasAncestor" o = Gst.Object.ObjectHasAncestorMethodInfo
ResolveAudioRingBufferMethod "hasAsAncestor" o = Gst.Object.ObjectHasAsAncestorMethodInfo
ResolveAudioRingBufferMethod "hasAsParent" o = Gst.Object.ObjectHasAsParentMethodInfo
ResolveAudioRingBufferMethod "isAcquired" o = AudioRingBufferIsAcquiredMethodInfo
ResolveAudioRingBufferMethod "isActive" o = AudioRingBufferIsActiveMethodInfo
ResolveAudioRingBufferMethod "isFloating" o = GObject.Object.ObjectIsFloatingMethodInfo
ResolveAudioRingBufferMethod "isFlushing" o = AudioRingBufferIsFlushingMethodInfo
ResolveAudioRingBufferMethod "mayStart" o = AudioRingBufferMayStartMethodInfo
ResolveAudioRingBufferMethod "notify" o = GObject.Object.ObjectNotifyMethodInfo
ResolveAudioRingBufferMethod "notifyByPspec" o = GObject.Object.ObjectNotifyByPspecMethodInfo
ResolveAudioRingBufferMethod "openDevice" o = AudioRingBufferOpenDeviceMethodInfo
ResolveAudioRingBufferMethod "pause" o = AudioRingBufferPauseMethodInfo
ResolveAudioRingBufferMethod "prepareRead" o = AudioRingBufferPrepareReadMethodInfo
ResolveAudioRingBufferMethod "read" o = AudioRingBufferReadMethodInfo
ResolveAudioRingBufferMethod "ref" o = Gst.Object.ObjectRefMethodInfo
ResolveAudioRingBufferMethod "refSink" o = GObject.Object.ObjectRefSinkMethodInfo
ResolveAudioRingBufferMethod "release" o = AudioRingBufferReleaseMethodInfo
ResolveAudioRingBufferMethod "removeControlBinding" o = Gst.Object.ObjectRemoveControlBindingMethodInfo
ResolveAudioRingBufferMethod "runDispose" o = GObject.Object.ObjectRunDisposeMethodInfo
ResolveAudioRingBufferMethod "samplesDone" o = AudioRingBufferSamplesDoneMethodInfo
ResolveAudioRingBufferMethod "start" o = AudioRingBufferStartMethodInfo
ResolveAudioRingBufferMethod "stealData" o = GObject.Object.ObjectStealDataMethodInfo
ResolveAudioRingBufferMethod "stealQdata" o = GObject.Object.ObjectStealQdataMethodInfo
ResolveAudioRingBufferMethod "stop" o = AudioRingBufferStopMethodInfo
ResolveAudioRingBufferMethod "suggestNextSync" o = Gst.Object.ObjectSuggestNextSyncMethodInfo
ResolveAudioRingBufferMethod "syncValues" o = Gst.Object.ObjectSyncValuesMethodInfo
ResolveAudioRingBufferMethod "thawNotify" o = GObject.Object.ObjectThawNotifyMethodInfo
ResolveAudioRingBufferMethod "unparent" o = Gst.Object.ObjectUnparentMethodInfo
ResolveAudioRingBufferMethod "unref" o = Gst.Object.ObjectUnrefMethodInfo
ResolveAudioRingBufferMethod "watchClosure" o = GObject.Object.ObjectWatchClosureMethodInfo
ResolveAudioRingBufferMethod "getControlBinding" o = Gst.Object.ObjectGetControlBindingMethodInfo
ResolveAudioRingBufferMethod "getControlRate" o = Gst.Object.ObjectGetControlRateMethodInfo
ResolveAudioRingBufferMethod "getData" o = GObject.Object.ObjectGetDataMethodInfo
ResolveAudioRingBufferMethod "getGValueArray" o = Gst.Object.ObjectGetGValueArrayMethodInfo
ResolveAudioRingBufferMethod "getName" o = Gst.Object.ObjectGetNameMethodInfo
ResolveAudioRingBufferMethod "getParent" o = Gst.Object.ObjectGetParentMethodInfo
ResolveAudioRingBufferMethod "getPathString" o = Gst.Object.ObjectGetPathStringMethodInfo
ResolveAudioRingBufferMethod "getProperty" o = GObject.Object.ObjectGetPropertyMethodInfo
ResolveAudioRingBufferMethod "getQdata" o = GObject.Object.ObjectGetQdataMethodInfo
ResolveAudioRingBufferMethod "getValue" o = Gst.Object.ObjectGetValueMethodInfo
ResolveAudioRingBufferMethod "setCallback" o = AudioRingBufferSetCallbackMethodInfo
ResolveAudioRingBufferMethod "setChannelPositions" o = AudioRingBufferSetChannelPositionsMethodInfo
ResolveAudioRingBufferMethod "setControlBindingDisabled" o = Gst.Object.ObjectSetControlBindingDisabledMethodInfo
ResolveAudioRingBufferMethod "setControlBindingsDisabled" o = Gst.Object.ObjectSetControlBindingsDisabledMethodInfo
ResolveAudioRingBufferMethod "setControlRate" o = Gst.Object.ObjectSetControlRateMethodInfo
ResolveAudioRingBufferMethod "setData" o = GObject.Object.ObjectSetDataMethodInfo
ResolveAudioRingBufferMethod "setDataFull" o = GObject.Object.ObjectSetDataFullMethodInfo
ResolveAudioRingBufferMethod "setFlushing" o = AudioRingBufferSetFlushingMethodInfo
ResolveAudioRingBufferMethod "setName" o = Gst.Object.ObjectSetNameMethodInfo
ResolveAudioRingBufferMethod "setParent" o = Gst.Object.ObjectSetParentMethodInfo
ResolveAudioRingBufferMethod "setProperty" o = GObject.Object.ObjectSetPropertyMethodInfo
ResolveAudioRingBufferMethod "setSample" o = AudioRingBufferSetSampleMethodInfo
ResolveAudioRingBufferMethod "setTimestamp" o = AudioRingBufferSetTimestampMethodInfo
ResolveAudioRingBufferMethod l o = O.MethodResolutionFailed l o
instance (info ~ ResolveAudioRingBufferMethod t AudioRingBuffer, O.MethodInfo info AudioRingBuffer p) => OL.IsLabel t (AudioRingBuffer -> p) where
#if MIN_VERSION_base(4,10,0)
fromLabel = O.overloadedMethod @info
#else
fromLabel _ = O.overloadedMethod @info
#endif
#endif
#if defined(ENABLE_OVERLOADING)
instance O.HasAttributeList AudioRingBuffer
type instance O.AttributeList AudioRingBuffer = AudioRingBufferAttributeList
type AudioRingBufferAttributeList = ('[ '("name", Gst.Object.ObjectNamePropertyInfo), '("parent", Gst.Object.ObjectParentPropertyInfo)] :: [(Symbol, *)])
#endif
#if defined(ENABLE_OVERLOADING)
#endif
#if defined(ENABLE_OVERLOADING)
type instance O.SignalList AudioRingBuffer = AudioRingBufferSignalList
type AudioRingBufferSignalList = ('[ '("deepNotify", Gst.Object.ObjectDeepNotifySignalInfo), '("notify", GObject.Object.ObjectNotifySignalInfo)] :: [(Symbol, *)])
#endif
foreign import ccall "gst_audio_ring_buffer_acquire" gst_audio_ring_buffer_acquire ::
Ptr AudioRingBuffer ->
Ptr GstAudio.AudioRingBufferSpec.AudioRingBufferSpec ->
IO CInt
audioRingBufferAcquire ::
(B.CallStack.HasCallStack, MonadIO m, IsAudioRingBuffer a) =>
a
-> GstAudio.AudioRingBufferSpec.AudioRingBufferSpec
-> m Bool
audioRingBufferAcquire :: a -> AudioRingBufferSpec -> m Bool
audioRingBufferAcquire buf :: a
buf spec :: AudioRingBufferSpec
spec = IO Bool -> m Bool
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
Ptr AudioRingBuffer
buf' <- a -> IO (Ptr AudioRingBuffer)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
buf
Ptr AudioRingBufferSpec
spec' <- AudioRingBufferSpec -> IO (Ptr AudioRingBufferSpec)
forall a. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr a)
unsafeManagedPtrGetPtr AudioRingBufferSpec
spec
CInt
result <- Ptr AudioRingBuffer -> Ptr AudioRingBufferSpec -> IO CInt
gst_audio_ring_buffer_acquire Ptr AudioRingBuffer
buf' Ptr AudioRingBufferSpec
spec'
let result' :: Bool
result' = (CInt -> CInt -> Bool
forall a. Eq a => a -> a -> Bool
/= 0) CInt
result
a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
buf
AudioRingBufferSpec -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr AudioRingBufferSpec
spec
Bool -> IO Bool
forall (m :: * -> *) a. Monad m => a -> m a
return Bool
result'
#if defined(ENABLE_OVERLOADING)
data AudioRingBufferAcquireMethodInfo
instance (signature ~ (GstAudio.AudioRingBufferSpec.AudioRingBufferSpec -> m Bool), MonadIO m, IsAudioRingBuffer a) => O.MethodInfo AudioRingBufferAcquireMethodInfo a signature where
overloadedMethod = audioRingBufferAcquire
#endif
foreign import ccall "gst_audio_ring_buffer_activate" gst_audio_ring_buffer_activate ::
Ptr AudioRingBuffer ->
CInt ->
IO CInt
audioRingBufferActivate ::
(B.CallStack.HasCallStack, MonadIO m, IsAudioRingBuffer a) =>
a
-> Bool
-> m Bool
audioRingBufferActivate :: a -> Bool -> m Bool
audioRingBufferActivate buf :: a
buf active :: Bool
active = IO Bool -> m Bool
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
Ptr AudioRingBuffer
buf' <- a -> IO (Ptr AudioRingBuffer)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
buf
let active' :: CInt
active' = (Int -> CInt
forall a b. (Integral a, Num b) => a -> b
fromIntegral (Int -> CInt) -> (Bool -> Int) -> Bool -> CInt
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Bool -> Int
forall a. Enum a => a -> Int
fromEnum) Bool
active
CInt
result <- Ptr AudioRingBuffer -> CInt -> IO CInt
gst_audio_ring_buffer_activate Ptr AudioRingBuffer
buf' CInt
active'
let result' :: Bool
result' = (CInt -> CInt -> Bool
forall a. Eq a => a -> a -> Bool
/= 0) CInt
result
a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
buf
Bool -> IO Bool
forall (m :: * -> *) a. Monad m => a -> m a
return Bool
result'
#if defined(ENABLE_OVERLOADING)
data AudioRingBufferActivateMethodInfo
instance (signature ~ (Bool -> m Bool), MonadIO m, IsAudioRingBuffer a) => O.MethodInfo AudioRingBufferActivateMethodInfo a signature where
overloadedMethod = audioRingBufferActivate
#endif
foreign import ccall "gst_audio_ring_buffer_advance" gst_audio_ring_buffer_advance ::
Ptr AudioRingBuffer ->
Word32 ->
IO ()
audioRingBufferAdvance ::
(B.CallStack.HasCallStack, MonadIO m, IsAudioRingBuffer a) =>
a
-> Word32
-> m ()
audioRingBufferAdvance :: a -> Word32 -> m ()
audioRingBufferAdvance buf :: a
buf advance :: Word32
advance = IO () -> m ()
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO () -> m ()) -> IO () -> m ()
forall a b. (a -> b) -> a -> b
$ do
Ptr AudioRingBuffer
buf' <- a -> IO (Ptr AudioRingBuffer)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
buf
Ptr AudioRingBuffer -> Word32 -> IO ()
gst_audio_ring_buffer_advance Ptr AudioRingBuffer
buf' Word32
advance
a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
buf
() -> IO ()
forall (m :: * -> *) a. Monad m => a -> m a
return ()
#if defined(ENABLE_OVERLOADING)
data AudioRingBufferAdvanceMethodInfo
instance (signature ~ (Word32 -> m ()), MonadIO m, IsAudioRingBuffer a) => O.MethodInfo AudioRingBufferAdvanceMethodInfo a signature where
overloadedMethod = audioRingBufferAdvance
#endif
foreign import ccall "gst_audio_ring_buffer_clear" gst_audio_ring_buffer_clear ::
Ptr AudioRingBuffer ->
Int32 ->
IO ()
audioRingBufferClear ::
(B.CallStack.HasCallStack, MonadIO m, IsAudioRingBuffer a) =>
a
-> Int32
-> m ()
audioRingBufferClear :: a -> Int32 -> m ()
audioRingBufferClear buf :: a
buf segment :: Int32
segment = IO () -> m ()
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO () -> m ()) -> IO () -> m ()
forall a b. (a -> b) -> a -> b
$ do
Ptr AudioRingBuffer
buf' <- a -> IO (Ptr AudioRingBuffer)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
buf
Ptr AudioRingBuffer -> Int32 -> IO ()
gst_audio_ring_buffer_clear Ptr AudioRingBuffer
buf' Int32
segment
a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
buf
() -> IO ()
forall (m :: * -> *) a. Monad m => a -> m a
return ()
#if defined(ENABLE_OVERLOADING)
data AudioRingBufferClearMethodInfo
instance (signature ~ (Int32 -> m ()), MonadIO m, IsAudioRingBuffer a) => O.MethodInfo AudioRingBufferClearMethodInfo a signature where
overloadedMethod = audioRingBufferClear
#endif
foreign import ccall "gst_audio_ring_buffer_clear_all" gst_audio_ring_buffer_clear_all ::
Ptr AudioRingBuffer ->
IO ()
audioRingBufferClearAll ::
(B.CallStack.HasCallStack, MonadIO m, IsAudioRingBuffer a) =>
a
-> m ()
audioRingBufferClearAll :: a -> m ()
audioRingBufferClearAll buf :: a
buf = IO () -> m ()
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO () -> m ()) -> IO () -> m ()
forall a b. (a -> b) -> a -> b
$ do
Ptr AudioRingBuffer
buf' <- a -> IO (Ptr AudioRingBuffer)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
buf
Ptr AudioRingBuffer -> IO ()
gst_audio_ring_buffer_clear_all Ptr AudioRingBuffer
buf'
a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
buf
() -> IO ()
forall (m :: * -> *) a. Monad m => a -> m a
return ()
#if defined(ENABLE_OVERLOADING)
data AudioRingBufferClearAllMethodInfo
instance (signature ~ (m ()), MonadIO m, IsAudioRingBuffer a) => O.MethodInfo AudioRingBufferClearAllMethodInfo a signature where
overloadedMethod = audioRingBufferClearAll
#endif
foreign import ccall "gst_audio_ring_buffer_close_device" gst_audio_ring_buffer_close_device ::
Ptr AudioRingBuffer ->
IO CInt
audioRingBufferCloseDevice ::
(B.CallStack.HasCallStack, MonadIO m, IsAudioRingBuffer a) =>
a
-> m Bool
audioRingBufferCloseDevice :: a -> m Bool
audioRingBufferCloseDevice buf :: a
buf = IO Bool -> m Bool
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
Ptr AudioRingBuffer
buf' <- a -> IO (Ptr AudioRingBuffer)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
buf
CInt
result <- Ptr AudioRingBuffer -> IO CInt
gst_audio_ring_buffer_close_device Ptr AudioRingBuffer
buf'
let result' :: Bool
result' = (CInt -> CInt -> Bool
forall a. Eq a => a -> a -> Bool
/= 0) CInt
result
a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
buf
Bool -> IO Bool
forall (m :: * -> *) a. Monad m => a -> m a
return Bool
result'
#if defined(ENABLE_OVERLOADING)
data AudioRingBufferCloseDeviceMethodInfo
instance (signature ~ (m Bool), MonadIO m, IsAudioRingBuffer a) => O.MethodInfo AudioRingBufferCloseDeviceMethodInfo a signature where
overloadedMethod = audioRingBufferCloseDevice
#endif
foreign import ccall "gst_audio_ring_buffer_commit" gst_audio_ring_buffer_commit ::
Ptr AudioRingBuffer ->
Word64 ->
Ptr Word8 ->
Int32 ->
Int32 ->
Ptr Int32 ->
IO Word32
audioRingBufferCommit ::
(B.CallStack.HasCallStack, MonadIO m, IsAudioRingBuffer a) =>
a
-> Word64
-> ByteString
-> Int32
-> Int32
-> m ((Word32, Int32))
audioRingBufferCommit :: a -> Word64 -> ByteString -> Int32 -> Int32 -> m (Word32, Int32)
audioRingBufferCommit buf :: a
buf sample :: Word64
sample data_ :: ByteString
data_ outSamples :: Int32
outSamples accum :: Int32
accum = IO (Word32, Int32) -> m (Word32, Int32)
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO (Word32, Int32) -> m (Word32, Int32))
-> IO (Word32, Int32) -> m (Word32, Int32)
forall a b. (a -> b) -> a -> b
$ do
let inSamples :: Int32
inSamples = Int -> Int32
forall a b. (Integral a, Num b) => a -> b
fromIntegral (Int -> Int32) -> Int -> Int32
forall a b. (a -> b) -> a -> b
$ ByteString -> Int
B.length ByteString
data_
Ptr AudioRingBuffer
buf' <- a -> IO (Ptr AudioRingBuffer)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
buf
Ptr Word8
data_' <- ByteString -> IO (Ptr Word8)
packByteString ByteString
data_
Ptr Int32
accum' <- IO (Ptr Int32)
forall a. Storable a => IO (Ptr a)
allocMem :: IO (Ptr Int32)
Ptr Int32 -> Int32 -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke Ptr Int32
accum' Int32
accum
Word32
result <- Ptr AudioRingBuffer
-> Word64 -> Ptr Word8 -> Int32 -> Int32 -> Ptr Int32 -> IO Word32
gst_audio_ring_buffer_commit Ptr AudioRingBuffer
buf' Word64
sample Ptr Word8
data_' Int32
inSamples Int32
outSamples Ptr Int32
accum'
Int32
accum'' <- Ptr Int32 -> IO Int32
forall a. Storable a => Ptr a -> IO a
peek Ptr Int32
accum'
a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
buf
Ptr Word8 -> IO ()
forall a. Ptr a -> IO ()
freeMem Ptr Word8
data_'
Ptr Int32 -> IO ()
forall a. Ptr a -> IO ()
freeMem Ptr Int32
accum'
(Word32, Int32) -> IO (Word32, Int32)
forall (m :: * -> *) a. Monad m => a -> m a
return (Word32
result, Int32
accum'')
#if defined(ENABLE_OVERLOADING)
data AudioRingBufferCommitMethodInfo
instance (signature ~ (Word64 -> ByteString -> Int32 -> Int32 -> m ((Word32, Int32))), MonadIO m, IsAudioRingBuffer a) => O.MethodInfo AudioRingBufferCommitMethodInfo a signature where
overloadedMethod = audioRingBufferCommit
#endif
foreign import ccall "gst_audio_ring_buffer_convert" gst_audio_ring_buffer_convert ::
Ptr AudioRingBuffer ->
CUInt ->
Int64 ->
CUInt ->
Ptr Int64 ->
IO CInt
audioRingBufferConvert ::
(B.CallStack.HasCallStack, MonadIO m, IsAudioRingBuffer a) =>
a
-> Gst.Enums.Format
-> Int64
-> Gst.Enums.Format
-> m ((Bool, Int64))
audioRingBufferConvert :: a -> Format -> Int64 -> Format -> m (Bool, Int64)
audioRingBufferConvert buf :: a
buf srcFmt :: Format
srcFmt srcVal :: Int64
srcVal destFmt :: Format
destFmt = IO (Bool, Int64) -> m (Bool, Int64)
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO (Bool, Int64) -> m (Bool, Int64))
-> IO (Bool, Int64) -> m (Bool, Int64)
forall a b. (a -> b) -> a -> b
$ do
Ptr AudioRingBuffer
buf' <- a -> IO (Ptr AudioRingBuffer)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
buf
let srcFmt' :: CUInt
srcFmt' = (Int -> CUInt
forall a b. (Integral a, Num b) => a -> b
fromIntegral (Int -> CUInt) -> (Format -> Int) -> Format -> CUInt
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Format -> Int
forall a. Enum a => a -> Int
fromEnum) Format
srcFmt
let destFmt' :: CUInt
destFmt' = (Int -> CUInt
forall a b. (Integral a, Num b) => a -> b
fromIntegral (Int -> CUInt) -> (Format -> Int) -> Format -> CUInt
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Format -> Int
forall a. Enum a => a -> Int
fromEnum) Format
destFmt
Ptr Int64
destVal <- IO (Ptr Int64)
forall a. Storable a => IO (Ptr a)
allocMem :: IO (Ptr Int64)
CInt
result <- Ptr AudioRingBuffer
-> CUInt -> Int64 -> CUInt -> Ptr Int64 -> IO CInt
gst_audio_ring_buffer_convert Ptr AudioRingBuffer
buf' CUInt
srcFmt' Int64
srcVal CUInt
destFmt' Ptr Int64
destVal
let result' :: Bool
result' = (CInt -> CInt -> Bool
forall a. Eq a => a -> a -> Bool
/= 0) CInt
result
Int64
destVal' <- Ptr Int64 -> IO Int64
forall a. Storable a => Ptr a -> IO a
peek Ptr Int64
destVal
a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
buf
Ptr Int64 -> IO ()
forall a. Ptr a -> IO ()
freeMem Ptr Int64
destVal
(Bool, Int64) -> IO (Bool, Int64)
forall (m :: * -> *) a. Monad m => a -> m a
return (Bool
result', Int64
destVal')
#if defined(ENABLE_OVERLOADING)
data AudioRingBufferConvertMethodInfo
instance (signature ~ (Gst.Enums.Format -> Int64 -> Gst.Enums.Format -> m ((Bool, Int64))), MonadIO m, IsAudioRingBuffer a) => O.MethodInfo AudioRingBufferConvertMethodInfo a signature where
overloadedMethod = audioRingBufferConvert
#endif
foreign import ccall "gst_audio_ring_buffer_delay" gst_audio_ring_buffer_delay ::
Ptr AudioRingBuffer ->
IO Word32
audioRingBufferDelay ::
(B.CallStack.HasCallStack, MonadIO m, IsAudioRingBuffer a) =>
a
-> m Word32
audioRingBufferDelay :: a -> m Word32
audioRingBufferDelay buf :: a
buf = IO Word32 -> m Word32
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO Word32 -> m Word32) -> IO Word32 -> m Word32
forall a b. (a -> b) -> a -> b
$ do
Ptr AudioRingBuffer
buf' <- a -> IO (Ptr AudioRingBuffer)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
buf
Word32
result <- Ptr AudioRingBuffer -> IO Word32
gst_audio_ring_buffer_delay Ptr AudioRingBuffer
buf'
a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
buf
Word32 -> IO Word32
forall (m :: * -> *) a. Monad m => a -> m a
return Word32
result
#if defined(ENABLE_OVERLOADING)
data AudioRingBufferDelayMethodInfo
instance (signature ~ (m Word32), MonadIO m, IsAudioRingBuffer a) => O.MethodInfo AudioRingBufferDelayMethodInfo a signature where
overloadedMethod = audioRingBufferDelay
#endif
foreign import ccall "gst_audio_ring_buffer_device_is_open" gst_audio_ring_buffer_device_is_open ::
Ptr AudioRingBuffer ->
IO CInt
audioRingBufferDeviceIsOpen ::
(B.CallStack.HasCallStack, MonadIO m, IsAudioRingBuffer a) =>
a
-> m Bool
audioRingBufferDeviceIsOpen :: a -> m Bool
audioRingBufferDeviceIsOpen buf :: a
buf = IO Bool -> m Bool
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
Ptr AudioRingBuffer
buf' <- a -> IO (Ptr AudioRingBuffer)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
buf
CInt
result <- Ptr AudioRingBuffer -> IO CInt
gst_audio_ring_buffer_device_is_open Ptr AudioRingBuffer
buf'
let result' :: Bool
result' = (CInt -> CInt -> Bool
forall a. Eq a => a -> a -> Bool
/= 0) CInt
result
a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
buf
Bool -> IO Bool
forall (m :: * -> *) a. Monad m => a -> m a
return Bool
result'
#if defined(ENABLE_OVERLOADING)
data AudioRingBufferDeviceIsOpenMethodInfo
instance (signature ~ (m Bool), MonadIO m, IsAudioRingBuffer a) => O.MethodInfo AudioRingBufferDeviceIsOpenMethodInfo a signature where
overloadedMethod = audioRingBufferDeviceIsOpen
#endif
foreign import ccall "gst_audio_ring_buffer_is_acquired" gst_audio_ring_buffer_is_acquired ::
Ptr AudioRingBuffer ->
IO CInt
audioRingBufferIsAcquired ::
(B.CallStack.HasCallStack, MonadIO m, IsAudioRingBuffer a) =>
a
-> m Bool
audioRingBufferIsAcquired :: a -> m Bool
audioRingBufferIsAcquired buf :: a
buf = IO Bool -> m Bool
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
Ptr AudioRingBuffer
buf' <- a -> IO (Ptr AudioRingBuffer)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
buf
CInt
result <- Ptr AudioRingBuffer -> IO CInt
gst_audio_ring_buffer_is_acquired Ptr AudioRingBuffer
buf'
let result' :: Bool
result' = (CInt -> CInt -> Bool
forall a. Eq a => a -> a -> Bool
/= 0) CInt
result
a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
buf
Bool -> IO Bool
forall (m :: * -> *) a. Monad m => a -> m a
return Bool
result'
#if defined(ENABLE_OVERLOADING)
data AudioRingBufferIsAcquiredMethodInfo
instance (signature ~ (m Bool), MonadIO m, IsAudioRingBuffer a) => O.MethodInfo AudioRingBufferIsAcquiredMethodInfo a signature where
overloadedMethod = audioRingBufferIsAcquired
#endif
foreign import ccall "gst_audio_ring_buffer_is_active" gst_audio_ring_buffer_is_active ::
Ptr AudioRingBuffer ->
IO CInt
audioRingBufferIsActive ::
(B.CallStack.HasCallStack, MonadIO m, IsAudioRingBuffer a) =>
a
-> m Bool
audioRingBufferIsActive :: a -> m Bool
audioRingBufferIsActive buf :: a
buf = IO Bool -> m Bool
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
Ptr AudioRingBuffer
buf' <- a -> IO (Ptr AudioRingBuffer)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
buf
CInt
result <- Ptr AudioRingBuffer -> IO CInt
gst_audio_ring_buffer_is_active Ptr AudioRingBuffer
buf'
let result' :: Bool
result' = (CInt -> CInt -> Bool
forall a. Eq a => a -> a -> Bool
/= 0) CInt
result
a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
buf
Bool -> IO Bool
forall (m :: * -> *) a. Monad m => a -> m a
return Bool
result'
#if defined(ENABLE_OVERLOADING)
data AudioRingBufferIsActiveMethodInfo
instance (signature ~ (m Bool), MonadIO m, IsAudioRingBuffer a) => O.MethodInfo AudioRingBufferIsActiveMethodInfo a signature where
overloadedMethod = audioRingBufferIsActive
#endif
foreign import ccall "gst_audio_ring_buffer_is_flushing" gst_audio_ring_buffer_is_flushing ::
Ptr AudioRingBuffer ->
IO CInt
audioRingBufferIsFlushing ::
(B.CallStack.HasCallStack, MonadIO m, IsAudioRingBuffer a) =>
a
-> m Bool
audioRingBufferIsFlushing :: a -> m Bool
audioRingBufferIsFlushing buf :: a
buf = IO Bool -> m Bool
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
Ptr AudioRingBuffer
buf' <- a -> IO (Ptr AudioRingBuffer)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
buf
CInt
result <- Ptr AudioRingBuffer -> IO CInt
gst_audio_ring_buffer_is_flushing Ptr AudioRingBuffer
buf'
let result' :: Bool
result' = (CInt -> CInt -> Bool
forall a. Eq a => a -> a -> Bool
/= 0) CInt
result
a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
buf
Bool -> IO Bool
forall (m :: * -> *) a. Monad m => a -> m a
return Bool
result'
#if defined(ENABLE_OVERLOADING)
data AudioRingBufferIsFlushingMethodInfo
instance (signature ~ (m Bool), MonadIO m, IsAudioRingBuffer a) => O.MethodInfo AudioRingBufferIsFlushingMethodInfo a signature where
overloadedMethod = audioRingBufferIsFlushing
#endif
foreign import ccall "gst_audio_ring_buffer_may_start" gst_audio_ring_buffer_may_start ::
Ptr AudioRingBuffer ->
CInt ->
IO ()
audioRingBufferMayStart ::
(B.CallStack.HasCallStack, MonadIO m, IsAudioRingBuffer a) =>
a
-> Bool
-> m ()
audioRingBufferMayStart :: a -> Bool -> m ()
audioRingBufferMayStart buf :: a
buf allowed :: Bool
allowed = IO () -> m ()
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO () -> m ()) -> IO () -> m ()
forall a b. (a -> b) -> a -> b
$ do
Ptr AudioRingBuffer
buf' <- a -> IO (Ptr AudioRingBuffer)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
buf
let allowed' :: CInt
allowed' = (Int -> CInt
forall a b. (Integral a, Num b) => a -> b
fromIntegral (Int -> CInt) -> (Bool -> Int) -> Bool -> CInt
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Bool -> Int
forall a. Enum a => a -> Int
fromEnum) Bool
allowed
Ptr AudioRingBuffer -> CInt -> IO ()
gst_audio_ring_buffer_may_start Ptr AudioRingBuffer
buf' CInt
allowed'
a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
buf
() -> IO ()
forall (m :: * -> *) a. Monad m => a -> m a
return ()
#if defined(ENABLE_OVERLOADING)
data AudioRingBufferMayStartMethodInfo
instance (signature ~ (Bool -> m ()), MonadIO m, IsAudioRingBuffer a) => O.MethodInfo AudioRingBufferMayStartMethodInfo a signature where
overloadedMethod = audioRingBufferMayStart
#endif
foreign import ccall "gst_audio_ring_buffer_open_device" gst_audio_ring_buffer_open_device ::
Ptr AudioRingBuffer ->
IO CInt
audioRingBufferOpenDevice ::
(B.CallStack.HasCallStack, MonadIO m, IsAudioRingBuffer a) =>
a
-> m Bool
audioRingBufferOpenDevice :: a -> m Bool
audioRingBufferOpenDevice buf :: a
buf = IO Bool -> m Bool
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
Ptr AudioRingBuffer
buf' <- a -> IO (Ptr AudioRingBuffer)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
buf
CInt
result <- Ptr AudioRingBuffer -> IO CInt
gst_audio_ring_buffer_open_device Ptr AudioRingBuffer
buf'
let result' :: Bool
result' = (CInt -> CInt -> Bool
forall a. Eq a => a -> a -> Bool
/= 0) CInt
result
a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
buf
Bool -> IO Bool
forall (m :: * -> *) a. Monad m => a -> m a
return Bool
result'
#if defined(ENABLE_OVERLOADING)
data AudioRingBufferOpenDeviceMethodInfo
instance (signature ~ (m Bool), MonadIO m, IsAudioRingBuffer a) => O.MethodInfo AudioRingBufferOpenDeviceMethodInfo a signature where
overloadedMethod = audioRingBufferOpenDevice
#endif
foreign import ccall "gst_audio_ring_buffer_pause" gst_audio_ring_buffer_pause ::
Ptr AudioRingBuffer ->
IO CInt
audioRingBufferPause ::
(B.CallStack.HasCallStack, MonadIO m, IsAudioRingBuffer a) =>
a
-> m Bool
audioRingBufferPause :: a -> m Bool
audioRingBufferPause buf :: a
buf = IO Bool -> m Bool
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
Ptr AudioRingBuffer
buf' <- a -> IO (Ptr AudioRingBuffer)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
buf
CInt
result <- Ptr AudioRingBuffer -> IO CInt
gst_audio_ring_buffer_pause Ptr AudioRingBuffer
buf'
let result' :: Bool
result' = (CInt -> CInt -> Bool
forall a. Eq a => a -> a -> Bool
/= 0) CInt
result
a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
buf
Bool -> IO Bool
forall (m :: * -> *) a. Monad m => a -> m a
return Bool
result'
#if defined(ENABLE_OVERLOADING)
data AudioRingBufferPauseMethodInfo
instance (signature ~ (m Bool), MonadIO m, IsAudioRingBuffer a) => O.MethodInfo AudioRingBufferPauseMethodInfo a signature where
overloadedMethod = audioRingBufferPause
#endif
foreign import ccall "gst_audio_ring_buffer_prepare_read" gst_audio_ring_buffer_prepare_read ::
Ptr AudioRingBuffer ->
Ptr Int32 ->
Ptr (Ptr Word8) ->
Ptr Int32 ->
IO CInt
audioRingBufferPrepareRead ::
(B.CallStack.HasCallStack, MonadIO m, IsAudioRingBuffer a) =>
a
-> m ((Bool, Int32, ByteString))
audioRingBufferPrepareRead :: a -> m (Bool, Int32, ByteString)
audioRingBufferPrepareRead buf :: a
buf = IO (Bool, Int32, ByteString) -> m (Bool, Int32, ByteString)
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO (Bool, Int32, ByteString) -> m (Bool, Int32, ByteString))
-> IO (Bool, Int32, ByteString) -> m (Bool, Int32, ByteString)
forall a b. (a -> b) -> a -> b
$ do
Ptr AudioRingBuffer
buf' <- a -> IO (Ptr AudioRingBuffer)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
buf
Ptr Int32
segment <- IO (Ptr Int32)
forall a. Storable a => IO (Ptr a)
allocMem :: IO (Ptr Int32)
Ptr (Ptr Word8)
readptr <- IO (Ptr (Ptr Word8))
forall a. Storable a => IO (Ptr a)
allocMem :: IO (Ptr (Ptr Word8))
Ptr Int32
len <- IO (Ptr Int32)
forall a. Storable a => IO (Ptr a)
allocMem :: IO (Ptr Int32)
CInt
result <- Ptr AudioRingBuffer
-> Ptr Int32 -> Ptr (Ptr Word8) -> Ptr Int32 -> IO CInt
gst_audio_ring_buffer_prepare_read Ptr AudioRingBuffer
buf' Ptr Int32
segment Ptr (Ptr Word8)
readptr Ptr Int32
len
Int32
len' <- Ptr Int32 -> IO Int32
forall a. Storable a => Ptr a -> IO a
peek Ptr Int32
len
let result' :: Bool
result' = (CInt -> CInt -> Bool
forall a. Eq a => a -> a -> Bool
/= 0) CInt
result
Int32
segment' <- Ptr Int32 -> IO Int32
forall a. Storable a => Ptr a -> IO a
peek Ptr Int32
segment
Ptr Word8
readptr' <- Ptr (Ptr Word8) -> IO (Ptr Word8)
forall a. Storable a => Ptr a -> IO a
peek Ptr (Ptr Word8)
readptr
ByteString
readptr'' <- (Int32 -> Ptr Word8 -> IO ByteString
forall a. Integral a => a -> Ptr Word8 -> IO ByteString
unpackByteStringWithLength Int32
len') Ptr Word8
readptr'
Ptr Word8 -> IO ()
forall a. Ptr a -> IO ()
freeMem Ptr Word8
readptr'
a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
buf
Ptr Int32 -> IO ()
forall a. Ptr a -> IO ()
freeMem Ptr Int32
segment
Ptr (Ptr Word8) -> IO ()
forall a. Ptr a -> IO ()
freeMem Ptr (Ptr Word8)
readptr
Ptr Int32 -> IO ()
forall a. Ptr a -> IO ()
freeMem Ptr Int32
len
(Bool, Int32, ByteString) -> IO (Bool, Int32, ByteString)
forall (m :: * -> *) a. Monad m => a -> m a
return (Bool
result', Int32
segment', ByteString
readptr'')
#if defined(ENABLE_OVERLOADING)
data AudioRingBufferPrepareReadMethodInfo
instance (signature ~ (m ((Bool, Int32, ByteString))), MonadIO m, IsAudioRingBuffer a) => O.MethodInfo AudioRingBufferPrepareReadMethodInfo a signature where
overloadedMethod = audioRingBufferPrepareRead
#endif
foreign import ccall "gst_audio_ring_buffer_read" gst_audio_ring_buffer_read ::
Ptr AudioRingBuffer ->
Word64 ->
Ptr Word8 ->
Word32 ->
Ptr Word64 ->
IO Word32
audioRingBufferRead ::
(B.CallStack.HasCallStack, MonadIO m, IsAudioRingBuffer a) =>
a
-> Word64
-> ByteString
-> m ((Word32, Word64))
audioRingBufferRead :: a -> Word64 -> ByteString -> m (Word32, Word64)
audioRingBufferRead buf :: a
buf sample :: Word64
sample data_ :: ByteString
data_ = IO (Word32, Word64) -> m (Word32, Word64)
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO (Word32, Word64) -> m (Word32, Word64))
-> IO (Word32, Word64) -> m (Word32, Word64)
forall a b. (a -> b) -> a -> b
$ do
let len :: Word32
len = Int -> Word32
forall a b. (Integral a, Num b) => a -> b
fromIntegral (Int -> Word32) -> Int -> Word32
forall a b. (a -> b) -> a -> b
$ ByteString -> Int
B.length ByteString
data_
Ptr AudioRingBuffer
buf' <- a -> IO (Ptr AudioRingBuffer)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
buf
Ptr Word8
data_' <- ByteString -> IO (Ptr Word8)
packByteString ByteString
data_
Ptr Word64
timestamp <- IO (Ptr Word64)
forall a. Storable a => IO (Ptr a)
allocMem :: IO (Ptr Word64)
Word32
result <- Ptr AudioRingBuffer
-> Word64 -> Ptr Word8 -> Word32 -> Ptr Word64 -> IO Word32
gst_audio_ring_buffer_read Ptr AudioRingBuffer
buf' Word64
sample Ptr Word8
data_' Word32
len Ptr Word64
timestamp
Word64
timestamp' <- Ptr Word64 -> IO Word64
forall a. Storable a => Ptr a -> IO a
peek Ptr Word64
timestamp
a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
buf
Ptr Word8 -> IO ()
forall a. Ptr a -> IO ()
freeMem Ptr Word8
data_'
Ptr Word64 -> IO ()
forall a. Ptr a -> IO ()
freeMem Ptr Word64
timestamp
(Word32, Word64) -> IO (Word32, Word64)
forall (m :: * -> *) a. Monad m => a -> m a
return (Word32
result, Word64
timestamp')
#if defined(ENABLE_OVERLOADING)
data AudioRingBufferReadMethodInfo
instance (signature ~ (Word64 -> ByteString -> m ((Word32, Word64))), MonadIO m, IsAudioRingBuffer a) => O.MethodInfo AudioRingBufferReadMethodInfo a signature where
overloadedMethod = audioRingBufferRead
#endif
foreign import ccall "gst_audio_ring_buffer_release" gst_audio_ring_buffer_release ::
Ptr AudioRingBuffer ->
IO CInt
audioRingBufferRelease ::
(B.CallStack.HasCallStack, MonadIO m, IsAudioRingBuffer a) =>
a
-> m Bool
audioRingBufferRelease :: a -> m Bool
audioRingBufferRelease buf :: a
buf = IO Bool -> m Bool
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
Ptr AudioRingBuffer
buf' <- a -> IO (Ptr AudioRingBuffer)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
buf
CInt
result <- Ptr AudioRingBuffer -> IO CInt
gst_audio_ring_buffer_release Ptr AudioRingBuffer
buf'
let result' :: Bool
result' = (CInt -> CInt -> Bool
forall a. Eq a => a -> a -> Bool
/= 0) CInt
result
a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
buf
Bool -> IO Bool
forall (m :: * -> *) a. Monad m => a -> m a
return Bool
result'
#if defined(ENABLE_OVERLOADING)
data AudioRingBufferReleaseMethodInfo
instance (signature ~ (m Bool), MonadIO m, IsAudioRingBuffer a) => O.MethodInfo AudioRingBufferReleaseMethodInfo a signature where
overloadedMethod = audioRingBufferRelease
#endif
foreign import ccall "gst_audio_ring_buffer_samples_done" gst_audio_ring_buffer_samples_done ::
Ptr AudioRingBuffer ->
IO Word64
audioRingBufferSamplesDone ::
(B.CallStack.HasCallStack, MonadIO m, IsAudioRingBuffer a) =>
a
-> m Word64
audioRingBufferSamplesDone :: a -> m Word64
audioRingBufferSamplesDone buf :: a
buf = IO Word64 -> m Word64
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO Word64 -> m Word64) -> IO Word64 -> m Word64
forall a b. (a -> b) -> a -> b
$ do
Ptr AudioRingBuffer
buf' <- a -> IO (Ptr AudioRingBuffer)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
buf
Word64
result <- Ptr AudioRingBuffer -> IO Word64
gst_audio_ring_buffer_samples_done Ptr AudioRingBuffer
buf'
a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
buf
Word64 -> IO Word64
forall (m :: * -> *) a. Monad m => a -> m a
return Word64
result
#if defined(ENABLE_OVERLOADING)
data AudioRingBufferSamplesDoneMethodInfo
instance (signature ~ (m Word64), MonadIO m, IsAudioRingBuffer a) => O.MethodInfo AudioRingBufferSamplesDoneMethodInfo a signature where
overloadedMethod = audioRingBufferSamplesDone
#endif
foreign import ccall "gst_audio_ring_buffer_set_callback_full" gst_audio_ring_buffer_set_callback_full ::
Ptr AudioRingBuffer ->
FunPtr GstAudio.Callbacks.C_AudioRingBufferCallback ->
Ptr () ->
FunPtr GLib.Callbacks.C_DestroyNotify ->
IO ()
audioRingBufferSetCallback ::
(B.CallStack.HasCallStack, MonadIO m, IsAudioRingBuffer a) =>
a
-> Maybe (GstAudio.Callbacks.AudioRingBufferCallback)
-> m ()
audioRingBufferSetCallback :: a -> Maybe AudioRingBufferCallback -> m ()
audioRingBufferSetCallback buf :: a
buf cb :: Maybe AudioRingBufferCallback
cb = IO () -> m ()
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO () -> m ()) -> IO () -> m ()
forall a b. (a -> b) -> a -> b
$ do
Ptr AudioRingBuffer
buf' <- a -> IO (Ptr AudioRingBuffer)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
buf
FunPtr C_AudioRingBufferCallback
maybeCb <- case Maybe AudioRingBufferCallback
cb of
Nothing -> FunPtr C_AudioRingBufferCallback
-> IO (FunPtr C_AudioRingBufferCallback)
forall (m :: * -> *) a. Monad m => a -> m a
return (Ptr Any -> FunPtr C_AudioRingBufferCallback
forall a b. Ptr a -> FunPtr b
castPtrToFunPtr Ptr Any
forall a. Ptr a
nullPtr)
Just jCb :: AudioRingBufferCallback
jCb -> do
FunPtr C_AudioRingBufferCallback
jCb' <- C_AudioRingBufferCallback -> IO (FunPtr C_AudioRingBufferCallback)
GstAudio.Callbacks.mk_AudioRingBufferCallback (Maybe (Ptr (FunPtr C_AudioRingBufferCallback))
-> AudioRingBufferCallback_WithClosures
-> C_AudioRingBufferCallback
GstAudio.Callbacks.wrap_AudioRingBufferCallback Maybe (Ptr (FunPtr C_AudioRingBufferCallback))
forall a. Maybe a
Nothing (AudioRingBufferCallback -> AudioRingBufferCallback_WithClosures
GstAudio.Callbacks.drop_closures_AudioRingBufferCallback AudioRingBufferCallback
jCb))
FunPtr C_AudioRingBufferCallback
-> IO (FunPtr C_AudioRingBufferCallback)
forall (m :: * -> *) a. Monad m => a -> m a
return FunPtr C_AudioRingBufferCallback
jCb'
let userData :: Ptr ()
userData = FunPtr C_AudioRingBufferCallback -> Ptr ()
forall a b. FunPtr a -> Ptr b
castFunPtrToPtr FunPtr C_AudioRingBufferCallback
maybeCb
let notify :: FunPtr (Ptr a -> IO ())
notify = FunPtr (Ptr a -> IO ())
forall a. FunPtr (Ptr a -> IO ())
safeFreeFunPtrPtr
Ptr AudioRingBuffer
-> FunPtr C_AudioRingBufferCallback
-> Ptr ()
-> FunPtr C_DestroyNotify
-> IO ()
gst_audio_ring_buffer_set_callback_full Ptr AudioRingBuffer
buf' FunPtr C_AudioRingBufferCallback
maybeCb Ptr ()
userData FunPtr C_DestroyNotify
forall a. FunPtr (Ptr a -> IO ())
notify
a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
buf
() -> IO ()
forall (m :: * -> *) a. Monad m => a -> m a
return ()
#if defined(ENABLE_OVERLOADING)
data AudioRingBufferSetCallbackMethodInfo
instance (signature ~ (Maybe (GstAudio.Callbacks.AudioRingBufferCallback) -> m ()), MonadIO m, IsAudioRingBuffer a) => O.MethodInfo AudioRingBufferSetCallbackMethodInfo a signature where
overloadedMethod = audioRingBufferSetCallback
#endif
foreign import ccall "gst_audio_ring_buffer_set_channel_positions" gst_audio_ring_buffer_set_channel_positions ::
Ptr AudioRingBuffer ->
Ptr CInt ->
IO ()
audioRingBufferSetChannelPositions ::
(B.CallStack.HasCallStack, MonadIO m, IsAudioRingBuffer a) =>
a
-> [GstAudio.Enums.AudioChannelPosition]
-> m ()
audioRingBufferSetChannelPositions :: a -> [AudioChannelPosition] -> m ()
audioRingBufferSetChannelPositions buf :: a
buf position :: [AudioChannelPosition]
position = IO () -> m ()
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO () -> m ()) -> IO () -> m ()
forall a b. (a -> b) -> a -> b
$ do
Ptr AudioRingBuffer
buf' <- a -> IO (Ptr AudioRingBuffer)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
buf
let position' :: [CInt]
position' = (AudioChannelPosition -> CInt) -> [AudioChannelPosition] -> [CInt]
forall a b. (a -> b) -> [a] -> [b]
map (Int -> CInt
forall a b. (Integral a, Num b) => a -> b
fromIntegral (Int -> CInt)
-> (AudioChannelPosition -> Int) -> AudioChannelPosition -> CInt
forall b c a. (b -> c) -> (a -> b) -> a -> c
. AudioChannelPosition -> Int
forall a. Enum a => a -> Int
fromEnum) [AudioChannelPosition]
position
Ptr CInt
position'' <- [CInt] -> IO (Ptr CInt)
forall a. Storable a => [a] -> IO (Ptr a)
packStorableArray [CInt]
position'
Ptr AudioRingBuffer -> Ptr CInt -> IO ()
gst_audio_ring_buffer_set_channel_positions Ptr AudioRingBuffer
buf' Ptr CInt
position''
a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
buf
Ptr CInt -> IO ()
forall a. Ptr a -> IO ()
freeMem Ptr CInt
position''
() -> IO ()
forall (m :: * -> *) a. Monad m => a -> m a
return ()
#if defined(ENABLE_OVERLOADING)
data AudioRingBufferSetChannelPositionsMethodInfo
instance (signature ~ ([GstAudio.Enums.AudioChannelPosition] -> m ()), MonadIO m, IsAudioRingBuffer a) => O.MethodInfo AudioRingBufferSetChannelPositionsMethodInfo a signature where
overloadedMethod = audioRingBufferSetChannelPositions
#endif
foreign import ccall "gst_audio_ring_buffer_set_flushing" gst_audio_ring_buffer_set_flushing ::
Ptr AudioRingBuffer ->
CInt ->
IO ()
audioRingBufferSetFlushing ::
(B.CallStack.HasCallStack, MonadIO m, IsAudioRingBuffer a) =>
a
-> Bool
-> m ()
audioRingBufferSetFlushing :: a -> Bool -> m ()
audioRingBufferSetFlushing buf :: a
buf flushing :: Bool
flushing = IO () -> m ()
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO () -> m ()) -> IO () -> m ()
forall a b. (a -> b) -> a -> b
$ do
Ptr AudioRingBuffer
buf' <- a -> IO (Ptr AudioRingBuffer)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
buf
let flushing' :: CInt
flushing' = (Int -> CInt
forall a b. (Integral a, Num b) => a -> b
fromIntegral (Int -> CInt) -> (Bool -> Int) -> Bool -> CInt
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Bool -> Int
forall a. Enum a => a -> Int
fromEnum) Bool
flushing
Ptr AudioRingBuffer -> CInt -> IO ()
gst_audio_ring_buffer_set_flushing Ptr AudioRingBuffer
buf' CInt
flushing'
a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
buf
() -> IO ()
forall (m :: * -> *) a. Monad m => a -> m a
return ()
#if defined(ENABLE_OVERLOADING)
data AudioRingBufferSetFlushingMethodInfo
instance (signature ~ (Bool -> m ()), MonadIO m, IsAudioRingBuffer a) => O.MethodInfo AudioRingBufferSetFlushingMethodInfo a signature where
overloadedMethod = audioRingBufferSetFlushing
#endif
foreign import ccall "gst_audio_ring_buffer_set_sample" gst_audio_ring_buffer_set_sample ::
Ptr AudioRingBuffer ->
Word64 ->
IO ()
audioRingBufferSetSample ::
(B.CallStack.HasCallStack, MonadIO m, IsAudioRingBuffer a) =>
a
-> Word64
-> m ()
audioRingBufferSetSample :: a -> Word64 -> m ()
audioRingBufferSetSample buf :: a
buf sample :: Word64
sample = IO () -> m ()
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO () -> m ()) -> IO () -> m ()
forall a b. (a -> b) -> a -> b
$ do
Ptr AudioRingBuffer
buf' <- a -> IO (Ptr AudioRingBuffer)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
buf
Ptr AudioRingBuffer -> Word64 -> IO ()
gst_audio_ring_buffer_set_sample Ptr AudioRingBuffer
buf' Word64
sample
a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
buf
() -> IO ()
forall (m :: * -> *) a. Monad m => a -> m a
return ()
#if defined(ENABLE_OVERLOADING)
data AudioRingBufferSetSampleMethodInfo
instance (signature ~ (Word64 -> m ()), MonadIO m, IsAudioRingBuffer a) => O.MethodInfo AudioRingBufferSetSampleMethodInfo a signature where
overloadedMethod = audioRingBufferSetSample
#endif
foreign import ccall "gst_audio_ring_buffer_set_timestamp" gst_audio_ring_buffer_set_timestamp ::
Ptr AudioRingBuffer ->
Int32 ->
Word64 ->
IO ()
audioRingBufferSetTimestamp ::
(B.CallStack.HasCallStack, MonadIO m, IsAudioRingBuffer a) =>
a
-> Int32
-> Word64
-> m ()
audioRingBufferSetTimestamp :: a -> Int32 -> Word64 -> m ()
audioRingBufferSetTimestamp buf :: a
buf readseg :: Int32
readseg timestamp :: Word64
timestamp = IO () -> m ()
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO () -> m ()) -> IO () -> m ()
forall a b. (a -> b) -> a -> b
$ do
Ptr AudioRingBuffer
buf' <- a -> IO (Ptr AudioRingBuffer)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
buf
Ptr AudioRingBuffer -> Int32 -> Word64 -> IO ()
gst_audio_ring_buffer_set_timestamp Ptr AudioRingBuffer
buf' Int32
readseg Word64
timestamp
a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
buf
() -> IO ()
forall (m :: * -> *) a. Monad m => a -> m a
return ()
#if defined(ENABLE_OVERLOADING)
data AudioRingBufferSetTimestampMethodInfo
instance (signature ~ (Int32 -> Word64 -> m ()), MonadIO m, IsAudioRingBuffer a) => O.MethodInfo AudioRingBufferSetTimestampMethodInfo a signature where
overloadedMethod = audioRingBufferSetTimestamp
#endif
foreign import ccall "gst_audio_ring_buffer_start" gst_audio_ring_buffer_start ::
Ptr AudioRingBuffer ->
IO CInt
audioRingBufferStart ::
(B.CallStack.HasCallStack, MonadIO m, IsAudioRingBuffer a) =>
a
-> m Bool
audioRingBufferStart :: a -> m Bool
audioRingBufferStart buf :: a
buf = IO Bool -> m Bool
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
Ptr AudioRingBuffer
buf' <- a -> IO (Ptr AudioRingBuffer)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
buf
CInt
result <- Ptr AudioRingBuffer -> IO CInt
gst_audio_ring_buffer_start Ptr AudioRingBuffer
buf'
let result' :: Bool
result' = (CInt -> CInt -> Bool
forall a. Eq a => a -> a -> Bool
/= 0) CInt
result
a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
buf
Bool -> IO Bool
forall (m :: * -> *) a. Monad m => a -> m a
return Bool
result'
#if defined(ENABLE_OVERLOADING)
data AudioRingBufferStartMethodInfo
instance (signature ~ (m Bool), MonadIO m, IsAudioRingBuffer a) => O.MethodInfo AudioRingBufferStartMethodInfo a signature where
overloadedMethod = audioRingBufferStart
#endif
foreign import ccall "gst_audio_ring_buffer_stop" gst_audio_ring_buffer_stop ::
Ptr AudioRingBuffer ->
IO CInt
audioRingBufferStop ::
(B.CallStack.HasCallStack, MonadIO m, IsAudioRingBuffer a) =>
a
-> m Bool
audioRingBufferStop :: a -> m Bool
audioRingBufferStop buf :: a
buf = IO Bool -> m Bool
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
Ptr AudioRingBuffer
buf' <- a -> IO (Ptr AudioRingBuffer)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
buf
CInt
result <- Ptr AudioRingBuffer -> IO CInt
gst_audio_ring_buffer_stop Ptr AudioRingBuffer
buf'
let result' :: Bool
result' = (CInt -> CInt -> Bool
forall a. Eq a => a -> a -> Bool
/= 0) CInt
result
a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
buf
Bool -> IO Bool
forall (m :: * -> *) a. Monad m => a -> m a
return Bool
result'
#if defined(ENABLE_OVERLOADING)
data AudioRingBufferStopMethodInfo
instance (signature ~ (m Bool), MonadIO m, IsAudioRingBuffer a) => O.MethodInfo AudioRingBufferStopMethodInfo a signature where
overloadedMethod = audioRingBufferStop
#endif
foreign import ccall "gst_audio_ring_buffer_debug_spec_buff" gst_audio_ring_buffer_debug_spec_buff ::
Ptr GstAudio.AudioRingBufferSpec.AudioRingBufferSpec ->
IO ()
audioRingBufferDebugSpecBuff ::
(B.CallStack.HasCallStack, MonadIO m) =>
GstAudio.AudioRingBufferSpec.AudioRingBufferSpec
-> m ()
audioRingBufferDebugSpecBuff :: AudioRingBufferSpec -> m ()
audioRingBufferDebugSpecBuff spec :: AudioRingBufferSpec
spec = IO () -> m ()
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO () -> m ()) -> IO () -> m ()
forall a b. (a -> b) -> a -> b
$ do
Ptr AudioRingBufferSpec
spec' <- AudioRingBufferSpec -> IO (Ptr AudioRingBufferSpec)
forall a. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr a)
unsafeManagedPtrGetPtr AudioRingBufferSpec
spec
Ptr AudioRingBufferSpec -> IO ()
gst_audio_ring_buffer_debug_spec_buff Ptr AudioRingBufferSpec
spec'
AudioRingBufferSpec -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr AudioRingBufferSpec
spec
() -> IO ()
forall (m :: * -> *) a. Monad m => a -> m a
return ()
#if defined(ENABLE_OVERLOADING)
#endif
foreign import ccall "gst_audio_ring_buffer_debug_spec_caps" gst_audio_ring_buffer_debug_spec_caps ::
Ptr GstAudio.AudioRingBufferSpec.AudioRingBufferSpec ->
IO ()
audioRingBufferDebugSpecCaps ::
(B.CallStack.HasCallStack, MonadIO m) =>
GstAudio.AudioRingBufferSpec.AudioRingBufferSpec
-> m ()
audioRingBufferDebugSpecCaps :: AudioRingBufferSpec -> m ()
audioRingBufferDebugSpecCaps spec :: AudioRingBufferSpec
spec = IO () -> m ()
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO () -> m ()) -> IO () -> m ()
forall a b. (a -> b) -> a -> b
$ do
Ptr AudioRingBufferSpec
spec' <- AudioRingBufferSpec -> IO (Ptr AudioRingBufferSpec)
forall a. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr a)
unsafeManagedPtrGetPtr AudioRingBufferSpec
spec
Ptr AudioRingBufferSpec -> IO ()
gst_audio_ring_buffer_debug_spec_caps Ptr AudioRingBufferSpec
spec'
AudioRingBufferSpec -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr AudioRingBufferSpec
spec
() -> IO ()
forall (m :: * -> *) a. Monad m => a -> m a
return ()
#if defined(ENABLE_OVERLOADING)
#endif
foreign import ccall "gst_audio_ring_buffer_parse_caps" gst_audio_ring_buffer_parse_caps ::
Ptr GstAudio.AudioRingBufferSpec.AudioRingBufferSpec ->
Ptr Gst.Caps.Caps ->
IO CInt
audioRingBufferParseCaps ::
(B.CallStack.HasCallStack, MonadIO m) =>
GstAudio.AudioRingBufferSpec.AudioRingBufferSpec
-> Gst.Caps.Caps
-> m Bool
audioRingBufferParseCaps :: AudioRingBufferSpec -> Caps -> m Bool
audioRingBufferParseCaps spec :: AudioRingBufferSpec
spec caps :: Caps
caps = IO Bool -> m Bool
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
Ptr AudioRingBufferSpec
spec' <- AudioRingBufferSpec -> IO (Ptr AudioRingBufferSpec)
forall a. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr a)
unsafeManagedPtrGetPtr AudioRingBufferSpec
spec
Ptr Caps
caps' <- Caps -> IO (Ptr Caps)
forall a. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr a)
unsafeManagedPtrGetPtr Caps
caps
CInt
result <- Ptr AudioRingBufferSpec -> Ptr Caps -> IO CInt
gst_audio_ring_buffer_parse_caps Ptr AudioRingBufferSpec
spec' Ptr Caps
caps'
let result' :: Bool
result' = (CInt -> CInt -> Bool
forall a. Eq a => a -> a -> Bool
/= 0) CInt
result
AudioRingBufferSpec -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr AudioRingBufferSpec
spec
Caps -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr Caps
caps
Bool -> IO Bool
forall (m :: * -> *) a. Monad m => a -> m a
return Bool
result'
#if defined(ENABLE_OVERLOADING)
#endif