Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add support for ISSI drivers on both sides of a split keyboard #13842

Merged
merged 21 commits into from
Nov 1, 2021
Merged
Show file tree
Hide file tree
Changes from 18 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
6 changes: 4 additions & 2 deletions docs/feature_led_matrix.md
Original file line number Diff line number Diff line change
Expand Up @@ -49,6 +49,8 @@ Here is an example using 2 drivers.

!> Note the parentheses, this is so when `LED_DRIVER_LED_TOTAL` is used in code and expanded, the values are added together before any additional math is applied to them. As an example, `rand() % (LED_DRIVER_1_LED_TOTAL + LED_DRIVER_2_LED_TOTAL)` will give very different results than `rand() % LED_DRIVER_1_LED_TOTAL + LED_DRIVER_2_LED_TOTAL`.

For split keyboards using LED_MATRIX_SPLIT with an LED driver, you can either have the same driver address or different driver addresses. If using different addresses, use `DRIVER_ADDR_1` for one and `DRIVER_2_LED_TOTAL` for the other one. Then, in `g_is31_leds`, fill out the correct driver index (0 or 1). If using one address, use `DRIVER_ADDR_1` for both, and use index 0 for `g_is31_leds`.
vladkvit marked this conversation as resolved.
Show resolved Hide resolved

Define these arrays listing all the LEDs in your `<keyboard>.c`:

```c
Expand Down Expand Up @@ -219,7 +221,7 @@ static bool my_cool_effect(effect_params_t* params) {
for (uint8_t i = led_min; i < led_max; i++) {
led_matrix_set_value(i, 0xFF);
}
return led_max < DRIVER_LED_TOTAL;
return led_matrix_check_finished_leds(led_max);
}

// e.g: A more complex effect, relying on external methods and state, with
Expand All @@ -234,7 +236,7 @@ static bool my_cool_effect2_complex_run(effect_params_t* params) {
led_matrix_set_value(i, some_global_state++);
}

vladkvit marked this conversation as resolved.
Show resolved Hide resolved
return led_max < DRIVER_LED_TOTAL;
return led_matrix_check_finished_leds(led_max);
}
static bool my_cool_effect2(effect_params_t* params) {
if (params->init) my_cool_effect2_complex_init(params);
Expand Down
7 changes: 4 additions & 3 deletions docs/feature_rgb_matrix.md
Original file line number Diff line number Diff line change
Expand Up @@ -49,6 +49,8 @@ Here is an example using 2 drivers.

!> Note the parentheses, this is so when `DRIVER_LED_TOTAL` is used in code and expanded, the values are added together before any additional math is applied to them. As an example, `rand() % (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL)` will give very different results than `rand() % DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL`.

For split keyboards using RGB_MATRIX_SPLIT with an LED driver, you can either have the same driver address or different driver addresses. If using different addresses, use `DRIVER_ADDR_1` for one and `DRIVER_2_LED_TOTAL` for the other one. Then, in `g_is31_leds`, fill out the correct driver index (0 or 1). If using one address, use `DRIVER_ADDR_1` for both, and use index 0 for `g_is31_leds`.
vladkvit marked this conversation as resolved.
Show resolved Hide resolved

Define these arrays listing all the LEDs in your `<keyboard>.c`:

```c
Expand Down Expand Up @@ -537,7 +539,7 @@ static bool my_cool_effect(effect_params_t* params) {
for (uint8_t i = led_min; i < led_max; i++) {
rgb_matrix_set_color(i, 0xff, 0xff, 0x00);
}
return led_max < DRIVER_LED_TOTAL;
return rgb_matrix_check_finished_leds(led_max);
}

