ctr_Repair/trunk/ConsoleDataMigration/sources/ConsoleRestore/PreorderTitleRestorer.h
N2614 344cd574a6 暗号式予約販売タイトルの修理ロジックを追加
タイトルタグの設定のテストは現状失敗するので無効化

git-svn-id: file:///Volumes/Transfer/gigaleak_20231201/2020-05-23%20-%20ctr.7z%20+%20svn_v1.068.zip/ctr/svn/ctr_Repair@842 385bec56-5757-e545-9c3a-d8741f4650f1
2015-03-19 02:49:26 +00:00

65 lines
2.8 KiB
C++

/*---------------------------------------------------------------------------*
Project: Horizon
File: PreorderTitleRestorer.h
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$
*---------------------------------------------------------------------------*/
#ifndef SOURCES_CONSOLERESTORE_PREORDERTITLERESTORER_H_
#define SOURCES_CONSOLERESTORE_PREORDERTITLERESTORER_H_
#include <string>
#include <map>
#include <vector>
#include <nn/types.h>
#include <nn/fnd.h>
#include <nn/cfg.h>
#include <nn/CTR/CTR_ProgramId.h>
namespace ConsoleRestore
{
class PreorderTitleRestorer
{
public:
PreorderTitleRestorer();
virtual ~PreorderTitleRestorer();
//! @brief @予約販売タイトルの修復を行います
//! @param[in] list[] Personalized eTicketで権利を持っているタイトルの配列
//! @param[in] size listのサイズ
//! @param[in] country 国コード。国コードが取得できない場合はCFG_COUNTRY_UNDEFINEDを渡してください
//! @param[in] region リージョンコード
nn::Result Execute(nn::ProgramId list[], size_t size, nn::cfg::CTR::CfgCountryCode country, nn::cfg::CTR::CfgRegionCode region);
private:
nn::Result GetExternalSeedInfo(
nn::cfg::CTR::CfgCountryCode* deliveredCountry,
std::string& xml,
nn::ProgramId programId,
nn::cfg::CTR::CfgCountryCode country,
nn::cfg::CTR::CfgRegionCode region);
nn::Result GetNsUid(std::string& nsUid, nn::ProgramId programId);
nn::Result GetEcInfo(std::string& ecInfo, std::string nsUid, nn::cfg::CfgCountryCode country);
nn::Result SetExternalSeedOrPlayableDate(nn::ProgramId programId, nn::cfg::CTR::CfgCountryCode country, std::string& xml);
nn::Result GetEcInfoAndCountryRepeatedly(std::string& ecInfo, nn::cfg::CfgCountryCode* deliveredCountry, std::string nsUid, nn::cfg::CTR::CfgRegionCode region);
bool IsLocked(std::string xml);
bool HasExternal_Seed(std::string xml);
nn::Result SetExternalKey(nn::ProgramId programId, nn::cfg::CTR::CfgCountryCode country);
void SetTitleTag(nn::ProgramId programId, nn::cfg::CTR::CfgCountryCode country, std::string xml);
bool IsValidCountry(nn::cfg::CfgCountryCode countryCode, nn::cfg::CfgRegionCode region);
std::map<nn::cfg::CTR::CfgCountryCode, bool> m_SuccessfulCountryMap;
};
} /* namespace ConsoleRestore */
#endif /* SOURCES_CONSOLERESTORE_PREORDERTITLERESTORER_H_ */