HARDT - The Ham Radio DSP Toolkit
hardt
libhardt
include
hagc.h
1
#ifndef __HAGC_H
2
#define __HAGC_H
3
4
#include "hgain.h"
5
#include "hardt.h"
6
#include "hreader.h"
7
#include "hwriter.h"
8
#include "hwriterconsumer.h"
9
#include "hprobe.h"
10
14
template
<
class
T>
15
class
HAgc
:
public
HGain
<T>
16
{
17
private
:
18
19
T _level;
20
int
_average;
21
T *_averageBuffer;
22
int
_averagePtr;
23
float
_gain;
24
int
_hold;
25
int
_increment;
26
bool
_allowUnity;
27
bool
_enabled;
28
29
void
Init()
30
{
31
if
( _average < 1 )
32
{
33
throw
new
HInvalidArgumentException
(
"average count can not be less than 1"
);
34
}
35
_averageBuffer =
new
T[_average];
36
memset((
void
*) _averageBuffer, 0, _average *
sizeof
(T));
37
HLog(
"Allocated averaging buffer with %d bins"
, _average);
38
}
39
40
public
:
41
53
HAgc
(
HWriter<T>
* writer, T level,
int
average,
size_t
blocksize,
int
increment = 4,
bool
allowUnity =
false
,
HProbe<T>
* probe = NULL);
54
66
HAgc
(
HWriterConsumer<T>
* consumer, T level,
int
average,
size_t
blocksize,
int
increment = 1,
bool
allowUnity =
false
,
HProbe<T>
* probe = NULL);
67
79
HAgc
(
HReader<T>
* reader, T level,
int
average,
size_t
blocksize,
int
increment = 1,
bool
allowUnity =
false
,
HProbe<T>
* probe = NULL);
80
82
~HAgc
();
83
85
virtual
void
Filter
(T* src, T* dest,
size_t
blocksize);
86
88
void
SetLevel
(T level)
89
{
90
_level = level;
91
}
92
94
void
SetAverage
(
int
average)
95
{
96
_average = average;
97
}
98
100
void
SetEnabled
(
bool
enabled) {
101
_enabled = enabled;
102
}
103
105
void
SetGain
(
float
gain) {
106
_enabled =
false
;
107
HGain<T>::SetGain
(gain);
108
}
109
};
110
111
#endif
HAgc::SetLevel
void SetLevel(T level)
Definition:
hagc.h:88
HAgc
Definition:
hagc.h:15
HAgc::SetGain
void SetGain(float gain)
Definition:
hagc.h:105
HAgc::SetEnabled
void SetEnabled(bool enabled)
Definition:
hagc.h:100
HWriter
Definition:
hwriter.h:10
HAgc::HAgc
HAgc(HWriter< T > *writer, T level, int average, size_t blocksize, int increment=4, bool allowUnity=false, HProbe< T > *probe=NULL)
Definition:
hagc.cpp:10
HGain
Definition:
hgain.h:8
HReader
Definition:
hreader.h:24
HAgc::Filter
virtual void Filter(T *src, T *dest, size_t blocksize)
Definition:
hagc.cpp:62
HProbe
Definition:
hprobe.h:10
HAgc::SetAverage
void SetAverage(int average)
Definition:
hagc.h:94
HGain::SetGain
void SetGain(float gain)
Definition:
hgain.cpp:47
HAgc::~HAgc
~HAgc()
Definition:
hagc.cpp:55
HInvalidArgumentException
Definition:
hexceptions.h:179
HWriterConsumer
Definition:
hwriterconsumer.h:8
Generated by
1.8.17