1
0
Fork 0

Rework RGBLight driver system (#22529)

This commit is contained in:
Ryan 2023-12-05 22:49:14 +11:00 committed by GitHub
parent 2acb426b8e
commit 17f36a21bf
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
35 changed files with 125 additions and 87 deletions

View file

@ -20,6 +20,7 @@
#include "quantum.h"
#include "i2c_master.h"
#include "drivers/led/issi/is31fl3731.h"
#include "ws2812.h"
enum {
SELF_TESTING,
@ -336,7 +337,7 @@ void housekeeping_task_kb(void)
housekeeping_task_user();
}
void rgblight_call_driver(rgb_led_t *start_led, uint8_t num_leds)
void setleds_custom(rgb_led_t *start_led, uint16_t num_leds)
{
if (rgb_state.state != NORMAL) return;
@ -353,6 +354,10 @@ void rgblight_call_driver(rgb_led_t *start_led, uint8_t num_leds)
ws2812_setleds(leds, 4);
}
const rgblight_driver_t rgblight_driver = {
.setleds = setleds_custom,
};
bool led_update_kb(led_t led_state)
{
bool res = led_update_user(led_state);

View file

@ -20,6 +20,7 @@
"saturation_steps": 8,
"brightness_steps": 8,
"led_count": 68,
"driver": "custom",
"animations": {
"breathing": true,
"rainbow_mood": true,

View file

@ -12,4 +12,5 @@ RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow
NO_USB_STARTUP_CHECK = yes
QUANTUM_LIB_SRC += drivers/led/issi/is31fl3731.c
WS2812_DRIVER_REQUIRED = yes
I2C_DRIVER_REQUIRED = yes

View file

@ -23,6 +23,7 @@
"saturation_steps": 8,
"brightness_steps": 8,
"led_count": 65,
"driver": "custom",
"max_brightness": 192,
"animations": {
"breathing": true,

View file

@ -20,6 +20,7 @@
#include "quantum.h"
#include "i2c_master.h"
#include "drivers/led/issi/is31fl3731.h"
#include "ws2812.h"
enum {
SELF_TESTING,
@ -338,7 +339,7 @@ void housekeeping_task_kb(void)
housekeeping_task_user();
}
void rgblight_call_driver(rgb_led_t *start_led, uint8_t num_leds)
void setleds_custom(rgb_led_t *start_led, uint16_t num_leds)
{
if (rgb_state.state != NORMAL) return;
@ -348,6 +349,10 @@ void rgblight_call_driver(rgb_led_t *start_led, uint8_t num_leds)
ws2812_setleds(start_led+IS31FL3731_LED_COUNT, 1);
}
const rgblight_driver_t rgblight_driver = {
.setleds = setleds_custom,
};
bool led_update_kb(led_t led_state)
{
bool res = led_update_user(led_state);

View file

@ -11,4 +11,5 @@ BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow
QUANTUM_LIB_SRC += drivers/led/issi/is31fl3731.c
WS2812_DRIVER_REQUIRED = yes
I2C_DRIVER_REQUIRED = yes

View file

@ -25,7 +25,8 @@
"pin": "B0"
},
"rgblight": {
"led_count": 5
"led_count": 5,
"driver": "custom"
},
"url": "",
"usb": {

View file

@ -18,6 +18,7 @@
*/
#include "quantum.h"
#include "ws2812.h"
#ifdef RGBLIGHT_ENABLE
static bool alert = false;
@ -66,7 +67,7 @@ void housekeeping_task_kb(void)
housekeeping_task_user();
}
void rgblight_call_driver(rgb_led_t *start_led, uint8_t num_leds)
void setleds_custom(rgb_led_t *start_led, uint16_t num_leds)
{
start_led[2].r = start_led[0].r;
start_led[2].g = start_led[0].g;
@ -82,4 +83,7 @@ void rgblight_call_driver(rgb_led_t *start_led, uint8_t num_leds)
ws2812_setleds(start_led, RGBLED_NUM);
}
const rgblight_driver_t rgblight_driver = {
.setleds = setleds_custom,
};
#endif

View file

@ -1 +1 @@
# This file intentionally left blank
WS2812_DRIVER_REQUIRED = yes