HARDT - The Ham Radio DSP Toolkit
Public Member Functions | List of all members
HLinearMixer< T > Class Template Reference

#include <hlinearmixer.h>

Inheritance diagram for HLinearMixer< T >:
Inheritance graph
[legend]
Collaboration diagram for HLinearMixer< T >:
Collaboration graph
[legend]

Public Member Functions

 HLinearMixer (HReader< T > *reader_1, HReader< T > *reader_2, size_t blocksize, HProbe< T > *probe=NULL)
 
 HLinearMixer (HReader< T > *reader, HWriter< T > *writer, size_t blocksize, HProbe< T > *probe=NULL)
 
 HLinearMixer (HWriter< T > *writer, size_t blocksize, HProbe< T > *probe=NULL)
 
 HLinearMixer (HReader< T > *reader, HWriterConsumer< T > *consumer, size_t blocksize, HProbe< T > *probe=NULL)
 
 HLinearMixer (HWriterConsumer< T > *consumer, size_t blocksize, HProbe< T > *probe=NULL)
 
 ~HLinearMixer ()
 
void Init (size_t blocksize)
 
int Read (T *dest, size_t blocksize)
 
int Write (T *src, size_t blocksize)
 
bool Start ()
 
bool Stop ()
 
void SetWriter (HWriter< T > *writer)
 
bool Command (HCommand *command)
 
- Public Member Functions inherited from HReader< T >
virtual ~HReader ()=default
 
HReader< T > * Reader ()
 
- Public Member Functions inherited from HObject
 HObject ()
 
- Public Member Functions inherited from HWriter< T >
virtual ~HWriter ()=default
 
HWriter< T > * Writer ()
 
- Public Member Functions inherited from HWriterConsumer< T >
HWriterConsumer< T > * Consumer ()
 

Detailed Description

template<class T>
class HLinearMixer< T >

Linear mixer that simply mixes (without level adjustment) two signals.

Constructor & Destructor Documentation

◆ HLinearMixer() [1/5]

template<class T >
HLinearMixer< T >::HLinearMixer ( HReader< T > *  reader_1,
HReader< T > *  reader_2,
size_t  blocksize,
HProbe< T > *  probe = NULL 
)

Construct a new HLinearMixer

◆ HLinearMixer() [2/5]

template<class T >
HLinearMixer< T >::HLinearMixer ( HReader< T > *  reader,
HWriter< T > *  writer,
size_t  blocksize,
HProbe< T > *  probe = NULL 
)

Construct a new HLinearMixer

◆ HLinearMixer() [3/5]

template<class T >
HLinearMixer< T >::HLinearMixer ( HWriter< T > *  writer,
size_t  blocksize,
HProbe< T > *  probe = NULL 
)

Construct a new HLinearMixer which mixes two inputs by multiplexing between alternating writes. Every 1st. write is kept in a buffer and with the 2nd. write, the sample values from the first and second write is subtracted. The result is then written to the next writer.

◆ HLinearMixer() [4/5]

template<class T >
HLinearMixer< T >::HLinearMixer ( HReader< T > *  reader,
HWriterConsumer< T > *  consumer,
size_t  blocksize,
HProbe< T > *  probe = NULL 
)

Construct a new HLinearMixer

◆ HLinearMixer() [5/5]

template<class T >
HLinearMixer< T >::HLinearMixer ( HWriterConsumer< T > *  consumer,
size_t  blocksize,
HProbe< T > *  probe = NULL 
)

Construct a new HLinearMixer

◆ ~HLinearMixer()

template<class T >
HLinearMixer< T >::~HLinearMixer

Default destructor

Member Function Documentation

◆ Command()

template<class T >
bool HLinearMixer< T >::Command ( HCommand command)
inlinevirtual

Execute or carry through a command

Implements HReader< T >.

◆ Init()

template<class T >
void HLinearMixer< T >::Init ( size_t  blocksize)

Common initialization

◆ Read()

template<class T >
int HLinearMixer< T >::Read ( T *  dest,
size_t  blocksize 
)
virtual

Read a block of samples

Implements HReader< T >.

◆ SetWriter()

template<class T >
void HLinearMixer< T >::SetWriter ( HWriter< T > *  writer)
inlinevirtual

Set writer

Implements HWriterConsumer< T >.

◆ Start()

template<class T >
bool HLinearMixer< T >::Start
virtual

Initialize before first read

Reimplemented from HReader< T >.

◆ Stop()

template<class T >
bool HLinearMixer< T >::Stop
virtual

Cleanup after last read

Reimplemented from HReader< T >.

◆ Write()

template<class T >
int HLinearMixer< T >::Write ( T *  src,
size_t  blocksize 
)
virtual

Write a block of samples

Implements HWriter< T >.


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