From 7ce6e2781c00c9d685aeed97427cfe4ccbf623a4 Mon Sep 17 00:00:00 2001 From: Christian Colglazier Date: Sat, 22 Jan 2022 16:41:24 -0500 Subject: [PATCH] Fixed VCA merging --- src/droplets/vca_droplet.cpp | 58 ++++++++++++++++++++---------------- src/droplets/vca_droplet.h | 5 ++++ 2 files changed, 37 insertions(+), 26 deletions(-) diff --git a/src/droplets/vca_droplet.cpp b/src/droplets/vca_droplet.cpp index 9173a8d..0a8c77a 100644 --- a/src/droplets/vca_droplet.cpp +++ b/src/droplets/vca_droplet.cpp @@ -4,31 +4,7 @@ VCADroplet::VCADroplet(DaisyPatch* m_patch, DropletState m_state) : Droplet(m_patch, m_state) { - switch (GetState()) { - default: - case DropletState::kFull: - vca[0].Init(Patch()->controls[Patch()->CTRL_1], - 0.0, 1.0f, Parameter::LINEAR); - vca[1].Init(Patch()->controls[Patch()->CTRL_2], - 0.0, 1.0f, Parameter::LINEAR); - vca[2].Init(Patch()->controls[Patch()->CTRL_3], - 0.0, 1.0f, Parameter::LINEAR); - vca[3].Init(Patch()->controls[Patch()->CTRL_4], - 0.0, 1.0f, Parameter::LINEAR); - break; - case DropletState::kLeft: - vca[0].Init(Patch()->controls[Patch()->CTRL_1], - 0.0, 1.0f, Parameter::LINEAR); - vca[1].Init(Patch()->controls[Patch()->CTRL_2], - 0.0, 1.0f, Parameter::LINEAR); - break; - case DropletState::kRight: - vca[2].Init(Patch()->controls[Patch()->CTRL_3], - 0.0, 1.0f, Parameter::LINEAR); - vca[3].Init(Patch()->controls[Patch()->CTRL_4], - 0.0, 1.0f, Parameter::LINEAR); - break; - } + SetControls(); } VCADroplet::~VCADroplet() {} @@ -90,4 +66,34 @@ void VCADroplet::Draw() { DrawName("VCA"); } -void VCADroplet::UpdateStateCallback() {} +void VCADroplet::UpdateStateCallback() { + SetControls(); +} + +void VCADroplet::SetControls() { + switch (GetState()) { + default: + case DropletState::kFull: + vca[0].Init(Patch()->controls[Patch()->CTRL_1], + 0.0, 1.0f, Parameter::LINEAR); + vca[1].Init(Patch()->controls[Patch()->CTRL_2], + 0.0, 1.0f, Parameter::LINEAR); + vca[2].Init(Patch()->controls[Patch()->CTRL_3], + 0.0, 1.0f, Parameter::LINEAR); + vca[3].Init(Patch()->controls[Patch()->CTRL_4], + 0.0, 1.0f, Parameter::LINEAR); + break; + case DropletState::kLeft: + vca[0].Init(Patch()->controls[Patch()->CTRL_1], + 0.0, 1.0f, Parameter::LINEAR); + vca[1].Init(Patch()->controls[Patch()->CTRL_2], + 0.0, 1.0f, Parameter::LINEAR); + break; + case DropletState::kRight: + vca[2].Init(Patch()->controls[Patch()->CTRL_3], + 0.0, 1.0f, Parameter::LINEAR); + vca[3].Init(Patch()->controls[Patch()->CTRL_4], + 0.0, 1.0f, Parameter::LINEAR); + break; + } +} diff --git a/src/droplets/vca_droplet.h b/src/droplets/vca_droplet.h index 98b53b3..6323391 100644 --- a/src/droplets/vca_droplet.h +++ b/src/droplets/vca_droplet.h @@ -56,6 +56,11 @@ public: * Runs when droplet state is updated. */ void UpdateStateCallback(); + + /* + * Set up the controls for the droplet. + */ + void SetControls(); }; #endif // DROPLETS_VCA_DROPLET_H_