diff --git a/src/droplets/droplet.cpp b/src/droplets/droplet.cpp index 36820ba..71a562a 100644 --- a/src/droplets/droplet.cpp +++ b/src/droplets/droplet.cpp @@ -1,5 +1,10 @@ #include "droplet.h" +Droplet::Droplet(DaisyPatch* m_patch, DropletState m_state) { + patch = m_patch; + UpdateState(m_state); +} + void Droplet::DrawName(DaisyPatch* patch, std::string name) { WriteCenteredString(*patch, (screen_min + screen_max) / 2, 0, Font_6x8, name); diff --git a/src/droplets/droplet.h b/src/droplets/droplet.h index e9e6573..ef6cb4f 100644 --- a/src/droplets/droplet.h +++ b/src/droplets/droplet.h @@ -17,7 +17,7 @@ class Droplet { public: DaisyPatch* patch; DropletState state; - virtual ~Droplet() {}; + Droplet(DaisyPatch*, DropletState); virtual void Control()=0; virtual void Process(float**, float**, size_t)=0; virtual void Draw()=0; diff --git a/src/droplets/noise_droplet.cpp b/src/droplets/noise_droplet.cpp index 707a880..77a84f4 100644 --- a/src/droplets/noise_droplet.cpp +++ b/src/droplets/noise_droplet.cpp @@ -2,11 +2,11 @@ NoiseDroplet::NoiseDroplet(DaisyPatch* m_patch, float sample_rate, - DropletState m_state) { - patch = m_patch; + DropletState m_state) : + Droplet(m_patch, + m_state) { noise.Init(); filter.Init(); - UpdateState(m_state); } void NoiseDroplet::Control() {} diff --git a/src/droplets/vco_droplet.cpp b/src/droplets/vco_droplet.cpp index a5f53ae..e8538ae 100644 --- a/src/droplets/vco_droplet.cpp +++ b/src/droplets/vco_droplet.cpp @@ -2,9 +2,9 @@ VCODroplet::VCODroplet(DaisyPatch* m_patch, float sample_rate, - DropletState m_state) { - UpdateState(m_state); - patch = m_patch; + DropletState m_state) : + Droplet(m_patch, + m_state){ int num_waves = Oscillator::WAVE_LAST; osc.Init(sample_rate); freqctrl.Init(patch->controls[patch->CTRL_1], 10.0,