Compare commits

...

1 commit

Author SHA1 Message Date
陈湛明
b2260a8171 keysc: add keycode_alpha to get ASCII of keycode 2024-09-18 15:30:25 +00:00
2 changed files with 31 additions and 0 deletions

View file

@ -332,6 +332,12 @@ int keycode_function(int keycode);
returns 7 for KEY_7) and -1 for other keys. */
int keycode_digit(int keycode);
/* keycode_alpha(): Identify keys A .. Z, space, double quotes
This function returns the ASCII character associated with keycodes when
ALPHA modifier is active.
Other keycodes, including "r" and "θ", return -1 (255). */
uint8_t keycode_alpha(int keycode);
#ifdef __cplusplus
}
#endif

View file

@ -21,3 +21,28 @@ int keycode_digit(int keycode)
return -1;
}
/* keycode_alpha(): Identify ASCII characters */
uint8_t keycode_alpha(int keycode)
{
const int Row = keycode >> 4;
const int Column = keycode & 0xf;
switch (Row)
{
case 6: return 'A' + Column - 1;
case 5: return 'G' + Column - 1;
case 4: return 'M' + Column - 1;
case 3: return 'P' + Column - 1;
case 2: return 'U' + Column - 1;
case 1:
switch (Column)
{
case 1: return 'Z';
case 2: return ' ';
case 3: return '\"';
default: return -1;
}
default: return -1;
}
}