// e.g: A more complex effect, relying on external methods and state, with
Expand All @@ -551,8 +553,7 @@ static bool my_cool_effect2_complex_run(effect_params_t* params) {
for (uint8_t i = led_min; i < led_max; i++) {
rgb_matrix_set_color(i, 0xff, some_global_state++, 0xff);
}

return led_max < DRIVER_LED_TOTAL;
return rgb_matrix_check_finished_leds(led_max);
}
static bool my_cool_effect2(effect_params_t* params) {
if (params->init) my_cool_effect2_complex_init(params);
Expand Down
6 changes: 3 additions & 3 deletions keyboards/bandominedoni/rgb_matrix_user.inc
Original file line number Diff line number Diff line change
Expand Up @@ -9,8 +9,8 @@ bool my_party_rocks(effect_params_t* params) {
RGB rgb = rgb_matrix_hsv_to_rgb(hsv);
// rgb_matrix_set_color(i, rgb.r, rgb.g, rgb.b);
rgb_matrix_set_color_all(rgb.r, rgb.g, rgb.b);
return led_max < DRIVER_LED_TOTAL;
return rgb_matrix_check_finished_leds(led_max);
}

# endif // RGB_MATRIX_CUSTOM_EFFECT_IMPLS
#endif // RGB_MATRIX_KEYREACTIVE_ENABLED
# endif // RGB_MATRIX_CUSTOM_EFFECT_IMPLS
#endif // RGB_MATRIX_KEYREACTIVE_ENABLED
10 changes: 5 additions & 5 deletions keyboards/percent/canoe_gen2/rgb_matrix_kb.inc
Original file line number Diff line number Diff line change
Expand Up @@ -25,13 +25,13 @@ static bool indicator_static(effect_params_t* params) {
HSV hsv = rgb_matrix_config.hsv;
RGB rgb = hsv_to_rgb(hsv);
RGB_MATRIX_USE_LIMITS(led_min, led_max);
for (uint8_t i = led_min ; i < 74; i++) {
for (uint8_t i = led_min; i < 74; i++) {
rgb_matrix_set_color(i, 0x00, 0x00, 0x00);
}
for (uint8_t i = 74 ; i < led_max; i++) {
for (uint8_t i = 74; i < led_max; i++) {
rgb_matrix_set_color(i, rgb.r, rgb.g, rgb.b);
}
return led_max < DRIVER_LED_TOTAL;
return rgb_matrix_check_finished_leds(led_max);
}

bool effect_runner_indicator(effect_params_t* params, i_f effect_func) {
Expand All @@ -47,7 +47,7 @@ bool effect_runner_indicator(effect_params_t* params, i_f effect_func) {
rgb_matrix_set_color(i, rgb.r, rgb.g, rgb.b);
}
}
return led_max < DRIVER_LED_TOTAL;
return rgb_matrix_check_finished_leds(led_max);
}

static HSV indicator_gradient_math(HSV hsv, uint8_t i, uint8_t time) {
Expand All @@ -64,4 +64,4 @@ static HSV indicator_cycle_all_math(HSV hsv, uint8_t i, uint8_t time) {

bool indicator_cycle_all(effect_params_t* params) { return effect_runner_indicator(params, &indicator_cycle_all_math); }

#endif // RGB_MATRIX_CUSTOM_EFFECT_IMPLS
#endif // RGB_MATRIX_CUSTOM_EFFECT_IMPLS
2 changes: 1 addition & 1 deletion keyboards/yushakobo/quick17/rgb_matrix_kb.inc
Original file line number Diff line number Diff line change
Expand Up @@ -111,7 +111,7 @@ static bool quick17_rgbm_effect (effect_params_t* params) {
led_color_set(i, rgb_keymaps[_CONTROL][i]);
}
}
return led_max < DRIVER_LED_TOTAL;
return rgb_matrix_check_finished_leds(led_max);
}

#endif
2 changes: 1 addition & 1 deletion quantum/led_matrix/animations/alpha_mods_anim.h
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ bool ALPHAS_MODS(effect_params_t* params) {
led_matrix_set_value(i, val1);
}
}
return led_max < DRIVER_LED_TOTAL;
return led_matrix_check_finished_leds(led_max);
}

# endif // LED_MATRIX_CUSTOM_EFFECT_IMPLS
Expand Down
2 changes: 1 addition & 1 deletion quantum/led_matrix/animations/breathing_anim.h
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ bool BREATHING(effect_params_t* params) {
LED_MATRIX_TEST_LED_FLAGS();
led_matrix_set_value(i, val);
}
return led_max < DRIVER_LED_TOTAL;
return led_matrix_check_finished_leds(led_max);
}

