@ -14,13 +14,13 @@ extern const Key keymaps[][ROWS][COLS];
# define UNKNOWN_KEYSWITCH_LOCATION 255,255
# define UNKNOWN_KEYSWITCH_LOCATION 255,255
// sending events to the computer
// sending events to the computer
/* The event handling starts with the Scanner calling handle_key _event() for
/* The event handling starts with the Scanner calling handle_key switch _event() for
* every key in the matrix , and it is the task of this method to figure out what
* every key in the matrix , and it is the task of this method to figure out what
* to do , it is the main entry point .
* to do , it is the main entry point .
*
*
* This function will iterate through an array of handler functions , and stop as
* This function will iterate through an array of handler functions , and stop as
* soon as one of them signals that the event has been handled . To make it
* soon as one of them signals that the event has been handled . To make it
* possible to inject synthetic events , one can call handle_key _event from
* possible to inject synthetic events , one can call handle_key switch _event from
* within a custom handler ( making the event handling recursive ) , with a
* within a custom handler ( making the event handling recursive ) , with a
* different keycode .
* different keycode .
*
*
@ -29,20 +29,20 @@ extern const Key keymaps[][ROWS][COLS];
* normal modifier instead . In this case , the keymap would contain a key with
* normal modifier instead . In this case , the keymap would contain a key with
* OSM flags set , and the event handler would remove the OSM flags , and let the
* OSM flags set , and the event handler would remove the OSM flags , and let the
* system handle the key as it would have , without the OSM flags . So we simply
* system handle the key as it would have , without the OSM flags . So we simply
* clear the flags , and call handle_key _event again , with the modifier keycode
* clear the flags , and call handle_key switch _event again , with the modifier keycode
* as the first argument . This way , we could insert an event , and have the whole
* as the first argument . This way , we could insert an event , and have the whole
* chain re - process it , instead of registering the keycode ourselves with HID
* chain re - process it , instead of registering the keycode ourselves with HID
* ourselves . Injecting allows any and all custom handlers to have a chance ,
* ourselves . Injecting allows any and all custom handlers to have a chance ,
* too .
* too .
*
*
* For this reason , the handle_key _event receives four arguments : the mapped key
* For this reason , the handle_key switch _event receives four arguments : the mapped key
* ( or Key_NoKey if we do not want to override what is in the keymap ) , the row
* ( or Key_NoKey if we do not want to override what is in the keymap ) , the row
* and column of the key , so we can look up the code for it , and the current and
* and column of the key , so we can look up the code for it , and the current and
* previous state of the key , so we can determine what the event is . The
* previous state of the key , so we can determine what the event is . The
* currentState may be flagged INJECTED , which signals that the event was
* currentState may be flagged INJECTED , which signals that the event was
* injected , and is not a direct result of a keypress , coming from the scanner .
* injected , and is not a direct result of a keypress , coming from the scanner .
*/
*/
void handle_key _event( Key mappedKey , byte row , byte col , uint8_t keyState ) ;
void handle_key switch _event( Key mappedKey , byte row , byte col , uint8_t keyState ) ;
// Internal use
// Internal use
void press_key ( Key mappedKey ) ;
void press_key ( Key mappedKey ) ;