arduino-audio-tools
|
A more generic templated Converter which converts from a source type to a target type: You can use e.g. uint8_t, int8_t, int16_t, uint16_t, int24_t, uint32_t, int32_t, FloatAudio.AbstractMetaDat. This is quite handy because unsigned values and floating values are supported and you do not need to resort to use a Codec. More...
#include <AudioStreamsConverter.h>
Public Member Functions | |
NumberFormatConverterStreamT (AudioOutput &print) | |
NumberFormatConverterStreamT (AudioStream &stream) | |
NumberFormatConverterStreamT (float gain) | |
NumberFormatConverterStreamT (Print &print) | |
NumberFormatConverterStreamT (Stream &stream) | |
virtual void | addNotifyAudioChange (AudioInfoSupport &bi) |
Adds target to be notified about audio changes. | |
virtual AudioInfo | audioInfo () override |
provides the actual input AudioInfo | |
AudioInfo | audioInfoOut () override |
provides the actual output AudioInfo: this is usually the same as audioInfo() unless we use a transforming stream | |
virtual int | available () override |
virtual int | availableForWrite () override |
bool | begin () override |
virtual void | clearNotifyAudioChange () |
Deletes all change notify subscriptions. | |
void | end () override |
virtual void | flush () override |
float | getByteFactor () |
virtual Print * | getPrint () |
virtual Stream * | getStream () |
bool | isNotifyActive () |
Checks if the automatic AudioInfo update is active. | |
virtual | operator bool () |
size_t | readBytes (uint8_t *data, size_t len) override |
virtual size_t | readSilence (uint8_t *buffer, size_t length) |
Source to generate silence: just sets the buffer to 0. | |
virtual bool | removeNotifyAudioChange (AudioInfoSupport &bi) |
Removes a target in order not to be notified about audio changes. | |
void | setAudioInfo (AudioInfo newInfo) override |
Defines the input AudioInfo. | |
void | setBuffered (bool flag) |
void | setGain (float value) |
Defines the gain (only available when buffered is true) | |
void | setNotifyActive (bool flag) |
Deactivate/Reactivate automatic AudioInfo updates: (default is active) | |
virtual void | setOutput (AudioOutput &print) |
virtual void | setOutput (Print &print) override |
Defines/Changes the output target. | |
virtual void | setStream (AudioStream &stream) |
virtual void | setStream (Stream &stream) override |
Defines/Changes the input & output. | |
virtual TransformationReader< ReformatBaseStream > & | transformationReader () |
Provides access to the TransformationReader. | |
virtual size_t | write (const uint8_t *data, size_t len) override |
virtual size_t | write (uint8_t ch) override |
virtual void | writeSilence (size_t len) |
Writes len bytes of silence (=0). | |
Protected Member Functions | |
virtual int | not_supported (int out, const char *msg="") |
void | notifyAudioChange (AudioInfo info) |
void | refillReadBuffer () |
void | setupReader () |
Protected Attributes | |
int | _timeout = 10 |
SingleBuffer< uint8_t > | buffer {0} |
float | gain = 1.0f |
AudioInfo | info |
bool | is_buffered = true |
bool | is_notify_active = true |
Vector< AudioInfoSupport * > | notify_vector |
Print * | p_print = nullptr |
Stream * | p_stream = nullptr |
TransformationReader< ReformatBaseStream > | reader |
RingBuffer< uint8_t > | tmp_in {0} |
RingBuffer< uint8_t > | tmp_out {0} |
A more generic templated Converter which converts from a source type to a target type: You can use e.g. uint8_t, int8_t, int16_t, uint16_t, int24_t, uint32_t, int32_t, FloatAudio.AbstractMetaDat. This is quite handy because unsigned values and floating values are supported and you do not need to resort to use a Codec.
TFrom | specifies the source data type |
TTo | spesifies the target data type. |
|
inlinevirtualinherited |
Adds target to be notified about audio changes.
Reimplemented in CodecNOP, MP3DecoderMAD, EncodedAudioOutput, EncodedAudioStream, AACDecoderFDK, DecoderBasic, MP3DecoderHelix, OggContainerDecoder, Pipeline, and Pipeline::ModifyingStreamAdapter.
provides the actual input AudioInfo
Implements AudioInfoSupport.
Reimplemented in JupyterAudioT< T >, MozziStream, TimerCallbackAudioStream, PureDataStream, AdapterAudioOutputToAudioStream, GeneratedSoundStream< T >, and GeneratedSoundStream< int16_t >.
provides the actual output AudioInfo: this is usually the same as audioInfo() unless we use a transforming stream
Reimplemented from AudioInfoSupport.
Reimplemented from BaseStream.
Reimplemented from BaseStream.
Reimplemented from BaseStream.
|
inlineoverridevirtualinherited |
Reimplemented from BaseStream.
Reimplemented from Print.
Reimplemented in ResampleStream, BufferedTaskStream, and BufferedStream.
Implements ReformatBaseStream.
Reimplemented in A2DPStream, Pipeline, I2SStream, and MemoryStream.
Reimplemented from AudioStream.
Defines the input AudioInfo.
Reimplemented from AudioStream.
if set to true we do one big write, else we get a lot of single writes per sample
Defines/Changes the output target.
Implements ModifyingStream.
Reimplemented in EncodedAudioStream, and FormatConverterStream.
Defines/Changes the input & output.
Implements ModifyingStream.
Reimplemented in FormatConverterStream, and EncodedAudioStream.
Reimplemented from AudioStream.
Reimplemented in BufferedTaskStream, and BufferedStream.