X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=quantum%2Frgb_matrix_types.h;h=f890edd94f8e3af5dbe463a2f9f3c4d283b8cb21;hb=2121de919253b52e94e66e3eae6af01c3f56f463;hp=f7643d2b0c81ca4bb2eb67e72b991e28f0e40958;hpb=e1e08a494bf9ea46e1385559df76d5f49b8e9087;p=qmk_firmware.git diff --git a/quantum/rgb_matrix_types.h b/quantum/rgb_matrix_types.h index f7643d2b0..f890edd94 100644 --- a/quantum/rgb_matrix_types.h +++ b/quantum/rgb_matrix_types.h @@ -59,25 +59,28 @@ 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 enable :2; + uint8_t mode :6; uint8_t hue :8; uint8_t sat :8; uint8_t val :8;