| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517 |
- // Copyright 2026 QMK
- // SPDX-License-Identifier: GPL-2.0-or-later
- /*******************************************************************************
- 88888888888 888 d8b .d888 d8b 888 d8b
- 888 888 Y8P d88P" Y8P 888 Y8P
- 888 888 888 888
- 888 88888b. 888 .d8888b 888888 888 888 .d88b. 888 .d8888b
- 888 888 "88b 888 88K 888 888 888 d8P Y8b 888 88K
- 888 888 888 888 "Y8888b. 888 888 888 88888888 888 "Y8888b.
- 888 888 888 888 X88 888 888 888 Y8b. 888 X88
- 888 888 888 888 88888P' 888 888 888 "Y8888 888 88888P'
- 888 888
- 888 888
- 888 888
- .d88b. .d88b. 88888b. .d88b. 888d888 8888b. 888888 .d88b. .d88888
- d88P"88b d8P Y8b 888 "88b d8P Y8b 888P" "88b 888 d8P Y8b d88" 888
- 888 888 88888888 888 888 88888888 888 .d888888 888 88888888 888 888
- Y88b 888 Y8b. 888 888 Y8b. 888 888 888 Y88b. Y8b. Y88b 888
- "Y88888 "Y8888 888 888 "Y8888 888 "Y888888 "Y888 "Y8888 "Y88888
- 888
- Y8b d88P
- "Y88P"
- *******************************************************************************/
- #pragma once
- // clang-format off
- enum { ENABLED_RGB_MATRIX_EFFECTS = 0
- | (1ULL << 0x00)
- #ifdef ENABLE_RGB_MATRIX_ALPHAS_MODS
- | (1ULL << 0x01)
- #endif
- #ifdef ENABLE_RGB_MATRIX_GRADIENT_UP_DOWN
- | (1ULL << 0x02)
- #endif
- #ifdef ENABLE_RGB_MATRIX_GRADIENT_LEFT_RIGHT
- | (1ULL << 0x03)
- #endif
- #ifdef ENABLE_RGB_MATRIX_BREATHING
- | (1ULL << 0x04)
- #endif
- #ifdef ENABLE_RGB_MATRIX_BAND_SAT
- | (1ULL << 0x05)
- #endif
- #ifdef ENABLE_RGB_MATRIX_BAND_VAL
- | (1ULL << 0x06)
- #endif
- #ifdef ENABLE_RGB_MATRIX_BAND_PINWHEEL_SAT
- | (1ULL << 0x07)
- #endif
- #ifdef ENABLE_RGB_MATRIX_BAND_PINWHEEL_VAL
- | (1ULL << 0x08)
- #endif
- #ifdef ENABLE_RGB_MATRIX_BAND_SPIRAL_SAT
- | (1ULL << 0x09)
- #endif
- #ifdef ENABLE_RGB_MATRIX_BAND_SPIRAL_VAL
- | (1ULL << 0x0A)
- #endif
- #ifdef ENABLE_RGB_MATRIX_CYCLE_ALL
- | (1ULL << 0x0B)
- #endif
- #ifdef ENABLE_RGB_MATRIX_CYCLE_LEFT_RIGHT
- | (1ULL << 0x0C)
- #endif
- #ifdef ENABLE_RGB_MATRIX_CYCLE_UP_DOWN
- | (1ULL << 0x0D)
- #endif
- #ifdef ENABLE_RGB_MATRIX_CYCLE_OUT_IN
- | (1ULL << 0x0E)
- #endif
- #ifdef ENABLE_RGB_MATRIX_CYCLE_OUT_IN_DUAL
- | (1ULL << 0x0F)
- #endif
- #ifdef ENABLE_RGB_MATRIX_RAINBOW_MOVING_CHEVRON
- | (1ULL << 0x10)
- #endif
- #ifdef ENABLE_RGB_MATRIX_CYCLE_PINWHEEL
- | (1ULL << 0x11)
- #endif
- #ifdef ENABLE_RGB_MATRIX_CYCLE_SPIRAL
- | (1ULL << 0x12)
- #endif
- #ifdef ENABLE_RGB_MATRIX_DUAL_BEACON
- | (1ULL << 0x13)
- #endif
- #ifdef ENABLE_RGB_MATRIX_RAINBOW_BEACON
- | (1ULL << 0x14)
- #endif
- #ifdef ENABLE_RGB_MATRIX_RAINBOW_PINWHEELS
- | (1ULL << 0x15)
- #endif
- #ifdef ENABLE_RGB_MATRIX_RAINDROPS
- | (1ULL << 0x16)
- #endif
- #ifdef ENABLE_RGB_MATRIX_JELLYBEAN_RAINDROPS
- | (1ULL << 0x17)
- #endif
- #ifdef ENABLE_RGB_MATRIX_HUE_BREATHING
- | (1ULL << 0x18)
- #endif
- #ifdef ENABLE_RGB_MATRIX_HUE_PENDULUM
- | (1ULL << 0x19)
- #endif
- #ifdef ENABLE_RGB_MATRIX_HUE_WAVE
- | (1ULL << 0x1A)
- #endif
- #ifdef ENABLE_RGB_MATRIX_PIXEL_FRACTAL
- | (1ULL << 0x1B)
- #endif
- #ifdef ENABLE_RGB_MATRIX_PIXEL_FLOW
- | (1ULL << 0x1C)
- #endif
- #ifdef ENABLE_RGB_MATRIX_PIXEL_RAIN
- | (1ULL << 0x1D)
- #endif
- #ifdef RGB_MATRIX_FRAMEBUFFER_EFFECTS
- #ifdef ENABLE_RGB_MATRIX_TYPING_HEATMAP
- | (1ULL << 0x1E)
- #endif
- #endif
- #ifdef RGB_MATRIX_FRAMEBUFFER_EFFECTS
- #ifdef ENABLE_RGB_MATRIX_DIGITAL_RAIN
- | (1ULL << 0x1F)
- #endif
- #endif
- #ifdef RGB_MATRIX_KEYREACTIVE_ENABLED
- #ifdef ENABLE_RGB_MATRIX_SOLID_REACTIVE_SIMPLE
- | (1ULL << 0x20)
- #endif
- #endif
- #ifdef RGB_MATRIX_KEYREACTIVE_ENABLED
- #ifdef ENABLE_RGB_MATRIX_SOLID_REACTIVE
- | (1ULL << 0x21)
- #endif
- #endif
- #ifdef RGB_MATRIX_KEYREACTIVE_ENABLED
- #ifdef ENABLE_RGB_MATRIX_SOLID_REACTIVE_WIDE
- | (1ULL << 0x22)
- #endif
- #endif
- #ifdef RGB_MATRIX_KEYREACTIVE_ENABLED
- #ifdef ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTIWIDE
- | (1ULL << 0x23)
- #endif
- #endif
- #ifdef RGB_MATRIX_KEYREACTIVE_ENABLED
- #ifdef ENABLE_RGB_MATRIX_SOLID_REACTIVE_CROSS
- | (1ULL << 0x24)
- #endif
- #endif
- #ifdef RGB_MATRIX_KEYREACTIVE_ENABLED
- #ifdef ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTICROSS
- | (1ULL << 0x25)
- #endif
- #endif
- #ifdef RGB_MATRIX_KEYREACTIVE_ENABLED
- #ifdef ENABLE_RGB_MATRIX_SOLID_REACTIVE_NEXUS
- | (1ULL << 0x26)
- #endif
- #endif
- #ifdef RGB_MATRIX_KEYREACTIVE_ENABLED
- #ifdef ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTINEXUS
- | (1ULL << 0x27)
- #endif
- #endif
- #ifdef RGB_MATRIX_KEYREACTIVE_ENABLED
- #ifdef ENABLE_RGB_MATRIX_SPLASH
- | (1ULL << 0x28)
- #endif
- #endif
- #ifdef RGB_MATRIX_KEYREACTIVE_ENABLED
- #ifdef ENABLE_RGB_MATRIX_MULTISPLASH
- | (1ULL << 0x29)
- #endif
- #endif
- #ifdef RGB_MATRIX_KEYREACTIVE_ENABLED
- #ifdef ENABLE_RGB_MATRIX_SOLID_SPLASH
- | (1ULL << 0x2A)
- #endif
- #endif
- #ifdef RGB_MATRIX_KEYREACTIVE_ENABLED
- #ifdef ENABLE_RGB_MATRIX_SOLID_MULTISPLASH
- | (1ULL << 0x2B)
- #endif
- #endif
- #ifdef ENABLE_RGB_MATRIX_FLOWER_BLOOMING
- | (1ULL << 0x2C)
- #endif
- #ifdef ENABLE_RGB_MATRIX_STARLIGHT
- | (1ULL << 0x2D)
- #endif
- #ifdef ENABLE_RGB_MATRIX_STARLIGHT_DUAL_SAT
- | (1ULL << 0x2E)
- #endif
- #ifdef ENABLE_RGB_MATRIX_STARLIGHT_DUAL_HUE
- | (1ULL << 0x2F)
- #endif
- #ifdef ENABLE_RGB_MATRIX_RIVERFLOW
- | (1ULL << 0x30)
- #endif
- };
- static const uint8_t rgb_matrix_effect_map[][2] PROGMEM = {
- { 0x00, RGB_MATRIX_SOLID_COLOR},
- #ifdef ENABLE_RGB_MATRIX_ALPHAS_MODS
- { 0x01, RGB_MATRIX_ALPHAS_MODS},
- #endif
- #ifdef ENABLE_RGB_MATRIX_GRADIENT_UP_DOWN
- { 0x02, RGB_MATRIX_GRADIENT_UP_DOWN},
- #endif
- #ifdef ENABLE_RGB_MATRIX_GRADIENT_LEFT_RIGHT
- { 0x03, RGB_MATRIX_GRADIENT_LEFT_RIGHT},
- #endif
- #ifdef ENABLE_RGB_MATRIX_BREATHING
- { 0x04, RGB_MATRIX_BREATHING},
- #endif
- #ifdef ENABLE_RGB_MATRIX_BAND_SAT
- { 0x05, RGB_MATRIX_BAND_SAT},
- #endif
- #ifdef ENABLE_RGB_MATRIX_BAND_VAL
- { 0x06, RGB_MATRIX_BAND_VAL},
- #endif
- #ifdef ENABLE_RGB_MATRIX_BAND_PINWHEEL_SAT
- { 0x07, RGB_MATRIX_BAND_PINWHEEL_SAT},
- #endif
- #ifdef ENABLE_RGB_MATRIX_BAND_PINWHEEL_VAL
- { 0x08, RGB_MATRIX_BAND_PINWHEEL_VAL},
- #endif
- #ifdef ENABLE_RGB_MATRIX_BAND_SPIRAL_SAT
- { 0x09, RGB_MATRIX_BAND_SPIRAL_SAT},
- #endif
- #ifdef ENABLE_RGB_MATRIX_BAND_SPIRAL_VAL
- { 0x0A, RGB_MATRIX_BAND_SPIRAL_VAL},
- #endif
- #ifdef ENABLE_RGB_MATRIX_CYCLE_ALL
- { 0x0B, RGB_MATRIX_CYCLE_ALL},
- #endif
- #ifdef ENABLE_RGB_MATRIX_CYCLE_LEFT_RIGHT
- { 0x0C, RGB_MATRIX_CYCLE_LEFT_RIGHT},
- #endif
- #ifdef ENABLE_RGB_MATRIX_CYCLE_UP_DOWN
- { 0x0D, RGB_MATRIX_CYCLE_UP_DOWN},
- #endif
- #ifdef ENABLE_RGB_MATRIX_CYCLE_OUT_IN
- { 0x0E, RGB_MATRIX_CYCLE_OUT_IN},
- #endif
- #ifdef ENABLE_RGB_MATRIX_CYCLE_OUT_IN_DUAL
- { 0x0F, RGB_MATRIX_CYCLE_OUT_IN_DUAL},
- #endif
- #ifdef ENABLE_RGB_MATRIX_RAINBOW_MOVING_CHEVRON
- { 0x10, RGB_MATRIX_RAINBOW_MOVING_CHEVRON},
- #endif
- #ifdef ENABLE_RGB_MATRIX_CYCLE_PINWHEEL
- { 0x11, RGB_MATRIX_CYCLE_PINWHEEL},
- #endif
- #ifdef ENABLE_RGB_MATRIX_CYCLE_SPIRAL
- { 0x12, RGB_MATRIX_CYCLE_SPIRAL},
- #endif
- #ifdef ENABLE_RGB_MATRIX_DUAL_BEACON
- { 0x13, RGB_MATRIX_DUAL_BEACON},
- #endif
- #ifdef ENABLE_RGB_MATRIX_RAINBOW_BEACON
- { 0x14, RGB_MATRIX_RAINBOW_BEACON},
- #endif
- #ifdef ENABLE_RGB_MATRIX_RAINBOW_PINWHEELS
- { 0x15, RGB_MATRIX_RAINBOW_PINWHEELS},
- #endif
- #ifdef ENABLE_RGB_MATRIX_RAINDROPS
- { 0x16, RGB_MATRIX_RAINDROPS},
- #endif
- #ifdef ENABLE_RGB_MATRIX_JELLYBEAN_RAINDROPS
- { 0x17, RGB_MATRIX_JELLYBEAN_RAINDROPS},
- #endif
- #ifdef ENABLE_RGB_MATRIX_HUE_BREATHING
- { 0x18, RGB_MATRIX_HUE_BREATHING},
- #endif
- #ifdef ENABLE_RGB_MATRIX_HUE_PENDULUM
- { 0x19, RGB_MATRIX_HUE_PENDULUM},
- #endif
- #ifdef ENABLE_RGB_MATRIX_HUE_WAVE
- { 0x1A, RGB_MATRIX_HUE_WAVE},
- #endif
- #ifdef ENABLE_RGB_MATRIX_PIXEL_FRACTAL
- { 0x1B, RGB_MATRIX_PIXEL_FRACTAL},
- #endif
- #ifdef ENABLE_RGB_MATRIX_PIXEL_FLOW
- { 0x1C, RGB_MATRIX_PIXEL_FLOW},
- #endif
- #ifdef ENABLE_RGB_MATRIX_PIXEL_RAIN
- { 0x1D, RGB_MATRIX_PIXEL_RAIN},
- #endif
- #ifdef RGB_MATRIX_FRAMEBUFFER_EFFECTS
- #ifdef ENABLE_RGB_MATRIX_TYPING_HEATMAP
- { 0x1E, RGB_MATRIX_TYPING_HEATMAP},
- #endif
- #endif
- #ifdef RGB_MATRIX_FRAMEBUFFER_EFFECTS
- #ifdef ENABLE_RGB_MATRIX_DIGITAL_RAIN
- { 0x1F, RGB_MATRIX_DIGITAL_RAIN},
- #endif
- #endif
- #ifdef RGB_MATRIX_KEYREACTIVE_ENABLED
- #ifdef ENABLE_RGB_MATRIX_SOLID_REACTIVE_SIMPLE
- { 0x20, RGB_MATRIX_SOLID_REACTIVE_SIMPLE},
- #endif
- #endif
- #ifdef RGB_MATRIX_KEYREACTIVE_ENABLED
- #ifdef ENABLE_RGB_MATRIX_SOLID_REACTIVE
- { 0x21, RGB_MATRIX_SOLID_REACTIVE},
- #endif
- #endif
- #ifdef RGB_MATRIX_KEYREACTIVE_ENABLED
- #ifdef ENABLE_RGB_MATRIX_SOLID_REACTIVE_WIDE
- { 0x22, RGB_MATRIX_SOLID_REACTIVE_WIDE},
- #endif
- #endif
- #ifdef RGB_MATRIX_KEYREACTIVE_ENABLED
- #ifdef ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTIWIDE
- { 0x23, RGB_MATRIX_SOLID_REACTIVE_MULTIWIDE},
- #endif
- #endif
- #ifdef RGB_MATRIX_KEYREACTIVE_ENABLED
- #ifdef ENABLE_RGB_MATRIX_SOLID_REACTIVE_CROSS
- { 0x24, RGB_MATRIX_SOLID_REACTIVE_CROSS},
- #endif
- #endif
- #ifdef RGB_MATRIX_KEYREACTIVE_ENABLED
- #ifdef ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTICROSS
- { 0x25, RGB_MATRIX_SOLID_REACTIVE_MULTICROSS},
- #endif
- #endif
- #ifdef RGB_MATRIX_KEYREACTIVE_ENABLED
- #ifdef ENABLE_RGB_MATRIX_SOLID_REACTIVE_NEXUS
- { 0x26, RGB_MATRIX_SOLID_REACTIVE_NEXUS},
- #endif
- #endif
- #ifdef RGB_MATRIX_KEYREACTIVE_ENABLED
- #ifdef ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTINEXUS
- { 0x27, RGB_MATRIX_SOLID_REACTIVE_MULTINEXUS},
- #endif
- #endif
- #ifdef RGB_MATRIX_KEYREACTIVE_ENABLED
- #ifdef ENABLE_RGB_MATRIX_SPLASH
- { 0x28, RGB_MATRIX_SPLASH},
- #endif
- #endif
- #ifdef RGB_MATRIX_KEYREACTIVE_ENABLED
- #ifdef ENABLE_RGB_MATRIX_MULTISPLASH
- { 0x29, RGB_MATRIX_MULTISPLASH},
- #endif
- #endif
- #ifdef RGB_MATRIX_KEYREACTIVE_ENABLED
- #ifdef ENABLE_RGB_MATRIX_SOLID_SPLASH
- { 0x2A, RGB_MATRIX_SOLID_SPLASH},
- #endif
- #endif
- #ifdef RGB_MATRIX_KEYREACTIVE_ENABLED
- #ifdef ENABLE_RGB_MATRIX_SOLID_MULTISPLASH
- { 0x2B, RGB_MATRIX_SOLID_MULTISPLASH},
- #endif
- #endif
- #ifdef ENABLE_RGB_MATRIX_FLOWER_BLOOMING
- { 0x2C, RGB_MATRIX_FLOWER_BLOOMING},
- #endif
- #ifdef ENABLE_RGB_MATRIX_STARLIGHT
- { 0x2D, RGB_MATRIX_STARLIGHT},
- #endif
- #ifdef ENABLE_RGB_MATRIX_STARLIGHT_DUAL_SAT
- { 0x2E, RGB_MATRIX_STARLIGHT_DUAL_SAT},
- #endif
- #ifdef ENABLE_RGB_MATRIX_STARLIGHT_DUAL_HUE
- { 0x2F, RGB_MATRIX_STARLIGHT_DUAL_HUE},
- #endif
- #ifdef ENABLE_RGB_MATRIX_RIVERFLOW
- { 0x30, RGB_MATRIX_RIVERFLOW},
- #endif
- };
- uint8_t rgb_matrix_effect_to_id(uint8_t val) {
- for(uint8_t i = 0; i < ARRAY_SIZE(rgb_matrix_effect_map); i++) {
- if (pgm_read_byte(&rgb_matrix_effect_map[i][1]) == val)
- return pgm_read_byte(&rgb_matrix_effect_map[i][0]);
- }
- return 0xFF;
- }
- uint8_t rgb_matrix_id_to_effect(uint8_t val) {
- for(uint8_t i = 0; i < ARRAY_SIZE(rgb_matrix_effect_map); i++) {
- if (pgm_read_byte(&rgb_matrix_effect_map[i][0]) == val)
- return pgm_read_byte(&rgb_matrix_effect_map[i][1]);
- }
- return 0xFF;
- }
|