1111f691c6
Co-authored-by: n.fedorov <mail@nfedorov.dev> Co-committed-by: n.fedorov <mail@nfedorov.dev>
59 lines
1.6 KiB
C++
59 lines
1.6 KiB
C++
// Copyright (C) 2024-2026 NXST contributors
|
|
#pragma once
|
|
#include <string>
|
|
#include <unordered_map>
|
|
#include <utility>
|
|
#include <vector>
|
|
|
|
#include <switch.h>
|
|
|
|
class Title {
|
|
public:
|
|
void init(u8 save_data_type, u64 title_id, AccountUid uid, const std::string& name,
|
|
const std::string& author);
|
|
|
|
std::string author() const;
|
|
std::pair<std::string, std::string> displayName() const;
|
|
u64 id() const;
|
|
std::string name() const;
|
|
std::string path() const;
|
|
u64 playTimeNanoseconds() const;
|
|
std::string playTime() const;
|
|
void playTimeNanoseconds(u64 ns);
|
|
u32 lastPlayedTimestamp() const;
|
|
void lastPlayedTimestamp(u32 ts);
|
|
std::string fullPath(size_t index) const;
|
|
void refreshDirectories();
|
|
u64 saveId() const;
|
|
void saveId(u64 id);
|
|
std::vector<std::string> saves() const;
|
|
u8 saveDataType() const;
|
|
AccountUid userId() const;
|
|
std::string userName() const;
|
|
|
|
private:
|
|
u64 m_id{0};
|
|
u64 m_save_id{0};
|
|
AccountUid m_uid{};
|
|
std::string m_user_name;
|
|
std::string m_name;
|
|
std::string m_safe_name;
|
|
std::string m_author;
|
|
std::string m_path;
|
|
std::vector<std::string> m_saves;
|
|
std::vector<std::string> m_full_save_paths;
|
|
u8 m_save_data_type{0};
|
|
std::pair<std::string, std::string> m_display_name;
|
|
u64 m_play_time_ns{0};
|
|
u32 m_last_played_ts{0};
|
|
};
|
|
|
|
bool areTitlesLoaded();
|
|
void loadTitles();
|
|
void sortTitles();
|
|
void rotateSortMode();
|
|
void getTitle(Title& dst, AccountUid uid, size_t i);
|
|
size_t getTitleCount(AccountUid uid);
|
|
void refreshDirectories(u64 id);
|
|
std::unordered_map<std::string, std::string> getCompleteTitleList();
|