diff options
Diffstat (limited to 'quantum/led_matrix.c')
| -rw-r--r-- | quantum/led_matrix.c | 71 |
1 files changed, 57 insertions, 14 deletions
diff --git a/quantum/led_matrix.c b/quantum/led_matrix.c index 3674c9b97..58cda6413 100644 --- a/quantum/led_matrix.c +++ b/quantum/led_matrix.c | |||
| @@ -27,6 +27,38 @@ | |||
| 27 | 27 | ||
| 28 | #include <lib/lib8tion/lib8tion.h> | 28 | #include <lib/lib8tion/lib8tion.h> |
| 29 | 29 | ||
| 30 | #ifndef LED_MATRIX_CENTER | ||
| 31 | const point_t k_led_matrix_center = {112, 32}; | ||
| 32 | #else | ||
| 33 | const point_t k_led_matrix_center = LED_MATRIX_CENTER; | ||
| 34 | #endif | ||
| 35 | |||
| 36 | // Generic effect runners | ||
| 37 | #include "led_matrix_runners/effect_runner_dx_dy_dist.h" | ||
| 38 | #include "led_matrix_runners/effect_runner_dx_dy.h" | ||
| 39 | #include "led_matrix_runners/effect_runner_i.h" | ||
| 40 | #include "led_matrix_runners/effect_runner_sin_cos_i.h" | ||
| 41 | #include "led_matrix_runners/effect_runner_reactive.h" | ||
| 42 | #include "led_matrix_runners/effect_runner_reactive_splash.h" | ||
| 43 | |||
| 44 | // ------------------------------------------ | ||
| 45 | // -----Begin led effect includes macros----- | ||
| 46 | #define LED_MATRIX_EFFECT(name) | ||
| 47 | #define LED_MATRIX_CUSTOM_EFFECT_IMPLS | ||
| 48 | |||
| 49 | #include "led_matrix_animations/led_matrix_effects.inc" | ||
| 50 | #ifdef LED_MATRIX_CUSTOM_KB | ||
| 51 | # include "led_matrix_kb.inc" | ||
| 52 | #endif | ||
| 53 | #ifdef LED_MATRIX_CUSTOM_USER | ||
| 54 | # include "led_matrix_user.inc" | ||
| 55 | #endif | ||
| 56 | |||
| 57 | #undef LED_MATRIX_CUSTOM_EFFECT_IMPLS | ||
| 58 | #undef LED_MATRIX_EFFECT | ||
| 59 | // -----End led effect includes macros------- | ||
| 60 | // ------------------------------------------ | ||
| 61 | |||
| 30 | #if defined(LED_DISABLE_AFTER_TIMEOUT) && !defined(LED_DISABLE_TIMEOUT) | 62 | #if defined(LED_DISABLE_AFTER_TIMEOUT) && !defined(LED_DISABLE_TIMEOUT) |
| 31 | # define LED_DISABLE_TIMEOUT (LED_DISABLE_AFTER_TIMEOUT * 1200UL) | 63 | # define LED_DISABLE_TIMEOUT (LED_DISABLE_AFTER_TIMEOUT * 1200UL) |
| 32 | #endif | 64 | #endif |
| @@ -53,7 +85,7 @@ | |||
| 53 | #endif | 85 | #endif |
| 54 | 86 | ||
| 55 | #if !defined(LED_MATRIX_STARTUP_MODE) | 87 | #if !defined(LED_MATRIX_STARTUP_MODE) |
| 56 | # define LED_MATRIX_STARTUP_MODE LED_MATRIX_UNIFORM_BRIGHTNESS | 88 | # define LED_MATRIX_STARTUP_MODE LED_MATRIX_SOLID |
| 57 | #endif | 89 | #endif |
| 58 | 90 | ||
| 59 | #if !defined(LED_MATRIX_STARTUP_VAL) | 91 | #if !defined(LED_MATRIX_STARTUP_VAL) |
| @@ -216,17 +248,6 @@ static bool led_matrix_none(effect_params_t *params) { | |||
| 216 | return false; | 248 | return false; |
| 217 | } | 249 | } |
| 218 | 250 | ||
| 219 | static bool led_matrix_uniform_brightness(effect_params_t *params) { | ||
| 220 | LED_MATRIX_USE_LIMITS(led_min, led_max); | ||
| 221 | |||
| 222 | uint8_t val = led_matrix_eeconfig.val; | ||
| 223 | for (uint8_t i = led_min; i < led_max; i++) { | ||
| 224 | LED_MATRIX_TEST_LED_FLAGS(); | ||
| 225 | led_matrix_set_value(i, val); | ||
| 226 | } | ||
| 227 | return led_max < DRIVER_LED_TOTAL; | ||
| 228 | } | ||
| 229 | |||
| 230 | static void led_task_timers(void) { | 251 | static void led_task_timers(void) { |
| 231 | #if defined(LED_MATRIX_KEYREACTIVE_ENABLED) || LED_DISABLE_TIMEOUT > 0 | 252 | #if defined(LED_MATRIX_KEYREACTIVE_ENABLED) || LED_DISABLE_TIMEOUT > 0 |
| 232 | uint32_t deltaTime = sync_timer_elapsed32(led_timer_buffer); | 253 | uint32_t deltaTime = sync_timer_elapsed32(led_timer_buffer); |
| @@ -290,9 +311,31 @@ static void led_task_render(uint8_t effect) { | |||
| 290 | case LED_MATRIX_NONE: | 311 | case LED_MATRIX_NONE: |
| 291 | rendering = led_matrix_none(&led_effect_params); | 312 | rendering = led_matrix_none(&led_effect_params); |
| 292 | break; | 313 | break; |
| 293 | case LED_MATRIX_UNIFORM_BRIGHTNESS: | 314 | |
| 294 | rendering = led_matrix_uniform_brightness(&led_effect_params); | 315 | // --------------------------------------------- |
| 316 | // -----Begin led effect switch case macros----- | ||
| 317 | #define LED_MATRIX_EFFECT(name, ...) \ | ||
| 318 | case LED_MATRIX_##name: \ | ||
| 319 | rendering = name(&led_effect_params); \ | ||
| 320 | break; | ||
| 321 | #include "led_matrix_animations/led_matrix_effects.inc" | ||
| 322 | #undef LED_MATRIX_EFFECT | ||
| 323 | |||
| 324 | #if defined(LED_MATRIX_CUSTOM_KB) || defined(LED_MATRIX_CUSTOM_USER) | ||
| 325 | # define LED_MATRIX_EFFECT(name, ...) \ | ||
| 326 | case LED_MATRIX_CUSTOM_##name: \ | ||
| 327 | rendering = name(&led_effect_params); \ | ||
| 295 | break; | 328 | break; |
| 329 | # ifdef LED_MATRIX_CUSTOM_KB | ||
| 330 | # include "led_matrix_kb.inc" | ||
| 331 | # endif | ||
| 332 | # ifdef LED_MATRIX_CUSTOM_USER | ||
| 333 | # include "led_matrix_user.inc" | ||
| 334 | # endif | ||
| 335 | # undef LED_MATRIX_EFFECT | ||
| 336 | #endif | ||
| 337 | // -----End led effect switch case macros------- | ||
| 338 | // --------------------------------------------- | ||
| 296 | } | 339 | } |
| 297 | 340 | ||
| 298 | led_effect_params.iter++; | 341 | led_effect_params.iter++; |
