ServiceHid.cs 4.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157
  1. using Ryujinx.Core.Input;
  2. using Ryujinx.Core.OsHle.Ipc;
  3. using System.Collections.Generic;
  4. namespace Ryujinx.Core.OsHle.Services.Hid
  5. {
  6. class ServiceHid : IpcService
  7. {
  8. private Dictionary<int, ServiceProcessRequest> m_Commands;
  9. public override IReadOnlyDictionary<int, ServiceProcessRequest> Commands => m_Commands;
  10. public ServiceHid()
  11. {
  12. m_Commands = new Dictionary<int, ServiceProcessRequest>()
  13. {
  14. { 0, CreateAppletResource },
  15. { 11, ActivateTouchScreen },
  16. { 66, StartSixAxisSensor },
  17. { 100, SetSupportedNpadStyleSet },
  18. { 101, GetSupportedNpadStyleSet },
  19. { 102, SetSupportedNpadIdType },
  20. { 103, ActivateNpad },
  21. { 120, SetNpadJoyHoldType },
  22. { 122, SetNpadJoyAssignmentModeSingleByDefault },
  23. { 123, SetNpadJoyAssignmentModeSingle },
  24. { 124, SetNpadJoyAssignmentModeDual },
  25. { 125, MergeSingleJoyAsDualJoy },
  26. { 200, GetVibrationDeviceInfo },
  27. { 203, CreateActiveVibrationDeviceList },
  28. { 206, SendVibrationValues }
  29. };
  30. }
  31. public long CreateAppletResource(ServiceCtx Context)
  32. {
  33. MakeObject(Context, new IAppletResource(Context.Ns.Os.HidSharedMem));
  34. return 0;
  35. }
  36. public long ActivateTouchScreen(ServiceCtx Context)
  37. {
  38. long Unknown = Context.RequestData.ReadInt64();
  39. return 0;
  40. }
  41. public long StartSixAxisSensor(ServiceCtx Context)
  42. {
  43. int Handle = Context.RequestData.ReadInt32();
  44. long AppletResourceUserId = Context.RequestData.ReadInt64();
  45. return 0;
  46. }
  47. public long GetSupportedNpadStyleSet(ServiceCtx Context)
  48. {
  49. Context.ResponseData.Write(0);
  50. return 0;
  51. }
  52. public long SetSupportedNpadStyleSet(ServiceCtx Context)
  53. {
  54. long Unknown0 = Context.RequestData.ReadInt64();
  55. long Unknown8 = Context.RequestData.ReadInt64();
  56. return 0;
  57. }
  58. public long SetSupportedNpadIdType(ServiceCtx Context)
  59. {
  60. long Unknown = Context.RequestData.ReadInt64();
  61. return 0;
  62. }
  63. public long ActivateNpad(ServiceCtx Context)
  64. {
  65. long Unknown = Context.RequestData.ReadInt64();
  66. return 0;
  67. }
  68. public long SetNpadJoyHoldType(ServiceCtx Context)
  69. {
  70. long Unknown0 = Context.RequestData.ReadInt64();
  71. long Unknown8 = Context.RequestData.ReadInt64();
  72. return 0;
  73. }
  74. public long GetNpadJoyHoldType(ServiceCtx Context)
  75. {
  76. Context.ResponseData.Write(0L);
  77. return 0;
  78. }
  79. public long SetNpadJoyAssignmentModeSingleByDefault(ServiceCtx Context)
  80. {
  81. HidControllerId HidControllerId = (HidControllerId)Context.RequestData.ReadInt32();
  82. long AppletUserResourseId = Context.RequestData.ReadInt64();
  83. return 0;
  84. }
  85. public long SetNpadJoyAssignmentModeSingle(ServiceCtx Context)
  86. {
  87. HidControllerId HidControllerId = (HidControllerId)Context.RequestData.ReadInt32();
  88. long AppletUserResourseId = Context.RequestData.ReadInt64();
  89. long NpadJoyDeviceType = Context.RequestData.ReadInt64();
  90. return 0;
  91. }
  92. public long SetNpadJoyAssignmentModeDual(ServiceCtx Context)
  93. {
  94. HidControllerId HidControllerId = (HidControllerId)Context.RequestData.ReadInt32();
  95. long AppletUserResourseId = Context.RequestData.ReadInt64();
  96. return 0;
  97. }
  98. public long MergeSingleJoyAsDualJoy(ServiceCtx Context)
  99. {
  100. long Unknown0 = Context.RequestData.ReadInt32();
  101. long Unknown8 = Context.RequestData.ReadInt32();
  102. long AppletUserResourseId = Context.RequestData.ReadInt64();
  103. return 0;
  104. }
  105. public long GetVibrationDeviceInfo(ServiceCtx Context)
  106. {
  107. int VibrationDeviceHandle = Context.RequestData.ReadInt32();
  108. Context.ResponseData.Write(0L); //VibrationDeviceInfoForIpc
  109. return 0;
  110. }
  111. public long CreateActiveVibrationDeviceList(ServiceCtx Context)
  112. {
  113. MakeObject(Context, new IActiveApplicationDeviceList());
  114. return 0;
  115. }
  116. public long SendVibrationValues(ServiceCtx Context)
  117. {
  118. return 0;
  119. }
  120. }
  121. }