LED Matrix: add led_matrix_types.h and implement g_led_config (#11741)

* LED Matrix: add led_matrix_types.h and implement g_led_config

* Set correct flags for non-"modifier" LEDs

* Clean up docs a little

* Add license headers for [led,rgb]_matrix_types.h
This commit is contained in:
Ryan 2021-02-14 12:15:08 +11:00 committed by GitHub
parent de8caf708c
commit 7ce5ba645a
Failed to generate hash of commit
6 changed files with 301 additions and 298 deletions

View file

@ -19,46 +19,12 @@
#pragma once
#include "led_matrix_types.h"
#ifndef BACKLIGHT_ENABLE
# error You must define BACKLIGHT_ENABLE with LED_MATRIX_ENABLE
#endif
typedef struct Point {
uint8_t x;
uint8_t y;
} __attribute__((packed)) Point;
typedef struct led_matrix {
union {
uint8_t raw;
struct {
uint8_t row : 4; // 16 max
uint8_t col : 4; // 16 max
};
} matrix_co;
Point point;
uint8_t modifier : 1;
} __attribute__((packed)) led_matrix;
extern const led_matrix g_leds[LED_DRIVER_LED_COUNT];
typedef struct {
uint8_t index;
uint8_t value;
} led_indicator;
typedef union {
uint32_t raw;
struct {
bool enable : 1;
uint8_t mode : 6;
uint8_t hue : 8; // Unused by led_matrix
uint8_t sat : 8; // Unused by led_matrix
uint8_t val : 8;
uint8_t speed : 8; // EECONFIG needs to be increased to support this
};
} led_config_t;
enum led_matrix_effects {
LED_MATRIX_UNIFORM_BRIGHTNESS = 1,
// All new effects go above this line
@ -122,3 +88,7 @@ typedef struct {
} led_matrix_driver_t;
extern const led_matrix_driver_t led_matrix_driver;
extern led_eeconfig_t led_matrix_eeconfig;
extern led_config_t g_led_config;