solderable.h 3.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102
  1. /* Copyright 2021 datafx
  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. #define LAYOUT_all( \
  17. K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, K014, K015, \
  18. K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, K114, K115, \
  19. K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K213, K214, K215, \
  20. K300, K301, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K312, K313, \
  21. K400, K401, K402, K403, K404, K405, K406, K407, K408, K409, K410, K411, K412, K413, K414, K415, \
  22. K500, K501, K502, K505, K506, K509, K510, K511, K512, K513, K514, K515 \
  23. ) { \
  24. { K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, K014, K015 }, \
  25. { K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, K114, K115 }, \
  26. { K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K213, K214, K215 }, \
  27. { K300, K301, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K312, K313, KC_NO, KC_NO }, \
  28. { K400, K401, K402, K403, K404, K405, K406, K407, K408, K409, K410, K411, K412, K413, K414, K415 }, \
  29. { K500, K501, K502, KC_NO, KC_NO, K505, K506, KC_NO, KC_NO, K509, K510, K511, K512, K513, K514, K515 } \
  30. }
  31. #define u8 uint8_t
  32. #define u16 uint16_t
  33. #pragma once
  34. #include "quantum.h"
  35. #define KEYLED_ROWS 6
  36. #define KEYLED_COLS 16
  37. #define XaxisMax 18
  38. #define YaxisMax 6
  39. #define RhythmLedColumMax 18
  40. typedef struct{
  41. u8 onf;
  42. u8 hightLevel;
  43. u8 ColumHeight[RhythmLedColumMax];
  44. }
  45. RhythmLed_;
  46. typedef struct{
  47. u8 r,g,b;
  48. }
  49. rgb_;
  50. #define colorAGSize 10
  51. #define colorBGSize RGBLED_NUM-10
  52. typedef struct{
  53. rgb_ colorAG[colorAGSize];
  54. rgb_ colorBG[RGBLED_NUM-10];
  55. }
  56. backLedRgbG_;
  57. #define Lseg0 E5
  58. #define Lseg1 B4
  59. #define Lseg2 B5
  60. #define Lseg3 F0
  61. #define Lseg4 C6
  62. #define Lseg5 D5
  63. #define Lcom0 C4
  64. #define Lcom1 C2
  65. #define Lcom2 C0
  66. #define Lcom3 E0
  67. #define Lcom4 D4
  68. #define Lcom5 E4
  69. #define Lcom6 B6
  70. #define Lcom7 B2
  71. #define Lcom8 F4
  72. #define Lcom9 A0
  73. #define Lcom10 F2
  74. #define Lcom11 A4
  75. #define Lcom12 F1
  76. #define Lcom13 A7
  77. #define Lcom14 D3
  78. #define Lcom15 A3
  79. extern void keyLedDriver(void);
  80. extern void KeyLedCom(void);
  81. u8 getKeyLedIndexForXY(u8 x,u8 y);
  82. extern void ledCapsSet(bool onf);
  83. extern void ledNumSet(bool onf);
  84. extern void ledSollSet(bool onf);
  85. void reflashLedState(void);