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

IApplicationFunctions: Implement GetHealthWarningDisappearedSystemEvent

Morph 5 лет назад
Родитель
Сommit
13b08376b7
2 измененных файлов с 14 добавлено и 1 удалено
  1. 12 1
      src/core/hle/service/am/am.cpp
  2. 2 0
      src/core/hle/service/am/am.h

+ 12 - 1
src/core/hle/service/am/am.cpp

@@ -1216,7 +1216,7 @@ IApplicationFunctions::IApplicationFunctions(Core::System& system_)
         {141, &IApplicationFunctions::TryPopFromFriendInvitationStorageChannel, "TryPopFromFriendInvitationStorageChannel"},
         {141, &IApplicationFunctions::TryPopFromFriendInvitationStorageChannel, "TryPopFromFriendInvitationStorageChannel"},
         {150, nullptr, "GetNotificationStorageChannelEvent"},
         {150, nullptr, "GetNotificationStorageChannelEvent"},
         {151, nullptr, "TryPopFromNotificationStorageChannel"},
         {151, nullptr, "TryPopFromNotificationStorageChannel"},
-        {160, nullptr, "GetHealthWarningDisappearedSystemEvent"},
+        {160, &IApplicationFunctions::GetHealthWarningDisappearedSystemEvent, "GetHealthWarningDisappearedSystemEvent"},
         {170, nullptr, "SetHdcpAuthenticationActivated"},
         {170, nullptr, "SetHdcpAuthenticationActivated"},
         {180, nullptr, "GetLaunchRequiredVersion"},
         {180, nullptr, "GetLaunchRequiredVersion"},
         {181, nullptr, "UpgradeLaunchRequiredVersion"},
         {181, nullptr, "UpgradeLaunchRequiredVersion"},
@@ -1234,6 +1234,9 @@ IApplicationFunctions::IApplicationFunctions(Core::System& system_)
 
 
     friend_invitation_storage_channel_event = Kernel::WritableEvent::CreateEventPair(
     friend_invitation_storage_channel_event = Kernel::WritableEvent::CreateEventPair(
         kernel, "IApplicationFunctions:FriendInvitationStorageChannelEvent");
         kernel, "IApplicationFunctions:FriendInvitationStorageChannelEvent");
+
+    health_warning_disappeared_system_event = Kernel::WritableEvent::CreateEventPair(
+        kernel, "IApplicationFunctions:HealthWarningDisappearedSystemEvent");
 }
 }
 
 
 IApplicationFunctions::~IApplicationFunctions() = default;
 IApplicationFunctions::~IApplicationFunctions() = default;
@@ -1649,6 +1652,14 @@ void IApplicationFunctions::TryPopFromFriendInvitationStorageChannel(
     rb.Push(ERR_NO_DATA_IN_CHANNEL);
     rb.Push(ERR_NO_DATA_IN_CHANNEL);
 }
 }
 
 
+void IApplicationFunctions::GetHealthWarningDisappearedSystemEvent(Kernel::HLERequestContext& ctx) {
+    LOG_DEBUG(Service_AM, "called");
+
+    IPC::ResponseBuilder rb{ctx, 2, 1};
+    rb.Push(RESULT_SUCCESS);
+    rb.PushCopyObjects(health_warning_disappeared_system_event.readable);
+}
+
 void InstallInterfaces(SM::ServiceManager& service_manager, NVFlinger::NVFlinger& nvflinger,
 void InstallInterfaces(SM::ServiceManager& service_manager, NVFlinger::NVFlinger& nvflinger,
                        Core::System& system) {
                        Core::System& system) {
     auto message_queue = std::make_shared<AppletMessageQueue>(system.Kernel());
     auto message_queue = std::make_shared<AppletMessageQueue>(system.Kernel());

+ 2 - 0
src/core/hle/service/am/am.h

@@ -290,12 +290,14 @@ private:
     void GetGpuErrorDetectedSystemEvent(Kernel::HLERequestContext& ctx);
     void GetGpuErrorDetectedSystemEvent(Kernel::HLERequestContext& ctx);
     void GetFriendInvitationStorageChannelEvent(Kernel::HLERequestContext& ctx);
     void GetFriendInvitationStorageChannelEvent(Kernel::HLERequestContext& ctx);
     void TryPopFromFriendInvitationStorageChannel(Kernel::HLERequestContext& ctx);
     void TryPopFromFriendInvitationStorageChannel(Kernel::HLERequestContext& ctx);
+    void GetHealthWarningDisappearedSystemEvent(Kernel::HLERequestContext& ctx);
 
 
     bool launch_popped_application_specific = false;
     bool launch_popped_application_specific = false;
     bool launch_popped_account_preselect = false;
     bool launch_popped_account_preselect = false;
     s32 previous_program_index{-1};
     s32 previous_program_index{-1};
     Kernel::EventPair gpu_error_detected_event;
     Kernel::EventPair gpu_error_detected_event;
     Kernel::EventPair friend_invitation_storage_channel_event;
     Kernel::EventPair friend_invitation_storage_channel_event;
+    Kernel::EventPair health_warning_disappeared_system_event;
 };
 };
 
 
 class IHomeMenuFunctions final : public ServiceFramework<IHomeMenuFunctions> {
 class IHomeMenuFunctions final : public ServiceFramework<IHomeMenuFunctions> {