mirror of
https://github.com/cookiengineer/audacity
synced 2025-11-23 17:30:17 +01:00
More members of Mixer are const
This commit is contained in:
@@ -1953,8 +1953,11 @@ bool AudioIO::AllocateBuffers(
|
|||||||
1,
|
1,
|
||||||
std::max( mPlaybackSamplesToCopy, mPlaybackQueueMinimum ),
|
std::max( mPlaybackSamplesToCopy, mPlaybackQueueMinimum ),
|
||||||
false,
|
false,
|
||||||
mRate, floatSample, false);
|
mRate, floatSample,
|
||||||
mPlaybackMixers[i]->ApplyTrackGains(false);
|
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,
|
double startTime, double stopTime,
|
||||||
unsigned numOutChannels, size_t outBufferSize, bool outInterleaved,
|
unsigned numOutChannels, size_t outBufferSize, bool outInterleaved,
|
||||||
double outRate, sampleFormat outFormat,
|
double outRate, sampleFormat outFormat,
|
||||||
bool highQuality, MixerSpec *mixerSpec)
|
bool highQuality, MixerSpec *mixerSpec, bool applyTrackGains)
|
||||||
: mNumInputTracks { inputTracks.size() }
|
: mNumInputTracks { inputTracks.size() }
|
||||||
|
|
||||||
|
, mApplyTrackGains{ applyTrackGains }
|
||||||
|
|
||||||
// This is the number of samples grabbed in one go from a track
|
// This is the number of samples grabbed in one go from a track
|
||||||
// and placed in a queue, when mixing with resampling.
|
// and placed in a queue, when mixing with resampling.
|
||||||
// (Should we use WaveTrack::GetBestBlockSize instead?)
|
// (Should we use WaveTrack::GetBestBlockSize instead?)
|
||||||
@@ -252,6 +254,9 @@ Mixer::Mixer(const WaveTrackConstArray &inputTracks,
|
|||||||
, mNumChannels{ numOutChannels }
|
, mNumChannels{ numOutChannels }
|
||||||
, mGains{ mNumChannels }
|
, mGains{ mNumChannels }
|
||||||
|
|
||||||
|
, mFormat{ outFormat }
|
||||||
|
, mRate{ outRate }
|
||||||
|
|
||||||
, mMayThrow{ mayThrow }
|
, mMayThrow{ mayThrow }
|
||||||
{
|
{
|
||||||
mHighQuality = highQuality;
|
mHighQuality = highQuality;
|
||||||
@@ -270,10 +275,7 @@ Mixer::Mixer(const WaveTrackConstArray &inputTracks,
|
|||||||
mTime = startTime;
|
mTime = startTime;
|
||||||
mBufferSize = outBufferSize;
|
mBufferSize = outBufferSize;
|
||||||
mInterleaved = outInterleaved;
|
mInterleaved = outInterleaved;
|
||||||
mRate = outRate;
|
|
||||||
mSpeed = 1.0;
|
mSpeed = 1.0;
|
||||||
mFormat = outFormat;
|
|
||||||
mApplyTrackGains = true;
|
|
||||||
if( mixerSpec && mixerSpec->GetNumChannels() == mNumChannels &&
|
if( mixerSpec && mixerSpec->GetNumChannels() == mNumChannels &&
|
||||||
mixerSpec->GetNumTracks() == mNumInputTracks )
|
mixerSpec->GetNumTracks() == mNumInputTracks )
|
||||||
mMixerSpec = mixerSpec;
|
mMixerSpec = mixerSpec;
|
||||||
@@ -351,11 +353,6 @@ void Mixer::MakeResamplers()
|
|||||||
mResample[i] = std::make_unique<Resample>(mHighQuality, mMinFactor[i], mMaxFactor[i]);
|
mResample[i] = std::make_unique<Resample>(mHighQuality, mMinFactor[i], mMaxFactor[i]);
|
||||||
}
|
}
|
||||||
|
|
||||||
void Mixer::ApplyTrackGains(bool apply)
|
|
||||||
{
|
|
||||||
mApplyTrackGains = apply;
|
|
||||||
}
|
|
||||||
|
|
||||||
void Mixer::Clear()
|
void Mixer::Clear()
|
||||||
{
|
{
|
||||||
for (unsigned int c = 0; c < mNumBuffers; c++) {
|
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,
|
double startTime, double stopTime,
|
||||||
unsigned numOutChannels, size_t outBufferSize, bool outInterleaved,
|
unsigned numOutChannels, size_t outBufferSize, bool outInterleaved,
|
||||||
double outRate, sampleFormat outFormat,
|
double outRate, sampleFormat outFormat,
|
||||||
bool highQuality = true, MixerSpec *mixerSpec = NULL);
|
bool highQuality = true, MixerSpec *mixerSpec = nullptr,
|
||||||
|
bool applytTrackGains = true);
|
||||||
|
|
||||||
virtual ~ Mixer();
|
virtual ~ Mixer();
|
||||||
|
|
||||||
//
|
|
||||||
// Setup
|
|
||||||
//
|
|
||||||
|
|
||||||
void ApplyTrackGains(bool apply = true); // True by default
|
|
||||||
|
|
||||||
//
|
//
|
||||||
// Processing
|
// Processing
|
||||||
//
|
//
|
||||||
@@ -165,18 +160,18 @@ class AUDACITY_DLL_API Mixer {
|
|||||||
private:
|
private:
|
||||||
|
|
||||||
// Input
|
// Input
|
||||||
size_t mNumInputTracks;
|
const size_t mNumInputTracks;
|
||||||
ArrayOf<WaveTrackCache> mInputTrack;
|
ArrayOf<WaveTrackCache> mInputTrack;
|
||||||
bool mbVariableRates;
|
bool mbVariableRates;
|
||||||
const BoundedEnvelope *mEnvelope;
|
const BoundedEnvelope *mEnvelope;
|
||||||
ArrayOf<sampleCount> mSamplePos;
|
ArrayOf<sampleCount> mSamplePos;
|
||||||
bool mApplyTrackGains;
|
const bool mApplyTrackGains;
|
||||||
Doubles mEnvValues;
|
Doubles mEnvValues;
|
||||||
double mT0; // Start time
|
double mT0; // Start time
|
||||||
double mT1; // Stop time (none if mT0==mT1)
|
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)
|
double mTime; // Current time (renamed from mT to mTime for consistency with AudioIO - mT represented warped time there)
|
||||||
ArrayOf<std::unique_ptr<Resample>> mResample;
|
ArrayOf<std::unique_ptr<Resample>> mResample;
|
||||||
size_t mQueueMaxLen;
|
const size_t mQueueMaxLen;
|
||||||
FloatBuffers mSampleQueue;
|
FloatBuffers mSampleQueue;
|
||||||
ArrayOf<int> mQueueStart;
|
ArrayOf<int> mQueueStart;
|
||||||
ArrayOf<int> mQueueLen;
|
ArrayOf<int> mQueueLen;
|
||||||
@@ -185,21 +180,21 @@ class AUDACITY_DLL_API Mixer {
|
|||||||
|
|
||||||
// Output
|
// Output
|
||||||
size_t mMaxOut;
|
size_t mMaxOut;
|
||||||
unsigned mNumChannels;
|
const unsigned mNumChannels;
|
||||||
Floats mGains;
|
Floats mGains;
|
||||||
unsigned mNumBuffers;
|
unsigned mNumBuffers;
|
||||||
size_t mBufferSize;
|
size_t mBufferSize;
|
||||||
size_t mInterleavedBufferSize;
|
size_t mInterleavedBufferSize;
|
||||||
sampleFormat mFormat;
|
const sampleFormat mFormat;
|
||||||
bool mInterleaved;
|
bool mInterleaved;
|
||||||
ArrayOf<SampleBuffer> mBuffer, mTemp;
|
ArrayOf<SampleBuffer> mBuffer, mTemp;
|
||||||
Floats mFloatBuffer;
|
Floats mFloatBuffer;
|
||||||
double mRate;
|
const double mRate;
|
||||||
double mSpeed;
|
double mSpeed;
|
||||||
bool mHighQuality;
|
bool mHighQuality;
|
||||||
std::vector<double> mMinFactor, mMaxFactor;
|
std::vector<double> mMinFactor, mMaxFactor;
|
||||||
|
|
||||||
bool mMayThrow;
|
const bool mMayThrow;
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|||||||
Reference in New Issue
Block a user