diff options
author | german77 <juangerman-13@hotmail.com> | 2023-05-14 17:22:00 +0200 |
---|---|---|
committer | german77 <juangerman-13@hotmail.com> | 2023-05-15 02:07:04 +0200 |
commit | 6e54615b16df2004af0bfbb9543a3fd21c678dbb (patch) | |
tree | d8063b0684efcee99c016864be19fc2ade037c21 /src/core/hle/service | |
parent | Merge pull request #10286 from liamwhite/compatible-bits (diff) | |
download | yuzu-6e54615b16df2004af0bfbb9543a3fd21c678dbb.tar yuzu-6e54615b16df2004af0bfbb9543a3fd21c678dbb.tar.gz yuzu-6e54615b16df2004af0bfbb9543a3fd21c678dbb.tar.bz2 yuzu-6e54615b16df2004af0bfbb9543a3fd21c678dbb.tar.lz yuzu-6e54615b16df2004af0bfbb9543a3fd21c678dbb.tar.xz yuzu-6e54615b16df2004af0bfbb9543a3fd21c678dbb.tar.zst yuzu-6e54615b16df2004af0bfbb9543a3fd21c678dbb.zip |
Diffstat (limited to 'src/core/hle/service')
-rw-r--r-- | src/core/hle/service/hid/controllers/npad.cpp | 4 | ||||
-rw-r--r-- | src/core/hle/service/hid/controllers/npad.h | 4 | ||||
-rw-r--r-- | src/core/hle/service/hid/hid.cpp | 20 |
3 files changed, 14 insertions, 14 deletions
diff --git a/src/core/hle/service/hid/controllers/npad.cpp b/src/core/hle/service/hid/controllers/npad.cpp index ef4aec4ea..28818c813 100644 --- a/src/core/hle/service/hid/controllers/npad.cpp +++ b/src/core/hle/service/hid/controllers/npad.cpp @@ -979,8 +979,8 @@ void Controller_NPad::VibrateController( } void Controller_NPad::VibrateControllers( - const std::vector<Core::HID::VibrationDeviceHandle>& vibration_device_handles, - const std::vector<Core::HID::VibrationValue>& vibration_values) { + std::span<const Core::HID::VibrationDeviceHandle> vibration_device_handles, + std::span<const Core::HID::VibrationValue> vibration_values) { if (!Settings::values.vibration_enabled.GetValue() && !permit_vibration_session_enabled) { return; } diff --git a/src/core/hle/service/hid/controllers/npad.h b/src/core/hle/service/hid/controllers/npad.h index 9cfe298f1..776411261 100644 --- a/src/core/hle/service/hid/controllers/npad.h +++ b/src/core/hle/service/hid/controllers/npad.h @@ -112,8 +112,8 @@ public: const Core::HID::VibrationValue& vibration_value); void VibrateControllers( - const std::vector<Core::HID::VibrationDeviceHandle>& vibration_device_handles, - const std::vector<Core::HID::VibrationValue>& vibration_values); + std::span<const Core::HID::VibrationDeviceHandle> vibration_device_handles, + std::span<const Core::HID::VibrationValue> vibration_values); Core::HID::VibrationValue GetLastVibration( const Core::HID::VibrationDeviceHandle& vibration_device_handle) const; diff --git a/src/core/hle/service/hid/hid.cpp b/src/core/hle/service/hid/hid.cpp index 87e7b864a..2bf1d8a27 100644 --- a/src/core/hle/service/hid/hid.cpp +++ b/src/core/hle/service/hid/hid.cpp @@ -1601,16 +1601,16 @@ void Hid::SendVibrationValues(HLERequestContext& ctx) { IPC::RequestParser rp{ctx}; const auto applet_resource_user_id{rp.Pop<u64>()}; - const auto handles = ctx.ReadBuffer(0); - const auto vibrations = ctx.ReadBuffer(1); - - std::vector<Core::HID::VibrationDeviceHandle> vibration_device_handles( - handles.size() / sizeof(Core::HID::VibrationDeviceHandle)); - std::vector<Core::HID::VibrationValue> vibration_values(vibrations.size() / - sizeof(Core::HID::VibrationValue)); - - std::memcpy(vibration_device_handles.data(), handles.data(), handles.size()); - std::memcpy(vibration_values.data(), vibrations.data(), vibrations.size()); + const auto handle_data = ctx.ReadBuffer(0); + const auto handle_count = ctx.GetReadBufferNumElements<Core::HID::VibrationDeviceHandle>(0); + const auto vibration_data = ctx.ReadBuffer(1); + const auto vibration_count = ctx.GetReadBufferNumElements<Core::HID::VibrationValue>(1); + + auto vibration_device_handles = + std::span(reinterpret_cast<const Core::HID::VibrationDeviceHandle*>(handle_data.data()), + handle_count); + auto vibration_values = std::span( + reinterpret_cast<const Core::HID::VibrationValue*>(vibration_data.data()), vibration_count); applet_resource->GetController<Controller_NPad>(HidController::NPad) .VibrateControllers(vibration_device_handles, vibration_values); |