diff options
| author | bunnei <bunneidev@gmail.com> | 2021-02-06 02:40:11 -0800 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2021-02-06 02:40:11 -0800 |
| commit | 61bf850f3dfd0b44aa5d56f6f3147d7a1fa47353 (patch) | |
| tree | 08709ce3ce8890b37353ff747f4ce4401fcb1fd1 /src/core/hle/service/hid/controllers/mouse.cpp | |
| parent | 1498a7c9a84037d7c78ff21b3bc996622269db43 (diff) | |
| parent | 8019b2b9b5265647dbadc45f60a12e4bbfefbd77 (diff) | |
Merge pull request #5326 from german77/hidUpdate1
HID: Update the HID service to match more closely to switchbrew part 1
Diffstat (limited to 'src/core/hle/service/hid/controllers/mouse.cpp')
| -rw-r--r-- | src/core/hle/service/hid/controllers/mouse.cpp | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/src/core/hle/service/hid/controllers/mouse.cpp b/src/core/hle/service/hid/controllers/mouse.cpp index ac40989c5..2e7457604 100644 --- a/src/core/hle/service/hid/controllers/mouse.cpp +++ b/src/core/hle/service/hid/controllers/mouse.cpp @@ -36,6 +36,7 @@ void Controller_Mouse::OnUpdate(const Core::Timing::CoreTiming& core_timing, u8* cur_entry.sampling_number = last_entry.sampling_number + 1; cur_entry.sampling_number2 = cur_entry.sampling_number; + cur_entry.attribute.raw = 0; if (Settings::values.mouse_enabled) { const auto [px, py, sx, sy] = mouse_device->GetStatus(); const auto x = static_cast<s32>(px * Layout::ScreenUndocked::Width); @@ -46,10 +47,14 @@ void Controller_Mouse::OnUpdate(const Core::Timing::CoreTiming& core_timing, u8* cur_entry.delta_y = y - last_entry.y; cur_entry.mouse_wheel_x = sx; cur_entry.mouse_wheel_y = sy; + cur_entry.attribute.is_connected.Assign(1); - for (std::size_t i = 0; i < mouse_button_devices.size(); ++i) { - cur_entry.button |= (mouse_button_devices[i]->GetStatus() << i); - } + using namespace Settings::NativeMouseButton; + cur_entry.button.left.Assign(mouse_button_devices[Left]->GetStatus()); + cur_entry.button.right.Assign(mouse_button_devices[Right]->GetStatus()); + cur_entry.button.middle.Assign(mouse_button_devices[Middle]->GetStatus()); + cur_entry.button.forward.Assign(mouse_button_devices[Forward]->GetStatus()); + cur_entry.button.back.Assign(mouse_button_devices[Back]->GetStatus()); } std::memcpy(data + SHARED_MEMORY_OFFSET, &shared_memory, sizeof(SharedMemory)); |
