X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=quantum%2Frgb_matrix_types.h;h=04a84f4ac753bf9d9a55516730789155b238444f;hb=cf215487ba35c6754cd1c52bb900a46bb52ed3a3;hp=f7643d2b0c81ca4bb2eb67e72b991e28f0e40958;hpb=e1e08a494bf9ea46e1385559df76d5f49b8e9087;p=qmk_firmware.git diff --git a/quantum/rgb_matrix_types.h b/quantum/rgb_matrix_types.h index f7643d2b0..04a84f4ac 100644 --- a/quantum/rgb_matrix_types.h +++ b/quantum/rgb_matrix_types.h @@ -2,6 +2,7 @@ #include #include +#include "color.h" #if defined(__GNUC__) #define PACKED __attribute__ ((__packed__)) @@ -59,29 +60,30 @@ typedef struct PACKED { uint8_t y; } point_t; -typedef union { - uint8_t raw; - struct { - uint8_t row:4; // 16 max - uint8_t col:4; // 16 max - }; -} matrix_co_t; +#define HAS_FLAGS(bits, flags) ((bits & flags) == flags) +#define HAS_ANY_FLAGS(bits, flags) ((bits & flags) != 0x00) + +#define LED_FLAG_ALL 0xFF +#define LED_FLAG_NONE 0x00 +#define LED_FLAG_MODIFIER 0x01 +#define LED_FLAG_UNDERGLOW 0x02 +#define LED_FLAG_KEYLIGHT 0x04 + +#define NO_LED 255 typedef struct PACKED { - matrix_co_t matrix_co; - point_t point; - uint8_t modifier:1; -} rgb_led; + uint8_t matrix_co[MATRIX_ROWS][MATRIX_COLS]; + point_t point[DRIVER_LED_TOTAL]; + uint8_t flags[DRIVER_LED_TOTAL]; +} led_config_t; typedef union { uint32_t raw; struct PACKED { - bool enable :1; - uint8_t mode :7; - uint8_t hue :8; - uint8_t sat :8; - uint8_t val :8; - uint8_t speed :8;//EECONFIG needs to be increased to support this + uint8_t enable :2; + uint8_t mode :6; + HSV hsv; + uint8_t speed; //EECONFIG needs to be increased to support this }; } rgb_config_t;