8 #define PACKED __attribute__ ((__packed__))
14 #pragma pack( push, 1 )
17 #if defined(RGB_MATRIX_KEYPRESSES) || defined(RGB_MATRIX_KEYRELEASES)
18 #define RGB_MATRIX_KEYREACTIVE_ENABLED
22 #ifndef LED_HITS_TO_REMEMBER
23 #define LED_HITS_TO_REMEMBER 8
24 #endif // LED_HITS_TO_REMEMBER
26 #ifdef RGB_MATRIX_KEYREACTIVE_ENABLED
27 typedef struct PACKED {
29 uint8_t x[LED_HITS_TO_REMEMBER];
30 uint8_t y[LED_HITS_TO_REMEMBER];
31 uint8_t index[LED_HITS_TO_REMEMBER];
32 uint16_t tick[LED_HITS_TO_REMEMBER];
34 #endif // RGB_MATRIX_KEYREACTIVE_ENABLED
36 typedef enum rgb_task_states {
43 typedef uint8_t led_flags_t;
45 typedef struct PACKED {
51 typedef struct PACKED {
52 // Global tick at 20 Hz
54 // Ticks since this key was last hit.
58 typedef struct PACKED {
63 #define HAS_FLAGS(bits, flags) ((bits & flags) == flags)
64 #define HAS_ANY_FLAGS(bits, flags) ((bits & flags) != 0x00)
66 #define LED_FLAG_ALL 0xFF
67 #define LED_FLAG_NONE 0x00
68 #define LED_FLAG_MODIFIER 0x01
69 #define LED_FLAG_UNDERGLOW 0x02
70 #define LED_FLAG_KEYLIGHT 0x04
74 typedef struct PACKED {
75 uint8_t matrix_co[MATRIX_ROWS][MATRIX_COLS];
76 point_t point[DRIVER_LED_TOTAL];
77 uint8_t flags[DRIVER_LED_TOTAL];
86 uint8_t speed; //EECONFIG needs to be increased to support this