diff --git a/src/droplets/mixer_droplet.cpp b/src/droplets/mixer_droplet.cpp index 1ac30cf..60e61ba 100644 --- a/src/droplets/mixer_droplet.cpp +++ b/src/droplets/mixer_droplet.cpp @@ -4,31 +4,7 @@ MixerDroplet::MixerDroplet(DaisyPatch* m_patch, DropletState m_state) : Droplet(m_patch, m_state) { - switch (GetState()) { - default: - case DropletState::kFull: - mix[0].Init(Patch()->controls[Patch()->CTRL_1], - 0.0, 1.0f, Parameter::LINEAR); - mix[1].Init(Patch()->controls[Patch()->CTRL_2], - 0.0, 1.0f, Parameter::LINEAR); - mix[2].Init(Patch()->controls[Patch()->CTRL_3], - 0.0, 1.0f, Parameter::LINEAR); - mix[3].Init(Patch()->controls[Patch()->CTRL_4], - 0.0, 1.0f, Parameter::LINEAR); - break; - case DropletState::kLeft: - mix[0].Init(Patch()->controls[Patch()->CTRL_1], - 0.0, 1.0f, Parameter::LINEAR); - mix[1].Init(Patch()->controls[Patch()->CTRL_2], - 0.0, 1.0f, Parameter::LINEAR); - break; - case DropletState::kRight: - mix[2].Init(Patch()->controls[Patch()->CTRL_3], - 0.0, 1.0f, Parameter::LINEAR); - mix[3].Init(Patch()->controls[Patch()->CTRL_4], - 0.0, 1.0f, Parameter::LINEAR); - break; - } + SetControls(); } MixerDroplet::~MixerDroplet() {} @@ -100,4 +76,34 @@ void MixerDroplet::Draw() { DrawName("Mixer"); } -void MixerDroplet::UpdateStateCallback() {} +void MixerDroplet::UpdateStateCallback() { + SetControls(); +} + +void MixerDroplet::SetControls() { + switch (GetState()) { + default: + case DropletState::kFull: + mix[0].Init(Patch()->controls[Patch()->CTRL_1], + 0.0, 1.0f, Parameter::LINEAR); + mix[1].Init(Patch()->controls[Patch()->CTRL_2], + 0.0, 1.0f, Parameter::LINEAR); + mix[2].Init(Patch()->controls[Patch()->CTRL_3], + 0.0, 1.0f, Parameter::LINEAR); + mix[3].Init(Patch()->controls[Patch()->CTRL_4], + 0.0, 1.0f, Parameter::LINEAR); + break; + case DropletState::kLeft: + mix[0].Init(Patch()->controls[Patch()->CTRL_1], + 0.0, 1.0f, Parameter::LINEAR); + mix[1].Init(Patch()->controls[Patch()->CTRL_2], + 0.0, 1.0f, Parameter::LINEAR); + break; + case DropletState::kRight: + mix[2].Init(Patch()->controls[Patch()->CTRL_3], + 0.0, 1.0f, Parameter::LINEAR); + mix[3].Init(Patch()->controls[Patch()->CTRL_4], + 0.0, 1.0f, Parameter::LINEAR); + break; + } +} diff --git a/src/droplets/mixer_droplet.h b/src/droplets/mixer_droplet.h index 454a9f4..15b35a6 100644 --- a/src/droplets/mixer_droplet.h +++ b/src/droplets/mixer_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_