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

@ -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);

View File

@ -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();

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) {
sprite[x][y] = solid;
}

View File

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