summaryrefslogtreecommitdiffstats
path: root/src/core/hle/service/acc/profile_manager.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/core/hle/service/acc/profile_manager.h')
-rw-r--r--src/core/hle/service/acc/profile_manager.h13
1 files changed, 12 insertions, 1 deletions
diff --git a/src/core/hle/service/acc/profile_manager.h b/src/core/hle/service/acc/profile_manager.h
index 5aa73a030..cb6239cc1 100644
--- a/src/core/hle/service/acc/profile_manager.h
+++ b/src/core/hle/service/acc/profile_manager.h
@@ -54,7 +54,8 @@ struct ProfileInfo {
UUID user_uuid;
std::array<u8, 0x20> username;
u64 creation_time;
- std::array<u8, MAX_DATA> data;
+ std::array<u8, MAX_DATA> data; // TODO(ognik): Work out what this is
+ bool is_open;
};
struct ProfileBase {
@@ -83,14 +84,24 @@ public:
bool GetProfileBase(size_t index, ProfileBase& profile);
bool GetProfileBase(UUID uuid, ProfileBase& profile);
bool GetProfileBase(ProfileInfo user, ProfileBase& profile);
+ bool GetProfileBaseAndData(size_t index, ProfileBase& profile, std::array<u8, MAX_DATA>& data);
+ bool GetProfileBaseAndData(UUID uuid, ProfileBase& profile, std::array<u8, MAX_DATA>& data);
+ bool GetProfileBaseAndData(ProfileInfo user, ProfileBase& profile,
+ std::array<u8, MAX_DATA>& data);
size_t GetUserCount();
bool UserExists(UUID uuid);
+ void OpenUser(UUID uuid);
+ void CloseUser(UUID uuid);
+ std::array<UUID, MAX_USERS> GetOpenUsers();
+ std::array<UUID, MAX_USERS> GetAllUsers();
+ const UUID& GetLastOpennedUser();
private:
std::array<ProfileInfo, MAX_USERS> profiles{};
size_t user_count = 0;
size_t AddToProfiles(const ProfileInfo& profile);
bool RemoveProfileAtIdx(size_t index);
+ UUID last_openned_user{0, 0};
};
using ProfileManagerPtr = std::unique_ptr<ProfileManager>;