[XAM] Implementation of: Profile Manager & Profiles Support

Thanks Emoose for Account Encrypt/Decrypt code!
This commit is contained in:
Gliniak
2024-09-28 10:42:32 +02:00
committed by Radosław Gliński
parent 9ba0f18c82
commit 9bdd07590c
28 changed files with 1775 additions and 298 deletions

View File

@@ -25,7 +25,7 @@
#include "xenia/ui/windowed_app_context.h"
#include "xenia/xbox.h"
#define MAX_USERS 4
#include "xenia/app/profile_dialogs.h"
namespace xe {
namespace app {
@@ -93,6 +93,12 @@ class EmulatorWindow {
void SaveImage(const std::filesystem::path& path,
const xe::ui::RawImage& image);
void ToggleProfilesConfigDialog();
void SetHotkeysState(bool enabled) { disable_hotkeys_ = !enabled; }
// We need to store it somewhere so there will be no situation when there are
// multiple instances opened.
std::unique_ptr<CreateProfileDialog> profile_creation_dialog_;
// Types of button functions for hotkeys.
enum class ButtonFunctions {
ToggleFullscreen,
@@ -257,12 +263,17 @@ class EmulatorWindow {
std::unique_ptr<ui::ImmediateDrawer> immediate_drawer_;
bool emulator_initialized_ = false;
std::atomic<bool> disable_hotkeys_ = false;
std::string base_title_;
bool initializing_shader_storage_ = false;
std::unique_ptr<DisplayConfigDialog> display_config_dialog_;
// Storing pointers and toggling dialog state is useful for broadcasting
// messages back to guest.
std::unique_ptr<ProfileConfigDialog> profile_config_dialog_;
std::vector<RecentTitleEntry> recently_launched_titles_;
};