diff options
author | bunnei <bunneidev@gmail.com> | 2023-02-03 04:04:50 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-02-03 04:04:50 +0100 |
commit | 25fc5c0e1158cb8e81cbc769b24ad84032a1fbfd (patch) | |
tree | a86c945d2e8789250005ac38ebbb36c48e95b30c /src/core/hle/service/hid | |
parent | Merge pull request #9704 from liamwhite/das (diff) | |
parent | Revert "hle_ipc: Use std::span to avoid heap allocations/copies when calling ReadBuffer" (diff) | |
download | yuzu-25fc5c0e1158cb8e81cbc769b24ad84032a1fbfd.tar yuzu-25fc5c0e1158cb8e81cbc769b24ad84032a1fbfd.tar.gz yuzu-25fc5c0e1158cb8e81cbc769b24ad84032a1fbfd.tar.bz2 yuzu-25fc5c0e1158cb8e81cbc769b24ad84032a1fbfd.tar.lz yuzu-25fc5c0e1158cb8e81cbc769b24ad84032a1fbfd.tar.xz yuzu-25fc5c0e1158cb8e81cbc769b24ad84032a1fbfd.tar.zst yuzu-25fc5c0e1158cb8e81cbc769b24ad84032a1fbfd.zip |
Diffstat (limited to 'src/core/hle/service/hid')
-rw-r--r-- | src/core/hle/service/hid/controllers/npad.cpp | 5 | ||||
-rw-r--r-- | src/core/hle/service/hid/controllers/npad.h | 3 | ||||
-rw-r--r-- | src/core/hle/service/hid/hid.cpp | 4 | ||||
-rw-r--r-- | src/core/hle/service/hid/hidbus/hidbus_base.h | 3 | ||||
-rw-r--r-- | src/core/hle/service/hid/hidbus/ringcon.cpp | 2 | ||||
-rw-r--r-- | src/core/hle/service/hid/hidbus/ringcon.h | 3 | ||||
-rw-r--r-- | src/core/hle/service/hid/hidbus/starlink.cpp | 2 | ||||
-rw-r--r-- | src/core/hle/service/hid/hidbus/starlink.h | 2 | ||||
-rw-r--r-- | src/core/hle/service/hid/hidbus/stubbed.cpp | 2 | ||||
-rw-r--r-- | src/core/hle/service/hid/hidbus/stubbed.h | 2 |
10 files changed, 12 insertions, 16 deletions
diff --git a/src/core/hle/service/hid/controllers/npad.cpp b/src/core/hle/service/hid/controllers/npad.cpp index 513ea485a..3afda9e3f 100644 --- a/src/core/hle/service/hid/controllers/npad.cpp +++ b/src/core/hle/service/hid/controllers/npad.cpp @@ -758,12 +758,11 @@ Core::HID::NpadStyleTag Controller_NPad::GetSupportedStyleSet() const { return hid_core.GetSupportedStyleTag(); } -void Controller_NPad::SetSupportedNpadIdTypes(std::span<const u8> data) { - const auto length = data.size(); +void Controller_NPad::SetSupportedNpadIdTypes(u8* data, std::size_t length) { ASSERT(length > 0 && (length % sizeof(u32)) == 0); supported_npad_id_types.clear(); supported_npad_id_types.resize(length / sizeof(u32)); - std::memcpy(supported_npad_id_types.data(), data.data(), length); + std::memcpy(supported_npad_id_types.data(), data, length); } void Controller_NPad::GetSupportedNpadIdTypes(u32* data, std::size_t max_length) { diff --git a/src/core/hle/service/hid/controllers/npad.h b/src/core/hle/service/hid/controllers/npad.h index 1f7d33459..1a589cca2 100644 --- a/src/core/hle/service/hid/controllers/npad.h +++ b/src/core/hle/service/hid/controllers/npad.h @@ -6,7 +6,6 @@ #include <array> #include <atomic> #include <mutex> -#include <span> #include "common/bit_field.h" #include "common/common_types.h" @@ -96,7 +95,7 @@ public: void SetSupportedStyleSet(Core::HID::NpadStyleTag style_set); Core::HID::NpadStyleTag GetSupportedStyleSet() const; - void SetSupportedNpadIdTypes(std::span<const u8> data); + void SetSupportedNpadIdTypes(u8* data, std::size_t length); void GetSupportedNpadIdTypes(u32* data, std::size_t max_length); std::size_t GetSupportedNpadIdTypesSize() const; diff --git a/src/core/hle/service/hid/hid.cpp b/src/core/hle/service/hid/hid.cpp index f15f1a6bb..bf28440c6 100644 --- a/src/core/hle/service/hid/hid.cpp +++ b/src/core/hle/service/hid/hid.cpp @@ -1026,7 +1026,7 @@ void Hid::SetSupportedNpadIdType(Kernel::HLERequestContext& ctx) { const auto applet_resource_user_id{rp.Pop<u64>()}; applet_resource->GetController<Controller_NPad>(HidController::NPad) - .SetSupportedNpadIdTypes(ctx.ReadBuffer()); + .SetSupportedNpadIdTypes(ctx.ReadBuffer().data(), ctx.GetReadBufferSize()); LOG_DEBUG(Service_HID, "called, applet_resource_user_id={}", applet_resource_user_id); @@ -2104,7 +2104,7 @@ void Hid::WritePalmaRgbLedPatternEntry(Kernel::HLERequestContext& ctx) { const auto connection_handle{rp.PopRaw<Controller_Palma::PalmaConnectionHandle>()}; const auto unknown{rp.Pop<u64>()}; - [[maybe_unused]] const auto buffer = ctx.ReadBuffer(); + const auto buffer = ctx.ReadBuffer(); LOG_WARNING(Service_HID, "(STUBBED) called, connection_handle={}, unknown={}", connection_handle.npad_id, unknown); diff --git a/src/core/hle/service/hid/hidbus/hidbus_base.h b/src/core/hle/service/hid/hidbus/hidbus_base.h index 65e301137..d3960f506 100644 --- a/src/core/hle/service/hid/hidbus/hidbus_base.h +++ b/src/core/hle/service/hid/hidbus/hidbus_base.h @@ -4,7 +4,6 @@ #pragma once #include <array> -#include <span> #include "common/common_types.h" #include "core/hle/result.h" @@ -151,7 +150,7 @@ public: } // Assigns a command from data - virtual bool SetCommand(std::span<const u8> data) { + virtual bool SetCommand(const std::vector<u8>& data) { return {}; } diff --git a/src/core/hle/service/hid/hidbus/ringcon.cpp b/src/core/hle/service/hid/hidbus/ringcon.cpp index 35847cbdd..78ed47014 100644 --- a/src/core/hle/service/hid/hidbus/ringcon.cpp +++ b/src/core/hle/service/hid/hidbus/ringcon.cpp @@ -116,7 +116,7 @@ std::vector<u8> RingController::GetReply() const { } } -bool RingController::SetCommand(std::span<const u8> data) { +bool RingController::SetCommand(const std::vector<u8>& data) { if (data.size() < 4) { LOG_ERROR(Service_HID, "Command size not supported {}", data.size()); command = RingConCommands::Error; diff --git a/src/core/hle/service/hid/hidbus/ringcon.h b/src/core/hle/service/hid/hidbus/ringcon.h index c2fb386b1..845ce85a5 100644 --- a/src/core/hle/service/hid/hidbus/ringcon.h +++ b/src/core/hle/service/hid/hidbus/ringcon.h @@ -4,7 +4,6 @@ #pragma once #include <array> -#include <span> #include "common/common_types.h" #include "core/hle/service/hid/hidbus/hidbus_base.h" @@ -32,7 +31,7 @@ public: u8 GetDeviceId() const override; // Assigns a command from data - bool SetCommand(std::span<const u8> data) override; + bool SetCommand(const std::vector<u8>& data) override; // Returns a reply from a command std::vector<u8> GetReply() const override; diff --git a/src/core/hle/service/hid/hidbus/starlink.cpp b/src/core/hle/service/hid/hidbus/starlink.cpp index d0e760314..dd439f60a 100644 --- a/src/core/hle/service/hid/hidbus/starlink.cpp +++ b/src/core/hle/service/hid/hidbus/starlink.cpp @@ -42,7 +42,7 @@ std::vector<u8> Starlink::GetReply() const { return {}; } -bool Starlink::SetCommand(std::span<const u8> data) { +bool Starlink::SetCommand(const std::vector<u8>& data) { LOG_ERROR(Service_HID, "Command not implemented"); return false; } diff --git a/src/core/hle/service/hid/hidbus/starlink.h b/src/core/hle/service/hid/hidbus/starlink.h index 07c800e6e..0b1b7ba49 100644 --- a/src/core/hle/service/hid/hidbus/starlink.h +++ b/src/core/hle/service/hid/hidbus/starlink.h @@ -29,7 +29,7 @@ public: u8 GetDeviceId() const override; // Assigns a command from data - bool SetCommand(std::span<const u8> data) override; + bool SetCommand(const std::vector<u8>& data) override; // Returns a reply from a command std::vector<u8> GetReply() const override; diff --git a/src/core/hle/service/hid/hidbus/stubbed.cpp b/src/core/hle/service/hid/hidbus/stubbed.cpp index 07632c872..e477443e3 100644 --- a/src/core/hle/service/hid/hidbus/stubbed.cpp +++ b/src/core/hle/service/hid/hidbus/stubbed.cpp @@ -43,7 +43,7 @@ std::vector<u8> HidbusStubbed::GetReply() const { return {}; } -bool HidbusStubbed::SetCommand(std::span<const u8> data) { +bool HidbusStubbed::SetCommand(const std::vector<u8>& data) { LOG_ERROR(Service_HID, "Command not implemented"); return false; } diff --git a/src/core/hle/service/hid/hidbus/stubbed.h b/src/core/hle/service/hid/hidbus/stubbed.h index 38eaa0ecc..91165ceff 100644 --- a/src/core/hle/service/hid/hidbus/stubbed.h +++ b/src/core/hle/service/hid/hidbus/stubbed.h @@ -29,7 +29,7 @@ public: u8 GetDeviceId() const override; // Assigns a command from data - bool SetCommand(std::span<const u8> data) override; + bool SetCommand(const std::vector<u8>& data) override; // Returns a reply from a command std::vector<u8> GetReply() const override; |