]> git.donarmstrong.com Git - qmk_firmware.git/blobdiff - quantum/rgb_matrix_types.h
Fixing hsv_to_rgb where s = 0 and v < 255 (#5915)
[qmk_firmware.git] / quantum / rgb_matrix_types.h
index f7643d2b0c81ca4bb2eb67e72b991e28f0e40958..f890edd94f8e3af5dbe463a2f9f3c4d283b8cb21 100644 (file)
@@ -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;