summaryrefslogtreecommitdiff
path: root/src/lib/audio_buffers.cc
diff options
context:
space:
mode:
authorCarl Hetherington <cth@carlh.net>2014-01-06 16:43:52 +0000
committerCarl Hetherington <cth@carlh.net>2014-01-06 16:43:52 +0000
commit85783f27f40ff6b60bf8e3348dc566e89323e8d0 (patch)
tree0847e18cef0130dd026df38f721b13167ec21134 /src/lib/audio_buffers.cc
parentf9819a16d40403af3da08263ee6bb3b5a99d650f (diff)
Add gain variable to accumulate_channel.
Diffstat (limited to 'src/lib/audio_buffers.cc')
-rw-r--r--src/lib/audio_buffers.cc8
1 files changed, 5 insertions, 3 deletions
diff --git a/src/lib/audio_buffers.cc b/src/lib/audio_buffers.cc
index e80142b8e..a1c9b81ac 100644
--- a/src/lib/audio_buffers.cc
+++ b/src/lib/audio_buffers.cc
@@ -210,9 +210,11 @@ AudioBuffers::move (int from, int to, int frames)
}
}
-/** Add data from from `from', `from_channel' to our channel `to_channel' */
+/** Add data from from `from', `from_channel' to our channel `to_channel'.
+ * @param gain Linear gain to apply to the data before it is added.
+ */
void
-AudioBuffers::accumulate_channel (AudioBuffers const * from, int from_channel, int to_channel)
+AudioBuffers::accumulate_channel (AudioBuffers const * from, int from_channel, int to_channel, float gain)
{
int const N = frames ();
assert (from->frames() == N);
@@ -222,7 +224,7 @@ AudioBuffers::accumulate_channel (AudioBuffers const * from, int from_channel, i
float* d = _data[to_channel];
for (int i = 0; i < N; ++i) {
- *d++ += *s++;
+ *d++ += (*s++) * gain;
}
}