22 #ifndef _AudioBufferAmplifier_
23 #define _AudioBufferAmplifier_
37 class AudioAmplifierConfig :
public ProcessingConfig
60 const char *GetClassName()
const {
return "AudioBufferAmplifier"; }
63 std::vector<InPort<Audio>*> _inputs;
64 std::vector<OutPort<Audio>*> _outputs;
71 : _gainControl(
"Gain", this)
85 for (
unsigned i=0; i<_inputs.size(); i++)
87 result &=
Do( _inputs[i]->GetData(), _outputs[i]->GetData(), gain );
88 _inputs[i]->Consume();
89 _outputs[i]->Produce();
99 const TData * inb = in.GetBuffer().GetPtr();
100 TData * outb = out.GetBuffer().GetPtr();
101 TData gainDelta=(gain-_previousGain)/size;
102 TData rampedGain = _previousGain;
104 for (
int i=0;i<size;i++)
106 outb[i] = inb[i]*rampedGain;
107 rampedGain+=gainDelta;
121 double max_gain = _config.GetMaxGain();
122 double init_gain = _config.HasInitGain() ? _config.GetInitGain() : 1. ;
126 _previousGain = init_gain;
127 ResizePorts(_config.HasPortsNumber()?_config.GetPortsNumber():1);
131 void ResizePorts(
unsigned newSize);
139 #endif // AudioBufferAmplifier