|
|
@ -55,13 +55,8 @@ uint8_t rgblight_inited = 0; |
|
|
|
|
|
|
|
|
|
|
|
void sethsv(uint16_t hue, uint8_t sat, uint8_t val, struct cRGB *led1) { |
|
|
|
// Convert hue, saturation, and value (HSV/HSB) to RGB. DIM_CURVE is used only |
|
|
|
// on value and saturation (inverted). This looks the most natural. |
|
|
|
uint8_t r = 0, g = 0, b = 0, base, color; |
|
|
|
|
|
|
|
val = pgm_read_byte(&DIM_CURVE[val]); |
|
|
|
sat = 255 - pgm_read_byte(&DIM_CURVE[255 - sat]); |
|
|
|
|
|
|
|
if (sat == 0) { // Acromatic color (gray). Hue doesn't mind. |
|
|
|
r = val; |
|
|
|
g = val; |
|
|
@ -103,6 +98,9 @@ void sethsv(uint16_t hue, uint8_t sat, uint8_t val, struct cRGB *led1) { |
|
|
|
break; |
|
|
|
} |
|
|
|
} |
|
|
|
r = pgm_read_byte(&DIM_CURVE[r]); |
|
|
|
g = pgm_read_byte(&DIM_CURVE[g]); |
|
|
|
b = pgm_read_byte(&DIM_CURVE[b]); |
|
|
|
|
|
|
|
setrgb(r, g, b, led1); |
|
|
|
} |
|
|
|