arduino-audio-tools
|
Callback driven Audio Source (rx_tx_mode==RX_MODE) or Audio Sink (rx_tx_mode==TX_MODE). This class allows to to integrate external libraries in order to consume or generate a data stream which is based on a timer. More...
#include <AudioStreams.h>
Public Member Functions | |
virtual void | addNotifyAudioChange (AudioInfoSupport &bi) |
Adds target to be notified about audio changes. | |
AudioInfo | audioInfo () |
provides the actual input AudioInfo | |
TimerCallbackAudioStreamInfo | audioInfoExt () |
Provides the current audio information. | |
virtual AudioInfo | audioInfoOut () |
provides the actual output AudioInfo: this is usually the same as audioInfo() unless we use a transforming stream | |
int | available () override |
Returns the available bytes in the buffer: to be avoided. | |
virtual int | availableForWrite () override |
bool | begin () |
Restart the processing. | |
void | begin (TimerCallbackAudioStreamInfo config) |
void | clear () |
Clears all the data in the buffer. | |
virtual void | clearNotifyAudioChange () |
Deletes all change notify subscriptions. | |
uint16_t | currentSampleRate () |
Provides the effective sample rate. | |
TimerCallbackAudioStreamInfo | defaultConfig () |
Provides the default configuration. | |
void | end () |
Stops the processing. | |
void | flush () override |
empties the buffer | |
bool | isNotifyActive () |
Checks if the automatic AudioInfo update is active. | |
virtual | operator bool () |
int | peek () override |
peeks a byte - to be avoided | |
int | read () override |
reads a byte - to be avoided | |
size_t | readBytes (uint8_t *data, size_t len) override |
Use this method !! | |
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. | |
virtual void | setAudioInfo (AudioInfo info) |
updates the audio information | |
void | setNotifyActive (bool flag) |
Deactivate/Reactivate automatic AudioInfo updates: (default is active) | |
void | setOutput (Print &out) |
Defines/Changes the output target. | |
void | setStream (Print &out) |
void | setStream (Stream &io) |
Defines/Changes the input & output. | |
size_t | write (const uint8_t *data, size_t len) override |
Use this method: write an array. | |
size_t | write (uint8_t c) override |
writes a byte to the buffer | |
virtual void | writeSilence (size_t len) |
Writes len bytes of silence (=0). | |
Protected Member Functions | |
virtual void | measureSampleRate () |
calculates the effective sample rate | |
virtual int | not_supported (int out, const char *msg="") |
void | notifyAudioChange (AudioInfo info) |
virtual void | printSampleRate () |
log and update effective sample rate | |
virtual size_t | readExt (uint8_t *data, size_t len) override |
void | refill () |
void | refillReadBuffer () |
virtual size_t | writeExt (const uint8_t *data, size_t len) override |
Protected Attributes | |
int | _timeout = 10 |
bool | active = false |
RingBuffer< uint8_t > * | buffer = nullptr |
TimerCallbackAudioStreamInfo | cfg |
uint32_t | currentRateValue = 0 |
uint8_t * | frame = nullptr |
uint16_t(* | frameCallback )(uint8_t *data, uint16_t len) |
uint16_t | frameSize = 0 |
AudioInfo | info |
bool | is_notify_active = true |
unsigned long | lastTimestamp = 0u |
Vector< AudioInfoSupport * > | notify_vector |
Stream * | p_in = nullptr |
Print * | p_out = nullptr |
uint32_t | printCount = 0 |
uint32_t | time = 0 |
TimerAlarmRepeating * | timer = nullptr |
RingBuffer< uint8_t > | tmp_in {0} |
RingBuffer< uint8_t > | tmp_out {0} |
Friends | |
void | timerCallback (void *obj) |
Callback driven Audio Source (rx_tx_mode==RX_MODE) or Audio Sink (rx_tx_mode==TX_MODE). This class allows to to integrate external libraries in order to consume or generate a data stream which is based on a timer.
|
inlinevirtualinherited |
Adds target to be notified about audio changes.
Reimplemented in CodecNOP, MP3DecoderMAD, EncodedAudioOutput, EncodedAudioStream, AACDecoderFDK, DecoderBasic, MP3DecoderHelix, OggContainerDecoder, Pipeline, and Pipeline::ModifyingStreamAdapter.
|
inlinevirtual |
provides the actual input AudioInfo
Reimplemented from AudioStream.
provides the actual output AudioInfo: this is usually the same as audioInfo() unless we use a transforming stream
Reimplemented in PureDataStream, PWMAudioOutput, ChannelFormatConverterStreamT< T >, ChannelFormatConverterStream, NumberFormatConverterStreamT< TFrom, TTo >, NumberFormatConverterStream, FormatConverterStream, Pipeline, and ResampleStream.
|
inlineoverridevirtualinherited |
Returns the available bytes in the buffer: to be avoided.
Reimplemented from BaseStream.
Reimplemented from Print.
Reimplemented in UDPStream, A2DPStream, AudioFFTBase, I2SCodecStream, AbstractURLStream, URLStreamESP32, I2SStream, MeasuringStream, ProgressStream, and VolumeStream.
|
inlinevirtual |
Restart the processing.
Reimplemented from BaseStream.
|
inlinevirtual |
Stops the processing.
Reimplemented from BaseStream.
|
inlineoverridevirtualinherited |
empties the buffer
Reimplemented from BaseStream.
Reimplemented in A2DPStream, Pipeline, I2SStream, and MemoryStream.
Use this method !!
Reimplemented from AudioStream.
Reimplemented from BufferedStream.
updates the audio information
Reimplemented from AudioStream.
Defines/Changes the output target.
Implements ModifyingStream.
Defines/Changes the input & output.
Implements ModifyingStream.
Use this method: write an array.
Reimplemented from AudioStream.
writes a byte to the buffer
Reimplemented from BaseStream.
Reimplemented from BufferedStream.