/ src / Ryujinx.HLE / HOS / Services / Pctl / IParentalControlServiceFactory.cs
IParentalControlServiceFactory.cs
 1  using Ryujinx.HLE.HOS.Services.Pctl.ParentalControlServiceFactory;
 2  
 3  namespace Ryujinx.HLE.HOS.Services.Pctl
 4  {
 5      [Service("pctl", 0x303)]
 6      [Service("pctl:a", 0x83BE)]
 7      [Service("pctl:r", 0x8040)]
 8      [Service("pctl:s", 0x838E)]
 9      class IParentalControlServiceFactory : IpcService
10      {
11          private readonly int _permissionFlag;
12  
13          public IParentalControlServiceFactory(ServiceCtx context, int permissionFlag)
14          {
15              _permissionFlag = permissionFlag;
16          }
17  
18          [CommandCmif(0)]
19          // CreateService(u64, pid) -> object<nn::pctl::detail::ipc::IParentalControlService>
20          public ResultCode CreateService(ServiceCtx context)
21          {
22              ulong pid = context.Request.HandleDesc.PId;
23  
24              MakeObject(context, new IParentalControlService(context, pid, true, _permissionFlag));
25  
26              return ResultCode.Success;
27          }
28  
29          [CommandCmif(1)] // 4.0.0+
30          // CreateServiceWithoutInitialize(u64, pid) -> object<nn::pctl::detail::ipc::IParentalControlService>
31          public ResultCode CreateServiceWithoutInitialize(ServiceCtx context)
32          {
33              ulong pid = context.Request.HandleDesc.PId;
34  
35              MakeObject(context, new IParentalControlService(context, pid, false, _permissionFlag));
36  
37              return ResultCode.Success;
38          }
39      }
40  }