summaryrefslogtreecommitdiff
path: root/Source
diff options
context:
space:
mode:
authorJosJuice <josjuice@gmail.com>2025-04-19 14:28:02 +0200
committerGitHub <noreply@github.com>2025-04-19 14:28:02 +0200
commit49ebdaaae31a9cb33b22cbfd8d9c560a407a6dc0 (patch)
treedf794aafb4de596f41bb029a22d0b5f7fadc5c7b /Source
parent056b0339be713abfcdb87ffc8fbb9fe4c712ac90 (diff)
parentd194e69bbd0d4f37f74e429df94b8030dd3b4ba9 (diff)
Merge pull request #13507 from JosJuice/time-played-game-id
Core: Don't store game ID inside TimePlayed
Diffstat (limited to 'Source')
-rw-r--r--Source/Core/Core/HW/CPU.cpp6
-rw-r--r--Source/Core/Core/TimePlayed.cpp36
-rw-r--r--Source/Core/Core/TimePlayed.h9
3 files changed, 11 insertions, 40 deletions
diff --git a/Source/Core/Core/HW/CPU.cpp b/Source/Core/Core/HW/CPU.cpp
index 70f973628b..5a21e5e3c8 100644
--- a/Source/Core/Core/HW/CPU.cpp
+++ b/Source/Core/Core/HW/CPU.cpp
@@ -78,17 +78,17 @@ void CPUManager::StartTimePlayedTimer()
while (true)
{
- const std::string game_id = SConfig::GetInstance().GetGameID();
- TimePlayed time_played(game_id);
+ TimePlayed time_played;
auto curr_time = timer.now();
// Check that emulation is not paused
// If the emulation is paused, wait for SetStepping() to reactivate
if (m_state == State::Running)
{
+ const std::string game_id = SConfig::GetInstance().GetGameID();
const auto diff_time =
std::chrono::duration_cast<std::chrono::milliseconds>(curr_time - prev_time);
- time_played.AddTime(diff_time);
+ time_played.AddTime(game_id, diff_time);
}
else if (m_state == State::Stepping)
{
diff --git a/Source/Core/Core/TimePlayed.cpp b/Source/Core/Core/TimePlayed.cpp
index e20a0c014e..9323a49393 100644
--- a/Source/Core/Core/TimePlayed.cpp
+++ b/Source/Core/Core/TimePlayed.cpp
@@ -11,47 +11,23 @@
#include "Common/IniFile.h"
#include "Common/NandPaths.h"
-TimePlayed::TimePlayed()
- : m_game_id(""), m_ini_path(File::GetUserPath(D_CONFIG_IDX) + "TimePlayed.ini")
-{
- Reload();
-}
-
-TimePlayed::TimePlayed(std::string game_id)
- : m_game_id(Common::EscapeFileName(game_id)), // filter for unsafe characters
- m_ini_path(File::GetUserPath(D_CONFIG_IDX) + "TimePlayed.ini")
+TimePlayed::TimePlayed() : m_ini_path(File::GetUserPath(D_CONFIG_IDX) + "TimePlayed.ini")
{
Reload();
}
TimePlayed::~TimePlayed() = default;
-void TimePlayed::AddTime(std::chrono::milliseconds time_emulated)
+void TimePlayed::AddTime(const std::string& game_id, std::chrono::milliseconds time_emulated)
{
- if (m_game_id == "")
- {
- return;
- }
-
+ std::string filtered_game_id = Common::EscapeFileName(game_id);
u64 previous_time;
- m_time_list->Get(m_game_id, &previous_time);
- m_time_list->Set(m_game_id, previous_time + static_cast<u64>(time_emulated.count()));
+ m_time_list->Get(filtered_game_id, &previous_time);
+ m_time_list->Set(filtered_game_id, previous_time + static_cast<u64>(time_emulated.count()));
m_ini.Save(m_ini_path);
}
-std::chrono::milliseconds TimePlayed::GetTimePlayed() const
-{
- if (m_game_id == "")
- {
- return std::chrono::milliseconds(0);
- }
-
- u64 previous_time;
- m_time_list->Get(m_game_id, &previous_time);
- return std::chrono::milliseconds(previous_time);
-}
-
-std::chrono::milliseconds TimePlayed::GetTimePlayed(std::string game_id) const
+std::chrono::milliseconds TimePlayed::GetTimePlayed(const std::string& game_id) const
{
std::string filtered_game_id = Common::EscapeFileName(game_id);
u64 previous_time;
diff --git a/Source/Core/Core/TimePlayed.h b/Source/Core/Core/TimePlayed.h
index 306438b778..5d1f279db3 100644
--- a/Source/Core/Core/TimePlayed.h
+++ b/Source/Core/Core/TimePlayed.h
@@ -12,11 +12,8 @@
class TimePlayed
{
public:
- // used for QT interface - general access to time played for games
TimePlayed();
- TimePlayed(std::string game_id);
-
// not copyable due to the stored section pointer
TimePlayed(const TimePlayed& other) = delete;
TimePlayed(TimePlayed&& other) = delete;
@@ -25,15 +22,13 @@ public:
~TimePlayed();
- void AddTime(std::chrono::milliseconds time_emulated);
+ void AddTime(const std::string& game_id, std::chrono::milliseconds time_emulated);
- std::chrono::milliseconds GetTimePlayed() const;
- std::chrono::milliseconds GetTimePlayed(std::string game_id) const;
+ std::chrono::milliseconds GetTimePlayed(const std::string& game_id) const;
void Reload();
private:
- std::string m_game_id;
std::string m_ini_path;
Common::IniFile m_ini;
Common::IniFile::Section* m_time_list;