aboutsummaryrefslogtreecommitdiffstats
path: root/keyboards/lfkeyboards/lfkpad/lfkpad.h
diff options
context:
space:
mode:
Diffstat (limited to 'keyboards/lfkeyboards/lfkpad/lfkpad.h')
-rw-r--r--keyboards/lfkeyboards/lfkpad/lfkpad.h73
1 files changed, 73 insertions, 0 deletions
diff --git a/keyboards/lfkeyboards/lfkpad/lfkpad.h b/keyboards/lfkeyboards/lfkpad/lfkpad.h
new file mode 100644
index 000000000..d7d66ea7a
--- /dev/null
+++ b/keyboards/lfkeyboards/lfkpad/lfkpad.h
@@ -0,0 +1,73 @@
+#ifndef LFKPAD_H
+#define LFKPAD_H
+
+/* if the kb.h file exists (because we're running from qmkbuilder) include it */
+#if __has_include("kb.h")
+#include "kb.h"
+#endif
+
+#include "quantum.h"
+#include "matrix.h"
+#include <avr/sfr_defs.h>
+
+#ifndef cbi
+#define cbi(sfr, bit) (_SFR_BYTE(sfr) &= ~_BV(bit))
+#endif
+
+#ifndef sbi
+#define sbi(sfr, bit) (_SFR_BYTE(sfr) |= _BV(bit))
+#endif
+
+
+typedef struct RGB_Color {
+ uint16_t red;
+ uint16_t green;
+ uint16_t blue;
+} RGB_Color;
+
+typedef struct Layer_Info {
+ uint32_t layer;
+ uint32_t mask;
+ RGB_Color color;
+} Layer_Info;
+
+extern const uint32_t layer_count;
+extern const Layer_Info layer_info[];
+
+enum action_functions {
+ LFK_CLEAR = 0, // Resets all layers
+ LFK_ESC_TILDE, // esc+lshift = ~
+ LFK_SET_DEFAULT_LAYER, // changes and saves current base layer to eeprom
+ LFK_CLICK_TOGGLE, // Adjusts click duration
+ LFK_CLICK_FREQ_HIGHER, // Adjusts click frequency
+ LFK_CLICK_FREQ_LOWER, // Adjusts click frequency
+ LFK_CLICK_TIME_LONGER, // Adjusts click duration
+ LFK_CLICK_TIME_SHORTER, // Adjusts click duration
+ LFK_DEBUG_SETTINGS, // prints LED and click settings to HID
+ LFK_LED_TEST // cycles through switch and RGB LEDs
+};
+
+#define CLICK_HZ 500
+#define CLICK_MS 2
+#define CLICK_ENABLED 0
+
+void reset_keyboard_kb(void);
+void click(uint16_t freq, uint16_t duration);
+
+#define KEYMAP( \
+ k00, k01, k02, k03,\
+ k10, k11, k12, k13,\
+ k20, k21, k22, k23,\
+ k30, k31, k32,\
+ k40, k41, k42, k43,\
+ k50, k52\
+) { \
+ { k00, k01, k02, k03 }, \
+ { k10, k11, k12, k13 }, \
+ { k20, k21, k22, k23 }, \
+ { k30, k31, k32, KC_NO }, \
+ { k40, k41, k42, k43 }, \
+ { k50, KC_NO, k52, KC_NO } \
+}
+
+#endif //LFKPAD_H \ No newline at end of file