diff --git a/KeyboardioFirmware.ino b/KeyboardioFirmware.ino index a267f412..81b383cf 100644 --- a/KeyboardioFirmware.ino +++ b/KeyboardioFirmware.ino @@ -10,6 +10,11 @@ uint8_t primary_keymap = 0; uint8_t temporary_keymap = 0; +bool handle_user_key_event(byte row, byte col, uint8_t currentState, uint8_t previousState) { + //Serial.print ("user_key_event"); + return false; +} + void setup() { wdt_disable(); delay(100); diff --git a/key_events.cpp b/key_events.cpp index 7ebeb7d3..fb52a2df 100644 --- a/key_events.cpp +++ b/key_events.cpp @@ -46,10 +46,20 @@ void handle_synthetic_key_event(Key mappedKey, uint8_t currentState, uint8_t pre } } + +__attribute__((weak)) +bool handle_user_key_event(byte row, byte col, uint8_t currentState, uint8_t previousState) { + return false; +} + void handle_key_event(byte row, byte col, uint8_t currentState, uint8_t previousState) { //for every newly pressed button, figure out what logical key it is and send a key down event // for every newly released button, figure out what logical key it is and send a key up event + if (handle_user_key_event(row, col, currentState, previousState)) { + return; + } + Key mappedKey; mappedKey.raw= pgm_read_word(&(keymaps[temporary_keymap][row][col])); Key baseKey; diff --git a/key_events.h b/key_events.h index 20661ab9..b459e154 100644 --- a/key_events.h +++ b/key_events.h @@ -20,3 +20,4 @@ void press_key(Key mappedKey); void handle_keymap_key_event(Key keymapEntry, uint8_t currentState, uint8_t previousState); void handle_mouse_key_event(Key mappedKey, uint8_t currentState, uint8_t previousState); +bool handle_user_key_event(byte row, byte col, uint8_t currentState, uint8_t previousState);