From f43815af5d59bb1b31696f317c2e2ce243445cb5 Mon Sep 17 00:00:00 2001 From: David Marcec Date: Sun, 7 Oct 2018 20:17:04 +1100 Subject: Added the ability to "disconnect" individual npads Fixes arms --- src/core/hle/service/hid/controllers/npad.h | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) (limited to 'src/core/hle/service/hid/controllers/npad.h') diff --git a/src/core/hle/service/hid/controllers/npad.h b/src/core/hle/service/hid/controllers/npad.h index 2d1614747..86ab0e429 100644 --- a/src/core/hle/service/hid/controllers/npad.h +++ b/src/core/hle/service/hid/controllers/npad.h @@ -91,6 +91,9 @@ public: void AddNewController(NPadControllerType controller); + void ConnectNPad(u32 npad_id); + void DisconnectNPad(u32 npad_id); + private: struct CommonHeader { s64_le timestamp; @@ -235,6 +238,12 @@ private: INSERT_PADDING_BYTES(0xdf8); }; static_assert(sizeof(NPadEntry) == 0x5000, "NPadEntry is an invalid size"); + + struct ControllerHolder { + Controller_NPad::NPadControllerType type; + bool is_connected; + }; + NPadType style{}; std::array shared_memory_entries{}; std::array, Settings::NativeButton::NUM_BUTTONS_HID> @@ -245,9 +254,9 @@ private: Kernel::SharedPtr styleset_changed_event; std::size_t dump_idx{}; Vibration last_processed_vibration{}; - std::size_t CONTROLLER_COUNT{}; - const std::array NPAD_ID_LIST{0, 1, 2, 3, 4, 5, 6, 7, 32}; - std::array CONNECTED_CONTROLLERS{}; + std::size_t controller_count{}; + static constexpr std::array npad_id_list{0, 1, 2, 3, 4, 5, 6, 7, 32}; + std::array connected_controllers{}; void InitNewlyAddedControler(std::size_t controller_idx); }; -- cgit v1.2.3