/*---------------------------------------------------------------------------* Project: Horizon File: Contoroller.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 CONTOROLLER_H_ #define CONTOROLLER_H_ #include #include #include #include "HardwareStateManager.h" #include "OperationMessage.h" namespace ConsoleRestore { typedef enum RestoreMode { RESTORE_MODE_RESTORE, RESTORE_MODE_NUP_ONLY, RESTORE_MODE_GET_IVS, RESTORE_MODE_CHECK_SD, RESTORE_MODE_DOWNLOAD_PREINSTALL } RestoreMode; // ネットワーク処理のリトライ回数の最大値 const u32 RETRY_MAX = 3; // 状態遷移を管理する // manager ハードウェア情報を取得するためのラッパ // operationMessage 操作情報として表示したい文字列 // nextStep 次の状態に遷移してもよいかどうか // operateBmsDone BMS操作を完了したかどうか // forcePreinstall ユーザSDが初期化済みだが、プリインストールアプリを書き込むかどうか // unregister アカウント削除を開始しても良いか void ControlState(common::HardwareStateManager& manager, common::OperationMessage& operationMessage, bool& nextStep, bool operateBmsDone, bool forcePreinstall, bool unregister); // リストア処理中かどうか bool InProgress(); // リストアが完了したかどうか bool IsRestoreSucceeded(); // リストアが失敗したかどうか bool IsRestoreFailed(); // 書き込みスレッドの進捗を返す u32 GetProgress(); // SDカードが抜き出されたときに実行したい関数 void OnSdEjected(); // SDカードが挿入されたときに実行したい関数 void OnSdInserted(); // 状態を初期化する void InitializeState(); // リストア状態を取得する RestoreMode GetRestoreMode(); } #endif /* CONTOROLLER_H_ */