6#ifndef ATLAS_GAMEMETADATA_HPP
7#define ATLAS_GAMEMETADATA_HPP
58 template <
class Rep,
class Period >
59 void addPlaytime(
const std::chrono::duration< Rep, Period > time_diff )
61 addPlaytime(
static_cast< std::uint32_t
>( std::chrono::duration_cast< std::chrono::seconds >( time_diff )
79 std::filesystem::path
getPath()
const;
104 m_version( std::move( other.m_version ) ),
113 std::construct_at(
this, other );
constexpr RecordID INVALID_RECORD_ID
Definition Types.hpp:15
std::uint32_t RecordID
Definition Types.hpp:11
Representation of a game version.
Definition Version.hpp:40
QString getVersionName() const
Definition Version.cpp:16
bool operator==(const Version &other) const
Definition Version.hpp:88
Version(Version &&other) noexcept
Definition Version.hpp:102
std::uint32_t getPlaytime() const
Definition Version.cpp:33
std::filesystem::path getPath() const
Definition Version.cpp:59
std::uint64_t getLastPlayed() const
Definition Version.cpp:46
RecordID getParentID() const
Definition Version.cpp:150
bool isInPlace() const
If true then the game is not located in config::paths::games::get()
Definition Version.cpp:21
void addPlaytime(const std::uint32_t playtime)
Adds playtime to this and it's parent record.
Definition Version.cpp:119
const VersionData * operator->() const
Definition Version.hpp:48
void setVersionName(const QString str)
Definition Version.cpp:155
QString m_version
Definition Version.hpp:42
Game parent() const
Definition Version.cpp:184
std::uint64_t getImportTime() const
Definition Version.cpp:172
void setRelativeExecPath(const std::filesystem::path &path)
Definition Version.cpp:164
std::filesystem::path getRelativeExecPath() const
Definition Version.cpp:74
std::filesystem::path getExecPath() const
Definition Version.cpp:85
void setLastPlayed(const std::uint64_t last_played)
Sets the last played timestamp for this and it's parent record.
Definition Version.cpp:129
Version(const Version &other) noexcept
Definition Version.hpp:96
RecordID m_parent_id
Definition Version.hpp:41
Version & operator=(const Version &other) noexcept
Required to make std::vector happy.
Definition Version.hpp:111
void playGame()
Executes the game for this record.
Definition Version.cpp:91
void addPlaytime(const std::chrono::duration< Rep, Period > time_diff)
Definition Version.hpp:59
~Version()
Definition Version.cpp:254
std::shared_ptr< VersionData > data_ptr
Definition Version.hpp:44
std::uint64_t getFolderSize() const
Definition Version.cpp:139
Definition banners.cpp:15
Definition exceptions.hpp:17
Definition Version.hpp:22
RecordID m_parent_id
Definition Version.hpp:23
VersionData(const VersionData &other)=delete
std::uint64_t m_date_added
Definition Version.hpp:30
std::uint64_t m_folder_size
Definition Version.hpp:29
std::filesystem::path m_game_path
Definition Version.hpp:25
std::filesystem::path m_exec_path
Definition Version.hpp:26
QString m_version
Definition Version.hpp:24
VersionData(VersionData &&other)=delete
std::uint64_t m_total_playtime
Definition Version.hpp:28
std::uint64_t m_last_played
Definition Version.hpp:27