arduino-audio-tools
Loading...
Searching...
No Matches
Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
ReedSolomonFEC< bytecount, additional_bytes > Class Template Reference

Forward error correction using Reed-Solomon: write is encoding and readBytes does the decoding. More...

#include <ReedSolomonFEC.h>

Inheritance diagram for ReedSolomonFEC< bytecount, additional_bytes >:
BaseStream Stream Print

Public Member Functions

 ReedSolomonFEC (Print &print)
 
 ReedSolomonFEC (Stream &stream)
 
int available () override
 
int availableForWrite () override
 
virtual bool begin ()
 
virtual void end ()
 
virtual void flush () override
 
 operator bool ()
 
size_t readBytes (uint8_t *data, size_t len) override
 
void setWriteBufferSize (int size)
 
size_t write (const uint8_t *data, size_t len) override
 
virtual size_t write (uint8_t ch) override
 

Protected Member Functions

void refillReadBuffer ()
 

Protected Attributes

int _timeout = 10
 
SingleBuffer< uint8_tencoded {bytecount+additional_bytes}
 
Printp_print = nullptr
 
Streamp_stream = nullptr
 
SingleBuffer< uint8_traw {bytecount}
 
RS::ReedSolomon< bytecount, additional_bytesrs
 
RingBuffer< uint8_ttmp_in {0}
 
RingBuffer< uint8_ttmp_out {0}
 
int write_buffer_size = MAX_SINGLE_CHARS
 

Detailed Description

template<int bytecount, int additional_bytes>
class audio_tools::ReedSolomonFEC< bytecount, additional_bytes >

Forward error correction using Reed-Solomon: write is encoding and readBytes does the decoding.

Author
Phil Schatzmann

Constructor & Destructor Documentation

◆ ReedSolomonFEC() [1/2]

template<int bytecount, int additional_bytes>
ReedSolomonFEC ( Stream stream)
inline

◆ ReedSolomonFEC() [2/2]

template<int bytecount, int additional_bytes>
ReedSolomonFEC ( Print print)
inline

Member Function Documentation

◆ available()

template<int bytecount, int additional_bytes>
int available ( )
inlineoverridevirtual

Reimplemented from BaseStream.

◆ availableForWrite()

template<int bytecount, int additional_bytes>
int availableForWrite ( )
inlineoverridevirtual

Reimplemented from BaseStream.

◆ begin()

virtual bool begin ( )
inlinevirtualinherited

◆ end()

virtual void end ( )
inlinevirtualinherited

◆ flush()

virtual void flush ( )
inlineoverridevirtualinherited

◆ operator bool()

operator bool ( )
inlineinherited

◆ readBytes()

template<int bytecount, int additional_bytes>
size_t readBytes ( uint8_t data,
size_t  len 
)
inlineoverridevirtual

Implements BaseStream.

◆ refillReadBuffer()

void refillReadBuffer ( )
inlineprotectedinherited

◆ setWriteBufferSize()

void setWriteBufferSize ( int  size)
inlineinherited

◆ write() [1/2]

template<int bytecount, int additional_bytes>
size_t write ( const uint8_t data,
size_t  len 
)
inlineoverridevirtual

Implements BaseStream.

◆ write() [2/2]

virtual size_t write ( uint8_t  ch)
inlineoverridevirtualinherited

Member Data Documentation

◆ _timeout

int _timeout = 10
protectedinherited

◆ encoded

template<int bytecount, int additional_bytes>
SingleBuffer<uint8_t> encoded {bytecount+additional_bytes}
protected

◆ p_print

template<int bytecount, int additional_bytes>
Print* p_print = nullptr
protected

◆ p_stream

template<int bytecount, int additional_bytes>
Stream* p_stream = nullptr
protected

◆ raw

template<int bytecount, int additional_bytes>
SingleBuffer<uint8_t> raw {bytecount}
protected

◆ rs

template<int bytecount, int additional_bytes>
RS::ReedSolomon<bytecount, additional_bytes> rs
protected

◆ tmp_in

RingBuffer<uint8_t> tmp_in {0}
protectedinherited

◆ tmp_out

RingBuffer<uint8_t> tmp_out {0}
protectedinherited

◆ write_buffer_size

int write_buffer_size = MAX_SINGLE_CHARS
protectedinherited

The documentation for this class was generated from the following file: