summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorZach Hilman <zachhilman@gmail.com>2018-08-16 23:08:44 +0200
committerZach Hilman <zachhilman@gmail.com>2018-08-23 17:53:30 +0200
commit60b7a3b90448daf2eb0dabd6edadf42e50b3f5b6 (patch)
treebe9595212bd36ec5e5f6305b2ac3e74dcb1c3799
parentfile_sys: Implement NAX containers (diff)
downloadyuzu-60b7a3b90448daf2eb0dabd6edadf42e50b3f5b6.tar
yuzu-60b7a3b90448daf2eb0dabd6edadf42e50b3f5b6.tar.gz
yuzu-60b7a3b90448daf2eb0dabd6edadf42e50b3f5b6.tar.bz2
yuzu-60b7a3b90448daf2eb0dabd6edadf42e50b3f5b6.tar.lz
yuzu-60b7a3b90448daf2eb0dabd6edadf42e50b3f5b6.tar.xz
yuzu-60b7a3b90448daf2eb0dabd6edadf42e50b3f5b6.tar.zst
yuzu-60b7a3b90448daf2eb0dabd6edadf42e50b3f5b6.zip
-rw-r--r--src/yuzu/game_list.cpp22
-rw-r--r--src/yuzu/game_list_p.h2
2 files changed, 12 insertions, 12 deletions
diff --git a/src/yuzu/game_list.cpp b/src/yuzu/game_list.cpp
index d5726b8b3..867a3c6f1 100644
--- a/src/yuzu/game_list.cpp
+++ b/src/yuzu/game_list.cpp
@@ -426,13 +426,12 @@ static void GetMetadataFromControlNCA(const std::shared_ptr<FileSys::NCA>& nca,
}
}
-void GameListWorker::AddInstalledTitlesToGameList() {
- const auto usernand = Service::FileSystem::GetUserNANDContents();
- const auto installed_games = usernand->ListEntriesFilter(FileSys::TitleType::Application,
- FileSys::ContentRecordType::Program);
+void GameListWorker::AddInstalledTitlesToGameList(std::shared_ptr<FileSys::RegisteredCache> cache) {
+ const auto installed_games = cache->ListEntriesFilter(FileSys::TitleType::Application,
+ FileSys::ContentRecordType::Program);
for (const auto& game : installed_games) {
- const auto& file = usernand->GetEntryRaw(game);
+ const auto& file = cache->GetEntryUnparsed(game);
std::unique_ptr<Loader::AppLoader> loader = Loader::GetLoader(file);
if (!loader)
continue;
@@ -442,8 +441,7 @@ void GameListWorker::AddInstalledTitlesToGameList() {
u64 program_id = 0;
loader->ReadProgramId(program_id);
- const auto& control =
- usernand->GetEntry(game.title_id, FileSys::ContentRecordType::Control);
+ const auto& control = cache->GetEntry(game.title_id, FileSys::ContentRecordType::Control);
if (control != nullptr)
GetMetadataFromControlNCA(control, icon, name);
emit EntryReady({
@@ -457,11 +455,11 @@ void GameListWorker::AddInstalledTitlesToGameList() {
});
}
- const auto control_data = usernand->ListEntriesFilter(FileSys::TitleType::Application,
- FileSys::ContentRecordType::Control);
+ const auto control_data = cache->ListEntriesFilter(FileSys::TitleType::Application,
+ FileSys::ContentRecordType::Control);
for (const auto& entry : control_data) {
- const auto nca = usernand->GetEntry(entry);
+ const auto nca = cache->GetEntry(entry);
if (nca != nullptr)
nca_control_map.insert_or_assign(entry.title_id, nca);
}
@@ -549,7 +547,9 @@ void GameListWorker::run() {
stop_processing = false;
watch_list.append(dir_path);
FillControlMap(dir_path.toStdString());
- AddInstalledTitlesToGameList();
+ AddInstalledTitlesToGameList(Service::FileSystem::GetUserNANDContents());
+ AddInstalledTitlesToGameList(Service::FileSystem::GetSystemNANDContents());
+ AddInstalledTitlesToGameList(Service::FileSystem::GetSDMCContents());
AddFstEntriesToGameList(dir_path.toStdString(), deep_scan ? 256 : 0);
nca_control_map.clear();
emit Finished(watch_list);
diff --git a/src/yuzu/game_list_p.h b/src/yuzu/game_list_p.h
index c59613769..1d6c85400 100644
--- a/src/yuzu/game_list_p.h
+++ b/src/yuzu/game_list_p.h
@@ -172,7 +172,7 @@ private:
bool deep_scan;
std::atomic_bool stop_processing;
- void AddInstalledTitlesToGameList();
+ void AddInstalledTitlesToGameList(std::shared_ptr<FileSys::RegisteredCache> cache);
void FillControlMap(const std::string& dir_path);
void AddFstEntriesToGameList(const std::string& dir_path, unsigned int recursion = 0);
};