forked from eden-emu/eden
		
	Merge branch 'yuzu-emu:master' into new-shortcut
This commit is contained in:
		
						commit
						668a10f9b9
					
				
					 6 changed files with 91 additions and 8 deletions
				
			
		|  | @ -49,7 +49,7 @@ public: | |||
|         : ServiceFramework{system_, "IManagerForSystemService"} { | ||||
|         // clang-format off
 | ||||
|         static const FunctionInfo functions[] = { | ||||
|             {0, nullptr, "CheckAvailability"}, | ||||
|             {0, &IManagerForSystemService::CheckAvailability, "CheckAvailability"}, | ||||
|             {1, nullptr, "GetAccountId"}, | ||||
|             {2, nullptr, "EnsureIdTokenCacheAsync"}, | ||||
|             {3, nullptr, "LoadIdTokenCache"}, | ||||
|  | @ -78,6 +78,13 @@ public: | |||
| 
 | ||||
|         RegisterHandlers(functions); | ||||
|     } | ||||
| 
 | ||||
| private: | ||||
|     void CheckAvailability(HLERequestContext& ctx) { | ||||
|         LOG_WARNING(Service_ACC, "(STUBBED) called"); | ||||
|         IPC::ResponseBuilder rb{ctx, 2}; | ||||
|         rb.Push(ResultSuccess); | ||||
|     } | ||||
| }; | ||||
| 
 | ||||
| // 3.0.0+
 | ||||
|  | @ -837,6 +844,29 @@ void Module::Interface::InitializeApplicationInfoV2(HLERequestContext& ctx) { | |||
|     rb.Push(ResultSuccess); | ||||
| } | ||||
| 
 | ||||
| void Module::Interface::BeginUserRegistration(HLERequestContext& ctx) { | ||||
|     const auto user_id = Common::UUID::MakeRandom(); | ||||
|     profile_manager->CreateNewUser(user_id, "yuzu"); | ||||
| 
 | ||||
|     LOG_INFO(Service_ACC, "called, uuid={}", user_id.FormattedString()); | ||||
| 
 | ||||
|     IPC::ResponseBuilder rb{ctx, 6}; | ||||
|     rb.Push(ResultSuccess); | ||||
|     rb.PushRaw(user_id); | ||||
| } | ||||
| 
 | ||||
| void Module::Interface::CompleteUserRegistration(HLERequestContext& ctx) { | ||||
|     IPC::RequestParser rp{ctx}; | ||||
|     Common::UUID user_id = rp.PopRaw<Common::UUID>(); | ||||
| 
 | ||||
|     LOG_INFO(Service_ACC, "called, uuid={}", user_id.FormattedString()); | ||||
| 
 | ||||
|     profile_manager->WriteUserSaveFile(); | ||||
| 
 | ||||
|     IPC::ResponseBuilder rb{ctx, 2}; | ||||
|     rb.Push(ResultSuccess); | ||||
| } | ||||
| 
 | ||||
