~ruther/qmk_firmware

346b06d391dbc760d753a5cffcbbcb58ecc9ce95 — Less/Rikki 1 year, 9 months ago f4677c8
refactor: move default RGB/LED matrix #defines (#21938)

* refactor: move default RGB/LED matrix #defines

Moving the fallback definitions of macros like LED_MATRIX_VAL_STEP and
RGB_MATRIX_MAXIMUM_BRIGHTNESS to header files allows keyboards to
leverage these defaults without requiring #ifdef guards (and often
repeating said fallback definitions).

* style: use if(n)def for consistency

and remove redundant UINT8_MAX checks on maximum brightness

Co-authored-by: Joel Challis <git@zvecr.com>

* refactor: remove INDICATOR_MAX_BRIGHTNESS macro

Co-authored-by: Joel Challis <git@zvecr.com>

---------

Co-authored-by: Joel Challis <git@zvecr.com>
M keyboards/input_club/ergodox_infinity/ergodox_infinity.c => keyboards/input_club/ergodox_infinity/ergodox_infinity.c +0 -3
@@ 117,9 117,6 @@ void matrix_init_kb(void) {
     * Since K20x is stuck with a 32 byte EEPROM (see tmk_core/common/chibios/eeprom_teensy.c),
     * and neither led_matrix_eeconfig.speed or .flags fit in this boundary, just force their values to default on boot.
     */
#    if !defined(LED_MATRIX_DEFAULT_SPD)
#        define LED_MATRIX_DEFAULT_SPD UINT8_MAX / 2
#    endif
    led_matrix_set_speed(LED_MATRIX_DEFAULT_SPD);
    led_matrix_set_flags(LED_FLAG_ALL);
#endif

M keyboards/input_club/k_type/k_type.c => keyboards/input_club/k_type/k_type.c +0 -3
@@ 217,9 217,6 @@ void matrix_init_kb(void) {
     * Since K20x is stuck with a 32 byte EEPROM (see tmk_core/common/chibios/eeprom_teensy.c),
     * and neither led_matrix_eeconfig.speed or .flags fit in this boundary, just force their values to default on boot.
     */
#    if !defined(RGB_MATRIX_DEFAULT_SPD)
#        define RGB_MATRIX_DEFAULT_SPD UINT8_MAX / 2
#    endif
    rgb_matrix_set_speed(RGB_MATRIX_DEFAULT_SPD),
    rgb_matrix_set_flags(LED_FLAG_ALL);


M keyboards/input_club/whitefox/whitefox.c => keyboards/input_club/whitefox/whitefox.c +0 -3
@@ 83,9 83,6 @@ void matrix_init_kb(void) {
     * Since K20x is stuck with a 32 byte EEPROM (see tmk_core/common/chibios/eeprom_teensy.c),
     * and neither led_matrix_eeconfig.speed or .flags fit in this boundary, just force their values to default on boot.
     */
#    if !defined(LED_MATRIX_DEFAULT_SPD)
#        define LED_MATRIX_DEFAULT_SPD UINT8_MAX / 2
#    endif
    led_matrix_set_speed(LED_MATRIX_DEFAULT_SPD),
    led_matrix_set_flags(LED_FLAG_ALL);
#endif

M keyboards/kbdfans/kbd67/mkiirgb/v3/info.json => keyboards/kbdfans/kbd67/mkiirgb/v3/info.json +2 -1
@@ 5,7 5,8 @@
        "device_version": "0.0.3"
    },
    "rgb_matrix": {
        "driver": "is31fl3741"
        "driver": "is31fl3741",
        "val_steps": 8
    },
    "matrix_pins": {
        "cols": ["F7", "F6", "F5", "C7", "B0", "B1", "B2", "B3", "B4", "D7", "D6", "D4", "D5", "D3", "D2"],

M keyboards/kbdfans/kbd67/mkiirgb/v3/v3.c => keyboards/kbdfans/kbd67/mkiirgb/v3/v3.c +2 -6
@@ 125,16 125,12 @@ led_config_t g_led_config = { {

#if defined(RGB_MATRIX_ENABLE) && defined(CAPS_LOCK_LED_INDEX)

#ifdef RGB_MATRIX_MAXIMUM_BRIGHTNESS
#if !defined(CAPS_LOCK_MAX_BRIGHTNESS)
    #define CAPS_LOCK_MAX_BRIGHTNESS RGB_MATRIX_MAXIMUM_BRIGHTNESS
#else
    #define CAPS_LOCK_MAX_BRIGHTNESS 0xFF
#endif

#ifdef RGB_MATRIX_VAL_STEP
#if !defined(CAPS_LOCK_VAL_STEP)
    #define CAPS_LOCK_VAL_STEP RGB_MATRIX_VAL_STEP
#else
    #define CAPS_LOCK_VAL_STEP 8
#endif

bool rgb_matrix_indicators_kb(void) {

M keyboards/teleport/native/ansi/keymaps/default/keymap.c => keyboards/teleport/native/ansi/keymaps/default/keymap.c +3 -3
@@ 53,11 53,11 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {

/* RGB matrix indicator code
It reads the current matrix color, offsets the hue by 30, 
and sets val to either 255 or, if defined, RGB_MATRIX_MAXIMUM_BRIGHTNESS
and sets val to RGB_MATRIX_MAXIMUM_BRIGHTNESS (by default, 255)
This is applied to both caps lock, and other indicator keys for layer 1 */

bool rgb_matrix_indicators_user(void) {
    HSV hsv_ind = {rgb_matrix_get_hue()+30,255,INDICATOR_MAX_BRIGHTNESS};
    HSV hsv_ind = {rgb_matrix_get_hue()+30,255,RGB_MATRIX_MAXIMUM_BRIGHTNESS};
    RGB rgb_ind = hsv_to_rgb(hsv_ind);

    /* Sets Caps to different color as indicator. If RGB mode is rain, and caps indicator is off, the LED will always be off.


@@ 70,7 70,7 @@ bool rgb_matrix_indicators_user(void) {

    /* Sets W, A, S, D, LGUI to a different color as layer indicator */
    if(IS_LAYER_ON(1)) {
      HSV hsv_ind = {rgb_matrix_get_hue()+30,255,INDICATOR_MAX_BRIGHTNESS};
      HSV hsv_ind = {rgb_matrix_get_hue()+30,255,RGB_MATRIX_MAXIMUM_BRIGHTNESS};
      RGB rgb_ind = hsv_to_rgb(hsv_ind);

      rgb_matrix_set_color(W_LED_INDEX, rgb_ind.r, rgb_ind.g, rgb_ind.b);

M keyboards/teleport/native/ansi/keymaps/perfmode/keymap.c => keyboards/teleport/native/ansi/keymaps/perfmode/keymap.c +3 -3
@@ 144,13 144,13 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {

/* RGB matrix indicator code
It reads the current matrix color, offsets the hue by 30, 
and sets val to either 255 or, if defined, RGB_MATRIX_MAXIMUM_BRIGHTNESS
and sets val to RGB_MATRIX_MAXIMUM_BRIGHTNESS (by default, 255)
This is applied to both caps lock, and other indicator keys for layer 1 */

bool rgb_matrix_indicators_user(void) {
  /* Layer 2 (perf mode on this keymap) is not supposed to have LED refreshes, hence excluded */
  if (!IS_LAYER_ON(2)) {
    HSV hsv_ind = {rgb_matrix_get_hue()+30,255,INDICATOR_MAX_BRIGHTNESS};
    HSV hsv_ind = {rgb_matrix_get_hue()+30,255,RGB_MATRIX_MAXIMUM_BRIGHTNESS};
    RGB rgb_ind = hsv_to_rgb(hsv_ind);

    /* Sets Caps to different color as indicator. If RGB mode is rain, and caps indicator is off, the LED will always be off.


@@ 163,7 163,7 @@ bool rgb_matrix_indicators_user(void) {

    /* Sets W, A, S, D, LGUI to a different color as layer indicator */
    if(IS_LAYER_ON(1)) {
      HSV hsv_ind = {rgb_matrix_get_hue()+30,255,INDICATOR_MAX_BRIGHTNESS};
      HSV hsv_ind = {rgb_matrix_get_hue()+30,255,RGB_MATRIX_MAXIMUM_BRIGHTNESS};
      RGB rgb_ind = hsv_to_rgb(hsv_ind);

      rgb_matrix_set_color(W_LED_INDEX, rgb_ind.r, rgb_ind.g, rgb_ind.b);

M keyboards/teleport/native/ansi/keymaps/via/keymap.c => keyboards/teleport/native/ansi/keymaps/via/keymap.c +3 -3
@@ 53,11 53,11 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {

/* RGB matrix indicator code
It reads the current matrix color, offsets the hue by 30, 
and sets val to either 255 or, if defined, RGB_MATRIX_MAXIMUM_BRIGHTNESS
and sets val to RGB_MATRIX_MAXIMUM_BRIGHTNESS (by default, 255)
This is applied to both caps lock, and other indicator keys for layer 1 */

bool rgb_matrix_indicators_user(void) {
    HSV hsv_ind = {rgb_matrix_get_hue()+30,255,INDICATOR_MAX_BRIGHTNESS};
    HSV hsv_ind = {rgb_matrix_get_hue()+30,255,RGB_MATRIX_MAXIMUM_BRIGHTNESS};
    RGB rgb_ind = hsv_to_rgb(hsv_ind);

    /* Sets Caps to different color as indicator. If RGB mode is rain, and caps indicator is off, the LED will always be off.


@@ 70,7 70,7 @@ bool rgb_matrix_indicators_user(void) {

    /* Sets W, A, S, D, LGUI to a different color as layer indicator */
    if(IS_LAYER_ON(1)) {
      HSV hsv_ind = {rgb_matrix_get_hue()+30,255,INDICATOR_MAX_BRIGHTNESS};
      HSV hsv_ind = {rgb_matrix_get_hue()+30,255,RGB_MATRIX_MAXIMUM_BRIGHTNESS};
      RGB rgb_ind = hsv_to_rgb(hsv_ind);

      rgb_matrix_set_color(W_LED_INDEX, rgb_ind.r, rgb_ind.g, rgb_ind.b);

M keyboards/teleport/native/config.h => keyboards/teleport/native/config.h +0 -7
@@ 61,13 61,6 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
#define ENABLE_RGB_MATRIX_CUSTOM_SINGLE_COLOR_RAINDROPS // 0 Single color raindrops, random keys lighting up at randomized intensity
#define ENABLE_RGB_MATRIX_CUSTOM_STATIC_GAME_MODE       // - Game mode sets the entire matrix (static) once, then stops LED refreshes

#define INDICATOR_MAX_BRIGHTNESS 255
#ifdef RGB_MATRIX_MAXIMUM_BRIGHTNESS
    #undef INDICATOR_MAX_BRIGHTNESS
    #define INDICATOR_MAX_BRIGHTNESS RGB_MATRIX_MAXIMUM_BRIGHTNESS
#endif


/* Define indicator LED indices, used for lighting effects  */
#define W_LED_INDEX 33
#define A_LED_INDEX 47

M keyboards/teleport/native/iso/keymaps/default/keymap.c => keyboards/teleport/native/iso/keymaps/default/keymap.c +3 -3
@@ 53,11 53,11 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {

/* RGB matrix indicator code
It reads the current matrix color, offsets the hue by 30, 
and sets val to either 255 or, if defined, RGB_MATRIX_MAXIMUM_BRIGHTNESS
and sets val to RGB_MATRIX_MAXIMUM_BRIGHTNESS (by default, 255)
This is applied to both caps lock, and other indicator keys for layer 1 */

bool rgb_matrix_indicators_user(void) {
    HSV hsv_ind = {rgb_matrix_get_hue()+30,255,INDICATOR_MAX_BRIGHTNESS};
    HSV hsv_ind = {rgb_matrix_get_hue()+30,255,RGB_MATRIX_MAXIMUM_BRIGHTNESS};
    RGB rgb_ind = hsv_to_rgb(hsv_ind);

    /* Sets Caps to different color as indicator. If RGB mode is rain, and caps indicator is off, the LED will always be off.


@@ 70,7 70,7 @@ bool rgb_matrix_indicators_user(void) {

    /* Sets W, A, S, D, LGUI to a different color as layer indicator */
    if(IS_LAYER_ON(1)) {
      HSV hsv_ind = {rgb_matrix_get_hue()+30,255,INDICATOR_MAX_BRIGHTNESS};
      HSV hsv_ind = {rgb_matrix_get_hue()+30,255,RGB_MATRIX_MAXIMUM_BRIGHTNESS};
      RGB rgb_ind = hsv_to_rgb(hsv_ind);

      rgb_matrix_set_color(W_LED_INDEX, rgb_ind.r, rgb_ind.g, rgb_ind.b);

M keyboards/teleport/native/iso/keymaps/perfmode/keymap.c => keyboards/teleport/native/iso/keymaps/perfmode/keymap.c +3 -3
@@ 144,13 144,13 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {

/* RGB matrix indicator code
It reads the current matrix color, offsets the hue by 30, 
and sets val to either 255 or, if defined, RGB_MATRIX_MAXIMUM_BRIGHTNESS
and sets val to RGB_MATRIX_MAXIMUM_BRIGHTNESS (by default, 255)
This is applied to both caps lock, and other indicator keys for layer 1 */

bool rgb_matrix_indicators_user(void) {
  /* Layer 2 (perf mode on this keymap) is not supposed to have LED refreshes, hence excluded */
  if (!IS_LAYER_ON(2)) {
    HSV hsv_ind = {rgb_matrix_get_hue()+30,255,INDICATOR_MAX_BRIGHTNESS};
    HSV hsv_ind = {rgb_matrix_get_hue()+30,255,RGB_MATRIX_MAXIMUM_BRIGHTNESS};
    RGB rgb_ind = hsv_to_rgb(hsv_ind);

    /* Sets Caps to different color as indicator. If RGB mode is rain, and caps indicator is off, the LED will always be off.


@@ 163,7 163,7 @@ bool rgb_matrix_indicators_user(void) {

    /* Sets W, A, S, D, LGUI to a different color as layer indicator */
    if(IS_LAYER_ON(1)) {
      HSV hsv_ind = {rgb_matrix_get_hue()+30,255,INDICATOR_MAX_BRIGHTNESS};
      HSV hsv_ind = {rgb_matrix_get_hue()+30,255,RGB_MATRIX_MAXIMUM_BRIGHTNESS};
      RGB rgb_ind = hsv_to_rgb(hsv_ind);

      rgb_matrix_set_color(W_LED_INDEX, rgb_ind.r, rgb_ind.g, rgb_ind.b);

M keyboards/teleport/native/iso/keymaps/via/keymap.c => keyboards/teleport/native/iso/keymaps/via/keymap.c +3 -3
@@ 53,11 53,11 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {

/* RGB matrix indicator code
It reads the current matrix color, offsets the hue by 30, 
and sets val to either 255 or, if defined, RGB_MATRIX_MAXIMUM_BRIGHTNESS
and sets val to RGB_MATRIX_MAXIMUM_BRIGHTNESS (by default, 255)
This is applied to both caps lock, and other indicator keys for layer 1 */

bool rgb_matrix_indicators_user(void) {
    HSV hsv_ind = {rgb_matrix_get_hue()+30,255,INDICATOR_MAX_BRIGHTNESS};
    HSV hsv_ind = {rgb_matrix_get_hue()+30,255,RGB_MATRIX_MAXIMUM_BRIGHTNESS};
    RGB rgb_ind = hsv_to_rgb(hsv_ind);

    /* Sets Caps to different color as indicator. If RGB mode is rain, and caps indicator is off, the LED will always be off.


@@ 70,7 70,7 @@ bool rgb_matrix_indicators_user(void) {

    /* Sets W, A, S, D, LGUI to a different color as layer indicator */
    if(IS_LAYER_ON(1)) {
      HSV hsv_ind = {rgb_matrix_get_hue()+30,255,INDICATOR_MAX_BRIGHTNESS};
      HSV hsv_ind = {rgb_matrix_get_hue()+30,255,RGB_MATRIX_MAXIMUM_BRIGHTNESS};
      RGB rgb_ind = hsv_to_rgb(hsv_ind);

      rgb_matrix_set_color(W_LED_INDEX, rgb_ind.r, rgb_ind.g, rgb_ind.b);

M keyboards/zykrah/fuyu/keymaps/via/keymap.c => keyboards/zykrah/fuyu/keymaps/via/keymap.c +2 -6
@@ 73,15 73,11 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
// Code for Caps Locks indicator
#if defined(RGB_MATRIX_ENABLE) && defined(CAPS_LOCK_LED_INDEX)

#define CAPS_LOCK_MAX_BRIGHTNESS 0xFF
#ifdef RGB_MATRIX_MAXIMUM_BRIGHTNESS
    #undef CAPS_LOCK_MAX_BRIGHTNESS
#if !defined(CAPS_LOCK_MAX_BRIGHTNESS)
    #define CAPS_LOCK_MAX_BRIGHTNESS RGB_MATRIX_MAXIMUM_BRIGHTNESS
#endif

#define CAPS_LOCK_VAL_STEP 8
#ifdef RGB_MATRIX_VAL_STEP
    #undef CAPS_LOCK_VAL_STEP
#if !defined(CAPS_LOCK_VAL_STEP)
    #define CAPS_LOCK_VAL_STEP RGB_MATRIX_VAL_STEP
#endif


M quantum/led_matrix/led_matrix.c => quantum/led_matrix/led_matrix.c +1 -30
@@ 58,35 58,6 @@ const led_point_t k_led_matrix_center = LED_MATRIX_CENTER;
// -----End led effect includes macros-------
// ------------------------------------------

#ifndef LED_MATRIX_TIMEOUT
#    define LED_MATRIX_TIMEOUT 0
#endif

#if !defined(LED_MATRIX_MAXIMUM_BRIGHTNESS) || LED_MATRIX_MAXIMUM_BRIGHTNESS > UINT8_MAX
#    undef LED_MATRIX_MAXIMUM_BRIGHTNESS
#    define LED_MATRIX_MAXIMUM_BRIGHTNESS UINT8_MAX
#endif

#if !defined(LED_MATRIX_VAL_STEP)
#    define LED_MATRIX_VAL_STEP 8
#endif

#if !defined(LED_MATRIX_SPD_STEP)
#    define LED_MATRIX_SPD_STEP 16
#endif

#if !defined(LED_MATRIX_DEFAULT_MODE)
#    define LED_MATRIX_DEFAULT_MODE LED_MATRIX_SOLID
#endif

#if !defined(LED_MATRIX_DEFAULT_VAL)
#    define LED_MATRIX_DEFAULT_VAL LED_MATRIX_MAXIMUM_BRIGHTNESS
#endif

#if !defined(LED_MATRIX_DEFAULT_SPD)
#    define LED_MATRIX_DEFAULT_SPD UINT8_MAX / 2
#endif

// globals
led_eeconfig_t led_matrix_eeconfig; // TODO: would like to prefix this with g_ for global consistancy, do this in another pr
uint32_t       g_led_timer;


@@ 632,7 603,7 @@ void led_matrix_decrease_speed(void) {
void led_matrix_set_flags_eeprom_helper(led_flags_t flags, bool write_to_eeprom) {
    led_matrix_eeconfig.flags = flags;
    eeconfig_flag_led_matrix(write_to_eeprom);
    dprintf("led matrix set speed [%s]: %u\n", (write_to_eeprom) ? "EEPROM" : "NOEEPROM", led_matrix_eeconfig.flags);
    dprintf("led matrix set flags [%s]: %u\n", (write_to_eeprom) ? "EEPROM" : "NOEEPROM", led_matrix_eeconfig.flags);
}

led_flags_t led_matrix_get_flags(void) {

M quantum/led_matrix/led_matrix.h => quantum/led_matrix/led_matrix.h +28 -0
@@ 43,6 43,34 @@
#    include "ckled2001-simple.h"
#endif

#ifndef LED_MATRIX_TIMEOUT
#    define LED_MATRIX_TIMEOUT 0
#endif

#ifndef LED_MATRIX_MAXIMUM_BRIGHTNESS
#    define LED_MATRIX_MAXIMUM_BRIGHTNESS UINT8_MAX
#endif

#ifndef LED_MATRIX_VAL_STEP
#    define LED_MATRIX_VAL_STEP 8
#endif

#ifndef LED_MATRIX_SPD_STEP
#    define LED_MATRIX_SPD_STEP 16
#endif

#ifndef LED_MATRIX_DEFAULT_MODE
#    define LED_MATRIX_DEFAULT_MODE LED_MATRIX_SOLID
#endif

#ifndef LED_MATRIX_DEFAULT_VAL
#    define LED_MATRIX_DEFAULT_VAL LED_MATRIX_MAXIMUM_BRIGHTNESS
#endif

#ifndef LED_MATRIX_DEFAULT_SPD
#    define LED_MATRIX_DEFAULT_SPD UINT8_MAX / 2
#endif

#ifndef LED_MATRIX_LED_FLUSH_LIMIT
#    define LED_MATRIX_LED_FLUSH_LIMIT 16
#endif

M quantum/rgb_matrix/rgb_matrix.c => quantum/rgb_matrix/rgb_matrix.c +1 -51
@@ 60,56 60,6 @@ __attribute__((weak)) RGB rgb_matrix_hsv_to_rgb(HSV hsv) {
// -----End rgb effect includes macros-------
// ------------------------------------------

#ifndef RGB_MATRIX_TIMEOUT
#    define RGB_MATRIX_TIMEOUT 0
#endif

#if !defined(RGB_MATRIX_MAXIMUM_BRIGHTNESS) || RGB_MATRIX_MAXIMUM_BRIGHTNESS > UINT8_MAX
#    undef RGB_MATRIX_MAXIMUM_BRIGHTNESS
#    define RGB_MATRIX_MAXIMUM_BRIGHTNESS UINT8_MAX
#endif

#if !defined(RGB_MATRIX_HUE_STEP)
#    define RGB_MATRIX_HUE_STEP 8
#endif

#if !defined(RGB_MATRIX_SAT_STEP)
#    define RGB_MATRIX_SAT_STEP 16
#endif

#if !defined(RGB_MATRIX_VAL_STEP)
#    define RGB_MATRIX_VAL_STEP 16
#endif

#if !defined(RGB_MATRIX_SPD_STEP)
#    define RGB_MATRIX_SPD_STEP 16
#endif

#if !defined(RGB_MATRIX_DEFAULT_MODE)
#    ifdef ENABLE_RGB_MATRIX_CYCLE_LEFT_RIGHT
#        define RGB_MATRIX_DEFAULT_MODE RGB_MATRIX_CYCLE_LEFT_RIGHT
#    else
// fallback to solid colors if RGB_MATRIX_CYCLE_LEFT_RIGHT is disabled in userspace
#        define RGB_MATRIX_DEFAULT_MODE RGB_MATRIX_SOLID_COLOR
#    endif
#endif

#if !defined(RGB_MATRIX_DEFAULT_HUE)
#    define RGB_MATRIX_DEFAULT_HUE 0
#endif

#if !defined(RGB_MATRIX_DEFAULT_SAT)
#    define RGB_MATRIX_DEFAULT_SAT UINT8_MAX
#endif

#if !defined(RGB_MATRIX_DEFAULT_VAL)
#    define RGB_MATRIX_DEFAULT_VAL RGB_MATRIX_MAXIMUM_BRIGHTNESS
#endif

#if !defined(RGB_MATRIX_DEFAULT_SPD)
#    define RGB_MATRIX_DEFAULT_SPD UINT8_MAX / 2
#endif

// globals
rgb_config_t rgb_matrix_config; // TODO: would like to prefix this with g_ for global consistancy, do this in another pr
uint32_t     g_rgb_timer;


@@ 736,7 686,7 @@ void rgb_matrix_decrease_speed(void) {
void rgb_matrix_set_flags_eeprom_helper(led_flags_t flags, bool write_to_eeprom) {
    rgb_matrix_config.flags = flags;
    eeconfig_flag_rgb_matrix(write_to_eeprom);
    dprintf("rgb matrix set speed [%s]: %u\n", (write_to_eeprom) ? "EEPROM" : "NOEEPROM", rgb_matrix_config.flags);
    dprintf("rgb matrix set flags [%s]: %u\n", (write_to_eeprom) ? "EEPROM" : "NOEEPROM", rgb_matrix_config.flags);
}

led_flags_t rgb_matrix_get_flags(void) {

M quantum/rgb_matrix/rgb_matrix.h => quantum/rgb_matrix/rgb_matrix.h +49 -0
@@ 46,6 46,55 @@
#    include "ws2812.h"
#endif

#ifndef RGB_MATRIX_TIMEOUT
#    define RGB_MATRIX_TIMEOUT 0
#endif

#ifndef RGB_MATRIX_MAXIMUM_BRIGHTNESS
#    define RGB_MATRIX_MAXIMUM_BRIGHTNESS UINT8_MAX
#endif

#ifndef RGB_MATRIX_HUE_STEP
#    define RGB_MATRIX_HUE_STEP 8
#endif

#ifndef RGB_MATRIX_SAT_STEP
#    define RGB_MATRIX_SAT_STEP 16
#endif

#ifndef RGB_MATRIX_VAL_STEP
#    define RGB_MATRIX_VAL_STEP 16
#endif

#ifndef RGB_MATRIX_SPD_STEP
#    define RGB_MATRIX_SPD_STEP 16
#endif

#ifndef RGB_MATRIX_DEFAULT_MODE
#    ifdef ENABLE_RGB_MATRIX_CYCLE_LEFT_RIGHT
#        define RGB_MATRIX_DEFAULT_MODE RGB_MATRIX_CYCLE_LEFT_RIGHT
#    else
// fallback to solid colors if RGB_MATRIX_CYCLE_LEFT_RIGHT is disabled in userspace
#        define RGB_MATRIX_DEFAULT_MODE RGB_MATRIX_SOLID_COLOR
#    endif
#endif

#ifndef RGB_MATRIX_DEFAULT_HUE
#    define RGB_MATRIX_DEFAULT_HUE 0
#endif

#ifndef RGB_MATRIX_DEFAULT_SAT
#    define RGB_MATRIX_DEFAULT_SAT UINT8_MAX
#endif

#ifndef RGB_MATRIX_DEFAULT_VAL
#    define RGB_MATRIX_DEFAULT_VAL RGB_MATRIX_MAXIMUM_BRIGHTNESS
#endif

#ifndef RGB_MATRIX_DEFAULT_SPD
#    define RGB_MATRIX_DEFAULT_SPD UINT8_MAX / 2
#endif

#ifndef RGB_MATRIX_LED_FLUSH_LIMIT
#    define RGB_MATRIX_LED_FLUSH_LIMIT 16
#endif

M quantum/via.c => quantum/via.c +0 -10
@@ 634,11 634,6 @@ void via_qmk_rgblight_save(void) {

#if defined(RGB_MATRIX_ENABLE)

#    if !defined(RGB_MATRIX_MAXIMUM_BRIGHTNESS) || RGB_MATRIX_MAXIMUM_BRIGHTNESS > UINT8_MAX
#        undef RGB_MATRIX_MAXIMUM_BRIGHTNESS
#        define RGB_MATRIX_MAXIMUM_BRIGHTNESS UINT8_MAX
#    endif

void via_qmk_rgb_matrix_command(uint8_t *data, uint8_t length) {
    // data = [ command_id, channel_id, value_id, value_data ]
    uint8_t *command_id        = &(data[0]);


@@ 727,11 722,6 @@ void via_qmk_rgb_matrix_save(void) {

#if defined(LED_MATRIX_ENABLE)

#    if !defined(LED_MATRIX_MAXIMUM_BRIGHTNESS) || LED_MATRIX_MAXIMUM_BRIGHTNESS > UINT8_MAX
#        undef LED_MATRIX_MAXIMUM_BRIGHTNESS
#        define LED_MATRIX_MAXIMUM_BRIGHTNESS UINT8_MAX
#    endif

void via_qmk_led_matrix_command(uint8_t *data, uint8_t length) {
    // data = [ command_id, channel_id, value_id, value_data ]
    uint8_t *command_id        = &(data[0]);

Do not follow this link