| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377 |
- // 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_RGBLIGHT_EFFECTS = 0
- | (1ULL << 0x00)
- #ifdef RGBLIGHT_EFFECT_BREATHING
- | (1ULL << 0x01)
- #endif
- #ifdef RGBLIGHT_EFFECT_BREATHING
- | (1ULL << 0x02)
- #endif
- #ifdef RGBLIGHT_EFFECT_BREATHING
- | (1ULL << 0x03)
- #endif
- #ifdef RGBLIGHT_EFFECT_BREATHING
- | (1ULL << 0x04)
- #endif
- #ifdef RGBLIGHT_EFFECT_RAINBOW_MOOD
- | (1ULL << 0x05)
- #endif
- #ifdef RGBLIGHT_EFFECT_RAINBOW_MOOD
- | (1ULL << 0x06)
- #endif
- #ifdef RGBLIGHT_EFFECT_RAINBOW_MOOD
- | (1ULL << 0x07)
- #endif
- #ifdef RGBLIGHT_EFFECT_RAINBOW_SWIRL
- | (1ULL << 0x08)
- #endif
- #ifdef RGBLIGHT_EFFECT_RAINBOW_SWIRL
- | (1ULL << 0x09)
- #endif
- #ifdef RGBLIGHT_EFFECT_RAINBOW_SWIRL
- | (1ULL << 0x0A)
- #endif
- #ifdef RGBLIGHT_EFFECT_RAINBOW_SWIRL
- | (1ULL << 0x0B)
- #endif
- #ifdef RGBLIGHT_EFFECT_RAINBOW_SWIRL
- | (1ULL << 0x0C)
- #endif
- #ifdef RGBLIGHT_EFFECT_RAINBOW_SWIRL
- | (1ULL << 0x0D)
- #endif
- #ifdef RGBLIGHT_EFFECT_SNAKE
- | (1ULL << 0x0E)
- #endif
- #ifdef RGBLIGHT_EFFECT_SNAKE
- | (1ULL << 0x0F)
- #endif
- #ifdef RGBLIGHT_EFFECT_SNAKE
- | (1ULL << 0x10)
- #endif
- #ifdef RGBLIGHT_EFFECT_SNAKE
- | (1ULL << 0x11)
- #endif
- #ifdef RGBLIGHT_EFFECT_SNAKE
- | (1ULL << 0x12)
- #endif
- #ifdef RGBLIGHT_EFFECT_SNAKE
- | (1ULL << 0x13)
- #endif
- #ifdef RGBLIGHT_EFFECT_KNIGHT
- | (1ULL << 0x14)
- #endif
- #ifdef RGBLIGHT_EFFECT_KNIGHT
- | (1ULL << 0x15)
- #endif
- #ifdef RGBLIGHT_EFFECT_KNIGHT
- | (1ULL << 0x16)
- #endif
- #ifdef RGBLIGHT_EFFECT_CHRISTMAS
- | (1ULL << 0x17)
- #endif
- #ifdef RGBLIGHT_EFFECT_STATIC_GRADIENT
- | (1ULL << 0x18)
- #endif
- #ifdef RGBLIGHT_EFFECT_STATIC_GRADIENT
- | (1ULL << 0x19)
- #endif
- #ifdef RGBLIGHT_EFFECT_STATIC_GRADIENT
- | (1ULL << 0x1A)
- #endif
- #ifdef RGBLIGHT_EFFECT_STATIC_GRADIENT
- | (1ULL << 0x1B)
- #endif
- #ifdef RGBLIGHT_EFFECT_STATIC_GRADIENT
- | (1ULL << 0x1C)
- #endif
- #ifdef RGBLIGHT_EFFECT_STATIC_GRADIENT
- | (1ULL << 0x1D)
- #endif
- #ifdef RGBLIGHT_EFFECT_STATIC_GRADIENT
- | (1ULL << 0x1E)
- #endif
- #ifdef RGBLIGHT_EFFECT_STATIC_GRADIENT
- | (1ULL << 0x1F)
- #endif
- #ifdef RGBLIGHT_EFFECT_STATIC_GRADIENT
- | (1ULL << 0x20)
- #endif
- #ifdef RGBLIGHT_EFFECT_STATIC_GRADIENT
- | (1ULL << 0x21)
- #endif
- #ifdef RGBLIGHT_EFFECT_RGB_TEST
- | (1ULL << 0x22)
- #endif
- #ifdef RGBLIGHT_EFFECT_ALTERNATING
- | (1ULL << 0x23)
- #endif
- #ifdef RGBLIGHT_EFFECT_TWINKLE
- | (1ULL << 0x24)
- #endif
- #ifdef RGBLIGHT_EFFECT_TWINKLE
- | (1ULL << 0x25)
- #endif
- #ifdef RGBLIGHT_EFFECT_TWINKLE
- | (1ULL << 0x26)
- #endif
- #ifdef RGBLIGHT_EFFECT_TWINKLE
- | (1ULL << 0x27)
- #endif
- #ifdef RGBLIGHT_EFFECT_TWINKLE
- | (1ULL << 0x28)
- #endif
- #ifdef RGBLIGHT_EFFECT_TWINKLE
- | (1ULL << 0x29)
- #endif
- };
- static const uint8_t rgblight_effect_map[][2] PROGMEM = {
- { 0x00, RGBLIGHT_MODE_STATIC_LIGHT},
- #ifdef RGBLIGHT_EFFECT_BREATHING
- { 0x01, RGBLIGHT_MODE_BREATHING},
- #endif
- #ifdef RGBLIGHT_EFFECT_BREATHING
- { 0x02, RGBLIGHT_MODE_BREATHING + 1},
- #endif
- #ifdef RGBLIGHT_EFFECT_BREATHING
- { 0x03, RGBLIGHT_MODE_BREATHING + 2},
- #endif
- #ifdef RGBLIGHT_EFFECT_BREATHING
- { 0x04, RGBLIGHT_MODE_BREATHING + 3},
- #endif
- #ifdef RGBLIGHT_EFFECT_RAINBOW_MOOD
- { 0x05, RGBLIGHT_MODE_RAINBOW_MOOD},
- #endif
- #ifdef RGBLIGHT_EFFECT_RAINBOW_MOOD
- { 0x06, RGBLIGHT_MODE_RAINBOW_MOOD + 1},
- #endif
- #ifdef RGBLIGHT_EFFECT_RAINBOW_MOOD
- { 0x07, RGBLIGHT_MODE_RAINBOW_MOOD + 2},
- #endif
- #ifdef RGBLIGHT_EFFECT_RAINBOW_SWIRL
- { 0x08, RGBLIGHT_MODE_RAINBOW_SWIRL},
- #endif
- #ifdef RGBLIGHT_EFFECT_RAINBOW_SWIRL
- { 0x09, RGBLIGHT_MODE_RAINBOW_SWIRL + 1},
- #endif
- #ifdef RGBLIGHT_EFFECT_RAINBOW_SWIRL
- { 0x0A, RGBLIGHT_MODE_RAINBOW_SWIRL + 2},
- #endif
- #ifdef RGBLIGHT_EFFECT_RAINBOW_SWIRL
- { 0x0B, RGBLIGHT_MODE_RAINBOW_SWIRL + 3},
- #endif
- #ifdef RGBLIGHT_EFFECT_RAINBOW_SWIRL
- { 0x0C, RGBLIGHT_MODE_RAINBOW_SWIRL + 4},
- #endif
- #ifdef RGBLIGHT_EFFECT_RAINBOW_SWIRL
- { 0x0D, RGBLIGHT_MODE_RAINBOW_SWIRL + 5},
- #endif
- #ifdef RGBLIGHT_EFFECT_SNAKE
- { 0x0E, RGBLIGHT_MODE_SNAKE},
- #endif
- #ifdef RGBLIGHT_EFFECT_SNAKE
- { 0x0F, RGBLIGHT_MODE_SNAKE + 1},
- #endif
- #ifdef RGBLIGHT_EFFECT_SNAKE
- { 0x10, RGBLIGHT_MODE_SNAKE + 2},
- #endif
- #ifdef RGBLIGHT_EFFECT_SNAKE
- { 0x11, RGBLIGHT_MODE_SNAKE + 3},
- #endif
- #ifdef RGBLIGHT_EFFECT_SNAKE
- { 0x12, RGBLIGHT_MODE_SNAKE + 4},
- #endif
- #ifdef RGBLIGHT_EFFECT_SNAKE
- { 0x13, RGBLIGHT_MODE_SNAKE + 5},
- #endif
- #ifdef RGBLIGHT_EFFECT_KNIGHT
- { 0x14, RGBLIGHT_MODE_KNIGHT},
- #endif
- #ifdef RGBLIGHT_EFFECT_KNIGHT
- { 0x15, RGBLIGHT_MODE_KNIGHT + 1},
- #endif
- #ifdef RGBLIGHT_EFFECT_KNIGHT
- { 0x16, RGBLIGHT_MODE_KNIGHT + 2},
- #endif
- #ifdef RGBLIGHT_EFFECT_CHRISTMAS
- { 0x17, RGBLIGHT_MODE_CHRISTMAS},
- #endif
- #ifdef RGBLIGHT_EFFECT_STATIC_GRADIENT
- { 0x18, RGBLIGHT_MODE_STATIC_GRADIENT},
- #endif
- #ifdef RGBLIGHT_EFFECT_STATIC_GRADIENT
- { 0x19, RGBLIGHT_MODE_STATIC_GRADIENT + 1},
- #endif
- #ifdef RGBLIGHT_EFFECT_STATIC_GRADIENT
- { 0x1A, RGBLIGHT_MODE_STATIC_GRADIENT + 2},
- #endif
- #ifdef RGBLIGHT_EFFECT_STATIC_GRADIENT
- { 0x1B, RGBLIGHT_MODE_STATIC_GRADIENT + 3},
- #endif
- #ifdef RGBLIGHT_EFFECT_STATIC_GRADIENT
- { 0x1C, RGBLIGHT_MODE_STATIC_GRADIENT + 4},
- #endif
- #ifdef RGBLIGHT_EFFECT_STATIC_GRADIENT
- { 0x1D, RGBLIGHT_MODE_STATIC_GRADIENT + 5},
- #endif
- #ifdef RGBLIGHT_EFFECT_STATIC_GRADIENT
- { 0x1E, RGBLIGHT_MODE_STATIC_GRADIENT + 6},
- #endif
- #ifdef RGBLIGHT_EFFECT_STATIC_GRADIENT
- { 0x1F, RGBLIGHT_MODE_STATIC_GRADIENT + 7},
- #endif
- #ifdef RGBLIGHT_EFFECT_STATIC_GRADIENT
- { 0x20, RGBLIGHT_MODE_STATIC_GRADIENT + 8},
- #endif
- #ifdef RGBLIGHT_EFFECT_STATIC_GRADIENT
- { 0x21, RGBLIGHT_MODE_STATIC_GRADIENT + 9},
- #endif
- #ifdef RGBLIGHT_EFFECT_RGB_TEST
- { 0x22, RGBLIGHT_MODE_RGB_TEST},
- #endif
- #ifdef RGBLIGHT_EFFECT_ALTERNATING
- { 0x23, RGBLIGHT_MODE_ALTERNATING},
- #endif
- #ifdef RGBLIGHT_EFFECT_TWINKLE
- { 0x24, RGBLIGHT_MODE_TWINKLE},
- #endif
- #ifdef RGBLIGHT_EFFECT_TWINKLE
- { 0x25, RGBLIGHT_MODE_TWINKLE + 1},
- #endif
- #ifdef RGBLIGHT_EFFECT_TWINKLE
- { 0x26, RGBLIGHT_MODE_TWINKLE + 2},
- #endif
- #ifdef RGBLIGHT_EFFECT_TWINKLE
- { 0x27, RGBLIGHT_MODE_TWINKLE + 3},
- #endif
- #ifdef RGBLIGHT_EFFECT_TWINKLE
- { 0x28, RGBLIGHT_MODE_TWINKLE + 4},
- #endif
- #ifdef RGBLIGHT_EFFECT_TWINKLE
- { 0x29, RGBLIGHT_MODE_TWINKLE + 5},
- #endif
- };
- uint8_t rgblight_effect_to_id(uint8_t val) {
- for(uint8_t i = 0; i < ARRAY_SIZE(rgblight_effect_map); i++) {
- if (pgm_read_byte(&rgblight_effect_map[i][1]) == val)
- return pgm_read_byte(&rgblight_effect_map[i][0]);
- }
- return 0xFF;
- }
- uint8_t rgblight_id_to_effect(uint8_t val) {
- for(uint8_t i = 0; i < ARRAY_SIZE(rgblight_effect_map); i++) {
- if (pgm_read_byte(&rgblight_effect_map[i][0]) == val)
- return pgm_read_byte(&rgblight_effect_map[i][1]);
- }
- return 0xFF;
- }
|