lain.h 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. // Copyright 2022 Takuya Urakawa @hsgw (dm9records.com, 5z6p.com)
  2. // SPDX-License-Identifier: GPL-2.0-or-later
  3. #pragma once
  4. #include "quantum.h"
  5. typedef union {
  6. uint32_t raw;
  7. struct {
  8. bool led_enabled : 1;
  9. };
  10. } keyboard_config_t;
  11. extern keyboard_config_t lain_config;
  12. void lain_set_led(uint8_t no, bool flag);
  13. void lain_enable_leds(bool flag);
  14. void lain_enable_leds_toggle(void);
  15. /* This is a shortcut to help you visually see your layout.
  16. *
  17. * The first section contains all of the arguments representing the physical
  18. * layout of the board and position of the keys.
  19. *
  20. * The second converts the arguments into a two-dimensional array which
  21. * represents the switch matrix.
  22. */
  23. // clang-format off
  24. #define LAYOUT( \
  25. k01,k02,k03,k04,k05,k06,k07, k08,k09,k10,k11,k12,k13, \
  26. k14,k15,k16,k17,k18,k19,k20, k21,k22,k23,k24,k25,k26, \
  27. k27,k28,k29,k30,k31,k32, k33,k34,k35,k36,k37,k38, \
  28. k39,k40,k41,k42,k43, k44,k45,k46,k47,k48,k49) \
  29. { \
  30. {k01, k02, k03,k04,k05,k06,k07, k08,k09,k10,k11,k12,k13}, \
  31. {k14, k15, k16,k17,k18,k19,k20, k21,k22,k23,k24,k25,k26}, \
  32. {k27, k28, k29,k30,k31,k32,KC_NO, k33,k34,k35,k36,k37,k38}, \
  33. {KC_NO,k39, k40,k41,k42,k43,KC_NO, k44,k45,k46,k47,k48,k49} \
  34. }
  35. // clang-format on