logo

qmk_firmware

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

lain.c (1242B)


  1. // Copyright 2022 Takuya Urakawa @hsgw (dm9records.com, 5z6p.com)
  2. // SPDX-License-Identifier: GPL-2.0-or-later
  3. #include "lain.h"
  4. keyboard_config_t lain_config;
  5. static const pin_t leds[LED_NUM] = LED_PINS;
  6. bool led_states[LED_NUM] = {0};
  7. void lain_eeconfig_update_kb(void) { eeconfig_update_kb(lain_config.raw); }
  8. void lain_set_led(uint8_t no, bool flag) {
  9. led_states[no] = flag;
  10. gpio_write_pin(leds[no], lain_config.led_enabled ? flag : false);
  11. }
  12. void lain_enable_leds(bool flag) {
  13. lain_config.led_enabled = flag;
  14. lain_eeconfig_update_kb();
  15. for (int i = 0; i < LED_NUM; i++) {
  16. gpio_write_pin(leds[i], lain_config.led_enabled ? led_states[i] : false);
  17. }
  18. }
  19. void lain_enable_leds_toggle(void) { lain_enable_leds(!lain_config.led_enabled); }
  20. void led_init_ports(void) {
  21. for (uint8_t i = 0; i < LED_NUM; i++) {
  22. gpio_set_pin_output(leds[i]);
  23. lain_set_led(leds[i], 0);
  24. }
  25. }
  26. void eeconfig_init_kb(void) {
  27. // set default config
  28. lain_config.led_enabled = true;
  29. lain_eeconfig_update_kb();
  30. eeconfig_init_user();
  31. }
  32. void keyboard_post_init_kb(void) {
  33. // read stored config
  34. lain_config.raw = eeconfig_read_kb();
  35. keyboard_post_init_user();
  36. }