~ruther/qmk_firmware

5b6faa173bef50f7aef146393a2033ed5101c842 — MichaƂ Szczepaniak 3 years ago 4d67fe6
Add customizable snake and knight animation increments (#16337)

2 files changed, 12 insertions(+), 4 deletions(-)

M quantum/rgblight/rgblight.c
M quantum/rgblight/rgblight.h
M quantum/rgblight/rgblight.c => quantum/rgblight/rgblight.c +4 -4
@@ 1273,19 1273,19 @@ void rgblight_effect_snake(animation_status_t *anim) {
    }
    rgblight_set();
    if (increment == 1) {
        if (pos - 1 < 0) {
        if (pos - RGBLIGHT_EFFECT_SNAKE_INCREMENT < 0) {
            pos = rgblight_ranges.effect_num_leds - 1;
#    if defined(RGBLIGHT_SPLIT) && !defined(RGBLIGHT_SPLIT_NO_ANIMATION_SYNC)
            anim->pos = 0;
#    endif
        } else {
            pos -= 1;
            pos -= RGBLIGHT_EFFECT_SNAKE_INCREMENT;
#    if defined(RGBLIGHT_SPLIT) && !defined(RGBLIGHT_SPLIT_NO_ANIMATION_SYNC)
            anim->pos = 1;
#    endif
        }
    } 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)
        anim->pos = pos;
#    endif


@@ 1299,7 1299,7 @@ __attribute__((weak)) const uint8_t RGBLED_KNIGHT_INTERVALS[] PROGMEM = {127, 63
void rgblight_effect_knight(animation_status_t *anim) {
    static int8_t low_bound  = 0;
    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;

#    if defined(RGBLIGHT_SPLIT) && !defined(RGBLIGHT_SPLIT_NO_ANIMATION_SYNC)

M quantum/rgblight/rgblight.h => quantum/rgblight/rgblight.h +8 -0
@@ 126,10 126,18 @@ enum RGBLIGHT_EFFECT_MODE {
#    define RGBLIGHT_EFFECT_SNAKE_LENGTH 4
#endif

#ifndef RGBLIGHT_EFFECT_SNAKE_INCREMENT
#    define RGBLIGHT_EFFECT_SNAKE_INCREMENT 1
#endif

#ifndef RGBLIGHT_EFFECT_KNIGHT_LENGTH
#    define RGBLIGHT_EFFECT_KNIGHT_LENGTH 3
#endif

#ifndef RGBLIGHT_EFFECT_KNIGHT_INCREMENT
#    define RGBLIGHT_EFFECT_KNIGHT_INCREMENT 1
#endif

#ifndef RGBLIGHT_EFFECT_KNIGHT_OFFSET
#    define RGBLIGHT_EFFECT_KNIGHT_OFFSET 0
#endif