qmk_firmware

QMK firmware for my keyboards (Corne, Sweep Ferris) and trackball (Ploopy Adept)
Log | Files | Refs | Submodules | LICENSE

solid_reactive_cross.h (1739B)


      1 #ifdef RGB_MATRIX_KEYREACTIVE_ENABLED
      2 #    if defined(ENABLE_RGB_MATRIX_SOLID_REACTIVE_CROSS) || defined(ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTICROSS)
      3 
      4 #        ifdef ENABLE_RGB_MATRIX_SOLID_REACTIVE_CROSS
      5 RGB_MATRIX_EFFECT(SOLID_REACTIVE_CROSS)
      6 #        endif
      7 
      8 #        ifdef ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTICROSS
      9 RGB_MATRIX_EFFECT(SOLID_REACTIVE_MULTICROSS)
     10 #        endif
     11 
     12 #        ifdef RGB_MATRIX_CUSTOM_EFFECT_IMPLS
     13 
     14 static hsv_t SOLID_REACTIVE_CROSS_math(hsv_t hsv, int16_t dx, int16_t dy, uint8_t dist, uint16_t tick) {
     15     uint16_t effect = tick + dist;
     16     dx              = dx < 0 ? dx * -1 : dx;
     17     dy              = dy < 0 ? dy * -1 : dy;
     18     dx              = dx * 16 > 255 ? 255 : dx * 16;
     19     dy              = dy * 16 > 255 ? 255 : dy * 16;
     20     effect += dx > dy ? dy : dx;
     21     if (effect > 255) effect = 255;
     22 #            ifdef RGB_MATRIX_SOLID_REACTIVE_GRADIENT_MODE
     23     hsv.h = scale16by8(g_rgb_timer, qadd8(rgb_matrix_config.speed, 8) >> 4);
     24 #            endif
     25     hsv.v = qadd8(hsv.v, 255 - effect);
     26     return hsv;
     27 }
     28 
     29 #            ifdef ENABLE_RGB_MATRIX_SOLID_REACTIVE_CROSS
     30 bool SOLID_REACTIVE_CROSS(effect_params_t* params) {
     31     return effect_runner_reactive_splash(qsub8(g_last_hit_tracker.count, 1), params, &SOLID_REACTIVE_CROSS_math);
     32 }
     33 #            endif
     34 
     35 #            ifdef ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTICROSS
     36 bool SOLID_REACTIVE_MULTICROSS(effect_params_t* params) {
     37     return effect_runner_reactive_splash(0, params, &SOLID_REACTIVE_CROSS_math);
     38 }
     39 #            endif
     40 
     41 #        endif // RGB_MATRIX_CUSTOM_EFFECT_IMPLS
     42 #    endif     // !defined(ENABLE_RGB_MATRIX_SOLID_REACTIVE_CROSS) || defined(ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTICROSS)
     43 #endif         // RGB_MATRIX_KEYREACTIVE_ENABLED