You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

61 lines
1.2 KiB

  1. #ifndef AMJPAD_H
  2. #define ADMJPAD_H
  3. #include "quantum.h"
  4. // readability
  5. #define XXX KC_NO
  6. /* AMJPAD matrix layout
  7. * ,-------------------.
  8. * | 00 | 01 | 02 | 03 |
  9. * |----|----|----|----|
  10. * | 10 | 11 | 12 | 13 |
  11. * |----|----|----|----|
  12. * | 20 | 21 | 22 | |
  13. * |----|----|----| 23 |
  14. * | 30 | 31 | 32 | |
  15. * |----|----|----|----|
  16. * | 40 | 41 | 42 | |
  17. * |----|----|----| 43 |
  18. * | 50 | 52 | |
  19. * `-------------------'
  20. */
  21. // The first section contains all of the arguments
  22. // The second converts the arguments into a two-dimensional array
  23. #define KEYMAP( \
  24. k00, k01, k02, k03, \
  25. k10, k11, k12, k13, \
  26. k20, k21, k22, k23, \
  27. k30, k31, k32, \
  28. k40, k41, k42, k43, \
  29. k50, k52 \
  30. ) \
  31. { \
  32. {k00, k01, k02, k03}, \
  33. {k10, k11, k12, k13}, \
  34. {k20, k21, k22, k23}, \
  35. {k30, k31, k32, XXX}, \
  36. {k40, k41, k42, k43}, \
  37. {k50, XXX, k52, XXX} \
  38. }
  39. #define MAXKEYMAP( \
  40. k00, k01, k02, k03, \
  41. k10, k11, k12, k13, \
  42. k20, k21, k22, k23, \
  43. k30, k31, k32, k33, \
  44. k40, k41, k42, k43, \
  45. k50, k51, k52, k53\
  46. ) \
  47. { \
  48. {k00, k01, k02, k03}, \
  49. {k10, k11, k12, k13}, \
  50. {k20, k21, k22, k23}, \
  51. {k30, k31, k32, k33}, \
  52. {k40, k41, k42, k43}, \
  53. {k50, k51, k52, k53} \
  54. }
  55. void matrix_init_user(void);
  56. void matrix_scan_user(void);
  57. #endif