diff options
Diffstat (limited to 'quantum/action.c')
| -rw-r--r-- | quantum/action.c | 19 |
1 files changed, 16 insertions, 3 deletions
diff --git a/quantum/action.c b/quantum/action.c index ceaaa551f..5e81efb67 100644 --- a/quantum/action.c +++ b/quantum/action.c | |||
| @@ -45,10 +45,14 @@ along with this program. If not, see <http://www.gnu.org/licenses/>. | |||
| 45 | 45 | ||
| 46 | int tp_buttons; | 46 | int tp_buttons; |
| 47 | 47 | ||
| 48 | #if defined(RETRO_TAPPING) || defined(RETRO_TAPPING_PER_KEY) | 48 | #if defined(RETRO_TAPPING) || defined(RETRO_TAPPING_PER_KEY) || (defined(AUTO_SHIFT_ENABLE) && defined(RETRO_SHIFT)) |
| 49 | int retro_tapping_counter = 0; | 49 | int retro_tapping_counter = 0; |
| 50 | #endif | 50 | #endif |
| 51 | 51 | ||
| 52 | #if defined(AUTO_SHIFT_ENABLE) && defined(RETRO_SHIFT) && !defined(NO_ACTION_TAPPING) | ||
| 53 | # include "process_auto_shift.h" | ||
| 54 | #endif | ||
| 55 | |||
| 52 | #ifdef IGNORE_MOD_TAP_INTERRUPT_PER_KEY | 56 | #ifdef IGNORE_MOD_TAP_INTERRUPT_PER_KEY |
| 53 | __attribute__((weak)) bool get_ignore_mod_tap_interrupt(uint16_t keycode, keyrecord_t *record) { return false; } | 57 | __attribute__((weak)) bool get_ignore_mod_tap_interrupt(uint16_t keycode, keyrecord_t *record) { return false; } |
| 54 | #endif | 58 | #endif |
| @@ -69,7 +73,7 @@ void action_exec(keyevent_t event) { | |||
| 69 | dprint("EVENT: "); | 73 | dprint("EVENT: "); |
| 70 | debug_event(event); | 74 | debug_event(event); |
| 71 | dprintln(); | 75 | dprintln(); |
| 72 | #if defined(RETRO_TAPPING) || defined(RETRO_TAPPING_PER_KEY) | 76 | #if defined(RETRO_TAPPING) || defined(RETRO_TAPPING_PER_KEY) || (defined(AUTO_SHIFT_ENABLE) && defined(RETRO_SHIFT)) |
| 73 | retro_tapping_counter++; | 77 | retro_tapping_counter++; |
| 74 | #endif | 78 | #endif |
| 75 | } | 79 | } |
| @@ -106,6 +110,11 @@ void action_exec(keyevent_t event) { | |||
| 106 | #endif | 110 | #endif |
| 107 | 111 | ||
| 108 | #ifndef NO_ACTION_TAPPING | 112 | #ifndef NO_ACTION_TAPPING |
| 113 | # if defined(AUTO_SHIFT_ENABLE) && defined(RETRO_SHIFT) | ||
| 114 | if (event.pressed) { | ||
| 115 | retroshift_poll_time(&event); | ||
| 116 | } | ||
| 117 | # endif | ||
| 109 | if (IS_NOEVENT(record.event) || pre_process_record_quantum(&record)) { | 118 | if (IS_NOEVENT(record.event) || pre_process_record_quantum(&record)) { |
| 110 | action_tapping_process(record); | 119 | action_tapping_process(record); |
| 111 | } | 120 | } |
| @@ -730,7 +739,7 @@ void process_action(keyrecord_t *record, action_t action) { | |||
| 730 | #endif | 739 | #endif |
| 731 | 740 | ||
| 732 | #ifndef NO_ACTION_TAPPING | 741 | #ifndef NO_ACTION_TAPPING |
| 733 | # if defined(RETRO_TAPPING) || defined(RETRO_TAPPING_PER_KEY) | 742 | # if defined(RETRO_TAPPING) || defined(RETRO_TAPPING_PER_KEY) || (defined(AUTO_SHIFT_ENABLE) && defined(RETRO_SHIFT)) |
| 734 | if (!is_tap_action(action)) { | 743 | if (!is_tap_action(action)) { |
| 735 | retro_tapping_counter = 0; | 744 | retro_tapping_counter = 0; |
| 736 | } else { | 745 | } else { |
| @@ -747,7 +756,11 @@ void process_action(keyrecord_t *record, action_t action) { | |||
| 747 | get_retro_tapping(get_event_keycode(record->event, false), record) && | 756 | get_retro_tapping(get_event_keycode(record->event, false), record) && |
| 748 | # endif | 757 | # endif |
| 749 | retro_tapping_counter == 2) { | 758 | retro_tapping_counter == 2) { |
| 759 | # if defined(AUTO_SHIFT_ENABLE) && defined(RETRO_SHIFT) | ||
| 760 | process_auto_shift(action.layer_tap.code, record); | ||
| 761 | # else | ||
| 750 | tap_code(action.layer_tap.code); | 762 | tap_code(action.layer_tap.code); |
| 763 | # endif | ||
| 751 | } | 764 | } |
| 752 | retro_tapping_counter = 0; | 765 | retro_tapping_counter = 0; |
| 753 | } | 766 | } |
