@ -62,17 +62,38 @@ class Model01 {
bool isKeyMasked ( byte row , byte col ) ;
void maskHeldKeys ( void ) ;
/** Key switch state
/** Key switch state s
*
* These two methods return the state of the keyswitch at any given position ,
* regardless of which half they are on . This is a hardware - agnostic access to
* the key switch states .
* These methods offer a way to peek at the key switch states , for those cases
* where we need to deal with the state closest to the hardware . Some methods
* offer a way to check if a key is pressed , others return the number of
* pressed keys .
*/
/**
* Check if a key is pressed at a given position .
*
* @ param row is the row the key is located at in the matrix .
* @ param col is the column the key is located at in the matrix .
*
* @ returns true if the key is pressed , false otherwise .
*/
bool isKeyswitchPressed ( byte row , byte col ) ;
/**
* Check if a key is pressed at a given position .
*
* @ param keyIndex is the key index , as calculated by ` keyIndex ` .
*
* @ note Key indexes start at 1 , not 0 !
*
* @ returns true if the key is pressed , false otherwise .
*/
bool isKeyswitchPressed ( uint8_t keyIndex ) ;
/**
* Check the number of key switches currently pressed .
*
* The first variant requires a row and a column , the second an index , as
* returned by ` keyIndex ` .
* @ returns the number of keys pressed .
*/
uint8_t getKeyswitchStateAtPosition ( byte row , byte col ) ;
uint8_t getKeyswitchStateAtPosition ( uint8_t keyIndex ) ;
uint8_t pressedKeyswitchCount ( ) ;
keydata_t leftHandState ;
keydata_t rightHandState ;