aboutsummaryrefslogtreecommitdiff
path: root/quantum/process_keycode/process_auto_shift.h
diff options
context:
space:
mode:
authorIsaac Elenbaas <isaacelenbaas@gmail.com>2021-11-25 07:12:14 -0500
committerGitHub <noreply@github.com>2021-11-25 23:12:14 +1100
commitd9393b86842b7ef143259b5f771ae7969f98cbb4 (patch)
treee0760c20f65c4cac7b6ffb3fedf3f36c6f7c13a2 /quantum/process_keycode/process_auto_shift.h
parent282e916d86a5d353b7cbdfef3afad3c7b011eb14 (diff)
downloadqmk_firmware-d9393b86842b7ef143259b5f771ae7969f98cbb4.tar.gz
qmk_firmware-d9393b86842b7ef143259b5f771ae7969f98cbb4.zip
Add Retro Shift (Auto Shift for Tap Hold via Retro Tapping) and Custom Auto Shifts (#11059)
* Add Retro Shift and Custom Auto Shifts * Fix compilation errors with no RETRO_SHIFT value
Diffstat (limited to 'quantum/process_keycode/process_auto_shift.h')
-rw-r--r--quantum/process_keycode/process_auto_shift.h22
1 files changed, 20 insertions, 2 deletions
diff --git a/quantum/process_keycode/process_auto_shift.h b/quantum/process_keycode/process_auto_shift.h
index 00a9ab036..ac6a14374 100644
--- a/quantum/process_keycode/process_auto_shift.h
+++ b/quantum/process_keycode/process_auto_shift.h
@@ -22,13 +22,31 @@
22# define AUTO_SHIFT_TIMEOUT 175 22# define AUTO_SHIFT_TIMEOUT 175
23#endif 23#endif
24 24
25#define IS_LT(kc) ((kc) >= QK_LAYER_TAP && (kc) <= QK_LAYER_TAP_MAX)
26#define IS_MT(kc) ((kc) >= QK_MOD_TAP && (kc) <= QK_MOD_TAP_MAX)
27#define IS_RETRO(kc) (IS_MT(kc) || IS_LT(kc))
28#define DO_GET_AUTOSHIFT_TIMEOUT(keycode, record, ...) record
29// clang-format off
30#define AUTO_SHIFT_ALPHA KC_A ... KC_Z
31#define AUTO_SHIFT_NUMERIC KC_1 ... KC_0
32#define AUTO_SHIFT_SPECIAL \
33 KC_TAB: \
34 case KC_MINUS ... KC_SLASH: \
35 case KC_NONUS_BSLASH
36// clang-format on
37
25bool process_auto_shift(uint16_t keycode, keyrecord_t *record); 38bool process_auto_shift(uint16_t keycode, keyrecord_t *record);
39void retroshift_poll_time(keyevent_t *event);
40void retroshift_swap_times(void);
26 41
27void autoshift_enable(void); 42void autoshift_enable(void);
28void autoshift_disable(void); 43void autoshift_disable(void);
29void autoshift_toggle(void); 44void autoshift_toggle(void);
30bool get_autoshift_state(void); 45bool get_autoshift_state(void);
31uint16_t get_autoshift_timeout(void); 46uint16_t get_generic_autoshift_timeout(void);
47// clang-format off
48uint16_t (get_autoshift_timeout)(uint16_t keycode, keyrecord_t *record);
32void set_autoshift_timeout(uint16_t timeout); 49void set_autoshift_timeout(uint16_t timeout);
33void autoshift_matrix_scan(void); 50void autoshift_matrix_scan(void);
34bool get_auto_shifted_key(uint16_t keycode, keyrecord_t *record); 51bool get_custom_auto_shifted_key(uint16_t keycode, keyrecord_t *record);
52// clang-format on