From 8bfa6718bd4ca47bb496e97b40f026cf8272d1be Mon Sep 17 00:00:00 2001 From: N2614 Date: Mon, 23 Jan 2012 07:06:09 +0000 Subject: [PATCH] =?UTF-8?q?SD=E3=82=AB=E3=83=BC=E3=83=89=E3=81=AB=E3=82=A4?= =?UTF-8?q?=E3=83=B3=E3=83=9D=E3=83=BC=E3=83=88=E5=8F=AF=E8=83=BD=E3=81=8B?= =?UTF-8?q?=E3=83=81=E3=82=A7=E3=83=83=E3=82=AF=E3=81=A7=E3=81=8D=E3=82=8B?= =?UTF-8?q?=E3=82=88=E3=81=86=E3=81=AB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit git-svn-id: file:///Volumes/Transfer/gigaleak_20231201/2020-05-23%20-%20ctr.7z%20+%20svn_v1.068.zip/ctr/svn/ctr_Repair@594 385bec56-5757-e545-9c3a-d8741f4650f1 --- .../ConsoleRestore/PreinstallImporter.cpp | 16 +++++++++----- .../ConsoleRestore/PreinstallImporter.h | 4 ++-- .../ConsoleRestore/TitleDownloader.cpp | 21 ++++++++++++++----- .../sources/ConsoleRestore/TitleDownloader.h | 4 ++++ 4 files changed, 33 insertions(+), 12 deletions(-) diff --git a/trunk/ConsoleDataMigration/sources/ConsoleRestore/PreinstallImporter.cpp b/trunk/ConsoleDataMigration/sources/ConsoleRestore/PreinstallImporter.cpp index 0f68564..620934a 100644 --- a/trunk/ConsoleDataMigration/sources/ConsoleRestore/PreinstallImporter.cpp +++ b/trunk/ConsoleDataMigration/sources/ConsoleRestore/PreinstallImporter.cpp @@ -36,14 +36,20 @@ PreinstallImporter::~PreinstallImporter() // TODO Auto-generated destructor stub } -nn::Result PreinstallImporter::CleanUpAndSetupSd() +nn::Result PreinstallImporter::SetupSd(bool* isAlreadyAvailable) { - // TODO:SDカードのセーブデータを削除する? + // SDカードがインポート可能状態かどうかチェック + NN_UTIL_RETURN_IF_FAILED( + nn::am::QueryAvailableExternalTitleDatabase(isAlreadyAvailable) + ); // タイトルデータベースを作成する - NN_UTIL_RETURN_IF_FAILED( - nn::am::InitializeExternalTitleDatabase(true) - ); + if (!isAlreadyAvailable) + { + NN_UTIL_RETURN_IF_FAILED( + nn::am::InitializeExternalTitleDatabase() + ); + } return nn::ResultSuccess(); } diff --git a/trunk/ConsoleDataMigration/sources/ConsoleRestore/PreinstallImporter.h b/trunk/ConsoleDataMigration/sources/ConsoleRestore/PreinstallImporter.h index 2baa8ba..d075f0a 100644 --- a/trunk/ConsoleDataMigration/sources/ConsoleRestore/PreinstallImporter.h +++ b/trunk/ConsoleDataMigration/sources/ConsoleRestore/PreinstallImporter.h @@ -30,8 +30,8 @@ public: PreinstallImporter(); virtual ~PreinstallImporter(); - //! @brief 不要なSDカードのデータを削除して、新たにタイトルデータベースを作成します - nn::Result CleanUpAndSetupSd(); + //! @brief 外部タイトルデータベースを作成します + nn::Result SetupSd(bool* isAlreadyAvailable); //! @brief ダウンロードするプリインストールタイトルをBGS経由でリストアップする //! @param[out] list    プリインストールタイトルの配列。十分に大きいものを渡すこと。 diff --git a/trunk/ConsoleDataMigration/sources/ConsoleRestore/TitleDownloader.cpp b/trunk/ConsoleDataMigration/sources/ConsoleRestore/TitleDownloader.cpp index 6e3581d..7c273e6 100644 --- a/trunk/ConsoleDataMigration/sources/ConsoleRestore/TitleDownloader.cpp +++ b/trunk/ConsoleDataMigration/sources/ConsoleRestore/TitleDownloader.cpp @@ -125,7 +125,7 @@ void TwlTitleDownloaderThreadFunc() size_t num = 0; nn::ProgramId list[256]; TitleDownloader::m_Result = ListUpTwlTitles(list, &num); - NN_UTIL_RETURN_IF_FAILED(TitleDownloader::m_Result); + COMMON_LOGGER_RETURN_VOID_IF_FAILED(TitleDownloader::m_Result); TwlTitleDownloader.SetupTitleList(list, num); TwlTitleDownloader.Start(); } @@ -135,14 +135,11 @@ void PreinstallTitleDownloaderThreadFunc(PreinstallListupParam param) TitleDownloader PreinstallTitleDownloader; PreinstallImporter importer; - TitleDownloader::m_Result = importer.CleanUpAndSetupSd(); - NN_UTIL_RETURN_IF_FAILED(TitleDownloader::m_Result); - s_Progress = 0; size_t num = 0; nn::ProgramId list[256]; TitleDownloader::m_Result = importer.ListTitles(list, &num, param.deviceId, param.serialNo); - NN_UTIL_RETURN_IF_FAILED(TitleDownloader::m_Result); + COMMON_LOGGER_RETURN_VOID_IF_FAILED(TitleDownloader::m_Result); PreinstallTitleDownloader.SetupTitleList(list, num); PreinstallTitleDownloader.Start(); } @@ -153,6 +150,20 @@ void StartTwlTitleDownload() } +bool PreparePreinstallTitleDownload() +{ + PreinstallImporter importer; + bool isAlreadyAvailable = false; + TitleDownloader::m_Result = importer.SetupSd(&isAlreadyAvailable); + + if(isAlreadyAvailable) + { + return false; + } + + return TitleDownloader::m_Result.IsSuccess(); +} + void StartPreinstallTitleDownload(bit64 deviceId, u8* serialNo) { PreinstallListupParam param; diff --git a/trunk/ConsoleDataMigration/sources/ConsoleRestore/TitleDownloader.h b/trunk/ConsoleDataMigration/sources/ConsoleRestore/TitleDownloader.h index 175096c..5bce020 100644 --- a/trunk/ConsoleDataMigration/sources/ConsoleRestore/TitleDownloader.h +++ b/trunk/ConsoleDataMigration/sources/ConsoleRestore/TitleDownloader.h @@ -24,6 +24,10 @@ namespace ConsoleRestore // 新たにスレッドを立て、TWLタイトルのダウンロードを開始する void StartTwlTitleDownload(); +//! @brief SDカードをインポート可能状態にします +//! @return すでに初期化済みかどうか +bool PreparePreinstallTitleDownload(); + //! @brief 新たにスレッドを立て、プリインストールタイトルのダウンロードを開始します
//! SDカードはインポート可能な状態にしておく必要があります。 //! @param[in] deviceId デバイスID