]> git.donarmstrong.com Git - qmk_firmware.git/blob - keyboards/ergodox_infinity/ergodox_infinity.h
[Keyboard] fixed pins for numpad_5x4 layout (#6311)
[qmk_firmware.git] / keyboards / ergodox_infinity / ergodox_infinity.h
1 #ifndef KEYBOARDS_ERGODOX_INFINITY_INFINITY_H_
2 #define KEYBOARDS_ERGODOX_INFINITY_INFINITY_H_
3
4 #include "quantum.h"
5
6 void ergodox_board_led_on(void);
7 void ergodox_right_led_1_on(void);
8 void ergodox_right_led_2_on(void);
9 void ergodox_right_led_3_on(void);
10
11 inline void ergodox_right_led_on(uint8_t led) {
12     switch (led) {
13     case 0:
14         ergodox_right_led_1_on();
15         break;
16     case 1:
17         ergodox_right_led_2_on();
18         break;
19     case 2:
20         ergodox_right_led_3_on();
21         break;
22     }
23 }
24
25 void ergodox_board_led_off(void);
26 void ergodox_right_led_1_off(void);
27 void ergodox_right_led_2_off(void);
28 void ergodox_right_led_3_off(void);
29 inline void ergodox_right_led_off(uint8_t led) {
30     switch (led) {
31     case 0:
32         ergodox_right_led_1_off();
33         break;
34     case 1:
35         ergodox_right_led_2_off();
36         break;
37     case 2:
38         ergodox_right_led_3_off();
39         break;
40     }
41 }
42
43 inline void ergodox_led_all_on(void)
44 {
45     ergodox_board_led_on();
46     ergodox_right_led_1_on();
47     ergodox_right_led_2_on();
48     ergodox_right_led_3_on();
49 }
50
51 inline void ergodox_led_all_off(void)
52 {
53     ergodox_board_led_off();
54     ergodox_right_led_1_off();
55     ergodox_right_led_2_off();
56     ergodox_right_led_3_off();
57 }
58
59 void ergodox_right_led_1_set(uint8_t n);
60 void ergodox_right_led_2_set(uint8_t n);
61 void ergodox_right_led_3_set(uint8_t n);
62
63 inline void ergodox_right_led_set(uint8_t led, uint8_t n){
64     switch (led) {
65     case 0:
66         ergodox_right_led_1_set(n);
67         break;
68     case 1:
69         ergodox_right_led_2_set(n);
70         break;
71     case 2:
72         ergodox_right_led_3_set(n);
73         break;
74     }
75 }
76
77 inline void ergodox_led_all_set(uint8_t n) {
78     ergodox_right_led_1_set(n);
79     ergodox_right_led_2_set(n);
80     ergodox_right_led_3_set(n);
81 }
82
83 /*
84  *   LEFT HAND: LINES 88-95
85  *  RIGHT HAND: LINES 97-104
86  */
87 #define LAYOUT_ergodox( \
88     A80, A70, A60, A50, A40, A30, A20,  \
89     A81, A71, A61, A51, A41, A31, A21,  \
90     A82, A72, A62, A52, A42, A32,       \
91     A83, A73, A63, A53, A43, A33, A23,  \
92     A84, A74, A64, A54, A44,            \
93                                   A13, A03, \
94                                        A04, \
95                              A34, A24, A14, \
96                                             \
97          B20, B30, B40, B50, B60, B70, B80, \
98          B21, B31, B41, B51, B61, B71, B81, \
99               B32, B42, B52, B62, B72, B82, \
100          B23, B33, B43, B53, B63, B73, B83, \
101                    B44, B54, B64, B74, B84, \
102     B03, B13,     \
103     B04,          \
104     B14, B24, B34 \
105 ) { \
106     { KC_NO, KC_NO, KC_NO, A03,   A04 }, \
107     { KC_NO, KC_NO, KC_NO, A13,   A14 }, \
108     { A20,   A21,   KC_NO, A23,   A24 }, \
109     { A30,   A31,   A32,   A33,   A34 }, \
110     { A40,   A41,   A42,   A43,   A44 }, \
111     { A50,   A51,   A52,   A53,   A54 }, \
112     { A60,   A61,   A62,   A63,   A64 }, \
113     { A70,   A71,   A72,   A73,   A74 }, \
114     { A80,   A81,   A82,   A83,   A84 }, \
115     { KC_NO, KC_NO, KC_NO, B03,   B04 }, \
116     { KC_NO, KC_NO, KC_NO, B13,   B14 }, \
117     { B20,   B21,   KC_NO, B23,   B24 }, \
118     { B30,   B31,   B32,   B33,   B34 }, \
119     { B40,   B41,   B42,   B43,   B44 }, \
120     { B50,   B51,   B52,   B53,   B54 }, \
121     { B60,   B61,   B62,   B63,   B64 }, \
122     { B70,   B71,   B72,   B73,   B74 }, \
123     { B80,   B81,   B82,   B83,   B84 }  \
124 }
125
126 /*  -------------- LEFT HAND --------------     -------------- RIGHT HAND -------------- */
127 #define LAYOUT_ergodox_pretty(                                                              \
128                                                                                             \
129     A80, A70, A60, A50, A40, A30, A20,               B20, B30, B40, B50, B60, B70, B80,     \
130     A81, A71, A61, A51, A41, A31, A21,               B21, B31, B41, B51, B61, B71, B81,     \
131     A82, A72, A62, A52, A42, A32,                         B32, B42, B52, B62, B72, B82,     \
132     A83, A73, A63, A53, A43, A33, A23,               B23, B33, B43, B53, B63, B73, B83,     \
133     A84, A74, A64, A54, A44,                                   B44, B54, B64, B74, B84,     \
134                                   A13, A03,     B03, B13,                                   \
135                                        A04,     B04,                                        \
136                              A34, A24, A14,     B14, B24, B34 )                             \
137                                                                                             \
138    /* matrix positions */                \
139  {                                       \
140     { KC_NO, KC_NO, KC_NO, A03,   A04 }, \
141     { KC_NO, KC_NO, KC_NO, A13,   A14 }, \
142     { A20,   A21,   KC_NO, A23,   A24 }, \
143     { A30,   A31,   A32,   A33,   A34 }, \
144     { A40,   A41,   A42,   A43,   A44 }, \
145     { A50,   A51,   A52,   A53,   A54 }, \
146     { A60,   A61,   A62,   A63,   A64 }, \
147     { A70,   A71,   A72,   A73,   A74 }, \
148     { A80,   A81,   A82,   A83,   A84 }, \
149     { KC_NO, KC_NO, KC_NO, B03,   B04 }, \
150     { KC_NO, KC_NO, KC_NO, B13,   B14 }, \
151     { B20,   B21,   KC_NO, B23,   B24 }, \
152     { B30,   B31,   B32,   B33,   B34 }, \
153     { B40,   B41,   B42,   B43,   B44 }, \
154     { B50,   B51,   B52,   B53,   B54 }, \
155     { B60,   B61,   B62,   B63,   B64 }, \
156     { B70,   B71,   B72,   B73,   B74 }, \
157     { B80,   B81,   B82,   B83,   B84 }  \
158 }
159
160 #endif /* KEYBOARDS_ERGODOX_INFINITY_INFINITY_H_ */