aboutsummaryrefslogtreecommitdiff
path: root/quantum/rgb_matrix.c
diff options
context:
space:
mode:
Diffstat (limited to 'quantum/rgb_matrix.c')
-rw-r--r--quantum/rgb_matrix.c43
1 files changed, 37 insertions, 6 deletions
diff --git a/quantum/rgb_matrix.c b/quantum/rgb_matrix.c
index 41ed8983e..5ca9b87a6 100644
--- a/quantum/rgb_matrix.c
+++ b/quantum/rgb_matrix.c
@@ -48,6 +48,19 @@
48#include "rgb_matrix_animations/solid_splash_anim.h" 48#include "rgb_matrix_animations/solid_splash_anim.h"
49#include "rgb_matrix_animations/breathing_anim.h" 49#include "rgb_matrix_animations/breathing_anim.h"
50 50
51#if defined(RGB_MATRIX_CUSTOM_KB) || defined(RGB_MATRIX_CUSTOM_USER)
52 #define RGB_MATRIX_CUSTOM_EFFECT_IMPLS
53 #define RGB_MATRIX_EFFECT(name, ...)
54 #ifdef RGB_MATRIX_CUSTOM_KB
55 #include "rgb_matrix_kb.inc"
56 #endif
57 #ifdef RGB_MATRIX_CUSTOM_USER
58 #include "rgb_matrix_user.inc"
59 #endif
60 #undef RGB_MATRIX_EFFECT
61 #undef RGB_MATRIX_CUSTOM_EFFECT_IMPLS
62#endif
63
51#ifndef RGB_DISABLE_AFTER_TIMEOUT 64#ifndef RGB_DISABLE_AFTER_TIMEOUT
52 #define RGB_DISABLE_AFTER_TIMEOUT 0 65 #define RGB_DISABLE_AFTER_TIMEOUT 0
53#endif 66#endif
@@ -81,6 +94,15 @@
81 #define RGB_MATRIX_SPD_STEP 16 94 #define RGB_MATRIX_SPD_STEP 16
82#endif 95#endif
83 96
97#if !defined(RGB_MATRIX_STARTUP_MODE)
98 #ifndef DISABLE_RGB_MATRIX_CYCLE_ALL
99 #define RGB_MATRIX_STARTUP_MODE RGB_MATRIX_CYCLE_LEFT_RIGHT
100 #else
101 // fallback to solid colors if RGB_MATRIX_CYCLE_LEFT_RIGHT is disabled in userspace
102 #define RGB_MATRIX_STARTUP_MODE RGB_MATRIX_SOLID_COLOR
103 #endif
104#endif
105
84bool g_suspend_state = false; 106bool g_suspend_state = false;
85 107
86rgb_config_t rgb_matrix_config; 108rgb_config_t rgb_matrix_config;
@@ -104,12 +126,7 @@ void eeconfig_update_rgb_matrix(uint32_t val) {
104void eeconfig_update_rgb_matrix_default(void) { 126void eeconfig_update_rgb_matrix_default(void) {
105 dprintf("eeconfig_update_rgb_matrix_default\n"); 127 dprintf("eeconfig_update_rgb_matrix_default\n");
106 rgb_matrix_config.enable = 1; 128 rgb_matrix_config.enable = 1;
107#ifndef DISABLE_RGB_MATRIX_CYCLE_LEFT_RIGHT 129 rgb_matrix_config.mode = RGB_MATRIX_STARTUP_MODE;
108 rgb_matrix_config.mode = RGB_MATRIX_CYCLE_LEFT_RIGHT;
109#else
110 // fallback to solid colors if RGB_MATRIX_CYCLE_LEFT_RIGHT is disabled in userspace
111 rgb_matrix_config.mode = RGB_MATRIX_SOLID_COLOR;
112#endif
113 rgb_matrix_config.hue = 0; 130 rgb_matrix_config.hue = 0;
114 rgb_matrix_config.sat = UINT8_MAX; 131 rgb_matrix_config.sat = UINT8_MAX;
115 rgb_matrix_config.val = RGB_MATRIX_MAXIMUM_BRIGHTNESS; 132 rgb_matrix_config.val = RGB_MATRIX_MAXIMUM_BRIGHTNESS;
@@ -435,6 +452,20 @@ static void rgb_task_render(uint8_t effect) {
435#endif // DISABLE_RGB_MATRIX_SOLID_MULTISPLASH 452#endif // DISABLE_RGB_MATRIX_SOLID_MULTISPLASH
436#endif // RGB_MATRIX_KEYREACTIVE_ENABLED 453#endif // RGB_MATRIX_KEYREACTIVE_ENABLED
437 454
455#if defined(RGB_MATRIX_CUSTOM_KB) || defined(RGB_MATRIX_CUSTOM_USER)
456 #define RGB_MATRIX_EFFECT(name, ...) \
457 case RGB_MATRIX_CUSTOM_##name: \
458 rendering = name(&rgb_effect_params); \
459 break;
460 #ifdef RGB_MATRIX_CUSTOM_KB
461 #include "rgb_matrix_kb.inc"
462 #endif
463 #ifdef RGB_MATRIX_CUSTOM_USER
464 #include "rgb_matrix_user.inc"
465 #endif
466 #undef RGB_MATRIX_EFFECT
467#endif
468
438 // Factory default magic value 469 // Factory default magic value
439 case UINT8_MAX: { 470 case UINT8_MAX: {
440 rgb_matrix_test(); 471 rgb_matrix_test();