42 lines
1.2 KiB
C++
42 lines
1.2 KiB
C++
#include "effect_clock.h"
|
|
#include <FastLED.h>
|
|
#include "functions.h"
|
|
#include "text.h"
|
|
#include "ntp.h"
|
|
|
|
void ClockEffect::loop() {
|
|
loop(false, CRGB(0xFFFFFF), CRGB(0x000000));
|
|
}
|
|
|
|
void ClockEffect::loop(boolean invert, CRGB fg_color, CRGB bg_color) {
|
|
if (!invert) {
|
|
clear(window, bg_color);
|
|
} else {
|
|
// Manually clear the needed parts
|
|
for(int i=0; i<window.w; i++) setPixel(window, i, 0, bg_color);
|
|
for(int y=0; y<6; y++) {
|
|
setPixel(window, 3, y, bg_color);
|
|
if (y!=2 && y!=4) {
|
|
setPixel(window, 7, y, bg_color);
|
|
}
|
|
setPixel(window, 8, y, bg_color);
|
|
setPixel(window, 12, y, bg_color);
|
|
}
|
|
fg_color = bg_color;
|
|
}
|
|
if (ntpClient.isTimeSet()==false && (ntpClient.getSeconds() & 1)==0) {
|
|
clear(window, bg_color);
|
|
return;
|
|
}
|
|
int h = ntpClient.getHours();
|
|
drawDigit(window, numbers3x5, 3, 5, 0, 1, h / 10, fg_color, invert);
|
|
drawDigit(window, numbers3x5, 3, 5, 4, 1, h % 10, fg_color, invert);
|
|
int m = ntpClient.getMinutes();
|
|
drawDigit(window, numbers3x5, 3, 5, 9, 1, m / 10, fg_color, invert);
|
|
drawDigit(window, numbers3x5, 3, 5, 13, 1, m % 10, fg_color, invert);
|
|
if (ntpClient.getSeconds() & 1) {
|
|
setPixel(window, 7, 2, fg_color);
|
|
setPixel(window, 7, 4, fg_color);
|
|
}
|
|
}
|