|
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.
|
inline |
Reimplemented in PureDataStream, URLStreamBufferedT< T >, URLStreamBufferedT< ICYStream >, MultiOutput, AudioOutput, AudioStreamWrapper, ResampleStream, HDLCStream, URLStream, BufferedTaskStream, I2SStream, HexDumpOutput, MemoryStream, RingBufferStream, GeneratedSoundStream< T >, GeneratedSoundStream< int16_t >, BufferedStream, BaseStream, NamePrinter, and VFSFile.
|
inlineoverride |
|
inlineoverride |
Reimplemented in LMSEchoCancellationStream< T >, MDFEchoCancellationStream< Allocator >, HDLCStream, MozziStream, PureDataStream, AudioLoRa, URLStreamBufferedT< T >, URLStreamBufferedT< ICYStream >, AudioStreamWrapper, LoRaStream, EncodedAudioStream, FaustStream< DSP >, AudioFFTBase, AudioKitStream, AudioMP34DT05, I2SCodecStream, MiniAudioStream, PortAudioStream, StdioStream, TfLiteAudioStream, A2DPStream, AdaptiveResamplingStream, ESPNowStream, HammingFEC< bytecount, block_t >, HLSStreamT< URLStream >, ICYStreamT< T >, URLStream, BufferedTaskStream, URLStreamESP32, ReadioHeadStream, ReedSolomonFEC< bytecount, additional_bytes >, UDPStream, VBANStream, AnalogAudioArduino, AnalogAudioStream, AudioEffectStreamT< T >, Equalizer3Bands, Equalizer3BandsPerChannel, I2SStream, ReformatBaseStream, TimedStream, MemoryStream, RingBufferStream, GeneratedSoundStream< T >, GeneratedSoundStream< int16_t >, BufferedStream, ConverterStream< T >, MeasuringStream, ProgressStream, Throttle, InputMixer< T >, InputMerge< T >, CallbackStream, FilteredStream< T, TF >, FilteredStream< int16_t, int16_t >, VolumeMeter, AudioInputMonitor, ChannelFormatConverterStreamT< T >, ChannelFormatConverterStream, NumberFormatConverterStreamT< TFrom, TTo >, NumberFormatConverterStream, AudioStream, CatStream, NullStream, QueueStream< T >, QueueStream< uint8_t >, DynamicMemoryStream, FadeStream, FrequencyDetectorAutoCorrelation, FrequencyDetectorZeroCrossing, GoertzelStream, Pipeline, VolumeStream, FileLoopT< FileType >, FileLoopT< File >, VFSFile, AudioBLEClient, AudioBLEClient, AudioBLEServer, AudioBLEServer, EqualizerNBands< SampleT, AccT, NUM_TAPS, NUM_BANDS >, BaseStream, WM8960Stream, AnalogDriverESP32V1::IO16Bit, AnalogDriverESP32V2::IO16Bit, and HttpRequest.
Reimplemented in URLStream, LMSEchoCancellationStream< T >, MDFEchoCancellationStream< Allocator >, WakeWordDetector< T, N >, NamePrinter, AudioBLEServer, AudioWriterToAudioOutput, AudioESP32ULP, ESP3288AudioOutput, I2SCodecStream, MozziStream, PureDataStream, SPDIFOutput, AudioLoRa, I2SStream, AdapterPrintToAudioOutput, MetaDataOutput, AudioStreamWrapper, ConverterStream< T >, FileLoopT< FileType >, FileLoopT< File >, LoRaStream, EncodedAudioOutput, EncodedAudioStream, OggContainerOutput, OSCContainerEncoder::OSCOutput, FaustStream< DSP >, AudioFFTBase, AudioKitStream, FileOutput, FFTEffect, MiniAudioStream, PortAudioStream, R2ROutput, StdioStream, TfLiteAudioStream, VS1053Stream, A2DPStream, AdaptiveResamplingStream, AudioServerEx, AudioSyncWriter, ESPNowStream, HammingFEC< bytecount, block_t >, HDLCStream, HttpRequest, BufferedTaskStream, URLStreamESP32, ReadioHeadStream, ReedSolomonFEC< bytecount, additional_bytes >, RTSPOutput< Platform >, UDPStream, VBANStream, WebSocketOutput, AnalogAudioArduino, AnalogAudioStream, AudioEffectStreamT< T >, PitchShiftOutput< T, BufferT >, Equalizer3Bands, Equalizer3BandsPerChannel, AdapterAudioStreamToAudioOutput, AdapterAudioOutputToAudioStream, MultiOutput, TimedStream, ChannelsSelectOutput, MetaDataFilter, CsvOutput< T >, HexDumpOutput, OutputMixer< T >, MemoryOutput, ChannelSplitOutput, PWMAudioOutput, MemoryStream, RingBufferStream, BufferedStream, MeasuringStream, ProgressStream, Throttle, CallbackStream, FilteredStream< T, TF >, FilteredStream< int16_t, int16_t >, VolumeMeter, AudioInputMonitor, ChannelFormatConverterStreamT< T >, ChannelFormatConverterStream, NumberFormatConverterStreamT< TFrom, TTo >, NumberFormatConverterStream, FormatConverterStream, AudioStream, NullStream, QueueStream< T >, QueueStream< uint8_t >, DynamicMemoryStream, FadeStream, FrequencyDetectorAutoCorrelation, FrequencyDetectorZeroCrossing, GoertzelStream, Pipeline, Pipeline::ModifyingStreamAdapter, ResampleStream, ResampleStreamT< TInterpolator >, RTTTLOutput< T >, VolumeStream, AudioBLEClient, AudioBLEClient, AudioBLEServer, EqualizerNBands< SampleT, AccT, NUM_TAPS, NUM_BANDS >, AudioOutput, BaseStream, TfLiteAudioStreamBase, WM8960Stream, CatStream, AnalogDriverESP32V1::IO16Bit, AnalogDriverESP32V2::IO16Bit, and VFSFile.
|
protectedinherited |
|
protected |
|
protected |