diff options
| author | Drashna Jaelre <drashna@live.com> | 2018-12-14 09:01:58 -0800 |
|---|---|---|
| committer | MechMerlin <30334081+mechmerlin@users.noreply.github.com> | 2018-12-14 09:01:58 -0800 |
| commit | 02d44beb4410b806cb8c38e272941d212fee8a74 (patch) | |
| tree | b82be304dcea0c838b45abe2e9909a9f30a49dc9 /tmk_core/common | |
| parent | 80dfd34fe454f8dde67145fef51eb82ef7ea2e45 (diff) | |
| download | qmk_firmware-02d44beb4410b806cb8c38e272941d212fee8a74.tar.gz qmk_firmware-02d44beb4410b806cb8c38e272941d212fee8a74.zip | |
Fix up tap_code functionality (#4609)
* Add delay in Tap Code to avoid issues
I think a few people have reporting issues with it working properly, and it may be a timing issue. The 'register_code' uses this sort of delay in some of the functions, and
this is probably why.
Adding the 100ms delay should hopefully fix any issues with it.
* Make tap_code delay configurable
* Update documentation
* Bring tap_code16 inline with changes
* Fix type for tap_code16
Bad copy-paste job
* Just use the value check for the define
* Clarify timing in docs
Co-Authored-By: drashna <drashna@live.com>
* Wordsmithing
Co-Authored-By: drashna <drashna@live.com>
Diffstat (limited to 'tmk_core/common')
| -rw-r--r-- | tmk_core/common/action.c | 12 | ||||
| -rw-r--r-- | tmk_core/common/action.h | 2 |
2 files changed, 13 insertions, 1 deletions
diff --git a/tmk_core/common/action.c b/tmk_core/common/action.c index 8bdcd54e3..456d1e25f 100644 --- a/tmk_core/common/action.c +++ b/tmk_core/common/action.c | |||
| @@ -851,6 +851,18 @@ void unregister_code(uint8_t code) | |||
| 851 | * | 851 | * |
| 852 | * FIXME: Needs documentation. | 852 | * FIXME: Needs documentation. |
| 853 | */ | 853 | */ |
| 854 | void tap_code(uint8_t code) { | ||
| 855 | register_code(code); | ||
| 856 | #if TAP_CODE_DELAY > 0 | ||
| 857 | wait_ms(TAP_CODE_DELAY); | ||
| 858 | #endif | ||
| 859 | unregister_code(code); | ||
| 860 | } | ||
| 861 | |||
| 862 | /** \brief Utilities for actions. (FIXME: Needs better description) | ||
| 863 | * | ||
| 864 | * FIXME: Needs documentation. | ||
| 865 | */ | ||
| 854 | void register_mods(uint8_t mods) | 866 | void register_mods(uint8_t mods) |
| 855 | { | 867 | { |
| 856 | if (mods) { | 868 | if (mods) { |
diff --git a/tmk_core/common/action.h b/tmk_core/common/action.h index 833febe9c..5d797fd62 100644 --- a/tmk_core/common/action.h +++ b/tmk_core/common/action.h | |||
| @@ -88,7 +88,7 @@ void process_record(keyrecord_t *record); | |||
| 88 | void process_action(keyrecord_t *record, action_t action); | 88 | void process_action(keyrecord_t *record, action_t action); |
| 89 | void register_code(uint8_t code); | 89 | void register_code(uint8_t code); |
| 90 | void unregister_code(uint8_t code); | 90 | void unregister_code(uint8_t code); |
| 91 | inline void tap_code(uint8_t code) { register_code(code); unregister_code(code); } | 91 | void tap_code(uint8_t code); |
| 92 | void register_mods(uint8_t mods); | 92 | void register_mods(uint8_t mods); |
| 93 | void unregister_mods(uint8_t mods); | 93 | void unregister_mods(uint8_t mods); |
| 94 | //void set_mods(uint8_t mods); | 94 | //void set_mods(uint8_t mods); |
