From a7df902734b6aa8975e3a62a07ddb5544fd4ae85 Mon Sep 17 00:00:00 2001 From: yiancar Date: Tue, 3 Jul 2018 19:52:04 +0300 Subject: [PATCH] Addition of hard brigtness limit for RGB_Matrix (#3299) * Addition of hard brigtness limit for RGB_Matrix - Added a define "RGB_MATRIX_MAXIMUM_BRIGHTNESS" to enable hard limiting the maximum brightness for rgb_matrix - Used the above define to limit the maximum brigthness of HS60 for better stability * Added docs for new rgb_matrix define * Addition of check for maximum brightness --- docs/feature_rgb_matrix.md | 1 + keyboards/hs60/config.h | 1 + quantum/rgb_matrix.c | 10 +++++++--- 3 files changed, 9 insertions(+), 3 deletions(-) diff --git a/docs/feature_rgb_matrix.md b/docs/feature_rgb_matrix.md index 5d2db3b97..cb7aa666c 100644 --- a/docs/feature_rgb_matrix.md +++ b/docs/feature_rgb_matrix.md @@ -119,6 +119,7 @@ A similar function works in the keymap as `rgb_matrix_indicators_user`. #define RGB_DISABLE_AFTER_TIMEOUT 0 // number of ticks to wait until disabling effects #define RGB_DISABLE_WHEN_USB_SUSPENDED false // turn off effects when suspended #define RGB_MATRIX_SKIP_FRAMES 1 // number of frames to skip when displaying animations (0 is full effect) if not defined defaults to 1 + #define RGB_MATRIX_MAXIMUM_BRIGHTNESS 200 // limits maximum brightness of LEDs to 200 out of 255. If not defined maximum brightness is set to 255 ## EEPROM storage diff --git a/keyboards/hs60/config.h b/keyboards/hs60/config.h index d37fc8990..31f7c0790 100644 --- a/keyboards/hs60/config.h +++ b/keyboards/hs60/config.h @@ -127,6 +127,7 @@ along with this program. If not, see . #define RGB_DISABLE_AFTER_TIMEOUT 0 // number of ticks to wait until disabling effects #define RGB_DISABLE_WHEN_USB_SUSPENDED false // turn off effects when suspended #define RGB_MATRIX_SKIP_FRAMES 0 +#define RGB_MATRIX_MAXIMUM_BRIGHTNESS 215 #define DRIVER_ADDR_1 0b1110100 #define DRIVER_ADDR_2 0b1110101 diff --git a/quantum/rgb_matrix.c b/quantum/rgb_matrix.c index 8c41fc54d..b7424d637 100644 --- a/quantum/rgb_matrix.c +++ b/quantum/rgb_matrix.c @@ -41,6 +41,10 @@ rgb_config_t rgb_matrix_config; #define EECONFIG_RGB_MATRIX EECONFIG_RGBLIGHT #endif +#if !defined(RGB_MATRIX_MAXIMUM_BRIGHTNESS) || RGB_MATRIX_MAXIMUM_BRIGHTNESS > 255 + #define RGB_MATRIX_MAXIMUM_BRIGHTNESS 255 +#endif + bool g_suspend_state = false; // Global tick at 20 Hz @@ -68,7 +72,7 @@ void eeconfig_update_rgb_matrix_default(void) { rgb_matrix_config.mode = RGB_MATRIX_CYCLE_LEFT_RIGHT; rgb_matrix_config.hue = 0; rgb_matrix_config.sat = 255; - rgb_matrix_config.val = 255; + rgb_matrix_config.val = RGB_MATRIX_MAXIMUM_BRIGHTNESS; rgb_matrix_config.speed = 0; eeconfig_update_rgb_matrix(rgb_matrix_config.raw); } @@ -858,12 +862,12 @@ void rgblight_decrease_sat(void) { } void rgblight_increase_val(void) { - rgb_matrix_config.val = increment( rgb_matrix_config.val, 8, 0, 255 ); + rgb_matrix_config.val = increment( rgb_matrix_config.val, 8, 0, RGB_MATRIX_MAXIMUM_BRIGHTNESS ); eeconfig_update_rgb_matrix(rgb_matrix_config.raw); } void rgblight_decrease_val(void) { - rgb_matrix_config.val = decrement( rgb_matrix_config.val, 8, 0, 255 ); + rgb_matrix_config.val = decrement( rgb_matrix_config.val, 8, 0, RGB_MATRIX_MAXIMUM_BRIGHTNESS ); eeconfig_update_rgb_matrix(rgb_matrix_config.raw); }