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 }