1
0
mirror of https://github.com/cookiengineer/audacity synced 2025-10-26 00:03:52 +02:00

Rewrite WaveTrack::GetEnvelopeValues, taking one less argument...

... In practice this argument was always 1 / rate so it was superfluous.

Also make the buffer size argument unsigned.
This commit is contained in:
Paul Licameli
2016-08-20 17:56:41 -04:00
parent 0c4c835b27
commit 5cf331ae8c
3 changed files with 21 additions and 23 deletions

View File

@@ -460,8 +460,7 @@ sampleCount Mixer::MixVariableRates(int *channelFlags, WaveTrackCache &cache,
track->GetEnvelopeValues(mEnvValues,
getLen,
(*pos - (getLen- 1)) / trackRate,
tstep);
(*pos - (getLen- 1)) / trackRate);
*pos -= getLen;
}
@@ -471,8 +470,7 @@ sampleCount Mixer::MixVariableRates(int *channelFlags, WaveTrackCache &cache,
track->GetEnvelopeValues(mEnvValues,
getLen,
(*pos) / trackRate,
tstep);
(*pos) / trackRate);
*pos += getLen;
}
@@ -584,10 +582,12 @@ sampleCount Mixer::MixSameRate(int *channelFlags, WaveTrackCache &cache,
if (slen > mMaxOut)
slen = mMaxOut;
wxASSERT(slen >= 0);
if (backwards) {
auto results = cache.Get(floatSample, *pos - (slen - 1), slen);
memcpy(mFloatBuffer, results, sizeof(float) * slen);
track->GetEnvelopeValues(mEnvValues, slen, t - (slen - 1) / mRate, 1.0 / mRate);
track->GetEnvelopeValues(mEnvValues, slen, t - (slen - 1) / mRate);
for(int i=0; i<slen; i++)
mFloatBuffer[i] *= mEnvValues[i]; // Track gain control will go here?
ReverseSamples((samplePtr)mFloatBuffer, floatSample, 0, slen);
@@ -597,7 +597,7 @@ sampleCount Mixer::MixSameRate(int *channelFlags, WaveTrackCache &cache,
else {
auto results = cache.Get(floatSample, *pos, slen);
memcpy(mFloatBuffer, results, sizeof(float) * slen);
track->GetEnvelopeValues(mEnvValues, slen, t, 1.0 / mRate);
track->GetEnvelopeValues(mEnvValues, slen, t);
for(int i=0; i<slen; i++)
mFloatBuffer[i] *= mEnvValues[i]; // Track gain control will go here?