# endif // LED_MATRIX_CUSTOM_EFFECT_IMPLS
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,5 +12,5 @@ bool effect_runner_dx_dy(effect_params_t* params, dx_dy_f effect_func) {
int16_t dy = g_led_config.point[i].y - k_led_matrix_center.y;
led_matrix_set_value(i, effect_func(led_matrix_eeconfig.val, dx, dy, time));
}
return led_max < DRIVER_LED_TOTAL;
return led_matrix_check_finished_leds(led_max);
}
Original file line number Diff line number Diff line change
Expand Up @@ -13,5 +13,5 @@ bool effect_runner_dx_dy_dist(effect_params_t* params, dx_dy_dist_f effect_func)
uint8_t dist = sqrt16(dx * dx + dy * dy);
led_matrix_set_value(i, effect_func(led_matrix_eeconfig.val, dx, dy, dist, time));
}
return led_max < DRIVER_LED_TOTAL;
return led_matrix_check_finished_leds(led_max);
}
2 changes: 1 addition & 1 deletion quantum/led_matrix/animations/runners/effect_runner_i.h
Original file line number Diff line number Diff line change
Expand Up @@ -10,5 +10,5 @@ bool effect_runner_i(effect_params_t* params, i_f effect_func) {
LED_MATRIX_TEST_LED_FLAGS();
led_matrix_set_value(i, effect_func(led_matrix_eeconfig.val, i, time));
}
return led_max < DRIVER_LED_TOTAL;
return led_matrix_check_finished_leds(led_max);
}
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ bool effect_runner_reactive(effect_params_t* params, reactive_f effect_func) {
uint16_t offset = scale16by8(tick, led_matrix_eeconfig.speed);
led_matrix_set_value(i, effect_func(led_matrix_eeconfig.val, offset));
}
return led_max < DRIVER_LED_TOTAL;
return led_matrix_check_finished_leds(led_max);
}

#endif // LED_MATRIX_KEYREACTIVE_ENABLED
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ bool effect_runner_reactive_splash(uint8_t start, effect_params_t* params, react
}
led_matrix_set_value(i, scale8(val, led_matrix_eeconfig.val));
}
return led_max < DRIVER_LED_TOTAL;
return led_matrix_check_finished_leds(led_max);
}

#endif // LED_MATRIX_KEYREACTIVE_ENABLED
Original file line number Diff line number Diff line change
Expand Up @@ -12,5 +12,5 @@ bool effect_runner_sin_cos_i(effect_params_t* params, sin_cos_i_f effect_func) {
LED_MATRIX_TEST_LED_FLAGS();
led_matrix_set_value(i, effect_func(led_matrix_eeconfig.val, cos_value, sin_value, i, time));
}
return led_max < DRIVER_LED_TOTAL;
return led_matrix_check_finished_leds(led_max);
}
2 changes: 1 addition & 1 deletion quantum/led_matrix/animations/solid_anim.h
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ bool SOLID(effect_params_t* params) {
LED_MATRIX_TEST_LED_FLAGS();
led_matrix_set_value(i, val);
}
return led_max < DRIVER_LED_TOTAL;
return led_matrix_check_finished_leds(led_max);
}

