diff options
| author | David Marcec <dmarcecguzman@gmail.com> | 2020-07-16 22:28:49 +1000 |
|---|---|---|
| committer | David Marcec <dmarcecguzman@gmail.com> | 2020-07-16 22:28:49 +1000 |
| commit | 255847b16db41ea7ea3d2bd756868cc336c3f375 (patch) | |
| tree | 8ff12064a2a3d788e3ce21fb1631a2a1b2f7d83a /src/core/hle/service/hid/controllers/keyboard.cpp | |
| parent | 524a16f9c4b635235cd842336d2dbba9210e19f5 (diff) | |
hid: Only update keyboard & debug pad inputs if enabled
Previously we would ignore this setting and would update the states regardless of the user setting
Diffstat (limited to 'src/core/hle/service/hid/controllers/keyboard.cpp')
| -rw-r--r-- | src/core/hle/service/hid/controllers/keyboard.cpp | 17 |
1 files changed, 9 insertions, 8 deletions
diff --git a/src/core/hle/service/hid/controllers/keyboard.cpp b/src/core/hle/service/hid/controllers/keyboard.cpp index feae89525a..0b896d5ad8 100644 --- a/src/core/hle/service/hid/controllers/keyboard.cpp +++ b/src/core/hle/service/hid/controllers/keyboard.cpp @@ -40,15 +40,16 @@ void Controller_Keyboard::OnUpdate(const Core::Timing::CoreTiming& core_timing, cur_entry.key.fill(0); cur_entry.modifier = 0; - - for (std::size_t i = 0; i < keyboard_keys.size(); ++i) { - cur_entry.key[i / KEYS_PER_BYTE] |= (keyboard_keys[i]->GetStatus() << (i % KEYS_PER_BYTE)); - } - - for (std::size_t i = 0; i < keyboard_mods.size(); ++i) { - cur_entry.modifier |= (keyboard_mods[i]->GetStatus() << i); + if (Settings::values.keyboard_enabled) { + for (std::size_t i = 0; i < keyboard_keys.size(); ++i) { + cur_entry.key[i / KEYS_PER_BYTE] |= + (keyboard_keys[i]->GetStatus() << (i % KEYS_PER_BYTE)); + } + + for (std::size_t i = 0; i < keyboard_mods.size(); ++i) { + cur_entry.modifier |= (keyboard_mods[i]->GetStatus() << i); + } } - std::memcpy(data + SHARED_MEMORY_OFFSET, &shared_memory, sizeof(SharedMemory)); } |
