mirror of
https://github.com/cookiengineer/audacity
synced 2026-02-05 19:21:59 +01:00
Remove naked new[] in: various
This commit is contained in:
@@ -189,7 +189,6 @@ FreqWindow::FreqWindow(wxWindow * parent, wxWindowID id,
|
||||
const wxPoint & pos)
|
||||
: wxDialogWrapper(parent, id, title, pos, wxDefaultSize,
|
||||
wxDEFAULT_DIALOG_STYLE | wxRESIZE_BORDER | wxMAXIMIZE_BOX),
|
||||
mData(NULL),
|
||||
mAnalyst(std::make_unique<SpectrumAnalyst>())
|
||||
{
|
||||
SetName(GetTitle());
|
||||
@@ -514,8 +513,6 @@ FreqWindow::FreqWindow(wxWindow * parent, wxWindowID id,
|
||||
|
||||
FreqWindow::~FreqWindow()
|
||||
{
|
||||
if (mData)
|
||||
delete[] mData;
|
||||
}
|
||||
|
||||
bool FreqWindow::Show(bool show)
|
||||
@@ -546,10 +543,7 @@ bool FreqWindow::Show(bool show)
|
||||
|
||||
void FreqWindow::GetAudio()
|
||||
{
|
||||
if (mData) {
|
||||
delete [] mData;
|
||||
mData = NULL;
|
||||
}
|
||||
mData.reset();
|
||||
mDataLen = 0;
|
||||
|
||||
int selcount = 0;
|
||||
@@ -571,23 +565,21 @@ void FreqWindow::GetAudio()
|
||||
else
|
||||
// dataLen is not more than 10 * 2 ^ 20
|
||||
mDataLen = dataLen.as_size_t();
|
||||
mData = new float[mDataLen];
|
||||
track->Get((samplePtr)mData, floatSample, start, mDataLen);
|
||||
mData = Floats{ mDataLen };
|
||||
track->Get((samplePtr)mData.get(), floatSample, start, mDataLen);
|
||||
}
|
||||
else {
|
||||
if (track->GetRate() != mRate) {
|
||||
wxMessageBox(_("To plot the spectrum, all selected tracks must be the same sample rate."));
|
||||
delete[] mData;
|
||||
mData = NULL;
|
||||
mData.reset();
|
||||
mDataLen = 0;
|
||||
return;
|
||||
}
|
||||
auto start = track->TimeToLongSamples(p->mViewInfo.selectedRegion.t0());
|
||||
float *buffer2 = new float[mDataLen];
|
||||
track->Get((samplePtr)buffer2, floatSample, start, mDataLen);
|
||||
Floats buffer2{ mDataLen };
|
||||
track->Get((samplePtr)buffer2.get(), floatSample, start, mDataLen);
|
||||
for (size_t i = 0; i < mDataLen; i++)
|
||||
mData[i] += buffer2[i];
|
||||
delete[] buffer2;
|
||||
}
|
||||
selcount++;
|
||||
}
|
||||
@@ -1000,7 +992,7 @@ void FreqWindow::Recalc()
|
||||
wxYieldIfNeeded();
|
||||
|
||||
mAnalyst->Calculate(alg, windowFunc, mWindowSize, mRate,
|
||||
mData, mDataLen,
|
||||
mData.get(), mDataLen,
|
||||
&mYMin, &mYMax, mProgress);
|
||||
}
|
||||
if (hadFocus) {
|
||||
@@ -1202,22 +1194,22 @@ bool SpectrumAnalyst::Calculate(Algorithm alg, int windowFunc,
|
||||
auto half = mWindowSize / 2;
|
||||
mProcessed.resize(mWindowSize);
|
||||
|
||||
float *in = new float[mWindowSize];
|
||||
float *out = new float[mWindowSize];
|
||||
float *out2 = new float[mWindowSize];
|
||||
float *win = new float[mWindowSize];
|
||||
Floats in{ mWindowSize };
|
||||
Floats out{ mWindowSize };
|
||||
Floats out2{ mWindowSize };
|
||||
Floats win{ mWindowSize };
|
||||
|
||||
for (size_t i = 0; i < mWindowSize; i++) {
|
||||
mProcessed[i] = 0.0f;
|
||||
win[i] = 1.0f;
|
||||
}
|
||||
|
||||
WindowFunc(windowFunc, mWindowSize, win);
|
||||
WindowFunc(windowFunc, mWindowSize, win.get());
|
||||
|
||||
// Scale window such that an amplitude of 1.0 in the time domain
|
||||
// shows an amplitude of 0dB in the frequency domain
|
||||
double wss = 0;
|
||||
for(size_t i = 0; i < mWindowSize; i++)
|
||||
for (size_t i = 0; i<mWindowSize; i++)
|
||||
wss += win[i];
|
||||
if(wss > 0)
|
||||
wss = 4.0 / (wss*wss);
|
||||
@@ -1236,7 +1228,7 @@ bool SpectrumAnalyst::Calculate(Algorithm alg, int windowFunc,
|
||||
|
||||
switch (alg) {
|
||||
case Spectrum:
|
||||
PowerSpectrum(mWindowSize, in, out);
|
||||
PowerSpectrum(mWindowSize, in.get(), out.get());
|
||||
|
||||
for (size_t i = 0; i < half; i++)
|
||||
mProcessed[i] += out[i];
|
||||
@@ -1247,7 +1239,7 @@ bool SpectrumAnalyst::Calculate(Algorithm alg, int windowFunc,
|
||||
case EnhancedAutocorrelation:
|
||||
|
||||
// Take FFT
|
||||
RealFFT(mWindowSize, in, out, out2);
|
||||
RealFFT(mWindowSize, in.get(), out.get(), out2.get());
|
||||
// Compute power
|
||||
for (size_t i = 0; i < mWindowSize; i++)
|
||||
in[i] = (out[i] * out[i]) + (out2[i] * out2[i]);
|
||||
@@ -1265,7 +1257,7 @@ bool SpectrumAnalyst::Calculate(Algorithm alg, int windowFunc,
|
||||
in[i] = pow(in[i], 1.0f / 3.0f);
|
||||
}
|
||||
// Take FFT
|
||||
RealFFT(mWindowSize, in, out, out2);
|
||||
RealFFT(mWindowSize, in.get(), out.get(), out2.get());
|
||||
|
||||
// Take real part of result
|
||||
for (size_t i = 0; i < half; i++)
|
||||
@@ -1273,7 +1265,8 @@ bool SpectrumAnalyst::Calculate(Algorithm alg, int windowFunc,
|
||||
break;
|
||||
|
||||
case Cepstrum:
|
||||
RealFFT(mWindowSize, in, out, out2);
|
||||
RealFFT(mWindowSize, in.get(), out.get(), out2.get());
|
||||
|
||||
// Compute log power
|
||||
// Set a sane lower limit assuming maximum time amplitude of 1.0
|
||||
{
|
||||
@@ -1288,7 +1281,7 @@ bool SpectrumAnalyst::Calculate(Algorithm alg, int windowFunc,
|
||||
in[i] = log(power);
|
||||
}
|
||||
// Take IFFT
|
||||
InverseRealFFT(mWindowSize, in, NULL, out);
|
||||
InverseRealFFT(mWindowSize, in.get(), NULL, out.get());
|
||||
|
||||
// Take real part of result
|
||||
for (size_t i = 0; i < half; i++)
|
||||
@@ -1407,11 +1400,6 @@ bool SpectrumAnalyst::Calculate(Algorithm alg, int windowFunc,
|
||||
break;
|
||||
}
|
||||
|
||||
delete[]in;
|
||||
delete[]out;
|
||||
delete[]out2;
|
||||
delete[]win;
|
||||
|
||||
if (pYMin)
|
||||
*pYMin = mYMin;
|
||||
if (pYMax)
|
||||
|
||||
Reference in New Issue
Block a user