c2_pro_v2.c 1.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. /* Copyright 2025 @ 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 ? 0 : 2));
  24. }
  25. return true;
  26. }
  27. #endif
  28. void keyboard_post_init_kb(void) {
  29. gpio_set_pin_output_push_pull(LED_MAC_OS_PIN);
  30. gpio_set_pin_output_push_pull(LED_WIN_OS_PIN);
  31. gpio_write_pin(LED_MAC_OS_PIN, !LED_OS_PIN_ON_STATE);
  32. gpio_write_pin(LED_WIN_OS_PIN, !LED_OS_PIN_ON_STATE);
  33. keyboard_post_init_user();
  34. }
  35. void housekeeping_task_kb(void) {
  36. if (default_layer_state == (1U << 0)) {
  37. gpio_write_pin(LED_MAC_OS_PIN, LED_OS_PIN_ON_STATE);
  38. gpio_write_pin(LED_WIN_OS_PIN, !LED_OS_PIN_ON_STATE);
  39. }
  40. if (default_layer_state == (1U << 2)) {
  41. gpio_write_pin(LED_MAC_OS_PIN, !LED_OS_PIN_ON_STATE);
  42. gpio_write_pin(LED_WIN_OS_PIN, LED_OS_PIN_ON_STATE);
  43. }
  44. }
  45. void suspend_power_down_kb(void) {
  46. gpio_write_pin(LED_WIN_OS_PIN, !LED_OS_PIN_ON_STATE);
  47. gpio_write_pin(LED_MAC_OS_PIN, !LED_OS_PIN_ON_STATE);
  48. suspend_power_down_user();
  49. }