From 2696da89cbee575b9f7a05b900a6720f82e23f63 Mon Sep 17 00:00:00 2001 From: Paul Licameli Date: Sun, 3 Apr 2016 13:18:19 -0400 Subject: [PATCH] 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. --- src/effects/nyquist/Nyquist.cpp | 21 +++++++++------------ src/effects/nyquist/Nyquist.h | 2 +- 2 files changed, 10 insertions(+), 13 deletions(-) diff --git a/src/effects/nyquist/Nyquist.cpp b/src/effects/nyquist/Nyquist.cpp index 057819e9a..71483c767 100644 --- a/src/effects/nyquist/Nyquist.cpp +++ b/src/effects/nyquist/Nyquist.cpp @@ -1052,7 +1052,7 @@ bool NyquistEffect::ProcessOne() int i; for (i = 0; i < mCurNumChannels; i++) { - mCurBuffer[i] = NULL; + mCurBuffer[i].Free(); } rval = nyx_eval_expression(cmd.mb_str(wxConvUTF8)); @@ -1176,7 +1176,7 @@ bool NyquistEffect::ProcessOne() } mOutputTrack[i] = mFactory->NewWaveTrack(format, rate); - mCurBuffer[i] = NULL; + mCurBuffer[i].Free(); } int success = nyx_get_audio(StaticPutCallback, (void *)this); @@ -1190,9 +1190,7 @@ bool NyquistEffect::ProcessOne() for (i = 0; i < outChannels; i++) { mOutputTrack[i]->Flush(); - if (mCurBuffer[i]) { - DeleteSamples(mCurBuffer[i]); - } + mCurBuffer[i].Free(); mOutputTime = mOutputTrack[i]->GetEndTime(); if (mOutputTime <= 0) { @@ -1713,16 +1711,15 @@ int NyquistEffect::StaticGetCallback(float *buffer, int channel, int NyquistEffect::GetCallback(float *buffer, int ch, long start, long len, long WXUNUSED(totlen)) { - if (mCurBuffer[ch]) { + if (mCurBuffer[ch].ptr()) { if ((mCurStart[ch] + start) < mCurBufferStart[ch] || (mCurStart[ch] + start)+len > mCurBufferStart[ch]+mCurBufferLen[ch]) { - delete[] mCurBuffer[ch]; - mCurBuffer[ch] = NULL; + mCurBuffer[ch].Free(); } } - if (!mCurBuffer[ch]) { + if (!mCurBuffer[ch].ptr()) { mCurBufferStart[ch] = (mCurStart[ch] + start); 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]; } - mCurBuffer[ch] = NewSamples(mCurBufferLen[ch], floatSample); - if (!mCurTrack[ch]->Get(mCurBuffer[ch], floatSample, + mCurBuffer[ch].Allocate(mCurBufferLen[ch], floatSample); + if (!mCurTrack[ch]->Get(mCurBuffer[ch].ptr(), floatSample, mCurBufferStart[ch], mCurBufferLen[ch])) { wxPrintf(wxT("GET error\n")); @@ -1745,7 +1742,7 @@ int NyquistEffect::GetCallback(float *buffer, int 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, len); diff --git a/src/effects/nyquist/Nyquist.h b/src/effects/nyquist/Nyquist.h index 7c8f45e74..c804cd47f 100644 --- a/src/effects/nyquist/Nyquist.h +++ b/src/effects/nyquist/Nyquist.h @@ -220,7 +220,7 @@ private: double mProgressTot; double mScale; - samplePtr mCurBuffer[2]; + SampleBuffer mCurBuffer[2]; sampleCount mCurBufferStart[2]; sampleCount mCurBufferLen[2];