]> git.donarmstrong.com Git - qmk_firmware.git/blob - keyboards/ergodash/rev1/rev1.h
Add more layouts for the ergodash (#6336)
[qmk_firmware.git] / keyboards / ergodash / rev1 / rev1.h
1 #ifndef REV1_H
2 #define REV1_H
3
4 #include "ergodash.h"
5
6 //void promicro_bootloader_jmp(bool program);
7 #include "quantum.h"
8
9
10 #ifdef USE_I2C
11 #include <stddef.h>
12 #ifdef __AVR__
13     #include <avr/io.h>
14     #include <avr/interrupt.h>
15 #endif
16 #endif
17
18 //void promicro_bootloader_jmp(bool program);
19
20 #ifndef FLIP_HALF
21 // Standard Keymap
22 // (TRRS jack on the left half is to the right, TRRS jack on the right half is to the left)
23 #define LAYOUT_4key( \
24     L00, L01, L02, L03, L04, L05, L06,           R00, R01, R02, R03, R04, R05, R06, \
25     L10, L11, L12, L13, L14, L15, L16,           R10, R11, R12, R13, R14, R15, R16, \
26     L20, L21, L22, L23, L24, L25, L26,           R20, R21, R22, R23, R24, R25, R26, \
27     L30, L31, L32, L33, L34, L35, L36,           R30, R31, R32, R33, R34, R35, R36, \
28     L40, L41, L42, L43,      L44, L45, L46, R40, R41, R42,      R43, R44, R45, R46  \
29     ) \
30     { \
31         { L00, L01, L02, L03, L04, L05, L06 }, \
32         { L10, L11, L12, L13, L14, L15, L16 }, \
33         { L20, L21, L22, L23, L24, L25, L26 }, \
34         { L30, L31, L32, L33, L34, L35, L36 }, \
35         { L40, L41, L42, L43, L44, L45, L46 }, \
36         { R06, R05, R04, R03, R02, R01, R00 }, \
37         { R16, R15, R14, R13, R12, R11, R10 }, \
38         { R26, R25, R24, R23, R22, R21, R20 }, \
39         { R36, R35, R34, R33, R32, R31, R30 }, \
40         { R46, R45, R44, R43, R42, R41, R40 }  \
41     }
42
43 // Just defined for configurator support, the matrix is identical to LAYOUT_4key
44 #define LAYOUT_4key_2u_inner( \
45     L00, L01, L02, L03, L04, L05, L06,           R00, R01, R02, R03, R04, R05, R06, \
46     L10, L11, L12, L13, L14, L15, L16,           R10, R11, R12, R13, R14, R15, R16, \
47     L20, L21, L22, L23, L24, L25, L26,           R20, R21, R22, R23, R24, R25, R26, \
48     L30, L31, L32, L33, L34, L35,      L36, R30,      R31, R32, R33, R34, R35, R36, \
49     L40, L41, L42, L43,      L44, L45, L46, R40, R41, R42,      R43, R44, R45, R46  \
50     ) \
51     { \
52         { L00, L01, L02, L03, L04, L05, L06 }, \
53         { L10, L11, L12, L13, L14, L15, L16 }, \
54         { L20, L21, L22, L23, L24, L25, L26 }, \
55         { L30, L31, L32, L33, L34, L35, L36 }, \
56         { L40, L41, L42, L43, L44, L45, L46 }, \
57         { R06, R05, R04, R03, R02, R01, R00 }, \
58         { R16, R15, R14, R13, R12, R11, R10 }, \
59         { R26, R25, R24, R23, R22, R21, R20 }, \
60         { R36, R35, R34, R33, R32, R31, R30 }, \
61         { R46, R45, R44, R43, R42, R41, R40 }  \
62     }
63
64 #define LAYOUT_3key_2us( \
65     L00, L01, L02, L03, L04, L05, L06,           R00, R01, R02, R03, R04, R05, R06, \
66     L10, L11, L12, L13, L14, L15, L16,           R10, R11, R12, R13, R14, R15, R16, \
67     L20, L21, L22, L23, L24, L25, L26,           R20, R21, R22, R23, R24, R25, R26, \
68     L30, L31, L32, L33, L34, L35,                     R31, R32, R33, R34, R35, R36, \
69     L40, L41, L42, L43,      L44, L45, L46, R40, R41, R42,      R43, R44, R45, R46  \
70     ) \
71     { \
72         { L00, L01, L02, L03, L04, L05, L06 }, \
73         { L10, L11, L12, L13, L14, L15, L16 }, \
74         { L20, L21, L22, L23, L24, L25, L26 }, \
75         { L30, L31, L32, L33, L34, L35, KC_NO }, \
76         { L40, L41, L42, L43, L44, L45, L46 }, \
77         { R06, R05, R04, R03, R02, R01, R00 }, \
78         { R16, R15, R14, R13, R12, R11, R10 }, \
79         { R26, R25, R24, R23, R22, R21, R20 }, \
80         { R36, R35, R34, R33, R32, R31, KC_NO }, \
81         { R46, R45, R44, R43, R42, R41, R40 }  \
82     }
83
84
85 #define LAYOUT_3key_1us( \
86     L00, L01, L02, L03, L04, L05, L06, R00, R01, R02, R03, R04, R05, R06, \
87     L10, L11, L12, L13, L14, L15, L16, R10, R11, R12, R13, R14, R15, R16, \
88     L20, L21, L22, L23, L24, L25, L26, R20, R21, R22, R23, R24, R25, R26, \
89     L30, L31, L32, L33, L34, L35, L36, R30, R31, R32, R33, R34, R35, R36, \
90     L40, L41, L42, L43,      L44, L45, R41, R42,      R43, R44, R45, R46  \
91     ) \
92     { \
93         { L00, L01, L02, L03, L04, L05, L06 }, \
94         { L10, L11, L12, L13, L14, L15, L16 }, \
95         { L20, L21, L22, L23, L24, L25, L26 }, \
96         { L30, L31, L32, L33, L34, L35, L36 }, \
97         { L40, L41, L42, L43, L44, L45, KC_NO }, \
98         { R06, R05, R04, R03, R02, R01, R00 }, \
99         { R16, R15, R14, R13, R12, R11, R10 }, \
100         { R26, R25, R24, R23, R22, R21, R20 }, \
101         { R36, R35, R34, R33, R32, R31, R30 }, \
102         { R46, R45, R44, R43, R42, R41, KC_NO }  \
103     }
104
105 #define LAYOUT_2key( \
106     L00, L01, L02, L03, L04, L05, L06, R00, R01, R02, R03, R04, R05, R06, \
107     L10, L11, L12, L13, L14, L15, L16, R10, R11, R12, R13, R14, R15, R16, \
108     L20, L21, L22, L23, L24, L25, L26, R20, R21, R22, R23, R24, R25, R26, \
109     L30, L31, L32, L33, L34, L35,           R31, R32, R33, R34, R35, R36, \
110     L40, L41, L42, L43,      L44, L45, R41, R42,      R43, R44, R45, R46  \
111     ) \
112     { \
113         { L00, L01, L02, L03, L04, L05, L06 }, \
114         { L10, L11, L12, L13, L14, L15, L16 }, \
115         { L20, L21, L22, L23, L24, L25, L26 }, \
116         { L30, L31, L32, L33, L34, L35, KC_NO }, \
117         { L40, L41, L42, L43, L44, L45, KC_NO }, \
118         { R06, R05, R04, R03, R02, R01, R00 }, \
119         { R16, R15, R14, R13, R12, R11, R10 }, \
120         { R26, R25, R24, R23, R22, R21, R20 }, \
121         { R36, R35, R34, R33, R32, R31, KC_NO }, \
122         { R46, R45, R44, R43, R42, R41, KC_NO }  \
123     }
124
125 #define LAYOUT LAYOUT_4key
126
127 #else
128 // Keymap with right side flipped
129 // (TRRS jack on both halves are to the right)
130 #define LAYOUT( \
131     L00, L01, L02, L03, L04, L05, L06, R00, R01, R02, R03, R04, R05, R06, \
132     L10, L11, L12, L13, L14, L15, L16, R10, R11, R12, R13, R14, R15, R16, \
133     L20, L21, L22, L23, L24, L25, L26, R20, R21, R22, R23, R24, R25, R26, \
134     L30, L31, L32, L33, L34, L35, L36, R30, R31, R32, R33, R34, R35, R36, \
135     L40, L41, L42, L43, L44, L45, L46, R40, R41, R42, R43, R44, R45, R46  \
136     ) \
137     { \
138         { L00, L01, L02, L03, L04, L05, L06 }, \
139         { L10, L11, L12, L13, L14, L15, L16 }, \
140         { L20, L21, L22, L23, L24, L25, L26 }, \
141         { L30, L31, L32, L33, L34, L35, L36 }, \
142         { L40, L41, L42, L43, L44, L45, L46 }, \
143         { R00, R01, R02, R03, R04, R05, R06 }, \
144         { R10, R11, R12, R13, R14, R15, R16 }, \
145         { R20, R21, R22, R23, R24, R25, R26 }, \
146         { R30, R31, R32, R33, R34, R35, R36 }, \
147         { R40, R41, R42, R43, R44, R45, R46 }  \
148     }
149 #endif
150
151 #endif