Copyright | Will Thompson and Iñaki García Etxebarria |
---|---|
License | LGPL-2.1 |
Maintainer | Iñaki García Etxebarria |
Safe Haskell | Safe-Inferred |
Language | Haskell2010 |
Synopsis
- type AudioBaseSinkCustomSlavingCallback = AudioBaseSink -> Word64 -> Word64 -> Int64 -> AudioBaseSinkDiscontReason -> IO ()
- type AudioBaseSinkCustomSlavingCallback_WithClosures = AudioBaseSink -> Word64 -> Word64 -> Int64 -> AudioBaseSinkDiscontReason -> Ptr () -> IO ()
- type C_AudioBaseSinkCustomSlavingCallback = Ptr AudioBaseSink -> Word64 -> Word64 -> Int64 -> CUInt -> Ptr () -> IO ()
- drop_closures_AudioBaseSinkCustomSlavingCallback :: AudioBaseSinkCustomSlavingCallback -> AudioBaseSinkCustomSlavingCallback_WithClosures
- dynamic_AudioBaseSinkCustomSlavingCallback :: (HasCallStack, MonadIO m, IsAudioBaseSink a) => FunPtr C_AudioBaseSinkCustomSlavingCallback -> a -> Word64 -> Word64 -> Int64 -> AudioBaseSinkDiscontReason -> Ptr () -> m ()
- genClosure_AudioBaseSinkCustomSlavingCallback :: MonadIO m => AudioBaseSinkCustomSlavingCallback -> m (GClosure C_AudioBaseSinkCustomSlavingCallback)
- mk_AudioBaseSinkCustomSlavingCallback :: C_AudioBaseSinkCustomSlavingCallback -> IO (FunPtr C_AudioBaseSinkCustomSlavingCallback)
- noAudioBaseSinkCustomSlavingCallback :: Maybe AudioBaseSinkCustomSlavingCallback
- noAudioBaseSinkCustomSlavingCallback_WithClosures :: Maybe AudioBaseSinkCustomSlavingCallback_WithClosures
- wrap_AudioBaseSinkCustomSlavingCallback :: Maybe (Ptr (FunPtr C_AudioBaseSinkCustomSlavingCallback)) -> AudioBaseSinkCustomSlavingCallback_WithClosures -> C_AudioBaseSinkCustomSlavingCallback
- type AudioClockGetTimeFunc = Clock -> IO Word64
- type AudioClockGetTimeFunc_WithClosures = Clock -> Ptr () -> IO Word64
- type C_AudioClockGetTimeFunc = Ptr Clock -> Ptr () -> IO Word64
- drop_closures_AudioClockGetTimeFunc :: AudioClockGetTimeFunc -> AudioClockGetTimeFunc_WithClosures
- dynamic_AudioClockGetTimeFunc :: (HasCallStack, MonadIO m, IsClock a) => FunPtr C_AudioClockGetTimeFunc -> a -> Ptr () -> m Word64
- genClosure_AudioClockGetTimeFunc :: MonadIO m => AudioClockGetTimeFunc -> m (GClosure C_AudioClockGetTimeFunc)
- mk_AudioClockGetTimeFunc :: C_AudioClockGetTimeFunc -> IO (FunPtr C_AudioClockGetTimeFunc)
- noAudioClockGetTimeFunc :: Maybe AudioClockGetTimeFunc
- noAudioClockGetTimeFunc_WithClosures :: Maybe AudioClockGetTimeFunc_WithClosures
- wrap_AudioClockGetTimeFunc :: Maybe (Ptr (FunPtr C_AudioClockGetTimeFunc)) -> AudioClockGetTimeFunc_WithClosures -> C_AudioClockGetTimeFunc
- type AudioFormatPack = AudioFormatInfo -> [AudioPackFlags] -> Ptr Word8 -> Ptr Word8 -> Int32 -> IO ()
- type C_AudioFormatPack = Ptr AudioFormatInfo -> CUInt -> Ptr Word8 -> Ptr Word8 -> Int32 -> IO ()
- dynamic_AudioFormatPack :: (HasCallStack, MonadIO m) => FunPtr C_AudioFormatPack -> AudioFormatInfo -> [AudioPackFlags] -> Ptr Word8 -> Ptr Word8 -> Int32 -> m ()
- genClosure_AudioFormatPack :: MonadIO m => AudioFormatPack -> m (GClosure C_AudioFormatPack)
- mk_AudioFormatPack :: C_AudioFormatPack -> IO (FunPtr C_AudioFormatPack)
- noAudioFormatPack :: Maybe AudioFormatPack
- wrap_AudioFormatPack :: Maybe (Ptr (FunPtr C_AudioFormatPack)) -> AudioFormatPack -> C_AudioFormatPack
- type AudioFormatUnpack = AudioFormatInfo -> [AudioPackFlags] -> Ptr Word8 -> Ptr Word8 -> Int32 -> IO ()
- type C_AudioFormatUnpack = Ptr AudioFormatInfo -> CUInt -> Ptr Word8 -> Ptr Word8 -> Int32 -> IO ()
- dynamic_AudioFormatUnpack :: (HasCallStack, MonadIO m) => FunPtr C_AudioFormatUnpack -> AudioFormatInfo -> [AudioPackFlags] -> Ptr Word8 -> Ptr Word8 -> Int32 -> m ()
- genClosure_AudioFormatUnpack :: MonadIO m => AudioFormatUnpack -> m (GClosure C_AudioFormatUnpack)
- mk_AudioFormatUnpack :: C_AudioFormatUnpack -> IO (FunPtr C_AudioFormatUnpack)
- noAudioFormatUnpack :: Maybe AudioFormatUnpack
- wrap_AudioFormatUnpack :: Maybe (Ptr (FunPtr C_AudioFormatUnpack)) -> AudioFormatUnpack -> C_AudioFormatUnpack
- type AudioRingBufferCallback = AudioRingBuffer -> ByteString -> IO ()
- type AudioRingBufferCallback_WithClosures = AudioRingBuffer -> ByteString -> Ptr () -> IO ()
- type C_AudioRingBufferCallback = Ptr AudioRingBuffer -> Ptr Word8 -> Word32 -> Ptr () -> IO ()
- drop_closures_AudioRingBufferCallback :: AudioRingBufferCallback -> AudioRingBufferCallback_WithClosures
- dynamic_AudioRingBufferCallback :: (HasCallStack, MonadIO m, IsAudioRingBuffer a) => FunPtr C_AudioRingBufferCallback -> a -> ByteString -> Ptr () -> m ()
- genClosure_AudioRingBufferCallback :: MonadIO m => AudioRingBufferCallback -> m (GClosure C_AudioRingBufferCallback)
- mk_AudioRingBufferCallback :: C_AudioRingBufferCallback -> IO (FunPtr C_AudioRingBufferCallback)
- noAudioRingBufferCallback :: Maybe AudioRingBufferCallback
- noAudioRingBufferCallback_WithClosures :: Maybe AudioRingBufferCallback_WithClosures
- wrap_AudioRingBufferCallback :: Maybe (Ptr (FunPtr C_AudioRingBufferCallback)) -> AudioRingBufferCallback_WithClosures -> C_AudioRingBufferCallback
- type AudioSinkClassExtensionClearAllFieldCallback = AudioSink -> IO ()
- type C_AudioSinkClassExtensionClearAllFieldCallback = Ptr AudioSink -> IO ()
- dynamic_AudioSinkClassExtensionClearAllFieldCallback :: (HasCallStack, MonadIO m, IsAudioSink a) => FunPtr C_AudioSinkClassExtensionClearAllFieldCallback -> a -> m ()
- genClosure_AudioSinkClassExtensionClearAllFieldCallback :: MonadIO m => AudioSinkClassExtensionClearAllFieldCallback -> m (GClosure C_AudioSinkClassExtensionClearAllFieldCallback)
- mk_AudioSinkClassExtensionClearAllFieldCallback :: C_AudioSinkClassExtensionClearAllFieldCallback -> IO (FunPtr C_AudioSinkClassExtensionClearAllFieldCallback)
- noAudioSinkClassExtensionClearAllFieldCallback :: Maybe AudioSinkClassExtensionClearAllFieldCallback
- wrap_AudioSinkClassExtensionClearAllFieldCallback :: Maybe (Ptr (FunPtr C_AudioSinkClassExtensionClearAllFieldCallback)) -> AudioSinkClassExtensionClearAllFieldCallback -> C_AudioSinkClassExtensionClearAllFieldCallback
Signals
AudioBaseSinkCustomSlavingCallback
type AudioBaseSinkCustomSlavingCallback Source #
= AudioBaseSink |
|
-> Word64 |
|
-> Word64 |
|
-> Int64 |
|
-> AudioBaseSinkDiscontReason |
|
-> IO () |
This function is set with audioBaseSinkSetCustomSlavingCallback
and is called during playback. It receives the current time of external and
internal clocks, which the callback can then use to apply any custom
slaving/synchronization schemes.
The external clock is the sink's element clock, the internal one is the internal audio clock. The internal audio clock's calibration is applied to the timestamps before they are passed to the callback. The difference between etime and itime is the skew; how much internal and external clock lie apart from each other. A skew of 0 means both clocks are perfectly in sync. itime > etime means the external clock is going slower, while itime < etime means it is going faster than the internal clock. etime and itime are always valid timestamps, except for when a discontinuity happens.
requested_skew is an output value the callback can write to. It informs the sink of whether or not it should move the playout pointer, and if so, by how much. This pointer is only NULL if a discontinuity occurs; otherwise, it is safe to write to *requested_skew. The default skew is 0.
The sink may experience discontinuities. If one happens, discont is TRUE, itime, etime are set to GST_CLOCK_TIME_NONE, and requested_skew is NULL. This makes it possible to reset custom clock slaving algorithms when a discontinuity happens.
Since: 1.6
type AudioBaseSinkCustomSlavingCallback_WithClosures Source #
= AudioBaseSink |
|
-> Word64 |
|
-> Word64 |
|
-> Int64 |
|
-> AudioBaseSinkDiscontReason |
|
-> Ptr () |
|
-> IO () |
This function is set with audioBaseSinkSetCustomSlavingCallback
and is called during playback. It receives the current time of external and
internal clocks, which the callback can then use to apply any custom
slaving/synchronization schemes.
The external clock is the sink's element clock, the internal one is the internal audio clock. The internal audio clock's calibration is applied to the timestamps before they are passed to the callback. The difference between etime and itime is the skew; how much internal and external clock lie apart from each other. A skew of 0 means both clocks are perfectly in sync. itime > etime means the external clock is going slower, while itime < etime means it is going faster than the internal clock. etime and itime are always valid timestamps, except for when a discontinuity happens.
requested_skew is an output value the callback can write to. It informs the sink of whether or not it should move the playout pointer, and if so, by how much. This pointer is only NULL if a discontinuity occurs; otherwise, it is safe to write to *requested_skew. The default skew is 0.
The sink may experience discontinuities. If one happens, discont is TRUE, itime, etime are set to GST_CLOCK_TIME_NONE, and requested_skew is NULL. This makes it possible to reset custom clock slaving algorithms when a discontinuity happens.
Since: 1.6
type C_AudioBaseSinkCustomSlavingCallback = Ptr AudioBaseSink -> Word64 -> Word64 -> Int64 -> CUInt -> Ptr () -> IO () Source #
Type for the callback on the (unwrapped) C side.
drop_closures_AudioBaseSinkCustomSlavingCallback :: AudioBaseSinkCustomSlavingCallback -> AudioBaseSinkCustomSlavingCallback_WithClosures Source #
A simple wrapper that ignores the closure arguments.
dynamic_AudioBaseSinkCustomSlavingCallback Source #
:: (HasCallStack, MonadIO m, IsAudioBaseSink a) | |
=> FunPtr C_AudioBaseSinkCustomSlavingCallback | |
-> a |
|
-> Word64 |
|
-> Word64 |
|
-> Int64 |
|
-> AudioBaseSinkDiscontReason |
|
-> Ptr () |
|
-> m () |
Given a pointer to a foreign C function, wrap it into a function callable from Haskell.
genClosure_AudioBaseSinkCustomSlavingCallback :: MonadIO m => AudioBaseSinkCustomSlavingCallback -> m (GClosure C_AudioBaseSinkCustomSlavingCallback) Source #
Wrap the callback into a GClosure
.
mk_AudioBaseSinkCustomSlavingCallback :: C_AudioBaseSinkCustomSlavingCallback -> IO (FunPtr C_AudioBaseSinkCustomSlavingCallback) Source #
Generate a function pointer callable from C code, from a C_AudioBaseSinkCustomSlavingCallback
.
noAudioBaseSinkCustomSlavingCallback :: Maybe AudioBaseSinkCustomSlavingCallback Source #
A convenience synonym for
.Nothing
:: Maybe
AudioBaseSinkCustomSlavingCallback
noAudioBaseSinkCustomSlavingCallback_WithClosures :: Maybe AudioBaseSinkCustomSlavingCallback_WithClosures Source #
A convenience synonym for
.Nothing
:: Maybe
AudioBaseSinkCustomSlavingCallback_WithClosures
wrap_AudioBaseSinkCustomSlavingCallback :: Maybe (Ptr (FunPtr C_AudioBaseSinkCustomSlavingCallback)) -> AudioBaseSinkCustomSlavingCallback_WithClosures -> C_AudioBaseSinkCustomSlavingCallback Source #
AudioClockGetTimeFunc
type AudioClockGetTimeFunc Source #
= Clock |
|
-> IO Word64 | Returns: the current time or |
This function will be called whenever the current clock time needs to be
calculated. If this function returns CLOCK_TIME_NONE
, the last reported
time will be returned by the clock.
type AudioClockGetTimeFunc_WithClosures Source #
= Clock |
|
-> Ptr () |
|
-> IO Word64 | Returns: the current time or |
This function will be called whenever the current clock time needs to be
calculated. If this function returns CLOCK_TIME_NONE
, the last reported
time will be returned by the clock.
type C_AudioClockGetTimeFunc = Ptr Clock -> Ptr () -> IO Word64 Source #
Type for the callback on the (unwrapped) C side.
drop_closures_AudioClockGetTimeFunc :: AudioClockGetTimeFunc -> AudioClockGetTimeFunc_WithClosures Source #
A simple wrapper that ignores the closure arguments.
dynamic_AudioClockGetTimeFunc Source #
:: (HasCallStack, MonadIO m, IsClock a) | |
=> FunPtr C_AudioClockGetTimeFunc | |
-> a |
|
-> Ptr () |
|
-> m Word64 | Returns: the current time or |
Given a pointer to a foreign C function, wrap it into a function callable from Haskell.
genClosure_AudioClockGetTimeFunc :: MonadIO m => AudioClockGetTimeFunc -> m (GClosure C_AudioClockGetTimeFunc) Source #
Wrap the callback into a GClosure
.
mk_AudioClockGetTimeFunc :: C_AudioClockGetTimeFunc -> IO (FunPtr C_AudioClockGetTimeFunc) Source #
Generate a function pointer callable from C code, from a C_AudioClockGetTimeFunc
.
noAudioClockGetTimeFunc :: Maybe AudioClockGetTimeFunc Source #
A convenience synonym for
.Nothing
:: Maybe
AudioClockGetTimeFunc
noAudioClockGetTimeFunc_WithClosures :: Maybe AudioClockGetTimeFunc_WithClosures Source #
A convenience synonym for
.Nothing
:: Maybe
AudioClockGetTimeFunc_WithClosures
wrap_AudioClockGetTimeFunc :: Maybe (Ptr (FunPtr C_AudioClockGetTimeFunc)) -> AudioClockGetTimeFunc_WithClosures -> C_AudioClockGetTimeFunc Source #
Wrap a AudioClockGetTimeFunc
into a C_AudioClockGetTimeFunc
.
AudioFormatPack
type AudioFormatPack Source #
= AudioFormatInfo |
|
-> [AudioPackFlags] |
|
-> Ptr Word8 |
|
-> Ptr Word8 |
|
-> Int32 |
|
-> IO () |
Packs length
samples from src
to the data array in format info
.
The samples from source have each channel interleaved
and will be packed into data
.
type C_AudioFormatPack = Ptr AudioFormatInfo -> CUInt -> Ptr Word8 -> Ptr Word8 -> Int32 -> IO () Source #
Type for the callback on the (unwrapped) C side.
dynamic_AudioFormatPack Source #
:: (HasCallStack, MonadIO m) | |
=> FunPtr C_AudioFormatPack | |
-> AudioFormatInfo |
|
-> [AudioPackFlags] |
|
-> Ptr Word8 |
|
-> Ptr Word8 |
|
-> Int32 |
|
-> m () |
Given a pointer to a foreign C function, wrap it into a function callable from Haskell.
genClosure_AudioFormatPack :: MonadIO m => AudioFormatPack -> m (GClosure C_AudioFormatPack) Source #
Wrap the callback into a GClosure
.
mk_AudioFormatPack :: C_AudioFormatPack -> IO (FunPtr C_AudioFormatPack) Source #
Generate a function pointer callable from C code, from a C_AudioFormatPack
.
noAudioFormatPack :: Maybe AudioFormatPack Source #
A convenience synonym for
.Nothing
:: Maybe
AudioFormatPack
wrap_AudioFormatPack :: Maybe (Ptr (FunPtr C_AudioFormatPack)) -> AudioFormatPack -> C_AudioFormatPack Source #
Wrap a AudioFormatPack
into a C_AudioFormatPack
.
AudioFormatUnpack
type AudioFormatUnpack Source #
= AudioFormatInfo |
|
-> [AudioPackFlags] |
|
-> Ptr Word8 |
|
-> Ptr Word8 |
|
-> Int32 |
|
-> IO () |
Unpacks length
samples from the given data of format info
.
The samples will be unpacked into dest
which each channel
interleaved. dest
should at least be big enough to hold length
*
channels * size(unpack_format) bytes.
type C_AudioFormatUnpack = Ptr AudioFormatInfo -> CUInt -> Ptr Word8 -> Ptr Word8 -> Int32 -> IO () Source #
Type for the callback on the (unwrapped) C side.
dynamic_AudioFormatUnpack Source #
:: (HasCallStack, MonadIO m) | |
=> FunPtr C_AudioFormatUnpack | |
-> AudioFormatInfo |
|
-> [AudioPackFlags] |
|
-> Ptr Word8 |
|
-> Ptr Word8 |
|
-> Int32 |
|
-> m () |
Given a pointer to a foreign C function, wrap it into a function callable from Haskell.
genClosure_AudioFormatUnpack :: MonadIO m => AudioFormatUnpack -> m (GClosure C_AudioFormatUnpack) Source #
Wrap the callback into a GClosure
.
mk_AudioFormatUnpack :: C_AudioFormatUnpack -> IO (FunPtr C_AudioFormatUnpack) Source #
Generate a function pointer callable from C code, from a C_AudioFormatUnpack
.
noAudioFormatUnpack :: Maybe AudioFormatUnpack Source #
A convenience synonym for
.Nothing
:: Maybe
AudioFormatUnpack
wrap_AudioFormatUnpack :: Maybe (Ptr (FunPtr C_AudioFormatUnpack)) -> AudioFormatUnpack -> C_AudioFormatUnpack Source #
Wrap a AudioFormatUnpack
into a C_AudioFormatUnpack
.
AudioRingBufferCallback
type AudioRingBufferCallback Source #
= AudioRingBuffer |
|
-> ByteString |
|
-> IO () |
This function is set with gst_audio_ring_buffer_set_callback()
and is
called to fill the memory at data
with len
bytes of samples.
type AudioRingBufferCallback_WithClosures Source #
= AudioRingBuffer |
|
-> ByteString |
|
-> Ptr () |
|
-> IO () |
This function is set with gst_audio_ring_buffer_set_callback()
and is
called to fill the memory at data
with len
bytes of samples.
type C_AudioRingBufferCallback = Ptr AudioRingBuffer -> Ptr Word8 -> Word32 -> Ptr () -> IO () Source #
Type for the callback on the (unwrapped) C side.
drop_closures_AudioRingBufferCallback :: AudioRingBufferCallback -> AudioRingBufferCallback_WithClosures Source #
A simple wrapper that ignores the closure arguments.
dynamic_AudioRingBufferCallback Source #
:: (HasCallStack, MonadIO m, IsAudioRingBuffer a) | |
=> FunPtr C_AudioRingBufferCallback | |
-> a |
|
-> ByteString |
|
-> Ptr () |
|
-> m () |
Given a pointer to a foreign C function, wrap it into a function callable from Haskell.
genClosure_AudioRingBufferCallback :: MonadIO m => AudioRingBufferCallback -> m (GClosure C_AudioRingBufferCallback) Source #
Wrap the callback into a GClosure
.
mk_AudioRingBufferCallback :: C_AudioRingBufferCallback -> IO (FunPtr C_AudioRingBufferCallback) Source #
Generate a function pointer callable from C code, from a C_AudioRingBufferCallback
.
noAudioRingBufferCallback :: Maybe AudioRingBufferCallback Source #
A convenience synonym for
.Nothing
:: Maybe
AudioRingBufferCallback
noAudioRingBufferCallback_WithClosures :: Maybe AudioRingBufferCallback_WithClosures Source #
A convenience synonym for
.Nothing
:: Maybe
AudioRingBufferCallback_WithClosures
wrap_AudioRingBufferCallback :: Maybe (Ptr (FunPtr C_AudioRingBufferCallback)) -> AudioRingBufferCallback_WithClosures -> C_AudioRingBufferCallback Source #
Wrap a AudioRingBufferCallback
into a C_AudioRingBufferCallback
.
AudioSinkClassExtensionClearAllFieldCallback
type AudioSinkClassExtensionClearAllFieldCallback = AudioSink -> IO () Source #
No description available in the introspection data.
type C_AudioSinkClassExtensionClearAllFieldCallback = Ptr AudioSink -> IO () Source #
Type for the callback on the (unwrapped) C side.
dynamic_AudioSinkClassExtensionClearAllFieldCallback :: (HasCallStack, MonadIO m, IsAudioSink a) => FunPtr C_AudioSinkClassExtensionClearAllFieldCallback -> a -> m () Source #
Given a pointer to a foreign C function, wrap it into a function callable from Haskell.
genClosure_AudioSinkClassExtensionClearAllFieldCallback :: MonadIO m => AudioSinkClassExtensionClearAllFieldCallback -> m (GClosure C_AudioSinkClassExtensionClearAllFieldCallback) Source #
Wrap the callback into a GClosure
.
mk_AudioSinkClassExtensionClearAllFieldCallback :: C_AudioSinkClassExtensionClearAllFieldCallback -> IO (FunPtr C_AudioSinkClassExtensionClearAllFieldCallback) Source #
Generate a function pointer callable from C code, from a C_AudioSinkClassExtensionClearAllFieldCallback
.
noAudioSinkClassExtensionClearAllFieldCallback :: Maybe AudioSinkClassExtensionClearAllFieldCallback Source #
A convenience synonym for
.Nothing
:: Maybe
AudioSinkClassExtensionClearAllFieldCallback