Stubs for QLaunch (#428)
* Stubs for QLaunch * Wiped unrelated stuff * Addressed comment * Dropped GetPopFromGeneralChannelEvent
This commit is contained in:
		
							parent
							
								
									266703b50e
								
							
						
					
					
						commit
						5e9c547952
					
				| @ -103,7 +103,7 @@ ISelfController::ISelfController(std::shared_ptr<NVFlinger::NVFlinger> nvflinger | ||||
|         {40, &ISelfController::CreateManagedDisplayLayer, "CreateManagedDisplayLayer"}, | ||||
|         {41, nullptr, "IsSystemBufferSharingEnabled"}, | ||||
|         {42, nullptr, "GetSystemSharedLayerHandle"}, | ||||
|         {50, nullptr, "SetHandlesRequestToDisplay"}, | ||||
|         {50, &ISelfController::SetHandlesRequestToDisplay, "SetHandlesRequestToDisplay"}, | ||||
|         {51, nullptr, "ApproveToDisplay"}, | ||||
|         {60, nullptr, "OverrideAutoSleepTimeAndDimmingTime"}, | ||||
|         {61, nullptr, "SetMediaPlaybackState"}, | ||||
| @ -229,6 +229,13 @@ void ISelfController::CreateManagedDisplayLayer(Kernel::HLERequestContext& ctx) | ||||
|     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") { | ||||
|     static const FunctionInfo functions[] = { | ||||
|         {0, &ICommonStateGetter::GetEventHandle, "GetEventHandle"}, | ||||
| @ -445,7 +452,8 @@ IApplicationFunctions::IApplicationFunctions() : ServiceFramework("IApplicationF | ||||
|         {10, nullptr, "CreateApplicationAndPushAndRequestToStart"}, | ||||
|         {11, nullptr, "CreateApplicationAndPushAndRequestToStartForQuest"}, | ||||
|         {12, nullptr, "CreateApplicationAndRequestToStart"}, | ||||
|         {13, nullptr, "CreateApplicationAndRequestToStartForQuest"}, | ||||
|         {13, &IApplicationFunctions::CreateApplicationAndRequestToStartForQuest, | ||||
|          "CreateApplicationAndRequestToStartForQuest"}, | ||||
|         {20, &IApplicationFunctions::EnsureSaveData, "EnsureSaveData"}, | ||||
|         {21, &IApplicationFunctions::GetDesiredLanguage, "GetDesiredLanguage"}, | ||||
|         {22, &IApplicationFunctions::SetTerminateResult, "SetTerminateResult"}, | ||||
| @ -502,6 +510,13 @@ void IApplicationFunctions::PopLaunchParameter(Kernel::HLERequestContext& ctx) { | ||||
|     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) { | ||||
|     IPC::RequestParser rp{ctx}; | ||||
|     u128 uid = rp.PopRaw<u128>(); | ||||
| @ -572,4 +587,64 @@ void InstallInterfaces(SM::ServiceManager& 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
 | ||||
|  | ||||
| @ -70,6 +70,7 @@ private: | ||||
|     void GetLibraryAppletLaunchableEvent(Kernel::HLERequestContext& ctx); | ||||
|     void CreateManagedDisplayLayer(Kernel::HLERequestContext& ctx); | ||||
|     void SetScreenShotPermission(Kernel::HLERequestContext& ctx); | ||||
|     void SetHandlesRequestToDisplay(Kernel::HLERequestContext& ctx); | ||||
| 
 | ||||
|     std::shared_ptr<NVFlinger::NVFlinger> nvflinger; | ||||
|     Kernel::SharedPtr<Kernel::Event> launchable_event; | ||||
| @ -113,6 +114,7 @@ public: | ||||
| 
 | ||||
| private: | ||||
|     void PopLaunchParameter(Kernel::HLERequestContext& ctx); | ||||
|     void CreateApplicationAndRequestToStartForQuest(Kernel::HLERequestContext& ctx); | ||||
|     void EnsureSaveData(Kernel::HLERequestContext& ctx); | ||||
|     void SetTerminateResult(Kernel::HLERequestContext& ctx); | ||||
|     void GetDesiredLanguage(Kernel::HLERequestContext& ctx); | ||||
| @ -121,6 +123,29 @@ private: | ||||
|     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.
 | ||||
| void InstallInterfaces(SM::ServiceManager& service_manager, | ||||
|                        std::shared_ptr<NVFlinger::NVFlinger> nvflinger); | ||||
|  | ||||
| @ -20,7 +20,7 @@ public: | ||||
|             {2, &ILibraryAppletProxy::GetWindowController, "GetWindowController"}, | ||||
|             {3, &ILibraryAppletProxy::GetAudioController, "GetAudioController"}, | ||||
|             {4, &ILibraryAppletProxy::GetDisplayController, "GetDisplayController"}, | ||||
|             {10, nullptr, "GetProcessWindingController"}, | ||||
|             {10, &ILibraryAppletProxy::GetProcessWindingController, "GetProcessWindingController"}, | ||||
|             {11, &ILibraryAppletProxy::GetLibraryAppletCreator, "GetLibraryAppletCreator"}, | ||||
|             {20, &ILibraryAppletProxy::GetApplicationFunctions, "GetApplicationFunctions"}, | ||||
|             {1000, &ILibraryAppletProxy::GetDebugFunctions, "GetDebugFunctions"}, | ||||
| @ -28,6 +28,93 @@ public: | ||||
|         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: | ||||
|     void GetCommonStateGetter(Kernel::HLERequestContext& ctx) { | ||||
|         IPC::ResponseBuilder rb{ctx, 2, 0, 1}; | ||||
| @ -78,16 +165,43 @@ private: | ||||
|         NGLOG_DEBUG(Service_AM, "called"); | ||||
|     } | ||||
| 
 | ||||
|     void GetApplicationFunctions(Kernel::HLERequestContext& ctx) { | ||||
|     void GetHomeMenuFunctions(Kernel::HLERequestContext& ctx) { | ||||
|         IPC::ResponseBuilder rb{ctx, 2, 0, 1}; | ||||
|         rb.Push(RESULT_SUCCESS); | ||||
|         rb.PushIpcInterface<IApplicationFunctions>(); | ||||
|         rb.PushIpcInterface<IHomeMenuFunctions>(); | ||||
|         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; | ||||
| }; | ||||
| 
 | ||||
| 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) { | ||||
|     IPC::ResponseBuilder rb{ctx, 2, 0, 1}; | ||||
|     rb.Push(RESULT_SUCCESS); | ||||
| @ -98,9 +212,9 @@ void AppletAE::OpenLibraryAppletProxyOld(Kernel::HLERequestContext& ctx) { | ||||
| AppletAE::AppletAE(std::shared_ptr<NVFlinger::NVFlinger> nvflinger) | ||||
|     : ServiceFramework("appletAE"), nvflinger(std::move(nvflinger)) { | ||||
|     static const FunctionInfo functions[] = { | ||||
|         {100, nullptr, "OpenSystemAppletProxy"}, | ||||
|         {100, &AppletAE::OpenSystemAppletProxy, "OpenSystemAppletProxy"}, | ||||
|         {200, &AppletAE::OpenLibraryAppletProxyOld, "OpenLibraryAppletProxyOld"}, | ||||
|         {201, nullptr, "OpenLibraryAppletProxy"}, | ||||
|         {201, &AppletAE::OpenLibraryAppletProxy, "OpenLibraryAppletProxy"}, | ||||
|         {300, nullptr, "OpenOverlayAppletProxy"}, | ||||
|         {350, nullptr, "OpenSystemApplicationProxy"}, | ||||
|         {400, nullptr, "CreateSelfLibraryAppletCreatorForDevelop"}, | ||||
|  | ||||
| @ -21,6 +21,8 @@ public: | ||||
|     ~AppletAE() = default; | ||||
| 
 | ||||
| private: | ||||
|     void OpenSystemAppletProxy(Kernel::HLERequestContext& ctx); | ||||
|     void OpenLibraryAppletProxy(Kernel::HLERequestContext& ctx); | ||||
|     void OpenLibraryAppletProxyOld(Kernel::HLERequestContext& ctx); | ||||
| 
 | ||||
|     std::shared_ptr<NVFlinger::NVFlinger> nvflinger; | ||||
|  | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user
	 Hexagon12
						Hexagon12