at master 6.4 kB view raw
1// Copyright 2024 QMK 2// SPDX-License-Identifier: GPL-2.0-or-later 3 4#include "process_underglow.h" 5#if defined(RGBLIGHT_ENABLE) 6# include "rgblight.h" 7#endif 8#include "action_util.h" 9#include "keycodes.h" 10#include "modifiers.h" 11 12// TODO: Remove this 13#if defined(RGB_MATRIX_ENABLE) && !defined(RGB_MATRIX_DISABLE_SHARED_KEYCODES) 14# include "rgb_matrix.h" 15#endif 16 17bool process_underglow(uint16_t keycode, keyrecord_t *record) { 18 if (record->event.pressed) { 19#if defined(RGBLIGHT_ENABLE) || (defined(RGB_MATRIX_ENABLE) && !defined(RGB_MATRIX_DISABLE_SHARED_KEYCODES)) 20 const uint8_t shifted = get_mods() & MOD_MASK_SHIFT; 21#endif 22 23 switch (keycode) { 24 case QK_UNDERGLOW_TOGGLE: 25#if defined(RGBLIGHT_ENABLE) 26 rgblight_toggle(); 27#endif 28 29#if defined(RGB_MATRIX_ENABLE) && !defined(RGB_MATRIX_DISABLE_SHARED_KEYCODES) 30 rgb_matrix_toggle(); 31#endif 32 return false; 33 case QK_UNDERGLOW_MODE_NEXT: 34#if defined(RGBLIGHT_ENABLE) 35 if (shifted) { 36 rgblight_step_reverse(); 37 } else { 38 rgblight_step(); 39 } 40#endif 41 42#if defined(RGB_MATRIX_ENABLE) && !defined(RGB_MATRIX_DISABLE_SHARED_KEYCODES) 43 if (shifted) { 44 rgb_matrix_step_reverse(); 45 } else { 46 rgb_matrix_step(); 47 } 48#endif 49 return false; 50 case QK_UNDERGLOW_MODE_PREVIOUS: 51#if defined(RGBLIGHT_ENABLE) 52 if (shifted) { 53 rgblight_step(); 54 } else { 55 rgblight_step_reverse(); 56 } 57#endif 58 59#if defined(RGB_MATRIX_ENABLE) && !defined(RGB_MATRIX_DISABLE_SHARED_KEYCODES) 60 if (shifted) { 61 rgb_matrix_step(); 62 } else { 63 rgb_matrix_step_reverse(); 64 } 65#endif 66 return false; 67 case QK_UNDERGLOW_HUE_UP: 68#if defined(RGBLIGHT_ENABLE) 69 if (shifted) { 70 rgblight_decrease_hue(); 71 } else { 72 rgblight_increase_hue(); 73 } 74#endif 75 76#if defined(RGB_MATRIX_ENABLE) && !defined(RGB_MATRIX_DISABLE_SHARED_KEYCODES) 77 if (shifted) { 78 rgb_matrix_decrease_hue(); 79 } else { 80 rgb_matrix_increase_hue(); 81 } 82#endif 83 return false; 84 case QK_UNDERGLOW_HUE_DOWN: 85#if defined(RGBLIGHT_ENABLE) 86 if (shifted) { 87 rgblight_increase_hue(); 88 } else { 89 rgblight_decrease_hue(); 90 } 91#endif 92 93#if defined(RGB_MATRIX_ENABLE) && !defined(RGB_MATRIX_DISABLE_SHARED_KEYCODES) 94 if (shifted) { 95 rgb_matrix_increase_hue(); 96 } else { 97 rgb_matrix_decrease_hue(); 98 } 99#endif 100 return false; 101 case QK_UNDERGLOW_SATURATION_UP: 102#if defined(RGBLIGHT_ENABLE) 103 if (shifted) { 104 rgblight_decrease_sat(); 105 } else { 106 rgblight_increase_sat(); 107 } 108#endif 109 110#if defined(RGB_MATRIX_ENABLE) && !defined(RGB_MATRIX_DISABLE_SHARED_KEYCODES) 111 if (shifted) { 112 rgb_matrix_decrease_sat(); 113 } else { 114 rgb_matrix_increase_sat(); 115 } 116#endif 117 return false; 118 case QK_UNDERGLOW_SATURATION_DOWN: 119#if defined(RGBLIGHT_ENABLE) 120 if (shifted) { 121 rgblight_increase_sat(); 122 } else { 123 rgblight_decrease_sat(); 124 } 125#endif 126 127#if defined(RGB_MATRIX_ENABLE) && !defined(RGB_MATRIX_DISABLE_SHARED_KEYCODES) 128 if (shifted) { 129 rgb_matrix_increase_sat(); 130 } else { 131 rgb_matrix_decrease_sat(); 132 } 133#endif 134 return false; 135 case QK_UNDERGLOW_VALUE_UP: 136#if defined(RGBLIGHT_ENABLE) 137 if (shifted) { 138 rgblight_decrease_val(); 139 } else { 140 rgblight_increase_val(); 141 } 142#endif 143 144#if defined(RGB_MATRIX_ENABLE) && !defined(RGB_MATRIX_DISABLE_SHARED_KEYCODES) 145 if (shifted) { 146 rgb_matrix_decrease_val(); 147 } else { 148 rgb_matrix_increase_val(); 149 } 150#endif 151 return false; 152 case QK_UNDERGLOW_VALUE_DOWN: 153#if defined(RGBLIGHT_ENABLE) 154 if (shifted) { 155 rgblight_increase_val(); 156 } else { 157 rgblight_decrease_val(); 158 } 159#endif 160 161#if defined(RGB_MATRIX_ENABLE) && !defined(RGB_MATRIX_DISABLE_SHARED_KEYCODES) 162 if (shifted) { 163 rgb_matrix_increase_val(); 164 } else { 165 rgb_matrix_decrease_val(); 166 } 167#endif 168 return false; 169 case QK_UNDERGLOW_SPEED_UP: 170#if defined(RGBLIGHT_ENABLE) 171 if (shifted) { 172 rgblight_decrease_speed(); 173 } else { 174 rgblight_increase_speed(); 175 } 176#endif 177 178#if defined(RGB_MATRIX_ENABLE) && !defined(RGB_MATRIX_DISABLE_SHARED_KEYCODES) 179 if (shifted) { 180 rgb_matrix_decrease_speed(); 181 } else { 182 rgb_matrix_increase_speed(); 183 } 184#endif 185 return false; 186 case QK_UNDERGLOW_SPEED_DOWN: 187#if defined(RGBLIGHT_ENABLE) 188 if (shifted) { 189 rgblight_increase_speed(); 190 } else { 191 rgblight_decrease_speed(); 192 } 193#endif 194 195#if defined(RGB_MATRIX_ENABLE) && !defined(RGB_MATRIX_DISABLE_SHARED_KEYCODES) 196 if (shifted) { 197 rgb_matrix_increase_speed(); 198 } else { 199 rgb_matrix_decrease_speed(); 200 } 201#endif 202 return false; 203#ifdef VELOCIKEY_ENABLE 204 case QK_VELOCIKEY_TOGGLE: 205 velocikey_toggle(); 206 return false; 207#endif 208 } 209 } 210 211 return true; 212}