diff options
author | Ryan <[email protected]> | 2024-10-06 19:01:07 +1100 |
---|---|---|
committer | GitHub <[email protected]> | 2024-10-06 21:01:07 +1300 |
commit | 208ebf54a905ce6e4e563a6811eca8c8dc8b17e1 (patch) | |
tree | 7bb6a8bdb5a641263c39236d0b655825ac37307b /keyboards/matrix/noah | |
parent | 43e82ed5c72b7386ca91d1bd363ee092f77c1b9a (diff) | |
download | qmk_firmware-208ebf54a905ce6e4e563a6811eca8c8dc8b17e1.tar.gz qmk_firmware-208ebf54a905ce6e4e563a6811eca8c8dc8b17e1.zip |
WS2812 API rework (#24364)
* Begin WS2812 API rework
* Move RGBW conversion, clean up color.h, fix RGBW for AVR bitbang
* Formatting & update PS2AVRGB I2C driver (untested)
* Tested ARM bitbang RGB+RGBW
* Tested ARM SPI RGB - RGBW not working
* Tested ARM PWM RGB+RGBW
* Tested RP2040 PIO driver RGB+RGBW
* Update RGBLight
* Formatting
* Fix BM60HSRGB rev2
* Fix oddforge/vea
* Fix 1k and XD002 RGBLite
* Fix model_m/mschwingen
* Fix handwired/promethium
* Rename `WS2812_LED_TOTAL` for BM60HSRGB
* Fix work_louder boards
* Fix dawn60
* Fix rgbkb/pan
* Fix neson_design/700e and n6
* Fix ergodox_ez/shine
* ergodox_ez/shine: invert indices for left half
* Fix matrix/abelx
* Fix matrix/m20add
* Remove custom rgblight driver for matrix/noah - should be done with lighting layers
* Fix LED indexes for RGBLight split
* Rename `convert_rgb_to_rgbw()` to `ws2812_rgb_to_rgbw()`
* Update WS2812 API docs
* `ergodox_ez/shine`: simplify LED index calculation
* LED/RGB Matrix: Add weak function for LED index resolution
* Bandaid fix for RGB Matrix splits not using WS2812
* `steelseries/prime_plus`: redo custom RGBLight driver
* Update keyboards/steelseries/prime_plus/rgblight_custom.c
Co-authored-by: Dasky <[email protected]>
---------
Co-authored-by: Dasky <[email protected]>
Diffstat (limited to 'keyboards/matrix/noah')
-rw-r--r-- | keyboards/matrix/noah/keyboard.json | 2 | ||||
-rw-r--r-- | keyboards/matrix/noah/noah.c | 57 |
2 files changed, 1 insertions, 58 deletions
diff --git a/keyboards/matrix/noah/keyboard.json b/keyboards/matrix/noah/keyboard.json index 3ba9be21eb..53c8dc2458 100644 --- a/keyboards/matrix/noah/keyboard.json +++ b/keyboards/matrix/noah/keyboard.json @@ -10,7 +10,7 @@ "no_startup_check": true }, "rgblight": { - "driver": "custom", + "driver": "ws2812", "led_count": 7, "animations": { "breathing": true, diff --git a/keyboards/matrix/noah/noah.c b/keyboards/matrix/noah/noah.c index 99f4e063d1..22d159328a 100644 --- a/keyboards/matrix/noah/noah.c +++ b/keyboards/matrix/noah/noah.c @@ -9,57 +9,6 @@ void bootloader_jump(void) { NVIC_SystemReset(); } -#ifdef RGBLIGHT_ENABLE -#include <string.h> -#include "rgblight.h" -#include "ws2812.h" -extern rgblight_config_t rgblight_config; - -// led 0 for caps lock, led 1 for scroll lock, led 3 for num lock -// led 4 for layer 1, led 5 for layer 2, led 6 for layer 3, led 7 for layer 4 -#if RGBLIGHT_LED_COUNT < 7 -#error "MUST set the RGBLIGHT_LED_COUNT bigger than 7" -#endif -rgb_led_t noah_leds[RGBLIGHT_LED_COUNT]; -static bool noah_led_mode = false; -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 < RGBLIGHT_LED_COUNT; i++) { - 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] = ledarray[0]; - } - if (led_state.scroll_lock) { - noah_leds[1] = ledarray[1]; - } - if (led_state.num_lock) { - noah_leds[2] = ledarray[2]; - } - for (int32_t i = 0; i < 4; i++) { - if(layer_state_is(i+1)) { - noah_leds[i + 3] = ledarray[i + 3]; - } - } - } else { - memcpy(&noah_leds[0], &ledarray[0], sizeof(noah_leds)); - } - - ws2812_setleds(noah_leds, RGBLIGHT_LED_COUNT); -} - -const rgblight_driver_t rgblight_driver = { - .init = ws2812_init, - .setleds = setleds_custom, -}; -#endif - #ifdef RGB_MATRIX_ENABLE const is31fl3731_led_t PROGMEM g_is31fl3731_leds[IS31FL3731_LED_COUNT] = { /* Refer to IS31 manual for these locations @@ -150,11 +99,6 @@ const is31fl3731_led_t PROGMEM g_is31fl3731_leds[IS31FL3731_LED_COUNT] = { bool process_record_kb(uint16_t keycode, keyrecord_t *record) { if (record->event.pressed) { switch(keycode) { - #ifdef RGBLIGHT_ENABLE - case KC_F24: // switch the led mode on or off - noah_led_mode = !noah_led_mode; - return false; - #ifdef RGB_MATRIX_ENABLE case KC_F13: // toggle rgb matrix rgb_matrix_toggle(); @@ -163,7 +107,6 @@ bool process_record_kb(uint16_t keycode, keyrecord_t *record) { rgb_matrix_step(); return false; #endif - #endif default: break; } |