From 08559603b6e168b7176493dc526e965729bcb819 Mon Sep 17 00:00:00 2001 From: Christian Colglazier Date: Tue, 22 Sep 2020 10:46:41 -0400 Subject: [PATCH] Delete wave on droplet close --- src/droplets/vco_droplet.cpp | 7 +++++-- src/droplets/vco_droplet.h | 1 + src/graphics/sprite.cpp | 7 +++++++ src/graphics/sprite.h | 1 + 4 files changed, 14 insertions(+), 2 deletions(-) diff --git a/src/droplets/vco_droplet.cpp b/src/droplets/vco_droplet.cpp index 1c679f9..fd5eb3b 100644 --- a/src/droplets/vco_droplet.cpp +++ b/src/droplets/vco_droplet.cpp @@ -4,7 +4,7 @@ VCODroplet::VCODroplet(DaisyPatch* m_patch, DropletState m_state, float sample_rate) : Droplet(m_patch, - m_state){ + m_state) { int num_waves = Oscillator::WAVE_LAST; SetAnimationRate(10); osc.Init(sample_rate); @@ -18,6 +18,10 @@ VCODroplet::VCODroplet(DaisyPatch* m_patch, 0.5f, Parameter::LINEAR); } +VCODroplet::~VCODroplet() { + delete wave; +} + void VCODroplet::Control() {} 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(); amp = ampctrl.Process(); // Set osc params - osc.SetFreq(freq); osc.SetWaveform(wave); osc.SetAmp(amp); diff --git a/src/droplets/vco_droplet.h b/src/droplets/vco_droplet.h index 7ed4b0d..60dc60b 100644 --- a/src/droplets/vco_droplet.h +++ b/src/droplets/vco_droplet.h @@ -25,6 +25,7 @@ private: Sprite* wave = new Sprite(sine_width, kTitleHeight); public: VCODroplet(DaisyPatch*, DropletState, float); + ~VCODroplet(); void Control(); void Process(float**, float**, size_t); void Draw(); diff --git a/src/graphics/sprite.cpp b/src/graphics/sprite.cpp index d3c0470..8f3b6ef 100644 --- a/src/graphics/sprite.cpp +++ b/src/graphics/sprite.cpp @@ -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) { sprite[x][y] = solid; } diff --git a/src/graphics/sprite.h b/src/graphics/sprite.h index 2b23ae7..bd1699f 100644 --- a/src/graphics/sprite.h +++ b/src/graphics/sprite.h @@ -13,6 +13,7 @@ class Sprite { bool** sprite; public: Sprite(int, int); + ~Sprite(); void SetPixel(int, int, bool); int GetHeight(); int GetWidth();