HidUtils.cs 2.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. using Ryujinx.HLE.Input;
  2. using System;
  3. namespace Ryujinx.HLE.HOS.Services.Hid.HidServer
  4. {
  5. static class HidUtils
  6. {
  7. public static ControllerId GetIndexFromNpadIdType(HidNpadIdType npadIdType)
  8. {
  9. switch (npadIdType)
  10. {
  11. case HidNpadIdType.Player1: return ControllerId.ControllerPlayer1;
  12. case HidNpadIdType.Player2: return ControllerId.ControllerPlayer2;
  13. case HidNpadIdType.Player3: return ControllerId.ControllerPlayer3;
  14. case HidNpadIdType.Player4: return ControllerId.ControllerPlayer4;
  15. case HidNpadIdType.Player5: return ControllerId.ControllerPlayer5;
  16. case HidNpadIdType.Player6: return ControllerId.ControllerPlayer6;
  17. case HidNpadIdType.Player7: return ControllerId.ControllerPlayer7;
  18. case HidNpadIdType.Player8: return ControllerId.ControllerPlayer8;
  19. case HidNpadIdType.Handheld: return ControllerId.ControllerHandheld;
  20. case HidNpadIdType.Unknown: return ControllerId.ControllerUnknown;
  21. default: throw new ArgumentOutOfRangeException(nameof(npadIdType));
  22. }
  23. }
  24. public static HidNpadIdType GetNpadIdTypeFromIndex(ControllerId index)
  25. {
  26. switch (index)
  27. {
  28. case ControllerId.ControllerPlayer1: return HidNpadIdType.Player1;
  29. case ControllerId.ControllerPlayer2: return HidNpadIdType.Player2;
  30. case ControllerId.ControllerPlayer3: return HidNpadIdType.Player3;
  31. case ControllerId.ControllerPlayer4: return HidNpadIdType.Player4;
  32. case ControllerId.ControllerPlayer5: return HidNpadIdType.Player5;
  33. case ControllerId.ControllerPlayer6: return HidNpadIdType.Player6;
  34. case ControllerId.ControllerPlayer7: return HidNpadIdType.Player7;
  35. case ControllerId.ControllerPlayer8: return HidNpadIdType.Player8;
  36. case ControllerId.ControllerHandheld: return HidNpadIdType.Handheld;
  37. case ControllerId.ControllerUnknown: return HidNpadIdType.Unknown;
  38. default: throw new ArgumentOutOfRangeException(nameof(index));
  39. }
  40. }
  41. }
  42. }