diff options
Diffstat (limited to 'src/Ryujinx.HLE/HOS/Services/Vi/IManagerRootService.cs')
-rw-r--r-- | src/Ryujinx.HLE/HOS/Services/Vi/IManagerRootService.cs | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/src/Ryujinx.HLE/HOS/Services/Vi/IManagerRootService.cs b/src/Ryujinx.HLE/HOS/Services/Vi/IManagerRootService.cs new file mode 100644 index 00000000..d564dabe --- /dev/null +++ b/src/Ryujinx.HLE/HOS/Services/Vi/IManagerRootService.cs @@ -0,0 +1,28 @@ +using Ryujinx.HLE.HOS.Services.Vi.RootService; +using Ryujinx.HLE.HOS.Services.Vi.Types; + +namespace Ryujinx.HLE.HOS.Services.Vi +{ + [Service("vi:m")] + class IManagerRootService : IpcService + { + // vi:u/m/s aren't on 3 separate threads but we can't put them together with the current ServerBase + public IManagerRootService(ServiceCtx context) : base(context.Device.System.ViServerM) { } + + [CommandCmif(2)] + // GetDisplayService(u32) -> object<nn::visrv::sf::IApplicationDisplayService> + public ResultCode GetDisplayService(ServiceCtx context) + { + ViServiceType serviceType = (ViServiceType)context.RequestData.ReadInt32(); + + if (serviceType != ViServiceType.Manager) + { + return ResultCode.PermissionDenied; + } + + MakeObject(context, new IApplicationDisplayService(serviceType)); + + return ResultCode.Success; + } + } +}
\ No newline at end of file |