]> git.donarmstrong.com Git - qmk_firmware.git/blob - keyboards/lfkeyboards/mini1800/mini1800.h
Add user-overridable callback for cancelling UCIS input (#5564)
[qmk_firmware.git] / keyboards / lfkeyboards / mini1800 / mini1800.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         // a = 10
61         // b = 11
62         // c = 12
63         // d = 13
64         // e = 14
65         // f = 15
66         // g = 16
67         // h = 17
68         // i = 18
69         // j = 19
70
71 #ifndef LAYOUT
72     #define LAYOUT( \
73         k11,  k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d,        k1f,        k1g, k1h, k1i, k1j,\
74         k21,    k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, k2d,      k2e,        k2g, k2h, k2i, k2j,\
75         k31,     k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c,          k2f,        k3g, k3h, k3i, k3j,\
76         k41,      k43, k44, k45, k46, k47, k48, k49, k4a, k4b, k4c,          k4d,   k4f,     k4g, k4h, k4i, k4j,\
77         k51,   k52,   k53,                 k56,             k5b, k5c, k5d,     k5f, k5g, k5h,     k5i, k5j \
78     ) \
79     { \
80         { k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d, ___, k1f, k1g, k1h, k1i, k1j }, \
81         { k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, k2d, k2e, k2f, k2g, k2h, k2i, k2j }, \
82         { k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, ___, ___, ___, k3g, k3h, k3i, k3j }, \
83         { k41, ___, k43, k44, k45, k46, k47, k48, k49, k4a, k4b, k4c, k4d, ___, k4f, k4g, k4h, k4i, k4j }, \
84         { k51, k52, k53, ___, ___, k56, ___, ___, ___, ___, k5b, k5c, k5d, ___, k5f, k5g, k5h, k5i, k5j }, \
85     }
86
87 #endif // !LAYOUT #endif
88
89 #endif //LFK87_H