logo

qmk_firmware

custom branch of QMK firmware git clone https://anongit.hacktivis.me/git/qmk_firmware.git

starlight_smooth_anim.h (782B)


  1. // Copyright 2022 @art-was-here
  2. // SPDX-License-Identifier: GPL-2.0+
  3. #ifdef ENABLE_RGB_MATRIX_STARLIGHT_SMOOTH
  4. RGB_MATRIX_EFFECT(STARLIGHT_SMOOTH)
  5. # ifdef RGB_MATRIX_CUSTOM_EFFECT_IMPLS
  6. static uint8_t phase_offsets[RGB_MATRIX_LED_COUNT];
  7. hsv_t STARLIGHT_SMOOTH_math(hsv_t hsv, uint8_t i, uint8_t time) {
  8. if (phase_offsets[i] == 0) {
  9. phase_offsets[i] = rand() % 255;
  10. }
  11. hsv.v = scale8(abs8(sin8((time + phase_offsets[i]) / 2) - 128) * 2, hsv.v);
  12. return hsv;
  13. }
  14. bool STARLIGHT_SMOOTH(effect_params_t* params) {
  15. if (params->init) {
  16. memset(phase_offsets, 0, sizeof(phase_offsets));
  17. }
  18. return effect_runner_i(params, &STARLIGHT_SMOOTH_math);
  19. }
  20. # endif // RGB_MATRIX_CUSTOM_EFFECT_IMPLS
  21. #endif // ENABLE_RGB_MATRIX_STARLIGHT_SMOOTH