forked from Mirror/Ryujinx
26319d5ab3
* Add motion controls Apply suggestions from code review Co-authored-by: Ac_K <Acoustik666@gmail.com> * cleanup * add reference orientation and derive relative orientation from it * cleanup * remove unused variable and strange file * Review_2. * change GetInput to TryGetInput * Review_3. Co-authored-by: Ac_K <Acoustik666@gmail.com> Co-authored-by: LDj3SNuD <dvitiello@gmail.com>
50 lines
1.3 KiB
C#
50 lines
1.3 KiB
C#
using System.Runtime.InteropServices;
|
|
|
|
namespace Ryujinx.Motion
|
|
{
|
|
[StructLayout(LayoutKind.Sequential, Pack = 1)]
|
|
struct ControllerDataRequest
|
|
{
|
|
public MessageType Type;
|
|
public SubscriberType SubscriberType;
|
|
public byte Slot;
|
|
|
|
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 6)]
|
|
public byte[] MacAddress;
|
|
}
|
|
|
|
[StructLayout(LayoutKind.Sequential, Pack = 1)]
|
|
public struct ControllerDataResponse
|
|
{
|
|
public SharedResponse Shared;
|
|
public byte Connected;
|
|
public uint PacketID;
|
|
public byte ExtraButtons;
|
|
public byte MainButtons;
|
|
public ushort PSExtraInput;
|
|
public ushort LeftStickXY;
|
|
public ushort RightStickXY;
|
|
public uint DPadAnalog;
|
|
public ulong MainButtonsAnalog;
|
|
|
|
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 6)]
|
|
public byte[] Touch1;
|
|
|
|
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 6)]
|
|
public byte[] Touch2;
|
|
public ulong MotionTimestamp;
|
|
public float AccelerometerX;
|
|
public float AccelerometerY;
|
|
public float AccelerometerZ;
|
|
public float GyroscopePitch;
|
|
public float GyroscopeYaw;
|
|
public float GyroscopeRoll;
|
|
}
|
|
|
|
enum SubscriberType : byte
|
|
{
|
|
All = 0,
|
|
Slot,
|
|
Mac
|
|
}
|
|
}
|