File size: 1,296 Bytes
18a519f | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 | using System;
using System.Runtime.InteropServices;
using UnityEngine.InputSystem.Utilities;
////TODO: remove this one; superseded by QueryPairedUserAccountCommand
namespace UnityEngine.InputSystem.LowLevel
{
[StructLayout(LayoutKind.Explicit, Size = kSize)]
internal unsafe struct QueryUserIdCommand : IInputDeviceCommandInfo
{
public static FourCC Type { get { return new FourCC('U', 'S', 'E', 'R'); } }
public const int kMaxIdLength = 256;
internal const int kSize = InputDeviceCommand.kBaseCommandSize + kMaxIdLength * 2;
[FieldOffset(0)]
public InputDeviceCommand baseCommand;
[FieldOffset(InputDeviceCommand.kBaseCommandSize)]
public fixed byte idBuffer[kMaxIdLength * 2];
public string ReadId()
{
fixed(QueryUserIdCommand * thisPtr = &this)
{
return StringHelpers.ReadStringFromBuffer(new IntPtr(thisPtr->idBuffer), kMaxIdLength);
}
}
public FourCC typeStatic
{
get { return Type; }
}
public static QueryUserIdCommand Create()
{
return new QueryUserIdCommand
{
baseCommand = new InputDeviceCommand(Type, kSize),
};
}
}
}
|