ctr_Repair/trunk/ConsoleDataMigration/sources/ConsoleRestore/Importer.h
N2614 a1f61d287f データ移行可能本体でデバイスIDファイルが読み取れないときにエラーとする
git-svn-id: file:///Volumes/Transfer/gigaleak_20231201/2020-05-23%20-%20ctr.7z%20+%20svn_v1.068.zip/ctr/svn/ctr_Repair@754 385bec56-5757-e545-9c3a-d8741f4650f1
2013-10-23 01:35:08 +00:00

177 lines
5.6 KiB
C++

/*---------------------------------------------------------------------------*
Project: Horizon
File: Importer.h
Copyright 2009 Nintendo. 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$
*---------------------------------------------------------------------------*/
#ifndef IMPORTER_H_
#define IMPORTER_H_
#include <nn.h>
#include "FileName.h"
#include <nn/ac/CTR/private/ac_NetworkSetting.h>
#include <string>
#include "HardwareStateManager.h"
namespace ConsoleRestore
{
// SDカードのデバイスIDファイルが存在するか
nn::Result ExistsDeviceIdFile();
// SDカードのデバイスIDファイルと本体のデバイスIDが一致しているかどうか
bool EqualsDeviceIdFileandDeviceId(common::HardwareStateManager& manager);
// SDカードのリージョンと本体のリージョンが一致しているかどうか
nn::Result EqualsRegionDataandRegion();
// シリアルナンバーを取得する
nn::Result ReadSerialNumber(u8* serial);
// 出力ファイル一覧を読み込む
nn::Result SetupVersionAndFileList();
// インポート用のスレッドを終了する
void FinalizeImportThread();
// インポート用のスレッドが終了したかどうか
bool IsImportThreadFinished();
// 新たにスレッドを立て、TWLサウンド領域をインポートする
void ImportTwlSoundData();
// 新たにスレッドを立て、TWL-NAND領域をインポートする
void ImportTwlSaveData();
// 新たにスレッドを立て、TWL写真領域をインポートする
void ImportTwlPhotoData();
// 本体固有データを読み込む
// 新たにスレッドを立て、CTRセーブデータ領域をインポートする
nn::Result ImportData();
// インポート完了ファイルを作る
void CreateWriteFinishedFile();
// ネットワークアップデート完了ファイルを作る
void CreateUpdateFinishedFile();
// 本体初期化完了ファイルを作る
void CreateConsoleInitializedFile();
// RTC書き込み完了ファイルを作る
void CreateRtcSyncFinishedFile();
// IVSダウンロード完了ファイルを作る
void CreateDownloadIvsFinishedFile();
// アカウント削除完了ファイルを作る
void CreateDeleteAccountFinishedFile();
// アカウント移行完了ファイルを作る
void CreateTransferAccountFinishedFile();
// インポートスレッドの進捗を取得する
u32 GetImportProgress();
// インポートスレッドの進捗を取得する
u32 GetImportProgressTwlNand();
// NANDのごみを削除する
nn::Result Cleanup();
// ファイルが存在するかどうか確認するためのテーブル
const wchar_t* const CHECK_FILENAME_TABLE[] =
{
common::UPDATE_CHECK_PATHNAME,
common::INITIALIZED_CHECK_PATHNAME,
common::WRITE_FINISHED_CHECK_PATHNAME,
common::RTC_SYNC_CHECK_PATHNAME,
common::DOWNLOAD_IVS_CHECK_PATHNAME,
common::DELETE_ACCOUNT_CHECK_PATHNAME,
common::TRANSFER_ACCOUNT_CHECK_PATHNAME
};
// ファイル存在確認をクリアする
void DeleteAllCheckFiles();
struct TimeZone
{
u32 hour;
u32 minutes;
bool isMinus;
NN_PADDING3;
};
// ネットワーク設定ファイルを読み込む
bool ReadSetting(bool* nupOnly, bool* getIvs, bool* checkSd, bool* skipNup, bool* dlPreinstall);
// ネットワーク設定ファイルからNTPサーバの名前を取得する
// 先にReadSettingが成功している必要がある
char* GetNtpServerName();
// ネットワーク設定ファイルからタイムゾーンを取得する
// 先にReadSettingが成功している必要がある
TimeZone GetTimeZone();
// インターネット設定をユーザの設定に戻す
void RestoreCurrentInternetSetting();
struct CheckedNetworkSetting
{
nn::ac::CTR::NetworkSetting setting;
bool isValid;
NN_PADDING3;
};
// SDカードから読み込んだネットワーク設定ファイルから生成した
// インターネット設定へのポインタを取得する
// インターネット設定は内部のバッファに読み込む
CheckedNetworkSetting* GetTempNetworkSetting();
// 国設定を読み込む
nn::Result ImportCountryLanguageData();
// RTCを読み込む
nn::Result ImportMcuRtc(common::HardwareStateManager& manager);
// TWL写真領域を初期化してから本体初期化を行う
bool InitializeFileSystem();
// SDカードのファイルと本体情報の比較結果をクリアする
void ClearFileReadResult();
// プレイ履歴を読み込みます。ptmのセーブデータ移行後に呼び出す必要があります
void ImportPlayHistory();
// cfgのハードウェア固有領域をcal値で初期化します
nn::Result InitializeHardwareDependentSetting();
// SDカード上のバージョン情報を読みます
nn::Result ReadVersionData();
// SDカードのNintendo 3DS以下ににIVSと一致するディレクトリがあるかどうか
bool ExistsIvsDirectory(std::string& ivsRoot);
// SDカードのIVSデータを書き込む
bool ImportIvsData();
// 書き込みが成功したかどうか
bool IsImportSucceeded();
void RepairSimpleAddress();
}
#endif /* IMPORTER_H_ */