]> git.donarmstrong.com Git - qmk_firmware.git/blob - keyboards/lfkeyboards/lfk87/lfk87.h
Remove more commented out MCUs
[qmk_firmware.git] / keyboards / lfkeyboards / lfk87 / lfk87.h
1 #ifndef LFK87_H
2 #define LFK87_H
3
4 /* if the kb.h file exists (because we're running from qmkbuilder) include it */
5 #if __has_include("kb.h")
6 #include "kb.h"
7 #endif
8
9 #include "quantum.h"
10 #include "matrix.h"
11 #include <avr/sfr_defs.h>
12
13 #ifndef cbi
14 #define cbi(sfr, bit) (_SFR_BYTE(sfr) &= ~_BV(bit))
15 #endif
16
17 #ifndef sbi
18 #define sbi(sfr, bit) (_SFR_BYTE(sfr) |= _BV(bit))
19 #endif
20
21
22 typedef struct RGB_Color {
23     uint16_t red;
24     uint16_t green;
25     uint16_t blue;
26 } RGB_Color;
27
28 typedef struct Layer_Info {
29     uint32_t layer;
30     uint32_t mask;
31     RGB_Color color;
32 } Layer_Info;
33
34 extern const uint32_t layer_count;
35 extern const Layer_Info layer_info[];
36
37 enum action_functions {
38     LFK_CLEAR = 0,          // Resets all layers
39     LFK_ESC_TILDE,          // esc+lshift = ~
40     LFK_SET_DEFAULT_LAYER,  // changes and saves current base layer to eeprom
41     LFK_CLICK_TOGGLE,       // Adjusts click duration
42     LFK_CLICK_FREQ_HIGHER,  // Adjusts click frequency
43     LFK_CLICK_FREQ_LOWER,   // Adjusts click frequency
44     LFK_CLICK_TIME_LONGER,  // Adjusts click duration
45     LFK_CLICK_TIME_SHORTER, // Adjusts click duration
46     LFK_DEBUG_SETTINGS,     // prints LED and click settings to HID
47     LFK_LED_TEST,           // cycles through switch and RGB LEDs
48     LFK_PLAY_ONEUP
49 };
50
51 #define CLICK_HZ 500
52 #define CLICK_MS 2
53 #define CLICK_ENABLED 0
54
55 void reset_keyboard_kb(void);
56 void click(uint16_t freq, uint16_t duration);
57
58 #define ___ KC_NO
59
60 #ifdef LFK_TKL_REV_A
61     #ifndef LAYOUT_tkl_ansi
62         #define LAYOUT_tkl_ansi( \
63             k11,       k13, k14, k15, k16,    k17, k18, k19, k1a,    k1b, k1c, k1d, k1e,   k1f, k1g, k1h, \
64             k21,  k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, k2d,       k2e,   k2f, k2g, k2h, \
65             k31,    k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, k3d,     k3e,   k3f, k3g, k3h, \
66             k41,     k42, k43, k44, k45, k46, k47, k48, k49, k4a, k4b, k4c,         k4d, \
67             k51,      k53, k54, k55, k56, k57, k58, k59, k5a, k5b, k5c,             k5d,        k5g, \
68             k61,   k62,   k63,                 k67,            k6b,   k6c,   k6d,   k6e,   k6f, k6g, k6h  \
69         ) \
70         { \
71             { k11, ___, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d, k1e, k1f, k1g, k1h }, \
72             { k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, k2d, k2e, k2f, k2g, k2h }, \
73             { k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, k3d, k3e, k3f, k3g, k3h }, \
74             { k41, k42, k43, k44, k45, k46, k47, k48, k49, k4a, k4b, k4c, k4d, ___, ___, ___, ___ }, \
75             { k51, ___, k53, k54, k55, k56, k57, k58, k59, k5a, k5b, k5c, k5d, ___, ___, k5g, ___ }, \
76             { k61, k62, k63, ___, ___, ___, k67, ___, ___, ___, k6b, k6c, k6d, k6e, k6f, k6g, k6h }, \
77         }
78
79     #endif // !LAYOUT_tkl_ansi
80     #ifndef LAYOUT_tkl_iso
81         #define LAYOUT_tkl_iso( \
82             k11,       k13, k14, k15, k16,    k17, k18, k19, k1a,    k1b, k1c, k1d, k1e,   k1f, k1g, k1h, \
83             k21,  k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, k2d,       k2e,   k2f, k2g, k2h, \
84             k31,    k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, k3d,            k3f, k3g, k3h, \
85             k41,     k42, k43, k44, k45, k46, k47, k48, k49, k4a, k4b, k4c, k4d,    k3e, \
86             k51, k52, k53, k54, k55, k56, k57, k58, k59, k5a, k5b, k5c,             k5d,        k5g, \
87             k61,   k62,   k63,                 k67,            k6b,   k6c,   k6d,   k6e,   k6f, k6g, k6h  \
88         ) \
89         { \
90             { k11, ___, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d, k1e, k1f, k1g, k1h }, \
91             { k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, k2d, k2e, k2f, k2g, k2h }, \
92             { k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, k3d, k3e, k3f, k3g, k3h }, \
93             { k41, k42, k43, k44, k45, k46, k47, k48, k49, k4a, k4b, k4c, k4d, ___, ___, ___, ___ }, \
94             { k51, k52, k53, k54, k55, k56, k57, k58, k59, k5a, k5b, k5c, k5d, ___, ___, k5g, ___ }, \
95             { k61, k62, k63, ___, ___, ___, k67, ___, ___, ___, k6b, k6c, k6d, k6e, k6f, k6g, k6h }, \
96         }
97
98     #endif // !LAYOUT_tkl_iso
99 #else  // RevC+ keymaps
100     #ifndef LAYOUT_tkl_ansi
101         #define LAYOUT_tkl_ansi( \
102             k71,       k11, k12, k13, k14,    k15, k16, k17, k18,    k19, k1a, k1b, k1c,   k1e, k1f, k1g, \
103             k72,  k73, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b,       k2c,   k2e, k2f, k2g, \
104             k74,    k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c,     k3d,   k3e, k3f, k3g, \
105             k61,     k41, k42, k43, k44, k45, k46, k47, k48, k49, k4a, k4b,         k4c, \
106             k62,      k52, k53, k54, k55, k56, k57, k58, k59, k5a, k5b,             k5c,        k5f, \
107             k63,   k64,   k65,                 k67,            k6a,   k6b,   k6c,   k6d,   k6e, k6f, k6g  \
108         ) \
109         { \
110             { k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, ___, k1e, k1f, k1g }, \
111             { k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, ___, k2e, k2f, k2g }, \
112             { k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, k3d, k3e, k3f, k3g }, \
113             { k41, k42, k43, k44, k45, k46, k47, k48, k49, k4a, k4b, k4c, ___, ___, ___, ___ }, \
114             { ___, k52, k53, k54, k55, k56, k57, k58, k59, k5a, k5b, k5c, ___, ___, k5f, ___ }, \
115             { k61, k62, k63, k64, k65, ___, k67, ___, ___, k6a, k6b, k6c, k6d, k6e, k6f, k6g }, \
116             { k71, k72, k73, k74, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___ }, \
117         }
118
119     #endif // !LAYOUT_tkl_ansi
120     #ifndef LAYOUT_tkl_iso
121         #define LAYOUT_tkl_iso( \
122             k71,       k11, k12, k13, k14,    k15, k16, k17, k18,    k19, k1a, k1b, k1c,   k1e, k1f, k1g, \
123             k72,  k73, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b,       k2c,   k2e, k2f, k2g, \
124             k74,    k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c,            k3e, k3f, k3g, \
125             k61,     k41, k42, k43, k44, k45, k46, k47, k48, k49, k4a, k4b, k4c,    k3d, \
126             k62, k51, k52, k53, k54, k55, k56, k57, k58, k59, k5a, k5b,             k5c,        k5f, \
127             k63,   k64,   k65,                 k67,            k6a,   k6b,   k6c,   k6d,   k6e, k6f, k6g  \
128         ) \
129         { \
130             { k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, ___, k1e, k1f, k1g }, \
131             { k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, ___, k2e, k2f, k2g }, \
132             { k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, k3d, k3e, k3f, k3g }, \
133             { k41, k42, k43, k44, k45, k46, k47, k48, k49, k4a, k4b, k4c, ___, ___, ___, ___ }, \
134             { k51, k52, k53, k54, k55, k56, k57, k58, k59, k5a, k5b, k5c, ___, ___, k5f, ___ }, \
135             { k61, k62, k63, k64, k65, ___, k67, ___, ___, k6a, k6b, k6c, k6d, k6e, k6f, k6g }, \
136             { k71, k72, k73, k74, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___ }, \
137         }
138
139     #endif // !LAYOUT_tkl_iso
140 #endif //Rev
141
142 #endif //LFK87_H