|
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 >, RTTTLOutput< T >, VolumeStream, TfLiteAudioStreamBase, CatStream, and AnalogDriverESP32V2::IO16Bit.