qmk_firmware

QMK firmware for my keyboards (Corne, Sweep Ferris) and trackball (Ploopy Adept)
Log | Files | Refs | Submodules | LICENSE

color.h (2795B)


      1 /* Copyright 2017 Jason Williams
      2  *
      3  * This program is free software: you can redistribute it and/or modify
      4  * it under the terms of the GNU General Public License as published by
      5  * the Free Software Foundation, either version 2 of the License, or
      6  * (at your option) any later version.
      7  *
      8  * This program is distributed in the hope that it will be useful,
      9  * but WITHOUT ANY WARRANTY; without even the implied warranty of
     10  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
     11  * GNU General Public License for more details.
     12  *
     13  * You should have received a copy of the GNU General Public License
     14  * along with this program.  If not, see <http://www.gnu.org/licenses/>.
     15  */
     16 
     17 #pragma once
     18 
     19 #include <stdint.h>
     20 #include <stdbool.h>
     21 #include "util.h"
     22 
     23 // clang-format off
     24 
     25 /*
     26  * RGB Colors
     27  */
     28 #define RGB_AZURE       0x99, 0xF5, 0xFF
     29 #define RGB_BLACK       0x00, 0x00, 0x00
     30 #define RGB_BLUE        0x00, 0x00, 0xFF
     31 #define RGB_CHARTREUSE  0x80, 0xFF, 0x00
     32 #define RGB_CORAL       0xFF, 0x7C, 0x4D
     33 #define RGB_CYAN        0x00, 0xFF, 0xFF
     34 #define RGB_GOLD        0xFF, 0xD9, 0x00
     35 #define RGB_GOLDENROD   0xD9, 0xA5, 0x21
     36 #define RGB_GREEN       0x00, 0xFF, 0x00
     37 #define RGB_MAGENTA     0xFF, 0x00, 0xFF
     38 #define RGB_ORANGE      0xFF, 0x80, 0x00
     39 #define RGB_PINK        0xFF, 0x80, 0xBF
     40 #define RGB_PURPLE      0x7A, 0x00, 0xFF
     41 #define RGB_RED         0xFF, 0x00, 0x00
     42 #define RGB_SPRINGGREEN 0x00, 0xFF, 0x80
     43 #define RGB_TEAL        0x00, 0x80, 0x80
     44 #define RGB_TURQUOISE   0x47, 0x6E, 0x6A
     45 #define RGB_WHITE       0xFF, 0xFF, 0xFF
     46 #define RGB_YELLOW      0xFF, 0xFF, 0x00
     47 #define RGB_OFF         RGB_BLACK
     48 
     49 /*
     50  * HSV Colors
     51  *
     52  * All values (including hue) are scaled to 0-255
     53  */
     54 #define HSV_AZURE       132, 102, 255
     55 #define HSV_BLACK         0,   0,   0
     56 #define HSV_BLUE        170, 255, 255
     57 #define HSV_CHARTREUSE   64, 255, 255
     58 #define HSV_CORAL        11, 176, 255
     59 #define HSV_CYAN        128, 255, 255
     60 #define HSV_GOLD         36, 255, 255
     61 #define HSV_GOLDENROD    30, 218, 218
     62 #define HSV_GREEN        85, 255, 255
     63 #define HSV_MAGENTA     213, 255, 255
     64 #define HSV_ORANGE       21, 255, 255
     65 #define HSV_PINK        234, 128, 255
     66 #define HSV_PURPLE      191, 255, 255
     67 #define HSV_RED           0, 255, 255
     68 #define HSV_SPRINGGREEN 106, 255, 255
     69 #define HSV_TEAL        128, 255, 128
     70 #define HSV_TURQUOISE   123,  90, 112
     71 #define HSV_WHITE         0,   0, 255
     72 #define HSV_YELLOW       43, 255, 255
     73 #define HSV_OFF         HSV_BLACK
     74 
     75 // clang-format on
     76 
     77 typedef struct PACKED rgb_t {
     78     uint8_t r;
     79     uint8_t g;
     80     uint8_t b;
     81 } rgb_t;
     82 
     83 // DEPRECATED
     84 typedef rgb_t RGB;
     85 typedef rgb_t rgb_led_t;
     86 
     87 typedef struct PACKED hsv_t {
     88     uint8_t h;
     89     uint8_t s;
     90     uint8_t v;
     91 } hsv_t;
     92 
     93 // DEPRECATED
     94 typedef hsv_t HSV;
     95 
     96 rgb_t hsv_to_rgb(hsv_t hsv);
     97 rgb_t hsv_to_rgb_nocie(hsv_t hsv);