diff options
| -rw-r--r-- | docs/feature_rgb_matrix.md | 2 | ||||
| -rw-r--r-- | quantum/rgb_matrix.c | 19 | ||||
| -rw-r--r-- | quantum/rgb_matrix.h | 3 | 
3 files changed, 24 insertions, 0 deletions
| diff --git a/docs/feature_rgb_matrix.md b/docs/feature_rgb_matrix.md index 910a70469..8d1efb12a 100644 --- a/docs/feature_rgb_matrix.md +++ b/docs/feature_rgb_matrix.md @@ -147,6 +147,7 @@ These are the effects that are currently available:  	    RGB_MATRIX_DIGITAL_RAIN,  	#ifdef RGB_MATRIX_KEYPRESSES  	    RGB_MATRIX_SOLID_REACTIVE, +	    RGB_MATRIX_REACTIVE_SIMPLE,  	    RGB_MATRIX_SPLASH,  	    RGB_MATRIX_MULTISPLASH,  	    RGB_MATRIX_SOLID_SPLASH, @@ -173,6 +174,7 @@ You can disable a single effect by defining `DISABLE_[EFFECT_NAME]` in your `con  |`#define DISABLE_RGB_MATRIX_JELLYBEAN_RAINDROPS`   |Disables `RGB_MATRIX_JELLYBEAN_RAINDROPS`   |  |`#define DISABLE_RGB_MATRIX_DIGITAL_RAIN`          |Disables `RGB_MATRIX_DIGITAL_RAIN`          |  |`#define DISABLE_RGB_MATRIX_SOLID_REACTIVE`        |Disables `RGB_MATRIX_SOLID_REACTIVE`        | +|`#define DISABLE_RGB_MATRIX_REACTIVE_SIMPLE`       |Disables `RGB_MATRIX_REACTIVE_SIMPLE`       |  |`#define DISABLE_RGB_MATRIX_SPLASH`                |Disables `RGB_MATRIX_SPLASH`                |  |`#define DISABLE_RGB_MATRIX_MULTISPLASH`           |Disables `RGB_MATRIX_MULTISPLASH`           |  |`#define DISABLE_RGB_MATRIX_SOLID_SPLASH`          |Disables `RGB_MATRIX_SOLID_SPLASH`          | diff --git a/quantum/rgb_matrix.c b/quantum/rgb_matrix.c index 2ed36304d..56a97e3c7 100644 --- a/quantum/rgb_matrix.c +++ b/quantum/rgb_matrix.c @@ -221,6 +221,20 @@ void rgb_matrix_solid_reactive(void) {  	}  } +void rgb_matrix_solid_reactive_simple(void) +{ +    HSV hsv = {.h = rgb_matrix_config.hue, .s = rgb_matrix_config.sat, .v = rgb_matrix_config.val}; +    RGB rgb; +     +    for (int i = 0; i < DRIVER_LED_TOTAL; i++) { +        uint16_t offset2 = g_key_hit[i] << 2; +        offset2 = (offset2 <= 255) ? (255 - offset2) : 0; +        hsv.v = offset2 * rgb_matrix_config.val / RGB_MATRIX_MAXIMUM_BRIGHTNESS; +        rgb = hsv_to_rgb(hsv); +        rgb_matrix_set_color(i, rgb.r, rgb.g, rgb.b); +    } +} +  // alphas = color1, mods = color2  void rgb_matrix_alphas_mods(void) { @@ -755,6 +769,11 @@ void rgb_matrix_task(void) {                      rgb_matrix_solid_reactive();                      break;              #endif +            #ifndef DISABLE_RGB_MATRIX_SOLID_REACTIVE_SIMPLE +                case RGB_MATRIX_SOLID_REACTIVE_SIMPLE: +                    rgb_matrix_solid_reactive_simple(); +                    break; +            #endif              #ifndef DISABLE_RGB_MATRIX_SPLASH                  case RGB_MATRIX_SPLASH:                      rgb_matrix_splash(); diff --git a/quantum/rgb_matrix.h b/quantum/rgb_matrix.h index e43532d11..e6acd2d4b 100644 --- a/quantum/rgb_matrix.h +++ b/quantum/rgb_matrix.h @@ -110,6 +110,9 @@ enum rgb_matrix_effects {     #ifndef DISABLE_RGB_MATRIX_SOLID_REACTIVE         RGB_MATRIX_SOLID_REACTIVE,     #endif +   #ifndef DISABLE_RGB_MATRIX_SOLID_REACTIVE_SIMPLE +       RGB_MATRIX_SOLID_REACTIVE_SIMPLE, +   #endif     #ifndef DISABLE_RGB_MATRIX_SPLASH         RGB_MATRIX_SPLASH,     #endif | 