#endif // LED_MATRIX_CUSTOM_EFFECT_IMPLS
14 changes: 2 additions & 12 deletions quantum/led_matrix/led_matrix.c
Original file line number Diff line number Diff line change
Expand Up @@ -165,20 +165,10 @@ uint8_t led_matrix_map_row_column_to_led(uint8_t row, uint8_t column, uint8_t *l
void led_matrix_update_pwm_buffers(void) { led_matrix_driver.flush(); }

void led_matrix_set_value(int index, uint8_t value) {
#if defined(LED_MATRIX_ENABLE) && defined(LED_MATRIX_SPLIT)
if (!is_keyboard_left() && index >= k_led_matrix_split[0])
# ifdef USE_CIE1931_CURVE
led_matrix_driver.set_value(index - k_led_matrix_split[0], pgm_read_byte(&CIE1931_CURVE[value]));
# else
led_matrix_driver.set_value(index - k_led_matrix_split[0], value);
# endif
else if (is_keyboard_left() && index < k_led_matrix_split[0])
#endif
#ifdef USE_CIE1931_CURVE
led_matrix_driver.set_value(index, pgm_read_byte(&CIE1931_CURVE[value]));
#else
led_matrix_driver.set_value(index, value);
value = pgm_read_byte(&CIE1931_CURVE[value]);
#endif
led_matrix_driver.set_value(index, value);
}

void led_matrix_set_value_all(uint8_t value) {
Expand Down
45 changes: 38 additions & 7 deletions quantum/led_matrix/led_matrix.h
Original file line number Diff line number Diff line change
Expand Up @@ -38,14 +38,33 @@
#endif

#if defined(LED_MATRIX_LED_PROCESS_LIMIT) && LED_MATRIX_LED_PROCESS_LIMIT > 0 && LED_MATRIX_LED_PROCESS_LIMIT < DRIVER_LED_TOTAL
# define LED_MATRIX_USE_LIMITS(min, max) \
uint8_t min = LED_MATRIX_LED_PROCESS_LIMIT * params->iter; \
uint8_t max = min + LED_MATRIX_LED_PROCESS_LIMIT; \
if (max > DRIVER_LED_TOTAL) max = DRIVER_LED_TOTAL;
# if defined(LED_MATRIX_SPLIT)
# define LED_MATRIX_USE_LIMITS(min, max)
uint8_t min = LED_MATRIX_LED_PROCESS_LIMIT * params->iter;
uint8_t max = min + LED_MATRIX_LED_PROCESS_LIMIT;
if (max > DRIVER_LED_TOTAL) max = DRIVER_LED_TOTAL;
uint8_t k_led_matrix_split[2] = LED_MATRIX_SPLIT;
if (is_keyboard_left() && (max > k_led_matrix_split[0])) max = k_led_matrix_split[0];
if (!(is_keyboard_left()) && (min < k_led_matrix_split[0])) min = k_led_matrix_split[0];
# else
# define LED_MATRIX_USE_LIMITS(min, max) \
uint8_t min = LED_MATRIX_LED_PROCESS_LIMIT * params->iter; \
uint8_t max = min + LED_MATRIX_LED_PROCESS_LIMIT; \
if (max > DRIVER_LED_TOTAL) max = DRIVER_LED_TOTAL;
# endif
#else
# define LED_MATRIX_USE_LIMITS(min, max) \
uint8_t min = 0; \
uint8_t max = DRIVER_LED_TOTAL;
# if defined(LED_MATRIX_SPLIT)
# define LED_MATRIX_USE_LIMITS(min, max) \
uint8_t min = 0; \
uint8_t max = DRIVER_LED_TOTAL; \
const uint8_t k_led_matrix_split[2] = LED_MATRIX_SPLIT; \
if (is_keyboard_left() && (max > k_led_matrix_split[0])) max = k_led_matrix_split[0]; \
if (!(is_keyboard_left()) && (min < k_led_matrix_split[0])) min = k_led_matrix_split[0];
# else
# define LED_MATRIX_USE_LIMITS(min, max) \
uint8_t min = 0; \
uint8_t max = DRIVER_LED_TOTAL;
# endif
#endif

#define LED_MATRIX_TEST_LED_FLAGS() \
Expand Down Expand Up @@ -147,6 +166,18 @@ typedef struct {
void (*flush)(void);
} led_matrix_driver_t;

inline bool led_matrix_check_finished_leds(uint8_t led_idx) {
#if defined(LED_MATRIX_SPLIT)
if (is_keyboard_left()) {
uint8_t k_led_matrix_split[2] = LED_MATRIX_SPLIT;
return led_idx < k_led_matrix_split[0];
} else
return led_idx < DRIVER_LED_TOTAL;
#else
return led_idx < DRIVER_LED_TOTAL;
#endif
}

extern const led_matrix_driver_t led_matrix_driver;

extern led_eeconfig_t led_matrix_eeconfig;
Expand Down
2 changes: 1 addition & 1 deletion quantum/rgb_matrix/animations/alpha_mods_anim.h
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ bool ALPHAS_MODS(effect_params_t* params) {
rgb_matrix_set_color(i, rgb1.r, rgb1.g, rgb1.b);
}
}
return led_max < DRIVER_LED_TOTAL;
return rgb_matrix_check_finished_leds(led_max);
}

