More members of Mixer are const
This commit is contained in:
parent
c9a9f0f906
commit
55ad1b43b8
|
@ -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
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
15
src/Mix.cpp
15
src/Mix.cpp
|
@ -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++) {
|
||||
|
|
23
src/Mix.h
23
src/Mix.h
|
@ -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
|
||||
|
|
Loading…
Reference in New Issue