From a8a2340ac4be6f5c519db02eed715c484819c736 Mon Sep 17 00:00:00 2001 From: Christian Colglazier <christian@cacolglazier.com> Date: Tue, 2 Nov 2021 21:43:58 -0400 Subject: [PATCH] VCA title animation --- src/droplets/vca_droplet.cpp | 63 +++++++++++++++++++++++++++++++++++- 1 file changed, 62 insertions(+), 1 deletion(-) diff --git a/src/droplets/vca_droplet.cpp b/src/droplets/vca_droplet.cpp index 9d7af64..607d800 100644 --- a/src/droplets/vca_droplet.cpp +++ b/src/droplets/vca_droplet.cpp @@ -25,7 +25,7 @@ VCADroplet::VCADroplet(DaisyPatch* m_patch, case DropletState::kRight: vca[2].Init(Patch()->controls[Patch()->CTRL_3], 0.0, 1.0f, Parameter::LINEAR); - vca[3].Init(Patch()->controls[Patch()->CTRL_3], + vca[3].Init(Patch()->controls[Patch()->CTRL_4], 0.0, 1.0f, Parameter::LINEAR); break; } @@ -46,5 +46,66 @@ void VCADroplet::Process(AudioHandle::InputBuffer in, AudioHandle::OutputBuffer } void VCADroplet::Draw() { + int divider; + switch (GetState()) { + default: + case DropletState::kFull: + divider = (GetScreenMax()-GetScreenMin())/5; + DrawSolidRect(Patch(), + GetScreenMin(), + 0, + divider, + GetTitleHeight()*vca[0].Process(), + true); + DrawSolidRect(Patch(), + GetScreenMin()+divider, + 0, + GetScreenMin()+divider*2, + GetTitleHeight()*vca[1].Process(), + true); + DrawSolidRect(Patch(), + GetScreenMin()+divider*3, + 0, + GetScreenMin()+divider*4, + GetTitleHeight()*vca[2].Process(), + true); + DrawSolidRect(Patch(), + GetScreenMin()+divider*4, + 0, + GetScreenMax(), + GetTitleHeight()*vca[3].Process(), + true); + break; + case DropletState::kLeft: + divider = (GetScreenMax()-GetScreenMin())/3; + DrawSolidRect(Patch(), + GetScreenMin(), + 0, + GetScreenMin()+divider, + GetTitleHeight()*vca[0].Process(), + true); + DrawSolidRect(Patch(), + GetScreenMax()-divider, + 0, + GetScreenMax(), + GetTitleHeight()*vca[1].Process(), + true); + break; + case DropletState::kRight: + divider = (GetScreenMax()-GetScreenMin())/3; + DrawSolidRect(Patch(), + GetScreenMin(), + 0, + GetScreenMin()+divider, + GetTitleHeight()*vca[2].Process(), + true); + DrawSolidRect(Patch(), + GetScreenMax()-divider, + 0, + GetScreenMax(), + GetTitleHeight()*vca[3].Process(), + true); + break; + } DrawName("VCA"); }