From 4bccf7a2db94e0dc71fbacd5431cc0f4ddd590aa Mon Sep 17 00:00:00 2001 From: georgemoralis Date: Fri, 13 Jun 2025 17:51:45 +0300 Subject: [PATCH] some more draft work --- CMakeLists.txt | 2 ++ src/common/config.cpp | 5 +++++ src/common/config.h | 1 + src/core/user_account.cpp | 18 ++++++++++++++++++ src/core/user_account.h | 29 +++++++++++++++++++++++++++++ src/qt_gui/main.cpp | 6 ++++++ 6 files changed, 61 insertions(+) create mode 100644 src/core/user_account.cpp create mode 100644 src/core/user_account.h diff --git a/CMakeLists.txt b/CMakeLists.txt index 17d09909c..2c6d03015 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -794,6 +794,8 @@ set(CORE src/core/aerolib/stubs.cpp src/core/thread.h src/core/tls.cpp src/core/tls.h + src/core/user_account.cpp + src/core/user_account.h ) if (ARCHITECTURE STREQUAL "x86_64") diff --git a/src/common/config.cpp b/src/common/config.cpp index d8f46a17d..e8d4bd902 100644 --- a/src/common/config.cpp +++ b/src/common/config.cpp @@ -74,7 +74,12 @@ static bool compatibilityData = false; static bool checkCompatibilityOnStartup = false; static std::string trophyKey; static bool isPSNSignedIn = false; +std::string userid{"00000001"}; +std::string selectedUserid{"00000001"}; +std::string getDefaultUserId() { + return userid; +} // Gui static bool load_game_size = true; static std::vector settings_install_dirs = {}; diff --git a/src/common/config.h b/src/common/config.h index 414bc122e..63d09a9ce 100644 --- a/src/common/config.h +++ b/src/common/config.h @@ -34,6 +34,7 @@ bool getEnableDiscordRPC(); bool getCompatibilityEnabled(); bool getCheckCompatibilityOnStartup(); bool getPSNSignedIn(); +std::string getDefaultUserId(); std::string getLogFilter(); std::string getLogType(); diff --git a/src/core/user_account.cpp b/src/core/user_account.cpp new file mode 100644 index 000000000..ee4f4711c --- /dev/null +++ b/src/core/user_account.cpp @@ -0,0 +1,18 @@ +// SPDX-FileCopyrightText: Copyright 2025 shadPS4 Emulator Project +// SPDX-License-Identifier: GPL-2.0-or-later + +#include +#include "user_account.h" + +user_account::user_account(const std::string& user_id) { + // Setting userId. + m_user_id = user_id; + // TODO +} + +std::map user_account::GetUserAccounts(const std::string& base_dir) { + std::map user_list; + // TODO + + return user_list; +} diff --git a/src/core/user_account.h b/src/core/user_account.h new file mode 100644 index 000000000..1689c416d --- /dev/null +++ b/src/core/user_account.h @@ -0,0 +1,29 @@ +// SPDX-FileCopyrightText: Copyright 2025 shadPS4 Emulator Project +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once +#include +#include +#include "common/types.h" + +class user_account { +public: + explicit user_account(const std::string& user_id = "00000001"); + + const std::string& GetUserId() const { + return m_user_id; + } + const std::string& GetUserDir() const { + return m_user_dir; + } + const std::string& GetUsername() const { + return m_username; + } + + static std::map GetUserAccounts(const std::string& base_dir); + +private: + std::string m_user_id; + std::string m_user_dir; + std::string m_username; +}; diff --git a/src/qt_gui/main.cpp b/src/qt_gui/main.cpp index b7de517e8..a527874ee 100644 --- a/src/qt_gui/main.cpp +++ b/src/qt_gui/main.cpp @@ -32,6 +32,12 @@ int main(int argc, char* argv[]) { const auto user_dir = Common::FS::GetUserPath(Common::FS::PathType::UserDir); Config::load(user_dir / "config.toml"); + const auto& default_user_dir = + Common::FS::GetUserPath(Common::FS::PathType::HomeDir) / Config::getDefaultUserId(); + if (!std::filesystem::exists(default_user_dir)) { + std::filesystem::create_directory(default_user_dir); + } + bool has_command_line_argument = argc > 1; bool show_gui = false, has_game_argument = false; std::string game_path;