LED Matrix: Effects! (#12651)
This commit is contained in:
parent
f41fc6b70c
commit
3edc43964d
26 changed files with 554 additions and 16 deletions
|
@ -27,6 +27,38 @@
|
|||
|
||||
#include <lib/lib8tion/lib8tion.h>
|
||||
|
||||
#ifndef LED_MATRIX_CENTER
|
||||
const point_t k_led_matrix_center = {112, 32};
|
||||
#else
|
||||
const point_t k_led_matrix_center = LED_MATRIX_CENTER;
|
||||
#endif
|
||||
|
||||
// Generic effect runners
|
||||
#include "led_matrix_runners/effect_runner_dx_dy_dist.h"
|
||||
#include "led_matrix_runners/effect_runner_dx_dy.h"
|
||||
#include "led_matrix_runners/effect_runner_i.h"
|
||||
#include "led_matrix_runners/effect_runner_sin_cos_i.h"
|
||||
#include "led_matrix_runners/effect_runner_reactive.h"
|
||||
#include "led_matrix_runners/effect_runner_reactive_splash.h"
|
||||
|
||||
// ------------------------------------------
|
||||
// -----Begin led effect includes macros-----
|
||||
#define LED_MATRIX_EFFECT(name)
|
||||
#define LED_MATRIX_CUSTOM_EFFECT_IMPLS
|
||||
|
||||
#include "led_matrix_animations/led_matrix_effects.inc"
|
||||
#ifdef LED_MATRIX_CUSTOM_KB
|
||||
# include "led_matrix_kb.inc"
|
||||
#endif
|
||||
#ifdef LED_MATRIX_CUSTOM_USER
|
||||
# include "led_matrix_user.inc"
|
||||
#endif
|
||||
|
||||
#undef LED_MATRIX_CUSTOM_EFFECT_IMPLS
|
||||
#undef LED_MATRIX_EFFECT
|
||||
// -----End led effect includes macros-------
|
||||
// ------------------------------------------
|
||||
|
||||
#if defined(LED_DISABLE_AFTER_TIMEOUT) && !defined(LED_DISABLE_TIMEOUT)
|
||||
# define LED_DISABLE_TIMEOUT (LED_DISABLE_AFTER_TIMEOUT * 1200UL)
|
||||
#endif
|
||||
|
@ -53,7 +85,7 @@
|
|||
#endif
|
||||
|
||||
#if !defined(LED_MATRIX_STARTUP_MODE)
|
||||
# define LED_MATRIX_STARTUP_MODE LED_MATRIX_UNIFORM_BRIGHTNESS
|
||||
# define LED_MATRIX_STARTUP_MODE LED_MATRIX_SOLID
|
||||
#endif
|
||||
|
||||
#if !defined(LED_MATRIX_STARTUP_VAL)
|
||||
|
@ -216,17 +248,6 @@ static bool led_matrix_none(effect_params_t *params) {
|
|||
return false;
|
||||
}
|
||||
|
||||
static bool led_matrix_uniform_brightness(effect_params_t *params) {
|
||||
LED_MATRIX_USE_LIMITS(led_min, led_max);
|
||||
|
||||
uint8_t val = led_matrix_eeconfig.val;
|
||||
for (uint8_t i = led_min; i < led_max; i++) {
|
||||
LED_MATRIX_TEST_LED_FLAGS();
|
||||
led_matrix_set_value(i, val);
|
||||
}
|
||||
return led_max < DRIVER_LED_TOTAL;
|
||||
}
|
||||
|
||||
static void led_task_timers(void) {
|
||||
#if defined(LED_MATRIX_KEYREACTIVE_ENABLED) || LED_DISABLE_TIMEOUT > 0
|
||||
uint32_t deltaTime = sync_timer_elapsed32(led_timer_buffer);
|
||||
|
@ -290,9 +311,31 @@ static void led_task_render(uint8_t effect) {
|
|||
case LED_MATRIX_NONE:
|
||||
rendering = led_matrix_none(&led_effect_params);
|
||||
break;
|
||||
case LED_MATRIX_UNIFORM_BRIGHTNESS:
|
||||
rendering = led_matrix_uniform_brightness(&led_effect_params);
|
||||
|
||||
// ---------------------------------------------
|
||||
// -----Begin led effect switch case macros-----
|
||||
#define LED_MATRIX_EFFECT(name, ...) \
|
||||
case LED_MATRIX_##name: \
|
||||
rendering = name(&led_effect_params); \
|
||||
break;
|
||||
#include "led_matrix_animations/led_matrix_effects.inc"
|
||||
#undef LED_MATRIX_EFFECT
|
||||
|
||||
#if defined(LED_MATRIX_CUSTOM_KB) || defined(LED_MATRIX_CUSTOM_USER)
|
||||
# define LED_MATRIX_EFFECT(name, ...) \
|
||||
case LED_MATRIX_CUSTOM_##name: \
|
||||
rendering = name(&led_effect_params); \
|
||||
break;
|
||||
# ifdef LED_MATRIX_CUSTOM_KB
|
||||
# include "led_matrix_kb.inc"
|
||||
# endif
|
||||
# ifdef LED_MATRIX_CUSTOM_USER
|
||||
# include "led_matrix_user.inc"
|
||||
# endif
|
||||
# undef LED_MATRIX_EFFECT
|
||||
#endif
|
||||
// -----End led effect switch case macros-------
|
||||
// ---------------------------------------------
|
||||
}
|
||||
|
||||
led_effect_params.iter++;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue