summaryrefslogtreecommitdiff
path: root/keyboards/handwired/d48/taphold.h
diff options
context:
space:
mode:
Diffstat (limited to 'keyboards/handwired/d48/taphold.h')
-rw-r--r--keyboards/handwired/d48/taphold.h25
1 files changed, 25 insertions, 0 deletions
diff --git a/keyboards/handwired/d48/taphold.h b/keyboards/handwired/d48/taphold.h
new file mode 100644
index 0000000000..3bc5ca0275
--- /dev/null
+++ b/keyboards/handwired/d48/taphold.h
@@ -0,0 +1,25 @@
+#include "quantum.h"
+
+typedef enum taphold_mode_t {
+ TAPHOLD_LAYER,
+ TAPHOLD_MOD
+} taphold_mode_t;
+
+typedef struct taphold_t {
+ uint16_t key;
+ uint32_t time;
+ taphold_mode_t mode;
+ uint16_t shortAction;
+ uint16_t longAction;
+ keypos_t keypos;
+ // We store key pos to properly release the key
+ // even when a different layer is active and the key has a different action now
+} taphold_t;
+
+extern taphold_t taphold_config[];
+extern uint16_t taphold_config_size;
+// Dual keys tap/hold timeout.
+// If key is tapped for less than this value, send key in addition to primary action after completing the action.
+extern uint32_t taphold_timeout;
+
+bool taphold_process(uint16_t keycode, keyrecord_t *record);