diff options
| -rw-r--r-- | src/core/hle/service/am/am.cpp | 27 | ||||
| -rw-r--r-- | src/core/hle/service/am/am.h | 1 |
2 files changed, 18 insertions, 10 deletions
diff --git a/src/core/hle/service/am/am.cpp b/src/core/hle/service/am/am.cpp index 0477ce66e..3758ecae1 100644 --- a/src/core/hle/service/am/am.cpp +++ b/src/core/hle/service/am/am.cpp | |||
| @@ -203,8 +203,8 @@ ISelfController::ISelfController(std::shared_ptr<NVFlinger::NVFlinger> nvflinger | |||
| 203 | ISelfController::~ISelfController() = default; | 203 | ISelfController::~ISelfController() = default; |
| 204 | 204 | ||
| 205 | void ISelfController::SetFocusHandlingMode(Kernel::HLERequestContext& ctx) { | 205 | void ISelfController::SetFocusHandlingMode(Kernel::HLERequestContext& ctx) { |
| 206 | // Takes 3 input u8s with each field located immediately after the previous u8, these are | 206 | // Takes 3 input u8s with each field located immediately after the previous |
| 207 | // bool flags. No output. | 207 | // u8, these are bool flags. No output. |
| 208 | 208 | ||
| 209 | IPC::RequestParser rp{ctx}; | 209 | IPC::RequestParser rp{ctx}; |
| 210 | 210 | ||
| @@ -258,8 +258,8 @@ void ISelfController::SetOperationModeChangedNotification(Kernel::HLERequestCont | |||
| 258 | } | 258 | } |
| 259 | 259 | ||
| 260 | void ISelfController::SetOutOfFocusSuspendingEnabled(Kernel::HLERequestContext& ctx) { | 260 | void ISelfController::SetOutOfFocusSuspendingEnabled(Kernel::HLERequestContext& ctx) { |
| 261 | // Takes 3 input u8s with each field located immediately after the previous u8, these are | 261 | // Takes 3 input u8s with each field located immediately after the previous |
| 262 | // bool flags. No output. | 262 | // u8, these are bool flags. No output. |
| 263 | IPC::RequestParser rp{ctx}; | 263 | IPC::RequestParser rp{ctx}; |
| 264 | 264 | ||
| 265 | bool enabled = rp.Pop<bool>(); | 265 | bool enabled = rp.Pop<bool>(); |
| @@ -302,8 +302,8 @@ void ISelfController::SetScreenShotImageOrientation(Kernel::HLERequestContext& c | |||
| 302 | } | 302 | } |
| 303 | 303 | ||
| 304 | void ISelfController::CreateManagedDisplayLayer(Kernel::HLERequestContext& ctx) { | 304 | void ISelfController::CreateManagedDisplayLayer(Kernel::HLERequestContext& ctx) { |
| 305 | // TODO(Subv): Find out how AM determines the display to use, for now just create the layer | 305 | // TODO(Subv): Find out how AM determines the display to use, for now just |
| 306 | // in the Default display. | 306 | // create the layer in the Default display. |
| 307 | u64 display_id = nvflinger->OpenDisplay("Default"); | 307 | u64 display_id = nvflinger->OpenDisplay("Default"); |
| 308 | u64 layer_id = nvflinger->CreateLayer(display_id); | 308 | u64 layer_id = nvflinger->CreateLayer(display_id); |
| 309 | 309 | ||
| @@ -733,7 +733,7 @@ IApplicationFunctions::IApplicationFunctions() : ServiceFramework("IApplicationF | |||
| 733 | {70, nullptr, "RequestToShutdown"}, | 733 | {70, nullptr, "RequestToShutdown"}, |
| 734 | {71, nullptr, "RequestToReboot"}, | 734 | {71, nullptr, "RequestToReboot"}, |
| 735 | {80, nullptr, "ExitAndRequestToShowThanksMessage"}, | 735 | {80, nullptr, "ExitAndRequestToShowThanksMessage"}, |
| 736 | {90, nullptr, "EnableApplicationCrashReport"}, | 736 | {90, &IApplicationFunctions::EnableApplicationCrashReport, "EnableApplicationCrashReport"}, |
| 737 | {100, nullptr, "InitializeApplicationCopyrightFrameBuffer"}, | 737 | {100, nullptr, "InitializeApplicationCopyrightFrameBuffer"}, |
| 738 | {101, nullptr, "SetApplicationCopyrightImage"}, | 738 | {101, nullptr, "SetApplicationCopyrightImage"}, |
| 739 | {102, nullptr, "SetApplicationCopyrightVisibility"}, | 739 | {102, nullptr, "SetApplicationCopyrightVisibility"}, |
| @@ -752,6 +752,12 @@ IApplicationFunctions::IApplicationFunctions() : ServiceFramework("IApplicationF | |||
| 752 | 752 | ||
| 753 | IApplicationFunctions::~IApplicationFunctions() = default; | 753 | IApplicationFunctions::~IApplicationFunctions() = default; |
| 754 | 754 | ||
| 755 | void IApplicationFunctions::EnableApplicationCrashReport(Kernel::HLERequestContext& ctx) { | ||
| 756 | IPC::ResponseBuilder rb{ctx, 2}; | ||
| 757 | rb.Push(RESULT_SUCCESS); | ||
| 758 | LOG_WARNING(Service_AM, "(STUBBED) called"); | ||
| 759 | } | ||
| 760 | |||
| 755 | void IApplicationFunctions::BeginBlockingHomeButtonShortAndLongPressed( | 761 | void IApplicationFunctions::BeginBlockingHomeButtonShortAndLongPressed( |
| 756 | Kernel::HLERequestContext& ctx) { | 762 | Kernel::HLERequestContext& ctx) { |
| 757 | IPC::ResponseBuilder rb{ctx, 2}; | 763 | IPC::ResponseBuilder rb{ctx, 2}; |
| @@ -821,7 +827,8 @@ void IApplicationFunctions::EnsureSaveData(Kernel::HLERequestContext& ctx) { | |||
| 821 | 827 | ||
| 822 | void IApplicationFunctions::SetTerminateResult(Kernel::HLERequestContext& ctx) { | 828 | void IApplicationFunctions::SetTerminateResult(Kernel::HLERequestContext& ctx) { |
| 823 | // Takes an input u32 Result, no output. | 829 | // Takes an input u32 Result, no output. |
| 824 | // For example, in some cases official apps use this with error 0x2A2 then uses svcBreak. | 830 | // For example, in some cases official apps use this with error 0x2A2 then |
| 831 | // uses svcBreak. | ||
| 825 | 832 | ||
| 826 | IPC::RequestParser rp{ctx}; | 833 | IPC::RequestParser rp{ctx}; |
| 827 | u32 result = rp.Pop<u32>(); | 834 | u32 result = rp.Pop<u32>(); |
| @@ -884,8 +891,8 @@ void IApplicationFunctions::GetPseudoDeviceId(Kernel::HLERequestContext& ctx) { | |||
| 884 | void InstallInterfaces(SM::ServiceManager& service_manager, | 891 | void InstallInterfaces(SM::ServiceManager& service_manager, |
| 885 | std::shared_ptr<NVFlinger::NVFlinger> nvflinger) { | 892 | std::shared_ptr<NVFlinger::NVFlinger> nvflinger) { |
| 886 | auto message_queue = std::make_shared<AppletMessageQueue>(); | 893 | auto message_queue = std::make_shared<AppletMessageQueue>(); |
| 887 | message_queue->PushMessage( | 894 | message_queue->PushMessage(AppletMessageQueue::AppletMessage::FocusStateChanged); // Needed on |
| 888 | AppletMessageQueue::AppletMessage::FocusStateChanged); // Needed on game boot | 895 | // game boot |
| 889 | 896 | ||
| 890 | std::make_shared<AppletAE>(nvflinger, message_queue)->InstallAsService(service_manager); | 897 | std::make_shared<AppletAE>(nvflinger, message_queue)->InstallAsService(service_manager); |
| 891 | std::make_shared<AppletOE>(nvflinger, message_queue)->InstallAsService(service_manager); | 898 | std::make_shared<AppletOE>(nvflinger, message_queue)->InstallAsService(service_manager); |
diff --git a/src/core/hle/service/am/am.h b/src/core/hle/service/am/am.h index 2f1c20bce..5a3fcba8f 100644 --- a/src/core/hle/service/am/am.h +++ b/src/core/hle/service/am/am.h | |||
| @@ -185,6 +185,7 @@ private: | |||
| 185 | void EndBlockingHomeButtonShortAndLongPressed(Kernel::HLERequestContext& ctx); | 185 | void EndBlockingHomeButtonShortAndLongPressed(Kernel::HLERequestContext& ctx); |
| 186 | void BeginBlockingHomeButton(Kernel::HLERequestContext& ctx); | 186 | void BeginBlockingHomeButton(Kernel::HLERequestContext& ctx); |
| 187 | void EndBlockingHomeButton(Kernel::HLERequestContext& ctx); | 187 | void EndBlockingHomeButton(Kernel::HLERequestContext& ctx); |
| 188 | void EnableApplicationCrashReport(Kernel::HLERequestContext& ctx); | ||
| 188 | }; | 189 | }; |
| 189 | 190 | ||
| 190 | class IHomeMenuFunctions final : public ServiceFramework<IHomeMenuFunctions> { | 191 | class IHomeMenuFunctions final : public ServiceFramework<IHomeMenuFunctions> { |