diff options
author | Jack Humbert <jack.humb@gmail.com> | 2017-02-11 11:49:00 -0500 |
---|---|---|
committer | GitHub <noreply@github.com> | 2017-02-11 11:49:00 -0500 |
commit | 6bb479ea45183cd2d9966ef660f8126cbfd3d849 (patch) | |
tree | ce8b552f58b3c4887225f4a4b808045252deee0c /keyboards/handwired/promethium/rgbsps.c | |
parent | 5bdddb7821a229470d9895ace8686b9fcf37494a (diff) | |
parent | 4163a3819ee4cdd49446da612a6ef3f74091ede1 (diff) |
Merge pull request #1085 from priyadi/promethium
Promethium keyboard layout update
Diffstat (limited to 'keyboards/handwired/promethium/rgbsps.c')
-rw-r--r-- | keyboards/handwired/promethium/rgbsps.c | 51 |
1 files changed, 50 insertions, 1 deletions
diff --git a/keyboards/handwired/promethium/rgbsps.c b/keyboards/handwired/promethium/rgbsps.c index ea922ec3fd..f30badd356 100644 --- a/keyboards/handwired/promethium/rgbsps.c +++ b/keyboards/handwired/promethium/rgbsps.c @@ -21,4 +21,53 @@ void rgbsps_turnoff(void) { void rgbsps_send(void) { ws2812_setleds(led, RGBSPS_NUM); -}
\ No newline at end of file +} + +void rgbsps_sethsv(uint8_t index, uint16_t hue, uint8_t sat, uint8_t val) { + uint8_t r = 0, g = 0, b = 0, base, color; + + if (sat == 0) { // Acromatic color (gray). Hue doesn't mind. + r = val; + g = val; + b = val; + } else { + base = ((255 - sat) * val) >> 8; + color = (val - base) * (hue % 60) / 60; + + switch (hue / 60) { + case 0: + r = val; + g = base + color; + b = base; + break; + case 1: + r = val - color; + g = val; + b = base; + break; + case 2: + r = base; + g = val; + b = base + color; + break; + case 3: + r = base; + g = val - color; + b = val; + break; + case 4: + r = base + color; + g = base; + b = val; + break; + case 5: + r = val; + g = base; + b = val - color; + break; + } + } + + rgbsps_set(index, r, g, b); +} + |