2021-02-21 23:22:01 +01:00
|
|
|
#pragma once
|
|
|
|
|
|
|
|
#include <VulcanoLE/Visual/VIZ.h>
|
|
|
|
|
|
|
|
namespace VIZ {
|
|
|
|
class RainbowLine : public VIZ {
|
|
|
|
int currentColumn = 0;
|
2021-12-30 18:06:04 +01:00
|
|
|
double deltaNeeded = 0.0;
|
2021-02-21 23:22:01 +01:00
|
|
|
double deltaElapsed = 0;
|
|
|
|
rgba *colours = nullptr;
|
2021-05-02 17:25:03 +02:00
|
|
|
int maxCols = 0;
|
2021-02-21 23:22:01 +01:00
|
|
|
double lastValue = 0;
|
|
|
|
double decayValue = 0;
|
2021-12-30 18:06:04 +01:00
|
|
|
double tailFactor = 0.5;
|
2021-02-21 23:22:01 +01:00
|
|
|
public:
|
|
|
|
RainbowLine(AudioGrabber *pGrabber, Vulcan121 *vulcan);
|
|
|
|
~RainbowLine() override;
|
2021-02-22 14:27:34 +01:00
|
|
|
void onSetup() override;
|
|
|
|
void onTick(float delta) override;
|
2021-02-21 23:22:01 +01:00
|
|
|
void calcNextDelta(double ratio);
|
|
|
|
const char *name() override;
|
|
|
|
std::string m_name = "Rainbow Line";
|
2021-12-30 18:06:04 +01:00
|
|
|
led_map data{};
|
2021-02-21 23:22:01 +01:00
|
|
|
bool firstUnder = true;
|
2021-02-22 14:27:34 +01:00
|
|
|
double deltaMove(double val);
|
2021-05-02 17:25:03 +02:00
|
|
|
void moveLine(double val, double d);
|
|
|
|
double factor = 1.0;
|
2021-02-21 23:22:01 +01:00
|
|
|
};
|
|
|
|
}
|