process_underglow.c (6358B)
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 17 bool 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 }