#include "effect_dvd.h" #include "my_fastled.h" void DvdEffect::loop(uint16_t ms) { bool dir_changed = false; EVERY_N_MILLISECONDS( 250 ) { _x += _x_dir; _y += _y_dir; if (_x == 0 || _x + settings.effects.dvd.width >= window->width) { _x_dir = -_x_dir; dir_changed = true; } if (_y == 0 || _y + settings.effects.dvd.height >= window->height) { _y_dir = -_y_dir; dir_changed = true; } } window->clear(); for (int x=0; xsetPixel(_x + x, _y + y, (CRGB*)&_color); } if (dir_changed) _color = (CRGB)CHSV(random8(), 255, 255); } bool DvdEffect::can_be_shown_with_clock() { return true; } DvdEffect::DvdEffect() { _color = CHSV(random8(), 255, 255); } DvdEffect::~DvdEffect() { delete window; }