logo

qmk_firmware

custom branch of QMK firmware git clone https://anongit.hacktivis.me/git/qmk_firmware.git

process_underglow.c (6223B)


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