]> git.donarmstrong.com Git - qmk_firmware.git/blobdiff - quantum/rgb_matrix.h
[Keymap] Add missing tap dance action and fix RGB hues in personal keymaps (#6312)
[qmk_firmware.git] / quantum / rgb_matrix.h
index 775cbeac0340ec9ef2cbeafcbd93e8aa6141d68d..96a8b766271cb1a95b3f9ba08fb377217209d201 100644 (file)
@@ -54,7 +54,7 @@
   uint8_t max = DRIVER_LED_TOTAL;
 #endif
 
-extern const rgb_led g_rgb_leds[DRIVER_LED_TOTAL];
+#define RGB_MATRIX_TEST_LED_FLAGS() if (!HAS_ANY_FLAGS(g_led_config.flags[i], params->flags)) continue
 
 typedef struct
 {
@@ -64,84 +64,12 @@ typedef struct
 
 enum rgb_matrix_effects {
   RGB_MATRIX_NONE = 0,
-       RGB_MATRIX_SOLID_COLOR = 1,
-#ifndef DISABLE_RGB_MATRIX_ALPHAS_MODS
-  RGB_MATRIX_ALPHAS_MODS,
-#endif // DISABLE_RGB_MATRIX_ALPHAS_MODS
-#ifndef DISABLE_RGB_MATRIX_GRADIENT_UP_DOWN
-  RGB_MATRIX_GRADIENT_UP_DOWN,
-#endif // DISABLE_RGB_MATRIX_GRADIENT_UP_DOWN
-#ifndef DISABLE_RGB_MATRIX_BREATHING
-  RGB_MATRIX_BREATHING,
-#endif // DISABLE_RGB_MATRIX_BREATHING
-#ifndef DISABLE_RGB_MATRIX_CYCLE_ALL
-  RGB_MATRIX_CYCLE_ALL,
-#endif // DISABLE_RGB_MATRIX_CYCLE_ALL
-#ifndef DISABLE_RGB_MATRIX_CYCLE_LEFT_RIGHT
-  RGB_MATRIX_CYCLE_LEFT_RIGHT,
-#endif // DISABLE_RGB_MATRIX_CYCLE_LEFT_RIGHT
-#ifndef DISABLE_RGB_MATRIX_CYCLE_UP_DOWN
-  RGB_MATRIX_CYCLE_UP_DOWN,
-#endif // DISABLE_RGB_MATRIX_CYCLE_UP_DOWN
-#ifndef DISABLE_RGB_MATRIX_RAINBOW_MOVING_CHEVRON
-  RGB_MATRIX_RAINBOW_MOVING_CHEVRON,
-#endif // DISABLE_RGB_MATRIX_RAINBOW_MOVING_CHEVRON
-#ifndef DISABLE_RGB_MATRIX_DUAL_BEACON
-  RGB_MATRIX_DUAL_BEACON,
-#endif // DISABLE_RGB_MATRIX_DUAL_BEACON
-#ifndef DISABLE_RGB_MATRIX_RAINBOW_BEACON
-  RGB_MATRIX_RAINBOW_BEACON,
-#endif // DISABLE_RGB_MATRIX_RAINBOW_BEACON
-#ifndef DISABLE_RGB_MATRIX_RAINBOW_PINWHEELS
-  RGB_MATRIX_RAINBOW_PINWHEELS,
-#endif // DISABLE_RGB_MATRIX_RAINBOW_PINWHEELS
-#ifndef DISABLE_RGB_MATRIX_RAINDROPS
-  RGB_MATRIX_RAINDROPS,
-#endif // DISABLE_RGB_MATRIX_RAINDROPS
-#ifndef DISABLE_RGB_MATRIX_JELLYBEAN_RAINDROPS
-  RGB_MATRIX_JELLYBEAN_RAINDROPS,
-#endif // DISABLE_RGB_MATRIX_JELLYBEAN_RAINDROPS
-#ifndef DISABLE_RGB_MATRIX_DIGITAL_RAIN
-  RGB_MATRIX_DIGITAL_RAIN,
-#endif // DISABLE_RGB_MATRIX_DIGITAL_RAIN
-#ifdef RGB_MATRIX_KEYREACTIVE_ENABLED
-#ifndef DISABLE_RGB_MATRIX_SOLID_REACTIVE_SIMPLE
-  RGB_MATRIX_SOLID_REACTIVE_SIMPLE,
-#endif // DISABLE_RGB_MATRIX_SOLID_REACTIVE_SIMPLE
-#ifndef DISABLE_RGB_MATRIX_SOLID_REACTIVE
-  RGB_MATRIX_SOLID_REACTIVE,
-#endif // DISABLE_RGB_MATRIX_SOLID_REACTIVE
-#ifndef DISABLE_RGB_MATRIX_SOLID_REACTIVE_WIDE
-  RGB_MATRIX_SOLID_REACTIVE_WIDE,
-#endif // DISABLE_RGB_MATRIX_SOLID_REACTIVE_WIDE
-#ifndef DISABLE_RGB_MATRIX_SOLID_REACTIVE_MULTIWIDE
-  RGB_MATRIX_SOLID_REACTIVE_MULTIWIDE,
-#endif // DISABLE_RGB_MATRIX_SOLID_REACTIVE_MULTIWIDE
-#ifndef DISABLE_RGB_MATRIX_SOLID_REACTIVE_CROSS
-  RGB_MATRIX_SOLID_REACTIVE_CROSS,
-#endif // DISABLE_RGB_MATRIX_SOLID_REACTIVE_CROSS
-#ifndef DISABLE_RGB_MATRIX_SOLID_REACTIVE_MULTICROSS
-  RGB_MATRIX_SOLID_REACTIVE_MULTICROSS,
-#endif // DISABLE_RGB_MATRIX_SOLID_REACTIVE_MULTICROSS
-#ifndef DISABLE_RGB_MATRIX_SOLID_REACTIVE_NEXUS
-  RGB_MATRIX_SOLID_REACTIVE_NEXUS,
-#endif // DISABLE_RGB_MATRIX_SOLID_REACTIVE_NEXUS
-#ifndef DISABLE_RGB_MATRIX_SOLID_REACTIVE_MULTINEXUS
-  RGB_MATRIX_SOLID_REACTIVE_MULTINEXUS,
-#endif // DISABLE_RGB_MATRIX_SOLID_REACTIVE_MULTINEXUS
-#ifndef DISABLE_RGB_MATRIX_SPLASH
-  RGB_MATRIX_SPLASH,
-#endif // DISABLE_RGB_MATRIX_SPLASH
-#ifndef DISABLE_RGB_MATRIX_MULTISPLASH
-  RGB_MATRIX_MULTISPLASH,
-#endif // DISABLE_RGB_MATRIX_MULTISPLASH
-#ifndef DISABLE_RGB_MATRIX_SOLID_SPLASH
-  RGB_MATRIX_SOLID_SPLASH,
-#endif // DISABLE_RGB_MATRIX_SOLID_SPLASH
-#ifndef DISABLE_RGB_MATRIX_SOLID_MULTISPLASH
-  RGB_MATRIX_SOLID_MULTISPLASH,
-#endif // DISABLE_RGB_MATRIX_SOLID_MULTISPLASH
-#endif // RGB_MATRIX_KEYREACTIVE_ENABLED
+
+// --------------------------------------
+// -----Begin rgb effect enum macros-----
+#define RGB_MATRIX_EFFECT(name, ...) RGB_MATRIX_##name,
+#include "rgb_matrix_animations/rgb_matrix_effects.inc"
+#undef RGB_MATRIX_EFFECT
 
 #if defined(RGB_MATRIX_CUSTOM_KB) || defined(RGB_MATRIX_CUSTOM_USER)
   #define RGB_MATRIX_EFFECT(name, ...) RGB_MATRIX_CUSTOM_##name,
@@ -153,6 +81,8 @@ enum rgb_matrix_effects {
   #endif
   #undef RGB_MATRIX_EFFECT
 #endif
+// --------------------------------------
+// -----End rgb effect enum macros-------
 
   RGB_MATRIX_EFFECT_MAX
 };
@@ -209,6 +139,8 @@ void rgb_matrix_increase_val(void);
 void rgb_matrix_decrease_val(void);
 void rgb_matrix_increase_speed(void);
 void rgb_matrix_decrease_speed(void);
+led_flags_t rgb_matrix_get_flags(void);
+void rgb_matrix_set_flags(led_flags_t flags);
 void rgb_matrix_mode(uint8_t mode);
 void rgb_matrix_mode_noeeprom(uint8_t mode);
 uint8_t rgb_matrix_get_mode(void);
@@ -250,4 +182,16 @@ typedef struct {
 
 extern const rgb_matrix_driver_t rgb_matrix_driver;
 
+extern rgb_config_t rgb_matrix_config;
+
+extern bool g_suspend_state;
+extern rgb_counters_t g_rgb_counters;
+extern led_config_t g_led_config;
+#ifdef RGB_MATRIX_KEYREACTIVE_ENABLED
+extern last_hit_t g_last_hit_tracker;
+#endif
+#ifdef RGB_MATRIX_FRAMEBUFFER_EFFECTS
+extern uint8_t rgb_frame_buffer[MATRIX_ROWS][MATRIX_COLS];
+#endif
+
 #endif