Merge pull request #157 from Cyuubi/pctl-initialize-and-without-initialize

[PCTL] Add CreateServiceWithoutInitialize and Initialize
This commit is contained in:
Ac_K 2018-06-13 00:53:54 +00:00 committed by GitHub
commit f1e866e248
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 33 additions and 4 deletions

View file

@ -1,3 +1,4 @@
using Ryujinx.HLE.Logging;
using Ryujinx.HLE.OsHle.Ipc; using Ryujinx.HLE.OsHle.Ipc;
using System.Collections.Generic; using System.Collections.Generic;
@ -9,12 +10,32 @@ namespace Ryujinx.HLE.OsHle.Services.Pctl
public override IReadOnlyDictionary<int, ServiceProcessRequest> Commands => m_Commands; public override IReadOnlyDictionary<int, ServiceProcessRequest> Commands => m_Commands;
public IParentalControlService() private bool Initialized = false;
private bool NeedInitialize;
public IParentalControlService(bool NeedInitialize = true)
{ {
m_Commands = new Dictionary<int, ServiceProcessRequest>() m_Commands = new Dictionary<int, ServiceProcessRequest>()
{ {
//... { 1, Initialize }
}; };
this.NeedInitialize = NeedInitialize;
}
public long Initialize(ServiceCtx Context)
{
if (NeedInitialize && !Initialized)
{
Initialized = true;
}
else
{
Context.Ns.Log.PrintWarning(LogClass.ServicePctl, "Service is already initialized!");
}
return 0;
} }
} }
} }

View file

@ -13,15 +13,23 @@ namespace Ryujinx.HLE.OsHle.Services.Pctl
{ {
m_Commands = new Dictionary<int, ServiceProcessRequest>() m_Commands = new Dictionary<int, ServiceProcessRequest>()
{ {
{ 0, CreateService } { 0, CreateService },
{ 1, CreateServiceWithoutInitialize }
}; };
} }
public static long CreateService(ServiceCtx Context) public long CreateService(ServiceCtx Context)
{ {
MakeObject(Context, new IParentalControlService()); MakeObject(Context, new IParentalControlService());
return 0; return 0;
} }
public long CreateServiceWithoutInitialize(ServiceCtx Context)
{
MakeObject(Context, new IParentalControlService(false));
return 0;
}
} }
} }