diff options
| author | Drashna Jaelre <drashna@live.com> | 2019-12-31 08:33:49 -0800 |
|---|---|---|
| committer | Joel Challis <git@zvecr.com> | 2019-12-31 16:33:49 +0000 |
| commit | 7ba6456c0b2e041bb9f97dbed265c5b8b4b12192 (patch) | |
| tree | 4e01ff717ab7d4c1d6d979f5d01ad8d4d841962e /quantum/color.c | |
| parent | a52e55ec09c587ca58a156a6c174d51e0ad228b4 (diff) | |
| download | qmk_firmware-7ba6456c0b2e041bb9f97dbed265c5b8b4b12192.tar.gz qmk_firmware-7ba6456c0b2e041bb9f97dbed265c5b8b4b12192.zip | |
Use White channel on RGBW LEDs (#7678)
* Use White channel on RGBW LEDs
Co-authored-by: kwerdenker <sebastian.spindler@gmail.com>
* Manually apply white channel to array
* Move where convert_rgb_to_rgbw is called
* Fix type for rgbw led struct
* Add changes to Ergodox EZ
can revert if deemed necessary
* Revert "Add changes to Ergodox EZ"
This reverts commit aa44db198d40d758ca10470eb94615513592d1dd.
* Revert "Fix type for rgbw led struct"
This reverts commit c5c744cba040201cc0d124400773cf13f8a2cf22.
* Revert "Move where convert_rgb_to_rgbw is called"
This reverts commit cd7f17caf6dd30731c54b3be54490fe4519444f9.
* Revert changes and fix up functions
* Enable white channel for Ergodox EZ as well
* Only run conversion of rgblight is enabled
Co-authored-by: kwerdenker <sebastian.spindler@gmail.com>
Diffstat (limited to 'quantum/color.c')
| -rw-r--r-- | quantum/color.c | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/quantum/color.c b/quantum/color.c index 1f398e240..8bd52444f 100644 --- a/quantum/color.c +++ b/quantum/color.c | |||
| @@ -85,3 +85,17 @@ RGB hsv_to_rgb(HSV hsv) { | |||
| 85 | 85 | ||
| 86 | return rgb; | 86 | return rgb; |
| 87 | } | 87 | } |
| 88 | |||
| 89 | #ifdef RGBW | ||
| 90 | #ifndef MIN | ||
| 91 | # define MIN(a, b) ((a) < (b) ? (a) : (b)) | ||
| 92 | #endif | ||
| 93 | void convert_rgb_to_rgbw(LED_TYPE *led) { | ||
| 94 | // Determine lowest value in all three colors, put that into | ||
| 95 | // the white channel and then shift all colors by that amount | ||
| 96 | led->w = MIN(led->r, MIN(led->g, led->b)); | ||
| 97 | led->r -= led->w; | ||
| 98 | led->g -= led->w; | ||
| 99 | led->b -= led->w; | ||
| 100 | } | ||
| 101 | #endif | ||
