Copyright | Will Thompson, Iñaki García Etxebarria and Jonas Platte |
---|---|
License | LGPL-2.1 |
Maintainer | Iñaki García Etxebarria (garetxe@gmail.com) |
Safe Haskell | None |
Language | Haskell2010 |
This is the base class for audio sinks. Subclasses need to implement the ::create_ringbuffer vmethod. This base class will then take care of writing samples to the ringbuffer, synchronisation, clipping and flushing.
- newtype AudioBaseSink = AudioBaseSink (ManagedPtr AudioBaseSink)
- class GObject o => IsAudioBaseSink o
- toAudioBaseSink :: IsAudioBaseSink o => o -> IO AudioBaseSink
- noAudioBaseSink :: Maybe AudioBaseSink
- data AudioBaseSinkCreateRingbufferMethodInfo
- audioBaseSinkCreateRingbuffer :: (HasCallStack, MonadIO m, IsAudioBaseSink a) => a -> m AudioRingBuffer
- data AudioBaseSinkGetAlignmentThresholdMethodInfo
- audioBaseSinkGetAlignmentThreshold :: (HasCallStack, MonadIO m, IsAudioBaseSink a) => a -> m Word64
- data AudioBaseSinkGetDiscontWaitMethodInfo
- audioBaseSinkGetDiscontWait :: (HasCallStack, MonadIO m, IsAudioBaseSink a) => a -> m Word64
- data AudioBaseSinkGetDriftToleranceMethodInfo
- audioBaseSinkGetDriftTolerance :: (HasCallStack, MonadIO m, IsAudioBaseSink a) => a -> m Int64
- data AudioBaseSinkGetProvideClockMethodInfo
- audioBaseSinkGetProvideClock :: (HasCallStack, MonadIO m, IsAudioBaseSink a) => a -> m Bool
- data AudioBaseSinkGetSlaveMethodMethodInfo
- audioBaseSinkGetSlaveMethod :: (HasCallStack, MonadIO m, IsAudioBaseSink a) => a -> m AudioBaseSinkSlaveMethod
- data AudioBaseSinkReportDeviceFailureMethodInfo
- audioBaseSinkReportDeviceFailure :: (HasCallStack, MonadIO m, IsAudioBaseSink a) => a -> m ()
- data AudioBaseSinkSetAlignmentThresholdMethodInfo
- audioBaseSinkSetAlignmentThreshold :: (HasCallStack, MonadIO m, IsAudioBaseSink a) => a -> Word64 -> m ()
- data AudioBaseSinkSetCustomSlavingCallbackMethodInfo
- audioBaseSinkSetCustomSlavingCallback :: (HasCallStack, MonadIO m, IsAudioBaseSink a) => a -> AudioBaseSinkCustomSlavingCallback -> m ()
- data AudioBaseSinkSetDiscontWaitMethodInfo
- audioBaseSinkSetDiscontWait :: (HasCallStack, MonadIO m, IsAudioBaseSink a) => a -> Word64 -> m ()
- data AudioBaseSinkSetDriftToleranceMethodInfo
- audioBaseSinkSetDriftTolerance :: (HasCallStack, MonadIO m, IsAudioBaseSink a) => a -> Int64 -> m ()
- data AudioBaseSinkSetProvideClockMethodInfo
- audioBaseSinkSetProvideClock :: (HasCallStack, MonadIO m, IsAudioBaseSink a) => a -> Bool -> m ()
- data AudioBaseSinkSetSlaveMethodMethodInfo
- audioBaseSinkSetSlaveMethod :: (HasCallStack, MonadIO m, IsAudioBaseSink a) => a -> AudioBaseSinkSlaveMethod -> m ()
- data AudioBaseSinkAlignmentThresholdPropertyInfo
- audioBaseSinkAlignmentThreshold :: AttrLabelProxy "alignmentThreshold"
- constructAudioBaseSinkAlignmentThreshold :: IsAudioBaseSink o => Word64 -> IO (GValueConstruct o)
- getAudioBaseSinkAlignmentThreshold :: (MonadIO m, IsAudioBaseSink o) => o -> m Word64
- setAudioBaseSinkAlignmentThreshold :: (MonadIO m, IsAudioBaseSink o) => o -> Word64 -> m ()
- data AudioBaseSinkBufferTimePropertyInfo
- audioBaseSinkBufferTime :: AttrLabelProxy "bufferTime"
- constructAudioBaseSinkBufferTime :: IsAudioBaseSink o => Int64 -> IO (GValueConstruct o)
- getAudioBaseSinkBufferTime :: (MonadIO m, IsAudioBaseSink o) => o -> m Int64
- setAudioBaseSinkBufferTime :: (MonadIO m, IsAudioBaseSink o) => o -> Int64 -> m ()
- data AudioBaseSinkCanActivatePullPropertyInfo
- audioBaseSinkCanActivatePull :: AttrLabelProxy "canActivatePull"
- constructAudioBaseSinkCanActivatePull :: IsAudioBaseSink o => Bool -> IO (GValueConstruct o)
- getAudioBaseSinkCanActivatePull :: (MonadIO m, IsAudioBaseSink o) => o -> m Bool
- setAudioBaseSinkCanActivatePull :: (MonadIO m, IsAudioBaseSink o) => o -> Bool -> m ()
- data AudioBaseSinkDiscontWaitPropertyInfo
- audioBaseSinkDiscontWait :: AttrLabelProxy "discontWait"
- constructAudioBaseSinkDiscontWait :: IsAudioBaseSink o => Word64 -> IO (GValueConstruct o)
- getAudioBaseSinkDiscontWait :: (MonadIO m, IsAudioBaseSink o) => o -> m Word64
- setAudioBaseSinkDiscontWait :: (MonadIO m, IsAudioBaseSink o) => o -> Word64 -> m ()
- data AudioBaseSinkDriftTolerancePropertyInfo
- audioBaseSinkDriftTolerance :: AttrLabelProxy "driftTolerance"
- constructAudioBaseSinkDriftTolerance :: IsAudioBaseSink o => Int64 -> IO (GValueConstruct o)
- getAudioBaseSinkDriftTolerance :: (MonadIO m, IsAudioBaseSink o) => o -> m Int64
- setAudioBaseSinkDriftTolerance :: (MonadIO m, IsAudioBaseSink o) => o -> Int64 -> m ()
- data AudioBaseSinkLatencyTimePropertyInfo
- audioBaseSinkLatencyTime :: AttrLabelProxy "latencyTime"
- constructAudioBaseSinkLatencyTime :: IsAudioBaseSink o => Int64 -> IO (GValueConstruct o)
- getAudioBaseSinkLatencyTime :: (MonadIO m, IsAudioBaseSink o) => o -> m Int64
- setAudioBaseSinkLatencyTime :: (MonadIO m, IsAudioBaseSink o) => o -> Int64 -> m ()
- data AudioBaseSinkProvideClockPropertyInfo
- audioBaseSinkProvideClock :: AttrLabelProxy "provideClock"
- constructAudioBaseSinkProvideClock :: IsAudioBaseSink o => Bool -> IO (GValueConstruct o)
- getAudioBaseSinkProvideClock :: (MonadIO m, IsAudioBaseSink o) => o -> m Bool
- setAudioBaseSinkProvideClock :: (MonadIO m, IsAudioBaseSink o) => o -> Bool -> m ()
- data AudioBaseSinkSlaveMethodPropertyInfo
- audioBaseSinkSlaveMethod :: AttrLabelProxy "slaveMethod"
- constructAudioBaseSinkSlaveMethod :: IsAudioBaseSink o => AudioBaseSinkSlaveMethod -> IO (GValueConstruct o)
- getAudioBaseSinkSlaveMethod :: (MonadIO m, IsAudioBaseSink o) => o -> m AudioBaseSinkSlaveMethod
- setAudioBaseSinkSlaveMethod :: (MonadIO m, IsAudioBaseSink o) => o -> AudioBaseSinkSlaveMethod -> m ()
Exported types
newtype AudioBaseSink Source #
GObject AudioBaseSink Source # | |
IsObject AudioBaseSink Source # | |
IsElement AudioBaseSink Source # | |
IsObject AudioBaseSink Source # | |
IsBaseSink AudioBaseSink Source # | |
IsAudioBaseSink AudioBaseSink Source # | |
((~) * info (ResolveAudioBaseSinkMethod t AudioBaseSink), MethodInfo * info AudioBaseSink p) => IsLabel t (AudioBaseSink -> p) Source # | |
((~) * info (ResolveAudioBaseSinkMethod t AudioBaseSink), MethodInfo * info AudioBaseSink p) => IsLabelProxy t (AudioBaseSink -> p) Source # | |
HasAttributeList * AudioBaseSink Source # | |
type AttributeList AudioBaseSink Source # | |
type SignalList AudioBaseSink Source # | |
class GObject o => IsAudioBaseSink o Source #
toAudioBaseSink :: IsAudioBaseSink o => o -> IO AudioBaseSink Source #
Methods
createRingbuffer
data AudioBaseSinkCreateRingbufferMethodInfo Source #
((~) * signature (m AudioRingBuffer), MonadIO m, IsAudioBaseSink a) => MethodInfo * AudioBaseSinkCreateRingbufferMethodInfo a signature Source # | |
audioBaseSinkCreateRingbuffer Source #
:: (HasCallStack, MonadIO m, IsAudioBaseSink a) | |
=> a |
|
-> m AudioRingBuffer | Returns: The new ringbuffer of |
Create and return the AudioRingBuffer
for sink
. This function will
call the ::create_ringbuffer vmethod and will set sink
as the parent of
the returned buffer (see objectSetParent
).
getAlignmentThreshold
data AudioBaseSinkGetAlignmentThresholdMethodInfo Source #
((~) * signature (m Word64), MonadIO m, IsAudioBaseSink a) => MethodInfo * AudioBaseSinkGetAlignmentThresholdMethodInfo a signature Source # | |
audioBaseSinkGetAlignmentThreshold Source #
:: (HasCallStack, MonadIO m, IsAudioBaseSink a) | |
=> a |
|
-> m Word64 | Returns: The current alignment threshold used by |
Get the current alignment threshold, in nanoseconds, used by sink
.
getDiscontWait
data AudioBaseSinkGetDiscontWaitMethodInfo Source #
((~) * signature (m Word64), MonadIO m, IsAudioBaseSink a) => MethodInfo * AudioBaseSinkGetDiscontWaitMethodInfo a signature Source # | |
audioBaseSinkGetDiscontWait Source #
:: (HasCallStack, MonadIO m, IsAudioBaseSink a) | |
=> a |
|
-> m Word64 | Returns: The current discont wait used by |
Get the current discont wait, in nanoseconds, used by sink
.
getDriftTolerance
data AudioBaseSinkGetDriftToleranceMethodInfo Source #
((~) * signature (m Int64), MonadIO m, IsAudioBaseSink a) => MethodInfo * AudioBaseSinkGetDriftToleranceMethodInfo a signature Source # | |
audioBaseSinkGetDriftTolerance Source #
:: (HasCallStack, MonadIO m, IsAudioBaseSink a) | |
=> a |
|
-> m Int64 | Returns: The current drift tolerance used by |
Get the current drift tolerance, in microseconds, used by sink
.
getProvideClock
data AudioBaseSinkGetProvideClockMethodInfo Source #
((~) * signature (m Bool), MonadIO m, IsAudioBaseSink a) => MethodInfo * AudioBaseSinkGetProvideClockMethodInfo a signature Source # | |
audioBaseSinkGetProvideClock Source #
:: (HasCallStack, MonadIO m, IsAudioBaseSink a) | |
=> a |
|
-> m Bool | Returns: |
Queries whether sink
will provide a clock or not. See also
gst_audio_base_sink_set_provide_clock.
getSlaveMethod
data AudioBaseSinkGetSlaveMethodMethodInfo Source #
((~) * signature (m AudioBaseSinkSlaveMethod), MonadIO m, IsAudioBaseSink a) => MethodInfo * AudioBaseSinkGetSlaveMethodMethodInfo a signature Source # | |
audioBaseSinkGetSlaveMethod Source #
:: (HasCallStack, MonadIO m, IsAudioBaseSink a) | |
=> a |
|
-> m AudioBaseSinkSlaveMethod | Returns: The current slave method used by |
Get the current slave method used by sink
.
reportDeviceFailure
data AudioBaseSinkReportDeviceFailureMethodInfo Source #
((~) * signature (m ()), MonadIO m, IsAudioBaseSink a) => MethodInfo * AudioBaseSinkReportDeviceFailureMethodInfo a signature Source # | |
audioBaseSinkReportDeviceFailure Source #
:: (HasCallStack, MonadIO m, IsAudioBaseSink a) | |
=> a |
|
-> m () |
Informs this base class that the audio output device has failed for some reason, causing a discontinuity (for example, because the device recovered from the error, but lost all contents of its ring buffer). This function is typically called by derived classes, and is useful for the custom slave method.
Since: 1.6
setAlignmentThreshold
data AudioBaseSinkSetAlignmentThresholdMethodInfo Source #
((~) * signature (Word64 -> m ()), MonadIO m, IsAudioBaseSink a) => MethodInfo * AudioBaseSinkSetAlignmentThresholdMethodInfo a signature Source # | |
audioBaseSinkSetAlignmentThreshold Source #
:: (HasCallStack, MonadIO m, IsAudioBaseSink a) | |
=> a |
|
-> Word64 |
|
-> m () |
Controls the sink's alignment threshold.
setCustomSlavingCallback
data AudioBaseSinkSetCustomSlavingCallbackMethodInfo Source #
((~) * signature (AudioBaseSinkCustomSlavingCallback -> m ()), MonadIO m, IsAudioBaseSink a) => MethodInfo * AudioBaseSinkSetCustomSlavingCallbackMethodInfo a signature Source # | |
audioBaseSinkSetCustomSlavingCallback Source #
:: (HasCallStack, MonadIO m, IsAudioBaseSink a) | |
=> a |
|
-> AudioBaseSinkCustomSlavingCallback |
|
-> m () |
Sets the custom slaving callback. This callback will be invoked if the slave-method property is set to GST_AUDIO_BASE_SINK_SLAVE_CUSTOM and the audio sink receives and plays samples.
Setting the callback to NULL causes the sink to behave as if the GST_AUDIO_BASE_SINK_SLAVE_NONE method were used.
Since: 1.6
setDiscontWait
data AudioBaseSinkSetDiscontWaitMethodInfo Source #
((~) * signature (Word64 -> m ()), MonadIO m, IsAudioBaseSink a) => MethodInfo * AudioBaseSinkSetDiscontWaitMethodInfo a signature Source # | |
audioBaseSinkSetDiscontWait Source #
:: (HasCallStack, MonadIO m, IsAudioBaseSink a) | |
=> a |
|
-> Word64 |
|
-> m () |
Controls how long the sink will wait before creating a discontinuity.
setDriftTolerance
data AudioBaseSinkSetDriftToleranceMethodInfo Source #
((~) * signature (Int64 -> m ()), MonadIO m, IsAudioBaseSink a) => MethodInfo * AudioBaseSinkSetDriftToleranceMethodInfo a signature Source # | |
audioBaseSinkSetDriftTolerance Source #
:: (HasCallStack, MonadIO m, IsAudioBaseSink a) | |
=> a |
|
-> Int64 |
|
-> m () |
Controls the sink's drift tolerance.
setProvideClock
data AudioBaseSinkSetProvideClockMethodInfo Source #
((~) * signature (Bool -> m ()), MonadIO m, IsAudioBaseSink a) => MethodInfo * AudioBaseSinkSetProvideClockMethodInfo a signature Source # | |
audioBaseSinkSetProvideClock Source #
:: (HasCallStack, MonadIO m, IsAudioBaseSink a) | |
=> a |
|
-> Bool |
|
-> m () |
Controls whether sink
will provide a clock or not. If provide
is True
,
elementProvideClock
will return a clock that reflects the datarate
of sink
. If provide
is False
, elementProvideClock
will return
NULL.
setSlaveMethod
data AudioBaseSinkSetSlaveMethodMethodInfo Source #
((~) * signature (AudioBaseSinkSlaveMethod -> m ()), MonadIO m, IsAudioBaseSink a) => MethodInfo * AudioBaseSinkSetSlaveMethodMethodInfo a signature Source # | |
audioBaseSinkSetSlaveMethod Source #
:: (HasCallStack, MonadIO m, IsAudioBaseSink a) | |
=> a |
|
-> AudioBaseSinkSlaveMethod |
|
-> m () |
Controls how clock slaving will be performed in sink
.
Properties
alignmentThreshold
data AudioBaseSinkAlignmentThresholdPropertyInfo Source #
audioBaseSinkAlignmentThreshold :: AttrLabelProxy "alignmentThreshold" Source #
constructAudioBaseSinkAlignmentThreshold :: IsAudioBaseSink o => Word64 -> IO (GValueConstruct o) Source #
getAudioBaseSinkAlignmentThreshold :: (MonadIO m, IsAudioBaseSink o) => o -> m Word64 Source #
setAudioBaseSinkAlignmentThreshold :: (MonadIO m, IsAudioBaseSink o) => o -> Word64 -> m () Source #
bufferTime
data AudioBaseSinkBufferTimePropertyInfo Source #
audioBaseSinkBufferTime :: AttrLabelProxy "bufferTime" Source #
constructAudioBaseSinkBufferTime :: IsAudioBaseSink o => Int64 -> IO (GValueConstruct o) Source #
getAudioBaseSinkBufferTime :: (MonadIO m, IsAudioBaseSink o) => o -> m Int64 Source #
setAudioBaseSinkBufferTime :: (MonadIO m, IsAudioBaseSink o) => o -> Int64 -> m () Source #
canActivatePull
data AudioBaseSinkCanActivatePullPropertyInfo Source #
audioBaseSinkCanActivatePull :: AttrLabelProxy "canActivatePull" Source #
constructAudioBaseSinkCanActivatePull :: IsAudioBaseSink o => Bool -> IO (GValueConstruct o) Source #
getAudioBaseSinkCanActivatePull :: (MonadIO m, IsAudioBaseSink o) => o -> m Bool Source #
setAudioBaseSinkCanActivatePull :: (MonadIO m, IsAudioBaseSink o) => o -> Bool -> m () Source #
discontWait
data AudioBaseSinkDiscontWaitPropertyInfo Source #
audioBaseSinkDiscontWait :: AttrLabelProxy "discontWait" Source #
constructAudioBaseSinkDiscontWait :: IsAudioBaseSink o => Word64 -> IO (GValueConstruct o) Source #
getAudioBaseSinkDiscontWait :: (MonadIO m, IsAudioBaseSink o) => o -> m Word64 Source #
setAudioBaseSinkDiscontWait :: (MonadIO m, IsAudioBaseSink o) => o -> Word64 -> m () Source #
driftTolerance
data AudioBaseSinkDriftTolerancePropertyInfo Source #
audioBaseSinkDriftTolerance :: AttrLabelProxy "driftTolerance" Source #
constructAudioBaseSinkDriftTolerance :: IsAudioBaseSink o => Int64 -> IO (GValueConstruct o) Source #
getAudioBaseSinkDriftTolerance :: (MonadIO m, IsAudioBaseSink o) => o -> m Int64 Source #
setAudioBaseSinkDriftTolerance :: (MonadIO m, IsAudioBaseSink o) => o -> Int64 -> m () Source #
latencyTime
data AudioBaseSinkLatencyTimePropertyInfo Source #
audioBaseSinkLatencyTime :: AttrLabelProxy "latencyTime" Source #
constructAudioBaseSinkLatencyTime :: IsAudioBaseSink o => Int64 -> IO (GValueConstruct o) Source #
getAudioBaseSinkLatencyTime :: (MonadIO m, IsAudioBaseSink o) => o -> m Int64 Source #
setAudioBaseSinkLatencyTime :: (MonadIO m, IsAudioBaseSink o) => o -> Int64 -> m () Source #
provideClock
data AudioBaseSinkProvideClockPropertyInfo Source #
audioBaseSinkProvideClock :: AttrLabelProxy "provideClock" Source #
constructAudioBaseSinkProvideClock :: IsAudioBaseSink o => Bool -> IO (GValueConstruct o) Source #
getAudioBaseSinkProvideClock :: (MonadIO m, IsAudioBaseSink o) => o -> m Bool Source #
setAudioBaseSinkProvideClock :: (MonadIO m, IsAudioBaseSink o) => o -> Bool -> m () Source #
slaveMethod
data AudioBaseSinkSlaveMethodPropertyInfo Source #
audioBaseSinkSlaveMethod :: AttrLabelProxy "slaveMethod" Source #
constructAudioBaseSinkSlaveMethod :: IsAudioBaseSink o => AudioBaseSinkSlaveMethod -> IO (GValueConstruct o) Source #
getAudioBaseSinkSlaveMethod :: (MonadIO m, IsAudioBaseSink o) => o -> m AudioBaseSinkSlaveMethod Source #
setAudioBaseSinkSlaveMethod :: (MonadIO m, IsAudioBaseSink o) => o -> AudioBaseSinkSlaveMethod -> m () Source #