arduino-audio-tools
|
Class which filters out ID3v1 and ID3v2 Metadata and provides only the audio data to the decoder. More...
#include <MetaDataFilter.h>
Classes | |
struct | ID3v2 |
ID3 verion 2 TAG Header (10 bytes) More... | |
struct | Range |
Metadata range. More... | |
Public Member Functions | |
MetaDataFilter ()=default | |
Default Constructor. | |
MetaDataFilter (AudioWriter &out) | |
Constructor which assigns the decoder. | |
MetaDataFilter (Print &out) | |
Constructor which assigns the decoder. | |
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 | |
virtual int | availableForWrite () override |
bool | begin () override |
(Re)starts the processing | |
virtual bool | begin (AudioInfo info) |
virtual void | clearNotifyAudioChange () |
Deletes all change notify subscriptions. | |
void | end () override |
virtual void | flush () |
virtual bool | isDeletable () |
If true we need to release the related memory in the destructor. | |
bool | isNotifyActive () |
Checks if the automatic AudioInfo update is active. | |
virtual | operator bool () |
virtual bool | removeNotifyAudioChange (AudioInfoSupport &bi) |
Removes a target in order not to be notified about audio changes. | |
virtual void | setAudioInfo (AudioInfo newInfo) override |
Defines the input AudioInfo. | |
void | setNotifyActive (bool flag) |
Deactivate/Reactivate automatic AudioInfo updates: (default is active) | |
void | setOutput (AudioWriter &out) |
Defines the decoder to which we write the data. | |
void | setOutput (Print &out) |
Defines the decoder to which we write the data. | |
size_t | write (const uint8_t *data, size_t len) override |
Writes the data to the decoder. | |
virtual size_t | write (uint8_t ch) override |
virtual void | writeSilence (size_t len) |
Protected Types | |
enum | MetaType { TAG , TAG_PLUS , ID3 } |
Protected Member Functions | |
uint32_t | calcSizeID3v2 (uint8_t chars[4]) |
bool | find (const char *str, size_t len, int &pos, MetaType &type) |
find the tag position in the string; | |
bool | findTag (const uint8_t *data, size_t len, int &pos_tag, int &meta_len) |
determines if the data conatins a ID3v1 or ID3v2 tag | |
void | notifyAudioChange (AudioInfo info) |
Protected Attributes | |
int | _timeout = 10 |
AudioInfo | cfg |
int | current_pos = 0 |
bool | is_active = false |
bool | is_notify_active = true |
struct audio_tools::MetaDataFilter::Range | metadata_range |
Vector< AudioInfoSupport * > | notify_vector |
Print * | p_out = nullptr |
AudioWriter * | p_writer = nullptr |
int | start = 0 |
struct audio_tools::MetaDataFilter::ID3v2 | tagv2 |
SingleBuffer< uint8_t > | tmp {MAX_SINGLE_CHARS} |
int | tmpPos = 0 |
Class which filters out ID3v1 and ID3v2 Metadata and provides only the audio data to the decoder.
|
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 AdapterPrintToAudioOutput, and AdapterAudioStreamToAudioOutput.
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.
Reimplemented from Print.
Reimplemented in RTSPOutput.
|
inlineoverridevirtual |
(Re)starts the processing
Reimplemented from AudioOutput.
Reimplemented in AudioESP32ULP, CsvOutput< T >, and EncodedAudioOutput.
|
inlineoverridevirtual |
Reimplemented from AudioOutput.
If true we need to release the related memory in the destructor.
Reimplemented in AdapterPrintToAudioOutput, and AdapterAudioStreamToAudioOutput.
Reimplemented in EncodedAudioOutput, and RTSPOutput.
Defines the input AudioInfo.
Implements AudioInfoSupport.
Reimplemented in ChannelsSelectOutput, AdapterPrintToAudioOutput, MultiOutput, AdapterAudioStreamToAudioOutput, CsvOutput< T >, PWMAudioOutput, and EncodedAudioOutput.
Writes the data to the decoder.
Implements AudioOutput.
Reimplemented in OversamplingDAC.
Writes n 0 values (= silence)
len |