From eebafd589042e596012eabc579a36a2eefede365 Mon Sep 17 00:00:00 2001 From: Christian Colglazier Date: Mon, 28 Feb 2022 20:06:11 -0500 Subject: [PATCH] Sequencer graph title --- src/droplets/sequencer_droplet.cpp | 19 ++++++++++++++++++- src/droplets/sequencer_droplet.h | 7 +++++++ 2 files changed, 25 insertions(+), 1 deletion(-) diff --git a/src/droplets/sequencer_droplet.cpp b/src/droplets/sequencer_droplet.cpp index 6df3d82..ffc3f86 100644 --- a/src/droplets/sequencer_droplet.cpp +++ b/src/droplets/sequencer_droplet.cpp @@ -5,12 +5,16 @@ SequencerDroplet::SequencerDroplet(DaisyPatch* m_patch, float sample_rate) : Droplet(m_patch, m_state) { + SetAnimationRate(20); + CreateTitleGraph(); SetDimensions(); SetControls(); SetInMenu(); } -SequencerDroplet::~SequencerDroplet() {} +SequencerDroplet::~SequencerDroplet() { + delete title_graph; +} void SequencerDroplet::Control() { Patch()->ProcessAnalogControls(); @@ -109,12 +113,20 @@ void SequencerDroplet::Draw() { 56, length_text, !InMenu()); + + if(NeedUpdate()) { + title_graph->Update(); + } + title_graph->SetPixelPercentage(sequence[step]/5.0f); + title_graph->Draw(Patch(), GetScreenMin(), 0); DrawName("Sequencer"); } void SequencerDroplet::UpdateStateCallback() { SetDimensions(); SetInMenu(); + delete title_graph; + CreateTitleGraph(); } void SequencerDroplet::SetControls() { @@ -157,3 +169,8 @@ void SequencerDroplet::SetInMenu() { selected = 0; AdjustSelected(-1); } + +void SequencerDroplet::CreateTitleGraph() { + title_graph = new Graph(GetScreenMax()-GetScreenMin(), + GetTitleHeight()); +} diff --git a/src/droplets/sequencer_droplet.h b/src/droplets/sequencer_droplet.h index afd6933..a4600a7 100644 --- a/src/droplets/sequencer_droplet.h +++ b/src/droplets/sequencer_droplet.h @@ -8,6 +8,7 @@ #include "droplet.h" #include "../util.h" +#include "../graphics/graph.h" #define MAX_SEQUENCE_LENGTH 32 #define CONTROL_DEADZONE 0.00499f @@ -26,6 +27,7 @@ private: Parameter control[4]; float last_control_value[4] = { 0.0f }; std::string length_text = ""; + Graph* title_graph; /* * Set the sequencer to the next step. @@ -60,6 +62,11 @@ private: * Set sequancer in the menu. */ void SetInMenu(); + + /* + * Create a new graph for the title bar. + */ + void CreateTitleGraph(); public: /* * Constructor for a droplet.