diff options
Diffstat (limited to 'quantum/led_matrix')
-rw-r--r-- | quantum/led_matrix/led_matrix.c | 11 | ||||
-rw-r--r-- | quantum/led_matrix/led_matrix.h | 2 |
2 files changed, 12 insertions, 1 deletions
diff --git a/quantum/led_matrix/led_matrix.c b/quantum/led_matrix/led_matrix.c index a5f0296f8d..58263c62e3 100644 --- a/quantum/led_matrix/led_matrix.c +++ b/quantum/led_matrix/led_matrix.c @@ -139,11 +139,20 @@ void led_matrix_update_pwm_buffers(void) { led_matrix_driver.flush(); } +__attribute__((weak)) int led_matrix_led_index(int index) { +#if defined(LED_MATRIX_SPLIT) + if (!is_keyboard_left() && index >= k_led_matrix_split[0]) { + return index - k_led_matrix_split[0]; + } +#endif + return index; +} + void led_matrix_set_value(int index, uint8_t value) { #ifdef USE_CIE1931_CURVE value = pgm_read_byte(&CIE1931_CURVE[value]); #endif - led_matrix_driver.set_value(index, value); + led_matrix_driver.set_value(led_matrix_led_index(index), value); } void led_matrix_set_value_all(uint8_t value) { diff --git a/quantum/led_matrix/led_matrix.h b/quantum/led_matrix/led_matrix.h index 9a13c3e52b..a3468a2003 100644 --- a/quantum/led_matrix/led_matrix.h +++ b/quantum/led_matrix/led_matrix.h @@ -121,6 +121,8 @@ void eeconfig_debug_led_matrix(void); uint8_t led_matrix_map_row_column_to_led_kb(uint8_t row, uint8_t column, uint8_t *led_i); uint8_t led_matrix_map_row_column_to_led(uint8_t row, uint8_t column, uint8_t *led_i); +int led_matrix_led_index(int index); + void led_matrix_set_value(int index, uint8_t value); void led_matrix_set_value_all(uint8_t value); |