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@607 385bec56-5757-e545-9c3a-d8741f4650f1
61 lines
2.7 KiB
C++
61 lines
2.7 KiB
C++
/*---------------------------------------------------------------------------*
|
||
Project: Horizon
|
||
File: PreinstallImporter.h
|
||
|
||
Copyright 2009-2011 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 PREINSTALLIMPORTER_H_
|
||
#define PREINSTALLIMPORTER_H_
|
||
|
||
#include <nn.h>
|
||
#include <nn/xml/simple/xml_simple_SimpleXmlParser.h>
|
||
#include "BgsCommunicator.h"
|
||
|
||
namespace ConsoleRestore
|
||
{
|
||
|
||
//! @brief プリインストールをSDカードに書き込むためのクラスです
|
||
class PreinstallImporter
|
||
{
|
||
public:
|
||
PreinstallImporter();
|
||
virtual ~PreinstallImporter();
|
||
|
||
//! @brief 外部タイトルデータベースを作成します
|
||
nn::Result SetupSd(bool* isAlreadyAvailable);
|
||
|
||
//! @brief ダウンロードするプリインストールタイトルをBGS経由でリストアップする
|
||
//! @param[out] list プリインストールタイトルの配列。十分に大きいものを渡すこと。
|
||
//! @param[out] num プリインストールタイトルの数
|
||
//! @param[in] deviceId デバイスID
|
||
//! @param[in] serialNo シリアルナンバー
|
||
nn::Result ListTitles(nn::ProgramId* list, size_t* num, bit64 deviceId, u8* serialNo);
|
||
|
||
private:
|
||
//! @brief HTMLレスポンスを受信してXMLデータを解析します
|
||
nn::Result GetHtmlBodyAndParseXmlData(BgsCommunicator& comm, nn::ProgramId* list, size_t* num);
|
||
|
||
//! @brief 受信したXMLデータを解析してタイトルIDリストを設定します
|
||
//! @return プリインストールアプリが存在しない場合、(Level=Status, Summary=NotFound, Module=Application, Description=NotFound)<BR/>
|
||
//! のResultを返します
|
||
nn::Result ParseXmlData(void* buf, nn::ProgramId* list, size_t* num);
|
||
|
||
//! @brief SimpleXmlパーサの解析をTitleIdノードまで進めます
|
||
nn::Result SetNodetoTitleIds(nn::xml::simple::SimpleXmlParser& parser, std::string& xmlData, const nn::xml::simple::SimpleXmlParser::Node** pNode);
|
||
|
||
//! @brief カンマ区切りのプログラムIDのリストを分割して出力用のリストに設定します
|
||
void SplitTextAndSetupList(nn::ProgramId* list, size_t* num, char* text);
|
||
};
|
||
|
||
} /* namespace ConsoleRestore */
|
||
#endif /* PREINSTALLIMPORTER_H_ */
|