diff options
Diffstat (limited to 'quantum/led_matrix')
27 files changed, 145 insertions, 222 deletions
diff --git a/quantum/led_matrix/animations/alpha_mods_anim.h b/quantum/led_matrix/animations/alpha_mods_anim.h index 14038cd08..4d017894a 100644 --- a/quantum/led_matrix/animations/alpha_mods_anim.h +++ b/quantum/led_matrix/animations/alpha_mods_anim.h | |||
| @@ -17,8 +17,8 @@ bool ALPHAS_MODS(effect_params_t* params) { | |||
| 17 | led_matrix_set_value(i, val1); | 17 | led_matrix_set_value(i, val1); |
| 18 | } | 18 | } |
| 19 | } | 19 | } |
| 20 | return led_max < DRIVER_LED_TOTAL; | 20 | return led_matrix_check_finished_leds(led_max); |
| 21 | } | 21 | } |
| 22 | 22 | ||
| 23 | # endif // LED_MATRIX_CUSTOM_EFFECT_IMPLS | 23 | # endif // LED_MATRIX_CUSTOM_EFFECT_IMPLS |
| 24 | #endif // DISABLE_LED_MATRIX_ALPHAS_MODS | 24 | #endif // ENABLE_LED_MATRIX_ALPHAS_MODS |
diff --git a/quantum/led_matrix/animations/band_anim.h b/quantum/led_matrix/animations/band_anim.h index 5548787b8..293be4f67 100644 --- a/quantum/led_matrix/animations/band_anim.h +++ b/quantum/led_matrix/animations/band_anim.h | |||
| @@ -10,4 +10,4 @@ static uint8_t BAND_math(uint8_t val, uint8_t i, uint8_t time) { | |||
| 10 | bool BAND(effect_params_t* params) { return effect_runner_i(params, &BAND_math); } | 10 | bool BAND(effect_params_t* params) { return effect_runner_i(params, &BAND_math); } |
| 11 | 11 | ||
| 12 | # endif // LED_MATRIX_CUSTOM_EFFECT_IMPLS | 12 | # endif // LED_MATRIX_CUSTOM_EFFECT_IMPLS |
| 13 | #endif // DISABLE_LED_MATRIX_BAND | 13 | #endif // ENABLE_LED_MATRIX_BAND |
diff --git a/quantum/led_matrix/animations/band_pinwheel_anim.h b/quantum/led_matrix/animations/band_pinwheel_anim.h index 89651582d..f47a3869c 100644 --- a/quantum/led_matrix/animations/band_pinwheel_anim.h +++ b/quantum/led_matrix/animations/band_pinwheel_anim.h | |||
| @@ -7,4 +7,4 @@ static uint8_t BAND_PINWHEEL_math(uint8_t val, int16_t dx, int16_t dy, uint8_t t | |||
| 7 | bool BAND_PINWHEEL(effect_params_t* params) { return effect_runner_dx_dy(params, &BAND_PINWHEEL_math); } | 7 | bool BAND_PINWHEEL(effect_params_t* params) { return effect_runner_dx_dy(params, &BAND_PINWHEEL_math); } |
| 8 | 8 | ||
| 9 | # endif // LED_MATRIX_CUSTOM_EFFECT_IMPLS | 9 | # endif // LED_MATRIX_CUSTOM_EFFECT_IMPLS |
| 10 | #endif // DISABLE_LED_MATRIX_BAND_PINWHEEL | 10 | #endif // ENABLE_LED_MATRIX_BAND_PINWHEEL |
diff --git a/quantum/led_matrix/animations/band_spiral_anim.h b/quantum/led_matrix/animations/band_spiral_anim.h index 70b0ffaea..a4bd38218 100644 --- a/quantum/led_matrix/animations/band_spiral_anim.h +++ b/quantum/led_matrix/animations/band_spiral_anim.h | |||
| @@ -7,4 +7,4 @@ static uint8_t BAND_SPIRAL_math(uint8_t val, int16_t dx, int16_t dy, uint8_t dis | |||
| 7 | bool BAND_SPIRAL(effect_params_t* params) { return effect_runner_dx_dy_dist(params, &BAND_SPIRAL_math); } | 7 | bool BAND_SPIRAL(effect_params_t* params) { return effect_runner_dx_dy_dist(params, &BAND_SPIRAL_math); } |
| 8 | 8 | ||
| 9 | # endif // LED_MATRIX_CUSTOM_EFFECT_IMPLS | 9 | # endif // LED_MATRIX_CUSTOM_EFFECT_IMPLS |
| 10 | #endif // DISABLE_LED_MATRIX_BAND_SPIRAL | 10 | #endif // ENABLE_LED_MATRIX_BAND_SPIRAL |
diff --git a/quantum/led_matrix/animations/breathing_anim.h b/quantum/led_matrix/animations/breathing_anim.h index e3f600c45..899925f51 100644 --- a/quantum/led_matrix/animations/breathing_anim.h +++ b/quantum/led_matrix/animations/breathing_anim.h | |||
| @@ -12,8 +12,8 @@ bool BREATHING(effect_params_t* params) { | |||
| 12 | LED_MATRIX_TEST_LED_FLAGS(); | 12 | LED_MATRIX_TEST_LED_FLAGS(); |
| 13 | led_matrix_set_value(i, val); | 13 | led_matrix_set_value(i, val); |
| 14 | } | 14 | } |
| 15 | return led_max < DRIVER_LED_TOTAL; | 15 | return led_matrix_check_finished_leds(led_max); |
| 16 | } | 16 | } |
| 17 | 17 | ||
| 18 | # endif // LED_MATRIX_CUSTOM_EFFECT_IMPLS | 18 | # endif // LED_MATRIX_CUSTOM_EFFECT_IMPLS |
| 19 | #endif // DISABLE_LED_MATRIX_BREATHING | 19 | #endif // ENABLE_LED_MATRIX_BREATHING |
diff --git a/quantum/led_matrix/animations/cycle_left_right_anim.h b/quantum/led_matrix/animations/cycle_left_right_anim.h index 769e6d794..1a8999b83 100644 --- a/quantum/led_matrix/animations/cycle_left_right_anim.h +++ b/quantum/led_matrix/animations/cycle_left_right_anim.h | |||
| @@ -7,4 +7,4 @@ static uint8_t CYCLE_LEFT_RIGHT_math(uint8_t val, uint8_t i, uint8_t time) { ret | |||
| 7 | bool CYCLE_LEFT_RIGHT(effect_params_t* params) { return effect_runner_i(params, &CYCLE_LEFT_RIGHT_math); } | 7 | bool CYCLE_LEFT_RIGHT(effect_params_t* params) { return effect_runner_i(params, &CYCLE_LEFT_RIGHT_math); } |
| 8 | 8 | ||
| 9 | # endif // LED_MATRIX_CUSTOM_EFFECT_IMPLS | 9 | # endif // LED_MATRIX_CUSTOM_EFFECT_IMPLS |
| 10 | #endif // DISABLE_LED_MATRIX_CYCLE_LEFT_RIGHT | 10 | #endif // ENABLE_LED_MATRIX_CYCLE_LEFT_RIGHT |
diff --git a/quantum/led_matrix/animations/cycle_out_in_anim.h b/quantum/led_matrix/animations/cycle_out_in_anim.h index 6adf9c25f..77d3a14b6 100644 --- a/quantum/led_matrix/animations/cycle_out_in_anim.h +++ b/quantum/led_matrix/animations/cycle_out_in_anim.h | |||
| @@ -7,4 +7,4 @@ static uint8_t CYCLE_OUT_IN_math(uint8_t val, int16_t dx, int16_t dy, uint8_t di | |||
| 7 | bool CYCLE_OUT_IN(effect_params_t* params) { return effect_runner_dx_dy_dist(params, &CYCLE_OUT_IN_math); } | 7 | bool CYCLE_OUT_IN(effect_params_t* params) { return effect_runner_dx_dy_dist(params, &CYCLE_OUT_IN_math); } |
| 8 | 8 | ||
| 9 | # endif // LED_MATRIX_CUSTOM_EFFECT_IMPLS | 9 | # endif // LED_MATRIX_CUSTOM_EFFECT_IMPLS |
| 10 | #endif // DISABLE_LED_MATRIX_CYCLE_OUT_IN | 10 | #endif // ENABLE_LED_MATRIX_CYCLE_OUT_IN |
diff --git a/quantum/led_matrix/animations/cycle_up_down_anim.h b/quantum/led_matrix/animations/cycle_up_down_anim.h index 7a5868ac2..b25947199 100644 --- a/quantum/led_matrix/animations/cycle_up_down_anim.h +++ b/quantum/led_matrix/animations/cycle_up_down_anim.h | |||
| @@ -7,4 +7,4 @@ static uint8_t CYCLE_UP_DOWN_math(uint8_t val, uint8_t i, uint8_t time) { return | |||
| 7 | bool CYCLE_UP_DOWN(effect_params_t* params) { return effect_runner_i(params, &CYCLE_UP_DOWN_math); } | 7 | bool CYCLE_UP_DOWN(effect_params_t* params) { return effect_runner_i(params, &CYCLE_UP_DOWN_math); } |
| 8 | 8 | ||
| 9 | # endif // LED_MATRIX_CUSTOM_EFFECT_IMPLS | 9 | # endif // LED_MATRIX_CUSTOM_EFFECT_IMPLS |
| 10 | #endif // DISABLE_LED_MATRIX_CYCLE_UP_DOWN | 10 | #endif // ENABLE_LED_MATRIX_CYCLE_UP_DOWN |
diff --git a/quantum/led_matrix/animations/dual_beacon_anim.h b/quantum/led_matrix/animations/dual_beacon_anim.h index 3552c9fc3..81735e323 100644 --- a/quantum/led_matrix/animations/dual_beacon_anim.h +++ b/quantum/led_matrix/animations/dual_beacon_anim.h | |||
| @@ -7,4 +7,4 @@ static uint8_t DUAL_BEACON_math(uint8_t val, int8_t sin, int8_t cos, uint8_t i, | |||
| 7 | bool DUAL_BEACON(effect_params_t* params) { return effect_runner_sin_cos_i(params, &DUAL_BEACON_math); } | 7 | bool DUAL_BEACON(effect_params_t* params) { return effect_runner_sin_cos_i(params, &DUAL_BEACON_math); } |
| 8 | 8 | ||
| 9 | # endif // LED_MATRIX_CUSTOM_EFFECT_IMPLS | 9 | # endif // LED_MATRIX_CUSTOM_EFFECT_IMPLS |
| 10 | #endif // DISABLE_LED_MATRIX_DUAL_BEACON | 10 | #endif // ENABLE_LED_MATRIX_DUAL_BEACON |
diff --git a/quantum/led_matrix/animations/runners/effect_runner_dx_dy.h b/quantum/led_matrix/animations/runners/effect_runner_dx_dy.h index ef97631b9..fa9b7dbbf 100644 --- a/quantum/led_matrix/animations/runners/effect_runner_dx_dy.h +++ b/quantum/led_matrix/animations/runners/effect_runner_dx_dy.h | |||
| @@ -12,5 +12,5 @@ bool effect_runner_dx_dy(effect_params_t* params, dx_dy_f effect_func) { | |||
| 12 | int16_t dy = g_led_config.point[i].y - k_led_matrix_center.y; | 12 | int16_t dy = g_led_config.point[i].y - k_led_matrix_center.y; |
| 13 | led_matrix_set_value(i, effect_func(led_matrix_eeconfig.val, dx, dy, time)); | 13 | led_matrix_set_value(i, effect_func(led_matrix_eeconfig.val, dx, dy, time)); |
| 14 | } | 14 | } |
| 15 | return led_max < DRIVER_LED_TOTAL; | 15 | return led_matrix_check_finished_leds(led_max); |
| 16 | } | 16 | } |
diff --git a/quantum/led_matrix/animations/runners/effect_runner_dx_dy_dist.h b/quantum/led_matrix/animations/runners/effect_runner_dx_dy_dist.h index 5ef5938be..061a5f07f 100644 --- a/quantum/led_matrix/animations/runners/effect_runner_dx_dy_dist.h +++ b/quantum/led_matrix/animations/runners/effect_runner_dx_dy_dist.h | |||
| @@ -13,5 +13,5 @@ bool effect_runner_dx_dy_dist(effect_params_t* params, dx_dy_dist_f effect_func) | |||
| 13 | uint8_t dist = sqrt16(dx * dx + dy * dy); | 13 | uint8_t dist = sqrt16(dx * dx + dy * dy); |
| 14 | led_matrix_set_value(i, effect_func(led_matrix_eeconfig.val, dx, dy, dist, time)); | 14 | led_matrix_set_value(i, effect_func(led_matrix_eeconfig.val, dx, dy, dist, time)); |
| 15 | } | 15 | } |
| 16 | return led_max < DRIVER_LED_TOTAL; | 16 | return led_matrix_check_finished_leds(led_max); |
| 17 | } | 17 | } |
diff --git a/quantum/led_matrix/animations/runners/effect_runner_i.h b/quantum/led_matrix/animations/runners/effect_runner_i.h index b3015759b..f6f8c0dee 100644 --- a/quantum/led_matrix/animations/runners/effect_runner_i.h +++ b/quantum/led_matrix/animations/runners/effect_runner_i.h | |||
| @@ -10,5 +10,5 @@ bool effect_runner_i(effect_params_t* params, i_f effect_func) { | |||
| 10 | LED_MATRIX_TEST_LED_FLAGS(); | 10 | LED_MATRIX_TEST_LED_FLAGS(); |
| 11 | led_matrix_set_value(i, effect_func(led_matrix_eeconfig.val, i, time)); | 11 | led_matrix_set_value(i, effect_func(led_matrix_eeconfig.val, i, time)); |
| 12 | } | 12 | } |
| 13 | return led_max < DRIVER_LED_TOTAL; | 13 | return led_matrix_check_finished_leds(led_max); |
| 14 | } | 14 | } |
diff --git a/quantum/led_matrix/animations/runners/effect_runner_reactive.h b/quantum/led_matrix/animations/runners/effect_runner_reactive.h index 4369ea8c4..be3090aa5 100644 --- a/quantum/led_matrix/animations/runners/effect_runner_reactive.h +++ b/quantum/led_matrix/animations/runners/effect_runner_reactive.h | |||
| @@ -22,7 +22,7 @@ bool effect_runner_reactive(effect_params_t* params, reactive_f effect_func) { | |||
| 22 | uint16_t offset = scale16by8(tick, led_matrix_eeconfig.speed); | 22 | uint16_t offset = scale16by8(tick, led_matrix_eeconfig.speed); |
| 23 | led_matrix_set_value(i, effect_func(led_matrix_eeconfig.val, offset)); | 23 | led_matrix_set_value(i, effect_func(led_matrix_eeconfig.val, offset)); |
| 24 | } | 24 | } |
| 25 | return led_max < DRIVER_LED_TOTAL; | 25 | return led_matrix_check_finished_leds(led_max); |
| 26 | } | 26 | } |
| 27 | 27 | ||
| 28 | #endif // LED_MATRIX_KEYREACTIVE_ENABLED | 28 | #endif // LED_MATRIX_KEYREACTIVE_ENABLED |
diff --git a/quantum/led_matrix/animations/runners/effect_runner_reactive_splash.h b/quantum/led_matrix/animations/runners/effect_runner_reactive_splash.h index d6eb9731e..f6ffc825a 100644 --- a/quantum/led_matrix/animations/runners/effect_runner_reactive_splash.h +++ b/quantum/led_matrix/animations/runners/effect_runner_reactive_splash.h | |||
| @@ -20,7 +20,7 @@ bool effect_runner_reactive_splash(uint8_t start, effect_params_t* params, react | |||
| 20 | } | 20 | } |
| 21 | led_matrix_set_value(i, scale8(val, led_matrix_eeconfig.val)); | 21 | led_matrix_set_value(i, scale8(val, led_matrix_eeconfig.val)); |
| 22 | } | 22 | } |
| 23 | return led_max < DRIVER_LED_TOTAL; | 23 | return led_matrix_check_finished_leds(led_max); |
| 24 | } | 24 | } |
| 25 | 25 | ||
| 26 | #endif // LED_MATRIX_KEYREACTIVE_ENABLED | 26 | #endif // LED_MATRIX_KEYREACTIVE_ENABLED |
diff --git a/quantum/led_matrix/animations/runners/effect_runner_sin_cos_i.h b/quantum/led_matrix/animations/runners/effect_runner_sin_cos_i.h index 4a5219abd..3145e2713 100644 --- a/quantum/led_matrix/animations/runners/effect_runner_sin_cos_i.h +++ b/quantum/led_matrix/animations/runners/effect_runner_sin_cos_i.h | |||
| @@ -12,5 +12,5 @@ bool effect_runner_sin_cos_i(effect_params_t* params, sin_cos_i_f effect_func) { | |||
| 12 | LED_MATRIX_TEST_LED_FLAGS(); | 12 | LED_MATRIX_TEST_LED_FLAGS(); |
| 13 | led_matrix_set_value(i, effect_func(led_matrix_eeconfig.val, cos_value, sin_value, i, time)); | 13 | led_matrix_set_value(i, effect_func(led_matrix_eeconfig.val, cos_value, sin_value, i, time)); |
| 14 | } | 14 | } |
| 15 | return led_max < DRIVER_LED_TOTAL; | 15 | return led_matrix_check_finished_leds(led_max); |
| 16 | } | 16 | } |
diff --git a/quantum/led_matrix/animations/solid_anim.h b/quantum/led_matrix/animations/solid_anim.h index 4c9e43c58..c728dbcc9 100644 --- a/quantum/led_matrix/animations/solid_anim.h +++ b/quantum/led_matrix/animations/solid_anim.h | |||
| @@ -9,7 +9,7 @@ bool SOLID(effect_params_t* params) { | |||
| 9 | LED_MATRIX_TEST_LED_FLAGS(); | 9 | LED_MATRIX_TEST_LED_FLAGS(); |
| 10 | led_matrix_set_value(i, val); | 10 | led_matrix_set_value(i, val); |
| 11 | } | 11 | } |
| 12 | return led_max < DRIVER_LED_TOTAL; | 12 | return led_matrix_check_finished_leds(led_max); |
| 13 | } | 13 | } |
| 14 | 14 | ||
| 15 | #endif // LED_MATRIX_CUSTOM_EFFECT_IMPLS | 15 | #endif // LED_MATRIX_CUSTOM_EFFECT_IMPLS |
diff --git a/quantum/led_matrix/animations/solid_reactive_cross.h b/quantum/led_matrix/animations/solid_reactive_cross.h index 3a3c46be1..a149e9a92 100644 --- a/quantum/led_matrix/animations/solid_reactive_cross.h +++ b/quantum/led_matrix/animations/solid_reactive_cross.h | |||
| @@ -1,5 +1,5 @@ | |||
| 1 | #ifdef LED_MATRIX_KEYREACTIVE_ENABLED | 1 | #ifdef LED_MATRIX_KEYREACTIVE_ENABLED |
| 2 | # if !defined(DISABLE_LED_MATRIX_SOLID_REACTIVE_CROSS) || !defined(DISABLE_LED_MATRIX_SOLID_REACTIVE_MULTICROSS) | 2 | # if defined(ENABLE_LED_MATRIX_SOLID_REACTIVE_CROSS) || defined(ENABLE_LED_MATRIX_SOLID_REACTIVE_MULTICROSS) |
| 3 | 3 | ||
| 4 | # ifdef ENABLE_LED_MATRIX_SOLID_REACTIVE_CROSS | 4 | # ifdef ENABLE_LED_MATRIX_SOLID_REACTIVE_CROSS |
| 5 | LED_MATRIX_EFFECT(SOLID_REACTIVE_CROSS) | 5 | LED_MATRIX_EFFECT(SOLID_REACTIVE_CROSS) |
| @@ -31,5 +31,5 @@ bool SOLID_REACTIVE_MULTICROSS(effect_params_t* params) { return effect_runner_r | |||
| 31 | # endif | 31 | # endif |
| 32 | 32 | ||
| 33 | # endif // LED_MATRIX_CUSTOM_EFFECT_IMPLS | 33 | # endif // LED_MATRIX_CUSTOM_EFFECT_IMPLS |
| 34 | # endif // !defined(DISABLE_LED_MATRIX_SOLID_REACTIVE_CROSS) || !defined(DISABLE_LED_MATRIX_SOLID_REACTIVE_MULTICROSS) | 34 | # endif // defined(ENABLE_LED_MATRIX_SOLID_REACTIVE_CROSS) || defined(ENABLE_LED_MATRIX_SOLID_REACTIVE_MULTICROSS) |
| 35 | #endif // LED_MATRIX_KEYREACTIVE_ENABLED | 35 | #endif // LED_MATRIX_KEYREACTIVE_ENABLED |
diff --git a/quantum/led_matrix/animations/solid_reactive_nexus.h b/quantum/led_matrix/animations/solid_reactive_nexus.h index 2520b8e1d..5a86e48c6 100644 --- a/quantum/led_matrix/animations/solid_reactive_nexus.h +++ b/quantum/led_matrix/animations/solid_reactive_nexus.h | |||
| @@ -28,5 +28,5 @@ bool SOLID_REACTIVE_MULTINEXUS(effect_params_t* params) { return effect_runner_r | |||
| 28 | # endif | 28 | # endif |
| 29 | 29 | ||
| 30 | # endif // LED_MATRIX_CUSTOM_EFFECT_IMPLS | 30 | # endif // LED_MATRIX_CUSTOM_EFFECT_IMPLS |
| 31 | # endif // !defined(DISABLE_LED_MATRIX_SOLID_REACTIVE_NEXUS) || !defined(DISABLE_LED_MATRIX_SOLID_REACTIVE_MULTINEXUS) | 31 | # endif // defined(ENABLE_LED_MATRIX_SOLID_REACTIVE_NEXUS) || defined(ENABLE_LED_MATRIX_SOLID_REACTIVE_MULTINEXUS) |
| 32 | #endif // LED_MATRIX_KEYREACTIVE_ENABLED | 32 | #endif // LED_MATRIX_KEYREACTIVE_ENABLED |
diff --git a/quantum/led_matrix/animations/solid_reactive_simple_anim.h b/quantum/led_matrix/animations/solid_reactive_simple_anim.h index 43f6ad9ab..14f5e9073 100644 --- a/quantum/led_matrix/animations/solid_reactive_simple_anim.h +++ b/quantum/led_matrix/animations/solid_reactive_simple_anim.h | |||
| @@ -8,5 +8,5 @@ static uint8_t SOLID_REACTIVE_SIMPLE_math(uint8_t val, uint16_t offset) { return | |||
| 8 | bool SOLID_REACTIVE_SIMPLE(effect_params_t* params) { return effect_runner_reactive(params, &SOLID_REACTIVE_SIMPLE_math); } | 8 | bool SOLID_REACTIVE_SIMPLE(effect_params_t* params) { return effect_runner_reactive(params, &SOLID_REACTIVE_SIMPLE_math); } |
| 9 | 9 | ||
| 10 | # endif // LED_MATRIX_CUSTOM_EFFECT_IMPLS | 10 | # endif // LED_MATRIX_CUSTOM_EFFECT_IMPLS |
| 11 | # endif // DISABLE_LED_MATRIX_SOLID_REACTIVE_SIMPLE | 11 | # endif // ENABLE_LED_MATRIX_SOLID_REACTIVE_SIMPLE |
| 12 | #endif // LED_MATRIX_KEYREACTIVE_ENABLED | 12 | #endif // LED_MATRIX_KEYREACTIVE_ENABLED |
diff --git a/quantum/led_matrix/animations/solid_reactive_wide.h b/quantum/led_matrix/animations/solid_reactive_wide.h index d683b0251..3aa88063a 100644 --- a/quantum/led_matrix/animations/solid_reactive_wide.h +++ b/quantum/led_matrix/animations/solid_reactive_wide.h | |||
| @@ -1,5 +1,5 @@ | |||
| 1 | #ifdef LED_MATRIX_KEYREACTIVE_ENABLED | 1 | #ifdef LED_MATRIX_KEYREACTIVE_ENABLED |
| 2 | # if !defined(DISABLE_LED_MATRIX_SOLID_REACTIVE_WIDE) || !defined(DISABLE_LED_MATRIX_SOLID_REACTIVE_MULTIWIDE) | 2 | # if !defined(ENABLE_LED_MATRIX_SOLID_REACTIVE_WIDE) || defined(ENABLE_LED_MATRIX_SOLID_REACTIVE_MULTIWIDE) |
| 3 | 3 | ||
| 4 | # ifdef ENABLE_LED_MATRIX_SOLID_REACTIVE_WIDE | 4 | # ifdef ENABLE_LED_MATRIX_SOLID_REACTIVE_WIDE |
| 5 | LED_MATRIX_EFFECT(SOLID_REACTIVE_WIDE) | 5 | LED_MATRIX_EFFECT(SOLID_REACTIVE_WIDE) |
| @@ -26,5 +26,5 @@ bool SOLID_REACTIVE_MULTIWIDE(effect_params_t* params) { return effect_runner_re | |||
| 26 | # endif | 26 | # endif |
| 27 | 27 | ||
| 28 | # endif // LED_MATRIX_CUSTOM_EFFECT_IMPLS | 28 | # endif // LED_MATRIX_CUSTOM_EFFECT_IMPLS |
| 29 | # endif // !defined(DISABLE_LED_MATRIX_SOLID_REACTIVE_WIDE) || !defined(DISABLE_LED_MATRIX_SOLID_REACTIVE_MULTIWIDE) | 29 | # endif // !defined(ENABLE_LED_MATRIX_SOLID_REACTIVE_WIDE) || !defined(ENABLE_LED_MATRIX_SOLID_REACTIVE_MULTIWIDE) |
| 30 | #endif // LED_MATRIX_KEYREACTIVE_ENABLED | 30 | #endif // LED_MATRIX_KEYREACTIVE_ENABLED |
diff --git a/quantum/led_matrix/animations/solid_splash_anim.h b/quantum/led_matrix/animations/solid_splash_anim.h index cf599c8fe..17b692a09 100644 --- a/quantum/led_matrix/animations/solid_splash_anim.h +++ b/quantum/led_matrix/animations/solid_splash_anim.h | |||
| @@ -1,5 +1,5 @@ | |||
| 1 | #ifdef LED_MATRIX_KEYREACTIVE_ENABLED | 1 | #ifdef LED_MATRIX_KEYREACTIVE_ENABLED |
| 2 | # if !defined(DISABLE_LED_MATRIX_SOLID_SPLASH) || !defined(DISABLE_LED_MATRIX_SOLID_MULTISPLASH) | 2 | # if defined(ENABLE_LED_MATRIX_SOLID_SPLASH) || defined(ENABLE_LED_MATRIX_SOLID_MULTISPLASH) |
| 3 | 3 | ||
| 4 | # ifdef ENABLE_LED_MATRIX_SOLID_SPLASH | 4 | # ifdef ENABLE_LED_MATRIX_SOLID_SPLASH |
| 5 | LED_MATRIX_EFFECT(SOLID_SPLASH) | 5 | LED_MATRIX_EFFECT(SOLID_SPLASH) |
| @@ -26,5 +26,5 @@ bool SOLID_MULTISPLASH(effect_params_t* params) { return effect_runner_reactive_ | |||
| 26 | # endif | 26 | # endif |
| 27 | 27 | ||
| 28 | # endif // LED_MATRIX_CUSTOM_EFFECT_IMPLS | 28 | # endif // LED_MATRIX_CUSTOM_EFFECT_IMPLS |
| 29 | # endif // !defined(DISABLE_LED_MATRIX_SPLASH) && !defined(DISABLE_LED_MATRIX_MULTISPLASH) | 29 | # endif // defined(ENABLE_LED_MATRIX_SPLASH) || defined(ENABLE_LED_MATRIX_MULTISPLASH) |
| 30 | #endif // LED_MATRIX_KEYREACTIVE_ENABLED | 30 | #endif // LED_MATRIX_KEYREACTIVE_ENABLED |
diff --git a/quantum/led_matrix/animations/wave_left_right_anim.h b/quantum/led_matrix/animations/wave_left_right_anim.h index c062cf968..76487f851 100644 --- a/quantum/led_matrix/animations/wave_left_right_anim.h +++ b/quantum/led_matrix/animations/wave_left_right_anim.h | |||
| @@ -7,4 +7,4 @@ static uint8_t WAVE_LEFT_RIGHT_math(uint8_t val, uint8_t i, uint8_t time) { retu | |||
| 7 | bool WAVE_LEFT_RIGHT(effect_params_t* params) { return effect_runner_i(params, &WAVE_LEFT_RIGHT_math); } | 7 | bool WAVE_LEFT_RIGHT(effect_params_t* params) { return effect_runner_i(params, &WAVE_LEFT_RIGHT_math); } |
| 8 | 8 | ||
| 9 | # endif // LED_MATRIX_CUSTOM_EFFECT_IMPLS | 9 | # endif // LED_MATRIX_CUSTOM_EFFECT_IMPLS |
| 10 | #endif // DISABLE_LED_MATRIX_WAVE_LEFT_RIGHT | 10 | #endif // ENABLE_LED_MATRIX_WAVE_LEFT_RIGHT |
diff --git a/quantum/led_matrix/animations/wave_up_down_anim.h b/quantum/led_matrix/animations/wave_up_down_anim.h index 5e612f6b6..94710f5c6 100644 --- a/quantum/led_matrix/animations/wave_up_down_anim.h +++ b/quantum/led_matrix/animations/wave_up_down_anim.h | |||
| @@ -7,4 +7,4 @@ static uint8_t WAVE_UP_DOWN_math(uint8_t val, uint8_t i, uint8_t time) { return | |||
| 7 | bool WAVE_UP_DOWN(effect_params_t* params) { return effect_runner_i(params, &WAVE_UP_DOWN_math); } | 7 | bool WAVE_UP_DOWN(effect_params_t* params) { return effect_runner_i(params, &WAVE_UP_DOWN_math); } |
| 8 | 8 | ||
| 9 | # endif // LED_MATRIX_CUSTOM_EFFECT_IMPLS | 9 | # endif // LED_MATRIX_CUSTOM_EFFECT_IMPLS |
| 10 | #endif // DISABLE_LED_MATRIX_WAVE_UP_DOWN | 10 | #endif // ENABLE_LED_MATRIX_WAVE_UP_DOWN |
diff --git a/quantum/led_matrix/led_matrix.c b/quantum/led_matrix/led_matrix.c index 50510e49a..be1494e88 100644 --- a/quantum/led_matrix/led_matrix.c +++ b/quantum/led_matrix/led_matrix.c | |||
| @@ -33,14 +33,6 @@ const led_point_t k_led_matrix_center = {112, 32}; | |||
| 33 | const led_point_t k_led_matrix_center = LED_MATRIX_CENTER; | 33 | const led_point_t k_led_matrix_center = LED_MATRIX_CENTER; |
| 34 | #endif | 34 | #endif |
| 35 | 35 | ||
| 36 | // clang-format off | ||
| 37 | #ifndef LED_MATRIX_IMMEDIATE_EEPROM | ||
| 38 | # define led_eeconfig_update(v) led_update_eeprom |= v | ||
| 39 | #else | ||
| 40 | # define led_eeconfig_update(v) if (v) eeconfig_update_led_matrix() | ||
| 41 | #endif | ||
| 42 | // clang-format on | ||
| 43 | |||
| 44 | // Generic effect runners | 36 | // Generic effect runners |
| 45 | #include "led_matrix_runners.inc" | 37 | #include "led_matrix_runners.inc" |
| 46 | 38 | ||
| @@ -107,7 +99,6 @@ last_hit_t g_last_hit_tracker; | |||
| 107 | 99 | ||
| 108 | // internals | 100 | // internals |
| 109 | static bool suspend_state = false; | 101 | static bool suspend_state = false; |
| 110 | static bool led_update_eeprom = false; | ||
| 111 | static uint8_t led_last_enable = UINT8_MAX; | 102 | static uint8_t led_last_enable = UINT8_MAX; |
| 112 | static uint8_t led_last_effect = UINT8_MAX; | 103 | static uint8_t led_last_effect = UINT8_MAX; |
| 113 | static effect_params_t led_effect_params = {0, LED_FLAG_ALL, false}; | 104 | static effect_params_t led_effect_params = {0, LED_FLAG_ALL, false}; |
| @@ -127,9 +118,9 @@ static last_hit_t last_hit_buffer; | |||
| 127 | const uint8_t k_led_matrix_split[2] = LED_MATRIX_SPLIT; | 118 | const uint8_t k_led_matrix_split[2] = LED_MATRIX_SPLIT; |
| 128 | #endif | 119 | #endif |
| 129 | 120 | ||
| 130 | void eeconfig_read_led_matrix(void) { eeprom_read_block(&led_matrix_eeconfig, EECONFIG_LED_MATRIX, sizeof(led_matrix_eeconfig)); } | 121 | EECONFIG_DEBOUNCE_HELPER(led_matrix, EECONFIG_LED_MATRIX, led_matrix_eeconfig); |
| 131 | 122 | ||
| 132 | void eeconfig_update_led_matrix(void) { eeprom_update_block(&led_matrix_eeconfig, EECONFIG_LED_MATRIX, sizeof(led_matrix_eeconfig)); } | 123 | void eeconfig_update_led_matrix(void) { eeconfig_flush_led_matrix(true); } |
| 133 | 124 | ||
| 134 | void eeconfig_update_led_matrix_default(void) { | 125 | void eeconfig_update_led_matrix_default(void) { |
| 135 | dprintf("eeconfig_update_led_matrix_default\n"); | 126 | dprintf("eeconfig_update_led_matrix_default\n"); |
| @@ -138,7 +129,7 @@ void eeconfig_update_led_matrix_default(void) { | |||
| 138 | led_matrix_eeconfig.val = LED_MATRIX_STARTUP_VAL; | 129 | led_matrix_eeconfig.val = LED_MATRIX_STARTUP_VAL; |
| 139 | led_matrix_eeconfig.speed = LED_MATRIX_STARTUP_SPD; | 130 | led_matrix_eeconfig.speed = LED_MATRIX_STARTUP_SPD; |
| 140 | led_matrix_eeconfig.flags = LED_FLAG_ALL; | 131 | led_matrix_eeconfig.flags = LED_FLAG_ALL; |
| 141 | eeconfig_update_led_matrix(); | 132 | eeconfig_flush_led_matrix(true); |
| 142 | } | 133 | } |
| 143 | 134 | ||
| 144 | void eeconfig_debug_led_matrix(void) { | 135 | void eeconfig_debug_led_matrix(void) { |
| @@ -165,20 +156,10 @@ uint8_t led_matrix_map_row_column_to_led(uint8_t row, uint8_t column, uint8_t *l | |||
| 165 | void led_matrix_update_pwm_buffers(void) { led_matrix_driver.flush(); } | 156 | void led_matrix_update_pwm_buffers(void) { led_matrix_driver.flush(); } |
| 166 | 157 | ||
| 167 | void led_matrix_set_value(int index, uint8_t value) { | 158 | void led_matrix_set_value(int index, uint8_t value) { |
| 168 | #if defined(LED_MATRIX_ENABLE) && defined(LED_MATRIX_SPLIT) | ||
| 169 | if (!is_keyboard_left() && index >= k_led_matrix_split[0]) | ||
| 170 | # ifdef USE_CIE1931_CURVE | ||
| 171 | led_matrix_driver.set_value(index - k_led_matrix_split[0], pgm_read_byte(&CIE1931_CURVE[value])); | ||
| 172 | # else | ||
| 173 | led_matrix_driver.set_value(index - k_led_matrix_split[0], value); | ||
| 174 | # endif | ||
| 175 | else if (is_keyboard_left() && index < k_led_matrix_split[0]) | ||
| 176 | #endif | ||
| 177 | #ifdef USE_CIE1931_CURVE | 159 | #ifdef USE_CIE1931_CURVE |
| 178 | led_matrix_driver.set_value(index, pgm_read_byte(&CIE1931_CURVE[value])); | 160 | value = pgm_read_byte(&CIE1931_CURVE[value]); |
| 179 | #else | ||
| 180 | led_matrix_driver.set_value(index, value); | ||
| 181 | #endif | 161 | #endif |
| 162 | led_matrix_driver.set_value(index, value); | ||
| 182 | } | 163 | } |
| 183 | 164 | ||
| 184 | void led_matrix_set_value_all(uint8_t value) { | 165 | void led_matrix_set_value_all(uint8_t value) { |
| @@ -232,11 +213,11 @@ void process_led_matrix(uint8_t row, uint8_t col, bool pressed) { | |||
| 232 | } | 213 | } |
| 233 | #endif // LED_MATRIX_KEYREACTIVE_ENABLED | 214 | #endif // LED_MATRIX_KEYREACTIVE_ENABLED |
| 234 | 215 | ||
| 235 | #if defined(LED_MATRIX_FRAMEBUFFER_EFFECTS) && !defined(DISABLE_LED_MATRIX_TYPING_HEATMAP) | 216 | #if defined(LED_MATRIX_FRAMEBUFFER_EFFECTS) && defined(ENABLE_LED_MATRIX_TYPING_HEATMAP) |
| 236 | if (led_matrix_eeconfig.mode == LED_MATRIX_TYPING_HEATMAP) { | 217 | if (led_matrix_eeconfig.mode == LED_MATRIX_TYPING_HEATMAP) { |
| 237 | process_led_matrix_typing_heatmap(row, col); | 218 | process_led_matrix_typing_heatmap(row, col); |
| 238 | } | 219 | } |
| 239 | #endif // defined(LED_MATRIX_FRAMEBUFFER_EFFECTS) && !defined(DISABLE_LED_MATRIX_TYPING_HEATMAP) | 220 | #endif // defined(LED_MATRIX_FRAMEBUFFER_EFFECTS) && defined(ENABLE_LED_MATRIX_TYPING_HEATMAP) |
| 240 | } | 221 | } |
| 241 | 222 | ||
| 242 | static bool led_matrix_none(effect_params_t *params) { | 223 | static bool led_matrix_none(effect_params_t *params) { |
| @@ -279,9 +260,8 @@ static void led_task_timers(void) { | |||
| 279 | } | 260 | } |
| 280 | 261 | ||
| 281 | static void led_task_sync(void) { | 262 | static void led_task_sync(void) { |
| 263 | eeconfig_flush_led_matrix(false); | ||
| 282 | // next task | 264 | // next task |
| 283 | if (led_update_eeprom) eeconfig_update_led_matrix(); | ||
| 284 | led_update_eeprom = false; | ||
| 285 | if (sync_timer_elapsed32(g_led_timer) >= LED_MATRIX_LED_FLUSH_LIMIT) led_task_state = STARTING; | 265 | if (sync_timer_elapsed32(g_led_timer) >= LED_MATRIX_LED_FLUSH_LIMIT) led_task_state = STARTING; |
| 286 | } | 266 | } |
| 287 | 267 | ||
| @@ -449,7 +429,7 @@ void led_matrix_init(void) { | |||
| 449 | eeconfig_update_led_matrix_default(); | 429 | eeconfig_update_led_matrix_default(); |
| 450 | } | 430 | } |
| 451 | 431 | ||
| 452 | eeconfig_read_led_matrix(); | 432 | eeconfig_init_led_matrix(); |
| 453 | if (!led_matrix_eeconfig.mode) { | 433 | if (!led_matrix_eeconfig.mode) { |
| 454 | dprintf("led_matrix_init_drivers led_matrix_eeconfig.mode = 0. Write default values to EEPROM.\n"); | 434 | dprintf("led_matrix_init_drivers led_matrix_eeconfig.mode = 0. Write default values to EEPROM.\n"); |
| 455 | eeconfig_update_led_matrix_default(); | 435 | eeconfig_update_led_matrix_default(); |
| @@ -472,7 +452,7 @@ bool led_matrix_get_suspend_state(void) { return suspend_state; } | |||
| 472 | void led_matrix_toggle_eeprom_helper(bool write_to_eeprom) { | 452 | void led_matrix_toggle_eeprom_helper(bool write_to_eeprom) { |
| 473 | led_matrix_eeconfig.enable ^= 1; | 453 | led_matrix_eeconfig.enable ^= 1; |
| 474 | led_task_state = STARTING; | 454 | led_task_state = STARTING; |
| 475 | led_eeconfig_update(write_to_eeprom); | 455 | eeconfig_flag_led_matrix(write_to_eeprom); |
| 476 | dprintf("led matrix toggle [%s]: led_matrix_eeconfig.enable = %u\n", (write_to_eeprom) ? "EEPROM" : "NOEEPROM", led_matrix_eeconfig.enable); | 456 | dprintf("led matrix toggle [%s]: led_matrix_eeconfig.enable = %u\n", (write_to_eeprom) ? "EEPROM" : "NOEEPROM", led_matrix_eeconfig.enable); |
| 477 | } | 457 | } |
| 478 | void led_matrix_toggle_noeeprom(void) { led_matrix_toggle_eeprom_helper(false); } | 458 | void led_matrix_toggle_noeeprom(void) { led_matrix_toggle_eeprom_helper(false); } |
| @@ -480,7 +460,7 @@ void led_matrix_toggle(void) { led_matrix_toggle_eeprom_helper(true); } | |||
| 480 | 460 | ||
| 481 | void led_matrix_enable(void) { | 461 | void led_matrix_enable(void) { |
| 482 | led_matrix_enable_noeeprom(); | 462 | led_matrix_enable_noeeprom(); |
| 483 | led_eeconfig_update(true); | 463 | eeconfig_flag_led_matrix(true); |
| 484 | } | 464 | } |
| 485 | 465 | ||
| 486 | void led_matrix_enable_noeeprom(void) { | 466 | void led_matrix_enable_noeeprom(void) { |
| @@ -490,7 +470,7 @@ void led_matrix_enable_noeeprom(void) { | |||
| 490 | 470 | ||
| 491 | void led_matrix_disable(void) { | 471 | void led_matrix_disable(void) { |
| 492 | led_matrix_disable_noeeprom(); | 472 | led_matrix_disable_noeeprom(); |
| 493 | led_eeconfig_update(true); | 473 | eeconfig_flag_led_matrix(true); |
| 494 | } | 474 | } |
| 495 | 475 | ||
| 496 | void led_matrix_disable_noeeprom(void) { | 476 | void led_matrix_disable_noeeprom(void) { |
| @@ -512,7 +492,7 @@ void led_matrix_mode_eeprom_helper(uint8_t mode, bool write_to_eeprom) { | |||
| 512 | led_matrix_eeconfig.mode = mode; | 492 | led_matrix_eeconfig.mode = mode; |
| 513 | } | 493 | } |
| 514 | led_task_state = STARTING; | 494 | led_task_state = STARTING; |
| 515 | led_eeconfig_update(write_to_eeprom); | 495 | eeconfig_flag_led_matrix(write_to_eeprom); |
| 516 | dprintf("led matrix mode [%s]: %u\n", (write_to_eeprom) ? "EEPROM" : "NOEEPROM", led_matrix_eeconfig.mode); | 496 | dprintf("led matrix mode [%s]: %u\n", (write_to_eeprom) ? "EEPROM" : "NOEEPROM", led_matrix_eeconfig.mode); |
| 517 | } | 497 | } |
| 518 | void led_matrix_mode_noeeprom(uint8_t mode) { led_matrix_mode_eeprom_helper(mode, false); } | 498 | void led_matrix_mode_noeeprom(uint8_t mode) { led_matrix_mode_eeprom_helper(mode, false); } |
| @@ -539,7 +519,7 @@ void led_matrix_set_val_eeprom_helper(uint8_t val, bool write_to_eeprom) { | |||
| 539 | return; | 519 | return; |
| 540 | } | 520 | } |
| 541 | led_matrix_eeconfig.val = (val > LED_MATRIX_MAXIMUM_BRIGHTNESS) ? LED_MATRIX_MAXIMUM_BRIGHTNESS : val; | 521 | led_matrix_eeconfig.val = (val > LED_MATRIX_MAXIMUM_BRIGHTNESS) ? LED_MATRIX_MAXIMUM_BRIGHTNESS : val; |
| 542 | led_eeconfig_update(write_to_eeprom); | 522 | eeconfig_flag_led_matrix(write_to_eeprom); |
| 543 | dprintf("led matrix set val [%s]: %u\n", (write_to_eeprom) ? "EEPROM" : "NOEEPROM", led_matrix_eeconfig.val); | 523 | dprintf("led matrix set val [%s]: %u\n", (write_to_eeprom) ? "EEPROM" : "NOEEPROM", led_matrix_eeconfig.val); |
| 544 | } | 524 | } |
| 545 | void led_matrix_set_val_noeeprom(uint8_t val) { led_matrix_set_val_eeprom_helper(val, false); } | 525 | void led_matrix_set_val_noeeprom(uint8_t val) { led_matrix_set_val_eeprom_helper(val, false); } |
| @@ -557,7 +537,7 @@ void led_matrix_decrease_val(void) { led_matrix_decrease_val_helper(true); } | |||
| 557 | 537 | ||
| 558 | void led_matrix_set_speed_eeprom_helper(uint8_t speed, bool write_to_eeprom) { | 538 | void led_matrix_set_speed_eeprom_helper(uint8_t speed, bool write_to_eeprom) { |
| 559 | led_matrix_eeconfig.speed = speed; | 539 | led_matrix_eeconfig.speed = speed; |
| 560 | led_eeconfig_update(write_to_eeprom); | 540 | eeconfig_flag_led_matrix(write_to_eeprom); |
| 561 | dprintf("led matrix set speed [%s]: %u\n", (write_to_eeprom) ? "EEPROM" : "NOEEPROM", led_matrix_eeconfig.speed); | 541 | dprintf("led matrix set speed [%s]: %u\n", (write_to_eeprom) ? "EEPROM" : "NOEEPROM", led_matrix_eeconfig.speed); |
| 562 | } | 542 | } |
| 563 | void led_matrix_set_speed_noeeprom(uint8_t speed) { led_matrix_set_speed_eeprom_helper(speed, false); } | 543 | void led_matrix_set_speed_noeeprom(uint8_t speed) { led_matrix_set_speed_eeprom_helper(speed, false); } |
diff --git a/quantum/led_matrix/led_matrix.h b/quantum/led_matrix/led_matrix.h index a7a1c983f..e42be6466 100644 --- a/quantum/led_matrix/led_matrix.h +++ b/quantum/led_matrix/led_matrix.h | |||
| @@ -23,7 +23,6 @@ | |||
| 23 | #include <stdbool.h> | 23 | #include <stdbool.h> |
| 24 | #include "led_matrix_types.h" | 24 | #include "led_matrix_types.h" |
| 25 | #include "quantum.h" | 25 | #include "quantum.h" |
| 26 | #include "led_matrix_legacy_enables.h" | ||
| 27 | 26 | ||
| 28 | #ifdef IS31FL3731 | 27 | #ifdef IS31FL3731 |
| 29 | # include "is31fl3731-simple.h" | 28 | # include "is31fl3731-simple.h" |
| @@ -38,14 +37,33 @@ | |||
| 38 | #endif | 37 | #endif |
| 39 | 38 | ||
| 40 | #if defined(LED_MATRIX_LED_PROCESS_LIMIT) && LED_MATRIX_LED_PROCESS_LIMIT > 0 && LED_MATRIX_LED_PROCESS_LIMIT < DRIVER_LED_TOTAL | 39 | #if defined(LED_MATRIX_LED_PROCESS_LIMIT) && LED_MATRIX_LED_PROCESS_LIMIT > 0 && LED_MATRIX_LED_PROCESS_LIMIT < DRIVER_LED_TOTAL |
| 41 | # define LED_MATRIX_USE_LIMITS(min, max) \ | 40 | # if defined(LED_MATRIX_SPLIT) |
| 42 | uint8_t min = LED_MATRIX_LED_PROCESS_LIMIT * params->iter; \ | 41 | # define LED_MATRIX_USE_LIMITS(min, max) \ |
| 43 | uint8_t max = min + LED_MATRIX_LED_PROCESS_LIMIT; \ | 42 | uint8_t min = LED_MATRIX_LED_PROCESS_LIMIT * params->iter; \ |
| 44 | if (max > DRIVER_LED_TOTAL) max = DRIVER_LED_TOTAL; | 43 | uint8_t max = min + LED_MATRIX_LED_PROCESS_LIMIT; \ |
| 44 | if (max > DRIVER_LED_TOTAL) max = DRIVER_LED_TOTAL; \ | ||
| 45 | uint8_t k_led_matrix_split[2] = LED_MATRIX_SPLIT; \ | ||
| 46 | if (is_keyboard_left() && (max > k_led_matrix_split[0])) max = k_led_matrix_split[0]; \ | ||
| 47 | if (!(is_keyboard_left()) && (min < k_led_matrix_split[0])) min = k_led_matrix_split[0]; | ||
| 48 | # else | ||
| 49 | # define LED_MATRIX_USE_LIMITS(min, max) \ | ||
| 50 | uint8_t min = LED_MATRIX_LED_PROCESS_LIMIT * params->iter; \ | ||
| 51 | uint8_t max = min + LED_MATRIX_LED_PROCESS_LIMIT; \ | ||
| 52 | if (max > DRIVER_LED_TOTAL) max = DRIVER_LED_TOTAL; | ||
| 53 | # endif | ||
| 45 | #else | 54 | #else |
| 46 | # define LED_MATRIX_USE_LIMITS(min, max) \ | 55 | # if defined(LED_MATRIX_SPLIT) |
| 47 | uint8_t min = 0; \ | 56 | # define LED_MATRIX_USE_LIMITS(min, max) \ |
| 48 | uint8_t max = DRIVER_LED_TOTAL; | 57 | uint8_t min = 0; \ |
| 58 | uint8_t max = DRIVER_LED_TOTAL; \ | ||
| 59 | const uint8_t k_led_matrix_split[2] = LED_MATRIX_SPLIT; \ | ||
| 60 | if (is_keyboard_left() && (max > k_led_matrix_split[0])) max = k_led_matrix_split[0]; \ | ||
| 61 | if (!(is_keyboard_left()) && (min < k_led_matrix_split[0])) min = k_led_matrix_split[0]; | ||
| 62 | # else | ||
| 63 | # define LED_MATRIX_USE_LIMITS(min, max) \ | ||
| 64 | uint8_t min = 0; \ | ||
| 65 | uint8_t max = DRIVER_LED_TOTAL; | ||
| 66 | # endif | ||
| 49 | #endif | 67 | #endif |
| 50 | 68 | ||
| 51 | #define LED_MATRIX_TEST_LED_FLAGS() \ | 69 | #define LED_MATRIX_TEST_LED_FLAGS() \ |
| @@ -147,6 +165,18 @@ typedef struct { | |||
| 147 | void (*flush)(void); | 165 | void (*flush)(void); |
| 148 | } led_matrix_driver_t; | 166 | } led_matrix_driver_t; |
| 149 | 167 | ||
| 168 | static inline bool led_matrix_check_finished_leds(uint8_t led_idx) { | ||
| 169 | #if defined(LED_MATRIX_SPLIT) | ||
| 170 | if (is_keyboard_left()) { | ||
| 171 | uint8_t k_led_matrix_split[2] = LED_MATRIX_SPLIT; | ||
| 172 | return led_idx < k_led_matrix_split[0]; | ||
| 173 | } else | ||
| 174 | return led_idx < DRIVER_LED_TOTAL; | ||
| 175 | #else | ||
| 176 | return led_idx < DRIVER_LED_TOTAL; | ||
| 177 | #endif | ||
| 178 | } | ||
| 179 | |||
| 150 | extern const led_matrix_driver_t led_matrix_driver; | 180 | extern const led_matrix_driver_t led_matrix_driver; |
| 151 | 181 | ||
| 152 | extern led_eeconfig_t led_matrix_eeconfig; | 182 | extern led_eeconfig_t led_matrix_eeconfig; |
diff --git a/quantum/led_matrix/led_matrix_drivers.c b/quantum/led_matrix/led_matrix_drivers.c index 1d46b2c50..2157619a0 100644 --- a/quantum/led_matrix/led_matrix_drivers.c +++ b/quantum/led_matrix/led_matrix_drivers.c | |||
| @@ -26,128 +26,123 @@ | |||
| 26 | */ | 26 | */ |
| 27 | 27 | ||
| 28 | #if defined(IS31FL3731) || defined(IS31FL3733) | 28 | #if defined(IS31FL3731) || defined(IS31FL3733) |
| 29 | |||
| 30 | # include "i2c_master.h" | 29 | # include "i2c_master.h" |
| 31 | 30 | ||
| 32 | static void init(void) { | 31 | static void init(void) { |
| 33 | i2c_init(); | 32 | i2c_init(); |
| 34 | # ifdef IS31FL3731 | 33 | |
| 35 | # ifdef LED_DRIVER_ADDR_1 | 34 | # if defined(IS31FL3731) |
| 36 | IS31FL3731_init(LED_DRIVER_ADDR_1); | 35 | IS31FL3731_init(LED_DRIVER_ADDR_1); |
| 37 | # endif | 36 | # if defined(LED_DRIVER_ADDR_2) |
| 38 | # ifdef LED_DRIVER_ADDR_2 | ||
| 39 | IS31FL3731_init(LED_DRIVER_ADDR_2); | 37 | IS31FL3731_init(LED_DRIVER_ADDR_2); |
| 40 | # endif | 38 | # if defined(LED_DRIVER_ADDR_3) |
| 41 | # ifdef LED_DRIVER_ADDR_3 | ||
| 42 | IS31FL3731_init(LED_DRIVER_ADDR_3); | 39 | IS31FL3731_init(LED_DRIVER_ADDR_3); |
| 43 | # endif | 40 | # if defined(LED_DRIVER_ADDR_4) |
| 44 | # ifdef LED_DRIVER_ADDR_4 | ||
| 45 | IS31FL3731_init(LED_DRIVER_ADDR_4); | 41 | IS31FL3731_init(LED_DRIVER_ADDR_4); |
| 46 | # endif | 42 | # endif |
| 47 | # else | ||
| 48 | # ifdef LED_DRIVER_ADDR_1 | ||
| 49 | # ifndef LED_DRIVER_SYNC_1 | ||
| 50 | # define LED_DRIVER_SYNC_1 0 | ||
| 51 | # endif | 43 | # endif |
| 52 | IS31FL3733_init(LED_DRIVER_ADDR_1, LED_DRIVER_SYNC_1); | ||
| 53 | # endif | 44 | # endif |
| 54 | # ifdef LED_DRIVER_ADDR_2 | 45 | |
| 55 | # ifndef LED_DRIVER_SYNC_2 | 46 | # elif defined(IS31FL3733) |
| 47 | # if !defined(LED_DRIVER_SYNC_1) | ||
| 48 | # define LED_DRIVER_SYNC_1 0 | ||
| 49 | # endif | ||
| 50 | IS31FL3733_init(LED_DRIVER_ADDR_1, LED_DRIVER_SYNC_1); | ||
| 51 | # if defined(LED_DRIVER_ADDR_2) | ||
| 52 | # if !defined(LED_DRIVER_SYNC_2) | ||
| 56 | # define LED_DRIVER_SYNC_2 0 | 53 | # define LED_DRIVER_SYNC_2 0 |
| 57 | # endif | 54 | # endif |
| 58 | IS31FL3733_init(LED_DRIVER_ADDR_2, LED_DRIVER_SYNC_2); | 55 | IS31FL3733_init(LED_DRIVER_ADDR_2, LED_DRIVER_SYNC_2); |
| 59 | # endif | 56 | # if defined(LED_DRIVER_ADDR_3) |
| 60 | # ifdef LED_DRIVER_ADDR_3 | 57 | # if !defined(LED_DRIVER_SYNC_3) |
| 61 | # ifndef LED_DRIVER_SYNC_3 | 58 | # define LED_DRIVER_SYNC_3 0 |
| 62 | # define LED_DRIVER_SYNC_3 0 | 59 | # endif |
| 63 | # endif | ||
| 64 | IS31FL3733_init(LED_DRIVER_ADDR_3, LED_DRIVER_SYNC_3); | 60 | IS31FL3733_init(LED_DRIVER_ADDR_3, LED_DRIVER_SYNC_3); |
| 65 | # endif | 61 | # if defined(LED_DRIVER_ADDR_4) |
| 66 | # ifdef LED_DRIVER_ADDR_4 | 62 | # if !defined(LED_DRIVER_SYNC_4) |
| 67 | # ifndef LED_DRIVER_SYNC_4 | 63 | # define LED_DRIVER_SYNC_4 0 |
| 68 | # define LED_DRIVER_SYNC_4 0 | 64 | # endif |
| 69 | # endif | ||
| 70 | IS31FL3733_init(LED_DRIVER_ADDR_4, LED_DRIVER_SYNC_4); | 65 | IS31FL3733_init(LED_DRIVER_ADDR_4, LED_DRIVER_SYNC_4); |
| 66 | # endif | ||
| 67 | # endif | ||
| 71 | # endif | 68 | # endif |
| 72 | # endif | 69 | # endif |
| 73 | 70 | ||
| 74 | for (int index = 0; index < DRIVER_LED_TOTAL; index++) { | 71 | for (int index = 0; index < DRIVER_LED_TOTAL; index++) { |
| 75 | # ifdef IS31FL3731 | 72 | # if defined(IS31FL3731) |
| 76 | IS31FL3731_set_led_control_register(index, true); | 73 | IS31FL3731_set_led_control_register(index, true); |
| 77 | # else | 74 | # elif defined(IS31FL3733) |
| 78 | IS31FL3733_set_led_control_register(index, true); | 75 | IS31FL3733_set_led_control_register(index, true); |
| 79 | # endif | 76 | # endif |
| 80 | } | 77 | } |
| 78 | |||
| 81 | // This actually updates the LED drivers | 79 | // This actually updates the LED drivers |
| 82 | # ifdef IS31FL3731 | 80 | # if defined(IS31FL3731) |
| 83 | # ifdef LED_DRIVER_ADDR_1 | ||
| 84 | IS31FL3731_update_led_control_registers(LED_DRIVER_ADDR_1, 0); | 81 | IS31FL3731_update_led_control_registers(LED_DRIVER_ADDR_1, 0); |
| 85 | # endif | 82 | # if defined(LED_DRIVER_ADDR_2) |
| 86 | # ifdef LED_DRIVER_ADDR_2 | ||
| 87 | IS31FL3731_update_led_control_registers(LED_DRIVER_ADDR_2, 1); | 83 | IS31FL3731_update_led_control_registers(LED_DRIVER_ADDR_2, 1); |
| 88 | # endif | 84 | # if defined(LED_DRIVER_ADDR_3) |
| 89 | # ifdef LED_DRIVER_ADDR_3 | ||
| 90 | IS31FL3731_update_led_control_registers(LED_DRIVER_ADDR_3, 2); | 85 | IS31FL3731_update_led_control_registers(LED_DRIVER_ADDR_3, 2); |
| 91 | # endif | 86 | # if defined(LED_DRIVER_ADDR_4) |
| 92 | # ifdef LED_DRIVER_ADDR_4 | ||
| 93 | IS31FL3731_update_led_control_registers(LED_DRIVER_ADDR_4, 3); | 87 | IS31FL3731_update_led_control_registers(LED_DRIVER_ADDR_4, 3); |
| 88 | # endif | ||
| 89 | # endif | ||
| 94 | # endif | 90 | # endif |
| 95 | # else | 91 | |
| 96 | # ifdef LED_DRIVER_ADDR_1 | 92 | # elif defined(IS31FL3733) |
| 97 | IS31FL3733_update_led_control_registers(LED_DRIVER_ADDR_1, 0); | 93 | IS31FL3733_update_led_control_registers(LED_DRIVER_ADDR_1, 0); |
| 98 | # endif | 94 | # if defined(LED_DRIVER_ADDR_2) |
| 99 | # ifdef LED_DRIVER_ADDR_2 | ||
| 100 | IS31FL3733_update_led_control_registers(LED_DRIVER_ADDR_2, 1); | 95 | IS31FL3733_update_led_control_registers(LED_DRIVER_ADDR_2, 1); |
| 101 | # endif | 96 | # if defined(LED_DRIVER_ADDR_3) |
| 102 | # ifdef LED_DRIVER_ADDR_3 | ||
| 103 | IS31FL3733_update_led_control_registers(LED_DRIVER_ADDR_3, 2); | 97 | IS31FL3733_update_led_control_registers(LED_DRIVER_ADDR_3, 2); |
| 104 | # endif | 98 | # if defined(LED_DRIVER_ADDR_4) |
| 105 | # ifdef LED_DRIVER_ADDR_4 | ||
| 106 | IS31FL3733_update_led_control_registers(LED_DRIVER_ADDR_4, 3); | 99 | IS31FL3733_update_led_control_registers(LED_DRIVER_ADDR_4, 3); |
| 100 | # endif | ||
| 101 | # endif | ||
| 107 | # endif | 102 | # endif |
| 108 | # endif | 103 | # endif |
| 109 | } | 104 | } |
| 110 | 105 | ||
| 106 | # if defined(IS31FL3731) | ||
| 111 | static void flush(void) { | 107 | static void flush(void) { |
| 112 | # ifdef IS31FL3731 | ||
| 113 | # ifdef LED_DRIVER_ADDR_1 | ||
| 114 | IS31FL3731_update_pwm_buffers(LED_DRIVER_ADDR_1, 0); | 108 | IS31FL3731_update_pwm_buffers(LED_DRIVER_ADDR_1, 0); |
| 115 | # endif | 109 | # if defined(LED_DRIVER_ADDR_2) |
| 116 | # ifdef LED_DRIVER_ADDR_2 | ||
| 117 | IS31FL3731_update_pwm_buffers(LED_DRIVER_ADDR_2, 1); | 110 | IS31FL3731_update_pwm_buffers(LED_DRIVER_ADDR_2, 1); |
| 118 | # endif | 111 | # if defined(LED_DRIVER_ADDR_3) |
| 119 | # ifdef LED_DRIVER_ADDR_3 | ||
| 120 | IS31FL3731_update_pwm_buffers(LED_DRIVER_ADDR_3, 2); | 112 | IS31FL3731_update_pwm_buffers(LED_DRIVER_ADDR_3, 2); |
| 121 | # endif | 113 | # if defined(LED_DRIVER_ADDR_4) |
| 122 | # ifdef LED_DRIVER_ADDR_4 | ||
| 123 | IS31FL3731_update_pwm_buffers(LED_DRIVER_ADDR_4, 3); | 114 | IS31FL3731_update_pwm_buffers(LED_DRIVER_ADDR_4, 3); |
| 115 | # endif | ||
| 116 | # endif | ||
| 124 | # endif | 117 | # endif |
| 125 | # else | 118 | } |
| 126 | # ifdef LED_DRIVER_ADDR_1 | 119 | |
| 120 | const led_matrix_driver_t led_matrix_driver = { | ||
| 121 | .init = init, | ||
| 122 | .flush = flush, | ||
| 123 | .set_value = IS31FL3731_set_value, | ||
| 124 | .set_value_all = IS31FL3731_set_value_all, | ||
| 125 | }; | ||
| 126 | |||
| 127 | # elif defined(IS31FL3733) | ||
| 128 | static void flush(void) { | ||
| 127 | IS31FL3733_update_pwm_buffers(LED_DRIVER_ADDR_1, 0); | 129 | IS31FL3733_update_pwm_buffers(LED_DRIVER_ADDR_1, 0); |
| 128 | # endif | 130 | # if defined(LED_DRIVER_ADDR_2) |
| 129 | # ifdef LED_DRIVER_ADDR_2 | ||
| 130 | IS31FL3733_update_pwm_buffers(LED_DRIVER_ADDR_2, 1); | 131 | IS31FL3733_update_pwm_buffers(LED_DRIVER_ADDR_2, 1); |
| 131 | # endif | 132 | # if defined(LED_DRIVER_ADDR_3) |
| 132 | # ifdef LED_DRIVER_ADDR_3 | ||
| 133 | IS31FL3733_update_pwm_buffers(LED_DRIVER_ADDR_3, 2); | 133 | IS31FL3733_update_pwm_buffers(LED_DRIVER_ADDR_3, 2); |
| 134 | # endif | 134 | # if defined(LED_DRIVER_ADDR_4) |
| 135 | # ifdef LED_DRIVER_ADDR_4 | ||
| 136 | IS31FL3733_update_pwm_buffers(LED_DRIVER_ADDR_4, 3); | 135 | IS31FL3733_update_pwm_buffers(LED_DRIVER_ADDR_4, 3); |
| 136 | # endif | ||
| 137 | # endif | ||
| 137 | # endif | 138 | # endif |
| 138 | # endif | ||
| 139 | } | 139 | } |
| 140 | 140 | ||
| 141 | const led_matrix_driver_t led_matrix_driver = { | 141 | const led_matrix_driver_t led_matrix_driver = { |
| 142 | .init = init, | 142 | .init = init, |
| 143 | .flush = flush, | 143 | .flush = flush, |
| 144 | # ifdef IS31FL3731 | ||
| 145 | .set_value = IS31FL3731_set_value, | ||
| 146 | .set_value_all = IS31FL3731_set_value_all, | ||
| 147 | # else | ||
| 148 | .set_value = IS31FL3733_set_value, | 144 | .set_value = IS31FL3733_set_value, |
| 149 | .set_value_all = IS31FL3733_set_value_all, | 145 | .set_value_all = IS31FL3733_set_value_all, |
| 150 | # endif | ||
| 151 | }; | 146 | }; |
| 152 | 147 | # endif | |
| 153 | #endif | 148 | #endif |
diff --git a/quantum/led_matrix/led_matrix_legacy_enables.h b/quantum/led_matrix/led_matrix_legacy_enables.h deleted file mode 100644 index 7738d2f34..000000000 --- a/quantum/led_matrix/led_matrix_legacy_enables.h +++ /dev/null | |||
| @@ -1,82 +0,0 @@ | |||
| 1 | /* Copyright 2021 QMK | ||
| 2 | * | ||
| 3 | * This program is free software: you can redistribute it and/or modify | ||
| 4 | * it under the terms of the GNU General Public License as published by | ||
| 5 | * the Free Software Foundation, either version 2 of the License, or | ||
| 6 | * (at your option) any later version. | ||
| 7 | * | ||
| 8 | * This program is distributed in the hope that it will be useful, | ||
| 9 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
| 10 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
| 11 | * GNU General Public License for more details. | ||
| 12 | * | ||
| 13 | * You should have received a copy of the GNU General Public License | ||
| 14 | * along with this program. If not, see <http://www.gnu.org/licenses/>. | ||
| 15 | */ | ||
| 16 | |||
| 17 | // to-do: remove this | ||
| 18 | |||
| 19 | #pragma once | ||
| 20 | |||
| 21 | #ifndef DISABLE_LED_MATRIX_ALPHAS_MODS | ||
| 22 | # define ENABLE_LED_MATRIX_ALPHAS_MODS | ||
| 23 | #endif | ||
| 24 | #ifndef DISABLE_LED_MATRIX_BREATHING | ||
| 25 | # define ENABLE_LED_MATRIX_BREATHING | ||
| 26 | #endif | ||
| 27 | #ifndef DISABLE_LED_MATRIX_BAND | ||
| 28 | # define ENABLE_LED_MATRIX_BAND | ||
| 29 | #endif | ||
| 30 | #ifndef DISABLE_LED_MATRIX_BAND_PINWHEEL | ||
| 31 | # define ENABLE_LED_MATRIX_BAND_PINWHEEL | ||
| 32 | #endif | ||
| 33 | #ifndef DISABLE_LED_MATRIX_BAND_SPIRAL | ||
| 34 | # define ENABLE_LED_MATRIX_BAND_SPIRAL | ||
| 35 | #endif | ||
| 36 | #ifndef DISABLE_LED_MATRIX_CYCLE_LEFT_RIGHT | ||
| 37 | # define ENABLE_LED_MATRIX_CYCLE_LEFT_RIGHT | ||
| 38 | #endif | ||
| 39 | #ifndef DISABLE_LED_MATRIX_CYCLE_UP_DOWN | ||
| 40 | # define ENABLE_LED_MATRIX_CYCLE_UP_DOWN | ||
| 41 | #endif | ||
| 42 | #ifndef DISABLE_LED_MATRIX_CYCLE_OUT_IN | ||
| 43 | # define ENABLE_LED_MATRIX_CYCLE_OUT_IN | ||
| 44 | #endif | ||
| 45 | #ifndef DISABLE_LED_MATRIX_DUAL_BEACON | ||
| 46 | # define ENABLE_LED_MATRIX_DUAL_BEACON | ||
| 47 | #endif | ||
| 48 | #if defined(LED_MATRIX_KEYREACTIVE_ENABLED) | ||
| 49 | # ifndef DISABLE_LED_MATRIX_SOLID_REACTIVE_SIMPLE | ||
| 50 | # define ENABLE_LED_MATRIX_SOLID_REACTIVE_SIMPLE | ||
| 51 | # endif | ||
| 52 | # ifndef DISABLE_LED_MATRIX_SOLID_REACTIVE_WIDE | ||
| 53 | # define ENABLE_LED_MATRIX_SOLID_REACTIVE_WIDE | ||
| 54 | # endif | ||
| 55 | # ifndef DISABLE_LED_MATRIX_SOLID_REACTIVE_MULTIWIDE | ||
| 56 | # define ENABLE_LED_MATRIX_SOLID_REACTIVE_MULTIWIDE | ||
| 57 | # endif | ||
| 58 | # ifndef DISABLE_LED_MATRIX_SOLID_REACTIVE_CROSS | ||
| 59 | # define ENABLE_LED_MATRIX_SOLID_REACTIVE_CROSS | ||
| 60 | # endif | ||
| 61 | # ifndef DISABLE_LED_MATRIX_SOLID_REACTIVE_MULTICROSS | ||
| 62 | # define ENABLE_LED_MATRIX_SOLID_REACTIVE_MULTICROSS | ||
| 63 | # endif | ||
| 64 | # ifndef DISABLE_LED_MATRIX_SOLID_REACTIVE_NEXUS | ||
| 65 | # define ENABLE_LED_MATRIX_SOLID_REACTIVE_NEXUS | ||
| 66 | # endif | ||
| 67 | # ifndef DISABLE_LED_MATRIX_SOLID_REACTIVE_MULTINEXUS | ||
| 68 | # define ENABLE_LED_MATRIX_SOLID_REACTIVE_MULTINEXUS | ||
| 69 | # endif | ||
| 70 | # ifndef DISABLE_LED_MATRIX_SPLASH | ||
| 71 | # define ENABLE_LED_MATRIX_SPLASH | ||
| 72 | # endif | ||
| 73 | # ifndef DISABLE_LED_MATRIX_MULTISPLASH | ||
| 74 | # define ENABLE_LED_MATRIX_MULTISPLASH | ||
| 75 | # endif | ||
| 76 | #endif | ||
| 77 | #ifndef DISABLE_LED_MATRIX_WAVE_LEFT_RIGHT | ||
| 78 | # define ENABLE_LED_MATRIX_WAVE_LEFT_RIGHT | ||
| 79 | #endif | ||
| 80 | #ifndef DISABLE_LED_MATRIX_WAVE_UP_DOWN | ||
| 81 | # define ENABLE_LED_MATRIX_WAVE_UP_DOWN | ||
| 82 | #endif | ||
