From 3317fbbbd8c0e62697a177df250e16cd1301c6b0 Mon Sep 17 00:00:00 2001 From: N2614 Date: Fri, 15 Jul 2011 02:49:38 +0000 Subject: [PATCH] =?UTF-8?q?CUP=E8=87=AA=E4=BD=93=E3=82=92=E5=AE=9F?= =?UTF-8?q?=E8=A1=8C=E3=81=97=E3=81=AA=E3=81=84=E3=82=88=E3=81=86=E3=81=AB?= =?UTF-8?q?=20CUP=E3=81=8C=E5=BF=85=E8=A6=81=E3=81=AA=E5=A0=B4=E5=90=88?= =?UTF-8?q?=E9=BB=84=E8=89=B2=E7=94=BB=E9=9D=A2=E3=81=A7=E7=B5=82=E4=BA=86?= =?UTF-8?q?=E3=81=99=E3=82=8B=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@385 385bec56-5757-e545-9c3a-d8741f4650f1 --- branches/SelfCupExecChecker/main.cpp | 87 +++++----------------------- 1 file changed, 14 insertions(+), 73 deletions(-) diff --git a/branches/SelfCupExecChecker/main.cpp b/branches/SelfCupExecChecker/main.cpp index eefb523..ea90ee3 100644 --- a/branches/SelfCupExecChecker/main.cpp +++ b/branches/SelfCupExecChecker/main.cpp @@ -114,72 +114,7 @@ namespace return s_progress[s_progressIndex]; } - nn::Result UpdateCore() - { - nn::Result result; - nn::cup::ProgressInfo info; - - /********************** アップデート*******************/ - SetTick(); - s_scrollBuffer->AppendText("Start Card Update")->Render(); - NN_UTIL_RETURN_IF_FAILED(nn::cup::CTR::DoUpdate()); - - // ステータスがStartedになるまで、プログレスは取得できない - s_scrollBuffer->AppendText(""); - do{ - s_scrollBuffer->ReplaceText(" %c Initializing", GetProgressChar())->Render(); - result = nn::cup::CTR::GetProgressInfo(&info); - NN_UTIL_RETURN_IF_FAILED(result); - nn::os::Thread::Sleep(nn::fnd::TimeSpan::FromMilliSeconds(40)); - }while(info.state==nn::cup::CTR::UPDATE_STATE_INITIALIZING); - - // 抜けた際のstateがFAILEDかどうか確認 - if(info.state==nn::cup::CTR::UPDATE_STATE_FAILED){ - NN_UTIL_RETURN_IF_FAILED(info.lastResult); - } - s_scrollBuffer->ReplaceText(" - Initialized (%lldmsec)", GetConsumedMillisec()); - - /********************* アップデート中 ******************/ - SetTick(); - s_scrollBuffer->AppendText("")->Render(); - do{ - result = nn::cup::CTR::GetProgressInfo(&info); - NN_UTIL_RETURN_IF_FAILED(result); - s_scrollBuffer->ReplaceText(" %c Title %d/%d, size %lld/%lld", - GetProgressChar(), - info.numImportedTitles, info.numTotalTitles, - info.importedSize, info.totalSize)->Render(); - nn::os::Thread::Sleep(nn::fnd::TimeSpan::FromMilliSeconds(40)); - - }while(info.state==nn::cup::CTR::UPDATE_STATE_STARTED); - // 抜けた際のstateがFAILEDかどうか確認 - if(info.state==nn::cup::CTR::UPDATE_STATE_FAILED){ - NN_UTIL_RETURN_IF_FAILED(info.lastResult); - } - s_scrollBuffer->AppendText(" - Imported (%lldmsec)", GetConsumedMillisec())->Render(); - - /***************** アップデート終了中 ******************/ - SetTick(); - s_scrollBuffer->AppendText("")->Render(); - do{ - result = nn::cup::CTR::GetProgressInfo(&info); - NN_UTIL_RETURN_IF_FAILED(result); - s_scrollBuffer->ReplaceText(" %c Update Finalizing", GetProgressChar())->Render(); - nn::os::Thread::Sleep(nn::fnd::TimeSpan::FromMilliSeconds(40)); - }while(info.state==nn::cup::CTR::UPDATE_STATE_FINALIZING); - // 抜けた際のstateがFAILEDかどうか確認 - if(info.state==nn::cup::CTR::UPDATE_STATE_FAILED){ - NN_UTIL_RETURN_IF_FAILED(info.lastResult); - } - - /******************* アップデート終了 *******************/ - s_scrollBuffer->AppendText(" - Finalized (%lldmsec)", GetConsumedMillisec())->Render(); - s_scrollBuffer->AppendText(""); - - return nn::ResultSuccess(); - } - - nn::Result UpdateSequence(bool *isHandledError) + nn::Result UpdateSequence(bool *isHandledError, bool* needUpdate) { nn::Result result; nn::Result lastResult=nn::ResultSuccess(); @@ -209,16 +144,13 @@ namespace NN_UTIL_RETURN_IF_FAILED(result); s_scrollBuffer->AppendText(" - Need Update (%lldmsec)", GetConsumedMillisec())->Render(); + *needUpdate = true; s_scrollBuffer->AppendText("")->Render(); - lastResult=UpdateCore(); - // Initializeに成功した場合のみ、再びInitializeするためにFinalizeが必要 SetTick(); s_scrollBuffer->AppendText("Finalizing Cup Library")->Render(); NN_UTIL_RETURN_IF_FAILED(nn::cup::CTR::Finalize()); - s_scrollBuffer->AppendText(" - Complete (%lldmsec)", GetConsumedMillisec())->Render(); - s_scrollBuffer->AppendText("")->Render(); return lastResult; } @@ -258,12 +190,13 @@ extern "C" void nnMain() nn::am::ProgramInfo outInfos; result = nn::am::GetProgramInfos(&outInfos, nn::fs::MEDIA_TYPE_NAND, &MMEN_PROGRAM_ID, 1); + bool needUpdate = false; if (result.IsSuccess()) { /******************** CUPの実行 *******************/ bool isHandledError = false; - result = UpdateSequence(&isHandledError); + result = UpdateSequence(&isHandledError, &needUpdate); if (isHandledError == false && result.IsFailure()) { { @@ -283,7 +216,11 @@ extern "C" void nnMain() for(;;) { s_RenderSystem.SetRenderTarget(NN_GX_DISPLAY0); - if(result.IsSuccess() || result == nn::cup::CTR::ResultUpdateNotRequired()) + if(needUpdate) + { + s_RenderSystem.SetClearColor(NN_GX_DISPLAY0, 1, 1, 0, 1); + } + else if(result.IsSuccess() || result == nn::cup::CTR::ResultUpdateNotRequired()) { s_RenderSystem.SetClearColor(NN_GX_DISPLAY0, 0, 1, 0, 1); } @@ -294,7 +231,11 @@ extern "C" void nnMain() s_RenderSystem.Clear(); s_RenderSystem.SwapBuffers(); s_RenderSystem.SetRenderTarget(NN_GX_DISPLAY1); - if(result.IsSuccess() || result == nn::cup::CTR::ResultUpdateNotRequired()) + if(needUpdate) + { + s_RenderSystem.SetClearColor(NN_GX_DISPLAY0, 1, 1, 0, 1); + } + else if(result.IsSuccess() || result == nn::cup::CTR::ResultUpdateNotRequired()) { s_RenderSystem.SetClearColor(NN_GX_DISPLAY1, 0, 1, 0, 1); }