# endif // RGB_MATRIX_CUSTOM_EFFECT_IMPLS
Expand Down
2 changes: 1 addition & 1 deletion quantum/rgb_matrix/animations/breathing_anim.h
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ bool BREATHING(effect_params_t* params) {
RGB_MATRIX_TEST_LED_FLAGS();
rgb_matrix_set_color(i, rgb.r, rgb.g, rgb.b);
}
return led_max < DRIVER_LED_TOTAL;
return rgb_matrix_check_finished_leds(led_max);
}

# endif // RGB_MATRIX_CUSTOM_EFFECT_IMPLS
Expand Down
2 changes: 1 addition & 1 deletion quantum/rgb_matrix/animations/gradient_left_right_anim.h
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ bool GRADIENT_LEFT_RIGHT(effect_params_t* params) {
RGB rgb = rgb_matrix_hsv_to_rgb(hsv);
rgb_matrix_set_color(i, rgb.r, rgb.g, rgb.b);
}
return led_max < DRIVER_LED_TOTAL;
return rgb_matrix_check_finished_leds(led_max);
}

# endif // RGB_MATRIX_CUSTOM_EFFECT_IMPLS
Expand Down
2 changes: 1 addition & 1 deletion quantum/rgb_matrix/animations/gradient_up_down_anim.h
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ bool GRADIENT_UP_DOWN(effect_params_t* params) {
RGB rgb = rgb_matrix_hsv_to_rgb(hsv);
rgb_matrix_set_color(i, rgb.r, rgb.g, rgb.b);
}
return led_max < DRIVER_LED_TOTAL;
return rgb_matrix_check_finished_leds(led_max);
}

# endif // RGB_MATRIX_CUSTOM_EFFECT_IMPLS
Expand Down
2 changes: 1 addition & 1 deletion quantum/rgb_matrix/animations/hue_breathing_anim.h
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ bool HUE_BREATHING(effect_params_t* params) {
RGB_MATRIX_TEST_LED_FLAGS();
rgb_matrix_set_color(i, rgb.r, rgb.g, rgb.b);
}
return led_max < DRIVER_LED_TOTAL;
return rgb_matrix_check_finished_leds(led_max);
}

# endif // RGB_MATRIX_CUSTOM_EFFECT_IMPLS
Expand Down
2 changes: 1 addition & 1 deletion quantum/rgb_matrix/animations/jellybean_raindrops_anim.h
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ bool JELLYBEAN_RAINDROPS(effect_params_t* params) {
for (int i = led_min; i < led_max; i++) {
jellybean_raindrops_set_color(i, params);
}
return led_max < DRIVER_LED_TOTAL;
return rgb_matrix_check_finished_leds(led_max);
}

# endif // RGB_MATRIX_CUSTOM_EFFECT_IMPLS
Expand Down
2 changes: 1 addition & 1 deletion quantum/rgb_matrix/animations/raindrops_anim.h
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@ bool RAINDROPS(effect_params_t* params) {
for (int i = led_min; i < led_max; i++) {
raindrops_set_color(i, params);
}
return led_max < DRIVER_LED_TOTAL;
return rgb_matrix_check_finished_leds(led_max);
}

