More members of Mixer are const

This commit is contained in:
Paul Licameli 2020-11-30 18:25:01 -05:00
parent c9a9f0f906
commit 55ad1b43b8
3 changed files with 20 additions and 25 deletions

View File

@ -1953,8 +1953,11 @@ bool AudioIO::AllocateBuffers(
1,
std::max( mPlaybackSamplesToCopy, mPlaybackQueueMinimum ),
false,
mRate, floatSample, false);
mPlaybackMixers[i]->ApplyTrackGains(false);
mRate, floatSample,
false, // low quality dithering and resampling
nullptr,
false // don't apply track gains
);
}
}

View File

@ -240,9 +240,11 @@ Mixer::Mixer(const WaveTrackConstArray &inputTracks,
double startTime, double stopTime,
unsigned numOutChannels, size_t outBufferSize, bool outInterleaved,
double outRate, sampleFormat outFormat,
bool highQuality, MixerSpec *mixerSpec)
bool highQuality, MixerSpec *mixerSpec, bool applyTrackGains)
: mNumInputTracks { inputTracks.size() }
, mApplyTrackGains{ applyTrackGains }
// This is the number of samples grabbed in one go from a track
// and placed in a queue, when mixing with resampling.
// (Should we use WaveTrack::GetBestBlockSize instead?)
@ -252,6 +254,9 @@ Mixer::Mixer(const WaveTrackConstArray &inputTracks,
, mNumChannels{ numOutChannels }
, mGains{ mNumChannels }
, mFormat{ outFormat }
, mRate{ outRate }
, mMayThrow{ mayThrow }
{
mHighQuality = highQuality;
@ -270,10 +275,7 @@ Mixer::Mixer(const WaveTrackConstArray &inputTracks,
mTime = startTime;
mBufferSize = outBufferSize;
mInterleaved = outInterleaved;
mRate = outRate;
mSpeed = 1.0;
mFormat = outFormat;
mApplyTrackGains = true;
if( mixerSpec && mixerSpec->GetNumChannels() == mNumChannels &&
mixerSpec->GetNumTracks() == mNumInputTracks )
mMixerSpec = mixerSpec;
@ -351,11 +353,6 @@ void Mixer::MakeResamplers()
mResample[i] = std::make_unique<Resample>(mHighQuality, mMinFactor[i], mMaxFactor[i]);
}
void Mixer::ApplyTrackGains(bool apply)
{
mApplyTrackGains = apply;
}
void Mixer::Clear()
{
for (unsigned int c = 0; c < mNumBuffers; c++) {

View File

@ -106,16 +106,11 @@ class AUDACITY_DLL_API Mixer {
double startTime, double stopTime,
unsigned numOutChannels, size_t outBufferSize, bool outInterleaved,
double outRate, sampleFormat outFormat,
bool highQuality = true, MixerSpec *mixerSpec = NULL);
bool highQuality = true, MixerSpec *mixerSpec = nullptr,
bool applytTrackGains = true);
virtual ~ Mixer();
//
// Setup
//
void ApplyTrackGains(bool apply = true); // True by default
//
// Processing
//
@ -165,18 +160,18 @@ class AUDACITY_DLL_API Mixer {
private:
// Input
size_t mNumInputTracks;
const size_t mNumInputTracks;
ArrayOf<WaveTrackCache> mInputTrack;
bool mbVariableRates;
const BoundedEnvelope *mEnvelope;
ArrayOf<sampleCount> mSamplePos;
bool mApplyTrackGains;
const bool mApplyTrackGains;
Doubles mEnvValues;
double mT0; // Start time
double mT1; // Stop time (none if mT0==mT1)
double mTime; // Current time (renamed from mT to mTime for consistency with AudioIO - mT represented warped time there)
ArrayOf<std::unique_ptr<Resample>> mResample;
size_t mQueueMaxLen;
const size_t mQueueMaxLen;
FloatBuffers mSampleQueue;
ArrayOf<int> mQueueStart;
ArrayOf<int> mQueueLen;
@ -185,21 +180,21 @@ class AUDACITY_DLL_API Mixer {
// Output
size_t mMaxOut;
unsigned mNumChannels;
const unsigned mNumChannels;
Floats mGains;
unsigned mNumBuffers;
size_t mBufferSize;
size_t mInterleavedBufferSize;
sampleFormat mFormat;
const sampleFormat mFormat;
bool mInterleaved;
ArrayOf<SampleBuffer> mBuffer, mTemp;
Floats mFloatBuffer;
double mRate;
const double mRate;
double mSpeed;
bool mHighQuality;
std::vector<double> mMinFactor, mMaxFactor;
bool mMayThrow;
const bool mMayThrow;
};
#endif