libsdr  0.1.0
A simple SDR library
Public Member Functions | Protected Attributes | List of all members
sdr::Varicode Class Reference

Simple varicode (Huffman code) decoder node. More...

#include <psk31.hh>

Inheritance diagram for sdr::Varicode:
sdr::Sink< uint8_t > sdr::Source sdr::SinkBase

Public Member Functions

 Varicode ()
 Constructor. More...
 
virtual ~Varicode ()
 Destructor. More...
 
virtual void config (const Config &src_cfg)
 Configures the node. More...
 
virtual void process (const Buffer< uint8_t > &buffer, bool allow_overwrite)
 Converts the input bit stream to ASCII chars. More...
 
- Public Member Functions inherited from sdr::Sink< uint8_t >
 Sink ()
 Constructor. More...
 
virtual ~Sink ()
 Drestructor. More...
 
virtual void handleBuffer (const RawBuffer &buffer, bool allow_overwrite)
 Re-implemented from SinkBase. More...
 
- Public Member Functions inherited from sdr::SinkBase
 SinkBase ()
 Constructor. More...
 
virtual ~SinkBase ()
 Destructor. More...
 
- Public Member Functions inherited from sdr::Source
 Source ()
 Constructor. More...
 
virtual ~Source ()
 Destructor. More...
 
virtual void send (const RawBuffer &buffer, bool allow_overwrite=false)
 Sends the given buffer to all connected sinks. More...
 
void connect (SinkBase *sink, bool direct=false)
 Connect this source to a sink. More...
 
void disconnect (SinkBase *sink)
 Disconnect a sink again. More...
 
virtual void setConfig (const Config &config)
 Stores the configuration and propergates it if the configuration has been changed. More...
 
virtual double sampleRate () const
 Returns the configured sample rate or 0 otherwise. More...
 
virtual Config::Type type () const
 Returns the configured source type or Config::Type_UNDEFINED otherwise. More...
 
template<class T >
void addEOS (T *instance, void(T::*function)())
 Adds a callback to the end-of-stream signal of the source. More...
 

Protected Attributes

uint16_t _value
 The shift register of the last received bits. More...
 
Buffer< uint8_t > _buffer
 The output buffer. More...
 
std::map< uint16_t, char > _code_table
 The conversion table. More...
 
- Protected Attributes inherited from sdr::Source
Config _config
 Holds the source configuration, this can be updated by calling setConfig. More...
 
std::map< SinkBase *, bool > _sinks
 The connected sinks. More...
 
std::list< DelegateInterface * > _eos
 The connected EOS singal handlers. More...
 

Additional Inherited Members

- Protected Member Functions inherited from sdr::Source
void signalEOS ()
 Signals the EOS. More...
 
void propagateConfig (const Config &config)
 Propagates the given configuration to all connected sinks. More...
 

Detailed Description

Simple varicode (Huffman code) decoder node.

It consumes a bit-stream (uint8_t) and produces a uint8_t stream of ascii chars. Non-printable chars (except for new-line) are ignored. The output stream has no samplerate!

Constructor & Destructor Documentation

Varicode::Varicode ( )

Constructor.

Varicode::~Varicode ( )
virtual

Destructor.

Member Function Documentation

void Varicode::config ( const Config src_cfg)
virtual

Configures the node.

Implements sdr::SinkBase.

void Varicode::process ( const Buffer< uint8_t > &  buffer,
bool  allow_overwrite 
)
virtual

Converts the input bit stream to ASCII chars.

Implements sdr::Sink< uint8_t >.

Member Data Documentation

Buffer<uint8_t> sdr::Varicode::_buffer
protected

The output buffer.

std::map<uint16_t, char> sdr::Varicode::_code_table
protected

The conversion table.

uint16_t sdr::Varicode::_value
protected

The shift register of the last received bits.


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