From f4e879a1e6ad810aa38c1c020467a2589441871b Mon Sep 17 00:00:00 2001 From: Mary-nyan Date: Thu, 24 Nov 2022 15:26:29 +0100 Subject: Reduce usage of Marshal.PtrToStructure and Marshal.StructureToPtr (#3805) * common: Make BinaryReaderExtensions Read & Write take unamanged types This allows us to not rely on Marshal.PtrToStructure and Marshal.StructureToPtr for those. * common: Make MemoryHelper Read & Write takes unamanged types * Update Marshal.SizeOf => Unsafe.SizeOf when appropriate and start moving software applet to unmanaged types --- .../Motion/CemuHook/Protocol/ControllerData.cs | 18 +++++++----------- 1 file changed, 7 insertions(+), 11 deletions(-) (limited to 'Ryujinx.Input/Motion/CemuHook/Protocol/ControllerData.cs') diff --git a/Ryujinx.Input/Motion/CemuHook/Protocol/ControllerData.cs b/Ryujinx.Input/Motion/CemuHook/Protocol/ControllerData.cs index 9ff8dc91..7fb72344 100644 --- a/Ryujinx.Input/Motion/CemuHook/Protocol/ControllerData.cs +++ b/Ryujinx.Input/Motion/CemuHook/Protocol/ControllerData.cs @@ -1,16 +1,15 @@ -using System.Runtime.InteropServices; +using Ryujinx.Common.Memory; +using System.Runtime.InteropServices; namespace Ryujinx.Input.Motion.CemuHook.Protocol { [StructLayout(LayoutKind.Sequential, Pack = 1)] struct ControllerDataRequest { - public MessageType Type; + public MessageType Type; public SubscriberType SubscriberType; - public byte Slot; - - [MarshalAs(UnmanagedType.ByValArray, SizeConst = 6)] - public byte[] MacAddress; + public byte Slot; + public Array6 MacAddress; } [StructLayout(LayoutKind.Sequential, Pack = 1)] @@ -27,11 +26,8 @@ namespace Ryujinx.Input.Motion.CemuHook.Protocol public uint DPadAnalog; public ulong MainButtonsAnalog; - [MarshalAs(UnmanagedType.ByValArray, SizeConst = 6)] - public byte[] Touch1; - - [MarshalAs(UnmanagedType.ByValArray, SizeConst = 6)] - public byte[] Touch2; + public Array6 Touch1; + public Array6 Touch2; public ulong MotionTimestamp; public float AccelerometerX; -- cgit v1.2.3