arduino-audio-tools
|
Wrapper class that can turn any Stream into a thread save implementation. This is done by adding a Mutex to the Stream. The read and write operations are buffered and the access to the stream is protected by the Mutex. More...
#include <SynchronizedStream.h>
Public Member Functions | |
SynchronizedStream (Stream &stream, MutexBase &mutex) | |
int | available () override |
int | availableForWrite () override |
virtual void | flush () |
operator bool () | |
int | peek () override |
int | read () override |
virtual size_t | readBytes (uint8_t *data, size_t len) |
void | setBufferSize (int size) |
Defines the size of the internal buffers. | |
virtual size_t | write (const uint8_t *data, size_t len) |
size_t | write (uint8_t data) override |
Protected Attributes | |
int | _timeout = 10 |
MutexBase * | p_mutex = nullptr |
Stream * | p_stream = nullptr |
SingleBuffer< uint8_t > | read_buffer |
SingleBuffer< uint8_t > | write_buffer |
Wrapper class that can turn any Stream into a thread save implementation. This is done by adding a Mutex to the Stream. The read and write operations are buffered and the access to the stream is protected by the Mutex.
|
inlineoverridevirtual |
Reimplemented from Stream.
|
inlineoverridevirtual |
Reimplemented from Print.
|
inlinevirtualinherited |
Reimplemented in ResampleStream, HDLCStream, BufferedTaskStream, BufferedStream, and NamePrinter.
|
inlinevirtualinherited |
Reimplemented in HDLCStream, MozziStream, FaustStream< DSP >, AudioFFTBase, AudioKitStream, I2SCodecStream, TfLiteAudioStream, A2DPStream, AdaptiveResamplingStream, ESPNowStream, HLSStreamT< URLStream >, ICYStreamT< T >, BufferedTaskStream, UDPStream, AnalogAudioArduino, AudioEffectStreamT< T >, Equalizer3Bands, Equalizer3BandsPerChannel, I2SStream, TimedStream, GeneratedSoundStream< T >, GeneratedSoundStream< int16_t >, BufferedStream, MeasuringStream, ProgressStream, InputMixer< T >, InputMerge< T >, AudioInputMonitor, FrequencyDetectorAutoCorrelation, FrequencyDetectorZeroCrossing, GoertzelStream, VolumeStream, and AnalogDriverESP32V2::IO16Bit.
|
inlinevirtualinherited |
Reimplemented in I2SCodecStream, MozziStream, SPDIFOutput, I2SStream, MetaDataOutput, EncodedAudioOutput, OggContainerOutput, FaustStream< DSP >, AudioFFTBase, TfLiteAudioStream, VS1053Stream, A2DPStream, AdaptiveResamplingStream, AudioServerEx, ESPNowStream, HDLCStream, HttpRequest, BufferedTaskStream, RTSPOutput< Platform >, UDPStream, WebSocketOutput, AnalogAudioStream, AudioEffectStreamT< T >, PitchShiftOutput< T, BufferT >, Equalizer3Bands, Equalizer3BandsPerChannel, TimedStream, MetaDataFilter, CsvOutput< T >, OutputMixer< T >, BufferedStream, MeasuringStream, ProgressStream, AudioInputMonitor, FrequencyDetectorAutoCorrelation, FrequencyDetectorZeroCrossing, GoertzelStream, ResampleStreamT< TInterpolator >, VolumeStream, TfLiteAudioStreamBase, CatStream, and AnalogDriverESP32V2::IO16Bit.