|
arduino-audio-tools
|
Resampling stream that is restricted to a fixed list of supported sample rates (e.g. the rates a DAC or codec chip can actually run at). On setAudioInfo() the closest supported rate is selected, the resampler is reconfigured to convert to it, and the corrected AudioInfo (with the supported sample rate) is forwarded to any subscribers/output. More...
#include <SupportedRatesStream.h>
Public Member Functions | |
| SupportedRatesStream ()=default | |
| SupportedRatesStream (AudioOutput &out) | |
| SupportedRatesStream (AudioStream &io) | |
| SupportedRatesStream (Print &out) | |
| Support for resampling via write. | |
| SupportedRatesStream (Stream &io) | |
| Support for resampling via write and read. | |
| 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 |
| int | available () override |
| int | availableForWrite () override |
| bool | begin () override |
| bool | begin (AudioInfo newInfo) |
| virtual void | clearNotifyAudioChange () |
| Deletes all change notify subscriptions. | |
| void | end () override |
| void | flush () override |
| 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 | setNotifyActive (bool flag) |
| Deactivate/Reactivate automatic AudioInfo updates: (default is active) | |
| void | setOutput (AudioOutput &out) |
| void | setOutput (Print &out) |
| Defines/Changes the output target. | |
| void | setStream (AudioStream &io) |
| void | setStream (Stream &io) |
| Defines/Changes the input & output. | |
| void | setSupportedSampleRates (std::vector< int > rates) |
| Defines the list of sample rates that the downstream consumer supports. | |
| void | setWriteBufferSize (int size) |
| std::vector< int > & | supportedSampleRates () |
| Provides the list of supported sample rates. | |
| 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 | |
| int | closestSampleRate (int rate) |
| Determines the supported sample rate closest to the requested rate. | |
| virtual int | not_supported (int out, const char *msg="") |
| void | notifyAudioChange (AudioInfo info) |
| void | refillReadBuffer () |
| Refill small read buffer (e.g. 8 bytes) to avoid single byte reads when calling read() | |
Protected Attributes | |
| int | _timeout = 10 |
| AudioInfo | info |
| bool | is_notify_active = true |
| bool | needs_resample = true |
| Vector< AudioInfoSupport * > | notify_vector |
| Stream * | p_source = nullptr |
| ResampleStream | resampler |
| std::vector< int > | supported_rates |
| RingBuffer< uint8_t > | tmp_in {0} |
| RingBuffer< uint8_t > | tmp_out {0} |
| int | write_buffer_size = MAX_SINGLE_CHARS |
Resampling stream that is restricted to a fixed list of supported sample rates (e.g. the rates a DAC or codec chip can actually run at). On setAudioInfo() the closest supported rate is selected, the resampler is reconfigured to convert to it, and the corrected AudioInfo (with the supported sample rate) is forwarded to any subscribers/output.
|
default |
|
inline |
Support for resampling via write.
|
inline |
Support for resampling via write. The audio information is copied from the io
|
inline |
Support for resampling via write and read.
|
inline |
Support for resampling via write and read. The audio information is copied from the io
|
inlinevirtualinherited |
Adds target to be notified about audio changes.
Reimplemented in CodecNOP, EncodedAudioOutput, EncodedAudioStream, AACDecoderFDK, DecoderBasic, CodecChain, MP3DecoderHelix, MP3DecoderMAD, OggContainerDecoder, RTSPClient< TcpClient, UdpSocket >, Pipeline, and Pipeline::ModifyingStreamAdapter.
|
inlineoverridevirtualinherited |
provides the actual input AudioInfo
Implements AudioInfoSupport.
Reimplemented in JupyterAudioT< T >, MozziStream, TimerCallbackAudioStream, EncodedAudioStream, PureDataStream, AdapterAudioOutputToAudioStream, GeneratedSoundStream< T >, GeneratedSoundStream< int16_t >, and InputMerge< T >.
|
inlineoverridevirtual |
provides the actual output AudioInfo: this is usually the same as audioInfo() unless we use a transforming stream
Reimplemented from AudioInfoSupport.
|
inlineoverridevirtual |
Reimplemented from BaseStream.
|
inlineoverridevirtual |
Reimplemented from BaseStream.
|
inlineoverridevirtual |
Reimplemented from BaseStream.
|
inline |
|
inlinevirtualinherited |
Deletes all change notify subscriptions.
Reimplemented in RTSPClient< TcpClient, UdpSocket >.
|
inlineprotected |
Determines the supported sample rate closest to the requested rate.
|
inlineoverridevirtual |
Reimplemented from BaseStream.
|
inlineoverridevirtual |
Reimplemented from BaseStream.
|
inlineinherited |
Checks if the automatic AudioInfo update is active.
|
inlineprotectedvirtualinherited |
|
inlineprotectedinherited |
|
inlinevirtualinherited |
|
inlineoverridevirtual |
Reimplemented from AudioStream.
|
inlinevirtualinherited |
Source to generate silence: just sets the buffer to 0.
|
inlineprotectedinherited |
Refill small read buffer (e.g. 8 bytes) to avoid single byte reads when calling read()
|
inlinevirtualinherited |
Removes a target in order not to be notified about audio changes.
Reimplemented in RTSPClient< TcpClient, UdpSocket >.
|
inlineoverridevirtual |
Defines the input AudioInfo.
Reimplemented from AudioStream.
|
inlineinherited |
Deactivate/Reactivate automatic AudioInfo updates: (default is active)
|
inline |
Defines/Changes the output target and registers for audio change notifications
|
inline |
Defines/Changes the output target.
|
inline |
Defines/Changes the input & output and registers for audio change notifications
|
inline |
Defines/Changes the input & output.
|
inline |
Defines the list of sample rates that the downstream consumer supports.
|
inlineinherited |
|
inline |
Provides the list of supported sample rates.
|
inlineoverridevirtual |
Reimplemented from AudioStream.
|
inlineoverridevirtualinherited |
Reimplemented in MemoryStream, AudioStreamWrapper, BufferedTaskStream, RingBufferStream, BufferedStream, and URLStream.
|
inlinevirtualinherited |
Writes len bytes of silence (=0).
|
protectedinherited |
|
protectedinherited |
|
protectedinherited |
|
protected |
|
protectedinherited |
|
protected |
|
protected |
|
protected |
|
protectedinherited |
|
protectedinherited |
|
protectedinherited |