Reduce duplication for ARM/AVR ws2812 RGB Matrix driver (#7180)
* Reduce duplication for ARM/AVR ws2812 rgb_matrix driver * Reduce duplication for ARM/AVR ws2812 rgb_matrix driver - Fix setled_all use of r,g,b
This commit is contained in:
parent
1b06ea0c86
commit
e48fdebe5a
3 changed files with 29 additions and 61 deletions
|
@ -97,19 +97,33 @@ const rgb_matrix_driver_t rgb_matrix_driver = {
|
|||
|
||||
#elif defined(WS2812)
|
||||
|
||||
extern LED_TYPE led[DRIVER_LED_TOTAL];
|
||||
// LED color buffer
|
||||
LED_TYPE led[DRIVER_LED_TOTAL];
|
||||
|
||||
static void init(void) {}
|
||||
|
||||
static void flush(void) {
|
||||
// Assumes use of RGB_DI_PIN
|
||||
ws2812_setleds(led, DRIVER_LED_TOTAL);
|
||||
}
|
||||
|
||||
static void init(void) {}
|
||||
// Set an led in the buffer to a color
|
||||
static inline void setled(int i, uint8_t r, uint8_t g, uint8_t b) {
|
||||
led[i].r = r;
|
||||
led[i].g = g;
|
||||
led[i].b = b;
|
||||
}
|
||||
|
||||
static void setled_all(uint8_t r, uint8_t g, uint8_t b) {
|
||||
for (int i = 0; i < sizeof(led) / sizeof(led[0]); i++) {
|
||||
setled(i, r, g, b);
|
||||
}
|
||||
}
|
||||
|
||||
const rgb_matrix_driver_t rgb_matrix_driver = {
|
||||
.init = init,
|
||||
.flush = flush,
|
||||
.set_color = ws2812_setled,
|
||||
.set_color_all = ws2812_setled_all,
|
||||
.set_color = setled,
|
||||
.set_color_all = setled_all,
|
||||
};
|
||||
#endif
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue