aboutsummaryrefslogtreecommitdiffstats
path: root/quantum/rgblight.h
diff options
context:
space:
mode:
authorGravatar Takeshi ISHII <2170248+mtei@users.noreply.github.com>2018-09-14 02:24:10 +0900
committerGravatar skullydazed <skullydazed@users.noreply.github.com>2018-09-13 10:24:09 -0700
commit6d6d91c834ef3415425e21d895d4ec91c67fd4b8 (patch)
tree45724c30bcfe342d88899db355782250312f1704 /quantum/rgblight.h
parentce122c4981c71d33a85db94c787d5ec7a823acc6 (diff)
downloadqmk_firmware-6d6d91c834ef3415425e21d895d4ec91c67fd4b8.tar.gz
rgblight.[ch] more configurable (#3582)
* add temporary test code rgblight-macro-test1.[ch] * rgblight.h : mode auto numberring and auto generate mode name symbol No change in build result. * rgblight.c use RGBLIGHT_MODE_xxx symbols No change in build result. * quantum.c use RGBLIGHT_MODE_xxx symbols No change in build result. * fix build break. when RGB_MATRIX_ENABLE defined * add temporary test code rgblight-macro-test2.[ch] * modify rgblight_mode_eeprom_helper() and rgblight_sethsv_eeprom_helper() * modify rgblight_task() * configurable each effect compile on/off in config.h * update docs/feature_rgblight.md * fix conflict. docs/feature_rgblight.md * remove temporary test code rgblight-macro-test*.[ch] * fix comment typo. * remove old mode number from comment * update docs/feature_rgblight.md about effect mode * Revert "update docs/feature_rgblight.md about effect mode" This reverts commit 43890663fcc9dda1899df7a37d382fc38b1a6d6d. * some change docs/feature_rgblight.md * fix typo * docs/feature_rgblight.md update: revise mode number table
Diffstat (limited to 'quantum/rgblight.h')
-rw-r--r--quantum/rgblight.h87
1 files changed, 82 insertions, 5 deletions
diff --git a/quantum/rgblight.h b/quantum/rgblight.h
index ba010dfae..d1e00eef3 100644
--- a/quantum/rgblight.h
+++ b/quantum/rgblight.h
@@ -16,11 +16,23 @@
#ifndef RGBLIGHT_H
#define RGBLIGHT_H
-#ifdef RGBLIGHT_ANIMATIONS
- #define RGBLIGHT_MODES 36
-#else
- #define RGBLIGHT_MODES 1
-#endif
+#include "rgblight_reconfig.h"
+
+#define _RGBM_SINGLE_STATIC(sym) RGBLIGHT_MODE_ ## sym,
+#define _RGBM_SINGLE_DYNAMIC(sym) RGBLIGHT_MODE_ ## sym,
+#define _RGBM_MULTI_STATIC(sym) RGBLIGHT_MODE_ ## sym,
+#define _RGBM_MULTI_DYNAMIC(sym) RGBLIGHT_MODE_ ## sym,
+#define _RGBM_TMP_STATIC(sym) RGBLIGHT_MODE_ ## sym,
+#define _RGBM_TMP_DYNAMIC(sym) RGBLIGHT_MODE_ ## sym,
+enum RGBLIGHT_EFFECT_MODE {
+ RGBLIGHT_MODE_zero = 0,
+#include "rgblight.h"
+ RGBLIGHT_MODE_last
+};
+
+#ifndef RGBLIGHT_H_DUMMY_DEFINE
+
+#define RGBLIGHT_MODES (RGBLIGHT_MODE_last-1)
#ifndef RGBLIGHT_EFFECT_BREATHE_CENTER
#define RGBLIGHT_EFFECT_BREATHE_CENTER 1.85 // 1-2.7
@@ -168,4 +180,69 @@ void rgblight_effect_christmas(void);
void rgblight_effect_rgbtest(void);
void rgblight_effect_alternating(void);
+#endif // #ifndef RGBLIGHT_H_DUMMY_DEFINE
+#endif // RGBLIGHT_H
+
+#ifdef _RGBM_SINGLE_STATIC
+ _RGBM_SINGLE_STATIC( STATIC_LIGHT )
+ #ifdef RGBLIGHT_EFFECT_BREATHING
+ _RGBM_MULTI_DYNAMIC( BREATHING )
+ _RGBM_TMP_DYNAMIC( breathing_3 )
+ _RGBM_TMP_DYNAMIC( breathing_4 )
+ _RGBM_TMP_DYNAMIC( BREATHING_end )
+ #endif
+ #ifdef RGBLIGHT_EFFECT_RAINBOW_MOOD
+ _RGBM_MULTI_DYNAMIC( RAINBOW_MOOD )
+ _RGBM_TMP_DYNAMIC( rainbow_mood_7 )
+ _RGBM_TMP_DYNAMIC( RAINBOW_MOOD_end )
+ #endif
+ #ifdef RGBLIGHT_EFFECT_RAINBOW_SWIRL
+ _RGBM_MULTI_DYNAMIC( RAINBOW_SWIRL )
+ _RGBM_TMP_DYNAMIC( rainbow_swirl_10 )
+ _RGBM_TMP_DYNAMIC( rainbow_swirl_11 )
+ _RGBM_TMP_DYNAMIC( rainbow_swirl_12 )
+ _RGBM_TMP_DYNAMIC( rainbow_swirl_13 )
+ _RGBM_TMP_DYNAMIC( RAINBOW_SWIRL_end )
+ #endif
+ #ifdef RGBLIGHT_EFFECT_SNAKE
+ _RGBM_MULTI_DYNAMIC( SNAKE )
+ _RGBM_TMP_DYNAMIC( snake_16 )
+ _RGBM_TMP_DYNAMIC( snake_17 )
+ _RGBM_TMP_DYNAMIC( snake_18 )
+ _RGBM_TMP_DYNAMIC( snake_19 )
+ _RGBM_TMP_DYNAMIC( SNAKE_end )
+ #endif
+ #ifdef RGBLIGHT_EFFECT_KNIGHT
+ _RGBM_MULTI_DYNAMIC( KNIGHT )
+ _RGBM_TMP_DYNAMIC( knight_22 )
+ _RGBM_TMP_DYNAMIC( KNIGHT_end )
+ #endif
+ #ifdef RGBLIGHT_EFFECT_CHRISTMAS
+ _RGBM_SINGLE_DYNAMIC( CHRISTMAS )
+ #endif
+ #ifdef RGBLIGHT_EFFECT_STATIC_GRADIENT
+ _RGBM_MULTI_STATIC( STATIC_GRADIENT )
+ _RGBM_TMP_STATIC( static_gradient_26 )
+ _RGBM_TMP_STATIC( static_gradient_27 )
+ _RGBM_TMP_STATIC( static_gradient_28 )
+ _RGBM_TMP_STATIC( static_gradient_29 )
+ _RGBM_TMP_STATIC( static_gradient_30 )
+ _RGBM_TMP_STATIC( static_gradient_31 )
+ _RGBM_TMP_STATIC( static_gradient_32 )
+ _RGBM_TMP_STATIC( static_gradient_33 )
+ _RGBM_TMP_STATIC( STATIC_GRADIENT_end )
+ #endif
+ #ifdef RGBLIGHT_EFFECT_RGB_TEST
+ _RGBM_SINGLE_DYNAMIC( RGB_TEST )
+ #endif
+ #ifdef RGBLIGHT_EFFECT_ALTERNATING
+ _RGBM_SINGLE_DYNAMIC( ALTERNATING )
+ #endif
#endif
+
+#undef _RGBM_SINGLE_STATIC
+#undef _RGBM_SINGLE_DYNAMIC
+#undef _RGBM_MULTI_STATIC
+#undef _RGBM_MULTI_DYNAMIC
+#undef _RGBM_TMP_STATIC
+#undef _RGBM_TMP_DYNAMIC