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:
@@ -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);
|
||||||
|
|
||||||
|
|||||||
@@ -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];
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user