aboutsummaryrefslogtreecommitdiff
path: root/quantum/color.c
diff options
context:
space:
mode:
authorskullY <skullydazed@gmail.com>2019-08-30 11:19:03 -0700
committerskullydazed <skullydazed@users.noreply.github.com>2019-08-30 15:01:52 -0700
commitb624f32f944acdc59dcb130674c09090c5c404cb (patch)
treebc13adbba137d122d9a2c2fb2fafcbb08ac10e25 /quantum/color.c
parent61af76a10d00aba185b8338604171de490a13e3b (diff)
downloadqmk_firmware-b624f32f944acdc59dcb130674c09090c5c404cb.tar.gz
qmk_firmware-b624f32f944acdc59dcb130674c09090c5c404cb.zip
clang-format changes
Diffstat (limited to 'quantum/color.c')
-rw-r--r--quantum/color.c117
1 files changed, 56 insertions, 61 deletions
diff --git a/quantum/color.c b/quantum/color.c
index a309da379..847129736 100644
--- a/quantum/color.c
+++ b/quantum/color.c
@@ -14,81 +14,76 @@
14 * along with this program. If not, see <http://www.gnu.org/licenses/>. 14 * along with this program. If not, see <http://www.gnu.org/licenses/>.
15 */ 15 */
16 16
17
18#include "color.h" 17#include "color.h"
19#include "led_tables.h" 18#include "led_tables.h"
20#include "progmem.h" 19#include "progmem.h"
21 20
22RGB hsv_to_rgb( HSV hsv ) 21RGB hsv_to_rgb(HSV hsv) {
23{ 22 RGB rgb;
24 RGB rgb; 23 uint8_t region, remainder, p, q, t;
25 uint8_t region, remainder, p, q, t; 24 uint16_t h, s, v;
26 uint16_t h, s, v;
27 25
28 if ( hsv.s == 0 ) 26 if (hsv.s == 0) {
29 {
30#ifdef USE_CIE1931_CURVE 27#ifdef USE_CIE1931_CURVE
31 rgb.r = rgb.g = rgb.b = pgm_read_byte( &CIE1931_CURVE[hsv.v] ); 28 rgb.r = rgb.g = rgb.b = pgm_read_byte(&CIE1931_CURVE[hsv.v]);
32#else 29#else
33 rgb.r = hsv.v; 30 rgb.r = hsv.v;
34 rgb.g = hsv.v; 31 rgb.g = hsv.v;
35 rgb.b = hsv.v; 32 rgb.b = hsv.v;
36#endif 33#endif
37 return rgb; 34 return rgb;
38 } 35 }
39 36
40 h = hsv.h; 37 h = hsv.h;
41 s = hsv.s; 38 s = hsv.s;
42 v = hsv.v; 39 v = hsv.v;
43 40
44 region = h * 6 / 255; 41 region = h * 6 / 255;
45 remainder = (h * 2 - region * 85) * 3; 42 remainder = (h * 2 - region * 85) * 3;
46 43
47 p = (v * (255 - s)) >> 8; 44 p = (v * (255 - s)) >> 8;
48 q = (v * (255 - ((s * remainder) >> 8))) >> 8; 45 q = (v * (255 - ((s * remainder) >> 8))) >> 8;
49 t = (v * (255 - ((s * (255 - remainder)) >> 8))) >> 8; 46 t = (v * (255 - ((s * (255 - remainder)) >> 8))) >> 8;
50 47
51 switch ( region ) 48 switch (region) {
52 { 49 case 6:
53 case 6: 50 case 0:
54 case 0: 51 rgb.r = v;
55 rgb.r = v; 52 rgb.g = t;
56 rgb.g = t; 53 rgb.b = p;
57 rgb.b = p; 54 break;
58 break; 55 case 1:
59 case 1: 56 rgb.r = q;
60 rgb.r = q; 57 rgb.g = v;
61 rgb.g = v; 58 rgb.b = p;
62 rgb.b = p; 59 break;
63 break; 60 case 2:
64 case 2: 61 rgb.r = p;
65 rgb.r = p; 62 rgb.g = v;
66 rgb.g = v; 63 rgb.b = t;
67 rgb.b = t; 64 break;
68 break; 65 case 3:
69 case 3: 66 rgb.r = p;
70 rgb.r = p; 67 rgb.g = q;
71 rgb.g = q; 68 rgb.b = v;
72 rgb.b = v; 69 break;
73 break; 70 case 4:
74 case 4: 71 rgb.r = t;
75 rgb.r = t; 72 rgb.g = p;
76 rgb.g = p; 73 rgb.b = v;
77 rgb.b = v; 74 break;
78 break; 75 default:
79 default: 76 rgb.r = v;
80 rgb.r = v; 77 rgb.g = p;
81 rgb.g = p; 78 rgb.b = q;
82 rgb.b = q; 79 break;
83 break; 80 }
84 }
85 81
86#ifdef USE_CIE1931_CURVE 82#ifdef USE_CIE1931_CURVE
87 rgb.r = pgm_read_byte( &CIE1931_CURVE[rgb.r] ); 83 rgb.r = pgm_read_byte(&CIE1931_CURVE[rgb.r]);
88 rgb.g = pgm_read_byte( &CIE1931_CURVE[rgb.g] ); 84 rgb.g = pgm_read_byte(&CIE1931_CURVE[rgb.g]);
89 rgb.b = pgm_read_byte( &CIE1931_CURVE[rgb.b] ); 85 rgb.b = pgm_read_byte(&CIE1931_CURVE[rgb.b]);
90#endif 86#endif
91 87
92 return rgb; 88 return rgb;
93} 89}
94