# endif // RGB_MATRIX_CUSTOM_EFFECT_IMPLS
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,5 +13,5 @@ bool effect_runner_dx_dy(effect_params_t* params, dx_dy_f effect_func) {
RGB rgb = rgb_matrix_hsv_to_rgb(effect_func(rgb_matrix_config.hsv, dx, dy, time));
rgb_matrix_set_color(i, rgb.r, rgb.g, rgb.b);
}
return led_max < DRIVER_LED_TOTAL;
return rgb_matrix_check_finished_leds(led_max);
}
Original file line number Diff line number Diff line change
Expand Up @@ -14,5 +14,5 @@ bool effect_runner_dx_dy_dist(effect_params_t* params, dx_dy_dist_f effect_func)
RGB rgb = rgb_matrix_hsv_to_rgb(effect_func(rgb_matrix_config.hsv, dx, dy, dist, time));
rgb_matrix_set_color(i, rgb.r, rgb.g, rgb.b);
}
return led_max < DRIVER_LED_TOTAL;
return rgb_matrix_check_finished_leds(led_max);
}
2 changes: 1 addition & 1 deletion quantum/rgb_matrix/animations/runners/effect_runner_i.h
Original file line number Diff line number Diff line change
Expand Up @@ -11,5 +11,5 @@ bool effect_runner_i(effect_params_t* params, i_f effect_func) {
RGB rgb = rgb_matrix_hsv_to_rgb(effect_func(rgb_matrix_config.hsv, i, time));
rgb_matrix_set_color(i, rgb.r, rgb.g, rgb.b);
}
return led_max < DRIVER_LED_TOTAL;
return rgb_matrix_check_finished_leds(led_max);
}
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ bool effect_runner_reactive(effect_params_t* params, reactive_f effect_func) {
RGB rgb = rgb_matrix_hsv_to_rgb(effect_func(rgb_matrix_config.hsv, offset));
rgb_matrix_set_color(i, rgb.r, rgb.g, rgb.b);
}
return led_max < DRIVER_LED_TOTAL;
return rgb_matrix_check_finished_leds(led_max);
}

#endif // RGB_MATRIX_KEYREACTIVE_ENABLED
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ bool effect_runner_reactive_splash(uint8_t start, effect_params_t* params, react
RGB rgb = rgb_matrix_hsv_to_rgb(hsv);
rgb_matrix_set_color(i, rgb.r, rgb.g, rgb.b);
}
return led_max < DRIVER_LED_TOTAL;
return rgb_matrix_check_finished_leds(led_max);
}

#endif // RGB_MATRIX_KEYREACTIVE_ENABLED
Original file line number Diff line number Diff line change
Expand Up @@ -13,5 +13,5 @@ bool effect_runner_sin_cos_i(effect_params_t* params, sin_cos_i_f effect_func) {
RGB rgb = rgb_matrix_hsv_to_rgb(effect_func(rgb_matrix_config.hsv, cos_value, sin_value, i, time));
rgb_matrix_set_color(i, rgb.r, rgb.g, rgb.b);
}
return led_max < DRIVER_LED_TOTAL;
return rgb_matrix_check_finished_leds(led_max);
}
2 changes: 1 addition & 1 deletion quantum/rgb_matrix/animations/solid_color_anim.h
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ bool SOLID_COLOR(effect_params_t* params) {
RGB_MATRIX_TEST_LED_FLAGS();
rgb_matrix_set_color(i, rgb.r, rgb.g, rgb.b);
}
return led_max < DRIVER_LED_TOTAL;
return rgb_matrix_check_finished_leds(led_max);
}

#endif // RGB_MATRIX_CUSTOM_EFFECT_IMPLS
9 changes: 1 addition & 8 deletions quantum/rgb_matrix/rgb_matrix.c
Original file line number Diff line number Diff line change
Expand Up @@ -187,14 +187,7 @@ uint8_t rgb_matrix_map_row_column_to_led(uint8_t row, uint8_t column, uint8_t *l

void rgb_matrix_update_pwm_buffers(void) { rgb_matrix_driver.flush(); }

void rgb_matrix_set_color(int index, uint8_t red, uint8_t green, uint8_t blue) {
#if defined(RGB_MATRIX_ENABLE) && defined(RGB_MATRIX_SPLIT)
if (!is_keyboard_left() && index >= k_rgb_matrix_split[0])
rgb_matrix_driver.set_color(index - k_rgb_matrix_split[0], red, green, blue);
else if (is_keyboard_left() && index < k_rgb_matrix_split[0])
#endif
rgb_matrix_driver.set_color(index, red, green, blue);
}
void rgb_matrix_set_color(int index, uint8_t red, uint8_t green, uint8_t blue) { rgb_matrix_driver.set_color(index, red, green, blue); }

void rgb_matrix_set_color_all(uint8_t red, uint8_t green, uint8_t blue) {
#if defined(RGB_MATRIX_ENABLE) && defined(RGB_MATRIX_SPLIT)
Expand Down