Copyright | Will Thompson Iñaki García Etxebarria and Jonas Platte |
---|---|
License | LGPL-2.1 |
Maintainer | Iñaki García Etxebarria (inaki@blueleaf.cc) |
Safe Haskell | None |
Language | Haskell2010 |
No description available in the introspection data.
Synopsis
- newtype AudioChannelMixer = AudioChannelMixer (ManagedPtr AudioChannelMixer)
- noAudioChannelMixer :: Maybe AudioChannelMixer
- audioChannelMixerFree :: (HasCallStack, MonadIO m) => AudioChannelMixer -> m ()
- audioChannelMixerIsPassthrough :: (HasCallStack, MonadIO m) => AudioChannelMixer -> m Bool
- audioChannelMixerSamples :: (HasCallStack, MonadIO m) => AudioChannelMixer -> Ptr () -> Ptr () -> Int32 -> m ()
Exported types
newtype AudioChannelMixer Source #
Memory-managed wrapper type.
Instances
WrappedPtr AudioChannelMixer Source # | |
noAudioChannelMixer :: Maybe AudioChannelMixer Source #
A convenience alias for Nothing
:: Maybe
AudioChannelMixer
.
Methods
free
audioChannelMixerFree Source #
:: (HasCallStack, MonadIO m) | |
=> AudioChannelMixer |
|
-> m () |
Free memory allocated by mix
.
isPassthrough
audioChannelMixerIsPassthrough Source #
:: (HasCallStack, MonadIO m) | |
=> AudioChannelMixer |
|
-> m Bool | Returns: |
Check if mix
is in passthrough.
Only N x N mix identity matrices are considered passthrough, this is determined by comparing the contents of the matrix with 0.0 and 1.0.
As this is floating point comparisons, if the values have been generated, they should be rounded up or down by explicit assignment of 0.0 or 1.0 to values within a user-defined epsilon, this code doesn't make assumptions as to what may constitute an appropriate epsilon.
samples
audioChannelMixerSamples Source #
:: (HasCallStack, MonadIO m) | |
=> AudioChannelMixer |
|
-> Ptr () |
|
-> Ptr () |
|
-> Int32 |
|
-> m () |
In case the samples are interleaved, in
and out
must point to an
array with a single element pointing to a block of interleaved samples.
If non-interleaved samples are used, in
and out
must point to an
array with pointers to memory blocks, one for each channel.
Perform channel mixing on inData
and write the result to outData
.
inData
and outData
need to be in format
and layout
.