]> git.donarmstrong.com Git - qmk_firmware.git/blobdiff - quantum/color.c
[Keyboard] fixed pins for numpad_5x4 layout (#6311)
[qmk_firmware.git] / quantum / color.c
index c49877592eceb255b82cbac6fd77aef7f26c4d1c..a309da379a41cbefbb1e077a71fa8b1347e69bbd 100644 (file)
 RGB hsv_to_rgb( HSV hsv )
 {
        RGB rgb;
-       uint8_t region, p, q, t;
-       uint16_t h, s, v, remainder;
+       uint8_t region, remainder, p, q, t;
+       uint16_t h, s, v;
 
        if ( hsv.s == 0 )
        {
+#ifdef USE_CIE1931_CURVE
+               rgb.r = rgb.g = rgb.b = pgm_read_byte( &CIE1931_CURVE[hsv.v] );
+#else
                rgb.r = hsv.v;
                rgb.g = hsv.v;
                rgb.b = hsv.v;
+#endif
                return rgb;
        }
 
@@ -37,8 +41,8 @@ RGB hsv_to_rgb( HSV hsv )
        s = hsv.s;
        v = hsv.v;
 
-       region = h / 43;
-       remainder = (h - (region * 43)) * 6;
+       region = h * 6 / 255;
+       remainder = (h * 2 - region * 85) * 3;
 
        p = (v * (255 - s)) >> 8;
        q = (v * (255 - ((s * remainder) >> 8))) >> 8;
@@ -46,6 +50,7 @@ RGB hsv_to_rgb( HSV hsv )
 
        switch ( region )
        {
+               case 6:
                case 0:
                        rgb.r = v;
                        rgb.g = t;