// ****************** НАСТРОЙКИ ЧАСОВ *****************
#define MIN_COLOR CRGB::White // цвет минут
#define HOUR_COLOR CRGB::White // цвет часов
#define DOT_COLOR CRGB::White // цвет точек
#define NORMAL_CLOCK_COLOR CRGB::White // Нормальный цвет монохромных цветов
#define CONTRAST_COLOR_1 CRGB::Orange // контрастный цвет часов
#define CONTRAST_COLOR_2 CRGB::Green // контрастный цвет часов
#define CONTRAST_COLOR_3 CRGB::Yellow // контрастный цвет часов
#define HUE_STEP 5 // шаг цвета часов в режиме радужной смены
#define HUE_GAP 30 // шаг цвета между цифрами в режиме радужной смены
// ****************** ДЛЯ РАЗРАБОТЧИКОВ ****************
uint8_t clockHue;
CRGB clockLED[5] = {HOUR_COLOR, HOUR_COLOR, DOT_COLOR, MIN_COLOR, MIN_COLOR};
void clockColor() {
int8_t color_idx = 0;
// switch (thisMode) {
case MC_CLOCK:
// Если режим часов включен как "Ночные часы" - цвет определять по настроенному цвету ночных часов
// Иначе - цвет часов зависит от режима (Монохром, Каждая цифра свой цвет, Цвет часов-точек-минут" и т.д)
color_idx = isNightClock ? -2 : COLOR_MODE;
break;
case MC_COLORS:
case MC_FILL_COLOR:
color_idx = -1;
break;
default:
color_idx = COLOR_MODE;
break;
}
if (color_idx == -2) {
// Цвет по индексу настроек текущего ночного цвета
CRGB color = getNightClockColorByIndex(nightClockColor);
for (uint8_t i = 0; i < 5; i++) clockLED[i] = color;
} else if (color_idx == -1) {
// Инверсный от основного цвет
CRGB color = globalColor == 0xFFFFFF
? color = CRGB::Navy
: -CRGB(globalColor);
for (uint8_t i = 0; i < 5; i++) clockLED[i] = color;
} else if (color_idx == 0) {
// Монохромные часы
uint8_t hue = effectScaleParam[MC_CLOCK];
CHSV color = hue <= 1 ? CHSV(255, 0, 255): CHSV(hue, 255, 255);
for (uint8_t i = 0; i < 5; i++) clockLED[i] = color;
} else if (color_idx == 1) {
// Каждая цифра своим цветом, плавная смена цвета
for (uint8_t i = 0; i < 5; i++) clockLED[i] = CHSV(clockHue + HUE_GAP * i, 255, 255);
clockLED[2] = CHSV(clockHue + 128 + HUE_GAP * 1, 255, 255); // точки делаем другой цвет
} else if (color_idx == 2) {
// Часы, точки, минуты своим цветом, плавная смена цвета
clockLED[0] = CHSV(clockHue + HUE_GAP * 0, 255, 255);
clockLED[1] = CHSV(clockHue + HUE_GAP * 0, 255, 255);
clockLED[2] = CHSV(clockHue + 128 + HUE_GAP * 1, 255, 255); // точки делаем другой цвет
clockLED[3] = CHSV(clockHue + HUE_GAP * 2, 255, 255);
clockLED[4] = CHSV(clockHue + HUE_GAP * 2, 255, 255);
} else {
CRGB color = getGlobalClockColor();
for (uint8_t i = 0; i < 5; i++) clockLED[i] = color;
}
}