process_rgb_matrix.c (3691B)
1 // Copyright 2024 QMK 2 // SPDX-License-Identifier: GPL-2.0-or-later 3 4 #include "process_rgb_matrix.h" 5 #include "rgb_matrix.h" 6 #include "action_util.h" 7 #include "keycodes.h" 8 #include "modifiers.h" 9 10 bool process_rgb_matrix(uint16_t keycode, keyrecord_t *record) { 11 #ifdef RGB_TRIGGER_ON_KEYDOWN 12 if (record->event.pressed) { 13 #else 14 if (!record->event.pressed) { 15 #endif 16 bool shifted = get_mods() & MOD_MASK_SHIFT; 17 switch (keycode) { 18 case QK_RGB_MATRIX_ON: 19 rgb_matrix_enable(); 20 return false; 21 case QK_RGB_MATRIX_OFF: 22 rgb_matrix_disable(); 23 return false; 24 case QK_RGB_MATRIX_TOGGLE: 25 rgb_matrix_toggle(); 26 return false; 27 case QK_RGB_MATRIX_MODE_NEXT: 28 if (shifted) { 29 rgb_matrix_step_reverse(); 30 } else { 31 rgb_matrix_step(); 32 } 33 return false; 34 case QK_RGB_MATRIX_MODE_PREVIOUS: 35 if (shifted) { 36 rgb_matrix_step(); 37 } else { 38 rgb_matrix_step_reverse(); 39 } 40 return false; 41 case QK_RGB_MATRIX_HUE_UP: 42 if (shifted) { 43 rgb_matrix_decrease_hue(); 44 } else { 45 rgb_matrix_increase_hue(); 46 } 47 return false; 48 case QK_RGB_MATRIX_HUE_DOWN: 49 if (shifted) { 50 rgb_matrix_increase_hue(); 51 } else { 52 rgb_matrix_decrease_hue(); 53 } 54 return false; 55 case QK_RGB_MATRIX_SATURATION_UP: 56 if (shifted) { 57 rgb_matrix_decrease_sat(); 58 } else { 59 rgb_matrix_increase_sat(); 60 } 61 return false; 62 case QK_RGB_MATRIX_SATURATION_DOWN: 63 if (shifted) { 64 rgb_matrix_increase_sat(); 65 } else { 66 rgb_matrix_decrease_sat(); 67 } 68 return false; 69 case QK_RGB_MATRIX_VALUE_UP: 70 if (shifted) { 71 rgb_matrix_decrease_val(); 72 } else { 73 rgb_matrix_increase_val(); 74 } 75 return false; 76 case QK_RGB_MATRIX_VALUE_DOWN: 77 if (shifted) { 78 rgb_matrix_increase_val(); 79 } else { 80 rgb_matrix_decrease_val(); 81 } 82 return false; 83 case QK_RGB_MATRIX_SPEED_UP: 84 if (shifted) { 85 rgb_matrix_decrease_speed(); 86 } else { 87 rgb_matrix_increase_speed(); 88 } 89 return false; 90 case QK_RGB_MATRIX_SPEED_DOWN: 91 if (shifted) { 92 rgb_matrix_increase_speed(); 93 } else { 94 rgb_matrix_decrease_speed(); 95 } 96 return false; 97 case QK_RGB_MATRIX_FLAG_NEXT: 98 if (shifted) { 99 rgb_matrix_flags_step_reverse(); 100 } else { 101 rgb_matrix_flags_step(); 102 } 103 return false; 104 case QK_RGB_MATRIX_FLAG_PREVIOUS: 105 if (shifted) { 106 rgb_matrix_flags_step(); 107 } else { 108 rgb_matrix_flags_step_reverse(); 109 } 110 return false; 111 } 112 } 113 114 return true; 115 }