aboutsummaryrefslogtreecommitdiff
path: root/tmk_core/common
diff options
context:
space:
mode:
authorDamien Pollet <damien.pollet@gmail.com>2016-03-27 17:58:26 +0200
committerDamien Pollet <damien.pollet@gmail.com>2016-03-28 16:30:00 +0200
commitef21a855e6d60b78011ddb8940f58985b1c60acb (patch)
tree8182e65f6b9b0f923608a9dc123fc66c02581531 /tmk_core/common
parent80eefb09ac5de95a6977702b4014d4b4d79a5d7d (diff)
downloadqmk_firmware-ef21a855e6d60b78011ddb8940f58985b1c60acb.tar.gz
qmk_firmware-ef21a855e6d60b78011ddb8940f58985b1c60acb.zip
Add per-event user hook function to QMK
Diffstat (limited to 'tmk_core/common')
-rw-r--r--tmk_core/common/action.c5
-rw-r--r--tmk_core/common/action.h3
2 files changed, 8 insertions, 0 deletions
diff --git a/tmk_core/common/action.c b/tmk_core/common/action.c
index 4197c53ed..c6595196f 100644
--- a/tmk_core/common/action.c
+++ b/tmk_core/common/action.c
@@ -53,6 +53,9 @@ void action_exec(keyevent_t event)
53#endif 53#endif
54} 54}
55 55
56__attribute__ ((weak))
57void process_action_user(keyrecord_t *record) {}
58
56void process_action(keyrecord_t *record) 59void process_action(keyrecord_t *record)
57{ 60{
58 keyevent_t event = record->event; 61 keyevent_t event = record->event;
@@ -62,6 +65,8 @@ void process_action(keyrecord_t *record)
62 65
63 if (IS_NOEVENT(event)) { return; } 66 if (IS_NOEVENT(event)) { return; }
64 67
68 process_action_user(record);
69
65 action_t action = layer_switch_get_action(event.key); 70 action_t action = layer_switch_get_action(event.key);
66 dprint("ACTION: "); debug_action(action); 71 dprint("ACTION: "); debug_action(action);
67#ifndef NO_ACTION_LAYER 72#ifndef NO_ACTION_LAYER
diff --git a/tmk_core/common/action.h b/tmk_core/common/action.h
index 8a4736d7b..141dc3fca 100644
--- a/tmk_core/common/action.h
+++ b/tmk_core/common/action.h
@@ -58,6 +58,9 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt);
58/* user defined special function */ 58/* user defined special function */
59void action_function(keyrecord_t *record, uint8_t id, uint8_t opt); 59void action_function(keyrecord_t *record, uint8_t id, uint8_t opt);
60 60
61/* user-defined (pre)processing of each key event */
62void process_action_user(keyrecord_t *record);
63
61/* Utilities for actions. */ 64/* Utilities for actions. */
62void process_action(keyrecord_t *record); 65void process_action(keyrecord_t *record);
63void register_code(uint8_t code); 66void register_code(uint8_t code);