Delete wave on droplet close

This commit is contained in:
Christian Colglazier 2020-09-22 10:46:41 -04:00
parent 5056158266
commit 08559603b6
4 changed files with 14 additions and 2 deletions

View File

@ -18,6 +18,10 @@ VCODroplet::VCODroplet(DaisyPatch* m_patch,
0.5f, Parameter::LINEAR); 0.5f, Parameter::LINEAR);
} }
VCODroplet::~VCODroplet() {
delete wave;
}
void VCODroplet::Control() {} void VCODroplet::Control() {}
void VCODroplet::Process(float** in, float** out, size_t size) { void VCODroplet::Process(float** in, float** out, size_t size) {
@ -32,7 +36,6 @@ void VCODroplet::Process(float** in, float** out, size_t size) {
wave = wavectrl.Process(); wave = wavectrl.Process();
amp = ampctrl.Process(); amp = ampctrl.Process();
// Set osc params // Set osc params
osc.SetFreq(freq); osc.SetFreq(freq);
osc.SetWaveform(wave); osc.SetWaveform(wave);
osc.SetAmp(amp); osc.SetAmp(amp);

View File

@ -25,6 +25,7 @@ private:
Sprite* wave = new Sprite(sine_width, kTitleHeight); Sprite* wave = new Sprite(sine_width, kTitleHeight);
public: public:
VCODroplet(DaisyPatch*, DropletState, float); VCODroplet(DaisyPatch*, DropletState, float);
~VCODroplet();
void Control(); void Control();
void Process(float**, float**, size_t); void Process(float**, float**, size_t);
void Draw(); void Draw();

View File

@ -12,6 +12,13 @@ Sprite::Sprite(int m_width, int m_height) {
} }
} }
Sprite::~Sprite() {
for (int w = 0; w < width; w++) {
delete[] sprite[w];
}
delete[] sprite;
}
void Sprite::SetPixel(int x, int y, bool solid) { void Sprite::SetPixel(int x, int y, bool solid) {
sprite[x][y] = solid; sprite[x][y] = solid;
} }

View File

@ -13,6 +13,7 @@ class Sprite {
bool** sprite; bool** sprite;
public: public:
Sprite(int, int); Sprite(int, int);
~Sprite();
void SetPixel(int, int, bool); void SetPixel(int, int, bool);
int GetHeight(); int GetHeight();
int GetWidth(); int GetWidth();