diff --git a/trunk/ConsoleDataMigration/sources/ConsoleRestore/TitleDownloader.cpp b/trunk/ConsoleDataMigration/sources/ConsoleRestore/TitleDownloader.cpp index ddf6f83..4c9c1c1 100644 --- a/trunk/ConsoleDataMigration/sources/ConsoleRestore/TitleDownloader.cpp +++ b/trunk/ConsoleDataMigration/sources/ConsoleRestore/TitleDownloader.cpp @@ -130,14 +130,17 @@ nn::Result TitleDownloader::m_Result = nn::ResultSuccess(); void TwlTitleDownloaderThreadFunc() { TitleDownloader TwlTitleDownloader; + PreinstallImporter importer; s_Progress = 0; - TitleDownloader::m_Result = ListUpTwlTitles(s_ProgramIdList, &s_ProgramIdNum); - COMMON_LOGGER_RETURN_VOID_IF_FAILED(TitleDownloader::m_Result); - TwlTitleDownloader.SetupTitleList(s_ProgramIdList, s_ProgramIdNum, s_FinishedTitleNum); - TitleDownloader::m_Result = nn::am::InitializeForNetworkImporter(); COMMON_LOGGER_RETURN_VOID_IF_FAILED(TitleDownloader::m_Result); + + TwlTitleDownloader.m_Result = importer.ListTitlesBasedOnTickets(s_ProgramIdList, &s_ProgramIdNum); + COMMON_LOGGER_RETURN_VOID_IF_FAILED(TwlTitleDownloader.m_Result); + + TwlTitleDownloader.SetupTitleListForTWL(s_ProgramIdList, s_ProgramIdNum, s_FinishedTitleNum); + TwlTitleDownloader.Start(); nn::am::FinalizeForNetworkImporter(); s_FinishedTitleNum = TwlTitleDownloader.GetFinishedTitleNum(); @@ -419,6 +422,21 @@ void TitleDownloader::SetupTitleList(nn::ProgramId* list, size_t num, u32 index) m_FinishedTitleNum = index; } +void TitleDownloader::SetupTitleListForTWL(nn::ProgramId* list, size_t num, u32 index) +{ + const size_t listNum = nn::math::Min(num, IMPORTABLE_TITLE_MAX); + u32 twlAppNum = 0; + for(u32 i = 0; i < listNum; i++) + { + if(nn::CTR::IsTwlApp(list[i])) + { + m_ProgramIdList[twlAppNum++] = list[i]; + } + } + m_TiteNum = twlAppNum; + m_FinishedTitleNum = index; +} + void TitleDownloader::CalculateRequiredSize(s64* requiredSize) { *requiredSize = 0; diff --git a/trunk/ConsoleDataMigration/sources/ConsoleRestore/TitleDownloader.h b/trunk/ConsoleDataMigration/sources/ConsoleRestore/TitleDownloader.h index b283d03..bb32953 100644 --- a/trunk/ConsoleDataMigration/sources/ConsoleRestore/TitleDownloader.h +++ b/trunk/ConsoleDataMigration/sources/ConsoleRestore/TitleDownloader.h @@ -69,6 +69,9 @@ public: //! @brief タイトルリストを設定する void SetupTitleList(nn::ProgramId* list, size_t num, u32 index); + //! @brief TWLタイトルリストを設定する + void SetupTitleListForTWL(nn::ProgramId* list, size_t num, u32 index); + //! @brief タイトルをダウンロードするのに必要なサイズを計算します void CalculateRequiredSize(s64* requiredSize);