summaryrefslogtreecommitdiffstats
path: root/tmk_core
diff options
context:
space:
mode:
authorDrashna Jaelre <drashna@live.com>2018-12-14 18:01:58 +0100
committerMechMerlin <30334081+mechmerlin@users.noreply.github.com>2018-12-14 18:01:58 +0100
commit02d44beb4410b806cb8c38e272941d212fee8a74 (patch)
treeb82be304dcea0c838b45abe2e9909a9f30a49dc9 /tmk_core
parent80dfd34fe454f8dde67145fef51eb82ef7ea2e45 (diff)
downloadqmk_firmware-02d44beb4410b806cb8c38e272941d212fee8a74.tar.gz
qmk_firmware-02d44beb4410b806cb8c38e272941d212fee8a74.tar.xz
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')
-rw-r--r--tmk_core/common/action.c12
-rw-r--r--tmk_core/common/action.h2
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)
*
* FIXME: Needs documentation.
*/
+void tap_code(uint8_t code) {
+ register_code(code);
+ #if TAP_CODE_DELAY > 0
+ wait_ms(TAP_CODE_DELAY);
+ #endif
+ unregister_code(code);
+}
+
+/** \brief Utilities for actions. (FIXME: Needs better description)
+ *
+ * FIXME: Needs documentation.
+ */
void register_mods(uint8_t mods)
{
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);
void process_action(keyrecord_t *record, action_t action);
void register_code(uint8_t code);
void unregister_code(uint8_t code);
-inline void tap_code(uint8_t code) { register_code(code); unregister_code(code); }
+void tap_code(uint8_t code);
void register_mods(uint8_t mods);
void unregister_mods(uint8_t mods);
//void set_mods(uint8_t mods);