HidKeyboard.cs 941 B

123456789101112131415161718192021222324252627282930313233
  1. using System.Runtime.InteropServices;
  2. namespace Ryujinx.Core
  3. {
  4. [StructLayout(LayoutKind.Sequential, Size = 0x20)]
  5. public struct HidKeyboardHeader
  6. {
  7. public ulong TimestampTicks;
  8. public ulong NumEntries;
  9. public ulong LatestEntry;
  10. public ulong MaxEntryIndex;
  11. }
  12. [StructLayout(LayoutKind.Sequential, Size = 0x38)]
  13. public struct HidKeyboardEntry
  14. {
  15. public ulong Timestamp;
  16. public ulong Timestamp_2;
  17. public ulong Modifier;
  18. [MarshalAs(UnmanagedType.ByValArray, SizeConst = 8)]
  19. public uint[] Keys;
  20. }
  21. [StructLayout(LayoutKind.Sequential, Size = 0x400)]
  22. public struct HidKeyboard
  23. {
  24. public HidKeyboardHeader Header;
  25. [MarshalAs(UnmanagedType.ByValArray, SizeConst = 17)]
  26. public HidKeyboardEntry[] Entries;
  27. [MarshalAs(UnmanagedType.ByValArray, SizeConst = 0x28)]
  28. public byte[] Padding;
  29. }
  30. }