mirror of
https://gitlab.com/suyu-emu/suyu.git
synced 2024-03-15 23:15:44 +00:00
Implement acc:TrySelectUserWithoutInteraction
Needed for Shantae - Half-Genie Hero - Ultimate Edition!
This commit is contained in:
parent
dd321dc85f
commit
92fcc6d15a
|
@ -242,6 +242,27 @@ void Module::Interface::GetBaasAccountManagerForApplication(Kernel::HLERequestCo
|
||||||
LOG_DEBUG(Service_ACC, "called");
|
LOG_DEBUG(Service_ACC, "called");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void Module::Interface::TrySelectUserWithoutInteraction(Kernel::HLERequestContext& ctx) {
|
||||||
|
// A u8 is passed into this function which we can safely ignore. It's to determain if we have
|
||||||
|
// access to use the network or not by the looks of it
|
||||||
|
IPC::ResponseBuilder rb{ctx, 6};
|
||||||
|
if (profile_manager->GetUserCount() != 1) {
|
||||||
|
rb.Push(RESULT_SUCCESS);
|
||||||
|
rb.PushRaw<u128>(INVALID_UUID);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
auto user_list = profile_manager->GetAllUsers();
|
||||||
|
if (user_list.empty()) {
|
||||||
|
rb.Push(ResultCode(-1)); // TODO(ogniK): Find the correct error code
|
||||||
|
rb.PushRaw<u128>(INVALID_UUID);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Select the first user we have
|
||||||
|
rb.Push(RESULT_SUCCESS);
|
||||||
|
rb.PushRaw<u128>(profile_manager->GetUser(0)->uuid);
|
||||||
|
}
|
||||||
|
|
||||||
Module::Interface::Interface(std::shared_ptr<Module> module,
|
Module::Interface::Interface(std::shared_ptr<Module> module,
|
||||||
std::shared_ptr<ProfileManager> profile_manager, const char* name)
|
std::shared_ptr<ProfileManager> profile_manager, const char* name)
|
||||||
: ServiceFramework(name), module(std::move(module)),
|
: ServiceFramework(name), module(std::move(module)),
|
||||||
|
|
|
@ -27,6 +27,7 @@ public:
|
||||||
void InitializeApplicationInfo(Kernel::HLERequestContext& ctx);
|
void InitializeApplicationInfo(Kernel::HLERequestContext& ctx);
|
||||||
void GetBaasAccountManagerForApplication(Kernel::HLERequestContext& ctx);
|
void GetBaasAccountManagerForApplication(Kernel::HLERequestContext& ctx);
|
||||||
void IsUserRegistrationRequestPermitted(Kernel::HLERequestContext& ctx);
|
void IsUserRegistrationRequestPermitted(Kernel::HLERequestContext& ctx);
|
||||||
|
void TrySelectUserWithoutInteraction(Kernel::HLERequestContext& ctx);
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
std::shared_ptr<Module> module;
|
std::shared_ptr<Module> module;
|
||||||
|
|
|
@ -17,7 +17,7 @@ ACC_SU::ACC_SU(std::shared_ptr<Module> module, std::shared_ptr<ProfileManager> p
|
||||||
{5, &ACC_SU::GetProfile, "GetProfile"},
|
{5, &ACC_SU::GetProfile, "GetProfile"},
|
||||||
{6, nullptr, "GetProfileDigest"},
|
{6, nullptr, "GetProfileDigest"},
|
||||||
{50, &ACC_SU::IsUserRegistrationRequestPermitted, "IsUserRegistrationRequestPermitted"},
|
{50, &ACC_SU::IsUserRegistrationRequestPermitted, "IsUserRegistrationRequestPermitted"},
|
||||||
{51, nullptr, "TrySelectUserWithoutInteraction"},
|
{51, &ACC_SU::TrySelectUserWithoutInteraction, "TrySelectUserWithoutInteraction"},
|
||||||
{60, nullptr, "ListOpenContextStoredUsers"},
|
{60, nullptr, "ListOpenContextStoredUsers"},
|
||||||
{100, nullptr, "GetUserRegistrationNotifier"},
|
{100, nullptr, "GetUserRegistrationNotifier"},
|
||||||
{101, nullptr, "GetUserStateChangeNotifier"},
|
{101, nullptr, "GetUserStateChangeNotifier"},
|
||||||
|
|
|
@ -17,7 +17,7 @@ ACC_U0::ACC_U0(std::shared_ptr<Module> module, std::shared_ptr<ProfileManager> p
|
||||||
{5, &ACC_U0::GetProfile, "GetProfile"},
|
{5, &ACC_U0::GetProfile, "GetProfile"},
|
||||||
{6, nullptr, "GetProfileDigest"},
|
{6, nullptr, "GetProfileDigest"},
|
||||||
{50, &ACC_U0::IsUserRegistrationRequestPermitted, "IsUserRegistrationRequestPermitted"},
|
{50, &ACC_U0::IsUserRegistrationRequestPermitted, "IsUserRegistrationRequestPermitted"},
|
||||||
{51, nullptr, "TrySelectUserWithoutInteraction"},
|
{51, &ACC_U0::TrySelectUserWithoutInteraction, "TrySelectUserWithoutInteraction"},
|
||||||
{60, nullptr, "ListOpenContextStoredUsers"},
|
{60, nullptr, "ListOpenContextStoredUsers"},
|
||||||
{100, &ACC_U0::InitializeApplicationInfo, "InitializeApplicationInfo"},
|
{100, &ACC_U0::InitializeApplicationInfo, "InitializeApplicationInfo"},
|
||||||
{101, &ACC_U0::GetBaasAccountManagerForApplication, "GetBaasAccountManagerForApplication"},
|
{101, &ACC_U0::GetBaasAccountManagerForApplication, "GetBaasAccountManagerForApplication"},
|
||||||
|
|
|
@ -17,7 +17,7 @@ ACC_U1::ACC_U1(std::shared_ptr<Module> module, std::shared_ptr<ProfileManager> p
|
||||||
{5, &ACC_U1::GetProfile, "GetProfile"},
|
{5, &ACC_U1::GetProfile, "GetProfile"},
|
||||||
{6, nullptr, "GetProfileDigest"},
|
{6, nullptr, "GetProfileDigest"},
|
||||||
{50, &ACC_U1::IsUserRegistrationRequestPermitted, "IsUserRegistrationRequestPermitted"},
|
{50, &ACC_U1::IsUserRegistrationRequestPermitted, "IsUserRegistrationRequestPermitted"},
|
||||||
{51, nullptr, "TrySelectUserWithoutInteraction"},
|
{51, &ACC_U1::TrySelectUserWithoutInteraction, "TrySelectUserWithoutInteraction"},
|
||||||
{60, nullptr, "ListOpenContextStoredUsers"},
|
{60, nullptr, "ListOpenContextStoredUsers"},
|
||||||
{100, nullptr, "GetUserRegistrationNotifier"},
|
{100, nullptr, "GetUserRegistrationNotifier"},
|
||||||
{101, nullptr, "GetUserStateChangeNotifier"},
|
{101, nullptr, "GetUserStateChangeNotifier"},
|
||||||
|
|
Loading…
Reference in a new issue