summaryrefslogtreecommitdiffstats
path: root/quantum/quantum.c
diff options
context:
space:
mode:
Diffstat (limited to 'quantum/quantum.c')
-rw-r--r--quantum/quantum.c27
1 files changed, 19 insertions, 8 deletions
diff --git a/quantum/quantum.c b/quantum/quantum.c
index 33121f6b95..9a0016b150 100644
--- a/quantum/quantum.c
+++ b/quantum/quantum.c
@@ -93,16 +93,27 @@ __attribute__((weak)) void unregister_code16(uint16_t code) {
}
}
-__attribute__((weak)) void tap_code16(uint16_t code) {
+/** \brief Tap a keycode with a delay.
+ *
+ * \param code The modded keycode to tap.
+ * \param delay The amount of time in milliseconds to leave the keycode registered, before unregistering it.
+ */
+__attribute__((weak)) void tap_code16_delay(uint16_t code, uint16_t delay) {
register_code16(code);
- if (code == KC_CAPS_LOCK) {
- wait_ms(TAP_HOLD_CAPS_DELAY);
- } else if (TAP_CODE_DELAY > 0) {
- wait_ms(TAP_CODE_DELAY);
+ for (uint16_t i = delay; i > 0; i--) {
+ wait_ms(1);
}
unregister_code16(code);
}
+/** \brief Tap a keycode with the default delay.
+ *
+ * \param code The modded keycode to tap. If `code` is `KC_CAPS_LOCK`, the delay will be `TAP_HOLD_CAPS_DELAY`, otherwise `TAP_CODE_DELAY`, if defined.
+ */
+__attribute__((weak)) void tap_code16(uint16_t code) {
+ tap_code16_delay(code, code == KC_CAPS_LOCK ? TAP_HOLD_CAPS_DELAY : TAP_CODE_DELAY);
+}
+
__attribute__((weak)) bool process_action_kb(keyrecord_t *record) {
return true;
}
@@ -307,9 +318,6 @@ bool process_record_quantum(keyrecord_t *record) {
#ifdef DYNAMIC_TAPPING_TERM_ENABLE
process_dynamic_tapping_term(keycode, record) &&
#endif
-#ifdef TERMINAL_ENABLE
- process_terminal(keycode, record) &&
-#endif
#ifdef SPACE_CADET_ENABLE
process_space_cadet(keycode, record) &&
#endif
@@ -403,6 +411,9 @@ bool process_record_quantum(keyrecord_t *record) {
SEND_STRING_DELAY(" compile ", TAP_CODE_DELAY);
}
SEND_STRING_DELAY("-kb " QMK_KEYBOARD " -km " QMK_KEYMAP SS_TAP(X_ENTER), TAP_CODE_DELAY);
+ if (temp_mod & MOD_MASK_SHIFT && temp_mod & MOD_MASK_CTRL) {
+ reset_keyboard();
+ }
}
#endif
}