diff options
author | Isaac Elenbaas <isaacelenbaas@gmail.com> | 2021-11-25 07:12:14 -0500 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-11-25 23:12:14 +1100 |
commit | d9393b86842b7ef143259b5f771ae7969f98cbb4 (patch) | |
tree | e0760c20f65c4cac7b6ffb3fedf3f36c6f7c13a2 /quantum/process_keycode/process_auto_shift.h | |
parent | 282e916d86a5d353b7cbdfef3afad3c7b011eb14 (diff) | |
download | qmk_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.h | 22 |
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 | |||
25 | bool process_auto_shift(uint16_t keycode, keyrecord_t *record); | 38 | bool process_auto_shift(uint16_t keycode, keyrecord_t *record); |
39 | void retroshift_poll_time(keyevent_t *event); | ||
40 | void retroshift_swap_times(void); | ||
26 | 41 | ||
27 | void autoshift_enable(void); | 42 | void autoshift_enable(void); |
28 | void autoshift_disable(void); | 43 | void autoshift_disable(void); |
29 | void autoshift_toggle(void); | 44 | void autoshift_toggle(void); |
30 | bool get_autoshift_state(void); | 45 | bool get_autoshift_state(void); |
31 | uint16_t get_autoshift_timeout(void); | 46 | uint16_t get_generic_autoshift_timeout(void); |
47 | // clang-format off | ||
48 | uint16_t (get_autoshift_timeout)(uint16_t keycode, keyrecord_t *record); | ||
32 | void set_autoshift_timeout(uint16_t timeout); | 49 | void set_autoshift_timeout(uint16_t timeout); |
33 | void autoshift_matrix_scan(void); | 50 | void autoshift_matrix_scan(void); |
34 | bool get_auto_shifted_key(uint16_t keycode, keyrecord_t *record); | 51 | bool get_custom_auto_shifted_key(uint16_t keycode, keyrecord_t *record); |
52 | // clang-format on | ||