Просмотр исходного кода

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

[PCTL] Add CreateServiceWithoutInitialize and Initialize
Ac_K 7 лет назад
Родитель
Сommit
f1e866e248

+ 23 - 2
Ryujinx.HLE/OsHle/Services/Pctl/IParentalControlService.cs

@@ -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;
         }
         }
     }
     }
 }
 }

+ 10 - 2
Ryujinx.HLE/OsHle/Services/Pctl/IParentalControlServiceFactory.cs

@@ -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;
+        }
     }
     }
 }
 }