settings: Fix mouse and keyboard mappings

This commit is contained in:
german77 2021-10-24 11:22:20 -05:00 committed by Narr the Reg
parent cc651c7c99
commit 464c4d26ac
10 changed files with 100 additions and 103 deletions

View file

@ -162,17 +162,22 @@ void EmulatedDevices::SetKeyboardButton(Input::CallbackStatus callback, std::siz
return;
}
// TODO(german77): Do this properly
// switch (index) {
// case Settings::NativeKeyboard::A:
// interface_status.keyboard_state.a.Assign(current_status.value);
// break;
// ....
// }
UpdateKey(index, current_status.value);
TriggerOnChange(DeviceTriggerType::Keyboard);
}
void EmulatedDevices::UpdateKey(std::size_t key_index, bool status) {
constexpr u8 KEYS_PER_BYTE = 8;
auto& entry = device_status.keyboard_state.key[key_index / KEYS_PER_BYTE];
const u8 mask = 1 << (key_index % KEYS_PER_BYTE);
if (status) {
entry = entry | mask;
} else {
entry = entry & ~mask;
}
}
void EmulatedDevices::SetKeyboardModifier(Input::CallbackStatus callback, std::size_t index) {
if (index >= device_status.keyboard_moddifier_values.size()) {
return;