|
|
@ -22,45 +22,42 @@ extern rgblight_config_t rgblight_config; |
|
|
|
#endif |
|
|
|
rgb_led_t noah_leds[RGBLED_NUM]; |
|
|
|
static bool noah_led_mode = false; |
|
|
|
void rgblight_set(void) { |
|
|
|
void setleds_custom(rgb_led_t *ledarray, uint16_t num_leds) { |
|
|
|
memset(&noah_leds[0], 0, sizeof(noah_leds)); |
|
|
|
if (!rgblight_config.enable) { |
|
|
|
for (uint8_t i = 0; i < RGBLED_NUM; i++) { |
|
|
|
led[i].r = 0; |
|
|
|
led[i].g = 0; |
|
|
|
led[i].b = 0; |
|
|
|
ledarray[i].r = 0; |
|
|
|
ledarray[i].g = 0; |
|
|
|
ledarray[i].b = 0; |
|
|
|
} |
|
|
|
} |
|
|
|
if (noah_led_mode) { |
|
|
|
led_t led_state = host_keyboard_led_state(); |
|
|
|
if (led_state.caps_lock) { |
|
|
|
noah_leds[0] = led[0]; |
|
|
|
noah_leds[0] = ledarray[0]; |
|
|
|
} |
|
|
|
if (led_state.scroll_lock) { |
|
|
|
noah_leds[1] = led[1]; |
|
|
|
noah_leds[1] = ledarray[1]; |
|
|
|
} |
|
|
|
if (led_state.num_lock) { |
|
|
|
noah_leds[2] = led[2]; |
|
|
|
noah_leds[2] = ledarray[2]; |
|
|
|
} |
|
|
|
for (int32_t i = 0; i < 4; i++) { |
|
|
|
if(layer_state_is(i+1)) { |
|
|
|
noah_leds[i + 3] = led[i + 3]; |
|
|
|
noah_leds[i + 3] = ledarray[i + 3]; |
|
|
|
} |
|
|
|
} |
|
|
|
} else { |
|
|
|
memcpy(&noah_leds[0], &led[0], sizeof(noah_leds)); |
|
|
|
memcpy(&noah_leds[0], &ledarray[0], sizeof(noah_leds)); |
|
|
|
} |
|
|
|
|
|
|
|
ws2812_setleds(noah_leds, RGBLED_NUM); |
|
|
|
} |
|
|
|
#endif |
|
|
|
|
|
|
|
void matrix_scan_kb(void) { |
|
|
|
#ifdef RGBLIGHT_ENABLE |
|
|
|
rgblight_task(); |
|
|
|
const rgblight_driver_t rgblight_driver = { |
|
|
|
.setleds = setleds_custom, |
|
|
|
}; |
|
|
|
#endif |
|
|
|
matrix_scan_user(); |
|
|
|
} |
|
|
|
|
|
|
|
#ifdef RGB_MATRIX_ENABLE |
|
|
|
const is31fl3731_led_t PROGMEM g_is31fl3731_leds[RGB_MATRIX_LED_COUNT] = { |
|
|
|