| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263 |
- // 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_LED_MATRIX_EFFECTS = 0
- | (1ULL << 0x00)
- #ifdef ENABLE_LED_MATRIX_ALPHAS_MODS
- | (1ULL << 0x01)
- #endif
- #ifdef ENABLE_LED_MATRIX_BREATHING
- | (1ULL << 0x02)
- #endif
- #ifdef ENABLE_LED_MATRIX_BAND
- | (1ULL << 0x03)
- #endif
- #ifdef ENABLE_LED_MATRIX_BAND_PINWHEEL
- | (1ULL << 0x04)
- #endif
- #ifdef ENABLE_LED_MATRIX_BAND_SPIRAL
- | (1ULL << 0x05)
- #endif
- #ifdef ENABLE_LED_MATRIX_CYCLE_LEFT_RIGHT
- | (1ULL << 0x06)
- #endif
- #ifdef ENABLE_LED_MATRIX_CYCLE_UP_DOWN
- | (1ULL << 0x07)
- #endif
- #ifdef ENABLE_LED_MATRIX_CYCLE_OUT_IN
- | (1ULL << 0x08)
- #endif
- #ifdef ENABLE_LED_MATRIX_DUAL_BEACON
- | (1ULL << 0x09)
- #endif
- #ifdef ENABLE_LED_MATRIX_WAVE_LEFT_RIGHT
- | (1ULL << 0x0A)
- #endif
- #ifdef ENABLE_LED_MATRIX_WAVE_UP_DOWN
- | (1ULL << 0x0B)
- #endif
- #ifdef LED_MATRIX_KEYREACTIVE_ENABLED
- #ifdef ENABLE_LED_MATRIX_SOLID_REACTIVE_SIMPLE
- | (1ULL << 0x0C)
- #endif
- #endif
- #ifdef LED_MATRIX_KEYREACTIVE_ENABLED
- #ifdef ENABLE_LED_MATRIX_SOLID_REACTIVE_WIDE
- | (1ULL << 0x0D)
- #endif
- #endif
- #ifdef LED_MATRIX_KEYREACTIVE_ENABLED
- #ifdef ENABLE_LED_MATRIX_SOLID_REACTIVE_MULTIWIDE
- | (1ULL << 0x0E)
- #endif
- #endif
- #ifdef LED_MATRIX_KEYREACTIVE_ENABLED
- #ifdef ENABLE_LED_MATRIX_SOLID_REACTIVE_CROSS
- | (1ULL << 0x0F)
- #endif
- #endif
- #ifdef LED_MATRIX_KEYREACTIVE_ENABLED
- #ifdef ENABLE_LED_MATRIX_SOLID_REACTIVE_MULTICROSS
- | (1ULL << 0x10)
- #endif
- #endif
- #ifdef LED_MATRIX_KEYREACTIVE_ENABLED
- #ifdef ENABLE_LED_MATRIX_SOLID_REACTIVE_NEXUS
- | (1ULL << 0x11)
- #endif
- #endif
- #ifdef LED_MATRIX_KEYREACTIVE_ENABLED
- #ifdef ENABLE_LED_MATRIX_SOLID_REACTIVE_MULTINEXUS
- | (1ULL << 0x12)
- #endif
- #endif
- #ifdef LED_MATRIX_KEYREACTIVE_ENABLED
- #ifdef ENABLE_LED_MATRIX_SOLID_SPLASH
- | (1ULL << 0x13)
- #endif
- #endif
- #ifdef LED_MATRIX_KEYREACTIVE_ENABLED
- #ifdef ENABLE_LED_MATRIX_SOLID_MULTISPLASH
- | (1ULL << 0x14)
- #endif
- #endif
- };
- static const uint8_t led_matrix_effect_map[][2] PROGMEM = {
- { 0x00, LED_MATRIX_SOLID},
- #ifdef ENABLE_LED_MATRIX_ALPHAS_MODS
- { 0x01, LED_MATRIX_ALPHAS_MODS},
- #endif
- #ifdef ENABLE_LED_MATRIX_BREATHING
- { 0x02, LED_MATRIX_BREATHING},
- #endif
- #ifdef ENABLE_LED_MATRIX_BAND
- { 0x03, LED_MATRIX_BAND},
- #endif
- #ifdef ENABLE_LED_MATRIX_BAND_PINWHEEL
- { 0x04, LED_MATRIX_BAND_PINWHEEL},
- #endif
- #ifdef ENABLE_LED_MATRIX_BAND_SPIRAL
- { 0x05, LED_MATRIX_BAND_SPIRAL},
- #endif
- #ifdef ENABLE_LED_MATRIX_CYCLE_LEFT_RIGHT
- { 0x06, LED_MATRIX_CYCLE_LEFT_RIGHT},
- #endif
- #ifdef ENABLE_LED_MATRIX_CYCLE_UP_DOWN
- { 0x07, LED_MATRIX_CYCLE_UP_DOWN},
- #endif
- #ifdef ENABLE_LED_MATRIX_CYCLE_OUT_IN
- { 0x08, LED_MATRIX_CYCLE_OUT_IN},
- #endif
- #ifdef ENABLE_LED_MATRIX_DUAL_BEACON
- { 0x09, LED_MATRIX_DUAL_BEACON},
- #endif
- #ifdef ENABLE_LED_MATRIX_WAVE_LEFT_RIGHT
- { 0x0A, LED_MATRIX_WAVE_LEFT_RIGHT},
- #endif
- #ifdef ENABLE_LED_MATRIX_WAVE_UP_DOWN
- { 0x0B, LED_MATRIX_WAVE_UP_DOWN},
- #endif
- #ifdef LED_MATRIX_KEYREACTIVE_ENABLED
- #ifdef ENABLE_LED_MATRIX_SOLID_REACTIVE_SIMPLE
- { 0x0C, LED_MATRIX_SOLID_REACTIVE_SIMPLE},
- #endif
- #endif
- #ifdef LED_MATRIX_KEYREACTIVE_ENABLED
- #ifdef ENABLE_LED_MATRIX_SOLID_REACTIVE_WIDE
- { 0x0D, LED_MATRIX_SOLID_REACTIVE_WIDE},
- #endif
- #endif
- #ifdef LED_MATRIX_KEYREACTIVE_ENABLED
- #ifdef ENABLE_LED_MATRIX_SOLID_REACTIVE_MULTIWIDE
- { 0x0E, LED_MATRIX_SOLID_REACTIVE_MULTIWIDE},
- #endif
- #endif
- #ifdef LED_MATRIX_KEYREACTIVE_ENABLED
- #ifdef ENABLE_LED_MATRIX_SOLID_REACTIVE_CROSS
- { 0x0F, LED_MATRIX_SOLID_REACTIVE_CROSS},
- #endif
- #endif
- #ifdef LED_MATRIX_KEYREACTIVE_ENABLED
- #ifdef ENABLE_LED_MATRIX_SOLID_REACTIVE_MULTICROSS
- { 0x10, LED_MATRIX_SOLID_REACTIVE_MULTICROSS},
- #endif
- #endif
- #ifdef LED_MATRIX_KEYREACTIVE_ENABLED
- #ifdef ENABLE_LED_MATRIX_SOLID_REACTIVE_NEXUS
- { 0x11, LED_MATRIX_SOLID_REACTIVE_NEXUS},
- #endif
- #endif
- #ifdef LED_MATRIX_KEYREACTIVE_ENABLED
- #ifdef ENABLE_LED_MATRIX_SOLID_REACTIVE_MULTINEXUS
- { 0x12, LED_MATRIX_SOLID_REACTIVE_MULTINEXUS},
- #endif
- #endif
- #ifdef LED_MATRIX_KEYREACTIVE_ENABLED
- #ifdef ENABLE_LED_MATRIX_SOLID_SPLASH
- { 0x13, LED_MATRIX_SOLID_SPLASH},
- #endif
- #endif
- #ifdef LED_MATRIX_KEYREACTIVE_ENABLED
- #ifdef ENABLE_LED_MATRIX_SOLID_MULTISPLASH
- { 0x14, LED_MATRIX_SOLID_MULTISPLASH},
- #endif
- #endif
- };
- uint8_t led_matrix_effect_to_id(uint8_t val) {
- for(uint8_t i = 0; i < ARRAY_SIZE(led_matrix_effect_map); i++) {
- if (pgm_read_byte(&led_matrix_effect_map[i][1]) == val)
- return pgm_read_byte(&led_matrix_effect_map[i][0]);
- }
- return 0xFF;
- }
- uint8_t led_matrix_id_to_effect(uint8_t val) {
- for(uint8_t i = 0; i < ARRAY_SIZE(led_matrix_effect_map); i++) {
- if (pgm_read_byte(&led_matrix_effect_map[i][0]) == val)
- return pgm_read_byte(&led_matrix_effect_map[i][1]);
- }
- return 0xFF;
- }
|