~ruther/qmk_firmware

ef21a855e6d60b78011ddb8940f58985b1c60acb — Damien Pollet 9 years ago 80eefb0
Add per-event user hook function to QMK
2 files changed, 8 insertions(+), 0 deletions(-)

M tmk_core/common/action.c
M tmk_core/common/action.h
M tmk_core/common/action.c => tmk_core/common/action.c +5 -0
@@ 53,6 53,9 @@ void action_exec(keyevent_t event)
#endif
}

__attribute__ ((weak))
void process_action_user(keyrecord_t *record) {}

void process_action(keyrecord_t *record)
{
    keyevent_t event = record->event;


@@ 62,6 65,8 @@ void process_action(keyrecord_t *record)

    if (IS_NOEVENT(event)) { return; }

    process_action_user(record);

    action_t action = layer_switch_get_action(event.key);
    dprint("ACTION: "); debug_action(action);
#ifndef NO_ACTION_LAYER

M tmk_core/common/action.h => tmk_core/common/action.h +3 -0
@@ 58,6 58,9 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt);
/* user defined special function */
void action_function(keyrecord_t *record, uint8_t id, uint8_t opt);

/* user-defined (pre)processing of each key event */
void process_action_user(keyrecord_t *record);

/* Utilities for actions.  */
void process_action(keyrecord_t *record);
void register_code(uint8_t code);