SDカードにインポート可能かチェックできるように

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
This commit is contained in:
N2614 2012-01-23 07:06:09 +00:00
parent 2db61f8b8e
commit 8bfa6718bd
4 changed files with 33 additions and 12 deletions

View File

@ -36,14 +36,20 @@ PreinstallImporter::~PreinstallImporter()
// TODO Auto-generated destructor stub // 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( if (!isAlreadyAvailable)
nn::am::InitializeExternalTitleDatabase(true) {
); NN_UTIL_RETURN_IF_FAILED(
nn::am::InitializeExternalTitleDatabase()
);
}
return nn::ResultSuccess(); return nn::ResultSuccess();
} }

View File

@ -30,8 +30,8 @@ public:
PreinstallImporter(); PreinstallImporter();
virtual ~PreinstallImporter(); virtual ~PreinstallImporter();
//! @brief 不要なSDカードのデータを削除して、新たにタイトルデータベースを作成します //! @brief 外部タイトルデータベースを作成します
nn::Result CleanUpAndSetupSd(); nn::Result SetupSd(bool* isAlreadyAvailable);
//! @brief ダウンロードするプリインストールタイトルをBGS経由でリストアップする //! @brief ダウンロードするプリインストールタイトルをBGS経由でリストアップする
//! @param[out] list    プリインストールタイトルの配列。十分に大きいものを渡すこと。 //! @param[out] list    プリインストールタイトルの配列。十分に大きいものを渡すこと。

View File

@ -125,7 +125,7 @@ void TwlTitleDownloaderThreadFunc()
size_t num = 0; size_t num = 0;
nn::ProgramId list[256]; nn::ProgramId list[256];
TitleDownloader::m_Result = ListUpTwlTitles(list, &num); 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.SetupTitleList(list, num);
TwlTitleDownloader.Start(); TwlTitleDownloader.Start();
} }
@ -135,14 +135,11 @@ void PreinstallTitleDownloaderThreadFunc(PreinstallListupParam param)
TitleDownloader PreinstallTitleDownloader; TitleDownloader PreinstallTitleDownloader;
PreinstallImporter importer; PreinstallImporter importer;
TitleDownloader::m_Result = importer.CleanUpAndSetupSd();
NN_UTIL_RETURN_IF_FAILED(TitleDownloader::m_Result);
s_Progress = 0; s_Progress = 0;
size_t num = 0; size_t num = 0;
nn::ProgramId list[256]; nn::ProgramId list[256];
TitleDownloader::m_Result = importer.ListTitles(list, &num, param.deviceId, param.serialNo); 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.SetupTitleList(list, num);
PreinstallTitleDownloader.Start(); 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) void StartPreinstallTitleDownload(bit64 deviceId, u8* serialNo)
{ {
PreinstallListupParam param; PreinstallListupParam param;

View File

@ -24,6 +24,10 @@ namespace ConsoleRestore
// 新たにスレッドを立て、TWLタイトルのダウンロードを開始する // 新たにスレッドを立て、TWLタイトルのダウンロードを開始する
void StartTwlTitleDownload(); void StartTwlTitleDownload();
//! @brief SDカードをインポート可能状態にします
//! @return すでに初期化済みかどうか
bool PreparePreinstallTitleDownload();
//! @brief 新たにスレッドを立て、プリインストールタイトルのダウンロードを開始します <BR/> //! @brief 新たにスレッドを立て、プリインストールタイトルのダウンロードを開始します <BR/>
//! SDカードはインポート可能な状態にしておく必要があります。 //! SDカードはインポート可能な状態にしておく必要があります。
//! @param[in] deviceId デバイスID //! @param[in] deviceId デバイスID