HidUtils.cs 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839
  1. using System;
  2. namespace Ryujinx.HLE.HOS.Services.Hid.HidServer
  3. {
  4. static class HidUtils
  5. {
  6. public static PlayerIndex GetIndexFromNpadIdType(NpadIdType npadIdType)
  7. => npadIdType switch
  8. {
  9. NpadIdType.Player1 => PlayerIndex.Player1,
  10. NpadIdType.Player2 => PlayerIndex.Player2,
  11. NpadIdType.Player3 => PlayerIndex.Player3,
  12. NpadIdType.Player4 => PlayerIndex.Player4,
  13. NpadIdType.Player5 => PlayerIndex.Player5,
  14. NpadIdType.Player6 => PlayerIndex.Player6,
  15. NpadIdType.Player7 => PlayerIndex.Player7,
  16. NpadIdType.Player8 => PlayerIndex.Player8,
  17. NpadIdType.Handheld => PlayerIndex.Handheld,
  18. NpadIdType.Unknown => PlayerIndex.Unknown,
  19. _ => throw new ArgumentOutOfRangeException(nameof(npadIdType))
  20. };
  21. public static NpadIdType GetNpadIdTypeFromIndex(PlayerIndex index)
  22. => index switch
  23. {
  24. PlayerIndex.Player1 => NpadIdType.Player1,
  25. PlayerIndex.Player2 => NpadIdType.Player2,
  26. PlayerIndex.Player3 => NpadIdType.Player3,
  27. PlayerIndex.Player4 => NpadIdType.Player4,
  28. PlayerIndex.Player5 => NpadIdType.Player5,
  29. PlayerIndex.Player6 => NpadIdType.Player6,
  30. PlayerIndex.Player7 => NpadIdType.Player7,
  31. PlayerIndex.Player8 => NpadIdType.Player8,
  32. PlayerIndex.Handheld => NpadIdType.Handheld,
  33. PlayerIndex.Unknown => NpadIdType.Unknown,
  34. _ => throw new ArgumentOutOfRangeException(nameof(index))
  35. };
  36. }
  37. }