mirror of
				https://git.suyu.dev/suyu/suyu.git
				synced 2025-10-31 14:56:40 +08:00 
			
		
		
		
	Merge pull request #10294 from german77/vibration_span
service: hid: Use span instead of vector reference
This commit is contained in:
		
						commit
						9087fe10e9
					
				| @ -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; | ||||
|     } | ||||
|  | ||||
| @ -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; | ||||
|  | ||||
| @ -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); | ||||
|     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); | ||||
| 
 | ||||
|     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()); | ||||
|     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); | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user