Effects now use Constructor and Destructor to initialize or delete their data, instead of using start() and stop().
This commit is contained in:
@ -2,17 +2,14 @@
|
||||
#include "my_color_palettes.h"
|
||||
#include "functions.h"
|
||||
|
||||
MatrixEffectColumn::MatrixEffectColumn() {
|
||||
}
|
||||
|
||||
MatrixEffectColumn::MatrixEffectColumn(Window* win, int xPos) : MatrixEffectColumn() {
|
||||
MatrixEffectColumn::MatrixEffectColumn(Window* win, int xPos) {
|
||||
window = win;
|
||||
x = xPos;
|
||||
start();
|
||||
restart();
|
||||
y = random8(0, window->height);
|
||||
}
|
||||
|
||||
void MatrixEffectColumn::start() {
|
||||
void MatrixEffectColumn::restart() {
|
||||
y=-1;
|
||||
length = random8(EFFECT_MATRIX_LENGTH_MIN, EFFECT_MATRIX_LENGTH_MAX);
|
||||
running = true;
|
||||
@ -35,7 +32,7 @@ void MatrixEffectColumn::loop() {
|
||||
if (!running) {
|
||||
if (random8() < 20) {
|
||||
// Start the column again.
|
||||
start();
|
||||
restart();
|
||||
}
|
||||
} else {
|
||||
if (millis() - last_move > speed) {
|
||||
@ -78,8 +75,8 @@ CRGB RandomMatrixEffectColumn::_getColor(uint8_t i) {
|
||||
return color;
|
||||
}
|
||||
|
||||
void RandomMatrixEffectColumn::start() {
|
||||
MatrixEffectColumn::start();
|
||||
void RandomMatrixEffectColumn::restart() {
|
||||
MatrixEffectColumn::restart();
|
||||
_hue = random8();
|
||||
}
|
||||
|
||||
@ -95,24 +92,23 @@ void RandomMatrixEffectColumn::start() {
|
||||
boolean MatrixEffect::can_be_shown_with_clock() { return true; };
|
||||
|
||||
MatrixEffect::MatrixEffect() {
|
||||
_columns = new MatrixEffectColumn* [window->width];
|
||||
_init();
|
||||
}
|
||||
|
||||
void MatrixEffect::start() {
|
||||
_columns = new MatrixEffectColumn* [window->width];
|
||||
void MatrixEffect::_init() {
|
||||
for (int i=0; i<window->width; i++) _columns[i] = new MatrixEffectColumn(window, i);
|
||||
}
|
||||
|
||||
void RandomMatrixEffect::start() {
|
||||
_columns = new MatrixEffectColumn* [window->width];
|
||||
void RandomMatrixEffect::_init() {
|
||||
for (int i=0; i<window->width; i++) _columns[i] = new RandomMatrixEffectColumn(window, i);
|
||||
}
|
||||
|
||||
void RainbowMatrixEffect::start() {
|
||||
_columns = new MatrixEffectColumn* [window->width];
|
||||
void RainbowMatrixEffect::_init() {
|
||||
for (int i=0; i<window->width; i++) _columns[i] = new RainbowMatrixEffectColumn(window, i);
|
||||
}
|
||||
|
||||
void MatrixEffect::stop() {
|
||||
MatrixEffect::~MatrixEffect() {
|
||||
for (int i=0; i<window->width; i++) {
|
||||
delete _columns[i];
|
||||
}
|
||||
|
Reference in New Issue
Block a user