diff options
Diffstat (limited to 'keyboards/handwired/d48/taphold.h')
-rw-r--r-- | keyboards/handwired/d48/taphold.h | 25 |
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 000000000..3bc5ca027 --- /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); |