|
|
@ -1,51 +0,0 @@ |
|
|
|
// !!! DO NOT ADD #pragma once !!! // |
|
|
|
|
|
|
|
// Step 1. |
|
|
|
// Declare custom effects using the RGB_MATRIX_EFFECT macro |
|
|
|
// (note the lack of semicolon after the macro!) |
|
|
|
|
|
|
|
RGB_MATRIX_EFFECT(turn_off_rgb) |
|
|
|
RGB_MATRIX_EFFECT(kb_reset_rgb) |
|
|
|
|
|
|
|
// Step 2. |
|
|
|
// Define effects inside the `RGB_MATRIX_CUSTOM_EFFECT_IMPLS` ifdef block |
|
|
|
|
|
|
|
#ifdef RGB_MATRIX_CUSTOM_EFFECT_IMPLS |
|
|
|
|
|
|
|
// e.g: A simple effect, self-contained within a single method |
|
|
|
static bool turn_off_rgb(effect_params_t *params) { |
|
|
|
RGB_MATRIX_USE_LIMITS(led_min, led_max); |
|
|
|
for (uint8_t i = led_min; i < led_max; i++) { |
|
|
|
rgb_matrix_set_color(i, 0x00, 0x00, 0x00); |
|
|
|
} |
|
|
|
return rgb_matrix_check_finished_leds(led_max); |
|
|
|
} |
|
|
|
|
|
|
|
// e.g: A more complex effect, relying on external methods and state, with |
|
|
|
// dedicated init and run methods |
|
|
|
static uint8_t some_global_state; |
|
|
|
static void kb_reset_rgb_init(effect_params_t* params) { |
|
|
|
some_global_state = 0; |
|
|
|
} |
|
|
|
static bool kb_reset_rgb_run(effect_params_t* params) { |
|
|
|
RGB_MATRIX_USE_LIMITS(led_min, led_max); |
|
|
|
some_global_state++; |
|
|
|
if(some_global_state&0x01){ |
|
|
|
for (uint8_t i = led_min; i < led_max; i++) |
|
|
|
rgb_matrix_set_color(i, 0, 0, 0); |
|
|
|
} |
|
|
|
else{ |
|
|
|
for (uint8_t i = led_min; i < led_max; i++) |
|
|
|
rgb_matrix_set_color(i, 0xc0, 0xc0, 0xc0); |
|
|
|
} |
|
|
|
if(some_global_state>=7) |
|
|
|
rgb_matrix_init(); |
|
|
|
return rgb_matrix_check_finished_leds(led_max); |
|
|
|
} |
|
|
|
|
|
|
|
static bool kb_reset_rgb(effect_params_t* params) { |
|
|
|
if (params->init) kb_reset_rgb_init(params); |
|
|
|
return kb_reset_rgb_run(params); |
|
|
|
} |
|
|
|
|
|
|
|
#endif // RGB_MATRIX_CUSTOM_EFFECT_IMPLS |