forked from suyu/suyu
service: am: Stub to exit applet cleanly
This commit is contained in:
parent
c46f54b091
commit
6e1b113c89
2 changed files with 31 additions and 3 deletions
|
@ -191,7 +191,7 @@ IDisplayController::IDisplayController(Core::System& system_)
|
||||||
{5, nullptr, "GetLastForegroundCaptureImageEx"},
|
{5, nullptr, "GetLastForegroundCaptureImageEx"},
|
||||||
{6, nullptr, "GetLastApplicationCaptureImageEx"},
|
{6, nullptr, "GetLastApplicationCaptureImageEx"},
|
||||||
{7, nullptr, "GetCallerAppletCaptureImageEx"},
|
{7, nullptr, "GetCallerAppletCaptureImageEx"},
|
||||||
{8, nullptr, "TakeScreenShotOfOwnLayer"},
|
{8, &IDisplayController::TakeScreenShotOfOwnLayer, "TakeScreenShotOfOwnLayer"},
|
||||||
{9, nullptr, "CopyBetweenCaptureBuffers"},
|
{9, nullptr, "CopyBetweenCaptureBuffers"},
|
||||||
{10, nullptr, "AcquireLastApplicationCaptureBuffer"},
|
{10, nullptr, "AcquireLastApplicationCaptureBuffer"},
|
||||||
{11, nullptr, "ReleaseLastApplicationCaptureBuffer"},
|
{11, nullptr, "ReleaseLastApplicationCaptureBuffer"},
|
||||||
|
@ -219,6 +219,13 @@ IDisplayController::IDisplayController(Core::System& system_)
|
||||||
|
|
||||||
IDisplayController::~IDisplayController() = default;
|
IDisplayController::~IDisplayController() = default;
|
||||||
|
|
||||||
|
void IDisplayController::TakeScreenShotOfOwnLayer(HLERequestContext& ctx) {
|
||||||
|
LOG_WARNING(Service_AM, "(STUBBED) called");
|
||||||
|
|
||||||
|
IPC::ResponseBuilder rb{ctx, 2};
|
||||||
|
rb.Push(ResultSuccess);
|
||||||
|
}
|
||||||
|
|
||||||
IDebugFunctions::IDebugFunctions(Core::System& system_)
|
IDebugFunctions::IDebugFunctions(Core::System& system_)
|
||||||
: ServiceFramework{system_, "IDebugFunctions"} {
|
: ServiceFramework{system_, "IDebugFunctions"} {
|
||||||
// clang-format off
|
// clang-format off
|
||||||
|
@ -1340,12 +1347,12 @@ ILibraryAppletSelfAccessor::ILibraryAppletSelfAccessor(Core::System& system_)
|
||||||
// clang-format off
|
// clang-format off
|
||||||
static const FunctionInfo functions[] = {
|
static const FunctionInfo functions[] = {
|
||||||
{0, &ILibraryAppletSelfAccessor::PopInData, "PopInData"},
|
{0, &ILibraryAppletSelfAccessor::PopInData, "PopInData"},
|
||||||
{1, nullptr, "PushOutData"},
|
{1, &ILibraryAppletSelfAccessor::PushOutData, "PushOutData"},
|
||||||
{2, nullptr, "PopInteractiveInData"},
|
{2, nullptr, "PopInteractiveInData"},
|
||||||
{3, nullptr, "PushInteractiveOutData"},
|
{3, nullptr, "PushInteractiveOutData"},
|
||||||
{5, nullptr, "GetPopInDataEvent"},
|
{5, nullptr, "GetPopInDataEvent"},
|
||||||
{6, nullptr, "GetPopInteractiveInDataEvent"},
|
{6, nullptr, "GetPopInteractiveInDataEvent"},
|
||||||
{10, nullptr, "ExitProcessAndReturn"},
|
{10, &ILibraryAppletSelfAccessor::ExitProcessAndReturn, "ExitProcessAndReturn"},
|
||||||
{11, &ILibraryAppletSelfAccessor::GetLibraryAppletInfo, "GetLibraryAppletInfo"},
|
{11, &ILibraryAppletSelfAccessor::GetLibraryAppletInfo, "GetLibraryAppletInfo"},
|
||||||
{12, nullptr, "GetMainAppletIdentityInfo"},
|
{12, nullptr, "GetMainAppletIdentityInfo"},
|
||||||
{13, nullptr, "CanUseApplicationCore"},
|
{13, nullptr, "CanUseApplicationCore"},
|
||||||
|
@ -1399,6 +1406,22 @@ void ILibraryAppletSelfAccessor::PopInData(HLERequestContext& ctx) {
|
||||||
rb.PushIpcInterface<IStorage>(system, std::move(data));
|
rb.PushIpcInterface<IStorage>(system, std::move(data));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void ILibraryAppletSelfAccessor::PushOutData(HLERequestContext& ctx) {
|
||||||
|
LOG_WARNING(Service_AM, "(STUBBED) called");
|
||||||
|
|
||||||
|
IPC::ResponseBuilder rb{ctx, 2};
|
||||||
|
rb.Push(ResultSuccess);
|
||||||
|
}
|
||||||
|
|
||||||
|
void ILibraryAppletSelfAccessor::ExitProcessAndReturn(HLERequestContext& ctx) {
|
||||||
|
LOG_WARNING(Service_AM, "(STUBBED) called");
|
||||||
|
|
||||||
|
system.Exit();
|
||||||
|
|
||||||
|
IPC::ResponseBuilder rb{ctx, 2};
|
||||||
|
rb.Push(ResultSuccess);
|
||||||
|
}
|
||||||
|
|
||||||
void ILibraryAppletSelfAccessor::GetLibraryAppletInfo(HLERequestContext& ctx) {
|
void ILibraryAppletSelfAccessor::GetLibraryAppletInfo(HLERequestContext& ctx) {
|
||||||
struct LibraryAppletInfo {
|
struct LibraryAppletInfo {
|
||||||
Applets::AppletId applet_id;
|
Applets::AppletId applet_id;
|
||||||
|
|
|
@ -120,6 +120,9 @@ class IDisplayController final : public ServiceFramework<IDisplayController> {
|
||||||
public:
|
public:
|
||||||
explicit IDisplayController(Core::System& system_);
|
explicit IDisplayController(Core::System& system_);
|
||||||
~IDisplayController() override;
|
~IDisplayController() override;
|
||||||
|
|
||||||
|
private:
|
||||||
|
void TakeScreenShotOfOwnLayer(HLERequestContext& ctx);
|
||||||
};
|
};
|
||||||
|
|
||||||
class IDebugFunctions final : public ServiceFramework<IDebugFunctions> {
|
class IDebugFunctions final : public ServiceFramework<IDebugFunctions> {
|
||||||
|
@ -303,7 +306,9 @@ public:
|
||||||
|
|
||||||
private:
|
private:
|
||||||
void PopInData(HLERequestContext& ctx);
|
void PopInData(HLERequestContext& ctx);
|
||||||
|
void PushOutData(HLERequestContext& ctx);
|
||||||
void GetLibraryAppletInfo(HLERequestContext& ctx);
|
void GetLibraryAppletInfo(HLERequestContext& ctx);
|
||||||
|
void ExitProcessAndReturn(HLERequestContext& ctx);
|
||||||
void GetCallerAppletIdentityInfo(HLERequestContext& ctx);
|
void GetCallerAppletIdentityInfo(HLERequestContext& ctx);
|
||||||
|
|
||||||
void PushInShowMiiEditData();
|
void PushInShowMiiEditData();
|
||||||
|
|
Loading…
Reference in a new issue