aboutsummaryrefslogtreecommitdiff
path: root/quantum/led_matrix.c
diff options
context:
space:
mode:
Diffstat (limited to 'quantum/led_matrix.c')
-rw-r--r--quantum/led_matrix.c71
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
31const point_t k_led_matrix_center = {112, 32};
32#else
33const 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
219static 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
230static void led_task_timers(void) { 251static 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++;