ISystemDisplayService.cs 1.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. using Ryujinx.Common.Logging;
  2. namespace Ryujinx.HLE.HOS.Services.Vi.RootService.ApplicationDisplayService
  3. {
  4. class ISystemDisplayService : IpcService
  5. {
  6. private IApplicationDisplayService _applicationDisplayService;
  7. public ISystemDisplayService(IApplicationDisplayService applicationDisplayService)
  8. {
  9. _applicationDisplayService = applicationDisplayService;
  10. }
  11. [CommandHipc(2205)]
  12. // SetLayerZ(u64, u64)
  13. public ResultCode SetLayerZ(ServiceCtx context)
  14. {
  15. Logger.Stub?.PrintStub(LogClass.ServiceVi);
  16. return ResultCode.Success;
  17. }
  18. [CommandHipc(2207)]
  19. // SetLayerVisibility(b8, u64)
  20. public ResultCode SetLayerVisibility(ServiceCtx context)
  21. {
  22. Logger.Stub?.PrintStub(LogClass.ServiceVi);
  23. return ResultCode.Success;
  24. }
  25. [CommandHipc(2312)] // 1.0.0-6.2.0
  26. // CreateStrayLayer(u32, u64) -> (u64, u64, buffer<bytes, 6>)
  27. public ResultCode CreateStrayLayer(ServiceCtx context)
  28. {
  29. Logger.Stub?.PrintStub(LogClass.ServiceVi);
  30. return _applicationDisplayService.CreateStrayLayer(context);
  31. }
  32. [CommandHipc(3200)]
  33. // GetDisplayMode(u64) -> nn::vi::DisplayModeInfo
  34. public ResultCode GetDisplayMode(ServiceCtx context)
  35. {
  36. ulong displayId = context.RequestData.ReadUInt64();
  37. (ulong width, ulong height) = AndroidSurfaceComposerClient.GetDisplayInfo(context, displayId);
  38. context.ResponseData.Write((uint)width);
  39. context.ResponseData.Write((uint)height);
  40. context.ResponseData.Write(60.0f);
  41. context.ResponseData.Write(0);
  42. Logger.Stub?.PrintStub(LogClass.ServiceVi);
  43. return ResultCode.Success;
  44. }
  45. }
  46. }