Stubs for QLaunch (#428)
* Stubs for QLaunch * Wiped unrelated stuff * Addressed comment * Dropped GetPopFromGeneralChannelEvent
This commit is contained in:
		@@ -103,7 +103,7 @@ ISelfController::ISelfController(std::shared_ptr<NVFlinger::NVFlinger> nvflinger
 | 
				
			|||||||
        {40, &ISelfController::CreateManagedDisplayLayer, "CreateManagedDisplayLayer"},
 | 
					        {40, &ISelfController::CreateManagedDisplayLayer, "CreateManagedDisplayLayer"},
 | 
				
			||||||
        {41, nullptr, "IsSystemBufferSharingEnabled"},
 | 
					        {41, nullptr, "IsSystemBufferSharingEnabled"},
 | 
				
			||||||
        {42, nullptr, "GetSystemSharedLayerHandle"},
 | 
					        {42, nullptr, "GetSystemSharedLayerHandle"},
 | 
				
			||||||
        {50, nullptr, "SetHandlesRequestToDisplay"},
 | 
					        {50, &ISelfController::SetHandlesRequestToDisplay, "SetHandlesRequestToDisplay"},
 | 
				
			||||||
        {51, nullptr, "ApproveToDisplay"},
 | 
					        {51, nullptr, "ApproveToDisplay"},
 | 
				
			||||||
        {60, nullptr, "OverrideAutoSleepTimeAndDimmingTime"},
 | 
					        {60, nullptr, "OverrideAutoSleepTimeAndDimmingTime"},
 | 
				
			||||||
        {61, nullptr, "SetMediaPlaybackState"},
 | 
					        {61, nullptr, "SetMediaPlaybackState"},
 | 
				
			||||||
@@ -229,6 +229,13 @@ void ISelfController::CreateManagedDisplayLayer(Kernel::HLERequestContext& ctx)
 | 
				
			|||||||
    NGLOG_WARNING(Service_AM, "(STUBBED) called");
 | 
					    NGLOG_WARNING(Service_AM, "(STUBBED) called");
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void ISelfController::SetHandlesRequestToDisplay(Kernel::HLERequestContext& ctx) {
 | 
				
			||||||
 | 
					    IPC::ResponseBuilder rb{ctx, 2};
 | 
				
			||||||
 | 
					    rb.Push(RESULT_SUCCESS);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    NGLOG_WARNING(Service_AM, "(STUBBED) called");
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
ICommonStateGetter::ICommonStateGetter() : ServiceFramework("ICommonStateGetter") {
 | 
					ICommonStateGetter::ICommonStateGetter() : ServiceFramework("ICommonStateGetter") {
 | 
				
			||||||
    static const FunctionInfo functions[] = {
 | 
					    static const FunctionInfo functions[] = {
 | 
				
			||||||
        {0, &ICommonStateGetter::GetEventHandle, "GetEventHandle"},
 | 
					        {0, &ICommonStateGetter::GetEventHandle, "GetEventHandle"},
 | 
				
			||||||
@@ -445,7 +452,8 @@ IApplicationFunctions::IApplicationFunctions() : ServiceFramework("IApplicationF
 | 
				
			|||||||
        {10, nullptr, "CreateApplicationAndPushAndRequestToStart"},
 | 
					        {10, nullptr, "CreateApplicationAndPushAndRequestToStart"},
 | 
				
			||||||
        {11, nullptr, "CreateApplicationAndPushAndRequestToStartForQuest"},
 | 
					        {11, nullptr, "CreateApplicationAndPushAndRequestToStartForQuest"},
 | 
				
			||||||
        {12, nullptr, "CreateApplicationAndRequestToStart"},
 | 
					        {12, nullptr, "CreateApplicationAndRequestToStart"},
 | 
				
			||||||
        {13, nullptr, "CreateApplicationAndRequestToStartForQuest"},
 | 
					        {13, &IApplicationFunctions::CreateApplicationAndRequestToStartForQuest,
 | 
				
			||||||
 | 
					         "CreateApplicationAndRequestToStartForQuest"},
 | 
				
			||||||
        {20, &IApplicationFunctions::EnsureSaveData, "EnsureSaveData"},
 | 
					        {20, &IApplicationFunctions::EnsureSaveData, "EnsureSaveData"},
 | 
				
			||||||
        {21, &IApplicationFunctions::GetDesiredLanguage, "GetDesiredLanguage"},
 | 
					        {21, &IApplicationFunctions::GetDesiredLanguage, "GetDesiredLanguage"},
 | 
				
			||||||
        {22, &IApplicationFunctions::SetTerminateResult, "SetTerminateResult"},
 | 
					        {22, &IApplicationFunctions::SetTerminateResult, "SetTerminateResult"},
 | 
				
			||||||
@@ -502,6 +510,13 @@ void IApplicationFunctions::PopLaunchParameter(Kernel::HLERequestContext& ctx) {
 | 
				
			|||||||
    NGLOG_DEBUG(Service_AM, "called");
 | 
					    NGLOG_DEBUG(Service_AM, "called");
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void IApplicationFunctions::CreateApplicationAndRequestToStartForQuest(
 | 
				
			||||||
 | 
					    Kernel::HLERequestContext& ctx) {
 | 
				
			||||||
 | 
					    IPC::ResponseBuilder rb{ctx, 2};
 | 
				
			||||||
 | 
					    rb.Push(RESULT_SUCCESS);
 | 
				
			||||||
 | 
					    NGLOG_WARNING(Service_AM, "(STUBBED) called");
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
void IApplicationFunctions::EnsureSaveData(Kernel::HLERequestContext& ctx) {
 | 
					void IApplicationFunctions::EnsureSaveData(Kernel::HLERequestContext& ctx) {
 | 
				
			||||||
    IPC::RequestParser rp{ctx};
 | 
					    IPC::RequestParser rp{ctx};
 | 
				
			||||||
    u128 uid = rp.PopRaw<u128>();
 | 
					    u128 uid = rp.PopRaw<u128>();
 | 
				
			||||||
@@ -572,4 +587,64 @@ void InstallInterfaces(SM::ServiceManager& service_manager,
 | 
				
			|||||||
    std::make_shared<AppletOE>(nvflinger)->InstallAsService(service_manager);
 | 
					    std::make_shared<AppletOE>(nvflinger)->InstallAsService(service_manager);
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					IHomeMenuFunctions::IHomeMenuFunctions() : ServiceFramework("IHomeMenuFunctions") {
 | 
				
			||||||
 | 
					    static const FunctionInfo functions[] = {
 | 
				
			||||||
 | 
					        {10, &IHomeMenuFunctions::RequestToGetForeground, "RequestToGetForeground"},
 | 
				
			||||||
 | 
					        {11, nullptr, "LockForeground"},
 | 
				
			||||||
 | 
					        {12, nullptr, "UnlockForeground"},
 | 
				
			||||||
 | 
					        {20, nullptr, "PopFromGeneralChannel"},
 | 
				
			||||||
 | 
					        {21, nullptr, "GetPopFromGeneralChannelEvent"},
 | 
				
			||||||
 | 
					        {30, nullptr, "GetHomeButtonWriterLockAccessor"},
 | 
				
			||||||
 | 
					        {31, nullptr, "GetWriterLockAccessorEx"},
 | 
				
			||||||
 | 
					    };
 | 
				
			||||||
 | 
					    RegisterHandlers(functions);
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void IHomeMenuFunctions::RequestToGetForeground(Kernel::HLERequestContext& ctx) {
 | 
				
			||||||
 | 
					    IPC::ResponseBuilder rb{ctx, 2};
 | 
				
			||||||
 | 
					    rb.Push(RESULT_SUCCESS);
 | 
				
			||||||
 | 
					    NGLOG_WARNING(Service_AM, "(STUBBED) called");
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					IGlobalStateController::IGlobalStateController() : ServiceFramework("IGlobalStateController") {
 | 
				
			||||||
 | 
					    static const FunctionInfo functions[] = {
 | 
				
			||||||
 | 
					        {0, nullptr, "RequestToEnterSleep"},
 | 
				
			||||||
 | 
					        {1, nullptr, "EnterSleep"},
 | 
				
			||||||
 | 
					        {2, nullptr, "StartSleepSequence"},
 | 
				
			||||||
 | 
					        {3, nullptr, "StartShutdownSequence"},
 | 
				
			||||||
 | 
					        {4, nullptr, "StartRebootSequence"},
 | 
				
			||||||
 | 
					        {10, nullptr, "LoadAndApplyIdlePolicySettings"},
 | 
				
			||||||
 | 
					        {11, nullptr, "NotifyCecSettingsChanged"},
 | 
				
			||||||
 | 
					        {12, nullptr, "SetDefaultHomeButtonLongPressTime"},
 | 
				
			||||||
 | 
					        {13, nullptr, "UpdateDefaultDisplayResolution"},
 | 
				
			||||||
 | 
					        {14, nullptr, "ShouldSleepOnBoot"},
 | 
				
			||||||
 | 
					        {15, nullptr, "GetHdcpAuthenticationFailedEvent"},
 | 
				
			||||||
 | 
					    };
 | 
				
			||||||
 | 
					    RegisterHandlers(functions);
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					IApplicationCreator::IApplicationCreator() : ServiceFramework("IApplicationCreator") {
 | 
				
			||||||
 | 
					    static const FunctionInfo functions[] = {
 | 
				
			||||||
 | 
					        {0, nullptr, "CreateApplication"},
 | 
				
			||||||
 | 
					        {1, nullptr, "PopLaunchRequestedApplication"},
 | 
				
			||||||
 | 
					        {10, nullptr, "CreateSystemApplication"},
 | 
				
			||||||
 | 
					        {100, nullptr, "PopFloatingApplicationForDevelopment"},
 | 
				
			||||||
 | 
					    };
 | 
				
			||||||
 | 
					    RegisterHandlers(functions);
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					IProcessWindingController::IProcessWindingController()
 | 
				
			||||||
 | 
					    : ServiceFramework("IProcessWindingController") {
 | 
				
			||||||
 | 
					    static const FunctionInfo functions[] = {
 | 
				
			||||||
 | 
					        {0, nullptr, "GetLaunchReason"},
 | 
				
			||||||
 | 
					        {11, nullptr, "OpenCallingLibraryApplet"},
 | 
				
			||||||
 | 
					        {21, nullptr, "PushContext"},
 | 
				
			||||||
 | 
					        {22, nullptr, "PopContext"},
 | 
				
			||||||
 | 
					        {23, nullptr, "CancelWindingReservation"},
 | 
				
			||||||
 | 
					        {30, nullptr, "WindAndDoReserved"},
 | 
				
			||||||
 | 
					        {40, nullptr, "ReserveToStartAndWaitAndUnwindThis"},
 | 
				
			||||||
 | 
					        {41, nullptr, "ReserveToStartAndWait"},
 | 
				
			||||||
 | 
					    };
 | 
				
			||||||
 | 
					    RegisterHandlers(functions);
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
} // namespace Service::AM
 | 
					} // namespace Service::AM
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -70,6 +70,7 @@ private:
 | 
				
			|||||||
    void GetLibraryAppletLaunchableEvent(Kernel::HLERequestContext& ctx);
 | 
					    void GetLibraryAppletLaunchableEvent(Kernel::HLERequestContext& ctx);
 | 
				
			||||||
    void CreateManagedDisplayLayer(Kernel::HLERequestContext& ctx);
 | 
					    void CreateManagedDisplayLayer(Kernel::HLERequestContext& ctx);
 | 
				
			||||||
    void SetScreenShotPermission(Kernel::HLERequestContext& ctx);
 | 
					    void SetScreenShotPermission(Kernel::HLERequestContext& ctx);
 | 
				
			||||||
 | 
					    void SetHandlesRequestToDisplay(Kernel::HLERequestContext& ctx);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    std::shared_ptr<NVFlinger::NVFlinger> nvflinger;
 | 
					    std::shared_ptr<NVFlinger::NVFlinger> nvflinger;
 | 
				
			||||||
    Kernel::SharedPtr<Kernel::Event> launchable_event;
 | 
					    Kernel::SharedPtr<Kernel::Event> launchable_event;
 | 
				
			||||||
@@ -113,6 +114,7 @@ public:
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
private:
 | 
					private:
 | 
				
			||||||
    void PopLaunchParameter(Kernel::HLERequestContext& ctx);
 | 
					    void PopLaunchParameter(Kernel::HLERequestContext& ctx);
 | 
				
			||||||
 | 
					    void CreateApplicationAndRequestToStartForQuest(Kernel::HLERequestContext& ctx);
 | 
				
			||||||
    void EnsureSaveData(Kernel::HLERequestContext& ctx);
 | 
					    void EnsureSaveData(Kernel::HLERequestContext& ctx);
 | 
				
			||||||
    void SetTerminateResult(Kernel::HLERequestContext& ctx);
 | 
					    void SetTerminateResult(Kernel::HLERequestContext& ctx);
 | 
				
			||||||
    void GetDesiredLanguage(Kernel::HLERequestContext& ctx);
 | 
					    void GetDesiredLanguage(Kernel::HLERequestContext& ctx);
 | 
				
			||||||
@@ -121,6 +123,29 @@ private:
 | 
				
			|||||||
    void NotifyRunning(Kernel::HLERequestContext& ctx);
 | 
					    void NotifyRunning(Kernel::HLERequestContext& ctx);
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					class IHomeMenuFunctions final : public ServiceFramework<IHomeMenuFunctions> {
 | 
				
			||||||
 | 
					public:
 | 
				
			||||||
 | 
					    IHomeMenuFunctions();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					private:
 | 
				
			||||||
 | 
					    void RequestToGetForeground(Kernel::HLERequestContext& ctx);
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					class IGlobalStateController final : public ServiceFramework<IGlobalStateController> {
 | 
				
			||||||
 | 
					public:
 | 
				
			||||||
 | 
					    IGlobalStateController();
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					class IApplicationCreator final : public ServiceFramework<IApplicationCreator> {
 | 
				
			||||||
 | 
					public:
 | 
				
			||||||
 | 
					    IApplicationCreator();
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					class IProcessWindingController final : public ServiceFramework<IProcessWindingController> {
 | 
				
			||||||
 | 
					public:
 | 
				
			||||||
 | 
					    IProcessWindingController();
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/// Registers all AM services with the specified service manager.
 | 
					/// Registers all AM services with the specified service manager.
 | 
				
			||||||
void InstallInterfaces(SM::ServiceManager& service_manager,
 | 
					void InstallInterfaces(SM::ServiceManager& service_manager,
 | 
				
			||||||
                       std::shared_ptr<NVFlinger::NVFlinger> nvflinger);
 | 
					                       std::shared_ptr<NVFlinger::NVFlinger> nvflinger);
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -20,7 +20,7 @@ public:
 | 
				
			|||||||
            {2, &ILibraryAppletProxy::GetWindowController, "GetWindowController"},
 | 
					            {2, &ILibraryAppletProxy::GetWindowController, "GetWindowController"},
 | 
				
			||||||
            {3, &ILibraryAppletProxy::GetAudioController, "GetAudioController"},
 | 
					            {3, &ILibraryAppletProxy::GetAudioController, "GetAudioController"},
 | 
				
			||||||
            {4, &ILibraryAppletProxy::GetDisplayController, "GetDisplayController"},
 | 
					            {4, &ILibraryAppletProxy::GetDisplayController, "GetDisplayController"},
 | 
				
			||||||
            {10, nullptr, "GetProcessWindingController"},
 | 
					            {10, &ILibraryAppletProxy::GetProcessWindingController, "GetProcessWindingController"},
 | 
				
			||||||
            {11, &ILibraryAppletProxy::GetLibraryAppletCreator, "GetLibraryAppletCreator"},
 | 
					            {11, &ILibraryAppletProxy::GetLibraryAppletCreator, "GetLibraryAppletCreator"},
 | 
				
			||||||
            {20, &ILibraryAppletProxy::GetApplicationFunctions, "GetApplicationFunctions"},
 | 
					            {20, &ILibraryAppletProxy::GetApplicationFunctions, "GetApplicationFunctions"},
 | 
				
			||||||
            {1000, &ILibraryAppletProxy::GetDebugFunctions, "GetDebugFunctions"},
 | 
					            {1000, &ILibraryAppletProxy::GetDebugFunctions, "GetDebugFunctions"},
 | 
				
			||||||
@@ -28,6 +28,93 @@ public:
 | 
				
			|||||||
        RegisterHandlers(functions);
 | 
					        RegisterHandlers(functions);
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					private:
 | 
				
			||||||
 | 
					    void GetCommonStateGetter(Kernel::HLERequestContext& ctx) {
 | 
				
			||||||
 | 
					        IPC::ResponseBuilder rb{ctx, 2, 0, 1};
 | 
				
			||||||
 | 
					        rb.Push(RESULT_SUCCESS);
 | 
				
			||||||
 | 
					        rb.PushIpcInterface<ICommonStateGetter>();
 | 
				
			||||||
 | 
					        NGLOG_DEBUG(Service_AM, "called");
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    void GetSelfController(Kernel::HLERequestContext& ctx) {
 | 
				
			||||||
 | 
					        IPC::ResponseBuilder rb{ctx, 2, 0, 1};
 | 
				
			||||||
 | 
					        rb.Push(RESULT_SUCCESS);
 | 
				
			||||||
 | 
					        rb.PushIpcInterface<ISelfController>(nvflinger);
 | 
				
			||||||
 | 
					        NGLOG_DEBUG(Service_AM, "called");
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    void GetWindowController(Kernel::HLERequestContext& ctx) {
 | 
				
			||||||
 | 
					        IPC::ResponseBuilder rb{ctx, 2, 0, 1};
 | 
				
			||||||
 | 
					        rb.Push(RESULT_SUCCESS);
 | 
				
			||||||
 | 
					        rb.PushIpcInterface<IWindowController>();
 | 
				
			||||||
 | 
					        NGLOG_DEBUG(Service_AM, "called");
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    void GetAudioController(Kernel::HLERequestContext& ctx) {
 | 
				
			||||||
 | 
					        IPC::ResponseBuilder rb{ctx, 2, 0, 1};
 | 
				
			||||||
 | 
					        rb.Push(RESULT_SUCCESS);
 | 
				
			||||||
 | 
					        rb.PushIpcInterface<IAudioController>();
 | 
				
			||||||
 | 
					        NGLOG_DEBUG(Service_AM, "called");
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    void GetDisplayController(Kernel::HLERequestContext& ctx) {
 | 
				
			||||||
 | 
					        IPC::ResponseBuilder rb{ctx, 2, 0, 1};
 | 
				
			||||||
 | 
					        rb.Push(RESULT_SUCCESS);
 | 
				
			||||||
 | 
					        rb.PushIpcInterface<IDisplayController>();
 | 
				
			||||||
 | 
					        NGLOG_DEBUG(Service_AM, "called");
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    void GetProcessWindingController(Kernel::HLERequestContext& ctx) {
 | 
				
			||||||
 | 
					        IPC::ResponseBuilder rb{ctx, 2, 0, 1};
 | 
				
			||||||
 | 
					        rb.Push(RESULT_SUCCESS);
 | 
				
			||||||
 | 
					        rb.PushIpcInterface<IProcessWindingController>();
 | 
				
			||||||
 | 
					        NGLOG_DEBUG(Service_AM, "called");
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    void GetDebugFunctions(Kernel::HLERequestContext& ctx) {
 | 
				
			||||||
 | 
					        IPC::ResponseBuilder rb{ctx, 2, 0, 1};
 | 
				
			||||||
 | 
					        rb.Push(RESULT_SUCCESS);
 | 
				
			||||||
 | 
					        rb.PushIpcInterface<IDebugFunctions>();
 | 
				
			||||||
 | 
					        NGLOG_DEBUG(Service_AM, "called");
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    void GetLibraryAppletCreator(Kernel::HLERequestContext& ctx) {
 | 
				
			||||||
 | 
					        IPC::ResponseBuilder rb{ctx, 2, 0, 1};
 | 
				
			||||||
 | 
					        rb.Push(RESULT_SUCCESS);
 | 
				
			||||||
 | 
					        rb.PushIpcInterface<ILibraryAppletCreator>();
 | 
				
			||||||
 | 
					        NGLOG_DEBUG(Service_AM, "called");
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    void GetApplicationFunctions(Kernel::HLERequestContext& ctx) {
 | 
				
			||||||
 | 
					        IPC::ResponseBuilder rb{ctx, 2, 0, 1};
 | 
				
			||||||
 | 
					        rb.Push(RESULT_SUCCESS);
 | 
				
			||||||
 | 
					        rb.PushIpcInterface<IApplicationFunctions>();
 | 
				
			||||||
 | 
					        NGLOG_DEBUG(Service_AM, "called");
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    std::shared_ptr<NVFlinger::NVFlinger> nvflinger;
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					class ISystemAppletProxy final : public ServiceFramework<ISystemAppletProxy> {
 | 
				
			||||||
 | 
					public:
 | 
				
			||||||
 | 
					    explicit ISystemAppletProxy(std::shared_ptr<NVFlinger::NVFlinger> nvflinger)
 | 
				
			||||||
 | 
					        : ServiceFramework("ISystemAppletProxy"), nvflinger(std::move(nvflinger)) {
 | 
				
			||||||
 | 
					        static const FunctionInfo functions[] = {
 | 
				
			||||||
 | 
					            {0, &ISystemAppletProxy::GetCommonStateGetter, "GetCommonStateGetter"},
 | 
				
			||||||
 | 
					            {1, &ISystemAppletProxy::GetSelfController, "GetSelfController"},
 | 
				
			||||||
 | 
					            {2, &ISystemAppletProxy::GetWindowController, "GetWindowController"},
 | 
				
			||||||
 | 
					            {3, &ISystemAppletProxy::GetAudioController, "GetAudioController"},
 | 
				
			||||||
 | 
					            {4, &ISystemAppletProxy::GetDisplayController, "GetDisplayController"},
 | 
				
			||||||
 | 
					            {10, nullptr, "GetProcessWindingController"},
 | 
				
			||||||
 | 
					            {11, &ISystemAppletProxy::GetLibraryAppletCreator, "GetLibraryAppletCreator"},
 | 
				
			||||||
 | 
					            {20, &ISystemAppletProxy::GetHomeMenuFunctions, "GetHomeMenuFunctions"},
 | 
				
			||||||
 | 
					            {21, &ISystemAppletProxy::GetGlobalStateController, "GetGlobalStateController"},
 | 
				
			||||||
 | 
					            {22, &ISystemAppletProxy::GetApplicationCreator, "GetApplicationCreator"},
 | 
				
			||||||
 | 
					            {1000, &ISystemAppletProxy::GetDebugFunctions, "GetDebugFunctions"},
 | 
				
			||||||
 | 
					        };
 | 
				
			||||||
 | 
					        RegisterHandlers(functions);
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
private:
 | 
					private:
 | 
				
			||||||
    void GetCommonStateGetter(Kernel::HLERequestContext& ctx) {
 | 
					    void GetCommonStateGetter(Kernel::HLERequestContext& ctx) {
 | 
				
			||||||
        IPC::ResponseBuilder rb{ctx, 2, 0, 1};
 | 
					        IPC::ResponseBuilder rb{ctx, 2, 0, 1};
 | 
				
			||||||
@@ -78,16 +165,43 @@ private:
 | 
				
			|||||||
        NGLOG_DEBUG(Service_AM, "called");
 | 
					        NGLOG_DEBUG(Service_AM, "called");
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    void GetApplicationFunctions(Kernel::HLERequestContext& ctx) {
 | 
					    void GetHomeMenuFunctions(Kernel::HLERequestContext& ctx) {
 | 
				
			||||||
        IPC::ResponseBuilder rb{ctx, 2, 0, 1};
 | 
					        IPC::ResponseBuilder rb{ctx, 2, 0, 1};
 | 
				
			||||||
        rb.Push(RESULT_SUCCESS);
 | 
					        rb.Push(RESULT_SUCCESS);
 | 
				
			||||||
        rb.PushIpcInterface<IApplicationFunctions>();
 | 
					        rb.PushIpcInterface<IHomeMenuFunctions>();
 | 
				
			||||||
        NGLOG_DEBUG(Service_AM, "called");
 | 
					        NGLOG_DEBUG(Service_AM, "called");
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    void GetGlobalStateController(Kernel::HLERequestContext& ctx) {
 | 
				
			||||||
 | 
					        IPC::ResponseBuilder rb{ctx, 2, 0, 1};
 | 
				
			||||||
 | 
					        rb.Push(RESULT_SUCCESS);
 | 
				
			||||||
 | 
					        rb.PushIpcInterface<IGlobalStateController>();
 | 
				
			||||||
 | 
					        NGLOG_DEBUG(Service_AM, "called");
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    void GetApplicationCreator(Kernel::HLERequestContext& ctx) {
 | 
				
			||||||
 | 
					        IPC::ResponseBuilder rb{ctx, 2, 0, 1};
 | 
				
			||||||
 | 
					        rb.Push(RESULT_SUCCESS);
 | 
				
			||||||
 | 
					        rb.PushIpcInterface<IApplicationCreator>();
 | 
				
			||||||
 | 
					        NGLOG_DEBUG(Service_AM, "called");
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
    std::shared_ptr<NVFlinger::NVFlinger> nvflinger;
 | 
					    std::shared_ptr<NVFlinger::NVFlinger> nvflinger;
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void AppletAE::OpenSystemAppletProxy(Kernel::HLERequestContext& ctx) {
 | 
				
			||||||
 | 
					    IPC::ResponseBuilder rb{ctx, 2, 0, 1};
 | 
				
			||||||
 | 
					    rb.Push(RESULT_SUCCESS);
 | 
				
			||||||
 | 
					    rb.PushIpcInterface<ISystemAppletProxy>(nvflinger);
 | 
				
			||||||
 | 
					    NGLOG_DEBUG(Service_AM, "called");
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void AppletAE::OpenLibraryAppletProxy(Kernel::HLERequestContext& ctx) {
 | 
				
			||||||
 | 
					    IPC::ResponseBuilder rb{ctx, 2, 0, 1};
 | 
				
			||||||
 | 
					    rb.Push(RESULT_SUCCESS);
 | 
				
			||||||
 | 
					    rb.PushIpcInterface<ILibraryAppletProxy>(nvflinger);
 | 
				
			||||||
 | 
					    NGLOG_DEBUG(Service_AM, "called");
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
void AppletAE::OpenLibraryAppletProxyOld(Kernel::HLERequestContext& ctx) {
 | 
					void AppletAE::OpenLibraryAppletProxyOld(Kernel::HLERequestContext& ctx) {
 | 
				
			||||||
    IPC::ResponseBuilder rb{ctx, 2, 0, 1};
 | 
					    IPC::ResponseBuilder rb{ctx, 2, 0, 1};
 | 
				
			||||||
    rb.Push(RESULT_SUCCESS);
 | 
					    rb.Push(RESULT_SUCCESS);
 | 
				
			||||||
@@ -98,9 +212,9 @@ void AppletAE::OpenLibraryAppletProxyOld(Kernel::HLERequestContext& ctx) {
 | 
				
			|||||||
AppletAE::AppletAE(std::shared_ptr<NVFlinger::NVFlinger> nvflinger)
 | 
					AppletAE::AppletAE(std::shared_ptr<NVFlinger::NVFlinger> nvflinger)
 | 
				
			||||||
    : ServiceFramework("appletAE"), nvflinger(std::move(nvflinger)) {
 | 
					    : ServiceFramework("appletAE"), nvflinger(std::move(nvflinger)) {
 | 
				
			||||||
    static const FunctionInfo functions[] = {
 | 
					    static const FunctionInfo functions[] = {
 | 
				
			||||||
        {100, nullptr, "OpenSystemAppletProxy"},
 | 
					        {100, &AppletAE::OpenSystemAppletProxy, "OpenSystemAppletProxy"},
 | 
				
			||||||
        {200, &AppletAE::OpenLibraryAppletProxyOld, "OpenLibraryAppletProxyOld"},
 | 
					        {200, &AppletAE::OpenLibraryAppletProxyOld, "OpenLibraryAppletProxyOld"},
 | 
				
			||||||
        {201, nullptr, "OpenLibraryAppletProxy"},
 | 
					        {201, &AppletAE::OpenLibraryAppletProxy, "OpenLibraryAppletProxy"},
 | 
				
			||||||
        {300, nullptr, "OpenOverlayAppletProxy"},
 | 
					        {300, nullptr, "OpenOverlayAppletProxy"},
 | 
				
			||||||
        {350, nullptr, "OpenSystemApplicationProxy"},
 | 
					        {350, nullptr, "OpenSystemApplicationProxy"},
 | 
				
			||||||
        {400, nullptr, "CreateSelfLibraryAppletCreatorForDevelop"},
 | 
					        {400, nullptr, "CreateSelfLibraryAppletCreatorForDevelop"},
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -21,6 +21,8 @@ public:
 | 
				
			|||||||
    ~AppletAE() = default;
 | 
					    ~AppletAE() = default;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
private:
 | 
					private:
 | 
				
			||||||
 | 
					    void OpenSystemAppletProxy(Kernel::HLERequestContext& ctx);
 | 
				
			||||||
 | 
					    void OpenLibraryAppletProxy(Kernel::HLERequestContext& ctx);
 | 
				
			||||||
    void OpenLibraryAppletProxyOld(Kernel::HLERequestContext& ctx);
 | 
					    void OpenLibraryAppletProxyOld(Kernel::HLERequestContext& ctx);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    std::shared_ptr<NVFlinger::NVFlinger> nvflinger;
 | 
					    std::shared_ptr<NVFlinger::NVFlinger> nvflinger;
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user