diff options
| author | Carl Hetherington <cth@carlh.net> | 2012-11-14 20:04:15 +0000 |
|---|---|---|
| committer | Carl Hetherington <cth@carlh.net> | 2012-11-14 20:04:15 +0000 |
| commit | 05c37b9bb09f7bfa4c2ec8ea6b3fa4a83d0fec20 (patch) | |
| tree | fa7a3e408c2eb66b070864694b6af7e0787e508f /src/lib/gain.cc | |
| parent | 5161626c3c28ba528511a8b211286a5e81a0f02a (diff) | |
Tests pass again.
Diffstat (limited to 'src/lib/gain.cc')
| -rw-r--r-- | src/lib/gain.cc | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/src/lib/gain.cc b/src/lib/gain.cc new file mode 100644 index 000000000..80d3b7c72 --- /dev/null +++ b/src/lib/gain.cc @@ -0,0 +1,26 @@ +#include "gain.h" + +using boost::shared_ptr; + +/** @param gain gain in dB */ +Gain::Gain (Log* log, float gain) + : AudioProcessor (log) + , _gain (gain) +{ + +} + +void +Gain::process_audio (shared_ptr<AudioBuffers> b) +{ + if (_gain != 0) { + float const linear_gain = pow (10, _gain / 20); + for (int i = 0; i < b->channels(); ++i) { + for (int j = 0; j < b->frames(); ++j) { + b->data(i)[j] *= linear_gain; + } + } + } + + Audio (b); +} |
