aboutsummaryrefslogtreecommitdiff
path: root/keyboards/matrix
diff options
context:
space:
mode:
Diffstat (limited to 'keyboards/matrix')
-rw-r--r--keyboards/matrix/abelx/abelx.c45
-rw-r--r--keyboards/matrix/abelx/config.h1
-rw-r--r--keyboards/matrix/m20add/keymaps/default/keymap.c2
-rw-r--r--keyboards/matrix/m20add/keymaps/iso/keymap.c2
-rw-r--r--keyboards/matrix/m20add/m20add.c7
-rw-r--r--keyboards/matrix/m20add/rgb_ring.c59
-rw-r--r--keyboards/matrix/m20add/rgb_ring.h1
-rw-r--r--keyboards/matrix/noah/keyboard.json2
-rw-r--r--keyboards/matrix/noah/noah.c57
9 files changed, 53 insertions, 123 deletions
diff --git a/keyboards/matrix/abelx/abelx.c b/keyboards/matrix/abelx/abelx.c
index ee7ffde134..9058bf6e2f 100644
--- a/keyboards/matrix/abelx/abelx.c
+++ b/keyboards/matrix/abelx/abelx.c
@@ -41,20 +41,6 @@ uint8_t read_pin(uint16_t pin)
return (data & (1<<GET_PIN(pin))) ? 1 : 0;
}
-void matrix_init_kb(void) {
-#ifdef RGBLIGHT_ENABLE
- aw9523b_init(AW9523B_ADDR);
-#endif
- matrix_init_user();
-}
-
-
-void housekeeping_task_kb(void) {
-#ifdef RGBLIGHT_ENABLE
- aw9523b_update_pwm_buffers(AW9523B_ADDR);
-#endif
-}
-
#ifdef RGBLIGHT_ENABLE
#include "rgblight.h"
#include "ws2812.h"
@@ -67,20 +53,35 @@ const aw9523b_led g_aw9523b_leds[AW9523B_RGB_NUM] = {
{AW9523B_P07_PWM, AW9523B_P06_PWM, AW9523B_P05_PWM},
};
-void setleds_custom(rgb_led_t *start_led, uint16_t num_leds)
-{
- uint8_t num = num_leds < AW9523B_RGB_NUM ? num_leds : AW9523B_RGB_NUM;
+void init_custom(void) {
+ aw9523b_init(AW9523B_ADDR);
+ ws2812_init();
+}
- ws2812_setleds(start_led, num);
+void set_color_custom(int index, uint8_t red, uint8_t green, uint8_t blue) {
+ if (index < AW9523B_RGB_NUM) {
+ aw9523b_set_color(index, red, green, blue);
+ } else {
+ ws2812_set_color(index - AW9523B_RGB_NUM, red, green, blue);
+ }
+}
- for (int i = 0; i < num; i++) {
- aw9523b_set_color(i, start_led[i].r, start_led[i].g, start_led[i].b);
+void set_color_all_custom(uint8_t red, uint8_t green, uint8_t blue) {
+ for (int i = 0; i < RGBLIGHT_LED_COUNT; i++) {
+ set_color_custom(i, red, green, blue);
}
}
+void flush_custom(void) {
+ aw9523b_update_pwm_buffers(AW9523B_ADDR);
+ ws2812_flush();
+}
+
const rgblight_driver_t rgblight_driver = {
- .init = ws2812_init,
- .setleds = setleds_custom,
+ .init = init_custom,
+ .set_color = set_color_custom,
+ .set_color_all = set_color_all_custom,
+ .flush = flush_custom,
};
#endif
diff --git a/keyboards/matrix/abelx/config.h b/keyboards/matrix/abelx/config.h
index 63b8202146..bd552d11a2 100644
--- a/keyboards/matrix/abelx/config.h
+++ b/keyboards/matrix/abelx/config.h
@@ -89,5 +89,6 @@
#define I2C1_DUTY_CYCLE FAST_DUTY_CYCLE_2
#define AW9523B_RGB_NUM 4
+#define WS2812_LED_COUNT 5
#define EARLY_INIT_PERFORM_BOOTLOADER_JUMP FALSE
diff --git a/keyboards/matrix/m20add/keymaps/default/keymap.c b/keyboards/matrix/m20add/keymaps/default/keymap.c
index 92a34c6811..8167487a7a 100644
--- a/keyboards/matrix/m20add/keymaps/default/keymap.c
+++ b/keyboards/matrix/m20add/keymaps/default/keymap.c
@@ -19,7 +19,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
KC_MUTE, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- KC_NUM, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, _______, _______, _______, _______, _______, _______, _______, _______,
+ KC_NUM, UG_TOGG, UG_NEXT, UG_HUEU, UG_HUED, UG_SATU, UG_SATD, UG_VALU, UG_VALD, _______, _______, _______, _______, _______, _______, _______, _______,
QK_BOOT, _______, _______, KC_F24, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_VOLU,
_______, _______, _______, KC_MPLY, _______, _______, _______, KC_MPRV, KC_VOLD, KC_MNXT),
diff --git a/keyboards/matrix/m20add/keymaps/iso/keymap.c b/keyboards/matrix/m20add/keymaps/iso/keymap.c
index 3d6cd8f073..1760fbe233 100644
--- a/keyboards/matrix/m20add/keymaps/iso/keymap.c
+++ b/keyboards/matrix/m20add/keymaps/iso/keymap.c
@@ -17,7 +17,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
KC_MUTE, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- KC_NUM, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, _______, _______, _______, _______, _______, _______, _______,
+ KC_NUM, UG_TOGG, UG_NEXT, UG_HUEU, UG_HUED, UG_SATU, UG_SATD, UG_VALU, UG_VALD, _______, _______, _______, _______, _______, _______, _______,
QK_BOOT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_VOLU,
_______, _______, _______, KC_MPLY, _______, _______, _______, KC_MPRV, KC_VOLD, KC_MNXT),
diff --git a/keyboards/matrix/m20add/m20add.c b/keyboards/matrix/m20add/m20add.c
index 267c8e5134..2d5209e3a0 100644
--- a/keyboards/matrix/m20add/m20add.c
+++ b/keyboards/matrix/m20add/m20add.c
@@ -27,13 +27,6 @@ uint8_t read_pin(uint16_t pin)
return (data & (1<<GET_PIN(pin))) ? 1 : 0;
}
-void matrix_init_kb(void) {
-#ifdef RGBLIGHT_ENABLE
- rgb_ring_init();
-#endif
- matrix_init_user();
-}
-
void housekeeping_task_kb(void) {
#ifdef RGBLIGHT_ENABLE
rgb_ring_task();
diff --git a/keyboards/matrix/m20add/rgb_ring.c b/keyboards/matrix/m20add/rgb_ring.c
index d629a5d2ec..45cc6013fd 100644
--- a/keyboards/matrix/m20add/rgb_ring.c
+++ b/keyboards/matrix/m20add/rgb_ring.c
@@ -137,8 +137,8 @@ extern rgblight_config_t rgblight_config;
static void testing_mode(void)
{
if (timer_elapsed(animation_status.last_timer) > EFFECT_TEST_INTERVAL) {
- HSV h = {rgblight_config.hue, rgblight_config.sat, rgblight_config.val};
- RGB c = hsv_to_rgb(h);
+ hsv_t h = {rgblight_config.hue, rgblight_config.sat, rgblight_config.val};
+ rgb_t c = hsv_to_rgb(h);
//is31fl3731_set_color_all(c.r, c.g, c.b);
is31fl3731_set_color_all(0, 0, 0);
is31fl3731_set_color(rgb_ring.outer_index+RING_OUTER_BEGIN, c.r, c.g, c.b);
@@ -184,9 +184,9 @@ static void update_effect(uint32_t max_count)
static void ring_effect_no_1(void)
{
if (need_update(EFFECT_1_INTERVAL)) {
- HSV h = {rgblight_config.hue, rgblight_config.sat, rgblight_config.val};
+ hsv_t h = {rgblight_config.hue, rgblight_config.sat, rgblight_config.val};
for (uint8_t i = RING_OUTER_BEGIN; i <= RING_OUTER_END; i++) {
- RGB c = hsv_to_rgb(h);
+ rgb_t c = hsv_to_rgb(h);
is31fl3731_set_color(i, c.r, c.g, c.b);
}
rgblight_config.hue += EFFECT_1_HUE_STEP;
@@ -205,8 +205,8 @@ static void ring_effect_no_2(void)
{
if (need_update(EFFECT_2_INTERVAL)) {
is31fl3731_set_color_all(0, 0, 0);
- HSV h = {rgblight_config.hue, rgblight_config.sat, rgblight_config.val};
- RGB c = hsv_to_rgb(h);
+ hsv_t h = {rgblight_config.hue, rgblight_config.sat, rgblight_config.val};
+ rgb_t c = hsv_to_rgb(h);
is31fl3731_set_color(rgb_ring.led_begin, c.r, c.g, c.b);
is31fl3731_set_color(rgb_ring.led_end, c.r, c.g, c.b);
@@ -233,13 +233,13 @@ static void ring_effect_no_3(void)
}
if (need_update(EFFECT_3_INTERVAL)) {
- HSV h = {rgblight_config.hue, rgblight_config.sat, rgblight_config.val};
+ hsv_t h = {rgblight_config.hue, rgblight_config.sat, rgblight_config.val};
if (rgb_ring.led_clear) {
is31fl3731_set_color(rgb_ring.led_begin, 0, 0, 0);
is31fl3731_set_color(rgb_ring.led_end, 0, 0, 0);
} else {
- RGB c = hsv_to_rgb(h);
+ rgb_t c = hsv_to_rgb(h);
is31fl3731_set_color(rgb_ring.led_begin, c.r, c.g, c.b);
is31fl3731_set_color(rgb_ring.led_end, c.r, c.g, c.b);
}
@@ -278,8 +278,8 @@ static void ring_effect_no_4(void)
{
if (need_update(EFFECT_4_INTERVAL)) {
is31fl3731_set_color_all(0, 0, 0);
- HSV h = {rgblight_config.hue, rgblight_config.sat, rgblight_config.val};
- RGB c = hsv_to_rgb(h);
+ hsv_t h = {rgblight_config.hue, rgblight_config.sat, rgblight_config.val};
+ rgb_t c = hsv_to_rgb(h);
is31fl3731_set_color(rgb_ring.led_begin, c.r, c.g, c.b);
is31fl3731_set_color(rgb_ring.led_end, c.r, c.g, c.b);
@@ -303,13 +303,13 @@ static void ring_effect_no_5(void)
if (need_update(EFFECT_5_INTERVAL)) {
is31fl3731_set_color_all(0, 0, 0);
for (uint8_t i = RING_INNER_BEGIN; i <= RING_INNER_END; i++) {
- HSV h = {rgblight_config.hue, rgblight_config.sat, rgblight_config.val};
- RGB c = hsv_to_rgb(h);
+ hsv_t h = {rgblight_config.hue, rgblight_config.sat, rgblight_config.val};
+ rgb_t c = hsv_to_rgb(h);
is31fl3731_set_color(i, c.r, c.g, c.b);
}
for (uint8_t i = RING_OUTER_BEGIN; i <= RING_OUTER_END; i++) {
- HSV h = {rgblight_config.hue+EFFECT_5_HUE_STEP, rgblight_config.sat, rgblight_config.val};
- RGB c = hsv_to_rgb(h);
+ hsv_t h = {rgblight_config.hue+EFFECT_5_HUE_STEP, rgblight_config.sat, rgblight_config.val};
+ rgb_t c = hsv_to_rgb(h);
is31fl3731_set_color(i, c.r, c.g, c.b);
}
rgblight_config.hue += EFFECT_5_HUE_STEP;
@@ -329,13 +329,13 @@ static void ring_effect_no_6(void)
if (need_update(EFFECT_6_INTERVAL)) {
is31fl3731_set_color_all(0, 0, 0);
for (uint8_t i = RING_INNER_BEGIN; i <= RING_INNER_END; i++) {
- HSV h = {rgblight_config.hue+i*EFFECT_I_HUE_STEP, rgblight_config.sat, rgblight_config.val};
- RGB c = hsv_to_rgb(h);
+ hsv_t h = {rgblight_config.hue+i*EFFECT_I_HUE_STEP, rgblight_config.sat, rgblight_config.val};
+ rgb_t c = hsv_to_rgb(h);
is31fl3731_set_color(i, c.r, c.g, c.b);
}
for (uint8_t i = RING_OUTER_BEGIN; i <= RING_OUTER_END; i++) {
- HSV h = {rgblight_config.hue+i*EFFECT_O_HUE_STEP, rgblight_config.sat, rgblight_config.val};
- RGB c = hsv_to_rgb(h);
+ hsv_t h = {rgblight_config.hue+i*EFFECT_O_HUE_STEP, rgblight_config.sat, rgblight_config.val};
+ rgb_t c = hsv_to_rgb(h);
is31fl3731_set_color(i, c.r, c.g, c.b);
}
rgblight_config.hue += EFFECT_I_HUE_STEP;
@@ -361,27 +361,22 @@ static void custom_effects(void)
effect_funcs[rgb_ring.effect]();
}
-void setleds_custom(rgb_led_t *start_led, uint16_t num_leds)
-{
+void flush_custom(void) {
if (rgb_ring.state != RING_STATE_QMK) {
return;
}
- for (uint8_t i = 0; i < num_leds; i++) {
- is31fl3731_set_color(i, start_led[i].r, start_led[i].g, start_led[i].b);
- }
+ is31fl3731_flush();
}
const rgblight_driver_t rgblight_driver = {
- .setleds = setleds_custom,
+ .init = is31fl3731_init_drivers,
+ .set_color = is31fl3731_set_color,
+ .set_color_all = is31fl3731_set_color_all,
+ .flush = flush_custom,
};
-void rgb_ring_init(void)
-{
- is31fl3731_init_drivers();
-}
-
void rgb_ring_task(void)
{
switch (rgb_ring.state) {
@@ -397,15 +392,13 @@ void rgb_ring_task(void)
default:
break;
};
-
- is31fl3731_flush();
}
bool process_record_kb(uint16_t keycode, keyrecord_t *record)
{
if (record->event.pressed) {
switch(keycode) {
- case RGB_MOD:
+ case QK_UNDERGLOW_MODE_NEXT:
if (rgb_ring.state == RING_STATE_INIT) {
// in testing mode, do nothing
return false;
@@ -423,7 +416,7 @@ bool process_record_kb(uint16_t keycode, keyrecord_t *record)
}
}
break;
- case RGB_RMOD:
+ case QK_UNDERGLOW_MODE_PREVIOUS:
if (rgb_ring.state == RING_STATE_INIT) {
// in testing mode, do nothing
return false;
diff --git a/keyboards/matrix/m20add/rgb_ring.h b/keyboards/matrix/m20add/rgb_ring.h
index 1e96b68367..25937e6500 100644
--- a/keyboards/matrix/m20add/rgb_ring.h
+++ b/keyboards/matrix/m20add/rgb_ring.h
@@ -19,5 +19,4 @@
#pragma once
-void rgb_ring_init(void);
void rgb_ring_task(void);
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;
}