~ruther/qmk_firmware

ab34ecb66993f0cb7fc2a6aa960d0d0c4bafb773 — Drashna Jaelre 4 years ago 1036277
Apply `TAP_CODE_DELAY` to Tap Dance key sequences (#14412)

* Add  support to tap dances

* Move default tap code defines to header file
3 files changed, 9 insertions(+), 6 deletions(-)

M quantum/action.c
M quantum/action.h
M quantum/process_keycode/process_tap_dance.c
M quantum/action.c => quantum/action.c +0 -6
@@ 57,12 57,6 @@ __attribute__((weak)) bool get_retro_tapping(uint16_t keycode, keyrecord_t *reco

__attribute__((weak)) bool pre_process_record_quantum(keyrecord_t *record) { return true; }

#ifndef TAP_CODE_DELAY
#    define TAP_CODE_DELAY 0
#endif
#ifndef TAP_HOLD_CAPS_DELAY
#    define TAP_HOLD_CAPS_DELAY 80
#endif
/** \brief Called to execute an action.
 *
 * FIXME: Needs documentation.

M quantum/action.h => quantum/action.h +7 -0
@@ 38,6 38,13 @@ extern "C" {
#    endif
#endif

#ifndef TAP_CODE_DELAY
#    define TAP_CODE_DELAY 0
#endif
#ifndef TAP_HOLD_CAPS_DELAY
#    define TAP_HOLD_CAPS_DELAY 80
#endif

/* tapping count and state */
typedef struct {
    bool    interrupted : 1;

M quantum/process_keycode/process_tap_dance.c => quantum/process_keycode/process_tap_dance.c +2 -0
@@ 44,6 44,7 @@ void qk_tap_dance_pair_finished(qk_tap_dance_state_t *state, void *user_data) {
void qk_tap_dance_pair_reset(qk_tap_dance_state_t *state, void *user_data) {
    qk_tap_dance_pair_t *pair = (qk_tap_dance_pair_t *)user_data;

    wait_ms(TAP_CODE_DELAY);
    if (state->count == 1) {
        unregister_code16(pair->kc1);
    } else if (state->count == 2) {


@@ 74,6 75,7 @@ void qk_tap_dance_dual_role_reset(qk_tap_dance_state_t *state, void *user_data) 
    qk_tap_dance_dual_role_t *pair = (qk_tap_dance_dual_role_t *)user_data;

    if (state->count == 1) {
        wait_ms(TAP_CODE_DELAY);
        unregister_code16(pair->kc);
    }
}