mirror of
https://github.com/cookiengineer/audacity
synced 2025-07-12 06:37:52 +02:00
Remove naked new[] in: ondemand, toolbars, widgets
This commit is contained in:
parent
089e696cab
commit
0113e6f44f
src
ondemand
toolbars
widgets
@ -124,7 +124,7 @@ FLAC__StreamDecoderWriteStatus ODFLACFile::write_callback(const FLAC__Frame *fra
|
|||||||
|
|
||||||
mDecoder->mDecodeBufferWritePosition+=bytesToCopy;
|
mDecoder->mDecodeBufferWritePosition+=bytesToCopy;
|
||||||
/*
|
/*
|
||||||
short *tmp=new short[frame->header.blocksize];
|
ArrayOf<short> tmp{ frame->header.blocksize };
|
||||||
|
|
||||||
for (unsigned int chn=0; chn<mDecoder->mNumChannels; chn++) {
|
for (unsigned int chn=0; chn<mDecoder->mNumChannels; chn++) {
|
||||||
if (frame->header.bits_per_sample == 16) {
|
if (frame->header.bits_per_sample == 16) {
|
||||||
@ -132,7 +132,7 @@ FLAC__StreamDecoderWriteStatus ODFLACFile::write_callback(const FLAC__Frame *fra
|
|||||||
tmp[s]=buffer[chn][s];
|
tmp[s]=buffer[chn][s];
|
||||||
}
|
}
|
||||||
|
|
||||||
mDecoder->mChannels[chn]->Append((samplePtr)tmp,
|
mDecoder->mChannels[chn]->Append((samplePtr)tmp.get(),
|
||||||
int16Sample,
|
int16Sample,
|
||||||
frame->header.blocksize);
|
frame->header.blocksize);
|
||||||
}
|
}
|
||||||
@ -142,8 +142,6 @@ FLAC__StreamDecoderWriteStatus ODFLACFile::write_callback(const FLAC__Frame *fra
|
|||||||
frame->header.blocksize);
|
frame->header.blocksize);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
delete [] tmp;
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
mDecoder->mSamplesDone += frame->header.blocksize;
|
mDecoder->mSamplesDone += frame->header.blocksize;
|
||||||
|
@ -83,8 +83,7 @@ void MeterToolBar::Create(wxWindow * parent)
|
|||||||
|
|
||||||
void MeterToolBar::ReCreateButtons()
|
void MeterToolBar::ReCreateButtons()
|
||||||
{
|
{
|
||||||
void *playState = NULL;
|
Meter::State playState{ false }, recordState{ false };
|
||||||
void *recordState = NULL;
|
|
||||||
|
|
||||||
if (mPlayMeter && mProject->GetPlaybackMeter() == mPlayMeter)
|
if (mPlayMeter && mProject->GetPlaybackMeter() == mPlayMeter)
|
||||||
{
|
{
|
||||||
@ -100,15 +99,8 @@ void MeterToolBar::ReCreateButtons()
|
|||||||
|
|
||||||
ToolBar::ReCreateButtons();
|
ToolBar::ReCreateButtons();
|
||||||
|
|
||||||
if (playState)
|
|
||||||
{
|
|
||||||
mPlayMeter->RestoreState(playState);
|
mPlayMeter->RestoreState(playState);
|
||||||
}
|
|
||||||
|
|
||||||
if (recordState)
|
|
||||||
{
|
|
||||||
mRecordMeter->RestoreState(recordState);
|
mRecordMeter->RestoreState(recordState);
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void MeterToolBar::Populate()
|
void MeterToolBar::Populate()
|
||||||
|
@ -113,17 +113,15 @@ wxString MeterUpdateMsg::toStringIfClipped()
|
|||||||
// without needing mutexes.
|
// without needing mutexes.
|
||||||
//
|
//
|
||||||
|
|
||||||
MeterUpdateQueue::MeterUpdateQueue(int maxLen):
|
MeterUpdateQueue::MeterUpdateQueue(size_t maxLen):
|
||||||
mBufferSize(maxLen)
|
mBufferSize(maxLen)
|
||||||
{
|
{
|
||||||
mBuffer = new MeterUpdateMsg[mBufferSize];
|
|
||||||
Clear();
|
Clear();
|
||||||
}
|
}
|
||||||
|
|
||||||
// destructor
|
// destructor
|
||||||
MeterUpdateQueue::~MeterUpdateQueue()
|
MeterUpdateQueue::~MeterUpdateQueue()
|
||||||
{
|
{
|
||||||
delete[] mBuffer;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void MeterUpdateQueue::Clear()
|
void MeterUpdateQueue::Clear()
|
||||||
@ -1857,27 +1855,23 @@ void Meter::OnAudioIOStatus(wxCommandEvent &evt)
|
|||||||
// SaveState() and RestoreState() exist solely for purpose of recreating toolbars
|
// SaveState() and RestoreState() exist solely for purpose of recreating toolbars
|
||||||
// They should really be quering the project for current audio I/O state, but there
|
// They should really be quering the project for current audio I/O state, but there
|
||||||
// isn't a clear way of doing that just yet. (It should NOT query AudioIO.)
|
// isn't a clear way of doing that just yet. (It should NOT query AudioIO.)
|
||||||
void *Meter::SaveState()
|
auto Meter::SaveState() -> State
|
||||||
{
|
{
|
||||||
bool *state = new bool[2];
|
return { true, mMonitoring, mActive };
|
||||||
state[0] = mMonitoring;
|
|
||||||
state[1] = mActive;
|
|
||||||
|
|
||||||
return state;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void Meter::RestoreState(void *state)
|
void Meter::RestoreState(const State &state)
|
||||||
{
|
{
|
||||||
bool *s = (bool *)state;
|
if (!state.mSaved)
|
||||||
mMonitoring = s[0];
|
return;
|
||||||
mActive = s[1];
|
|
||||||
|
mMonitoring = state.mMonitoring;
|
||||||
|
mActive = state.mActive;
|
||||||
|
|
||||||
if (mActive)
|
if (mActive)
|
||||||
{
|
{
|
||||||
mTimer.Start(1000 / mMeterRefreshRate);
|
mTimer.Start(1000 / mMeterRefreshRate);
|
||||||
}
|
}
|
||||||
|
|
||||||
delete [] s;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
|
@ -68,7 +68,7 @@ class MeterUpdateMsg
|
|||||||
class MeterUpdateQueue
|
class MeterUpdateQueue
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
MeterUpdateQueue(int maxLen);
|
explicit MeterUpdateQueue(size_t maxLen);
|
||||||
~MeterUpdateQueue();
|
~MeterUpdateQueue();
|
||||||
|
|
||||||
bool Put(MeterUpdateMsg &msg);
|
bool Put(MeterUpdateMsg &msg);
|
||||||
@ -79,8 +79,8 @@ class MeterUpdateQueue
|
|||||||
private:
|
private:
|
||||||
int mStart;
|
int mStart;
|
||||||
int mEnd;
|
int mEnd;
|
||||||
int mBufferSize;
|
size_t mBufferSize;
|
||||||
MeterUpdateMsg *mBuffer;
|
ArrayOf<MeterUpdateMsg> mBuffer{mBufferSize};
|
||||||
};
|
};
|
||||||
|
|
||||||
class MeterAx;
|
class MeterAx;
|
||||||
@ -176,9 +176,10 @@ class Meter final : public wxPanelWrapper
|
|||||||
|
|
||||||
void StartMonitoring();
|
void StartMonitoring();
|
||||||
|
|
||||||
// These exist solely for the purpose of reseting the toolbars
|
// These exist solely for the purpose of resetting the toolbars
|
||||||
void *SaveState();
|
struct State{ bool mSaved, mMonitoring, mActive; };
|
||||||
void RestoreState(void *state);
|
State SaveState();
|
||||||
|
void RestoreState(const State &state);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
static bool s_AcceptsFocus;
|
static bool s_AcceptsFocus;
|
||||||
|
@ -69,7 +69,6 @@ MultiDialog::MultiDialog(wxWindow * pParent,
|
|||||||
{
|
{
|
||||||
SetName(GetTitle());
|
SetName(GetTitle());
|
||||||
|
|
||||||
wxString *buttonLabels;
|
|
||||||
wxBoxSizer *mainSizer;
|
wxBoxSizer *mainSizer;
|
||||||
{
|
{
|
||||||
auto uMainSizer = std::make_unique<wxBoxSizer>(wxVERTICAL);
|
auto uMainSizer = std::make_unique<wxBoxSizer>(wxVERTICAL);
|
||||||
@ -92,10 +91,9 @@ MultiDialog::MultiDialog(wxWindow * pParent,
|
|||||||
vSizer->Add(iconAndTextSizer.release(), 0, wxALIGN_LEFT | wxALL, 5);
|
vSizer->Add(iconAndTextSizer.release(), 0, wxALIGN_LEFT | wxALL, 5);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
size_t count = 0;
|
||||||
int count = 0;
|
|
||||||
while (buttons[count])count++;
|
while (buttons[count])count++;
|
||||||
buttonLabels = new wxString[count];
|
ArrayOf<wxString> buttonLabels{ count };
|
||||||
|
|
||||||
count = 0;
|
count = 0;
|
||||||
while (buttons[count]){
|
while (buttons[count]){
|
||||||
@ -106,7 +104,7 @@ MultiDialog::MultiDialog(wxWindow * pParent,
|
|||||||
mRadioBox = safenew wxRadioBox(this, -1,
|
mRadioBox = safenew wxRadioBox(this, -1,
|
||||||
boxMsg,
|
boxMsg,
|
||||||
wxDefaultPosition, wxDefaultSize,
|
wxDefaultPosition, wxDefaultSize,
|
||||||
count, buttonLabels,
|
count, buttonLabels.get(),
|
||||||
1, wxRA_SPECIFY_COLS);
|
1, wxRA_SPECIFY_COLS);
|
||||||
mRadioBox->SetName(boxMsg);
|
mRadioBox->SetName(boxMsg);
|
||||||
mRadioBox->SetSelection(0);
|
mRadioBox->SetSelection(0);
|
||||||
@ -143,7 +141,6 @@ MultiDialog::MultiDialog(wxWindow * pParent,
|
|||||||
|
|
||||||
mainSizer->Fit(this);
|
mainSizer->Fit(this);
|
||||||
mainSizer->SetSizeHints(this);
|
mainSizer->SetSizeHints(this);
|
||||||
delete[] buttonLabels;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void MultiDialog::OnOK(wxCommandEvent & WXUNUSED(event))
|
void MultiDialog::OnOK(wxCommandEvent & WXUNUSED(event))
|
||||||
|
@ -144,13 +144,8 @@ Ruler::Ruler()
|
|||||||
|
|
||||||
mUserFonts = false;
|
mUserFonts = false;
|
||||||
|
|
||||||
mMajorLabels = 0;
|
|
||||||
mMinorLabels = 0;
|
|
||||||
mMinorMinorLabels = 0;
|
|
||||||
mLengthOld = 0;
|
mLengthOld = 0;
|
||||||
mLength = 0;
|
mLength = 0;
|
||||||
mBits = NULL;
|
|
||||||
mUserBits = NULL;
|
|
||||||
mUserBitLen = 0;
|
mUserBitLen = 0;
|
||||||
|
|
||||||
mValid = false;
|
mValid = false;
|
||||||
@ -170,15 +165,6 @@ Ruler::Ruler()
|
|||||||
Ruler::~Ruler()
|
Ruler::~Ruler()
|
||||||
{
|
{
|
||||||
Invalidate(); // frees up our arrays
|
Invalidate(); // frees up our arrays
|
||||||
if( mUserBits )
|
|
||||||
delete [] mUserBits;//JKC
|
|
||||||
|
|
||||||
if (mMajorLabels)
|
|
||||||
delete[] mMajorLabels;
|
|
||||||
if (mMinorLabels)
|
|
||||||
delete[] mMinorLabels;
|
|
||||||
if (mMinorMinorLabels)
|
|
||||||
delete[] mMinorMinorLabels;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void Ruler::SetTwoTone(bool twoTone)
|
void Ruler::SetTwoTone(bool twoTone)
|
||||||
@ -333,8 +319,6 @@ void Ruler::SetNumberScale(const NumberScale *pScale)
|
|||||||
|
|
||||||
void Ruler::OfflimitsPixels(int start, int end)
|
void Ruler::OfflimitsPixels(int start, int end)
|
||||||
{
|
{
|
||||||
int i;
|
|
||||||
|
|
||||||
if (!mUserBits) {
|
if (!mUserBits) {
|
||||||
if (mOrientation == wxHORIZONTAL)
|
if (mOrientation == wxHORIZONTAL)
|
||||||
mLength = mRight-mLeft;
|
mLength = mRight-mLeft;
|
||||||
@ -342,24 +326,19 @@ void Ruler::OfflimitsPixels(int start, int end)
|
|||||||
mLength = mBottom-mTop;
|
mLength = mBottom-mTop;
|
||||||
if( mLength < 0 )
|
if( mLength < 0 )
|
||||||
return;
|
return;
|
||||||
mUserBits = new int[mLength+1];
|
mUserBits.reinit(static_cast<size_t>(mLength+1), true);
|
||||||
for(i=0; i<=mLength; i++)
|
|
||||||
mUserBits[i] = 0;
|
|
||||||
mUserBitLen = mLength+1;
|
mUserBitLen = mLength+1;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (end < start) {
|
if (end < start)
|
||||||
i = end;
|
std::swap( start, end );
|
||||||
end = start;
|
|
||||||
start = i;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (start < 0)
|
if (start < 0)
|
||||||
start = 0;
|
start = 0;
|
||||||
if (end > mLength)
|
if (end > mLength)
|
||||||
end = mLength;
|
end = mLength;
|
||||||
|
|
||||||
for(i=start; i<=end; i++)
|
for(int i = start; i <= end; i++)
|
||||||
mUserBits[i] = 1;
|
mUserBits[i] = 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -385,13 +364,9 @@ void Ruler::Invalidate()
|
|||||||
else
|
else
|
||||||
mLength = mBottom-mTop;
|
mLength = mBottom-mTop;
|
||||||
|
|
||||||
if (mBits) {
|
mBits.reset();
|
||||||
delete [] mBits;
|
|
||||||
mBits = NULL;
|
|
||||||
}
|
|
||||||
if (mUserBits && mLength+1 != mUserBitLen) {
|
if (mUserBits && mLength+1 != mUserBitLen) {
|
||||||
delete[] mUserBits;
|
mUserBits.reset();
|
||||||
mUserBits = NULL;
|
|
||||||
mUserBitLen = 0;
|
mUserBitLen = 0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -1053,27 +1028,20 @@ void Ruler::Update(const TimeTrack* timetrack)// Envelope *speedEnv, long minSpe
|
|||||||
// We can just recompute them as we need them? Yes, but only if
|
// We can just recompute them as we need them? Yes, but only if
|
||||||
// mCustom is false!!!!
|
// mCustom is false!!!!
|
||||||
|
|
||||||
|
auto size = static_cast<size_t>(mLength + 1);
|
||||||
if(!mCustom) {
|
if(!mCustom) {
|
||||||
mNumMajor = 0;
|
mNumMajor = 0;
|
||||||
mNumMinor = 0;
|
mNumMinor = 0;
|
||||||
mNumMinorMinor = 0;
|
mNumMinorMinor = 0;
|
||||||
if (mLength!=mLengthOld) {
|
if (mLength!=mLengthOld) {
|
||||||
if (mMajorLabels)
|
mMajorLabels.reinit(size);
|
||||||
delete[] mMajorLabels;
|
mMinorLabels.reinit(size);
|
||||||
mMajorLabels = new Label[mLength+1];
|
mMinorMinorLabels.reinit(size);
|
||||||
if (mMinorLabels)
|
|
||||||
delete[] mMinorLabels;
|
|
||||||
mMinorLabels = new Label[mLength+1];
|
|
||||||
if (mMinorMinorLabels)
|
|
||||||
delete[] mMinorMinorLabels;
|
|
||||||
mMinorMinorLabels = new Label[mLength+1];
|
|
||||||
mLengthOld = mLength;
|
mLengthOld = mLength;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (mBits)
|
mBits.reinit(size);
|
||||||
delete[] mBits;
|
|
||||||
mBits = new int[mLength+1];
|
|
||||||
if (mUserBits)
|
if (mUserBits)
|
||||||
for(i=0; i<=mLength; i++)
|
for(i=0; i<=mLength; i++)
|
||||||
mBits[i] = mUserBits[i];
|
mBits[i] = mUserBits[i];
|
||||||
@ -1515,8 +1483,8 @@ int Ruler::FindZero(Label * label, const int len)
|
|||||||
int Ruler::GetZeroPosition()
|
int Ruler::GetZeroPosition()
|
||||||
{
|
{
|
||||||
int zero;
|
int zero;
|
||||||
if((zero = FindZero(mMajorLabels, mNumMajor)) < 0)
|
if((zero = FindZero(mMajorLabels.get(), mNumMajor)) < 0)
|
||||||
zero = FindZero(mMinorLabels, mNumMinor);
|
zero = FindZero(mMinorLabels.get(), mNumMinor);
|
||||||
// PRL: don't consult minor minor??
|
// PRL: don't consult minor minor??
|
||||||
return zero;
|
return zero;
|
||||||
}
|
}
|
||||||
@ -1539,28 +1507,24 @@ void Ruler::GetMaxSize(wxCoord *width, wxCoord *height)
|
|||||||
|
|
||||||
void Ruler::SetCustomMode(bool value) { mCustom = value; }
|
void Ruler::SetCustomMode(bool value) { mCustom = value; }
|
||||||
|
|
||||||
void Ruler::SetCustomMajorLabels(wxArrayString *label, int numLabel, int start, int step)
|
void Ruler::SetCustomMajorLabels(wxArrayString *label, size_t numLabel, int start, int step)
|
||||||
{
|
{
|
||||||
int i;
|
|
||||||
|
|
||||||
mNumMajor = numLabel;
|
mNumMajor = numLabel;
|
||||||
mMajorLabels = new Label[numLabel];
|
mMajorLabels.reinit(numLabel);
|
||||||
|
|
||||||
for(i=0; i<numLabel; i++) {
|
for(size_t i = 0; i<numLabel; i++) {
|
||||||
mMajorLabels[i].text = label->Item(i);
|
mMajorLabels[i].text = label->Item(i);
|
||||||
mMajorLabels[i].pos = start + i*step;
|
mMajorLabels[i].pos = start + i*step;
|
||||||
}
|
}
|
||||||
//Remember: DELETE majorlabels....
|
//Remember: DELETE majorlabels....
|
||||||
}
|
}
|
||||||
|
|
||||||
void Ruler::SetCustomMinorLabels(wxArrayString *label, int numLabel, int start, int step)
|
void Ruler::SetCustomMinorLabels(wxArrayString *label, size_t numLabel, int start, int step)
|
||||||
{
|
{
|
||||||
int i;
|
|
||||||
|
|
||||||
mNumMinor = numLabel;
|
mNumMinor = numLabel;
|
||||||
mMinorLabels = new Label[numLabel];
|
mMinorLabels.reinit(numLabel);
|
||||||
|
|
||||||
for(i=0; i<numLabel; i++) {
|
for(size_t i = 0; i<numLabel; i++) {
|
||||||
mMinorLabels[i].text = label->Item(i);
|
mMinorLabels[i].text = label->Item(i);
|
||||||
mMinorLabels[i].pos = start + i*step;
|
mMinorLabels[i].pos = start + i*step;
|
||||||
}
|
}
|
||||||
|
@ -129,8 +129,8 @@ class AUDACITY_DLL_API Ruler {
|
|||||||
// If this is the case, you should provide a wxString array of labels, start
|
// If this is the case, you should provide a wxString array of labels, start
|
||||||
// label position, and labels step. The range eventually specified will be
|
// label position, and labels step. The range eventually specified will be
|
||||||
// ignored.
|
// ignored.
|
||||||
void SetCustomMajorLabels(wxArrayString *label, int numLabel, int start, int step);
|
void SetCustomMajorLabels(wxArrayString *label, size_t numLabel, int start, int step);
|
||||||
void SetCustomMinorLabels(wxArrayString *label, int numLabel, int start, int step);
|
void SetCustomMinorLabels(wxArrayString *label, size_t numLabel, int start, int step);
|
||||||
|
|
||||||
void SetUseZoomInfo(int leftOffset, const ZoomInfo *zoomInfo);
|
void SetUseZoomInfo(int leftOffset, const ZoomInfo *zoomInfo);
|
||||||
|
|
||||||
@ -191,8 +191,8 @@ private:
|
|||||||
|
|
||||||
int mDigits;
|
int mDigits;
|
||||||
|
|
||||||
int *mUserBits;
|
ArrayOf<int> mUserBits;
|
||||||
int *mBits;
|
ArrayOf<int> mBits;
|
||||||
int mUserBitLen;
|
int mUserBitLen;
|
||||||
|
|
||||||
bool mValid;
|
bool mValid;
|
||||||
@ -208,11 +208,11 @@ private:
|
|||||||
};
|
};
|
||||||
|
|
||||||
int mNumMajor;
|
int mNumMajor;
|
||||||
Label *mMajorLabels;
|
ArrayOf<Label> mMajorLabels;
|
||||||
int mNumMinor;
|
int mNumMinor;
|
||||||
Label *mMinorLabels;
|
ArrayOf<Label> mMinorLabels;
|
||||||
int mNumMinorMinor;
|
int mNumMinorMinor;
|
||||||
Label *mMinorMinorLabels;
|
ArrayOf<Label> mMinorMinorLabels;
|
||||||
|
|
||||||
// Returns 'zero' label coordinate (for grid drawing)
|
// Returns 'zero' label coordinate (for grid drawing)
|
||||||
int FindZero(Label * label, int len);
|
int FindZero(Label * label, int len);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user