arduino-audio-tools
|
A simple class which implements a automatic looping file. In order to support different file implementation the file class is a template parameter. The number of loops can be defined by calling setLoopCount(). You can also optinally limit the total looping file size by calling setSize();. More...
#include <FileLoop.h>
Public Member Functions | |
FileLoopT (FileType file, int count=-1, int rewindPos=-1) | |
int | available () override |
virtual int | availableForWrite () override |
bool | begin () |
void | end () |
FileType & | file () |
Returns the file. | |
virtual void | flush () override |
bool | isLoopActive () |
operator bool () | |
size_t | readBytes (uint8_t *data, size_t len) override |
void | setCallback (void(*cb)(FileLoopT &loop)) |
You can be notified about a rewind. | |
void | setFile (FileType file) |
defines the file that is used for looping | |
void | setLoopCount (int count) |
void | setSize (size_t len) |
optionally defines the requested playing size in bytes | |
void | setStartPos (int pos) |
defines the start position after the rewind. E.g. for wav files this should be 44 | |
void | setWriteBufferSize (int size) |
size_t | size () |
Returns the (requested) file size. | |
size_t | write (const uint8_t *data, size_t len) |
virtual size_t | write (uint8_t ch) override |
Protected Member Functions | |
void | refillReadBuffer () |
Protected Attributes | |
int | _timeout = 10 |
void(* | callback )(FileLoopT &loop) = nullptr |
FileType | current_file |
int | loop_count = -1 |
int | size_open = -1 |
int | start_pos = -1 |
RingBuffer< uint8_t > | tmp_in {0} |
RingBuffer< uint8_t > | tmp_out {0} |
int | total_size = -1 |
int | write_buffer_size = MAX_SINGLE_CHARS |
A simple class which implements a automatic looping file. In order to support different file implementation the file class is a template parameter. The number of loops can be defined by calling setLoopCount(). You can also optinally limit the total looping file size by calling setSize();.
|
inlineoverridevirtual |
Reimplemented from BaseStream.
|
inlineoverridevirtualinherited |
Reimplemented from Print.
Reimplemented in UDPStream, A2DPStream, AudioFFTBase, I2SCodecStream, Equalizer3Bands, Equalizer3BandsPerChannel, AbstractURLStream, URLStreamESP32, I2SStream, MeasuringStream, ProgressStream, FrequencyDetectorAutoCorrelation, FrequencyDetectorZeroCrossing, and VolumeStream.
|
inlinevirtual |
Reimplemented from BaseStream.
|
inlinevirtual |
Reimplemented from BaseStream.
|
inlineoverridevirtualinherited |
Reimplemented from Print.
Reimplemented in ResampleStream, BufferedTaskStream, and BufferedStream.
|
inline |
|
inlineoverridevirtual |
Implements BaseStream.
|
inline |
count values: 0) do not loop, 1) loop once, n) loop n times, -1) loop endless
|
inlinevirtual |
Implements BaseStream.
|
inlineoverridevirtualinherited |
Reimplemented in BufferedTaskStream, and BufferedStream.