-#pragma once
#ifndef DISABLE_RGB_MATRIX_CYCLE_ALL
+RGB_MATRIX_EFFECT(CYCLE_ALL)
+#ifdef RGB_MATRIX_CUSTOM_EFFECT_IMPLS
-extern rgb_counters_t g_rgb_counters;
-extern const rgb_led g_rgb_leds[DRIVER_LED_TOTAL];
-extern rgb_config_t rgb_matrix_config;
-
-bool rgb_matrix_cycle_all(effect_params_t* params) {
- RGB_MATRIX_USE_LIMITS(led_min, led_max);
+static void CYCLE_ALL_math(HSV* hsv, uint8_t i, uint8_t time)
+{
+ hsv->h = time;
+}
- HSV hsv = { 0, rgb_matrix_config.sat, rgb_matrix_config.val };
- uint8_t time = scale16by8(g_rgb_counters.tick, rgb_matrix_config.speed / 4);
- for (uint8_t i = led_min; i < led_max; i++) {
- hsv.h = time;
- RGB rgb = hsv_to_rgb(hsv);
- rgb_matrix_set_color(i, rgb.r, rgb.g, rgb.b);
- }
- return led_max < DRIVER_LED_TOTAL;
+bool CYCLE_ALL(effect_params_t* params) {
+ return effect_runner_i(params, &CYCLE_ALL_math);
}
+#endif // RGB_MATRIX_CUSTOM_EFFECT_IMPLS
#endif // DISABLE_RGB_MATRIX_CYCLE_ALL