diff options
Diffstat (limited to 'quantum/quantum.c')
| -rw-r--r-- | quantum/quantum.c | 27 | 
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          } | 
