リージョン設定の追加

リージョン設定に伴う言語設定関係連動の実装

git-svn-id: file:///Users/lillianskinner/Downloads/platinum/twl/TwlIPL/trunk@233 b08762b0-b915-fc4b-9d8c-17b2551a87ff
This commit is contained in:
yoshida_teruhisa 2007-11-21 02:06:10 +00:00
parent 2c4d4a179c
commit 16b4e815d0
5 changed files with 92 additions and 21 deletions

View File

@ -36,7 +36,7 @@ MISC_DIR = ../../misc
BG_DIR = ../../data BG_DIR = ../../data
SRCS = main.c MachineSetting.c \ SRCS = main.c MachineSetting.c \
setRTC.c selectLanguage.c calibrationTP.c setOwnerInfo.c \ setRTC.c selectLanguage.c calibrationTP.c setOwnerInfo.c selectRegion.c \
$(MISC_DIR)/src/misc.c $(MISC_DIR)/src/cmn.c \ $(MISC_DIR)/src/misc.c $(MISC_DIR)/src/cmn.c \
$(BG_DIR)/BGData_MachineSettings.c $(BG_DIR)/BGData_MachineSettings.c

View File

@ -33,7 +33,7 @@
#define OK_BUTTON_BOTTOM_Y ( OK_BUTTON_TOP_Y + 2 * 8 ) #define OK_BUTTON_BOTTOM_Y ( OK_BUTTON_TOP_Y + 2 * 8 )
#define SETTING_MENU_ELEMENT_NUM 4 // メインメニューの項目数 #define SETTING_MENU_ELEMENT_NUM 5 // メインメニューの項目数
// extern data------------------------------------------ // extern data------------------------------------------
@ -66,6 +66,8 @@ static const u16 *const s_pStrSettingElemTbl[ SETTING_MENU_ELEMENT_NUM ][ TWL_LA
(const u16 *)L"LANGUAGE(G)", (const u16 *)L"LANGUAGE(G)",
(const u16 *)L"LANGUAGE(I)", (const u16 *)L"LANGUAGE(I)",
(const u16 *)L"LANGUAGE(S)", (const u16 *)L"LANGUAGE(S)",
(const u16 *)L"LANGUAGE(C)",
(const u16 *)L"LANGUAGE(K)",
}, },
{ {
(const u16 *)L"日付 & 時刻", (const u16 *)L"日付 & 時刻",
@ -74,6 +76,8 @@ static const u16 *const s_pStrSettingElemTbl[ SETTING_MENU_ELEMENT_NUM ][ TWL_LA
(const u16 *)L"DATE & TIME(G)", (const u16 *)L"DATE & TIME(G)",
(const u16 *)L"DATE & TIME(I)", (const u16 *)L"DATE & TIME(I)",
(const u16 *)L"DATE & TIME(S)", (const u16 *)L"DATE & TIME(S)",
(const u16 *)L"DATE & TIME(C)",
(const u16 *)L"DATE & TIME(K)",
}, },
{ {
(const u16 *)L"ユーザー情報", (const u16 *)L"ユーザー情報",
@ -82,6 +86,8 @@ static const u16 *const s_pStrSettingElemTbl[ SETTING_MENU_ELEMENT_NUM ][ TWL_LA
(const u16 *)L"USER INFORMATION(G)", (const u16 *)L"USER INFORMATION(G)",
(const u16 *)L"USER INFORMATION(I)", (const u16 *)L"USER INFORMATION(I)",
(const u16 *)L"USER INFORMATION(S)", (const u16 *)L"USER INFORMATION(S)",
(const u16 *)L"USER INFORMATION(C)",
(const u16 *)L"USER INFORMATION(K)",
}, },
{ {
(const u16 *)L"タッチパネル補正", (const u16 *)L"タッチパネル補正",
@ -90,6 +96,18 @@ static const u16 *const s_pStrSettingElemTbl[ SETTING_MENU_ELEMENT_NUM ][ TWL_LA
(const u16 *)L"TOUCH PANEL(G)", (const u16 *)L"TOUCH PANEL(G)",
(const u16 *)L"TOUCH PANEL(I)", (const u16 *)L"TOUCH PANEL(I)",
(const u16 *)L"TOUCH PANEL(S)", (const u16 *)L"TOUCH PANEL(S)",
(const u16 *)L"TOUCH PANEL(C)",
(const u16 *)L"TOUCH PANEL(K)",
},
{
(const u16 *)L"リージョン設定",
(const u16 *)L"REGION",
(const u16 *)L"REGION(F)",
(const u16 *)L"REGION(G)",
(const u16 *)L"REGION(I)",
(const u16 *)L"REGION(S)",
(const u16 *)L"REGION(C)",
(const u16 *)L"REGION(K)",
}, },
}; };
@ -98,6 +116,7 @@ static MenuPos s_settingPos[] = {
{ TRUE, 4 * 8, 10 * 8 }, { TRUE, 4 * 8, 10 * 8 },
{ TRUE, 4 * 8, 12 * 8 }, { TRUE, 4 * 8, 12 * 8 },
{ TRUE, 4 * 8, 14 * 8 }, { TRUE, 4 * 8, 14 * 8 },
{ TRUE, 4 * 8, 16 * 8 },
}; };
@ -201,6 +220,9 @@ int MachineSettingMain( void )
TP_CalibrationInit(); TP_CalibrationInit();
g_pNowProcess = TP_CalibrationMain; g_pNowProcess = TP_CalibrationMain;
break; break;
case 4:
SelectRegionInit();
g_pNowProcess = SelectRegionMain;
} }
} }
} }

