diff options
author | Zach Hilman <zachhilman@gmail.com> | 2018-08-16 23:08:44 +0200 |
---|---|---|
committer | Zach Hilman <zachhilman@gmail.com> | 2018-08-23 17:53:30 +0200 |
commit | 60b7a3b90448daf2eb0dabd6edadf42e50b3f5b6 (patch) | |
tree | be9595212bd36ec5e5f6305b2ac3e74dcb1c3799 | |
parent | file_sys: Implement NAX containers (diff) | |
download | yuzu-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.cpp | 22 | ||||
-rw-r--r-- | src/yuzu/game_list_p.h | 2 |
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); }; |