HARDT - The Ham Radio DSP Toolkit
Public Member Functions | Protected Member Functions | List of all members
HConverter< Tin, Tout > Class Template Referenceabstract

#include <hconverter.h>

Inheritance diagram for HConverter< Tin, Tout >:
Inheritance graph
[legend]
Collaboration diagram for HConverter< Tin, Tout >:
Collaboration graph
[legend]

Public Member Functions

bool Start ()
 
bool Stop ()
 
 ~HConverter ()
 
int Read (Tout *dest, size_t blocksize)
 
int Write (Tin *src, size_t blocksize)
 
virtual int Convert (Tin *src, Tout *dest, size_t blocksize)=0
 
void SetWriter (HWriter< Tout > *writer)
 
bool Command (HCommand *command)
 
- Public Member Functions inherited from HReader< Tout >
virtual ~HReader ()=default
 
HReader< Tout > * Reader ()
 
- Public Member Functions inherited from HObject
 HObject ()
 
- Public Member Functions inherited from HWriter< Tin >
virtual ~HWriter ()=default
 
HWriter< Tin > * Writer ()
 
- Public Member Functions inherited from HWriterConsumer< Tout >
HWriterConsumer< Tout > * Consumer ()
 

Protected Member Functions

 HConverter (HReader< Tin > *reader, size_t blocksizeIn, size_t blocksizeOut, HProbe< Tout > *probe=nullptr)
 
 HConverter (HWriter< Tout > *writer, size_t blocksizeIn, size_t blocksizeOut, HProbe< Tout > *probe=nullptr)
 
 HConverter (HWriterConsumer< Tin > *consumer, size_t blocksizeIn, size_t blocksizeOut, HProbe< Tout > *probe=nullptr)
 

Detailed Description

template<class Tin, class Tout>
class HConverter< Tin, Tout >

Base class for Converters that convert one type to another.

This class can not be instantiated directly but must be inherited and the pure virtual function Convert() implemented.

Constructor & Destructor Documentation

◆ HConverter() [1/3]

template<class Tin , class Tout >
HConverter< Tin, Tout >::HConverter ( HReader< Tin > *  reader,
size_t  blocksizeIn,
size_t  blocksizeOut,
HProbe< Tout > *  probe = nullptr 
)
inlineprotected

Construct a new HConverter that reads from a reader

Parameters
readerUpstream reader
blocksizeInNumber of input samples
blocksizeOutNumber of output samples
probeProbe

◆ HConverter() [2/3]

template<class Tin , class Tout >
HConverter< Tin, Tout >::HConverter ( HWriter< Tout > *  writer,
size_t  blocksizeIn,
size_t  blocksizeOut,
HProbe< Tout > *  probe = nullptr 
)
inlineprotected

Construct a new HConverter that writes to a writer

Parameters
writerDownstream writer
blocksizeInNumber of input samples
blocksizeOutNumber of output samples
probeProbe

◆ HConverter() [3/3]

template<class Tin , class Tout >
HConverter< Tin, Tout >::HConverter ( HWriterConsumer< Tin > *  consumer,
size_t  blocksizeIn,
size_t  blocksizeOut,
HProbe< Tout > *  probe = nullptr 
)
inlineprotected

Construct a new HConverter that registers with an upstream writer

Parameters
consumerUpstream consumer
blocksizeInNumber of input samples
blocksizeOutNumber of output samples
probeProbe

◆ ~HConverter()

template<class Tin , class Tout >
HConverter< Tin, Tout >::~HConverter ( )
inline

Default destructor

Member Function Documentation

◆ Command()

template<class Tin , class Tout >
bool HConverter< Tin, Tout >::Command ( HCommand command)
inlinevirtual

Transport a command to the next/previous component in the chain

Implements HReader< Tout >.

◆ Convert()

template<class Tin , class Tout >
virtual int HConverter< Tin, Tout >::Convert ( Tin *  src,
Tout *  dest,
size_t  blocksize 
)
pure virtual

Convert a block of samples

◆ Read()

template<class Tin , class Tout >
int HConverter< Tin, Tout >::Read ( Tout *  dest,
size_t  blocksize 
)
inlinevirtual

Read a block of converted samples

Parameters
destDestination buffer
blocksizeNumber of samples to read
Returns
Number of samples read

Implements HReader< Tout >.

◆ SetWriter()

template<class Tin , class Tout >
void HConverter< Tin, Tout >::SetWriter ( HWriter< Tout > *  writer)
inlinevirtual

◆ Start()

template<class Tin , class Tout >
bool HConverter< Tin, Tout >::Start ( )
inlinevirtual

Initialize before first read or write

Reimplemented from HReader< Tout >.

◆ Stop()

template<class Tin , class Tout >
bool HConverter< Tin, Tout >::Stop ( )
inlinevirtual

Cleanup after last read or write

Reimplemented from HReader< Tout >.

◆ Write()

template<class Tin , class Tout >
int HConverter< Tin, Tout >::Write ( Tin *  src,
size_t  blocksize 
)
inlinevirtual

Write a block of samples to convert

Parameters
srcSource buffer
blocksizeNumber of input samples
Returns
Number of samples written

Implements HWriter< Tin >.


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