Merge remote-tracking branch 'qmk/master' into merge-2021-12-11
This commit is contained in:
@ -20,8 +20,8 @@ bool ALPHAS_MODS(effect_params_t* params) {
|
||||
rgb_matrix_set_color(i, rgb1.r, rgb1.g, rgb1.b);
|
||||
}
|
||||
}
|
||||
return led_max < DRIVER_LED_TOTAL;
|
||||
return rgb_matrix_check_finished_leds(led_max);
|
||||
}
|
||||
|
||||
# endif // RGB_MATRIX_CUSTOM_EFFECT_IMPLS
|
||||
#endif // DISABLE_RGB_MATRIX_ALPHAS_MODS
|
||||
#endif // ENABLE_RGB_MATRIX_ALPHAS_MODS
|
||||
|
@ -14,8 +14,8 @@ bool BREATHING(effect_params_t* params) {
|
||||
RGB_MATRIX_TEST_LED_FLAGS();
|
||||
rgb_matrix_set_color(i, rgb.r, rgb.g, rgb.b);
|
||||
}
|
||||
return led_max < DRIVER_LED_TOTAL;
|
||||
return rgb_matrix_check_finished_leds(led_max);
|
||||
}
|
||||
|
||||
# endif // RGB_MATRIX_CUSTOM_EFFECT_IMPLS
|
||||
#endif // DISABLE_RGB_MATRIX_BREATHING
|
||||
#endif // ENABLE_RGB_MATRIX_BREATHING
|
||||
|
@ -11,4 +11,4 @@ static HSV BAND_PINWHEEL_SAT_math(HSV hsv, int16_t dx, int16_t dy, uint8_t time)
|
||||
bool BAND_PINWHEEL_SAT(effect_params_t* params) { return effect_runner_dx_dy(params, &BAND_PINWHEEL_SAT_math); }
|
||||
|
||||
# endif // RGB_MATRIX_CUSTOM_EFFECT_IMPLS
|
||||
#endif // DISABLE_RGB_MATRIX_BAND_PINWHEEL_SAT
|
||||
#endif // ENABLE_RGB_MATRIX_BAND_PINWHEEL_SAT
|
||||
|
@ -11,4 +11,4 @@ static HSV BAND_PINWHEEL_VAL_math(HSV hsv, int16_t dx, int16_t dy, uint8_t time)
|
||||
bool BAND_PINWHEEL_VAL(effect_params_t* params) { return effect_runner_dx_dy(params, &BAND_PINWHEEL_VAL_math); }
|
||||
|
||||
# endif // RGB_MATRIX_CUSTOM_EFFECT_IMPLS
|
||||
#endif // DISABLE_RGB_MATRIX_BAND_PINWHEEL_VAL
|
||||
#endif // ENABLE_RGB_MATRIX_BAND_PINWHEEL_VAL
|
||||
|
@ -12,4 +12,4 @@ static HSV BAND_SAT_math(HSV hsv, uint8_t i, uint8_t time) {
|
||||
bool BAND_SAT(effect_params_t* params) { return effect_runner_i(params, &BAND_SAT_math); }
|
||||
|
||||
# endif // RGB_MATRIX_CUSTOM_EFFECT_IMPLS
|
||||
#endif // DISABLE_RGB_MATRIX_BAND_SAT
|
||||
#endif // ENABLE_RGB_MATRIX_BAND_SAT
|
||||
|
@ -11,4 +11,4 @@ static HSV BAND_SPIRAL_SAT_math(HSV hsv, int16_t dx, int16_t dy, uint8_t dist, u
|
||||
bool BAND_SPIRAL_SAT(effect_params_t* params) { return effect_runner_dx_dy_dist(params, &BAND_SPIRAL_SAT_math); }
|
||||
|
||||
# endif // RGB_MATRIX_CUSTOM_EFFECT_IMPLS
|
||||
#endif // DISABLE_RGB_MATRIX_BAND_SPIRAL_SAT
|
||||
#endif // ENABLE_RGB_MATRIX_BAND_SPIRAL_SAT
|
||||
|
@ -11,4 +11,4 @@ static HSV BAND_SPIRAL_VAL_math(HSV hsv, int16_t dx, int16_t dy, uint8_t dist, u
|
||||
bool BAND_SPIRAL_VAL(effect_params_t* params) { return effect_runner_dx_dy_dist(params, &BAND_SPIRAL_VAL_math); }
|
||||
|
||||
# endif // RGB_MATRIX_CUSTOM_EFFECT_IMPLS
|
||||
#endif // DISABLE_RGB_MATRIX_BAND_SPIRAL_VAL
|
||||
#endif // ENABLE_RGB_MATRIX_BAND_SPIRAL_VAL
|
||||
|
@ -12,4 +12,4 @@ static HSV BAND_VAL_math(HSV hsv, uint8_t i, uint8_t time) {
|
||||
bool BAND_VAL(effect_params_t* params) { return effect_runner_i(params, &BAND_VAL_math); }
|
||||
|
||||
# endif // RGB_MATRIX_CUSTOM_EFFECT_IMPLS
|
||||
#endif // DISABLE_RGB_MATRIX_BAND_VAL
|
||||
#endif // ENABLE_RGB_MATRIX_BAND_VAL
|
||||
|
@ -11,4 +11,4 @@ static HSV CYCLE_ALL_math(HSV hsv, uint8_t i, uint8_t time) {
|
||||
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
|
||||
#endif // ENABLE_RGB_MATRIX_CYCLE_ALL
|
||||
|
@ -11,4 +11,4 @@ static HSV CYCLE_LEFT_RIGHT_math(HSV hsv, uint8_t i, uint8_t time) {
|
||||
bool CYCLE_LEFT_RIGHT(effect_params_t* params) { return effect_runner_i(params, &CYCLE_LEFT_RIGHT_math); }
|
||||
|
||||
# endif // RGB_MATRIX_CUSTOM_EFFECT_IMPLS
|
||||
#endif // DISABLE_RGB_MATRIX_CYCLE_LEFT_RIGHT
|
||||
#endif // ENABLE_RGB_MATRIX_CYCLE_LEFT_RIGHT
|
||||
|
@ -11,4 +11,4 @@ static HSV CYCLE_OUT_IN_math(HSV hsv, int16_t dx, int16_t dy, uint8_t dist, uint
|
||||
bool CYCLE_OUT_IN(effect_params_t* params) { return effect_runner_dx_dy_dist(params, &CYCLE_OUT_IN_math); }
|
||||
|
||||
# endif // RGB_MATRIX_CUSTOM_EFFECT_IMPLS
|
||||
#endif // DISABLE_RGB_MATRIX_CYCLE_OUT_IN
|
||||
#endif // ENABLE_RGB_MATRIX_CYCLE_OUT_IN
|
||||
|
@ -13,4 +13,4 @@ static HSV CYCLE_OUT_IN_DUAL_math(HSV hsv, int16_t dx, int16_t dy, uint8_t time)
|
||||
bool CYCLE_OUT_IN_DUAL(effect_params_t* params) { return effect_runner_dx_dy(params, &CYCLE_OUT_IN_DUAL_math); }
|
||||
|
||||
# endif // RGB_MATRIX_CUSTOM_EFFECT_IMPLS
|
||||
#endif // DISABLE_RGB_MATRIX_CYCLE_OUT_IN_DUAL
|
||||
#endif // ENABLE_RGB_MATRIX_CYCLE_OUT_IN_DUAL
|
||||
|
@ -11,4 +11,4 @@ static HSV CYCLE_PINWHEEL_math(HSV hsv, int16_t dx, int16_t dy, uint8_t time) {
|
||||
bool CYCLE_PINWHEEL(effect_params_t* params) { return effect_runner_dx_dy(params, &CYCLE_PINWHEEL_math); }
|
||||
|
||||
# endif // RGB_MATRIX_CUSTOM_EFFECT_IMPLS
|
||||
#endif // DISABLE_RGB_MATRIX_CYCLE_PINWHEEL
|
||||
#endif // ENABLE_RGB_MATRIX_CYCLE_PINWHEEL
|
||||
|
@ -11,4 +11,4 @@ static HSV CYCLE_SPIRAL_math(HSV hsv, int16_t dx, int16_t dy, uint8_t dist, uint
|
||||
bool CYCLE_SPIRAL(effect_params_t* params) { return effect_runner_dx_dy_dist(params, &CYCLE_SPIRAL_math); }
|
||||
|
||||
# endif // RGB_MATRIX_CUSTOM_EFFECT_IMPLS
|
||||
#endif // DISABLE_RGB_MATRIX_CYCLE_SPIRAL
|
||||
#endif // ENABLE_RGB_MATRIX_CYCLE_SPIRAL
|
||||
|
@ -11,4 +11,4 @@ static HSV CYCLE_UP_DOWN_math(HSV hsv, uint8_t i, uint8_t time) {
|
||||
bool CYCLE_UP_DOWN(effect_params_t* params) { return effect_runner_i(params, &CYCLE_UP_DOWN_math); }
|
||||
|
||||
# endif // RGB_MATRIX_CUSTOM_EFFECT_IMPLS
|
||||
#endif // DISABLE_RGB_MATRIX_CYCLE_UP_DOWN
|
||||
#endif // ENABLE_RGB_MATRIX_CYCLE_UP_DOWN
|
||||
|
@ -1,4 +1,4 @@
|
||||
#if defined(RGB_MATRIX_FRAMEBUFFER_EFFECTS) && !defined(DISABLE_RGB_MATRIX_DIGITAL_RAIN)
|
||||
#if defined(RGB_MATRIX_FRAMEBUFFER_EFFECTS) && defined(ENABLE_RGB_MATRIX_DIGITAL_RAIN)
|
||||
#define RGB_MATRIX_EFFECT_DIGITAL_RAIN
|
||||
RGB_MATRIX_EFFECT(DIGITAL_RAIN)
|
||||
# ifdef RGB_MATRIX_CUSTOM_EFFECT_IMPLS
|
||||
@ -73,4 +73,4 @@ bool DIGITAL_RAIN(effect_params_t* params) {
|
||||
}
|
||||
|
||||
# endif // RGB_MATRIX_CUSTOM_EFFECT_IMPLS
|
||||
#endif // defined(RGB_MATRIX_FRAMEBUFFER_EFFECTS) && !defined(DISABLE_RGB_MATRIX_DIGITAL_RAIN)
|
||||
#endif // defined(RGB_MATRIX_FRAMEBUFFER_EFFECTS) && !defined(ENABLE_RGB_MATRIX_DIGITAL_RAIN)
|
||||
|
@ -11,4 +11,4 @@ static HSV DUAL_BEACON_math(HSV hsv, int8_t sin, int8_t cos, uint8_t i, uint8_t
|
||||
bool DUAL_BEACON(effect_params_t* params) { return effect_runner_sin_cos_i(params, &DUAL_BEACON_math); }
|
||||
|
||||
# endif // RGB_MATRIX_CUSTOM_EFFECT_IMPLS
|
||||
#endif // DISABLE_RGB_MATRIX_DUAL_BEACON
|
||||
#endif // ENABLE_RGB_MATRIX_DUAL_BEACON
|
||||
|
@ -16,8 +16,8 @@ bool GRADIENT_LEFT_RIGHT(effect_params_t* params) {
|
||||
RGB rgb = rgb_matrix_hsv_to_rgb(hsv);
|
||||
rgb_matrix_set_color(i, rgb.r, rgb.g, rgb.b);
|
||||
}
|
||||
return led_max < DRIVER_LED_TOTAL;
|
||||
return rgb_matrix_check_finished_leds(led_max);
|
||||
}
|
||||
|
||||
# endif // RGB_MATRIX_CUSTOM_EFFECT_IMPLS
|
||||
#endif // DISABLE_RGB_MATRIX_GRADIENT_LEFT_RIGHT
|
||||
#endif // ENABLE_RGB_MATRIX_GRADIENT_LEFT_RIGHT
|
||||
|
@ -16,8 +16,8 @@ bool GRADIENT_UP_DOWN(effect_params_t* params) {
|
||||
RGB rgb = rgb_matrix_hsv_to_rgb(hsv);
|
||||
rgb_matrix_set_color(i, rgb.r, rgb.g, rgb.b);
|
||||
}
|
||||
return led_max < DRIVER_LED_TOTAL;
|
||||
return rgb_matrix_check_finished_leds(led_max);
|
||||
}
|
||||
|
||||
# endif // RGB_MATRIX_CUSTOM_EFFECT_IMPLS
|
||||
#endif // DISABLE_RGB_MATRIX_GRADIENT_UP_DOWN
|
||||
#endif // ENABLE_RGB_MATRIX_GRADIENT_UP_DOWN
|
||||
|
@ -16,7 +16,7 @@ bool HUE_BREATHING(effect_params_t* params) {
|
||||
RGB_MATRIX_TEST_LED_FLAGS();
|
||||
rgb_matrix_set_color(i, rgb.r, rgb.g, rgb.b);
|
||||
}
|
||||
return led_max < DRIVER_LED_TOTAL;
|
||||
return rgb_matrix_check_finished_leds(led_max);
|
||||
}
|
||||
|
||||
# endif // RGB_MATRIX_CUSTOM_EFFECT_IMPLS
|
||||
|
@ -23,8 +23,8 @@ bool JELLYBEAN_RAINDROPS(effect_params_t* params) {
|
||||
for (int i = led_min; i < led_max; i++) {
|
||||
jellybean_raindrops_set_color(i, params);
|
||||
}
|
||||
return led_max < DRIVER_LED_TOTAL;
|
||||
return rgb_matrix_check_finished_leds(led_max);
|
||||
}
|
||||
|
||||
# endif // RGB_MATRIX_CUSTOM_EFFECT_IMPLS
|
||||
#endif // DISABLE_RGB_MATRIX_JELLYBEAN_RAINDROPS
|
||||
#endif // ENABLE_RGB_MATRIX_JELLYBEAN_RAINDROPS
|
||||
|
74
quantum/rgb_matrix/animations/pixel_fractal_anim.h
Normal file
74
quantum/rgb_matrix/animations/pixel_fractal_anim.h
Normal file
@ -0,0 +1,74 @@
|
||||
/* Copyright (C) 2021 @filterpaper
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 2 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
// Inspired from 4x12 fractal created by @schwarzgrau
|
||||
|
||||
#ifdef ENABLE_RGB_MATRIX_PIXEL_FRACTAL
|
||||
RGB_MATRIX_EFFECT(PIXEL_FRACTAL)
|
||||
# ifdef RGB_MATRIX_CUSTOM_EFFECT_IMPLS
|
||||
|
||||
static bool PIXEL_FRACTAL(effect_params_t* params) {
|
||||
# define MID_COL MATRIX_COLS / 2
|
||||
static bool led[MATRIX_ROWS][MATRIX_COLS];
|
||||
|
||||
static uint32_t wait_timer = 0;
|
||||
if (wait_timer > g_rgb_timer) {
|
||||
return false;
|
||||
}
|
||||
|
||||
inline uint32_t interval(void) { return 3000 / scale16by8(qadd8(rgb_matrix_config.speed, 16), 16); }
|
||||
|
||||
RGB rgb = rgb_matrix_hsv_to_rgb(rgb_matrix_config.hsv);
|
||||
for (uint8_t h = 0; h < MATRIX_ROWS; ++h) {
|
||||
for (uint8_t l = 0; l < MID_COL - 1; ++l) { // Light and move left columns outwards
|
||||
if (led[h][l]) {
|
||||
rgb_matrix_set_color(g_led_config.matrix_co[h][l], rgb.r, rgb.g, rgb.b);
|
||||
} else {
|
||||
rgb_matrix_set_color(g_led_config.matrix_co[h][l], 0, 0, 0);
|
||||
}
|
||||
led[h][l] = led[h][l + 1];
|
||||
}
|
||||
|
||||
for (uint8_t r = MATRIX_COLS - 1; r > MID_COL; --r) { // Light and move right columns outwards
|
||||
if (led[h][r]) {
|
||||
rgb_matrix_set_color(g_led_config.matrix_co[h][r], rgb.r, rgb.g, rgb.b);
|
||||
} else {
|
||||
rgb_matrix_set_color(g_led_config.matrix_co[h][r], 0, 0, 0);
|
||||
}
|
||||
led[h][r] = led[h][r - 1];
|
||||
}
|
||||
|
||||
// Light both middle columns
|
||||
if (led[h][MID_COL]) {
|
||||
rgb_matrix_set_color(g_led_config.matrix_co[h][MID_COL], rgb.r, rgb.g, rgb.b);
|
||||
} else {
|
||||
rgb_matrix_set_color(g_led_config.matrix_co[h][MID_COL], 0, 0, 0);
|
||||
}
|
||||
if (led[h][MID_COL - 1]) {
|
||||
rgb_matrix_set_color(g_led_config.matrix_co[h][MID_COL - 1], rgb.r, rgb.g, rgb.b);
|
||||
} else {
|
||||
rgb_matrix_set_color(g_led_config.matrix_co[h][MID_COL - 1], 0, 0, 0);
|
||||
}
|
||||
|
||||
// Generate new random fractal columns
|
||||
led[h][MID_COL] = led[h][MID_COL - 1] = (random8() & 3) ? false : true;
|
||||
}
|
||||
|
||||
wait_timer = g_rgb_timer + interval();
|
||||
return false;
|
||||
}
|
||||
# endif // RGB_MATRIX_CUSTOM_EFFECT_IMPLS
|
||||
#endif // ENABLE_RGB_MATRIX_PIXEL_FRACTAL
|
48
quantum/rgb_matrix/animations/pixel_rain_anim.h
Normal file
48
quantum/rgb_matrix/animations/pixel_rain_anim.h
Normal file
@ -0,0 +1,48 @@
|
||||
/* Copyright (C) 2021 @filterpaper
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 2 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#ifdef ENABLE_RGB_MATRIX_PIXEL_RAIN
|
||||
RGB_MATRIX_EFFECT(PIXEL_RAIN)
|
||||
# ifdef RGB_MATRIX_CUSTOM_EFFECT_IMPLS
|
||||
|
||||
static bool PIXEL_RAIN(effect_params_t* params) {
|
||||
static uint32_t wait_timer = 0;
|
||||
if (wait_timer > g_rgb_timer) {
|
||||
return false;
|
||||
}
|
||||
|
||||
inline uint32_t interval(void) { return 500 / scale16by8(qadd8(rgb_matrix_config.speed, 16), 16); }
|
||||
|
||||
bool rain_pixel(uint8_t i, effect_params_t * params, bool off) {
|
||||
if (!HAS_ANY_FLAGS(g_led_config.flags[i], params->flags)) {
|
||||
return true;
|
||||
}
|
||||
if (off) {
|
||||
rgb_matrix_set_color(i, 0, 0, 0);
|
||||
} else {
|
||||
HSV hsv = {random8(), qadd8(random8() >> 1, 127), rgb_matrix_config.hsv.v};
|
||||
RGB rgb = rgb_matrix_hsv_to_rgb(hsv);
|
||||
rgb_matrix_set_color(i, rgb.r, rgb.g, rgb.b);
|
||||
}
|
||||
wait_timer = g_rgb_timer + interval();
|
||||
return false;
|
||||
}
|
||||
|
||||
return rain_pixel(mod8(random8(), DRIVER_LED_TOTAL), params, random8() & 2);
|
||||
}
|
||||
|
||||
# endif // RGB_MATRIX_CUSTOM_EFFECT_IMPLS
|
||||
#endif // ENABLE_RGB_MATRIX_PIXEL_RAIN
|
@ -11,4 +11,4 @@ static HSV RAINBOW_BEACON_math(HSV hsv, int8_t sin, int8_t cos, uint8_t i, uint8
|
||||
bool RAINBOW_BEACON(effect_params_t* params) { return effect_runner_sin_cos_i(params, &RAINBOW_BEACON_math); }
|
||||
|
||||
# endif // RGB_MATRIX_CUSTOM_EFFECT_IMPLS
|
||||
#endif // DISABLE_RGB_MATRIX_RAINBOW_BEACON
|
||||
#endif // ENABLE_RGB_MATRIX_RAINBOW_BEACON
|
||||
|
@ -11,4 +11,4 @@ static HSV RAINBOW_MOVING_CHEVRON_math(HSV hsv, uint8_t i, uint8_t time) {
|
||||
bool RAINBOW_MOVING_CHEVRON(effect_params_t* params) { return effect_runner_i(params, &RAINBOW_MOVING_CHEVRON_math); }
|
||||
|
||||
# endif // RGB_MATRIX_CUSTOM_EFFECT_IMPLS
|
||||
#endif // DISABLE_RGB_MATRIX_RAINBOW_MOVING_CHEVRON
|
||||
#endif // ENABLE_RGB_MATRIX_RAINBOW_MOVING_CHEVRON
|
||||
|
@ -11,4 +11,4 @@ static HSV RAINBOW_PINWHEELS_math(HSV hsv, int8_t sin, int8_t cos, uint8_t i, ui
|
||||
bool RAINBOW_PINWHEELS(effect_params_t* params) { return effect_runner_sin_cos_i(params, &RAINBOW_PINWHEELS_math); }
|
||||
|
||||
# endif // RGB_MATRIX_CUSTOM_EFFECT_IMPLS
|
||||
#endif // DISABLE_RGB_MATRIX_RAINBOW_PINWHEELS
|
||||
#endif // ENABLE_RGB_MATRIX_RAINBOW_PINWHEELS
|
||||
|
@ -33,8 +33,8 @@ bool RAINDROPS(effect_params_t* params) {
|
||||
for (int i = led_min; i < led_max; i++) {
|
||||
raindrops_set_color(i, params);
|
||||
}
|
||||
return led_max < DRIVER_LED_TOTAL;
|
||||
return rgb_matrix_check_finished_leds(led_max);
|
||||
}
|
||||
|
||||
# endif // RGB_MATRIX_CUSTOM_EFFECT_IMPLS
|
||||
#endif // DISABLE_RGB_MATRIX_RAINDROPS
|
||||
#endif // ENABLE_RGB_MATRIX_RAINDROPS
|
||||
|
@ -26,6 +26,8 @@
|
||||
#include "hue_breathing_anim.h"
|
||||
#include "hue_pendulum_anim.h"
|
||||
#include "hue_wave_anim.h"
|
||||
#include "pixel_rain_anim.h"
|
||||
#include "pixel_fractal_anim.h"
|
||||
#include "typing_heatmap_anim.h"
|
||||
#include "digital_rain_anim.h"
|
||||
#include "solid_reactive_simple_anim.h"
|
||||
|
@ -13,5 +13,5 @@ bool effect_runner_dx_dy(effect_params_t* params, dx_dy_f effect_func) {
|
||||
RGB rgb = rgb_matrix_hsv_to_rgb(effect_func(rgb_matrix_config.hsv, dx, dy, time));
|
||||
rgb_matrix_set_color(i, rgb.r, rgb.g, rgb.b);
|
||||
}
|
||||
return led_max < DRIVER_LED_TOTAL;
|
||||
return rgb_matrix_check_finished_leds(led_max);
|
||||
}
|
||||
|
@ -14,5 +14,5 @@ bool effect_runner_dx_dy_dist(effect_params_t* params, dx_dy_dist_f effect_func)
|
||||
RGB rgb = rgb_matrix_hsv_to_rgb(effect_func(rgb_matrix_config.hsv, dx, dy, dist, time));
|
||||
rgb_matrix_set_color(i, rgb.r, rgb.g, rgb.b);
|
||||
}
|
||||
return led_max < DRIVER_LED_TOTAL;
|
||||
return rgb_matrix_check_finished_leds(led_max);
|
||||
}
|
||||
|
@ -11,5 +11,5 @@ bool effect_runner_i(effect_params_t* params, i_f effect_func) {
|
||||
RGB rgb = rgb_matrix_hsv_to_rgb(effect_func(rgb_matrix_config.hsv, i, time));
|
||||
rgb_matrix_set_color(i, rgb.r, rgb.g, rgb.b);
|
||||
}
|
||||
return led_max < DRIVER_LED_TOTAL;
|
||||
return rgb_matrix_check_finished_leds(led_max);
|
||||
}
|
||||
|
@ -23,7 +23,7 @@ bool effect_runner_reactive(effect_params_t* params, reactive_f effect_func) {
|
||||
RGB rgb = rgb_matrix_hsv_to_rgb(effect_func(rgb_matrix_config.hsv, offset));
|
||||
rgb_matrix_set_color(i, rgb.r, rgb.g, rgb.b);
|
||||
}
|
||||
return led_max < DRIVER_LED_TOTAL;
|
||||
return rgb_matrix_check_finished_leds(led_max);
|
||||
}
|
||||
|
||||
#endif // RGB_MATRIX_KEYREACTIVE_ENABLED
|
||||
|
@ -23,7 +23,7 @@ bool effect_runner_reactive_splash(uint8_t start, effect_params_t* params, react
|
||||
RGB rgb = rgb_matrix_hsv_to_rgb(hsv);
|
||||
rgb_matrix_set_color(i, rgb.r, rgb.g, rgb.b);
|
||||
}
|
||||
return led_max < DRIVER_LED_TOTAL;
|
||||
return rgb_matrix_check_finished_leds(led_max);
|
||||
}
|
||||
|
||||
#endif // RGB_MATRIX_KEYREACTIVE_ENABLED
|
||||
|
@ -13,5 +13,5 @@ bool effect_runner_sin_cos_i(effect_params_t* params, sin_cos_i_f effect_func) {
|
||||
RGB rgb = rgb_matrix_hsv_to_rgb(effect_func(rgb_matrix_config.hsv, cos_value, sin_value, i, time));
|
||||
rgb_matrix_set_color(i, rgb.r, rgb.g, rgb.b);
|
||||
}
|
||||
return led_max < DRIVER_LED_TOTAL;
|
||||
return rgb_matrix_check_finished_leds(led_max);
|
||||
}
|
||||
|
@ -10,7 +10,7 @@ bool SOLID_COLOR(effect_params_t* params) {
|
||||
RGB_MATRIX_TEST_LED_FLAGS();
|
||||
rgb_matrix_set_color(i, rgb.r, rgb.g, rgb.b);
|
||||
}
|
||||
return led_max < DRIVER_LED_TOTAL;
|
||||
return rgb_matrix_check_finished_leds(led_max);
|
||||
}
|
||||
|
||||
#endif // RGB_MATRIX_CUSTOM_EFFECT_IMPLS
|
||||
|
@ -1,5 +1,5 @@
|
||||
#ifdef RGB_MATRIX_KEYREACTIVE_ENABLED
|
||||
# ifndef DISABLE_RGB_MATRIX_SOLID_REACTIVE
|
||||
# ifdef ENABLE_RGB_MATRIX_SOLID_REACTIVE
|
||||
#define RGB_MATRIX_EFFECT_SOLID_REACTIVE
|
||||
RGB_MATRIX_EFFECT(SOLID_REACTIVE)
|
||||
# ifdef RGB_MATRIX_CUSTOM_EFFECT_IMPLS
|
||||
@ -12,5 +12,5 @@ static HSV SOLID_REACTIVE_math(HSV hsv, uint16_t offset) {
|
||||
bool SOLID_REACTIVE(effect_params_t* params) { return effect_runner_reactive(params, &SOLID_REACTIVE_math); }
|
||||
|
||||
# endif // RGB_MATRIX_CUSTOM_EFFECT_IMPLS
|
||||
# endif // DISABLE_RGB_MATRIX_SOLID_REACTIVE
|
||||
# endif // ENABLE_RGB_MATRIX_SOLID_REACTIVE
|
||||
#endif // RGB_MATRIX_KEYREACTIVE_ENABLED
|
||||
|
@ -1,12 +1,12 @@
|
||||
#ifdef RGB_MATRIX_KEYREACTIVE_ENABLED
|
||||
# if !defined(DISABLE_RGB_MATRIX_SOLID_REACTIVE_CROSS) || !defined(DISABLE_RGB_MATRIX_SOLID_REACTIVE_MULTICROSS)
|
||||
# if defined(ENABLE_RGB_MATRIX_SOLID_REACTIVE_CROSS) || defined(ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTICROSS)
|
||||
|
||||
# ifndef DISABLE_RGB_MATRIX_SOLID_REACTIVE_CROSS
|
||||
# ifdef ENABLE_RGB_MATRIX_SOLID_REACTIVE_CROSS
|
||||
#define RGB_MATRIX_EFFECT_SOLID_REACTIVE_CROSS
|
||||
RGB_MATRIX_EFFECT(SOLID_REACTIVE_CROSS)
|
||||
# endif
|
||||
|
||||
# ifndef DISABLE_RGB_MATRIX_SOLID_REACTIVE_MULTICROSS
|
||||
# ifdef ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTICROSS
|
||||
#define RGB_MATRIX_EFFECT_SOLID_REACTIVE_MULTICROSS
|
||||
RGB_MATRIX_EFFECT(SOLID_REACTIVE_MULTICROSS)
|
||||
# endif
|
||||
@ -25,14 +25,14 @@ static HSV SOLID_REACTIVE_CROSS_math(HSV hsv, int16_t dx, int16_t dy, uint8_t di
|
||||
return hsv;
|
||||
}
|
||||
|
||||
# ifndef DISABLE_RGB_MATRIX_SOLID_REACTIVE_CROSS
|
||||
# ifdef ENABLE_RGB_MATRIX_SOLID_REACTIVE_CROSS
|
||||
bool SOLID_REACTIVE_CROSS(effect_params_t* params) { return effect_runner_reactive_splash(qsub8(g_last_hit_tracker.count, 1), params, &SOLID_REACTIVE_CROSS_math); }
|
||||
# endif
|
||||
|
||||
# ifndef DISABLE_RGB_MATRIX_SOLID_REACTIVE_MULTICROSS
|
||||
# ifdef ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTICROSS
|
||||
bool SOLID_REACTIVE_MULTICROSS(effect_params_t* params) { return effect_runner_reactive_splash(0, params, &SOLID_REACTIVE_CROSS_math); }
|
||||
# endif
|
||||
|
||||
# endif // RGB_MATRIX_CUSTOM_EFFECT_IMPLS
|
||||
# endif // !defined(DISABLE_RGB_MATRIX_SOLID_REACTIVE_CROSS) || !defined(DISABLE_RGB_MATRIX_SOLID_REACTIVE_MULTICROSS)
|
||||
# endif // !defined(ENABLE_RGB_MATRIX_SOLID_REACTIVE_CROSS) || defined(ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTICROSS)
|
||||
#endif // RGB_MATRIX_KEYREACTIVE_ENABLED
|
||||
|
@ -1,12 +1,12 @@
|
||||
#ifdef RGB_MATRIX_KEYREACTIVE_ENABLED
|
||||
# if !defined(DISABLE_RGB_MATRIX_SOLID_REACTIVE_NEXUS) || !defined(DISABLE_RGB_MATRIX_SOLID_REACTIVE_MULTINEXUS)
|
||||
# if defined(ENABLE_RGB_MATRIX_SOLID_REACTIVE_NEXUS) || defined(ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTINEXUS)
|
||||
|
||||
# ifndef DISABLE_RGB_MATRIX_SOLID_REACTIVE_NEXUS
|
||||
# ifdef ENABLE_RGB_MATRIX_SOLID_REACTIVE_NEXUS
|
||||
#define RGB_MATRIX_EFFECT_SOLID_REACTIVE_NEXUS
|
||||
RGB_MATRIX_EFFECT(SOLID_REACTIVE_NEXUS)
|
||||
# endif
|
||||
|
||||
# ifndef DISABLE_RGB_MATRIX_SOLID_REACTIVE_MULTINEXUS
|
||||
# ifdef ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTINEXUS
|
||||
#define RGB_MATRIX_EFFECT_SOLID_REACTIVE_MULTINEXUS
|
||||
RGB_MATRIX_EFFECT(SOLID_REACTIVE_MULTINEXUS)
|
||||
# endif
|
||||
@ -23,14 +23,14 @@ static HSV SOLID_REACTIVE_NEXUS_math(HSV hsv, int16_t dx, int16_t dy, uint8_t di
|
||||
return hsv;
|
||||
}
|
||||
|
||||
# ifndef DISABLE_RGB_MATRIX_SOLID_REACTIVE_NEXUS
|
||||
# ifdef ENABLE_RGB_MATRIX_SOLID_REACTIVE_NEXUS
|
||||
bool SOLID_REACTIVE_NEXUS(effect_params_t* params) { return effect_runner_reactive_splash(qsub8(g_last_hit_tracker.count, 1), params, &SOLID_REACTIVE_NEXUS_math); }
|
||||
# endif
|
||||
|
||||
# ifndef DISABLE_RGB_MATRIX_SOLID_REACTIVE_MULTINEXUS
|
||||
# ifdef ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTINEXUS
|
||||
bool SOLID_REACTIVE_MULTINEXUS(effect_params_t* params) { return effect_runner_reactive_splash(0, params, &SOLID_REACTIVE_NEXUS_math); }
|
||||
# endif
|
||||
|
||||
# endif // RGB_MATRIX_CUSTOM_EFFECT_IMPLS
|
||||
# endif // !defined(DISABLE_RGB_MATRIX_SOLID_REACTIVE_NEXUS) || !defined(DISABLE_RGB_MATRIX_SOLID_REACTIVE_MULTINEXUS)
|
||||
# endif // !defined(ENABLE_RGB_MATRIX_SOLID_REACTIVE_NEXUS) || !defined(ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTINEXUS)
|
||||
#endif // RGB_MATRIX_KEYREACTIVE_ENABLED
|
||||
|
@ -1,5 +1,5 @@
|
||||
#ifdef RGB_MATRIX_KEYREACTIVE_ENABLED
|
||||
# ifndef DISABLE_RGB_MATRIX_SOLID_REACTIVE_SIMPLE
|
||||
# ifdef ENABLE_RGB_MATRIX_SOLID_REACTIVE_SIMPLE
|
||||
#define RGB_MATRIX_EFFECT_SOLID_REACTIVE_SIMPLE
|
||||
RGB_MATRIX_EFFECT(SOLID_REACTIVE_SIMPLE)
|
||||
# ifdef RGB_MATRIX_CUSTOM_EFFECT_IMPLS
|
||||
@ -12,5 +12,5 @@ static HSV SOLID_REACTIVE_SIMPLE_math(HSV hsv, uint16_t offset) {
|
||||
bool SOLID_REACTIVE_SIMPLE(effect_params_t* params) { return effect_runner_reactive(params, &SOLID_REACTIVE_SIMPLE_math); }
|
||||
|
||||
# endif // RGB_MATRIX_CUSTOM_EFFECT_IMPLS
|
||||
# endif // DISABLE_RGB_MATRIX_SOLID_REACTIVE_SIMPLE
|
||||
# endif // ENABLE_RGB_MATRIX_SOLID_REACTIVE_SIMPLE
|
||||
#endif // RGB_MATRIX_KEYREACTIVE_ENABLED
|
||||
|
@ -1,12 +1,12 @@
|
||||
#ifdef RGB_MATRIX_KEYREACTIVE_ENABLED
|
||||
# if !defined(DISABLE_RGB_MATRIX_SOLID_REACTIVE_WIDE) || !defined(DISABLE_RGB_MATRIX_SOLID_REACTIVE_MULTIWIDE)
|
||||
# if defined(ENABLE_RGB_MATRIX_SOLID_REACTIVE_WIDE) || defined(ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTIWIDE)
|
||||
|
||||
# ifndef DISABLE_RGB_MATRIX_SOLID_REACTIVE_WIDE
|
||||
# ifdef ENABLE_RGB_MATRIX_SOLID_REACTIVE_WIDE
|
||||
#define RGB_MATRIX_EFFECT_SOLID_REACTIVE_WIDE
|
||||
RGB_MATRIX_EFFECT(SOLID_REACTIVE_WIDE)
|
||||
# endif
|
||||
|
||||
# ifndef DISABLE_RGB_MATRIX_SOLID_REACTIVE_MULTIWIDE
|
||||
# ifdef ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTIWIDE
|
||||
#define RGB_MATRIX_EFFECT_SOLID_REACTIVE_MULTIWIDE
|
||||
RGB_MATRIX_EFFECT(SOLID_REACTIVE_MULTIWIDE)
|
||||
# endif
|
||||
@ -20,14 +20,14 @@ static HSV SOLID_REACTIVE_WIDE_math(HSV hsv, int16_t dx, int16_t dy, uint8_t dis
|
||||
return hsv;
|
||||
}
|
||||
|
||||
# ifndef DISABLE_RGB_MATRIX_SOLID_REACTIVE_WIDE
|
||||
# ifdef ENABLE_RGB_MATRIX_SOLID_REACTIVE_WIDE
|
||||
bool SOLID_REACTIVE_WIDE(effect_params_t* params) { return effect_runner_reactive_splash(qsub8(g_last_hit_tracker.count, 1), params, &SOLID_REACTIVE_WIDE_math); }
|
||||
# endif
|
||||
|
||||
# ifndef DISABLE_RGB_MATRIX_SOLID_REACTIVE_MULTIWIDE
|
||||
# ifdef ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTIWIDE
|
||||
bool SOLID_REACTIVE_MULTIWIDE(effect_params_t* params) { return effect_runner_reactive_splash(0, params, &SOLID_REACTIVE_WIDE_math); }
|
||||
# endif
|
||||
|
||||
# endif // RGB_MATRIX_CUSTOM_EFFECT_IMPLS
|
||||
# endif // !defined(DISABLE_RGB_MATRIX_SOLID_REACTIVE_WIDE) || !defined(DISABLE_RGB_MATRIX_SOLID_REACTIVE_MULTIWIDE)
|
||||
# endif // !defined(ENABLE_RGB_MATRIX_SOLID_REACTIVE_WIDE) || !defined(ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTIWIDE)
|
||||
#endif // RGB_MATRIX_KEYREACTIVE_ENABLED
|
||||
|
@ -1,12 +1,12 @@
|
||||
#ifdef RGB_MATRIX_KEYREACTIVE_ENABLED
|
||||
# if !defined(DISABLE_RGB_MATRIX_SOLID_SPLASH) || !defined(DISABLE_RGB_MATRIX_SOLID_MULTISPLASH)
|
||||
# if defined(ENABLE_RGB_MATRIX_SOLID_SPLASH) || defined(ENABLE_RGB_MATRIX_SOLID_MULTISPLASH)
|
||||
|
||||
# ifndef DISABLE_RGB_MATRIX_SOLID_SPLASH
|
||||
# ifdef ENABLE_RGB_MATRIX_SOLID_SPLASH
|
||||
#define RGB_MATRIX_EFFECT_SOLID_SPLASH
|
||||
RGB_MATRIX_EFFECT(SOLID_SPLASH)
|
||||
# endif
|
||||
|
||||
# ifndef DISABLE_RGB_MATRIX_SOLID_MULTISPLASH
|
||||
# ifdef ENABLE_RGB_MATRIX_SOLID_MULTISPLASH
|
||||
#define RGB_MATRIX_EFFECT_SOLID_MULTISPLASH
|
||||
RGB_MATRIX_EFFECT(SOLID_MULTISPLASH)
|
||||
# endif
|
||||
@ -20,14 +20,14 @@ HSV SOLID_SPLASH_math(HSV hsv, int16_t dx, int16_t dy, uint8_t dist, uint16_t ti
|
||||
return hsv;
|
||||
}
|
||||
|
||||
# ifndef DISABLE_RGB_MATRIX_SOLID_SPLASH
|
||||
# ifdef ENABLE_RGB_MATRIX_SOLID_SPLASH
|
||||
bool SOLID_SPLASH(effect_params_t* params) { return effect_runner_reactive_splash(qsub8(g_last_hit_tracker.count, 1), params, &SOLID_SPLASH_math); }
|
||||
# endif
|
||||
|
||||
# ifndef DISABLE_RGB_MATRIX_SOLID_MULTISPLASH
|
||||
# ifdef ENABLE_RGB_MATRIX_SOLID_MULTISPLASH
|
||||
bool SOLID_MULTISPLASH(effect_params_t* params) { return effect_runner_reactive_splash(0, params, &SOLID_SPLASH_math); }
|
||||
# endif
|
||||
|
||||
# endif // RGB_MATRIX_CUSTOM_EFFECT_IMPLS
|
||||
# endif // !defined(DISABLE_RGB_MATRIX_SPLASH) && !defined(DISABLE_RGB_MATRIX_MULTISPLASH)
|
||||
# endif // !defined(ENABLE_RGB_MATRIX_SPLASH) && !defined(ENABLE_RGB_MATRIX_MULTISPLASH)
|
||||
#endif // RGB_MATRIX_KEYREACTIVE_ENABLED
|
||||
|
@ -1,12 +1,12 @@
|
||||
#ifdef RGB_MATRIX_KEYREACTIVE_ENABLED
|
||||
# if !defined(DISABLE_RGB_MATRIX_SPLASH) || !defined(DISABLE_RGB_MATRIX_MULTISPLASH)
|
||||
# if defined(ENABLE_RGB_MATRIX_SPLASH) || defined(ENABLE_RGB_MATRIX_MULTISPLASH)
|
||||
|
||||
# ifndef DISABLE_RGB_MATRIX_SPLASH
|
||||
# ifdef ENABLE_RGB_MATRIX_SPLASH
|
||||
#define RGB_MATRIX_EFFECT_SPLASH
|
||||
RGB_MATRIX_EFFECT(SPLASH)
|
||||
# endif
|
||||
|
||||
# ifndef DISABLE_RGB_MATRIX_MULTISPLASH
|
||||
# ifdef ENABLE_RGB_MATRIX_MULTISPLASH
|
||||
#define RGB_MATRIX_EFFECT_MULTISPLASH
|
||||
RGB_MATRIX_EFFECT(MULTISPLASH)
|
||||
# endif
|
||||
@ -21,14 +21,14 @@ HSV SPLASH_math(HSV hsv, int16_t dx, int16_t dy, uint8_t dist, uint16_t tick) {
|
||||
return hsv;
|
||||
}
|
||||
|
||||
# ifndef DISABLE_RGB_MATRIX_SPLASH
|
||||
# ifdef ENABLE_RGB_MATRIX_SPLASH
|
||||
bool SPLASH(effect_params_t* params) { return effect_runner_reactive_splash(qsub8(g_last_hit_tracker.count, 1), params, &SPLASH_math); }
|
||||
# endif
|
||||
|
||||
# ifndef DISABLE_RGB_MATRIX_MULTISPLASH
|
||||
# ifdef ENABLE_RGB_MATRIX_MULTISPLASH
|
||||
bool MULTISPLASH(effect_params_t* params) { return effect_runner_reactive_splash(0, params, &SPLASH_math); }
|
||||
# endif
|
||||
|
||||
# endif // RGB_MATRIX_CUSTOM_EFFECT_IMPLS
|
||||
# endif // !defined(DISABLE_RGB_MATRIX_SPLASH) || !defined(DISABLE_RGB_MATRIX_MULTISPLASH)
|
||||
# endif // !defined(ENABLE_RGB_MATRIX_SPLASH) || !defined(ENABLE_RGB_MATRIX_MULTISPLASH)
|
||||
#endif // RGB_MATRIX_KEYREACTIVE_ENABLED
|
||||
|
@ -84,4 +84,4 @@ bool TYPING_HEATMAP(effect_params_t* params) {
|
||||
}
|
||||
|
||||
# endif // RGB_MATRIX_CUSTOM_EFFECT_IMPLS
|
||||
#endif // defined(RGB_MATRIX_FRAMEBUFFER_EFFECTS) && !defined(DISABLE_RGB_MATRIX_TYPING_HEATMAP)
|
||||
#endif // defined(RGB_MATRIX_FRAMEBUFFER_EFFECTS) && defined(ENABLE_RGB_MATRIX_TYPING_HEATMAP)
|
||||
|
@ -31,14 +31,6 @@ const led_point_t k_rgb_matrix_center = {112, 32};
|
||||
const led_point_t k_rgb_matrix_center = RGB_MATRIX_CENTER;
|
||||
#endif
|
||||
|
||||
// clang-format off
|
||||
#ifndef RGB_MATRIX_IMMEDIATE_EEPROM
|
||||
# define rgb_eeconfig_update(v) rgb_update_eeprom |= v
|
||||
#else
|
||||
# define rgb_eeconfig_update(v) if (v) eeconfig_update_rgb_matrix()
|
||||
#endif
|
||||
// clang-format on
|
||||
|
||||
__attribute__((weak)) RGB rgb_matrix_hsv_to_rgb(HSV hsv) { return hsv_to_rgb(hsv); }
|
||||
|
||||
// Generic effect runners
|
||||
@ -128,7 +120,6 @@ last_hit_t g_last_hit_tracker;
|
||||
|
||||
// internals
|
||||
static bool suspend_state = false;
|
||||
static bool rgb_update_eeprom = false;
|
||||
static uint8_t rgb_last_enable = UINT8_MAX;
|
||||
static uint8_t rgb_last_effect = UINT8_MAX;
|
||||
static effect_params_t rgb_effect_params = {0, LED_FLAG_ALL, false};
|
||||
@ -148,9 +139,9 @@ static last_hit_t last_hit_buffer;
|
||||
const uint8_t k_rgb_matrix_split[2] = RGB_MATRIX_SPLIT;
|
||||
#endif
|
||||
|
||||
void eeconfig_read_rgb_matrix(void) { eeprom_read_block(&rgb_matrix_config, EECONFIG_RGB_MATRIX, sizeof(rgb_matrix_config)); }
|
||||
EECONFIG_DEBOUNCE_HELPER(rgb_matrix, EECONFIG_RGB_MATRIX, rgb_matrix_config);
|
||||
|
||||
void eeconfig_update_rgb_matrix(void) { eeprom_update_block(&rgb_matrix_config, EECONFIG_RGB_MATRIX, sizeof(rgb_matrix_config)); }
|
||||
void eeconfig_update_rgb_matrix(void) { eeconfig_flush_rgb_matrix(true); }
|
||||
|
||||
void eeconfig_update_rgb_matrix_default(void) {
|
||||
dprintf("eeconfig_update_rgb_matrix_default\n");
|
||||
@ -159,7 +150,7 @@ void eeconfig_update_rgb_matrix_default(void) {
|
||||
rgb_matrix_config.hsv = (HSV){RGB_MATRIX_STARTUP_HUE, RGB_MATRIX_STARTUP_SAT, RGB_MATRIX_STARTUP_VAL};
|
||||
rgb_matrix_config.speed = RGB_MATRIX_STARTUP_SPD;
|
||||
rgb_matrix_config.flags = LED_FLAG_ALL;
|
||||
eeconfig_update_rgb_matrix();
|
||||
eeconfig_flush_rgb_matrix(true);
|
||||
}
|
||||
|
||||
void eeconfig_debug_rgb_matrix(void) {
|
||||
@ -187,14 +178,7 @@ uint8_t rgb_matrix_map_row_column_to_led(uint8_t row, uint8_t column, uint8_t *l
|
||||
|
||||
void rgb_matrix_update_pwm_buffers(void) { rgb_matrix_driver.flush(); }
|
||||
|
||||
void rgb_matrix_set_color(int index, uint8_t red, uint8_t green, uint8_t blue) {
|
||||
#if defined(RGB_MATRIX_ENABLE) && defined(RGB_MATRIX_SPLIT)
|
||||
if (!is_keyboard_left() && index >= k_rgb_matrix_split[0])
|
||||
rgb_matrix_driver.set_color(index - k_rgb_matrix_split[0], red, green, blue);
|
||||
else if (is_keyboard_left() && index < k_rgb_matrix_split[0])
|
||||
#endif
|
||||
rgb_matrix_driver.set_color(index, red, green, blue);
|
||||
}
|
||||
void rgb_matrix_set_color(int index, uint8_t red, uint8_t green, uint8_t blue) { rgb_matrix_driver.set_color(index, red, green, blue); }
|
||||
|
||||
void rgb_matrix_set_color_all(uint8_t red, uint8_t green, uint8_t blue) {
|
||||
#if defined(RGB_MATRIX_ENABLE) && defined(RGB_MATRIX_SPLIT)
|
||||
@ -314,9 +298,8 @@ static void rgb_task_timers(void) {
|
||||
}
|
||||
|
||||
static void rgb_task_sync(void) {
|
||||
eeconfig_flush_rgb_matrix(false);
|
||||
// next task
|
||||
if (rgb_update_eeprom) eeconfig_update_rgb_matrix();
|
||||
rgb_update_eeprom = false;
|
||||
if (sync_timer_elapsed32(g_rgb_timer) >= RGB_MATRIX_LED_FLUSH_LIMIT) rgb_task_state = STARTING;
|
||||
}
|
||||
|
||||
@ -491,7 +474,7 @@ void rgb_matrix_init(void) {
|
||||
eeconfig_update_rgb_matrix_default();
|
||||
}
|
||||
|
||||
eeconfig_read_rgb_matrix();
|
||||
eeconfig_init_rgb_matrix();
|
||||
if (!rgb_matrix_config.mode) {
|
||||
dprintf("rgb_matrix_init_drivers rgb_matrix_config.mode = 0. Write default values to EEPROM.\n");
|
||||
eeconfig_update_rgb_matrix_default();
|
||||
@ -514,7 +497,7 @@ bool rgb_matrix_get_suspend_state(void) { return suspend_state; }
|
||||
void rgb_matrix_toggle_eeprom_helper(bool write_to_eeprom) {
|
||||
rgb_matrix_config.enable ^= 1;
|
||||
rgb_task_state = STARTING;
|
||||
rgb_eeconfig_update(write_to_eeprom);
|
||||
eeconfig_flag_rgb_matrix(write_to_eeprom);
|
||||
dprintf("rgb matrix toggle [%s]: rgb_matrix_config.enable = %u\n", (write_to_eeprom) ? "EEPROM" : "NOEEPROM", rgb_matrix_config.enable);
|
||||
}
|
||||
void rgb_matrix_toggle_noeeprom(void) { rgb_matrix_toggle_eeprom_helper(false); }
|
||||
@ -522,7 +505,7 @@ void rgb_matrix_toggle(void) { rgb_matrix_toggle_eeprom_helper(true); }
|
||||
|
||||
void rgb_matrix_enable(void) {
|
||||
rgb_matrix_enable_noeeprom();
|
||||
rgb_eeconfig_update(true);
|
||||
eeconfig_flag_rgb_matrix(true);
|
||||
}
|
||||
|
||||
void rgb_matrix_enable_noeeprom(void) {
|
||||
@ -532,7 +515,7 @@ void rgb_matrix_enable_noeeprom(void) {
|
||||
|
||||
void rgb_matrix_disable(void) {
|
||||
rgb_matrix_disable_noeeprom();
|
||||
rgb_eeconfig_update(true);
|
||||
eeconfig_flag_rgb_matrix(true);
|
||||
}
|
||||
|
||||
void rgb_matrix_disable_noeeprom(void) {
|
||||
@ -554,7 +537,7 @@ void rgb_matrix_mode_eeprom_helper(uint8_t mode, bool write_to_eeprom) {
|
||||
rgb_matrix_config.mode = mode;
|
||||
}
|
||||
rgb_task_state = STARTING;
|
||||
rgb_eeconfig_update(write_to_eeprom);
|
||||
eeconfig_flag_rgb_matrix(write_to_eeprom);
|
||||
dprintf("rgb matrix mode [%s]: %u\n", (write_to_eeprom) ? "EEPROM" : "NOEEPROM", rgb_matrix_config.mode);
|
||||
}
|
||||
void rgb_matrix_mode_noeeprom(uint8_t mode) { rgb_matrix_mode_eeprom_helper(mode, false); }
|
||||
@ -583,7 +566,7 @@ void rgb_matrix_sethsv_eeprom_helper(uint16_t hue, uint8_t sat, uint8_t val, boo
|
||||
rgb_matrix_config.hsv.h = hue;
|
||||
rgb_matrix_config.hsv.s = sat;
|
||||
rgb_matrix_config.hsv.v = (val > RGB_MATRIX_MAXIMUM_BRIGHTNESS) ? RGB_MATRIX_MAXIMUM_BRIGHTNESS : val;
|
||||
rgb_eeconfig_update(write_to_eeprom);
|
||||
eeconfig_flag_rgb_matrix(write_to_eeprom);
|
||||
dprintf("rgb matrix set hsv [%s]: %u,%u,%u\n", (write_to_eeprom) ? "EEPROM" : "NOEEPROM", rgb_matrix_config.hsv.h, rgb_matrix_config.hsv.s, rgb_matrix_config.hsv.v);
|
||||
}
|
||||
void rgb_matrix_sethsv_noeeprom(uint16_t hue, uint8_t sat, uint8_t val) { rgb_matrix_sethsv_eeprom_helper(hue, sat, val, false); }
|
||||
@ -620,7 +603,7 @@ void rgb_matrix_decrease_val(void) { rgb_matrix_decrease_val_helper(true); }
|
||||
|
||||
void rgb_matrix_set_speed_eeprom_helper(uint8_t speed, bool write_to_eeprom) {
|
||||
rgb_matrix_config.speed = speed;
|
||||
rgb_eeconfig_update(write_to_eeprom);
|
||||
eeconfig_flag_rgb_matrix(write_to_eeprom);
|
||||
dprintf("rgb matrix set speed [%s]: %u\n", (write_to_eeprom) ? "EEPROM" : "NOEEPROM", rgb_matrix_config.speed);
|
||||
}
|
||||
void rgb_matrix_set_speed_noeeprom(uint8_t speed) { rgb_matrix_set_speed_eeprom_helper(speed, false); }
|
||||
|
@ -23,7 +23,6 @@
|
||||
#include "rgb_matrix_types.h"
|
||||
#include "color.h"
|
||||
#include "quantum.h"
|
||||
#include "rgb_matrix_legacy_enables.h"
|
||||
|
||||
#ifdef IS31FL3731
|
||||
# include "is31fl3731.h"
|
||||
@ -33,6 +32,8 @@
|
||||
# include "is31fl3737.h"
|
||||
#elif defined(IS31FL3741)
|
||||
# include "is31fl3741.h"
|
||||
#elif defined(CKLED2001)
|
||||
# include "ckled2001.h"
|
||||
#elif defined(AW20216)
|
||||
# include "aw20216.h"
|
||||
#elif defined(WS2812)
|
||||
@ -48,14 +49,33 @@
|
||||
#endif
|
||||
|
||||
#if defined(RGB_MATRIX_LED_PROCESS_LIMIT) && RGB_MATRIX_LED_PROCESS_LIMIT > 0 && RGB_MATRIX_LED_PROCESS_LIMIT < DRIVER_LED_TOTAL
|
||||
# define RGB_MATRIX_USE_LIMITS(min, max) \
|
||||
uint8_t min = RGB_MATRIX_LED_PROCESS_LIMIT * params->iter; \
|
||||
uint8_t max = min + RGB_MATRIX_LED_PROCESS_LIMIT; \
|
||||
if (max > DRIVER_LED_TOTAL) max = DRIVER_LED_TOTAL;
|
||||
# if defined(RGB_MATRIX_SPLIT)
|
||||
# define RGB_MATRIX_USE_LIMITS(min, max) \
|
||||
uint8_t min = RGB_MATRIX_LED_PROCESS_LIMIT * params->iter; \
|
||||
uint8_t max = min + RGB_MATRIX_LED_PROCESS_LIMIT; \
|
||||
if (max > DRIVER_LED_TOTAL) max = DRIVER_LED_TOTAL; \
|
||||
uint8_t k_rgb_matrix_split[2] = RGB_MATRIX_SPLIT; \
|
||||
if (is_keyboard_left() && (max > k_rgb_matrix_split[0])) max = k_rgb_matrix_split[0]; \
|
||||
if (!(is_keyboard_left()) && (min < k_rgb_matrix_split[0])) min = k_rgb_matrix_split[0];
|
||||
# else
|
||||
# define RGB_MATRIX_USE_LIMITS(min, max) \
|
||||
uint8_t min = RGB_MATRIX_LED_PROCESS_LIMIT * params->iter; \
|
||||
uint8_t max = min + RGB_MATRIX_LED_PROCESS_LIMIT; \
|
||||
if (max > DRIVER_LED_TOTAL) max = DRIVER_LED_TOTAL;
|
||||
# endif
|
||||
#else
|
||||
# define RGB_MATRIX_USE_LIMITS(min, max) \
|
||||
uint8_t min = 0; \
|
||||
uint8_t max = DRIVER_LED_TOTAL;
|
||||
# if defined(RGB_MATRIX_SPLIT)
|
||||
# define RGB_MATRIX_USE_LIMITS(min, max) \
|
||||
uint8_t min = 0; \
|
||||
uint8_t max = DRIVER_LED_TOTAL; \
|
||||
const uint8_t k_rgb_matrix_split[2] = RGB_MATRIX_SPLIT; \
|
||||
if (is_keyboard_left() && (max > k_rgb_matrix_split[0])) max = k_rgb_matrix_split[0]; \
|
||||
if (!(is_keyboard_left()) && (min < k_rgb_matrix_split[0])) min = k_rgb_matrix_split[0];
|
||||
# else
|
||||
# define RGB_MATRIX_USE_LIMITS(min, max) \
|
||||
uint8_t min = 0; \
|
||||
uint8_t max = DRIVER_LED_TOTAL;
|
||||
# endif
|
||||
#endif
|
||||
|
||||
#define RGB_MATRIX_INDICATOR_SET_COLOR(i, r, g, b) \
|
||||
@ -214,6 +234,18 @@ typedef struct {
|
||||
void (*flush)(void);
|
||||
} rgb_matrix_driver_t;
|
||||
|
||||
static inline bool rgb_matrix_check_finished_leds(uint8_t led_idx) {
|
||||
#if defined(RGB_MATRIX_SPLIT)
|
||||
if (is_keyboard_left()) {
|
||||
uint8_t k_rgb_matrix_split[2] = RGB_MATRIX_SPLIT;
|
||||
return led_idx < k_rgb_matrix_split[0];
|
||||
} else
|
||||
return led_idx < DRIVER_LED_TOTAL;
|
||||
#else
|
||||
return led_idx < DRIVER_LED_TOTAL;
|
||||
#endif
|
||||
}
|
||||
|
||||
extern const rgb_matrix_driver_t rgb_matrix_driver;
|
||||
|
||||
extern rgb_config_t rgb_matrix_config;
|
||||
|
@ -23,111 +23,153 @@
|
||||
* be here if shared between boards.
|
||||
*/
|
||||
|
||||
#if defined(IS31FL3731) || defined(IS31FL3733) || defined(IS31FL3737) || defined(IS31FL3741)
|
||||
|
||||
#if defined(IS31FL3731) || defined(IS31FL3733) || defined(IS31FL3737) || defined(IS31FL3741) || defined(CKLED2001)
|
||||
# include "i2c_master.h"
|
||||
|
||||
// TODO: Remove this at some later date
|
||||
# if defined(DRIVER_ADDR_1) && defined(DRIVER_ADDR_2)
|
||||
# if DRIVER_ADDR_1 == DRIVER_ADDR_2
|
||||
# error "Setting DRIVER_ADDR_2 == DRIVER_ADDR_1 is obsolete. If you are only using one ISSI driver, set DRIVER_COUNT to 1 and remove DRIVER_ADDR_2"
|
||||
# endif
|
||||
# endif
|
||||
|
||||
static void init(void) {
|
||||
i2c_init();
|
||||
# ifdef IS31FL3731
|
||||
|
||||
# if defined(IS31FL3731)
|
||||
IS31FL3731_init(DRIVER_ADDR_1);
|
||||
# ifdef DRIVER_ADDR_2
|
||||
# if defined(DRIVER_ADDR_2)
|
||||
IS31FL3731_init(DRIVER_ADDR_2);
|
||||
# endif
|
||||
# ifdef DRIVER_ADDR_3
|
||||
# if defined(DRIVER_ADDR_3)
|
||||
IS31FL3731_init(DRIVER_ADDR_3);
|
||||
# endif
|
||||
# ifdef DRIVER_ADDR_4
|
||||
# if defined(DRIVER_ADDR_4)
|
||||
IS31FL3731_init(DRIVER_ADDR_4);
|
||||
# endif
|
||||
# endif
|
||||
# endif
|
||||
|
||||
# elif defined(IS31FL3733)
|
||||
# ifndef DRIVER_SYNC_1
|
||||
# if !defined(DRIVER_SYNC_1)
|
||||
# define DRIVER_SYNC_1 0
|
||||
# endif
|
||||
IS31FL3733_init(DRIVER_ADDR_1, DRIVER_SYNC_1);
|
||||
# if defined DRIVER_ADDR_2 && (DRIVER_ADDR_1 != DRIVER_ADDR_2)
|
||||
# ifndef DRIVER_SYNC_2
|
||||
# if defined(DRIVER_ADDR_2)
|
||||
# if !defined(DRIVER_SYNC_2)
|
||||
# define DRIVER_SYNC_2 0
|
||||
# endif
|
||||
IS31FL3733_init(DRIVER_ADDR_2, DRIVER_SYNC_2);
|
||||
# endif
|
||||
# ifdef DRIVER_ADDR_3
|
||||
# ifndef DRIVER_SYNC_3
|
||||
# define DRIVER_SYNC_3 0
|
||||
# endif
|
||||
# if defined(DRIVER_ADDR_3)
|
||||
# if !defined(DRIVER_SYNC_3)
|
||||
# define DRIVER_SYNC_3 0
|
||||
# endif
|
||||
IS31FL3733_init(DRIVER_ADDR_3, DRIVER_SYNC_3);
|
||||
# endif
|
||||
# ifdef DRIVER_ADDR_4
|
||||
# ifndef DRIVER_SYNC_4
|
||||
# define DRIVER_SYNC_4 0
|
||||
# endif
|
||||
# if defined(DRIVER_ADDR_4)
|
||||
# if !defined(DRIVER_SYNC_4)
|
||||
# define DRIVER_SYNC_4 0
|
||||
# endif
|
||||
IS31FL3733_init(DRIVER_ADDR_4, DRIVER_SYNC_4);
|
||||
# endif
|
||||
# endif
|
||||
# endif
|
||||
|
||||
# elif defined(IS31FL3737)
|
||||
IS31FL3737_init(DRIVER_ADDR_1);
|
||||
# if defined(DRIVER_ADDR_2) && (DRIVER_ADDR_2 != DRIVER_ADDR_1) // provides backward compatibility
|
||||
# if defined(DRIVER_ADDR_2)
|
||||
IS31FL3737_init(DRIVER_ADDR_2);
|
||||
# endif
|
||||
# else
|
||||
|
||||
# elif defined(IS31FL3741)
|
||||
IS31FL3741_init(DRIVER_ADDR_1);
|
||||
|
||||
# elif defined(CKLED2001)
|
||||
CKLED2001_init(DRIVER_ADDR_1);
|
||||
# if defined(DRIVER_ADDR_2)
|
||||
CKLED2001_init(DRIVER_ADDR_2);
|
||||
# if defined(DRIVER_ADDR_3)
|
||||
CKLED2001_init(DRIVER_ADDR_3);
|
||||
# if defined(DRIVER_ADDR_4)
|
||||
CKLED2001_init(DRIVER_ADDR_4);
|
||||
# endif
|
||||
# endif
|
||||
# endif
|
||||
# endif
|
||||
|
||||
for (int index = 0; index < DRIVER_LED_TOTAL; index++) {
|
||||
bool enabled = true;
|
||||
|
||||
// This only caches it for later
|
||||
# ifdef IS31FL3731
|
||||
# if defined(IS31FL3731)
|
||||
IS31FL3731_set_led_control_register(index, enabled, enabled, enabled);
|
||||
# elif defined(IS31FL3733)
|
||||
IS31FL3733_set_led_control_register(index, enabled, enabled, enabled);
|
||||
# elif defined(IS31FL3737)
|
||||
IS31FL3737_set_led_control_register(index, enabled, enabled, enabled);
|
||||
# else
|
||||
# elif defined(IS31FL3741)
|
||||
IS31FL3741_set_led_control_register(index, enabled, enabled, enabled);
|
||||
# elif defined(CKLED2001)
|
||||
CKLED2001_set_led_control_register(index, enabled, enabled, enabled);
|
||||
# endif
|
||||
}
|
||||
|
||||
// This actually updates the LED drivers
|
||||
# ifdef IS31FL3731
|
||||
# if defined(IS31FL3731)
|
||||
IS31FL3731_update_led_control_registers(DRIVER_ADDR_1, 0);
|
||||
# ifdef DRIVER_ADDR_2
|
||||
# if defined(DRIVER_ADDR_2)
|
||||
IS31FL3731_update_led_control_registers(DRIVER_ADDR_2, 1);
|
||||
# endif
|
||||
# ifdef DRIVER_ADDR_3
|
||||
# if defined(DRIVER_ADDR_3)
|
||||
IS31FL3731_update_led_control_registers(DRIVER_ADDR_3, 2);
|
||||
# endif
|
||||
# ifdef DRIVER_ADDR_4
|
||||
# if defined(DRIVER_ADDR_4)
|
||||
IS31FL3731_update_led_control_registers(DRIVER_ADDR_4, 3);
|
||||
# endif
|
||||
# endif
|
||||
# endif
|
||||
|
||||
# elif defined(IS31FL3733)
|
||||
IS31FL3733_update_led_control_registers(DRIVER_ADDR_1, 0);
|
||||
# ifdef DRIVER_ADDR_2
|
||||
# if defined(DRIVER_ADDR_2)
|
||||
IS31FL3733_update_led_control_registers(DRIVER_ADDR_2, 1);
|
||||
# endif
|
||||
# ifdef DRIVER_ADDR_3
|
||||
# if defined(DRIVER_ADDR_3)
|
||||
IS31FL3733_update_led_control_registers(DRIVER_ADDR_3, 2);
|
||||
# endif
|
||||
# ifdef DRIVER_ADDR_4
|
||||
# if defined(DRIVER_ADDR_4)
|
||||
IS31FL3733_update_led_control_registers(DRIVER_ADDR_4, 3);
|
||||
# endif
|
||||
# endif
|
||||
# endif
|
||||
|
||||
# elif defined(IS31FL3737)
|
||||
IS31FL3737_update_led_control_registers(DRIVER_ADDR_1, 0);
|
||||
# if defined(DRIVER_ADDR_2) && (DRIVER_ADDR_2 != DRIVER_ADDR_1) // provides backward compatibility
|
||||
# if defined(DRIVER_ADDR_2)
|
||||
IS31FL3737_update_led_control_registers(DRIVER_ADDR_2, 1);
|
||||
# endif
|
||||
# else
|
||||
|
||||
# elif defined(IS31FL3741)
|
||||
IS31FL3741_update_led_control_registers(DRIVER_ADDR_1, 0);
|
||||
|
||||
# elif defined(CKLED2001)
|
||||
CKLED2001_update_led_control_registers(DRIVER_ADDR_1, 0);
|
||||
# if defined(DRIVER_ADDR_2)
|
||||
CKLED2001_update_led_control_registers(DRIVER_ADDR_2, 1);
|
||||
# if defined(DRIVER_ADDR_3)
|
||||
CKLED2001_update_led_control_registers(DRIVER_ADDR_3, 2);
|
||||
# if defined(DRIVER_ADDR_4)
|
||||
CKLED2001_update_led_control_registers(DRIVER_ADDR_4, 3);
|
||||
# endif
|
||||
# endif
|
||||
# endif
|
||||
# endif
|
||||
}
|
||||
|
||||
# ifdef IS31FL3731
|
||||
# if defined(IS31FL3731)
|
||||
static void flush(void) {
|
||||
IS31FL3731_update_pwm_buffers(DRIVER_ADDR_1, 0);
|
||||
# ifdef DRIVER_ADDR_2
|
||||
# if defined(DRIVER_ADDR_2)
|
||||
IS31FL3731_update_pwm_buffers(DRIVER_ADDR_2, 1);
|
||||
# endif
|
||||
# ifdef DRIVER_ADDR_3
|
||||
# if defined(DRIVER_ADDR_3)
|
||||
IS31FL3731_update_pwm_buffers(DRIVER_ADDR_3, 2);
|
||||
# endif
|
||||
# ifdef DRIVER_ADDR_4
|
||||
# if defined(DRIVER_ADDR_4)
|
||||
IS31FL3731_update_pwm_buffers(DRIVER_ADDR_4, 3);
|
||||
# endif
|
||||
# endif
|
||||
# endif
|
||||
}
|
||||
|
||||
@ -137,17 +179,18 @@ const rgb_matrix_driver_t rgb_matrix_driver = {
|
||||
.set_color = IS31FL3731_set_color,
|
||||
.set_color_all = IS31FL3731_set_color_all,
|
||||
};
|
||||
|
||||
# elif defined(IS31FL3733)
|
||||
static void flush(void) {
|
||||
IS31FL3733_update_pwm_buffers(DRIVER_ADDR_1, 0);
|
||||
# ifdef DRIVER_ADDR_2
|
||||
# if defined(DRIVER_ADDR_2)
|
||||
IS31FL3733_update_pwm_buffers(DRIVER_ADDR_2, 1);
|
||||
# endif
|
||||
# ifdef DRIVER_ADDR_3
|
||||
# if defined(DRIVER_ADDR_3)
|
||||
IS31FL3733_update_pwm_buffers(DRIVER_ADDR_3, 2);
|
||||
# endif
|
||||
# ifdef DRIVER_ADDR_4
|
||||
# if defined(DRIVER_ADDR_4)
|
||||
IS31FL3733_update_pwm_buffers(DRIVER_ADDR_4, 3);
|
||||
# endif
|
||||
# endif
|
||||
# endif
|
||||
}
|
||||
|
||||
@ -157,10 +200,11 @@ const rgb_matrix_driver_t rgb_matrix_driver = {
|
||||
.set_color = IS31FL3733_set_color,
|
||||
.set_color_all = IS31FL3733_set_color_all,
|
||||
};
|
||||
|
||||
# elif defined(IS31FL3737)
|
||||
static void flush(void) {
|
||||
IS31FL3737_update_pwm_buffers(DRIVER_ADDR_1, 0);
|
||||
# if defined(DRIVER_ADDR_2) && (DRIVER_ADDR_2 != DRIVER_ADDR_1) // provides backward compatibility
|
||||
# if defined(DRIVER_ADDR_2)
|
||||
IS31FL3737_update_pwm_buffers(DRIVER_ADDR_2, 1);
|
||||
# endif
|
||||
}
|
||||
@ -171,8 +215,14 @@ const rgb_matrix_driver_t rgb_matrix_driver = {
|
||||
.set_color = IS31FL3737_set_color,
|
||||
.set_color_all = IS31FL3737_set_color_all,
|
||||
};
|
||||
# else
|
||||
static void flush(void) { IS31FL3741_update_pwm_buffers(DRIVER_ADDR_1, DRIVER_ADDR_2); }
|
||||
|
||||
# elif defined(IS31FL3741)
|
||||
static void flush(void) {
|
||||
IS31FL3741_update_pwm_buffers(DRIVER_ADDR_1, 0);
|
||||
# if defined(DRIVER_ADDR_2)
|
||||
IS31FL3741_update_pwm_buffers(DRIVER_ADDR_2, 1);
|
||||
# endif
|
||||
}
|
||||
|
||||
const rgb_matrix_driver_t rgb_matrix_driver = {
|
||||
.init = init,
|
||||
@ -180,21 +230,44 @@ const rgb_matrix_driver_t rgb_matrix_driver = {
|
||||
.set_color = IS31FL3741_set_color,
|
||||
.set_color_all = IS31FL3741_set_color_all,
|
||||
};
|
||||
|
||||
# elif defined(CKLED2001)
|
||||
static void flush(void) {
|
||||
CKLED2001_update_pwm_buffers(DRIVER_ADDR_1, 0);
|
||||
# if defined(DRIVER_ADDR_2)
|
||||
CKLED2001_update_pwm_buffers(DRIVER_ADDR_2, 1);
|
||||
# if defined(DRIVER_ADDR_3)
|
||||
CKLED2001_update_pwm_buffers(DRIVER_ADDR_3, 2);
|
||||
# if defined(DRIVER_ADDR_4)
|
||||
CKLED2001_update_pwm_buffers(DRIVER_ADDR_4, 3);
|
||||
# endif
|
||||
# endif
|
||||
# endif
|
||||
}
|
||||
|
||||
const rgb_matrix_driver_t rgb_matrix_driver = {
|
||||
.init = init,
|
||||
.flush = flush,
|
||||
.set_color = CKLED2001_set_color,
|
||||
.set_color_all = CKLED2001_set_color_all,
|
||||
};
|
||||
# endif
|
||||
|
||||
#elif defined(AW20216)
|
||||
# include "spi_master.h"
|
||||
|
||||
static void init(void) {
|
||||
spi_init();
|
||||
|
||||
AW20216_init(DRIVER_1_CS, DRIVER_1_EN);
|
||||
# ifdef DRIVER_2_CS
|
||||
# if defined(DRIVER_2_CS)
|
||||
AW20216_init(DRIVER_2_CS, DRIVER_2_EN);
|
||||
# endif
|
||||
}
|
||||
|
||||
static void flush(void) {
|
||||
AW20216_update_pwm_buffers(DRIVER_1_CS, 0);
|
||||
# ifdef DRIVER_2_CS
|
||||
# if defined(DRIVER_2_CS)
|
||||
AW20216_update_pwm_buffers(DRIVER_2_CS, 1);
|
||||
# endif
|
||||
}
|
||||
@ -224,6 +297,14 @@ static void flush(void) {
|
||||
|
||||
// Set an led in the buffer to a color
|
||||
static inline void setled(int i, uint8_t r, uint8_t g, uint8_t b) {
|
||||
# if defined(RGB_MATRIX_ENABLE) && defined(RGB_MATRIX_SPLIT)
|
||||
const uint8_t k_rgb_matrix_split[2] = RGB_MATRIX_SPLIT;
|
||||
if (!is_keyboard_left() && (i >= k_rgb_matrix_split[0])) {
|
||||
i -= k_rgb_matrix_split[0];
|
||||
} else if (is_keyboard_left() && (i >= k_rgb_matrix_split[0]))
|
||||
return;
|
||||
# endif
|
||||
|
||||
rgb_matrix_ws2812_array[i].r = r;
|
||||
rgb_matrix_ws2812_array[i].g = g;
|
||||
rgb_matrix_ws2812_array[i].b = b;
|
||||
|
@ -1,153 +0,0 @@
|
||||
/* Copyright 2021 QMK
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 2 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
// to-do: remove this
|
||||
|
||||
#pragma once
|
||||
|
||||
#ifndef DISABLE_RGB_MATRIX_ALPHAS_MODS
|
||||
# define ENABLE_RGB_MATRIX_ALPHAS_MODS
|
||||
#endif
|
||||
#ifndef DISABLE_RGB_MATRIX_GRADIENT_UP_DOWN
|
||||
# define ENABLE_RGB_MATRIX_GRADIENT_UP_DOWN
|
||||
#endif
|
||||
#ifndef DISABLE_RGB_MATRIX_GRADIENT_LEFT_RIGHT
|
||||
# define ENABLE_RGB_MATRIX_GRADIENT_LEFT_RIGHT
|
||||
#endif
|
||||
#ifndef DISABLE_RGB_MATRIX_BREATHING
|
||||
# define ENABLE_RGB_MATRIX_BREATHING
|
||||
#endif
|
||||
#ifndef DISABLE_RGB_MATRIX_BAND_SAT
|
||||
# define ENABLE_RGB_MATRIX_BAND_SAT
|
||||
#endif
|
||||
#ifndef DISABLE_RGB_MATRIX_BAND_VAL
|
||||
# define ENABLE_RGB_MATRIX_BAND_VAL
|
||||
#endif
|
||||
#ifndef DISABLE_RGB_MATRIX_BAND_PINWHEEL_SAT
|
||||
# define ENABLE_RGB_MATRIX_BAND_PINWHEEL_SAT
|
||||
#endif
|
||||
#ifndef DISABLE_RGB_MATRIX_BAND_PINWHEEL_VAL
|
||||
# define ENABLE_RGB_MATRIX_BAND_PINWHEEL_VAL
|
||||
#endif
|
||||
#ifndef DISABLE_RGB_MATRIX_BAND_SPIRAL_SAT
|
||||
# define ENABLE_RGB_MATRIX_BAND_SPIRAL_SAT
|
||||
#endif
|
||||
#ifndef DISABLE_RGB_MATRIX_BAND_SPIRAL_VAL
|
||||
# define ENABLE_RGB_MATRIX_BAND_SPIRAL_VAL
|
||||
#endif
|
||||
#ifndef DISABLE_RGB_MATRIX_CYCLE_ALL
|
||||
# define ENABLE_RGB_MATRIX_CYCLE_ALL
|
||||
#endif
|
||||
#ifndef DISABLE_RGB_MATRIX_CYCLE_LEFT_RIGHT
|
||||
# define ENABLE_RGB_MATRIX_CYCLE_LEFT_RIGHT
|
||||
#endif
|
||||
#ifndef DISABLE_RGB_MATRIX_CYCLE_UP_DOWN
|
||||
# define ENABLE_RGB_MATRIX_CYCLE_UP_DOWN
|
||||
#endif
|
||||
#ifndef DISABLE_RGB_MATRIX_RAINBOW_MOVING_CHEVRON
|
||||
# define ENABLE_RGB_MATRIX_RAINBOW_MOVING_CHEVRON
|
||||
#endif
|
||||
#ifndef DISABLE_RGB_MATRIX_CYCLE_OUT_IN
|
||||
# define ENABLE_RGB_MATRIX_CYCLE_OUT_IN
|
||||
#endif
|
||||
#ifndef DISABLE_RGB_MATRIX_CYCLE_OUT_IN_DUAL
|
||||
# define ENABLE_RGB_MATRIX_CYCLE_OUT_IN_DUAL
|
||||
#endif
|
||||
#ifndef DISABLE_RGB_MATRIX_CYCLE_PINWHEEL
|
||||
# define ENABLE_RGB_MATRIX_CYCLE_PINWHEEL
|
||||
#endif
|
||||
#ifndef DISABLE_RGB_MATRIX_CYCLE_SPIRAL
|
||||
# define ENABLE_RGB_MATRIX_CYCLE_SPIRAL
|
||||
#endif
|
||||
#ifndef DISABLE_RGB_MATRIX_DUAL_BEACON
|
||||
# define ENABLE_RGB_MATRIX_DUAL_BEACON
|
||||
#endif
|
||||
#ifndef DISABLE_RGB_MATRIX_RAINBOW_BEACON
|
||||
# define ENABLE_RGB_MATRIX_RAINBOW_BEACON
|
||||
#endif
|
||||
#ifndef DISABLE_RGB_MATRIX_RAINBOW_PINWHEELS
|
||||
# define ENABLE_RGB_MATRIX_RAINBOW_PINWHEELS
|
||||
#endif
|
||||
#ifndef DISABLE_RGB_MATRIX_RAINDROPS
|
||||
# define ENABLE_RGB_MATRIX_RAINDROPS
|
||||
#endif
|
||||
#ifndef DISABLE_RGB_MATRIX_JELLYBEAN_RAINDROPS
|
||||
# define ENABLE_RGB_MATRIX_JELLYBEAN_RAINDROPS
|
||||
#endif
|
||||
#ifndef DISABLE_RGB_MATRIX_HUE_BREATHING
|
||||
# define ENABLE_RGB_MATRIX_HUE_BREATHING
|
||||
#endif
|
||||
#ifndef DISABLE_RGB_MATRIX_HUE_PENDULUM
|
||||
# define ENABLE_RGB_MATRIX_HUE_PENDULUM
|
||||
#endif
|
||||
#ifndef DISABLE_RGB_MATRIX_HUE_WAVE
|
||||
# define ENABLE_RGB_MATRIX_HUE_WAVE
|
||||
#endif
|
||||
#ifndef DISABLE_RGB_MATRIX_PIXEL_RAIN
|
||||
# define ENABLE_RGB_MATRIX_PIXEL_RAIN
|
||||
#endif
|
||||
#ifndef DISABLE_RGB_MATRIX_PIXEL_FLOW
|
||||
# define ENABLE_RGB_MATRIX_PIXEL_FLOW
|
||||
#endif
|
||||
#ifndef DISABLE_RGB_MATRIX_PIXEL_FRACTAL
|
||||
# define ENABLE_RGB_MATRIX_PIXEL_FRACTAL
|
||||
#endif
|
||||
#if defined(RGB_MATRIX_FRAMEBUFFER_EFFECTS)
|
||||
# ifndef DISABLE_RGB_MATRIX_TYPING_HEATMAP
|
||||
# define ENABLE_RGB_MATRIX_TYPING_HEATMAP
|
||||
# endif
|
||||
# ifndef DISABLE_RGB_MATRIX_DIGITAL_RAIN
|
||||
# define ENABLE_RGB_MATRIX_DIGITAL_RAIN
|
||||
# endif
|
||||
#endif
|
||||
#if defined(RGB_MATRIX_KEYREACTIVE_ENABLED)
|
||||
# ifndef DISABLE_RGB_MATRIX_SOLID_REACTIVE_SIMPLE
|
||||
# define ENABLE_RGB_MATRIX_SOLID_REACTIVE_SIMPLE
|
||||
# endif
|
||||
# ifndef DISABLE_RGB_MATRIX_SOLID_REACTIVE
|
||||
# define ENABLE_RGB_MATRIX_SOLID_REACTIVE
|
||||
# endif
|
||||
# ifndef DISABLE_RGB_MATRIX_SOLID_REACTIVE_WIDE
|
||||
# define ENABLE_RGB_MATRIX_SOLID_REACTIVE_WIDE
|
||||
# endif
|
||||
# ifndef DISABLE_RGB_MATRIX_SOLID_REACTIVE_MULTIWIDE
|
||||
# define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTIWIDE
|
||||
# endif
|
||||
# ifndef DISABLE_RGB_MATRIX_SOLID_REACTIVE_CROSS
|
||||
# define ENABLE_RGB_MATRIX_SOLID_REACTIVE_CROSS
|
||||
# endif
|
||||
# ifndef DISABLE_RGB_MATRIX_SOLID_REACTIVE_MULTICROSS
|
||||
# define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTICROSS
|
||||
# endif
|
||||
# ifndef DISABLE_RGB_MATRIX_SOLID_REACTIVE_NEXUS
|
||||
# define ENABLE_RGB_MATRIX_SOLID_REACTIVE_NEXUS
|
||||
# endif
|
||||
# ifndef DISABLE_RGB_MATRIX_SOLID_REACTIVE_MULTINEXUS
|
||||
# define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTINEXUS
|
||||
# endif
|
||||
# ifndef DISABLE_RGB_MATRIX_SPLASH
|
||||
# define ENABLE_RGB_MATRIX_SPLASH
|
||||
# endif
|
||||
# ifndef DISABLE_RGB_MATRIX_MULTISPLASH
|
||||
# define ENABLE_RGB_MATRIX_MULTISPLASH
|
||||
# endif
|
||||
# ifndef DISABLE_RGB_MATRIX_SOLID_SPLASH
|
||||
# define ENABLE_RGB_MATRIX_SOLID_SPLASH
|
||||
# endif
|
||||
# ifndef DISABLE_RGB_MATRIX_SOLID_MULTISPLASH
|
||||
# define ENABLE_RGB_MATRIX_SOLID_MULTISPLASH
|
||||
# endif
|
||||
#endif
|
Reference in New Issue
Block a user