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/touchscreen.h | |
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/touchscreen.h')
-rw-r--r-- | src/core/hle/service/hid/controllers/touchscreen.h | 32 |
1 files changed, 8 insertions, 24 deletions
diff --git a/src/core/hle/service/hid/controllers/touchscreen.h b/src/core/hle/service/hid/controllers/touchscreen.h index 79f026a81..5b6305bfc 100644 --- a/src/core/hle/service/hid/controllers/touchscreen.h +++ b/src/core/hle/service/hid/controllers/touchscreen.h @@ -3,20 +3,23 @@ #pragma once -#include "common/common_funcs.h" -#include "common/common_types.h" +#include <array> + #include "core/hid/hid_types.h" #include "core/hle/service/hid/controllers/controller_base.h" -#include "core/hle/service/hid/ring_lifo.h" +#include "core/hle/service/hid/controllers/types/touch_types.h" namespace Core::HID { class EmulatedConsole; } // namespace Core::HID namespace Service::HID { +struct TouchScreenSharedMemoryFormat; + class TouchScreen final : public ControllerBase { public: - explicit TouchScreen(Core::HID::HIDCore& hid_core_, u8* raw_shared_memory_); + explicit TouchScreen(Core::HID::HIDCore& hid_core_, + TouchScreenSharedMemoryFormat& touch_shared_memory); ~TouchScreen() override; // Called when the controller is initialized @@ -31,27 +34,8 @@ public: void SetTouchscreenDimensions(u32 width, u32 height); private: - static constexpr std::size_t MAX_FINGERS = 16; - - // This is nn::hid::TouchScreenState - struct TouchScreenState { - s64 sampling_number{}; - s32 entry_count{}; - INSERT_PADDING_BYTES(4); // Reserved - std::array<Core::HID::TouchState, MAX_FINGERS> states{}; - }; - static_assert(sizeof(TouchScreenState) == 0x290, "TouchScreenState is an invalid size"); - - struct TouchSharedMemory { - // This is nn::hid::detail::TouchScreenLifo - Lifo<TouchScreenState, hid_entry_count> touch_screen_lifo{}; - static_assert(sizeof(touch_screen_lifo) == 0x2C38, "touch_screen_lifo is an invalid size"); - INSERT_PADDING_WORDS(0xF2); - }; - static_assert(sizeof(TouchSharedMemory) == 0x3000, "TouchSharedMemory is an invalid size"); - TouchScreenState next_state{}; - TouchSharedMemory* shared_memory = nullptr; + TouchScreenSharedMemoryFormat& shared_memory; Core::HID::EmulatedConsole* console = nullptr; std::array<Core::HID::TouchFinger, MAX_FINGERS> fingers{}; |