|
|
@@ -40,7 +40,9 @@ static void rgb_write_config(void); |
|
|
|
static void rgb_read_config(void); |
|
|
|
static void rgb_set_level(uint8_t level); |
|
|
|
static void rgb_refresh(void); |
|
|
|
#if 0 |
|
|
|
static void hue_to_rgb(uint16_t hue, struct cRGB *rgb); |
|
|
|
#endif |
|
|
|
static void hsb_to_rgb(uint16_t hue, uint8_t saturation, uint8_t brightness, struct cRGB *rgb); |
|
|
|
|
|
|
|
void rgb_init(void) |
|
|
@@ -63,7 +65,7 @@ void rgb_read_config(void) |
|
|
|
|
|
|
|
void rgb_write_config(void) |
|
|
|
{ |
|
|
|
eeprom_write_byte(EECONFIG_RGB, rgb_config.raw); |
|
|
|
eeprom_update_byte(EECONFIG_RGB, rgb_config.raw); |
|
|
|
} |
|
|
|
|
|
|
|
void rgb_toggle(void) |
|
|
@@ -118,19 +120,28 @@ void rgb_step(void) |
|
|
|
rgb_config.level = 0; |
|
|
|
} |
|
|
|
rgb_config.enable = (rgb_config.level != 0); |
|
|
|
rgb_write_config(); |
|
|
|
rgb_set_level(rgb_config.level); |
|
|
|
} |
|
|
|
|
|
|
|
void rgb_set_level(uint8_t level) |
|
|
|
{ |
|
|
|
dprintf("RGB Level: %d\n", level); |
|
|
|
if (level == RGB_OFF) { |
|
|
|
rgb_brightness = 0; |
|
|
|
} |
|
|
|
else if (backlight_config.enable) { |
|
|
|
if (backlight_config.level >= 1 && backlight_config.level <= 3) { |
|
|
|
rgb_brightness = backlight_brightness; |
|
|
|
} |
|
|
|
} |
|
|
|
else { |
|
|
|
rgb_brightness = 16; |
|
|
|
} |
|
|
|
if (level <= RGB_WHITE) { |
|
|
|
rgb_fading_enable = 0; |
|
|
|
rgb_rainbow = 0; |
|
|
|
if (level == RGB_OFF) { |
|
|
|
rgb_brightness = 0; |
|
|
|
} |
|
|
|
else { |
|
|
|
if (level != RGB_OFF) { |
|
|
|
if (level == RGB_WHITE) { |
|
|
|
rgb_saturation = 0; |
|
|
|
} |
|
|
@@ -186,6 +197,7 @@ void rgb_refresh(void) |
|
|
|
ws2812_setleds(rgb_color, RGB_LED_COUNT); |
|
|
|
} |
|
|
|
|
|
|
|
#if 0 |
|
|
|
void hue_to_rgb(uint16_t hue, struct cRGB *rgb) |
|
|
|
{ |
|
|
|
uint8_t hi = hue / 60; |
|
|
@@ -200,6 +212,7 @@ void hue_to_rgb(uint16_t hue, struct cRGB *rgb) |
|
|
|
case 5: rgb->r = 255; rgb->g = 0; rgb->b = q; break; |
|
|
|
} |
|
|
|
} |
|
|
|
#endif |
|
|
|
|
|
|
|
/* |
|
|
|
* original code: https://blog.adafruit.com/2012/03/14/constant-brightness-hsb-to-rgb-algorithm/ |