View File

@ -63,6 +63,8 @@ extern void SelectLanguageInit( void );
extern int SelectLanguageMain( void ); extern int SelectLanguageMain( void );
extern void TP_CalibrationInit( void ); extern void TP_CalibrationInit( void );
extern int TP_CalibrationMain( void ); extern int TP_CalibrationMain( void );
extern void SelectRegionInit( void );
extern int SelectRegionMain( void );
extern void DrawOKCancelButton( void ); extern void DrawOKCancelButton( void );
extern void CheckOKCancelButton(BOOL *tp_ok, BOOL *tp_cancel); extern void CheckOKCancelButton(BOOL *tp_ok, BOOL *tp_cancel);

View File

@ -32,29 +32,47 @@
// global variable ------------------------------------- // global variable -------------------------------------
// static variable ------------------------------------- // static variable -------------------------------------
static TWLLangCode s_langCode; // Œ¾ŒêƒR<C692>[ƒh static int s_lang; // 言語選択肢の何番目を選択しているか
static TWLRegion s_regionCode; // リージョンコード
static const u16* s_pStrLanguage[TWL_LANG_CODE_MAX];
static TWLLangCode s_langCodeList[TWL_LANG_CODE_MAX];
// const data ----------------------------------------- // const data -----------------------------------------
static const u16 *const s_pStrLanguage[] = { static const u16 region_lang_Mapping[TWL_REGION_MAX] =
{
TWL_LANG_BITMAP_JAPAN,
TWL_LANG_BITMAP_AMERICA,
TWL_LANG_BITMAP_EUROPE,
TWL_LANG_BITMAP_AUSTRALIA,
TWL_LANG_BITMAP_CHINA,
TWL_LANG_BITMAP_KOREA
};
static const u16 *const s_pStrLanguageData[TWL_LANG_CODE_MAX] = {
(const u16 *)L"日本語", (const u16 *)L"日本語",
(const u16 *)L"English ", (const u16 *)L"English ",
(const u16 *)L"Francais", (const u16 *)L"Francais",
(const u16 *)L"Deutsch ", (const u16 *)L"Deutsch ",
(const u16 *)L"Italiano", (const u16 *)L"Italiano",
(const u16 *)L"Espanol ", (const u16 *)L"Espanol ",
(const u16 *)L"中国語(仮)",
(const u16 *)L"韓国語(仮)"
}; };
static MenuPos s_languagePos[] = { static MenuPos s_languagePos[TWL_LANG_CODE_MAX] = {
{ TRUE, 4 * 8, 6 * 8 }, { TRUE, 4 * 8, 6 * 8 },
{ TRUE, 4 * 8, 8 * 8 }, { TRUE, 4 * 8, 8 * 8 },
{ TRUE, 4 * 8, 10 * 8 }, { TRUE, 4 * 8, 10 * 8 },
{ TRUE, 4 * 8, 12 * 8 }, { TRUE, 4 * 8, 12 * 8 },
{ TRUE, 4 * 8, 14 * 8 }, { TRUE, 4 * 8, 14 * 8 },
{ TRUE, 4 * 8, 16 * 8 }, { TRUE, 4 * 8, 16 * 8 },
{ TRUE, 4 * 8, 18 * 8 },
{ TRUE, 4 * 8, 20 * 8 }
}; };
static const MenuParam langSel = { static MenuParam langSel = {
6, TWL_LANG_CODE_MAX,
TXT_COLOR_BLACK, TXT_COLOR_BLACK,
TXT_COLOR_GREEN, TXT_COLOR_GREEN,
TXT_COLOR_RED, TXT_COLOR_RED,
@ -70,6 +88,11 @@ static const MenuParam langSel = {
// 言語設定の初期化 // 言語設定の初期化
void SelectLanguageInit( void ) void SelectLanguageInit( void )
{ {
int l;
u16 temp_langCode = 0;
BOOL in_list_flag = FALSE;
int lang_count = 0;
GX_DispOff(); GX_DispOff();
GXS_DispOff(); GXS_DispOff();
NNS_G2dCharCanvasClear( &gCanvas, TXT_COLOR_NULL ); NNS_G2dCharCanvasClear( &gCanvas, TXT_COLOR_NULL );
@ -80,14 +103,38 @@ void SelectLanguageInit( void )
PutStringUTF16( 8 * 8, 18 * 8, TXT_COLOR_RED, (const u16 *)L"Select language." ); PutStringUTF16( 8 * 8, 18 * 8, TXT_COLOR_RED, (const u16 *)L"Select language." );
} }
if( SYSM_IsValidTSD() || if( !SYSM_IsValidTSD() ||
( TSD_GetLanguage() >= TWL_LANG_CODE_MAX ) ) { ( TSD_GetRegion() >= TWL_REGION_MAX ) ) {
s_langCode = TWL_LANG_ENGLISH; s_regionCode = (TWLRegion)TWL_DEFAULT_REGION;
}else { }else {
s_langCode = TSD_GetLanguage(); s_regionCode = (TWLRegion)TSD_GetRegion();
} }
DrawMenu( (u16)s_langCode, &langSel ); if( !SYSM_IsValidTSD() ||
( TSD_GetLanguage() >= TWL_LANG_CODE_MAX ) ) {
temp_langCode = TWL_LANG_ENGLISH;
}else {
temp_langCode = TSD_GetLanguage();
}
s_lang = 0;
for(l=0; l<TWL_LANG_CODE_MAX; l++)
{
if( ( 0x0001 << l ) & region_lang_Mapping[s_regionCode] )
{
s_pStrLanguage[lang_count] = s_pStrLanguageData[l];
s_langCodeList[lang_count] = (TWLLangCode)l;
if(temp_langCode == l)
{
s_lang = lang_count;
}
lang_count++;
}
}
langSel.num = lang_count;
DrawMenu( (u16)s_lang, &langSel );
SVC_CpuClear( 0x0000, &tpd, sizeof(TpWork), 16 ); SVC_CpuClear( 0x0000, &tpd, sizeof(TpWork), 16 );
@ -109,17 +156,17 @@ int SelectLanguageMain( void )
// キー入力処理 // キー入力処理
//-------------------------------------- //--------------------------------------
if( pad.trg & PAD_KEY_DOWN ) { // カーソルの移動 if( pad.trg & PAD_KEY_DOWN ) { // カーソルの移動
if( ++s_langCode == TWL_LANG_CODE_MAX ) { if( ++s_lang == langSel.num ) {
s_langCode = (TWLLangCode)0; s_lang = (TWLLangCode)0;
} }
} }
if( pad.trg & PAD_KEY_UP ) { if( pad.trg & PAD_KEY_UP ) {
if( --s_langCode < 0 ) { if( --s_lang < 0 ) {
s_langCode = (TWLLangCode)( TWL_LANG_CODE_MAX - 1 ); s_lang = (TWLLangCode)( langSel.num - 1 );
} }
} }
tp_select = SelectMenuByTP( (u16 *)&s_langCode, &langSel ); tp_select = SelectMenuByTP( (u16 *)&s_lang, &langSel );
DrawMenu( (u16)s_langCode, &langSel ); DrawMenu( (u16)s_lang, &langSel );
// [CANCEL]ボタン押下チェック // [CANCEL]ボタン押下チェック
if( tpd.disp.touch ) { if( tpd.disp.touch ) {
@ -128,7 +175,7 @@ int SelectLanguageMain( void )
} }
if( ( pad.trg & PAD_BUTTON_A ) || tp_select ) { // メニュー項目への分岐 if( ( pad.trg & PAD_BUTTON_A ) || tp_select ) { // メニュー項目への分岐
TSD_SetLanguage( s_langCode ); TSD_SetLanguage( s_langCodeList[s_lang] );
TSD_SetFlagLanguage( TRUE ); // 言語入力フラグを立てる TSD_SetFlagLanguage( TRUE ); // 言語入力フラグを立てる
// :::::::::::::::::::::::::::::::::::::::::::::: // ::::::::::::::::::::::::::::::::::::::::::::::
// TWL設定データファイルへの書き込み // TWL設定データファイルへの書き込み

View File

@ -39,7 +39,7 @@ extern "C" {
#define TWL_COMMENT_BUFFERSIZE ( ( TWL_COMMENT_LENGTH + 1 ) * 2 ) // コメントバッファサイズ #define TWL_COMMENT_BUFFERSIZE ( ( TWL_COMMENT_LENGTH + 1 ) * 2 ) // コメントバッファサイズ
#define TWL_FAVORITE_COLOR_MAX_NUM NTR_FAVORITE_COLOR_MAX_NUM // 好きな色の最大数 #define TWL_FAVORITE_COLOR_MAX_NUM NTR_FAVORITE_COLOR_MAX_NUM // 好きな色の最大数
#define TSD_TEMP_BUFFER_SIZE ( sizeof(TSDStore) * 2 ) // TSD_ReadTWLSettingsで必要なTempBufferサイズ #define TSD_TEMP_BUFFER_SIZE ( sizeof(TSDStore) * 2 ) // TSD_ReadTWLSettingsで必要なTempBufferサイズ
#define TWL_BACKLIGHT_LEVEL_MAX 22 // バックライト輝度上限(ハード的な制約は上限のみ)
// 言語コード // 言語コード
// 欧州と北米の表示テキストの違いは、リージョンと言語コードを併せて判断 // 欧州と北米の表示テキストの違いは、リージョンと言語コードを併せて判断
@ -98,7 +98,7 @@ typedef enum TWLRegionCode {
TWL_REGION_AUSTRALIA = 3, // NAL TWL_REGION_AUSTRALIA = 3, // NAL
TWL_REGION_CHINA = 4, // IQue TWL_REGION_CHINA = 4, // IQue
TWL_REGION_KOREA = 5, // NOK TWL_REGION_KOREA = 5, // NOK
TWL_REGION_MAX = 5 TWL_REGION_MAX
}TWLRegion; }TWLRegion;