arduino-audio-tools
|
Class which measures the thruput. More...
#include <AudioStreams.h>
Public Member Functions | |
MeasuringStream (int count=10, Print *logOut=nullptr) | |
MeasuringStream (Print &print, int count=10, Print *logOut=nullptr) | |
MeasuringStream (Stream &stream, int count=10, Print *logOut=nullptr) | |
virtual void | addNotifyAudioChange (AudioInfoSupport &bi) |
Adds target to be notified about audio changes. | |
virtual AudioInfo | audioInfo () override |
provides the actual input AudioInfo | |
virtual AudioInfo | audioInfoOut () |
provides the actual output AudioInfo: this is usually the same as audioInfo() unless we use a transforming stream | |
int | available () override |
virtual int | availableForWrite () override |
Provides the nubmer of bytes we can write. | |
bool | begin () |
bool | begin (AudioInfo info) |
int | bytesPerSecond () |
Returns the actual thrughput in bytes per second. | |
uint32_t | bytesSinceBegin () |
Provides the total processed bytes since the last call of begin() | |
virtual void | clearNotifyAudioChange () |
Deletes all change notify subscriptions. | |
virtual void | end () |
uint32_t | estimatedOpenTimeFor (uint32_t totalBytes) |
Provides the estimated time from now to the end in ms. | |
uint32_t | estimatedTotalTimeFor (uint32_t totalBytes) |
Provides the estimated runtime in milliseconds for the indicated total. | |
virtual 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 |
Provides the data from all streams mixed together. | |
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 info) |
Defines the input AudioInfo. | |
void | setFrameSize (int size) |
Trigger reporting in frames (=samples) per second. | |
void | setName (const char *name) |
void | setNotifyActive (bool flag) |
Deactivate/Reactivate automatic AudioInfo updates: (default is active) | |
void | setOutput (Print &out) override |
Defines/Changes the output target. | |
bool | setProcessedBytes (uint32_t pos) |
Alternative update method: e.g report actual file positon: returns true if the file position was increased. | |
void | setReportBytes (bool flag) |
Report in bytes instead of samples. | |
void | setStream (Stream &io) override |
Defines/Changes the input & output. | |
uint32_t | startTime () |
Provides the time when the last measurement was started. | |
uint32_t | timeSinceBegin () |
Provides the time in ms since the last call of begin() | |
virtual size_t | write (const uint8_t *data, size_t len) override |
Writes raw PCM audio data, which will be the input for the volume control. | |
virtual size_t | write (uint8_t ch) override |
virtual void | writeSilence (size_t len) |
Writes len bytes of silence (=0). | |
Protected Member Functions | |
size_t | measure (size_t len) |
virtual int | not_supported (int out, const char *msg="") |
void | notifyAudioChange (AudioInfo info) |
void | printResult () |
void | refillReadBuffer () |
Protected Attributes | |
int | _timeout = 10 |
int | bytes_per_second = 0 |
int | count =0 |
int | frame_size = 0 |
AudioInfo | info |
bool | is_notify_active = true |
int | max_count =0 |
uint32_t | ms_at_begin = 0 |
const char * | name = "" |
Vector< AudioInfoSupport * > | notify_vector |
NullStream | null |
Print * | p_logout =nullptr |
Print * | p_print =nullptr |
Stream * | p_stream =nullptr |
bool | report_bytes = false |
uint32_t | start_time |
RingBuffer< uint8_t > | tmp_in {0} |
RingBuffer< uint8_t > | tmp_out {0} |
int | total_bytes = 0 |
uint32_t | total_bytes_since_begin = 0 |
Class which measures the thruput.
|
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 in PureDataStream, PWMAudioOutput, ChannelFormatConverterStreamT< T >, ChannelFormatConverterStream, NumberFormatConverterStreamT< TFrom, TTo >, NumberFormatConverterStream, FormatConverterStream, Pipeline, and ResampleStream.
|
inlineoverridevirtual |
Reimplemented from BaseStream.
Provides the nubmer of bytes we can write.
Reimplemented from BaseStream.
|
inlinevirtual |
Reimplemented from BaseStream.
Reimplemented in FaustStream< DSP >, I2SCodecStream, VS1053Stream, WM8960Stream, ESPNowStream, I2SStream, TimerCallbackAudioStream, QueueStream< T >, QueueStream< uint8_t >, AudioKitStream, AnalogAudioStream, HttpRequest, ICYStream, GeneratedSoundStream< T >, GeneratedSoundStream< int16_t >, InputMixer< T >, InputMerge< T >, and Pipeline.
Reimplemented from Print.
Reimplemented in ResampleStream, ICYStreamBuffered, BufferedTaskStream, and BufferedStream.
Reimplemented in A2DPStream, Pipeline, I2SStream, and MemoryStream.
Provides the data from all streams mixed together.
Reimplemented from AudioStream.
Defines the input AudioInfo.
Reimplemented from AudioStream.
Defines/Changes the output target.
Implements ModifyingStream.
Defines/Changes the input & output.
Implements ModifyingStream.
Writes raw PCM audio data, which will be the input for the volume control.
Reimplemented from AudioStream.
Reimplemented in BufferedTaskStream, and BufferedStream.