Merge pull request #11247 from german77/pctl

service: pctl: Partially revert 11221
This commit is contained in:
bunnei 2023-08-09 21:24:06 -07:00 committed by GitHub
commit 3d6ce9dd2b
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -152,7 +152,7 @@ private:
if (pin_code[0] == '\0') { if (pin_code[0] == '\0') {
return true; return true;
} }
if (!restriction_settings.is_free_communication_default_on) { if (!settings.is_free_communication_default_on) {
return true; return true;
} }
// TODO(ogniK): Check for blacklisted/exempted applications. Return false can happen here // TODO(ogniK): Check for blacklisted/exempted applications. Return false can happen here
@ -168,21 +168,21 @@ private:
if (pin_code[0] == '\0') { if (pin_code[0] == '\0') {
return true; return true;
} }
if (!restriction_settings.is_stero_vision_restricted) { if (!settings.is_stero_vision_restricted) {
return false; return false;
} }
return true; return true;
} }
void SetStereoVisionRestrictionImpl(bool is_restricted) { void SetStereoVisionRestrictionImpl(bool is_restricted) {
if (restriction_settings.disabled) { if (settings.disabled) {
return; return;
} }
if (pin_code[0] == '\0') { if (pin_code[0] == '\0') {
return; return;
} }
restriction_settings.is_stero_vision_restricted = is_restricted; settings.is_stero_vision_restricted = is_restricted;
} }
void Initialize(HLERequestContext& ctx) { void Initialize(HLERequestContext& ctx) {
@ -430,7 +430,7 @@ private:
} }
rb.Push(ResultSuccess); rb.Push(ResultSuccess);
rb.Push(restriction_settings.is_stero_vision_restricted); rb.Push(settings.is_stero_vision_restricted);
} }
void ResetConfirmedStereoVisionPermission(HLERequestContext& ctx) { void ResetConfirmedStereoVisionPermission(HLERequestContext& ctx) {
@ -460,22 +460,28 @@ private:
bool stereo_vision{}; bool stereo_vision{};
}; };
// This is nn::pctl::RestrictionSettings struct ParentalControlSettings {
struct RestrictionSettings {
bool is_stero_vision_restricted{}; bool is_stero_vision_restricted{};
bool is_free_communication_default_on{}; bool is_free_communication_default_on{};
bool disabled{}; bool disabled{};
}; };
// This is nn::pctl::RestrictionSettings
struct RestrictionSettings {
u8 rating_age;
bool sns_post_restriction;
bool free_communication_restriction;
};
static_assert(sizeof(RestrictionSettings) == 0x3, "RestrictionSettings has incorrect size."); static_assert(sizeof(RestrictionSettings) == 0x3, "RestrictionSettings has incorrect size.");
// This is nn::pctl::PlayTimerSettings // This is nn::pctl::PlayTimerSettings
struct PlayTimerSettings { struct PlayTimerSettings {
// TODO: RE the actual contents of this struct std::array<u32, 13> settings;
std::array<u8, 0x34> settings;
}; };
static_assert(sizeof(PlayTimerSettings) == 0x34, "PlayTimerSettings has incorrect size."); static_assert(sizeof(PlayTimerSettings) == 0x34, "PlayTimerSettings has incorrect size.");
States states{}; States states{};
ParentalControlSettings settings{};
RestrictionSettings restriction_settings{}; RestrictionSettings restriction_settings{};
std::array<char, 8> pin_code{}; std::array<char, 8> pin_code{};
Capability capability{}; Capability capability{};