mirror of
https://github.com/ipxe/ipxe
synced 2026-01-22 12:08:58 +03:00
[console] Allow for named keyboard mappings
Separate the concept of a keyboard mapping from a list of remapped keys, to allow for the possibility of supporting multiple keyboard mappings at runtime. Signed-off-by: Michael Brown <mcb30@ipxe.org>
This commit is contained in:
@@ -31,6 +31,12 @@ FILE_LICENCE ( GPL2_OR_LATER_OR_UBDL );
|
||||
*
|
||||
*/
|
||||
|
||||
/** Default keyboard mapping */
|
||||
static TABLE_START ( keymap_start, KEYMAP );
|
||||
|
||||
/** Current keyboard mapping */
|
||||
static struct keymap *keymap = keymap_start;
|
||||
|
||||
/**
|
||||
* Remap a key
|
||||
*
|
||||
@@ -38,12 +44,12 @@ FILE_LICENCE ( GPL2_OR_LATER_OR_UBDL );
|
||||
* @ret character Mapped character
|
||||
*/
|
||||
unsigned int key_remap ( unsigned int character ) {
|
||||
struct key_mapping *mapping;
|
||||
struct keymap_key *key;
|
||||
|
||||
/* Remap via table */
|
||||
for_each_table_entry ( mapping, KEYMAP ) {
|
||||
if ( mapping->from == character ) {
|
||||
character = mapping->to;
|
||||
for ( key = keymap->basic ; key->from ; key++ ) {
|
||||
if ( key->from == character ) {
|
||||
character = key->to;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user