Hanglamp/src/Hanglamp.cpp
2025-02-09 20:40:30 +01:00

76 lines
1.4 KiB
C++

#include "Hanglamp.hpp"
CRGB colorTable[] = {
CRGB(255, 243, 218),
CRGB(255, 250, 237),
CRGB(255, 255, 255),
CRGB(250, 233, 213),
CRGB::Red,
CRGB::Blue,
CRGB::Green,
CRGB::Purple,
CRGB::Turquoise,
CRGB::Yellow,
};
Hanglamp::Hanglamp(){
}
void Hanglamp::setup(){
}
void Hanglamp::setColor(CRGB color){
jumpTo(color);
}
void Hanglamp::nextColor(){
this->colorIndex++;
if(colorIndex >= (sizeof(colorTable) / sizeof(CRGB))){
colorIndex = 0;
}
Serial.printf("colorIndex: %d\n", this->colorIndex);
setColor(colorTable[this->colorIndex]);
}
void Hanglamp::setBrightness(int brightness){
uint8_t newBrightness =
brightness < 0 ? 0 :
brightness > 255 ? 255 :
brightness;
this->brightness = newBrightness;
Serial.printf("new brightness: %d\n", newBrightness);
FastLED.setBrightness(newBrightness);
FastLED.show();
#ifdef ENABLE_MQTT
MQTT_publish("hanglamp/brightness", String(newBrightness));
#endif
}
void Hanglamp::adjustBrightness(int add){
this->setBrightness(this->brightness + add);
}
void Hanglamp::controlsCallback(ControlEvent event){
Serial.printf("ControlEvent: %d\n", event);
switch(event){
case Clockwise:
adjustBrightness(4);
break;
case Counterclockwise:
adjustBrightness(-4);
break;
case Key:
nextColor();
break;
}
}
void Hanglamp::status(CRGB color){
Led_status(color);
}