diff options
author | liamwhite <liamwhite@users.noreply.github.com> | 2023-12-16 17:46:51 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-12-16 17:46:51 +0100 |
commit | b8f83aa4bf13f6783e31f190d530ef7be527bf49 (patch) | |
tree | 952d90666b0d253dce28742197d053d1db213eeb /src/core/hle/service/hid/controllers/mouse.cpp | |
parent | ssl: fix output byte buffer size issue (#12372) (diff) | |
parent | core: Make sure npad is initialized (diff) | |
download | yuzu-b8f83aa4bf13f6783e31f190d530ef7be527bf49.tar yuzu-b8f83aa4bf13f6783e31f190d530ef7be527bf49.tar.gz yuzu-b8f83aa4bf13f6783e31f190d530ef7be527bf49.tar.bz2 yuzu-b8f83aa4bf13f6783e31f190d530ef7be527bf49.tar.lz yuzu-b8f83aa4bf13f6783e31f190d530ef7be527bf49.tar.xz yuzu-b8f83aa4bf13f6783e31f190d530ef7be527bf49.tar.zst yuzu-b8f83aa4bf13f6783e31f190d530ef7be527bf49.zip |
Diffstat (limited to 'src/core/hle/service/hid/controllers/mouse.cpp')
-rw-r--r-- | src/core/hle/service/hid/controllers/mouse.cpp | 19 |
1 files changed, 7 insertions, 12 deletions
diff --git a/src/core/hle/service/hid/controllers/mouse.cpp b/src/core/hle/service/hid/controllers/mouse.cpp index 6e5a04e34..de5b2c804 100644 --- a/src/core/hle/service/hid/controllers/mouse.cpp +++ b/src/core/hle/service/hid/controllers/mouse.cpp @@ -1,22 +1,17 @@ // SPDX-FileCopyrightText: Copyright 2018 yuzu Emulator Project // SPDX-License-Identifier: GPL-2.0-or-later -#include <cstring> -#include "common/common_types.h" #include "core/core_timing.h" #include "core/frontend/emu_window.h" #include "core/hid/emulated_devices.h" #include "core/hid/hid_core.h" #include "core/hle/service/hid/controllers/mouse.h" +#include "core/hle/service/hid/controllers/shared_memory_format.h" namespace Service::HID { -constexpr std::size_t SHARED_MEMORY_OFFSET = 0x3400; -Mouse::Mouse(Core::HID::HIDCore& hid_core_, u8* raw_shared_memory_) : ControllerBase{hid_core_} { - static_assert(SHARED_MEMORY_OFFSET + sizeof(MouseSharedMemory) < shared_memory_size, - "MouseSharedMemory is bigger than the shared memory"); - shared_memory = std::construct_at( - reinterpret_cast<MouseSharedMemory*>(raw_shared_memory_ + SHARED_MEMORY_OFFSET)); +Mouse::Mouse(Core::HID::HIDCore& hid_core_, MouseSharedMemoryFormat& mouse_shared_memory) + : ControllerBase{hid_core_}, shared_memory{mouse_shared_memory} { emulated_devices = hid_core.GetEmulatedDevices(); } @@ -27,14 +22,14 @@ void Mouse::OnRelease() {} void Mouse::OnUpdate(const Core::Timing::CoreTiming& core_timing) { if (!IsControllerActivated()) { - shared_memory->mouse_lifo.buffer_count = 0; - shared_memory->mouse_lifo.buffer_tail = 0; + shared_memory.mouse_lifo.buffer_count = 0; + shared_memory.mouse_lifo.buffer_tail = 0; return; } next_state = {}; - const auto& last_entry = shared_memory->mouse_lifo.ReadCurrentEntry().state; + const auto& last_entry = shared_memory.mouse_lifo.ReadCurrentEntry().state; next_state.sampling_number = last_entry.sampling_number + 1; if (Settings::values.mouse_enabled) { @@ -53,7 +48,7 @@ void Mouse::OnUpdate(const Core::Timing::CoreTiming& core_timing) { next_state.button = mouse_button_state; } - shared_memory->mouse_lifo.WriteNextEntry(next_state); + shared_memory.mouse_lifo.WriteNextEntry(next_state); } } // namespace Service::HID |