diff options
Diffstat (limited to 'src/yuzu')
| -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);  };  | 
