1
0
mirror of https://github.com/cookiengineer/audacity synced 2026-01-13 16:15:48 +01:00

One more use of smart pointer object SampleBuffer, in Nyquist.h...

...Leaving no "naked" DeleteSamples.  Only SampleBuffer::Free now calls it
directly, and SampleBuffer calls Free in its destructor.
This commit is contained in:
Paul Licameli
2016-04-03 13:18:19 -04:00
parent a655545a1e
commit 2696da89cb
2 changed files with 10 additions and 13 deletions

View File

@@ -1052,7 +1052,7 @@ bool NyquistEffect::ProcessOne()
int i; int i;
for (i = 0; i < mCurNumChannels; i++) { for (i = 0; i < mCurNumChannels; i++) {
mCurBuffer[i] = NULL; mCurBuffer[i].Free();
} }
rval = nyx_eval_expression(cmd.mb_str(wxConvUTF8)); rval = nyx_eval_expression(cmd.mb_str(wxConvUTF8));
@@ -1176,7 +1176,7 @@ bool NyquistEffect::ProcessOne()
} }
mOutputTrack[i] = mFactory->NewWaveTrack(format, rate); mOutputTrack[i] = mFactory->NewWaveTrack(format, rate);
mCurBuffer[i] = NULL; mCurBuffer[i].Free();
} }
int success = nyx_get_audio(StaticPutCallback, (void *)this); int success = nyx_get_audio(StaticPutCallback, (void *)this);
@@ -1190,9 +1190,7 @@ bool NyquistEffect::ProcessOne()
for (i = 0; i < outChannels; i++) { for (i = 0; i < outChannels; i++) {
mOutputTrack[i]->Flush(); mOutputTrack[i]->Flush();
if (mCurBuffer[i]) { mCurBuffer[i].Free();
DeleteSamples(mCurBuffer[i]);
}
mOutputTime = mOutputTrack[i]->GetEndTime(); mOutputTime = mOutputTrack[i]->GetEndTime();
if (mOutputTime <= 0) { if (mOutputTime <= 0) {
@@ -1713,16 +1711,15 @@ int NyquistEffect::StaticGetCallback(float *buffer, int channel,
int NyquistEffect::GetCallback(float *buffer, int ch, int NyquistEffect::GetCallback(float *buffer, int ch,
long start, long len, long WXUNUSED(totlen)) long start, long len, long WXUNUSED(totlen))
{ {
if (mCurBuffer[ch]) { if (mCurBuffer[ch].ptr()) {
if ((mCurStart[ch] + start) < mCurBufferStart[ch] || if ((mCurStart[ch] + start) < mCurBufferStart[ch] ||
(mCurStart[ch] + start)+len > (mCurStart[ch] + start)+len >
mCurBufferStart[ch]+mCurBufferLen[ch]) { mCurBufferStart[ch]+mCurBufferLen[ch]) {
delete[] mCurBuffer[ch]; mCurBuffer[ch].Free();
mCurBuffer[ch] = NULL;
} }
} }
if (!mCurBuffer[ch]) { if (!mCurBuffer[ch].ptr()) {
mCurBufferStart[ch] = (mCurStart[ch] + start); mCurBufferStart[ch] = (mCurStart[ch] + start);
mCurBufferLen[ch] = mCurTrack[ch]->GetBestBlockSize(mCurBufferStart[ch]); mCurBufferLen[ch] = mCurTrack[ch]->GetBestBlockSize(mCurBufferStart[ch]);
@@ -1734,8 +1731,8 @@ int NyquistEffect::GetCallback(float *buffer, int ch,
mCurBufferLen[ch] = mCurStart[ch] + mCurLen - mCurBufferStart[ch]; mCurBufferLen[ch] = mCurStart[ch] + mCurLen - mCurBufferStart[ch];
} }
mCurBuffer[ch] = NewSamples(mCurBufferLen[ch], floatSample); mCurBuffer[ch].Allocate(mCurBufferLen[ch], floatSample);
if (!mCurTrack[ch]->Get(mCurBuffer[ch], floatSample, if (!mCurTrack[ch]->Get(mCurBuffer[ch].ptr(), floatSample,
mCurBufferStart[ch], mCurBufferLen[ch])) { mCurBufferStart[ch], mCurBufferLen[ch])) {
wxPrintf(wxT("GET error\n")); wxPrintf(wxT("GET error\n"));
@@ -1745,7 +1742,7 @@ int NyquistEffect::GetCallback(float *buffer, int ch,
} }
long offset = (mCurStart[ch] + start) - mCurBufferStart[ch]; long offset = (mCurStart[ch] + start) - mCurBufferStart[ch];
CopySamples(mCurBuffer[ch] + offset*SAMPLE_SIZE(floatSample), floatSample, CopySamples(mCurBuffer[ch].ptr() + offset*SAMPLE_SIZE(floatSample), floatSample,
(samplePtr)buffer, floatSample, (samplePtr)buffer, floatSample,
len); len);

View File

@@ -220,7 +220,7 @@ private:
double mProgressTot; double mProgressTot;
double mScale; double mScale;
samplePtr mCurBuffer[2]; SampleBuffer mCurBuffer[2];
sampleCount mCurBufferStart[2]; sampleCount mCurBufferStart[2];
sampleCount mCurBufferLen[2]; sampleCount mCurBufferLen[2];