TwlIPL/build/systemMenu_tools/NandInitializerRed/ARM9.TWL/src/process_topmenu.c
aoki_ryoma a9f5ce559b (NandInitializer)オートプロセスでのファイルエントリの順番が、生産工程に準じたものになるように、実行プロセスを変更。
ERRORLOG_Init()を呼び出してsysmenu.logを生成するようにした。

git-svn-id: file:///Users/lillianskinner/Downloads/platinum/twl/TwlIPL/trunk@2763 b08762b0-b915-fc4b-9d8c-17b2551a87ff
2009-03-11 07:05:24 +00:00

256 lines
7.2 KiB
C
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

/*---------------------------------------------------------------------------*
Project: TwlSDK - NandInitializer
File: process_topmenu.c
Copyright 2008 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.
$Date:: $
$Rev$
$Author$
*---------------------------------------------------------------------------*/
#include <twl.h>
#include "kami_font.h"
#include "process_topmenu.h"
#include "process_format.h"
#include "process_hw_info.h"
#include "process_import.h"
#include "process_nandfirm.h"
#include "process_norfirm.h"
#include "process_auto.h"
#include "process_fade.h"
#include "process_wireless_setting.h"
#include "process_write_data.h"
#include "process_mcu.h"
#include "cursor.h"
#include "keypad.h"
/*---------------------------------------------------------------------------*
Œ^’è‹`
*---------------------------------------------------------------------------*/
enum {
MENU_FORMAT = 0,
MENU_HARDWARE_INFO,
#ifdef USE_WIRELESS_FORCE_DISABLE_SETTING
MENU_WIRELESS_SETTING,
#endif // USE_WIRELESS_FORCE_DISABLE_SETTING
#ifdef USE_WRITE_VARIOUS_DATA
MENU_WRITE_DATA,
#endif // USE_WRITE_VARIOUS_DATA
#ifndef NAND_INITIALIZER_LIMITED_MODE
MENU_IMPORT_TAD,
MENU_IMPORT_NANDFIRM,
MENU_IMPORT_NORFIRM,
MENU_WRITE_MCU_DATA,
#endif // NAND_INITIALIZER_LIMITED_MODE
NUM_OF_MENU_SELECT
};
typedef struct _MenuAndColor
{
char* menu_name;
u8 color;
} MenuAndColor;
/*---------------------------------------------------------------------------*
è<E28099>è`
*---------------------------------------------------------------------------*/
#define DOT_OF_MENU_SPACE 16
#define CURSOR_ORIGIN_X 32
#define CURSOR_ORIGIN_Y 56
#define MENU_TOP_LINE 7
#define CHAR_OF_MENU_SPACE 2
static const MenuAndColor sMenuArray[] =
{
{" FORMAT NAND ", BG_COLOR_BLUE },
{" WRITE HARDWARE INFO ", BG_COLOR_PURPLE },
#ifdef USE_WIRELESS_FORCE_DISABLE_SETTING
{" WIRELESS FORCE SETTING ", BG_COLOR_YELLOW },
#endif // USE_WIRELESS_FORCE_DISABLE_SETTING
#ifdef USE_WRITE_VARIOUS_DATA
{" WRITE VARIOUS DATA ", BG_COLOR_BROWN },
#endif // USE_WRITE_VARIOUS_DATA
#ifndef NAND_INITIALIZER_LIMITED_MODE
{" IMPORT TAD FROM SD ", BG_COLOR_PINK },
{" IMPORT NANDFIRM FROM SD", BG_COLOR_GREEN },
{" IMPORT NORFIRM FROM SD", BG_COLOR_VIOLET },
{" WRITE MCU DATA ", BG_COLOR_GRAY }
#endif // NAND_INITIALIZER_LIMITED_MODE
};
/*---------------------------------------------------------------------------*
“à•”•Ï<E280A2>è`
*---------------------------------------------------------------------------*/
static s8 sMenuSelectNo;
/*---------------------------------------------------------------------------*
“à•”ŠÖ<C5A0>è`
*---------------------------------------------------------------------------*/
/*---------------------------------------------------------------------------*
ƒvƒ<76>ƒZƒXŠÖ<C5A0>è`
*---------------------------------------------------------------------------*/
/*---------------------------------------------------------------------------*
Name: Top Menu ƒvƒ<76>ƒZƒXO
Description:
Arguments: None.
Returns: next sequence
*---------------------------------------------------------------------------*/
void* TopmenuProcess0(void)
{
int i;
// •¶Žš—ñSƒNƒŠƒA
kamiFontClear();
// ƒo<C692>[ƒWƒ‡ƒ“•\ަ
#ifndef NAND_INITIALIZER_LIMITED_MODE
kamiFontPrintf(7, 2, 0, "Nand Initializer RED");
#else
kamiFontPrintf(8, 2, 0, "Nand Initializer");
#endif
kamiFontPrintf(9, 4, 8, "<%s>", __DATE__);
// ”wŒiSƒNƒŠƒA
for (i=0;i<24;i++)
{
kamiFontFillChar( i, BG_COLOR_TRANS, BG_COLOR_TRANS );
}
for (i=0;i<NUM_OF_MENU_SELECT;i++)
{
// ƒ<>ƒjƒ…<C692>[•¶Žš—ñ•`‰æ
kamiFontPrintf(3, (s16)(MENU_TOP_LINE+CHAR_OF_MENU_SPACE*i), FONT_COLOR_BLACK, sMenuArray[i].menu_name);
// ”wŒi<C592>Ýè
kamiFontFillChar( MENU_TOP_LINE+CHAR_OF_MENU_SPACE*i-1, BG_COLOR_NONE, sMenuArray[i].color );
kamiFontFillChar( MENU_TOP_LINE+CHAR_OF_MENU_SPACE*i, sMenuArray[i].color, sMenuArray[i].color );
kamiFontFillChar( MENU_TOP_LINE+CHAR_OF_MENU_SPACE*i+1, sMenuArray[i].color, BG_COLOR_NONE );
}
// ƒJ<C692>[ƒ\ƒ<C692>ÁŽ
SetCursorPos((u16)200, (u16)200);
FADE_IN_RETURN(TopmenuProcess1);
}
/*---------------------------------------------------------------------------*
Name: Top Menu ƒvƒ<76>ƒZƒXP
Description:
Arguments: None.
Returns: next sequence
*---------------------------------------------------------------------------*/
void* TopmenuProcess1(void)
{
// Iðƒ<C3B0>ƒjƒ…<C692>[Ì•Ï<E280A2>X
if ( kamiPadIsRepeatTrigger(PAD_KEY_UP) )
{
if (--sMenuSelectNo < 0) sMenuSelectNo = NUM_OF_MENU_SELECT -1;
}
else if ( kamiPadIsRepeatTrigger(PAD_KEY_DOWN) )
{
if (++sMenuSelectNo >= NUM_OF_MENU_SELECT) sMenuSelectNo = 0;
}
// ƒJ<C692>[ƒ\ƒ”zu
SetCursorPos((u16)CURSOR_ORIGIN_X, (u16)(CURSOR_ORIGIN_Y + sMenuSelectNo * DOT_OF_MENU_SPACE));
// Œˆ’è
if (kamiPadIsTrigger(PAD_BUTTON_A))
{
return TopmenuProcess2;
}
#ifdef USE_FOR_NIGHTLY_AUTO_TEST
FADE_OUT_RETURN( FormatProcess0 );
#endif //USE_FOR_NIGHTLY_AUTO_TEST
#ifndef NAND_INITIALIZER_LIMITED_MODE
#ifdef AUTO_FORMAT_MODE
FADE_OUT_RETURN( AutoProcess0 );
#endif
// L&R“¯Žž‰ŸµÅƒI<C692>[ƒgŽÀ<C5BD>s<EFBFBD>I
if (kamiPadIsPress(PAD_BUTTON_L) && kamiPadIsPress(PAD_BUTTON_R))
{
FADE_OUT_RETURN( AutoProcess0 );
}
#endif // NAND_INITIALIZER_LIMITED_MODE
return TopmenuProcess1;
}
/*---------------------------------------------------------------------------*
Name: Top Menu ƒvƒ<76>ƒZƒXQ
Description:
Arguments: None.
Returns: next sequence
*---------------------------------------------------------------------------*/
void* TopmenuProcess2(void)
{
#ifndef TWL_CAPTURE_VERSION
switch ( sMenuSelectNo )
{
case MENU_FORMAT:
FADE_OUT_RETURN( FormatProcess0 );
case MENU_HARDWARE_INFO:
FADE_OUT_RETURN( HWInfoProcess0 );
#ifdef USE_WIRELESS_FORCE_DISABLE_SETTING
case MENU_WIRELESS_SETTING:
FADE_OUT_RETURN( WirelessSettingProcess0 );
#endif // USE_WIRELESS_FORCE_DISABLE_SETTING
#ifdef USE_WRITE_VARIOUS_DATA
case MENU_WRITE_DATA:
FADE_OUT_RETURN( WriteDataProcessPre0 );
#endif // USE_WRITE_VARIOUS_DATA
#ifndef NAND_INITIALIZER_LIMITED_MODE
case MENU_IMPORT_TAD:
FADE_OUT_RETURN( ImportProcess0 );
case MENU_IMPORT_NANDFIRM:
FADE_OUT_RETURN( NandfirmProcess0 );
case MENU_IMPORT_NORFIRM:
FADE_OUT_RETURN( NorfirmProcess0 );
case MENU_WRITE_MCU_DATA:
FADE_OUT_RETURN( mcuProcess0 );
#endif // NAND_INITIALIZER_LIMITED_MODE
}
#endif // TWL_CAPTURE_VERSION
return TopmenuProcess1;
}
/*---------------------------------------------------------------------------*
<20>ˆ<CB86>ŠÖ<C5A0>è`
*---------------------------------------------------------------------------*/