mirror of
https://github.com/rvtr/ctr_Repair.git
synced 2025-10-31 13:51:08 -04:00
git-svn-id: file:///Volumes/Transfer/gigaleak_20231201/2020-05-23%20-%20ctr.7z%20+%20svn_v1.068.zip/ctr/svn/ctr_Repair@851 385bec56-5757-e545-9c3a-d8741f4650f1
96 lines
2.7 KiB
C++
96 lines
2.7 KiB
C++
/*---------------------------------------------------------------------------*
|
|
Project: Horizon
|
|
File: PreorderTitleRestoreManager.cpp
|
|
|
|
Copyright (C)2015 Nintendo Co., Ltd. All rights reserved.
|
|
|
|
These coded instructions, statements, and computer programs contain
|
|
proprietary information of Nintendo of America Inc. and/or Nintendo
|
|
Company Ltd., and are protected by Federal copyright law. They may
|
|
not be disclosed to third parties or copied or duplicated in any form,
|
|
in whole or in part, without the prior written consent of Nintendo.
|
|
|
|
$Rev$
|
|
*---------------------------------------------------------------------------*/
|
|
#include "PreorderTitleRestorerManager.h"
|
|
#include "HeapManager.h"
|
|
|
|
namespace ConsoleRestore
|
|
{
|
|
|
|
const size_t PreorderTitleRestorerManager::STACK_SIZE;
|
|
nn::Result PreorderTitleRestorerManager::s_Result;
|
|
nn::os::Thread PreorderTitleRestorerManager::s_Thread;
|
|
nn::os::StackBuffer<PreorderTitleRestorerManager::STACK_SIZE> PreorderTitleRestorerManager::s_ThreadStack;
|
|
PreorderTitleRestorer* PreorderTitleRestorerManager::m_Restorer = NULL;
|
|
nn::ProgramId* PreorderTitleRestorerManager::s_List;
|
|
size_t PreorderTitleRestorerManager::s_Size;
|
|
nn::cfg::CTR::CfgCountryCode PreorderTitleRestorerManager::s_Country;
|
|
nn::cfg::CTR::CfgRegionCode PreorderTitleRestorerManager::s_Region;
|
|
|
|
|
|
|
|
PreorderTitleRestorerManager::PreorderTitleRestorerManager()
|
|
{
|
|
// TODO 自動生成されたコンストラクター・スタブ
|
|
|
|
}
|
|
|
|
PreorderTitleRestorerManager::~PreorderTitleRestorerManager()
|
|
{
|
|
// TODO Auto-generated destructor stub
|
|
}
|
|
|
|
void PreorderTitleRestorerManager::Start(nn::ProgramId list[], size_t size, nn::cfg::CTR::CfgCountryCode country, nn::cfg::CTR::CfgRegionCode region)
|
|
{
|
|
s_List = list;
|
|
s_Size = size;
|
|
s_Country = country;
|
|
s_Region = region;
|
|
s_Thread.Start(ThreadFunc, s_ThreadStack);
|
|
}
|
|
|
|
bool PreorderTitleRestorerManager::IsFinished()
|
|
{
|
|
return s_Thread.IsValid() && !s_Thread.IsAlive();
|
|
}
|
|
|
|
nn::Result PreorderTitleRestorerManager::GetResult()
|
|
{
|
|
return s_Result;
|
|
}
|
|
|
|
void PreorderTitleRestorerManager::End()
|
|
{
|
|
if(s_Thread.IsValid())
|
|
{
|
|
s_Thread.Join();
|
|
s_Thread.Finalize();
|
|
if(m_Restorer)
|
|
{
|
|
delete m_Restorer;
|
|
}
|
|
}
|
|
}
|
|
|
|
u64 PreorderTitleRestorerManager::GetProgress()
|
|
{
|
|
if(m_Restorer)
|
|
{
|
|
return m_Restorer->GetProgress();
|
|
}
|
|
else
|
|
{
|
|
return 0;
|
|
}
|
|
}
|
|
|
|
void PreorderTitleRestorerManager::ThreadFunc()
|
|
{
|
|
m_Restorer = new PreorderTitleRestorer;
|
|
s_Result = m_Restorer->Execute(s_List, s_Size, s_Country, s_Region);
|
|
|
|
}
|
|
|
|
} /* namespace ConsoleRestore */
|