diff options
author | Benedikt Peetz <benedikt.peetz@b-peetz.de> | 2025-07-26 09:45:04 +0200 |
---|---|---|
committer | Benedikt Peetz <benedikt.peetz@b-peetz.de> | 2025-07-26 09:45:04 +0200 |
commit | e9fb5b31db9bdc4b3b593eae3897b7bc79710c80 (patch) | |
tree | 2f65d1409108394bbcaca493af0f83d548fb1699 /src | |
parent | chore(deploy): Another deploy (diff) | |
download | qmk_layout-e9fb5b31db9bdc4b3b593eae3897b7bc79710c80.zip |
refactor(rgb): Make the Rgb map readable and changeable
The previous one was an unchangeable array blob.
Diffstat (limited to 'src')
-rw-r--r-- | src/keymaps/soispha/led/ledlayout.h | 76 | ||||
-rw-r--r-- | src/keymaps/soispha/led/ledmap.h | 16 | ||||
-rw-r--r-- | src/keymaps/soispha/led/rgb.c | 65 | ||||
-rw-r--r-- | src/keymaps/soispha/led/translation.h | 10 | ||||
-rw-r--r-- | src/keymaps/soispha/rgb.c | 227 | ||||
-rw-r--r-- | src/keymaps/soispha/rules.mk | 2 |
6 files changed, 168 insertions, 228 deletions
diff --git a/src/keymaps/soispha/led/ledlayout.h b/src/keymaps/soispha/led/ledlayout.h new file mode 100644 index 0000000..0ce994b --- /dev/null +++ b/src/keymaps/soispha/led/ledlayout.h @@ -0,0 +1,76 @@ +// clang-format off +const uint8_t PROGMEM ledmap[][RGB_MATRIX_LED_COUNT][3] = { + /* Dvorak */ + [0] = { + RED, RED, RED, RED, RED, RED, RED, RED, RED, RED, RED, RED, RED, RED, + GREEN, ORANGE, ORANGE, ORANGE, ORANGE, ORANGE, ORANGE, ORANGE, ORANGE, ORANGE, ORANGE, ORANGE, ORANGE, GREEN, + GREEN, GREEN, GREEN, GREEN, YELLOW, GREEN, ORANGE, ORANGE, GREEN, YELLOW, GREEN, GREEN, GREEN, GREEN, + BLUE, BLUE, BLUE, BLUE, BLUE, BLUE, BLUE, BLUE, BLUE, BLUE, BLUE, BLUE, + PURPLE, PURPLE, PURPLE, PURPLE, PURPLE, OFF, OFF, PURPLE, PURPLE, PURPLE, PURPLE, BLUE, + ASSASSINS_RED, ASSASSINS_RED, ASSASSINS_RED, ASSASSINS_RED, ASSASSINS_RED, ASSASSINS_RED + }, + /* Modifier */ + [1] = { + OFF, OFF, OFF, OFF, OFF, OFF, OFF, OFF, OFF, OFF, OFF, OFF, OFF, OFF, + OFF, OFF, OFF, OFF, OFF, OFF, OFF, OFF, OFF, OFF, OFF, OFF, OFF, OFF, + OFF, OFF, OFF, OFF, OFF, OFF, OFF, OFF, OFF, OFF, OFF, OFF, OFF, OFF, + OFF, OFF, OFF, OFF, OFF, OFF, OFF, OFF, OFF, OFF, OFF, OFF, + OFF, OFF, OFF, OFF, OFF, OFF, OFF, OFF, OFF, OFF, OFF, OFF, + ASSASSINS_RED, ASSASSINS_RED, ASSASSINS_RED, ASSASSINS_RED, ASSASSINS_RED, BRAIN_FREEZE + }, + /* Symbols */ + [2] = { + OFF, OFF, OFF, OFF, OFF, OFF, OFF, OFF, OFF, OFF, OFF, OFF, OFF, OFF, + OFF, OFF, OFF, OFF, OFF, OFF, OFF, OFF, OFF, OFF, OFF, OFF, OFF, OFF, + OFF, OFF, OFF, OFF, OFF, OFF, OFF, OFF, OFF, OFF, OFF, OFF, OFF, OFF, + OFF, OFF, OFF, OFF, OFF, OFF, OFF, OFF, OFF, OFF, OFF, OFF, + OFF, OFF, OFF, OFF, OFF, OFF, OFF, OFF, OFF, OFF, OFF, OFF, + BRAIN_FREEZE, ASSASSINS_RED, ASSASSINS_RED, ASSASSINS_RED, ASSASSINS_RED, ASSASSINS_RED + }, + /* Numbers */ + [3] = { + OFF, OFF, OFF, OFF, OFF, OFF, OFF, OFF, OFF, OFF, OFF, OFF, OFF, OFF, + OFF, OFF, OFF, OFF, OFF, OFF, OFF, OFF, OFF, OFF, OFF, OFF, OFF, OFF, + OFF, OFF, OFF, OFF, OFF, OFF, OFF, OFF, OFF, OFF, OFF, OFF, OFF, OFF, + OFF, OFF, OFF, OFF, OFF, OFF, OFF, OFF, OFF, OFF, OFF, OFF, + OFF, OFF, OFF, OFF, OFF, OFF, OFF, OFF, OFF, OFF, OFF, OFF, + ASSASSINS_RED, BRAIN_FREEZE, ASSASSINS_RED, ASSASSINS_RED, ASSASSINS_RED, ASSASSINS_RED + }, + /* Media */ + [4] = { + OFF, OFF, OFF, OFF, OFF, OFF, OFF, OFF, OFF, OFF, OFF, OFF, OFF, OFF, + BRAIN_FREEZE, OFF, OFF, OFF, OFF, OFF, OFF, OFF, OFF, OFF, OFF, OFF, OFF, BRAIN_FREEZE, + OFF, OFF, OFF, OFF, OFF, OFF, OFF, OFF, OFF, OFF, OFF, OFF, OFF, OFF, + OFF, OFF, OFF, OFF, OFF, OFF, OFF, OFF, OFF, OFF, OFF, OFF, + OFF, OFF, OFF, OFF, OFF, ASSASSINS_RED, ASSASSINS_RED, OFF, OFF, OFF, OFF, OFF, + ASSASSINS_RED, ASSASSINS_RED, ASSASSINS_RED, ASSASSINS_RED, ASSASSINS_RED, ASSASSINS_RED + }, + /* German characters */ + [5] = { + OFF, OFF, OFF, OFF, OFF, OFF, OFF, OFF, OFF, OFF, OFF, OFF, OFF, OFF, + OFF, OFF, OFF, OFF, OFF, OFF, OFF, OFF, OFF, OFF, OFF, OFF, OFF, OFF, + BRAIN_FREEZE, PURPLE, PURPLE, OFF, PURPLE, OFF, OFF, OFF, OFF, PURPLE, OFF, PURPLE, PURPLE, BRAIN_FREEZE, + OFF, OFF, OFF, OFF, OFF, OFF, OFF, OFF, OFF, OFF, OFF, OFF, + OFF, OFF, OFF, OFF, OFF, OFF, OFF, OFF, OFF, OFF, OFF, OFF, + OFF, OFF, OFF, OFF, OFF, OFF + }, + /* Swedish characters */ + [6] = { + OFF, OFF, OFF, OFF, OFF, OFF, OFF, OFF, OFF, OFF, OFF, OFF, OFF, OFF, + OFF, OFF, OFF, OFF, OFF, OFF, OFF, OFF, OFF, OFF, OFF, OFF, OFF, OFF, + OFF, PURPLE, OFF, OFF, OFF, OFF, BRAIN_FREEZE, BRAIN_FREEZE, OFF, OFF, OFF, OFF, PURPLE, OFF, + OFF, OFF, OFF, OFF, OFF, OFF, OFF, OFF, OFF, OFF, OFF, OFF, + OFF, OFF, OFF, OFF, OFF, OFF, OFF, OFF, OFF, OFF, OFF, OFF, + OFF, OFF, OFF, OFF, OFF, OFF + }, + /* Special characters */ + [7] = { + OFF, OFF, OFF, OFF, OFF, OFF, OFF, OFF, OFF, OFF, OFF, OFF, OFF, OFF, + OFF, OFF, OFF, BRAIN_FREEZE, OFF, OFF, OFF, OFF, OFF, OFF, BRAIN_FREEZE, OFF, OFF, OFF, + OFF, PURPLE, OFF, OFF, PURPLE, OFF, OFF, OFF, OFF, OFF, OFF, OFF, OFF, OFF, + OFF, OFF, OFF, OFF, OFF, OFF, OFF, OFF, OFF, OFF, OFF, OFF, + OFF, OFF, OFF, OFF, OFF, OFF, OFF, OFF, OFF, OFF, OFF, OFF, + OFF, OFF, OFF, OFF, OFF, OFF + }, +}; +// clang-format on diff --git a/src/keymaps/soispha/led/ledmap.h b/src/keymaps/soispha/led/ledmap.h new file mode 100644 index 0000000..c2d1847 --- /dev/null +++ b/src/keymaps/soispha/led/ledmap.h @@ -0,0 +1,16 @@ +#pragma once + +#define hsv(H, S, V) {H, S, V} + +#define OFF hsv(0, 0, 0) // 0x000000 +#define RED hsv(0, 255, 255) // 0xFF0000 +#define ORANGE hsv(27, 255, 255) // 0xFFA500 +#define GREEN hsv(85,255,128) // 0x008000 +#define YELLOW hsv(42,255,255) // 0xFFFF00 +#define BLUE hsv(170,255,255) // 0x0000FF +#define PURPLE hsv(212,255,128) // 0x800080 +#define ASSASSINS_RED hsv(0,245,245) // 0xF50909 +#define BRAIN_FREEZE hsv(130,255,255) // 0x00F0FF + +#include "ledlayout.h" +#include "translation.h" diff --git a/src/keymaps/soispha/led/rgb.c b/src/keymaps/soispha/led/rgb.c new file mode 100644 index 0000000..13ab60f --- /dev/null +++ b/src/keymaps/soispha/led/rgb.c @@ -0,0 +1,65 @@ +#include QMK_KEYBOARD_H + +#include "ledmap.h" +#define MOON_LED_LEVEL LED_LEVEL + +extern rgb_config_t rgb_matrix_config; + +void keyboard_post_init_user(void) { + rgb_matrix_enable(); +} + +void set_layer_color(int layer) { + int n = sizeof(ledmap[layer]) / sizeof(*ledmap[layer]); + + for (int i = 0; i < n; i++) { + /* The rgb index is counted from top to bottom, e.g.: + * 0 4 + * 1 5 + * 2 6 + * 3 7 .. + * + * But we have an index (`i`) which counts from left to right, e.g.: + * 0 1 2 3 + * 4 5 6 7 + * .. + * + * Thus we use an translation table for the conversions (`i` -> `rgb_i`). + */ + int rgb_i = translation[i]; + + HSV hsv = { + .h = pgm_read_byte(&ledmap[layer][i][0]), + .s = pgm_read_byte(&ledmap[layer][i][1]), + .v = pgm_read_byte(&ledmap[layer][i][2]), + }; + + if (!hsv.h && !hsv.s && !hsv.v) { + rgb_matrix_set_color(rgb_i, 0, 0, 0); + } else { + RGB rgb = hsv_to_rgb(hsv); + float f = (float)rgb_matrix_config.hsv.v / UINT8_MAX; + rgb_matrix_set_color(rgb_i, f * rgb.r, f * rgb.g, f * rgb.b); + } + } +} + +/* Callback. Is called once every time a new “frame” is rendered */ +bool rgb_matrix_indicators_user(void) { + if (keyboard_config.disable_layer_led) { + return false; + } + + int layer = biton32(layer_state); + int defined_layer = sizeof(ledmap) / sizeof(*ledmap); + + if (layer <= (defined_layer - 1)) { + set_layer_color(layer); + } else { + if (rgb_matrix_get_flags() == LED_FLAG_NONE) { + rgb_matrix_set_color_all(0, 0, 0); + } + } + + return true; +} diff --git a/src/keymaps/soispha/led/translation.h b/src/keymaps/soispha/led/translation.h new file mode 100644 index 0000000..0140b79 --- /dev/null +++ b/src/keymaps/soispha/led/translation.h @@ -0,0 +1,10 @@ +// clang-format off +const uint8_t translation[RGB_MATRIX_LED_COUNT] = { + 0, 5, 10, 15, 20, 25, 29, 65, 61, 56, 51, 46, 41, 36, + 1, 6, 11, 16, 21, 26, 30, 66, 62, 57, 52, 47, 42, 37, + 2, 7, 12, 17, 22, 27, 31, 67, 63, 58, 53, 48, 43, 38, + 3, 8, 13, 18, 23, 28, 64, 59, 54, 49, 44, 39, + 4, 9, 14, 19, 24, 35, 71, 60, 55, 50, 45, 39, + 32, 33, 34, 70, 69, 68 +}; +// clang-format on diff --git a/src/keymaps/soispha/rgb.c b/src/keymaps/soispha/rgb.c deleted file mode 100644 index 183296e..0000000 --- a/src/keymaps/soispha/rgb.c +++ /dev/null @@ -1,227 +0,0 @@ -#include QMK_KEYBOARD_H -#define MOON_LED_LEVEL LED_LEVEL - -extern rgb_config_t rgb_matrix_config; - -void keyboard_post_init_user(void) { rgb_matrix_enable(); } - -// clang-format off -const uint8_t PROGMEM ledmap[][RGB_MATRIX_LED_COUNT][3] = { - [0] = {{0, 255, 255}, {86, 255, 128}, {86, 255, 128}, {172, 255, 255}, - {215, 255, 128}, {0, 255, 255}, {27, 255, 255}, {86, 255, 128}, - {172, 255, 255}, {215, 255, 128}, {0, 255, 255}, {27, 255, 255}, - {86, 255, 128}, {172, 255, 255}, {215, 255, 128}, {0, 255, 255}, - {27, 255, 255}, {86, 255, 128}, {172, 255, 255}, {215, 255, 128}, - {0, 255, 255}, {27, 255, 255}, {43, 255, 255}, {172, 255, 255}, - {215, 255, 128}, {0, 255, 255}, {27, 255, 255}, {86, 255, 128}, - {172, 255, 255}, {0, 255, 255}, {27, 255, 255}, {27, 255, 255}, - {0, 245, 245}, {0, 245, 245}, {0, 245, 245}, {0, 0, 0}, - {0, 255, 255}, {86, 255, 128}, {86, 255, 128}, {172, 255, 255}, - {215, 255, 128}, {0, 255, 255}, {27, 255, 255}, {86, 255, 128}, - {172, 255, 255}, {215, 255, 128}, {0, 255, 255}, {27, 255, 255}, - {86, 255, 128}, {172, 255, 255}, {215, 255, 128}, {0, 255, 255}, - {27, 255, 255}, {86, 255, 128}, {172, 255, 255}, {215, 255, 128}, - {0, 255, 255}, {27, 255, 255}, {43, 255, 255}, {172, 255, 255}, - {215, 255, 128}, {0, 255, 255}, {27, 255, 255}, {86, 255, 128}, - {172, 255, 255}, {0, 255, 255}, {27, 255, 255}, {27, 255, 255}, - {0, 245, 245}, {0, 245, 245}, {0, 245, 245}, {0, 0, 0}}, - - [1] = {{0, 0, 0}, {0, 0, 0}, {0, 0, 0}, {0, 0, 0}, - {0, 0, 0}, {0, 0, 0}, {0, 0, 0}, {0, 0, 0}, - {0, 0, 0}, {0, 0, 0}, {0, 0, 0}, {0, 0, 0}, - {0, 0, 0}, {0, 0, 0}, {0, 0, 0}, {0, 0, 0}, - {0, 0, 0}, {0, 0, 0}, {0, 0, 0}, {0, 0, 0}, - {0, 0, 0}, {0, 0, 0}, {0, 0, 0}, {0, 0, 0}, - {0, 0, 0}, {0, 0, 0}, {0, 0, 0}, {0, 0, 0}, - {0, 0, 0}, {0, 0, 0}, {0, 0, 0}, {0, 0, 0}, - {0, 245, 245}, {0, 245, 245}, {0, 245, 245}, {0, 0, 0}, - {0, 0, 0}, {0, 0, 0}, {0, 0, 0}, {0, 0, 0}, - {0, 0, 0}, {0, 0, 0}, {0, 0, 0}, {0, 0, 0}, - {0, 0, 0}, {0, 0, 0}, {0, 0, 0}, {0, 0, 0}, - {0, 0, 0}, {0, 0, 0}, {0, 0, 0}, {0, 0, 0}, - {0, 0, 0}, {0, 0, 0}, {0, 0, 0}, {0, 0, 0}, - {0, 0, 0}, {0, 0, 0}, {0, 0, 0}, {0, 0, 0}, - {0, 0, 0}, {0, 0, 0}, {0, 0, 0}, {0, 0, 0}, - {0, 0, 0}, {0, 0, 0}, {0, 0, 0}, {0, 0, 0}, - {0, 245, 245}, {131, 255, 255}, {0, 245, 245}, {0, 0, 0}}, - - [2] = {{0, 0, 0}, {0, 0, 0}, {0, 0, 0}, {0, 0, 0}, - {0, 0, 0}, {0, 0, 0}, {0, 0, 0}, {0, 0, 0}, - {0, 0, 0}, {0, 0, 0}, {0, 0, 0}, {0, 0, 0}, - {0, 0, 0}, {0, 0, 0}, {0, 0, 0}, {0, 0, 0}, - {0, 0, 0}, {0, 0, 0}, {0, 0, 0}, {0, 0, 0}, - {0, 0, 0}, {0, 0, 0}, {0, 0, 0}, {0, 0, 0}, - {0, 0, 0}, {0, 0, 0}, {0, 0, 0}, {0, 0, 0}, - {0, 0, 0}, {0, 0, 0}, {0, 0, 0}, {0, 0, 0}, - {0, 245, 245}, {0, 245, 245}, {0, 245, 245}, {0, 0, 0}, - {0, 0, 0}, {0, 0, 0}, {0, 0, 0}, {0, 0, 0}, - {0, 0, 0}, {0, 0, 0}, {0, 0, 0}, {0, 0, 0}, - {0, 0, 0}, {0, 0, 0}, {0, 0, 0}, {0, 0, 0}, - {0, 0, 0}, {0, 0, 0}, {0, 0, 0}, {0, 0, 0}, - {0, 0, 0}, {0, 0, 0}, {0, 0, 0}, {0, 0, 0}, - {0, 0, 0}, {0, 0, 0}, {0, 0, 0}, {0, 0, 0}, - {0, 0, 0}, {0, 0, 0}, {0, 0, 0}, {0, 0, 0}, - {0, 0, 0}, {0, 0, 0}, {0, 0, 0}, {0, 0, 0}, - {131, 255, 255}, {0, 245, 245}, {0, 245, 245}, {0, 0, 0}}, - - [3] = {{0, 0, 0}, {0, 0, 0}, {0, 0, 0}, {0, 0, 0}, - {0, 0, 0}, {0, 0, 0}, {0, 0, 0}, {0, 0, 0}, - {0, 0, 0}, {0, 0, 0}, {0, 0, 0}, {0, 0, 0}, - {0, 0, 0}, {0, 0, 0}, {0, 0, 0}, {0, 0, 0}, - {0, 0, 0}, {0, 0, 0}, {0, 0, 0}, {0, 0, 0}, - {0, 0, 0}, {0, 0, 0}, {0, 0, 0}, {0, 0, 0}, - {0, 0, 0}, {0, 0, 0}, {0, 0, 0}, {0, 0, 0}, - {0, 0, 0}, {0, 0, 0}, {0, 0, 0}, {0, 0, 0}, - {131, 255, 255}, {0, 245, 245}, {0, 245, 245}, {0, 0, 0}, - {0, 0, 0}, {0, 0, 0}, {0, 0, 0}, {0, 0, 0}, - {0, 0, 0}, {0, 0, 0}, {0, 0, 0}, {0, 0, 0}, - {0, 0, 0}, {0, 0, 0}, {0, 0, 0}, {0, 0, 0}, - {0, 0, 0}, {0, 0, 0}, {0, 0, 0}, {0, 0, 0}, - {0, 0, 0}, {0, 0, 0}, {0, 0, 0}, {0, 0, 0}, - {0, 0, 0}, {0, 0, 0}, {0, 0, 0}, {0, 0, 0}, - {0, 0, 0}, {0, 0, 0}, {0, 0, 0}, {0, 0, 0}, - {0, 0, 0}, {0, 0, 0}, {0, 0, 0}, {0, 0, 0}, - {0, 245, 245}, {0, 245, 245}, {0, 245, 245}, {0, 0, 0}}, - - [4] = {{0, 0, 0}, {0, 0, 0}, {0, 0, 0}, {0, 0, 0}, - {0, 0, 0}, {0, 0, 0}, {0, 0, 0}, {0, 0, 0}, - {0, 0, 0}, {0, 0, 0}, {0, 0, 0}, {0, 0, 0}, - {0, 0, 0}, {0, 0, 0}, {0, 0, 0}, {0, 0, 0}, - {0, 0, 0}, {0, 0, 0}, {0, 0, 0}, {0, 0, 0}, - {0, 0, 0}, {0, 0, 0}, {0, 0, 0}, {0, 0, 0}, - {0, 0, 0}, {0, 0, 0}, {0, 0, 0}, {0, 0, 0}, - {0, 0, 0}, {0, 0, 0}, {0, 0, 0}, {0, 0, 0}, - {0, 245, 245}, {131, 255, 255}, {0, 245, 245}, {0, 0, 0}, - {0, 0, 0}, {0, 0, 0}, {0, 0, 0}, {0, 0, 0}, - {0, 0, 0}, {0, 0, 0}, {0, 0, 0}, {0, 0, 0}, - {0, 0, 0}, {0, 0, 0}, {0, 0, 0}, {0, 0, 0}, - {0, 0, 0}, {0, 0, 0}, {0, 0, 0}, {0, 0, 0}, - {0, 0, 0}, {0, 0, 0}, {0, 0, 0}, {0, 0, 0}, - {0, 0, 0}, {0, 0, 0}, {0, 0, 0}, {0, 0, 0}, - {0, 0, 0}, {0, 0, 0}, {0, 0, 0}, {0, 0, 0}, - {0, 0, 0}, {0, 0, 0}, {0, 0, 0}, {0, 0, 0}, - {0, 245, 245}, {0, 245, 245}, {0, 245, 245}, {0, 0, 0}}, - - [5] = {{0, 0, 0}, {131, 255, 255}, {0, 0, 0}, {0, 0, 0}, - {0, 0, 0}, {0, 0, 0}, {0, 0, 0}, {0, 0, 0}, - {0, 0, 0}, {0, 0, 0}, {0, 0, 0}, {0, 0, 0}, - {0, 0, 0}, {0, 0, 0}, {0, 0, 0}, {0, 0, 0}, - {0, 0, 0}, {0, 0, 0}, {0, 0, 0}, {0, 0, 0}, - {0, 0, 0}, {0, 0, 0}, {0, 0, 0}, {0, 0, 0}, - {0, 0, 0}, {0, 0, 0}, {0, 0, 0}, {0, 0, 0}, - {0, 0, 0}, {0, 0, 0}, {0, 0, 0}, {0, 0, 0}, - {0, 245, 245}, {0, 245, 245}, {0, 245, 245}, {0, 245, 245}, - {0, 0, 0}, {131, 255, 255}, {0, 0, 0}, {0, 0, 0}, - {0, 0, 0}, {0, 0, 0}, {0, 0, 0}, {0, 0, 0}, - {0, 0, 0}, {0, 0, 0}, {0, 0, 0}, {0, 0, 0}, - {0, 0, 0}, {0, 0, 0}, {0, 0, 0}, {0, 0, 0}, - {0, 0, 0}, {0, 0, 0}, {0, 0, 0}, {0, 0, 0}, - {0, 0, 0}, {0, 0, 0}, {0, 0, 0}, {0, 0, 0}, - {0, 0, 0}, {0, 0, 0}, {0, 0, 0}, {0, 0, 0}, - {0, 0, 0}, {0, 0, 0}, {0, 0, 0}, {0, 0, 0}, - {0, 245, 245}, {0, 245, 245}, {0, 245, 245}, {0, 245, 245}}, - - [6] = {{0, 0, 0}, {0, 0, 0}, {0, 0, 0}, {0, 0, 0}, - {0, 0, 0}, {0, 0, 0}, {0, 0, 0}, {0, 0, 0}, - {0, 0, 0}, {0, 0, 0}, {0, 0, 0}, {0, 0, 0}, - {0, 0, 0}, {0, 0, 0}, {0, 0, 0}, {0, 0, 0}, - {0, 0, 0}, {0, 0, 0}, {0, 0, 0}, {0, 0, 0}, - {0, 0, 0}, {0, 0, 0}, {0, 0, 0}, {0, 0, 0}, - {0, 0, 0}, {0, 0, 0}, {0, 0, 0}, {0, 0, 0}, - {0, 0, 0}, {0, 0, 0}, {0, 0, 0}, {0, 0, 0}, - {0, 245, 245}, {0, 245, 245}, {131, 255, 255}, {0, 0, 0}, - {0, 0, 0}, {0, 0, 0}, {0, 0, 0}, {0, 0, 0}, - {0, 0, 0}, {0, 0, 0}, {0, 0, 0}, {0, 0, 0}, - {0, 0, 0}, {0, 0, 0}, {0, 0, 0}, {0, 0, 0}, - {0, 0, 0}, {0, 0, 0}, {0, 0, 0}, {0, 0, 0}, - {0, 0, 0}, {0, 0, 0}, {0, 0, 0}, {0, 0, 0}, - {0, 0, 0}, {0, 0, 0}, {0, 0, 0}, {0, 0, 0}, - {0, 0, 0}, {0, 0, 0}, {0, 0, 0}, {0, 0, 0}, - {0, 0, 0}, {0, 0, 0}, {0, 0, 0}, {0, 0, 0}, - {0, 245, 245}, {0, 245, 245}, {0, 245, 245}, {0, 0, 0}}, - - [7] = {{0, 0, 0}, {0, 0, 0}, {131, 255, 255}, {0, 0, 0}, {0, 0, 0}, - {0, 0, 0}, {0, 0, 0}, {215, 255, 128}, {0, 0, 0}, {0, 0, 0}, - {0, 0, 0}, {0, 0, 0}, {215, 255, 128}, {0, 0, 0}, {0, 0, 0}, - {0, 0, 0}, {0, 0, 0}, {0, 0, 0}, {0, 0, 0}, {0, 0, 0}, - {0, 0, 0}, {0, 0, 0}, {215, 255, 128}, {0, 0, 0}, {0, 0, 0}, - {0, 0, 0}, {0, 0, 0}, {0, 0, 0}, {0, 0, 0}, {0, 0, 0}, - {0, 0, 0}, {0, 0, 0}, {0, 0, 0}, {0, 0, 0}, {0, 0, 0}, - {0, 0, 0}, {0, 0, 0}, {0, 0, 0}, {131, 255, 255}, {0, 0, 0}, - {0, 0, 0}, {0, 0, 0}, {0, 0, 0}, {215, 255, 128}, {0, 0, 0}, - {0, 0, 0}, {0, 0, 0}, {0, 0, 0}, {215, 255, 128}, {0, 0, 0}, - {0, 0, 0}, {0, 0, 0}, {0, 0, 0}, {0, 0, 0}, {0, 0, 0}, - {0, 0, 0}, {0, 0, 0}, {0, 0, 0}, {215, 255, 128}, {0, 0, 0}, - {0, 0, 0}, {0, 0, 0}, {0, 0, 0}, {0, 0, 0}, {0, 0, 0}, - {0, 0, 0}, {0, 0, 0}, {0, 0, 0}, {0, 0, 0}, {0, 0, 0}, - {0, 0, 0}, {0, 0, 0}}, - - [8] = {{0, 0, 0}, {0, 0, 0}, {0, 0, 0}, {0, 0, 0}, - {0, 0, 0}, {0, 0, 0}, {0, 0, 0}, {215, 255, 128}, - {0, 0, 0}, {0, 0, 0}, {0, 0, 0}, {0, 0, 0}, - {0, 0, 0}, {0, 0, 0}, {0, 0, 0}, {0, 0, 0}, - {0, 0, 0}, {0, 0, 0}, {0, 0, 0}, {0, 0, 0}, - {0, 0, 0}, {0, 0, 0}, {0, 0, 0}, {0, 0, 0}, - {0, 0, 0}, {0, 0, 0}, {0, 0, 0}, {0, 0, 0}, - {0, 0, 0}, {0, 0, 0}, {0, 0, 0}, {131, 255, 255}, - {0, 0, 0}, {0, 0, 0}, {0, 0, 0}, {0, 0, 0}, - {0, 0, 0}, {0, 0, 0}, {0, 0, 0}, {0, 0, 0}, - {0, 0, 0}, {0, 0, 0}, {0, 0, 0}, {215, 255, 128}, - {0, 0, 0}, {0, 0, 0}, {0, 0, 0}, {0, 0, 0}, - {0, 0, 0}, {0, 0, 0}, {0, 0, 0}, {0, 0, 0}, - {0, 0, 0}, {0, 0, 0}, {0, 0, 0}, {0, 0, 0}, - {0, 0, 0}, {0, 0, 0}, {0, 0, 0}, {0, 0, 0}, - {0, 0, 0}, {0, 0, 0}, {0, 0, 0}, {0, 0, 0}, - {0, 0, 0}, {0, 0, 0}, {0, 0, 0}, {131, 255, 255}, - {0, 0, 0}, {0, 0, 0}, {0, 0, 0}, {0, 0, 0}}, - - [9] = {{0, 0, 0}, {0, 0, 0}, {0, 0, 0}, {0, 0, 0}, {0, 0, 0}, - {0, 0, 0}, {0, 0, 0}, {131, 255, 255}, {0, 0, 0}, {0, 0, 0}, - {0, 0, 0}, {0, 0, 0}, {0, 0, 0}, {0, 0, 0}, {0, 0, 0}, - {0, 0, 0}, {0, 0, 0}, {0, 0, 0}, {0, 0, 0}, {0, 0, 0}, - {0, 0, 0}, {0, 0, 0}, {131, 255, 255}, {0, 0, 0}, {0, 0, 0}, - {0, 0, 0}, {0, 0, 0}, {0, 0, 0}, {0, 0, 0}, {0, 0, 0}, - {0, 0, 0}, {0, 0, 0}, {0, 0, 0}, {0, 0, 0}, {0, 0, 0}, - {0, 0, 0}, {0, 0, 0}, {0, 0, 0}, {0, 0, 0}, {0, 0, 0}, - {0, 0, 0}, {0, 0, 0}, {0, 0, 0}, {0, 0, 0}, {0, 0, 0}, - {0, 0, 0}, {0, 0, 0}, {0, 0, 0}, {0, 0, 0}, {0, 0, 0}, - {0, 0, 0}, {0, 0, 0}, {0, 0, 0}, {0, 0, 0}, {0, 0, 0}, - {0, 0, 0}, {0, 0, 0}, {0, 0, 0}, {0, 0, 0}, {0, 0, 0}, - {0, 0, 0}, {0, 0, 0}, {0, 0, 0}, {0, 0, 0}, {0, 0, 0}, - {0, 0, 0}, {0, 0, 0}, {0, 0, 0}, {0, 0, 0}, {0, 0, 0}, - {0, 0, 0}, {0, 0, 0}}, -}; -// clang-format on - -void set_layer_color(int layer) { - for (int i = 0; i < RGB_MATRIX_LED_COUNT; i++) { - HSV hsv = { - .h = pgm_read_byte(&ledmap[layer][i][0]), - .s = pgm_read_byte(&ledmap[layer][i][1]), - .v = pgm_read_byte(&ledmap[layer][i][2]), - }; - if (!hsv.h && !hsv.s && !hsv.v) { - rgb_matrix_set_color(i, 0, 0, 0); - } else { - RGB rgb = hsv_to_rgb(hsv); - float f = (float)rgb_matrix_config.hsv.v / UINT8_MAX; - rgb_matrix_set_color(i, f * rgb.r, f * rgb.g, f * rgb.b); - } - } -} - -bool rgb_matrix_indicators_user(void) { - if (keyboard_config.disable_layer_led) { - return false; - } - - int layer = biton32(layer_state); - if (layer <= 9) { - set_layer_color(layer); - } else { - if (rgb_matrix_get_flags() == LED_FLAG_NONE) { - rgb_matrix_set_color_all(0, 0, 0); - } - } - return true; -} diff --git a/src/keymaps/soispha/rules.mk b/src/keymaps/soispha/rules.mk index 27610b4..ddf9ccc 100644 --- a/src/keymaps/soispha/rules.mk +++ b/src/keymaps/soispha/rules.mk @@ -30,4 +30,4 @@ RAW_ENABLE = yes # LTO_ENABLE = yes -SRC += rgb.c hid/hid.c +SRC += led/rgb.c hid/hid.c |