Parent directory

process_underglow.c

6100 bytes
  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        uint8_t shifted = get_mods() & MOD_MASK_SHIFT;
 20        switch (keycode) {
 21            case QK_UNDERGLOW_TOGGLE:
 22#if defined(RGBLIGHT_ENABLE)
 23                rgblight_toggle();
 24#endif
 25
 26#if defined(RGB_MATRIX_ENABLE) && !defined(RGB_MATRIX_DISABLE_SHARED_KEYCODES)
 27                rgb_matrix_toggle();
 28#endif
 29                return false;
 30            case QK_UNDERGLOW_MODE_NEXT:
 31#if defined(RGBLIGHT_ENABLE)
 32                if (shifted) {
 33                    rgblight_step_reverse();
 34                } else {
 35                    rgblight_step();
 36                }
 37#endif
 38
 39#if defined(RGB_MATRIX_ENABLE) && !defined(RGB_MATRIX_DISABLE_SHARED_KEYCODES)
 40                if (shifted) {
 41                    rgb_matrix_step_reverse();
 42                } else {
 43                    rgb_matrix_step();
 44                }
 45#endif
 46                return false;
 47            case QK_UNDERGLOW_MODE_PREVIOUS:
 48#if defined(RGBLIGHT_ENABLE)
 49                if (shifted) {
 50                    rgblight_step();
 51                } else {
 52                    rgblight_step_reverse();
 53                }
 54#endif
 55
 56#if defined(RGB_MATRIX_ENABLE) && !defined(RGB_MATRIX_DISABLE_SHARED_KEYCODES)
 57                if (shifted) {
 58                    rgb_matrix_step();
 59                } else {
 60                    rgb_matrix_step_reverse();
 61                }
 62#endif
 63                return false;
 64            case QK_UNDERGLOW_HUE_UP:
 65#if defined(RGBLIGHT_ENABLE)
 66                if (shifted) {
 67                    rgblight_decrease_hue();
 68                } else {
 69                    rgblight_increase_hue();
 70                }
 71#endif
 72
 73#if defined(RGB_MATRIX_ENABLE) && !defined(RGB_MATRIX_DISABLE_SHARED_KEYCODES)
 74                if (shifted) {
 75                    rgb_matrix_decrease_hue();
 76                } else {
 77                    rgb_matrix_increase_hue();
 78                }
 79#endif
 80                return false;
 81            case QK_UNDERGLOW_HUE_DOWN:
 82#if defined(RGBLIGHT_ENABLE)
 83                if (shifted) {
 84                    rgblight_increase_hue();
 85                } else {
 86                    rgblight_decrease_hue();
 87                }
 88#endif
 89
 90#if defined(RGB_MATRIX_ENABLE) && !defined(RGB_MATRIX_DISABLE_SHARED_KEYCODES)
 91                if (shifted) {
 92                    rgb_matrix_increase_hue();
 93                } else {
 94                    rgb_matrix_decrease_hue();
 95                }
 96#endif
 97                return false;
 98            case QK_UNDERGLOW_SATURATION_UP:
 99#if defined(RGBLIGHT_ENABLE)
100                if (shifted) {
101                    rgblight_decrease_sat();
102                } else {
103                    rgblight_increase_sat();
104                }
105#endif
106
107#if defined(RGB_MATRIX_ENABLE) && !defined(RGB_MATRIX_DISABLE_SHARED_KEYCODES)
108                if (shifted) {
109                    rgb_matrix_decrease_sat();
110                } else {
111                    rgb_matrix_increase_sat();
112                }
113#endif
114                return false;
115            case QK_UNDERGLOW_SATURATION_DOWN:
116#if defined(RGBLIGHT_ENABLE)
117                if (shifted) {
118                    rgblight_increase_sat();
119                } else {
120                    rgblight_decrease_sat();
121                }
122#endif
123
124#if defined(RGB_MATRIX_ENABLE) && !defined(RGB_MATRIX_DISABLE_SHARED_KEYCODES)
125                if (shifted) {
126                    rgb_matrix_increase_sat();
127                } else {
128                    rgb_matrix_decrease_sat();
129                }
130#endif
131                return false;
132            case QK_UNDERGLOW_VALUE_UP:
133#if defined(RGBLIGHT_ENABLE)
134                if (shifted) {
135                    rgblight_decrease_val();
136                } else {
137                    rgblight_increase_val();
138                }
139#endif
140
141#if defined(RGB_MATRIX_ENABLE) && !defined(RGB_MATRIX_DISABLE_SHARED_KEYCODES)
142                if (shifted) {
143                    rgb_matrix_decrease_val();
144                } else {
145                    rgb_matrix_increase_val();
146                }
147#endif
148                return false;
149            case QK_UNDERGLOW_VALUE_DOWN:
150#if defined(RGBLIGHT_ENABLE)
151                if (shifted) {
152                    rgblight_increase_val();
153                } else {
154                    rgblight_decrease_val();
155                }
156#endif
157
158#if defined(RGB_MATRIX_ENABLE) && !defined(RGB_MATRIX_DISABLE_SHARED_KEYCODES)
159                if (shifted) {
160                    rgb_matrix_increase_val();
161                } else {
162                    rgb_matrix_decrease_val();
163                }
164#endif
165                return false;
166            case QK_UNDERGLOW_SPEED_UP:
167#if defined(RGBLIGHT_ENABLE)
168                if (shifted) {
169                    rgblight_decrease_speed();
170                } else {
171                    rgblight_increase_speed();
172                }
173#endif
174
175#if defined(RGB_MATRIX_ENABLE) && !defined(RGB_MATRIX_DISABLE_SHARED_KEYCODES)
176                if (shifted) {
177                    rgb_matrix_decrease_speed();
178                } else {
179                    rgb_matrix_increase_speed();
180                }
181#endif
182                return false;
183            case QK_UNDERGLOW_SPEED_DOWN:
184#if defined(RGBLIGHT_ENABLE)
185                if (shifted) {
186                    rgblight_increase_speed();
187                } else {
188                    rgblight_decrease_speed();
189                }
190#endif
191
192#if defined(RGB_MATRIX_ENABLE) && !defined(RGB_MATRIX_DISABLE_SHARED_KEYCODES)
193                if (shifted) {
194                    rgb_matrix_increase_speed();
195                } else {
196                    rgb_matrix_decrease_speed();
197                }
198#endif
199                return false;
200        }
201    }
202
203    return true;
204}