Personalized eTicketの存在するDSiWareのみダウンロードするように

git-svn-id: file:///Volumes/Transfer/gigaleak_20231201/2020-05-23%20-%20ctr.7z%20+%20svn_v1.068.zip/ctr/svn/ctr_Repair@825 385bec56-5757-e545-9c3a-d8741f4650f1
This commit is contained in:
N2614 2014-11-13 08:28:28 +00:00
parent 4d2575487f
commit bf8667429b
2 changed files with 25 additions and 4 deletions

View File

@ -130,14 +130,17 @@ nn::Result TitleDownloader::m_Result = nn::ResultSuccess();
void TwlTitleDownloaderThreadFunc() void TwlTitleDownloaderThreadFunc()
{ {
TitleDownloader TwlTitleDownloader; TitleDownloader TwlTitleDownloader;
PreinstallImporter importer;
s_Progress = 0; 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(); TitleDownloader::m_Result = nn::am::InitializeForNetworkImporter();
COMMON_LOGGER_RETURN_VOID_IF_FAILED(TitleDownloader::m_Result); 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(); TwlTitleDownloader.Start();
nn::am::FinalizeForNetworkImporter(); nn::am::FinalizeForNetworkImporter();
s_FinishedTitleNum = TwlTitleDownloader.GetFinishedTitleNum(); s_FinishedTitleNum = TwlTitleDownloader.GetFinishedTitleNum();
@ -419,6 +422,21 @@ void TitleDownloader::SetupTitleList(nn::ProgramId* list, size_t num, u32 index)
m_FinishedTitleNum = 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) void TitleDownloader::CalculateRequiredSize(s64* requiredSize)
{ {
*requiredSize = 0; *requiredSize = 0;

View File

@ -69,6 +69,9 @@ public:
//! @brief タイトルリストを設定する //! @brief タイトルリストを設定する
void SetupTitleList(nn::ProgramId* list, size_t num, u32 index); void SetupTitleList(nn::ProgramId* list, size_t num, u32 index);
//! @brief TWLタイトルリストを設定する
void SetupTitleListForTWL(nn::ProgramId* list, size_t num, u32 index);
//! @brief タイトルをダウンロードするのに必要なサイズを計算します //! @brief タイトルをダウンロードするのに必要なサイズを計算します
void CalculateRequiredSize(s64* requiredSize); void CalculateRequiredSize(s64* requiredSize);