Kernel+LibKeyboard: Store the keymap name when setting system keymap

This way we can query the kernel to see which keymap is currently in use.
This commit is contained in:
Valtteri Koskivuori 2020-08-06 02:03:32 +03:00 committed by Andreas Kling
parent 8dd0c391e9
commit 00a0e525e6
Notes: sideshowbarker 2024-07-19 04:13:23 +09:00
6 changed files with 32 additions and 6 deletions

View file

@ -36,7 +36,6 @@ namespace Keyboard {
CharacterMap::CharacterMap(const String& file_name)
{
#ifdef KERNEL
UNUSED_PARAM(file_name);
m_character_map_data = default_character_map;
#else
auto result = CharacterMapFile::load_from_file(file_name);
@ -44,13 +43,14 @@ CharacterMap::CharacterMap(const String& file_name)
m_character_map_data = result.value();
#endif
m_character_map_name = file_name;
}
#ifndef KERNEL
int CharacterMap::set_system_map()
{
Syscall::SC_setkeymap_params params { m_character_map_data.map, m_character_map_data.shift_map, m_character_map_data.alt_map, m_character_map_data.altgr_map };
Syscall::SC_setkeymap_params params { m_character_map_data.map, m_character_map_data.shift_map, m_character_map_data.alt_map, m_character_map_data.altgr_map, { m_character_map_name.characters(), m_character_map_name.length() } };
return syscall(SC_setkeymap, &params);
}
@ -92,4 +92,13 @@ void CharacterMap::set_character_map_data(CharacterMapData character_map_data)
m_character_map_data = character_map_data;
}
void CharacterMap::set_character_map_name(const String& character_map_name)
{
m_character_map_name = character_map_name;
}
const String CharacterMap::character_map_name()
{
return m_character_map_name;
}
}