amjpad.h 1.3 KB

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