Add customizable snake and knight animation increments (#16337)

This commit is contained in:
Michał Szczepaniak 2022-04-18 11:07:36 +02:00 committed by GitHub
parent 4d67fe66a3
commit 5b6faa173b
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 12 additions and 4 deletions

View file

@ -1273,19 +1273,19 @@ void rgblight_effect_snake(animation_status_t *anim) {
} }
rgblight_set(); rgblight_set();
if (increment == 1) { if (increment == 1) {
if (pos - 1 < 0) { if (pos - RGBLIGHT_EFFECT_SNAKE_INCREMENT < 0) {
pos = rgblight_ranges.effect_num_leds - 1; pos = rgblight_ranges.effect_num_leds - 1;
# if defined(RGBLIGHT_SPLIT) && !defined(RGBLIGHT_SPLIT_NO_ANIMATION_SYNC) # if defined(RGBLIGHT_SPLIT) && !defined(RGBLIGHT_SPLIT_NO_ANIMATION_SYNC)
anim->pos = 0; anim->pos = 0;
# endif # endif
} else { } else {
pos -= 1; pos -= RGBLIGHT_EFFECT_SNAKE_INCREMENT;
# if defined(RGBLIGHT_SPLIT) && !defined(RGBLIGHT_SPLIT_NO_ANIMATION_SYNC) # if defined(RGBLIGHT_SPLIT) && !defined(RGBLIGHT_SPLIT_NO_ANIMATION_SYNC)
anim->pos = 1; anim->pos = 1;
# endif # endif
} }
} else { } else {
pos = (pos + 1) % rgblight_ranges.effect_num_leds; pos = (pos + RGBLIGHT_EFFECT_SNAKE_INCREMENT) % rgblight_ranges.effect_num_leds;
# if defined(RGBLIGHT_SPLIT) && !defined(RGBLIGHT_SPLIT_NO_ANIMATION_SYNC) # if defined(RGBLIGHT_SPLIT) && !defined(RGBLIGHT_SPLIT_NO_ANIMATION_SYNC)
anim->pos = pos; anim->pos = pos;
# endif # endif
@ -1299,7 +1299,7 @@ __attribute__((weak)) const uint8_t RGBLED_KNIGHT_INTERVALS[] PROGMEM = {127, 63
void rgblight_effect_knight(animation_status_t *anim) { void rgblight_effect_knight(animation_status_t *anim) {
static int8_t low_bound = 0; static int8_t low_bound = 0;
static int8_t high_bound = RGBLIGHT_EFFECT_KNIGHT_LENGTH - 1; static int8_t high_bound = RGBLIGHT_EFFECT_KNIGHT_LENGTH - 1;
static int8_t increment = 1; static int8_t increment = RGBLIGHT_EFFECT_KNIGHT_INCREMENT;
uint8_t i, cur; uint8_t i, cur;
# if defined(RGBLIGHT_SPLIT) && !defined(RGBLIGHT_SPLIT_NO_ANIMATION_SYNC) # if defined(RGBLIGHT_SPLIT) && !defined(RGBLIGHT_SPLIT_NO_ANIMATION_SYNC)

View file

@ -126,10 +126,18 @@ enum RGBLIGHT_EFFECT_MODE {
# define RGBLIGHT_EFFECT_SNAKE_LENGTH 4 # define RGBLIGHT_EFFECT_SNAKE_LENGTH 4
#endif #endif
#ifndef RGBLIGHT_EFFECT_SNAKE_INCREMENT
# define RGBLIGHT_EFFECT_SNAKE_INCREMENT 1
#endif
#ifndef RGBLIGHT_EFFECT_KNIGHT_LENGTH #ifndef RGBLIGHT_EFFECT_KNIGHT_LENGTH
# define RGBLIGHT_EFFECT_KNIGHT_LENGTH 3 # define RGBLIGHT_EFFECT_KNIGHT_LENGTH 3
#endif #endif
#ifndef RGBLIGHT_EFFECT_KNIGHT_INCREMENT
# define RGBLIGHT_EFFECT_KNIGHT_INCREMENT 1
#endif
#ifndef RGBLIGHT_EFFECT_KNIGHT_OFFSET #ifndef RGBLIGHT_EFFECT_KNIGHT_OFFSET
# define RGBLIGHT_EFFECT_KNIGHT_OFFSET 0 # define RGBLIGHT_EFFECT_KNIGHT_OFFSET 0
#endif #endif