2 #include "process_keycode/process_tap_dance.h"
11 static int td_status_lower = NONE;
12 static int td_status_raise = NONE;
14 int cur_dance(qk_tap_dance_state_t *state) {
15 if (state->interrupted || !state->pressed) {
16 return state->count == 1 ? SINGLE_TAP : DOUBLE_TAP;
22 void td_lower_finished(qk_tap_dance_state_t *state, void *user_data) {
23 td_status_lower = cur_dance(state);
24 switch(td_status_lower) {
26 set_japanese_mode(false);
27 register_code(KC_ESC);
30 set_japanese_mode(false);
38 void td_lower_reset(qk_tap_dance_state_t *state, void *user_data) {
39 if (td_status_lower == SINGLE_TAP) {
40 unregister_code(KC_ESC);
43 td_status_lower = NONE;
46 void td_raise_finished(qk_tap_dance_state_t *state, void *user_data) {
47 td_status_raise = cur_dance(state);
48 switch(td_status_raise) {
51 set_japanese_mode(true);
59 void td_raise_reset(qk_tap_dance_state_t *state, void *user_data) {
61 td_status_raise = NONE;
64 qk_tap_dance_action_t tap_dance_actions[] = {
65 [TD_LOWER] = ACTION_TAP_DANCE_FN_ADVANCED_TIME(
66 NULL, td_lower_finished, td_lower_reset, TAPPING_TERM * 1.5
68 [TD_RAISE] = ACTION_TAP_DANCE_FN_ADVANCED_TIME(
69 NULL, td_raise_finished, td_raise_reset, TAPPING_TERM * 1.5