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@634 385bec56-5757-e545-9c3a-d8741f4650f1
98 lines
3.2 KiB
C++
98 lines
3.2 KiB
C++
/*---------------------------------------------------------------------------*
|
|
Project: Horizon
|
|
File: TitleDownloader.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 TITLEDOWNLOADER_H_
|
|
#define TITLEDOWNLOADER_H_
|
|
|
|
#include <nn.h>
|
|
|
|
namespace ConsoleRestore
|
|
{
|
|
|
|
// 新たにスレッドを立て、TWLタイトルのダウンロードを開始する
|
|
void StartTwlTitleDownload();
|
|
|
|
//! @brief プリインストールタイトルをSDカードにインポート可能かどうかサイズを確認し、<BR/>
|
|
//! 可能であればSDカードをインポート可能状態にします
|
|
//! @param[in] serialNo 強制的にプリインストールを書き込むかどうか
|
|
//! @return 正常に初期化できたかどうか
|
|
void StartPreparePreinstallTitleDownload(bool forcePreinstall);
|
|
|
|
//! @brief 新たにスレッドを立て、プリインストールタイトルのダウンロードを開始します <BR/>
|
|
//! SDカードはインポート可能な状態にしておく必要があります。
|
|
void StartPreinstallTitleDownload();
|
|
|
|
|
|
// プリインストール情報取得に必要なパラメータをまとめた構造体
|
|
struct PreinstallListupParam
|
|
{
|
|
bool forcePreinstall;
|
|
};
|
|
|
|
//! @brief ダウンロードするTWLタイトルをSDカードからリストアップする
|
|
nn::Result ListUpTwlTitles(nn::ProgramId* list, size_t* num);
|
|
|
|
// タイトルのダウンロードスレッドが終了したかどうか
|
|
bool IsDownloadTitleFinished();
|
|
|
|
// タイトルのダウンロードスレッドが成功したかどうか
|
|
bool DownloadTitleSucceeded();
|
|
|
|
// タイトルのダウンロード結果を取得する
|
|
nn::Result GetTitleDownloadResult();
|
|
|
|
// タイトルのダウンロードスレッドを終了する
|
|
void FinalizeTitleDownload();
|
|
|
|
// タイトルダウンロードの進捗を取得する
|
|
u32 GetTitleDownloadProgress();
|
|
|
|
// ショップからタイトルをダウンロードするためのクラス
|
|
class TitleDownloader
|
|
{
|
|
public:
|
|
TitleDownloader();
|
|
virtual ~TitleDownloader();
|
|
|
|
//! @brief タイトルリストを設定する
|
|
void SetupTitleList(nn::ProgramId* list, size_t num, u32 index);
|
|
|
|
//! @brief タイトルをダウンロードするのに必要なサイズを計算します
|
|
void CalculateRequiredSize(s64* requiredSize);
|
|
|
|
//! @brief ダウンロードが完了したタイトルの数を取得します
|
|
u32 GetFinishedTitleNum();
|
|
|
|
// タイトルのダウンロードを開始する
|
|
void Start();
|
|
|
|
NN_PADDING4;
|
|
static nn::Result m_Result;
|
|
|
|
private:
|
|
|
|
static const size_t IMPORTABLE_TITLE_MAX = 256;
|
|
|
|
nn::ProgramID m_ProgramIdList[IMPORTABLE_TITLE_MAX];
|
|
u32 m_TiteNum;
|
|
u32 m_FinishedTitleNum;
|
|
|
|
|
|
};
|
|
|
|
}
|
|
|
|
#endif /* TITLEDOWNLOADER_H_ */
|