c2_pro.c 2.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475
  1. /* Copyright 2023 @ Keychron (https://www.keychron.com)
  2. *
  3. * This program is free software: you can redistribute it and/or modify
  4. * it under the terms of the GNU General Public License as published by
  5. * the Free Software Foundation, either version 2 of the License, or
  6. * (at your option) any later version.
  7. *
  8. * This program is distributed in the hope that it will be useful,
  9. * but WITHOUT ANY WARRANTY; without even the implied warranty of
  10. * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  11. * GNU General Public License for more details.
  12. *
  13. * You should have received a copy of the GNU General Public License
  14. * along with this program. If not, see <http://www.gnu.org/licenses/>.
  15. */
  16. #include "quantum.h"
  17. #ifdef DIP_SWITCH_ENABLE
  18. bool dip_switch_update_kb(uint8_t index, bool active) {
  19. if (!dip_switch_update_user(index, active)) {
  20. return false;
  21. }
  22. if (index == 0) {
  23. default_layer_set(1UL << (active ? 2 : 0));
  24. }
  25. return true;
  26. }
  27. #endif // DIP_SWITCH_ENABLE
  28. # ifdef RGB_MATRIX_ENABLE
  29. # define LED_MATRIX_INDICATORS_KB rgb_matrix_indicators_kb
  30. # define LED_MATRIX_INDICATORS_USER rgb_matrix_indicators_user
  31. # define LED_MATRIX_SET_COLOR rgb_matrix_set_color
  32. # define COLOR_WHITE 255, 255, 255
  33. # define COLOR_BLACK 0, 0, 0
  34. # endif
  35. # ifdef LED_MATRIX_ENABLE
  36. # define LED_MATRIX_INDICATORS_KB led_matrix_indicators_kb
  37. # define LED_MATRIX_INDICATORS_USER led_matrix_indicators_user
  38. # define LED_MATRIX_SET_COLOR led_matrix_set_value
  39. # define COLOR_WHITE 255
  40. # define COLOR_BLACK 0
  41. bool LED_MATRIX_INDICATORS_KB(void) {
  42. if (!LED_MATRIX_INDICATORS_USER()) {
  43. return false;
  44. }
  45. if (host_keyboard_led_state().caps_lock) {
  46. LED_MATRIX_SET_COLOR(CAPS_LED_INDEX, COLOR_WHITE);
  47. } else {
  48. LED_MATRIX_SET_COLOR(CAPS_LED_INDEX, COLOR_BLACK);
  49. }
  50. if (host_keyboard_led_state().num_lock) {
  51. LED_MATRIX_SET_COLOR(NUM_LED_INDEX, COLOR_WHITE);
  52. } else {
  53. LED_MATRIX_SET_COLOR(NUM_LED_INDEX, COLOR_BLACK);
  54. }
  55. if (default_layer_state == (1 << 0)) {
  56. LED_MATRIX_SET_COLOR(MAC_LED_INDEX, COLOR_WHITE);
  57. } else {
  58. LED_MATRIX_SET_COLOR(MAC_LED_INDEX, COLOR_BLACK);
  59. }
  60. if (default_layer_state == (1 << 2)) {
  61. LED_MATRIX_SET_COLOR(WIN_LED_INDEX, COLOR_WHITE);
  62. } else {
  63. LED_MATRIX_SET_COLOR(WIN_LED_INDEX, COLOR_BLACK);
  64. }
  65. return true;
  66. }
  67. #endif