qmk_firmware

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

solid_reactive_wide.h (1500B)


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