]> git.donarmstrong.com Git - qmk_firmware.git/blobdiff - quantum/color.c
Remove more commented out MCUs
[qmk_firmware.git] / quantum / color.c
index 8ede053e71193f3d8744877f615828ddf031fcd3..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;
@@ -78,9 +83,11 @@ RGB hsv_to_rgb( HSV hsv )
                        break;
        }
 
+#ifdef USE_CIE1931_CURVE
        rgb.r = pgm_read_byte( &CIE1931_CURVE[rgb.r] );
        rgb.g = pgm_read_byte( &CIE1931_CURVE[rgb.g] );
        rgb.b = pgm_read_byte( &CIE1931_CURVE[rgb.b] );
+#endif
 
        return rgb;
 }