Преглед изворни кода

implemented more of ISelfController and IApplicationFunctions

David Marcec пре 8 година
родитељ
комит
104dd867c4
1 измењених фајлова са 53 додато и 0 уклоњено
  1. 53 0
      src/core/hle/service/am/applet_oe.cpp

+ 53 - 0
src/core/hle/service/am/applet_oe.cpp

@@ -54,7 +54,14 @@ class ISelfController final : public ServiceFramework<ISelfController> {
 public:
 public:
     ISelfController() : ServiceFramework("ISelfController") {
     ISelfController() : ServiceFramework("ISelfController") {
         static const FunctionInfo functions[] = {
         static const FunctionInfo functions[] = {
+            {11, &ISelfController::SetOperationModeChangedNotification,
+             "SetOperationModeChangedNotification"},
+            {12, &ISelfController::SetPerformanceModeChangedNotification,
+             "SetPerformanceModeChangedNotification"},
             {13, &ISelfController::SetFocusHandlingMode, "SetFocusHandlingMode"},
             {13, &ISelfController::SetFocusHandlingMode, "SetFocusHandlingMode"},
+            {14, &ISelfController::SetRestartMessageEnabled, "SetRestartMessageEnabled"},
+            {16, &ISelfController::SetOutOfFocusSuspendingEnabled,
+             "SetOutOfFocusSuspendingEnabled"},
         };
         };
         RegisterHandlers(functions);
         RegisterHandlers(functions);
     }
     }
@@ -69,6 +76,37 @@ private:
 
 
         LOG_WARNING(Service, "(STUBBED) called");
         LOG_WARNING(Service, "(STUBBED) called");
     }
     }
+
+    void SetRestartMessageEnabled(Kernel::HLERequestContext& ctx) {
+        IPC::RequestBuilder rb{ctx, 2};
+        rb.Push(RESULT_SUCCESS);
+
+        LOG_WARNING(Service, "(STUBBED) called");
+    }
+
+    void SetPerformanceModeChangedNotification(Kernel::HLERequestContext& ctx) {
+        IPC::RequestBuilder rb{ctx, 2};
+        rb.Push(RESULT_SUCCESS);
+
+        LOG_WARNING(Service, "(STUBBED) called");
+    }
+
+    void SetOperationModeChangedNotification(Kernel::HLERequestContext& ctx) {
+        IPC::RequestBuilder rb{ctx, 2};
+        rb.Push(RESULT_SUCCESS);
+
+        LOG_WARNING(Service, "(STUBBED) called");
+    }
+
+    void SetOutOfFocusSuspendingEnabled(Kernel::HLERequestContext& ctx) {
+        // Takes 3 input u8s with each field located immediately after the previous u8, these are
+        // bool flags. No output.
+
+        IPC::RequestBuilder rb{ctx, 2};
+        rb.Push(RESULT_SUCCESS);
+
+        LOG_WARNING(Service, "(STUBBED) called");
+    }
 };
 };
 
 
 class ICommonStateGetter final : public ServiceFramework<ICommonStateGetter> {
 class ICommonStateGetter final : public ServiceFramework<ICommonStateGetter> {
@@ -119,6 +157,9 @@ public:
     IApplicationFunctions() : ServiceFramework("IApplicationFunctions") {
     IApplicationFunctions() : ServiceFramework("IApplicationFunctions") {
         static const FunctionInfo functions[] = {
         static const FunctionInfo functions[] = {
             {22, &IApplicationFunctions::SetTerminateResult, "SetTerminateResult"},
             {22, &IApplicationFunctions::SetTerminateResult, "SetTerminateResult"},
+            {66, &IApplicationFunctions::InitializeGamePlayRecording,
+             "InitializeGamePlayRecording"},
+            {67, &IApplicationFunctions::SetGamePlayRecordingState, "SetGamePlayRecordingState"},
         };
         };
         RegisterHandlers(functions);
         RegisterHandlers(functions);
     }
     }
@@ -136,6 +177,18 @@ private:
 
 
         LOG_WARNING(Service, "(STUBBED) called, result=0x%08X", result);
         LOG_WARNING(Service, "(STUBBED) called, result=0x%08X", result);
     }
     }
+
+    void InitializeGamePlayRecording(Kernel::HLERequestContext& ctx) {
+        IPC::RequestBuilder rb{ctx, 2};
+        rb.Push(RESULT_SUCCESS);
+        LOG_WARNING(Service, "(STUBBED) called");
+    }
+
+    void SetGamePlayRecordingState(Kernel::HLERequestContext& ctx) {
+        IPC::RequestBuilder rb{ctx, 2};
+        rb.Push(RESULT_SUCCESS);
+        LOG_WARNING(Service, "(STUBBED) called");
+    }
 };
 };
 
 
 class ILibraryAppletCreator final : public ServiceFramework<ILibraryAppletCreator> {
 class ILibraryAppletCreator final : public ServiceFramework<ILibraryAppletCreator> {