settings: Fix mouse and keyboard mappings
This commit is contained in:
parent
cc651c7c99
commit
464c4d26ac
10 changed files with 100 additions and 103 deletions
|
@ -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;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue