From 7186946b1c6a7a6ec389e6b477d5c10a46f84bdf Mon Sep 17 00:00:00 2001 From: N2614 Date: Wed, 20 Apr 2011 11:16:44 +0000 Subject: [PATCH] =?UTF-8?q?ConnectOnly=E3=82=92=E9=96=A2=E6=95=B0=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@211 385bec56-5757-e545-9c3a-d8741f4650f1 --- .../ConsoleRestore/Controller.cpp | 139 ++++++++++-------- 1 file changed, 74 insertions(+), 65 deletions(-) diff --git a/trunk/ConsoleDataMigration/ConsoleRestore/Controller.cpp b/trunk/ConsoleDataMigration/ConsoleRestore/Controller.cpp index 1b2c678..55596b5 100644 --- a/trunk/ConsoleDataMigration/ConsoleRestore/Controller.cpp +++ b/trunk/ConsoleDataMigration/ConsoleRestore/Controller.cpp @@ -85,6 +85,7 @@ bool s_ExecuteConnectOnly = false; // ConnectOnlyを回リトライしたか u32 s_ConnectOnlyRetryCount = 0; +void PutAliveMessage(::std::vector& operationMessage, const char* str); bool CheckAndReadAPSetting(::std::vector& operationMessage); bool NeedsAcAdater() @@ -110,7 +111,7 @@ typedef enum RestoreState DOWNLOAD_IVS_DONE, // インフラからIVSを取得完了 DELETE_ACCOUNT, // ショップアカウントを削除する DELETE_ACCOUNT_DONE, // ショップアカウント削除完了 - CONNECT_ONLY, // ショップに接続するのみ + SYNC_TICKET, // eTicketを同期する READ_FILELIST, // ファイル一覧の読み込み RESTORE_TWL_NAND, // TWL NANDの書き込み中 RESTORE_TWL_SOUND, // TWLサウンドの書き込み中 @@ -149,6 +150,7 @@ void CheckConsoleInitialized(::std::vector& message, bool& goNextSt void CheckExistsSerialNumber(::std::vector& message, bool& goNextStep); void CheckIvsinSd(::std::vector& message, bool& goNextStep); void CheckRegioinSd(::std::vector& message, bool& goNextStep); +void ConnectOnly(::std::vector& message, bool& goNextStep, RestoreState nextState); // SDカード挿入チェック void CheckSdInserted(::std::vector& message, bool& goNextStep) @@ -432,6 +434,74 @@ void CheckRegioinSd(::std::vector& message, bool& goNextStep) } } +void ConnectOnly(::std::vector& message, bool& goNextStep, RestoreState nextState) +{ + NN_UNUSED_VAR(goNextStep); + + // ACアダプタが必要か? + if (NeedsAcAdater()) + { + message.push_back(::std::string("Connect AC Adapter!!")); + } + + // アップデートを行う + if (!s_ExecuteConnectOnly) + { + if (ImportCountryLanguageData().IsSuccess()) + { + StartShopOperationSingle(SHOP_OPERATION_CONNECT_ONLY); + s_ExecuteConnectOnly = true; + } + else + { + s_RestoreState = FAIL; + } + } + + // 動いていることを表示 + { + PutAliveMessage(message, "Shop Connect"); + } + + if (IsShopOperationSingleFinished()) + { + FinishShopOperationSingle(); + // エラーがあったら表示する + if (GetShopOperationSingleResult().IsFailure()) + { + // APが見つからない + if (GetUpdateResult() == nn::ac::ResultNotFoundAccessPoint()) + { + COMMON_LOGGER("No Access Point Found!"); + } + } + + if (GetShopOperationSingleResult().IsSuccess()) + { + COMMON_LOGGER("Shop Connect Finished.\n"); + + s_RestoreState = nextState; + } + else + { + if (s_ConnectOnlyRetryCount++ < RETRY_MAX) + { + // エラーのためやり直す + COMMON_LOGGER_RESULT_IF_FAILED(GetShopOperationSingleResult()); + COMMON_LOGGER("Shop Connect Failed. Retrying... %d\n", s_ConnectOnlyRetryCount); + + // Unregister用のスレッドを作るとこからやり直し + s_ExecuteConnectOnly = false; + } + else + { + s_RestoreState = FAIL; + } + } + + } +} + bool CheckAndReadAPSetting(::std::vector& operationMessage) { using namespace common; @@ -910,70 +980,9 @@ void ControlState(::std::vector& operationMessage, bool& nextStep) } break; - case CONNECT_ONLY: + case SYNC_TICKET: { - // ACアダプタが必要か? - if (NeedsAcAdater()) - { - operationMessage.push_back(::std::string("Connect AC Adapter!!")); - } - - // アップデートを行う - if (!s_ExecuteConnectOnly) - { - if (ImportCountryLanguageData().IsSuccess()) - { - StartShopOperationSingle(SHOP_OPERATION_CONNECT_ONLY); - s_ExecuteConnectOnly = true; - } - else - { - s_RestoreState = FAIL; - } - } - - // 動いていることを表示 - { - PutAliveMessage(operationMessage, "Shop Connect"); - } - - if (IsShopOperationSingleFinished()) - { - FinishShopOperationSingle(); - // エラーがあったら表示する - if (GetShopOperationSingleResult().IsFailure()) - { - // APが見つからない - if (GetUpdateResult() == nn::ac::ResultNotFoundAccessPoint()) - { - COMMON_LOGGER("No Access Point Found!"); - } - } - - if (GetShopOperationSingleResult().IsSuccess()) - { - COMMON_LOGGER("Shop Connect Finished.\n"); - - s_RestoreState = DOWNLOAD_TWL; - } - else - { - if (s_ConnectOnlyRetryCount++ < RETRY_MAX) - { - // エラーのためやり直す - COMMON_LOGGER_RESULT_IF_FAILED(GetShopOperationSingleResult()); - COMMON_LOGGER("Shop Connect Failed. Retrying... %d\n", s_ConnectOnlyRetryCount); - - // Unregister用のスレッドを作るとこからやり直し - s_ExecuteConnectOnly = false; - } - else - { - s_RestoreState = FAIL; - } - } - - } + ConnectOnly(operationMessage, nextStep, DOWNLOAD_TWL); } break; @@ -1153,7 +1162,7 @@ void ControlState(::std::vector& operationMessage, bool& nextStep) s_RestoreState = FAIL; } - s_RestoreState = CONNECT_ONLY; + s_RestoreState = SYNC_TICKET; } break;