| void Module::Interface::GetProfileEditor(HLERequestContext& ctx) { | ||||
|     IPC::RequestParser rp{ctx}; | ||||
|     Common::UUID user_id = rp.PopRaw<Common::UUID>(); | ||||
|  | @ -880,6 +910,17 @@ void Module::Interface::StoreSaveDataThumbnailApplication(HLERequestContext& ctx | |||
|     StoreSaveDataThumbnail(ctx, uuid, tid); | ||||
| } | ||||
| 
 | ||||
| void Module::Interface::GetBaasAccountManagerForSystemService(HLERequestContext& ctx) { | ||||
|     IPC::RequestParser rp{ctx}; | ||||
|     const auto uuid = rp.PopRaw<Common::UUID>(); | ||||
| 
 | ||||
|     LOG_INFO(Service_ACC, "called, uuid=0x{}", uuid.RawString()); | ||||
| 
 | ||||
|     IPC::ResponseBuilder rb{ctx, 2, 0, 1}; | ||||
|     rb.Push(ResultSuccess); | ||||
|     rb.PushIpcInterface<IManagerForSystemService>(system, uuid); | ||||
| } | ||||
| 
 | ||||
| void Module::Interface::StoreSaveDataThumbnailSystem(HLERequestContext& ctx) { | ||||
|     IPC::RequestParser rp{ctx}; | ||||
|     const auto uuid = rp.PopRaw<Common::UUID>(); | ||||
|  |  | |||
|  | @ -33,10 +33,13 @@ public: | |||
|         void TrySelectUserWithoutInteraction(HLERequestContext& ctx); | ||||
|         void IsUserAccountSwitchLocked(HLERequestContext& ctx); | ||||
|         void InitializeApplicationInfoV2(HLERequestContext& ctx); | ||||
|         void BeginUserRegistration(HLERequestContext& ctx); | ||||
|         void CompleteUserRegistration(HLERequestContext& ctx); | ||||
|         void GetProfileEditor(HLERequestContext& ctx); | ||||
|         void ListQualifiedUsers(HLERequestContext& ctx); | ||||
|         void ListOpenContextStoredUsers(HLERequestContext& ctx); | ||||
|         void StoreSaveDataThumbnailApplication(HLERequestContext& ctx); | ||||
|         void GetBaasAccountManagerForSystemService(HLERequestContext& ctx); | ||||
|         void StoreSaveDataThumbnailSystem(HLERequestContext& ctx); | ||||
| 
 | ||||
|     private: | ||||
|  |  | |||
|  | @ -23,7 +23,7 @@ ACC_SU::ACC_SU(std::shared_ptr<Module> module_, std::shared_ptr<ProfileManager> | |||
|         {99, nullptr, "DebugActivateOpenContextRetention"}, | ||||
|         {100, nullptr, "GetUserRegistrationNotifier"}, | ||||
|         {101, nullptr, "GetUserStateChangeNotifier"}, | ||||
|         {102, nullptr, "GetBaasAccountManagerForSystemService"}, | ||||
|         {102, &ACC_SU::GetBaasAccountManagerForSystemService, "GetBaasAccountManagerForSystemService"}, | ||||
|         {103, nullptr, "GetBaasUserAvailabilityChangeNotifier"}, | ||||
|         {104, nullptr, "GetProfileUpdateNotifier"}, | ||||
|         {105, nullptr, "CheckNetworkServiceAvailabilityAsync"}, | ||||
|  | @ -40,8 +40,8 @@ ACC_SU::ACC_SU(std::shared_ptr<Module> module_, std::shared_ptr<ProfileManager> | |||
|         {152, nullptr, "LoadSignedDeviceIdentifierCacheForNintendoAccount"}, | ||||
|         {190, nullptr, "GetUserLastOpenedApplication"}, | ||||
|         {191, nullptr, "ActivateOpenContextHolder"}, | ||||
|         {200, nullptr, "BeginUserRegistration"}, | ||||
|         {201, nullptr, "CompleteUserRegistration"}, | ||||
|         {200, &ACC_SU::BeginUserRegistration, "BeginUserRegistration"}, | ||||
|         {201, &ACC_SU::CompleteUserRegistration, "CompleteUserRegistration"}, | ||||
|         {202, nullptr, "CancelUserRegistration"}, | ||||
|         {203, nullptr, "DeleteUser"}, | ||||
|         {204, nullptr, "SetUserPosition"}, | ||||
|  |  | |||
|  | @ -96,9 +96,10 @@ public: | |||
|     bool SetProfileBaseAndData(Common::UUID uuid, const ProfileBase& profile_new, | ||||
|                                const UserData& data_new); | ||||
| 
 | ||||
|     void WriteUserSaveFile(); | ||||
| 
 | ||||
| private: | ||||
|     void ParseUserSaveFile(); | ||||
|     void WriteUserSaveFile(); | ||||
|     std::optional<std::size_t> AddToProfiles(const ProfileInfo& profile); | ||||
|     bool RemoveProfileAtIndex(std::size_t index); | ||||
| 
 | ||||
|  |  | |||
|  | @ -210,8 +210,8 @@ IDisplayController::IDisplayController(Core::System& system_) | |||
|         {21, nullptr, "ClearAppletTransitionBuffer"}, | ||||
|         {22, nullptr, "AcquireLastApplicationCaptureSharedBuffer"}, | ||||
|         {23, nullptr, "ReleaseLastApplicationCaptureSharedBuffer"}, | ||||
|         {24, nullptr, "AcquireLastForegroundCaptureSharedBuffer"}, | ||||
|         {25, nullptr, "ReleaseLastForegroundCaptureSharedBuffer"}, | ||||
|         {24, &IDisplayController::AcquireLastForegroundCaptureSharedBuffer, "AcquireLastForegroundCaptureSharedBuffer"}, | ||||
|         {25, &IDisplayController::ReleaseLastForegroundCaptureSharedBuffer, "ReleaseLastForegroundCaptureSharedBuffer"}, | ||||
|         {26, &IDisplayController::AcquireCallerAppletCaptureSharedBuffer, "AcquireCallerAppletCaptureSharedBuffer"}, | ||||
|         {27, &IDisplayController::ReleaseCallerAppletCaptureSharedBuffer, "ReleaseCallerAppletCaptureSharedBuffer"}, | ||||
|         {28, nullptr, "TakeScreenShotOfOwnLayerEx"}, | ||||
|  | @ -239,6 +239,22 @@ void IDisplayController::TakeScreenShotOfOwnLayer(HLERequestContext& ctx) { | |||
|     rb.Push(ResultSuccess); | ||||
| } | ||||
| 
 | ||||
| void IDisplayController::AcquireLastForegroundCaptureSharedBuffer(HLERequestContext& ctx) { | ||||
|     LOG_WARNING(Service_AM, "(STUBBED) called"); | ||||
| 
 | ||||
|     IPC::ResponseBuilder rb{ctx, 4}; | ||||
|     rb.Push(ResultSuccess); | ||||
|     rb.Push(1U); | ||||
|     rb.Push(0); | ||||
| } | ||||
| 
 | ||||
| void IDisplayController::ReleaseLastForegroundCaptureSharedBuffer(HLERequestContext& ctx) { | ||||
|     LOG_WARNING(Service_AM, "(STUBBED) called"); | ||||
| 
 | ||||
|     IPC::ResponseBuilder rb{ctx, 2}; | ||||
|     rb.Push(ResultSuccess); | ||||
| } | ||||
| 
 | ||||
| void IDisplayController::AcquireCallerAppletCaptureSharedBuffer(HLERequestContext& ctx) { | ||||
|     LOG_WARNING(Service_AM, "(STUBBED) called"); | ||||
| 
 | ||||
|  | @ -1557,7 +1573,7 @@ ILibraryAppletSelfAccessor::ILibraryAppletSelfAccessor(Core::System& system_) | |||
|         {100, nullptr, "CreateGameMovieTrimmer"}, | ||||
|         {101, nullptr, "ReserveResourceForMovieOperation"}, | ||||
|         {102, nullptr, "UnreserveResourceForMovieOperation"}, | ||||
|         {110, nullptr, "GetMainAppletAvailableUsers"}, | ||||
|         {110, &ILibraryAppletSelfAccessor::GetMainAppletAvailableUsers, "GetMainAppletAvailableUsers"}, | ||||
|         {120, nullptr, "GetLaunchStorageInfoForDebug"}, | ||||
|         {130, nullptr, "GetGpuErrorDetectedSystemEvent"}, | ||||
|         {140, nullptr, "SetApplicationMemoryReservation"}, | ||||
|  | @ -1652,6 +1668,25 @@ void ILibraryAppletSelfAccessor::GetCallerAppletIdentityInfo(HLERequestContext& | |||
|     rb.PushRaw(applet_info); | ||||
| } | ||||
| 
 | ||||
| void ILibraryAppletSelfAccessor::GetMainAppletAvailableUsers(HLERequestContext& ctx) { | ||||
|     const Service::Account::ProfileManager manager{}; | ||||
|     bool is_empty{true}; | ||||
|     s32 user_count{-1}; | ||||
| 
 | ||||
|     LOG_INFO(Service_AM, "called"); | ||||
| 
 | ||||
|     if (manager.GetUserCount() > 0) { | ||||
|         is_empty = false; | ||||
|         user_count = static_cast<s32>(manager.GetUserCount()); | ||||
|         ctx.WriteBuffer(manager.GetAllUsers()); | ||||
|     } | ||||
| 
 | ||||
|     IPC::ResponseBuilder rb{ctx, 4}; | ||||
|     rb.Push(ResultSuccess); | ||||
|     rb.Push<u8>(is_empty); | ||||
|     rb.Push(user_count); | ||||
| } | ||||
| 
 | ||||
| void ILibraryAppletSelfAccessor::PushInShowAlbum() { | ||||
|     const Applets::CommonArguments arguments{ | ||||
|         .arguments_version = Applets::CommonArgumentVersion::Version3, | ||||
|  |  | |||
|  | @ -124,6 +124,8 @@ public: | |||
| private: | ||||
|     void GetCallerAppletCaptureImageEx(HLERequestContext& ctx); | ||||
|     void TakeScreenShotOfOwnLayer(HLERequestContext& ctx); | ||||
|     void AcquireLastForegroundCaptureSharedBuffer(HLERequestContext& ctx); | ||||
|     void ReleaseLastForegroundCaptureSharedBuffer(HLERequestContext& ctx); | ||||
|     void AcquireCallerAppletCaptureSharedBuffer(HLERequestContext& ctx); | ||||
|     void ReleaseCallerAppletCaptureSharedBuffer(HLERequestContext& ctx); | ||||
| }; | ||||
|  | @ -345,6 +347,7 @@ private: | |||
|     void GetLibraryAppletInfo(HLERequestContext& ctx); | ||||
|     void ExitProcessAndReturn(HLERequestContext& ctx); | ||||
|     void GetCallerAppletIdentityInfo(HLERequestContext& ctx); | ||||
|     void GetMainAppletAvailableUsers(HLERequestContext& ctx); | ||||
| 
 | ||||
|     void PushInShowAlbum(); | ||||
|     void PushInShowCabinetData(); | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 Franco M
						Franco M