22 #ifndef _AudioAmplifier_
23 #define _AudioAmplifier_
60 const char *GetClassName()
const {
return "AudioAmplifier"; }
63 std::vector<AudioInPort*> _inputs;
64 std::vector<AudioOutPort*> _outputs;
71 : _gainControl(
"Gain", this)
85 for (
unsigned i=0; i<_inputs.size(); i++)
87 result &=
Do( _inputs[i]->GetAudio(), _outputs[i]->GetAudio(), gain );
88 _inputs[i]->Consume();
89 _outputs[i]->Produce();
98 const TData * inb = in.GetBuffer().GetPtr();
99 TData * outb = out.GetBuffer().GetPtr();
100 TData gainDelta=(gain-_previousGain)/size;
101 TData rampedGain = _previousGain;
103 for (
int i=0;i<size;i++)
105 outb[i] = inb[i]*rampedGain;
106 rampedGain+=gainDelta;
119 double max_gain = _config.GetMaxGain();
120 double init_gain = _config.HasInitGain() ? _config.GetInitGain() : 1. ;
124 _previousGain = init_gain;
125 ResizePorts(_config.HasPortsNumber()?_config.GetPortsNumber():1);
129 void ResizePorts(
unsigned newSize);
137 #endif // _AudioAmplifier_