diff --git a/trunk/CardSaveDataMover/body/source/screen/screen.BAK b/trunk/CardSaveDataMover/body/source/screen/screen.BAK deleted file mode 100644 index c601bbd..0000000 --- a/trunk/CardSaveDataMover/body/source/screen/screen.BAK +++ /dev/null @@ -1,759 +0,0 @@ -#include -#include -#include "screen.h" -#include "../my_defs.h" -#include "../common/ver.h" - - -Gui gui; -u8 scr_evnt; - -enum{ -//PANEL_END, -PANEL_ERROR, -PANEL_SUCCESS, -PANEL_TOPMENU, -PANEL_TITLE, -PANEL_QUIT, -PANEL_READ, -PANEL_WRITE, -PANEL_YES, -PANEL_NO, -PANEL_CONFIRM, -PANEL_DELCONF, -PANEL_MENU, -PANEL_BKUP, -PANEL_INSEXIT, -PANEL_DBGLOG -}; - -enum{ -MESSAGE_VERSION, -MESSAGE_PRODUCT, -MESSAGE_PRODUCT2, -MESSAGE_ERROR_TITLE, -MESSAGE_ERROR_INFO, -MESSAGE_ERROR_INFO2, -MESSAGE_ERROR_INFO3, -MESSAGE_SUCCESS_TITLE, -MESSAGE_SUCCESS_INFO, -MESSAGE_SUCCESS_INFO2, -MESSAGE_CONFIRM_TITLE, -MESSAGE_CONFIRM_MSG, -MESSAGE_DELCONF_TITLE, -MESSAGE_DELCONF_MSG, -MESSAGE_DELCONF_MSG2, -MESSAGE_DELCONF_MSG3, -//MESSAGE_TOPMENU_HELP_TITLE, -MESSAGE_TOPMENU_HELP_READ, -MESSAGE_TOPMENU_HELP_WRITE, -MESSAGE_TOPMENU_HELP_END, -MESSAGE_TOPMENU_HELP_OPERATE, -MESSAGE_TITLE, -MESSAGE_MENU_READ, -MESSAGE_MENU_WRITE, -//MESSAGE_MENU_END, -MESSAGE_MENU_OPERATE, -MESSAGE_MENU_CAUTION, -MESSAGE_MENU_ERROR, -MESSAGE_MENU_DEBUG, -MESSAGE_INSEXT_1, -MESSAGE_INSEXT_2, -MESSAGE_INSEXT_3, -MESSAGE_OPERATE, -MESSAGE_RESULT, -MESSAGE_QUIT_OPERATE, -MESSAGE_CONF, -MESSAGE_COUNT, -MESSAGE_COUNT2, -MESSAGE_STATUS -}; - -enum{ -MEMO_DBGLOG -}; - - -//画面消去、コンポーネントをディセーブル -void ScrClr() -{ - gui.ButtonMask(0); - gui.DisableAll(); - gui.Draw(); -} - - -//---------------------------------イベントコールバック -//----------------PADボタン -void pushButton(u32 button) -{ - //NN_LOG("button > %4x\n",button); - if (button & nn::hid::BUTTON_LEFT)//同時押し - { - if (button & nn::hid::BUTTON_X) - scr_evnt = EVNT_PUSH_LEFT_X; - } -#ifdef DEBUG_ENABLE - else if (button & nn::hid::BUTTON_DOWN)//同時押し - { - if (button & nn::hid::BUTTON_Y) - if (button & nn::hid::BUTTON_X) - scr_evnt = EVNT_PUSH_DOWN_Y; - } - else if (button & nn::hid::BUTTON_R)scr_evnt = EVNT_PUSH_R; - else if (button & nn::hid::BUTTON_L)scr_evnt = EVNT_PUSH_L; -#endif -#ifdef ENABLE_CRUSH - else if (button & nn::hid::BUTTON_Y)scr_evnt = EVNT_PUSH_Y; -#endif - else if (button & nn::hid::BUTTON_B)scr_evnt = EVNT_PUSH_B; -} - -//-----------------パネルをタッチ -// ---- Top Menu :READ -void touchRead(u32 pos NN_IS_UNUSED_VAR) -{ - scr_evnt = EVNT_SEL_READ; -} -// ---- Top Menu :WRITE -void touchWrite(u32 pos NN_IS_UNUSED_VAR) -{ - scr_evnt = EVNT_SEL_WRITE; -} - -//---- Top Menu :END -//void touchEnd(u32 pos NN_IS_UNUSED_VAR) -//{ -// scr_evnt = EVNT_SEL_END; -//} - -//---- YES -void touchYes(u32 pos NN_IS_UNUSED_VAR) -{ - scr_evnt = EVNT_YES; -} - -//---- NO -void touchNo(u32 pos NN_IS_UNUSED_VAR) -{ - scr_evnt = EVNT_NO; -} - -void touchQuit(u32 pos NN_IS_UNUSED_VAR) -{ - scr_evnt = EVNT_QUIT; -} - -#define NULL_PTR 0 -#define NULL_STR 0 -#define SCREEN_UPPER 0 -#define SCREEN_LOWER 1 -#define LOC_CONF_X 60 -#define LOC_CONF_Y 20 -#define LOC_CONF_W (400 - LOC_CONF_X*2) -#define LOC_CONF_H 70 -#define LOC_LOG_X 50 -#define LOC_LOG_W (400 - LOC_LOG_X*2) -#define LOC_LOG_Y (LOC_CONF_Y + LOC_CONF_H + 10) -#define LOC_LOG_H (240 - LOC_LOG_Y - 10) -#define LOG_MAX 10 - -// -------------------------------------------------- コンポーネント設計 -//下画面 - -//Top Menu -const tPanel panel_Read = {(uptr)touchRead,"Backup",80+20,30,160,80,PANEL_READ,SCREEN_LOWER}; -const tPanel panel_Write = {(uptr)touchWrite,"Restore",80+20,130,160,80,PANEL_WRITE,SCREEN_LOWER}; -//const tPanel panel_End = {(uptr)touchEnd,"End",80,180,160,30,PANEL_END,SCREEN_LOWER}; - -//Yes No -const tPanel panel_Yes = {(uptr)touchYes,"YES",40+10,60,80,120,PANEL_YES,SCREEN_LOWER}; -const tPanel panel_No = {(uptr)touchNo,"NO",200+30,60,80,120,PANEL_NO,SCREEN_LOWER}; - -//Quit -const tPanel panel_Quit = {(uptr)touchQuit,"Quit",80+20,60,160,120,PANEL_QUIT,SCREEN_LOWER}; - -//上画面 -//デバグ用 -//エラー表示 -const tPanel panel_Error = {NULL_PTR,NULL_STR,LOC_CONF_X,LOC_CONF_Y,LOC_CONF_W,LOC_CONF_H,PANEL_ERROR,SCREEN_UPPER}; -const tMessage mess_Title_Err = {"title",10,10,COLOR_RED,8,MESSAGE_ERROR_TITLE,PANEL_ERROR}; -const tMessage mess_Info_Err = {"info",10,22,COLOR_RED,8,MESSAGE_ERROR_INFO,PANEL_ERROR}; -const tMessage mess_Info2_Err = {"info2",10,40,COLOR_RED,8,MESSAGE_ERROR_INFO2,PANEL_ERROR}; -const tMessage mess_Info3_Err = {"info3",10,50,COLOR_RED,8,MESSAGE_ERROR_INFO3,PANEL_ERROR}; - -//成功 -const tPanel panel_Success = {NULL_PTR,NULL_STR,LOC_CONF_X,LOC_CONF_Y,LOC_CONF_W,LOC_CONF_H,PANEL_SUCCESS,SCREEN_UPPER}; -const tMessage mess_Title_Suc = {"title",10,10,COLOR_GREEN,8,MESSAGE_SUCCESS_TITLE,PANEL_SUCCESS}; -const tMessage mess_Info_Suc = {"info",10,40,COLOR_WHITE,8,MESSAGE_SUCCESS_INFO,PANEL_SUCCESS}; -const tMessage mess_Info2_Suc = {"info2",10,50,COLOR_WHITE,8,MESSAGE_SUCCESS_INFO2,PANEL_SUCCESS}; - -//実行確認 -const tPanel panel_Confirm = {NULL_PTR,NULL_STR,LOC_CONF_X,LOC_CONF_Y,LOC_CONF_W,LOC_CONF_H,PANEL_CONFIRM,SCREEN_UPPER}; -const tMessage mess_conf_Title = {"title",10,10,COLOR_YELLO,8,MESSAGE_CONFIRM_TITLE,PANEL_CONFIRM}; -const tMessage mess_conf_Msg = {"Do you execute?",10,40,COLOR_WHITE,8,MESSAGE_CONFIRM_MSG,PANEL_CONFIRM}; - -//トップメニュー -const tPanel panel_topmenu_help = {NULL_PTR,NULL_STR,LOC_CONF_X,LOC_CONF_Y,LOC_CONF_W,LOC_CONF_H,PANEL_TOPMENU,SCREEN_UPPER}; -const tMessage mess_topmenu_help_read = {"[Backup] Card -> bkup",10,4,COLOR_WHITE,8,MESSAGE_TOPMENU_HELP_READ,PANEL_TOPMENU}; -const tMessage mess_topmenu_help_notread = {"[Backup] is Invalid",10,4,COLOR_RED,8,MESSAGE_TOPMENU_HELP_READ,PANEL_TOPMENU}; -const tMessage mess_topmenu_help_write = {"[Restore] bkup -> Card",10,16,COLOR_WHITE,8,MESSAGE_TOPMENU_HELP_WRITE,PANEL_TOPMENU}; -const tMessage mess_topmenu_help_notwrite = {"[Restore] is Invalid",10,16,COLOR_RED,8,MESSAGE_TOPMENU_HELP_WRITE,PANEL_TOPMENU}; -const tMessage mess_topmenu_help_end = {"[End] return to SystemMenu",10,28,COLOR_WHITE,8,MESSAGE_TOPMENU_HELP_END,PANEL_TOPMENU}; -const tMessage mess_topmenu_help_operate = {"touch below",10,48,COLOR_GREEN,8,MESSAGE_TOPMENU_HELP_OPERATE,PANEL_TOPMENU}; - -//ログ表示 -const tPanel panel_dbglog = {NULL_PTR,NULL_STR,LOC_LOG_X,LOC_LOG_Y,LOC_LOG_W,LOC_LOG_H,PANEL_DBGLOG,SCREEN_UPPER}; -const tMemo memo_dbglog = {LOG_MAX,10,10,COLOR_WHITE,8,MEMO_DBGLOG,PANEL_DBGLOG}; - - -//通常時 -//タイトル -#define FONT_SIZE_TITLE 12 -#define LOC_TITL_X (40-FONT_SIZE_TITLE*2) -#define LOC_TITL_Y 20 -#define LOC_TITL_W (400 - LOC_CONF_X*2) -#define LOC_TITL_H 50 -#define FONT_SIZE_PRODUCT 10 -const tPanel panel_title = {NULL_PTR,NULL_STR,LOC_TITL_X,LOC_TITL_Y,LOC_TITL_W,LOC_TITL_H,PANEL_TITLE,SCREEN_UPPER}; -const tMessage mess_title = {"title",0,0,COLOR_WHITE,FONT_SIZE_TITLE,MESSAGE_TITLE,PANEL_TITLE}; -const tMessage mess_product = {"product",0,LOC_TITL_H - 22,COLOR_WHITE,FONT_SIZE_PRODUCT,MESSAGE_PRODUCT,PANEL_TITLE}; -const tMessage mess_product2 = {"product2",0,LOC_TITL_H - 10,COLOR_WHITE,FONT_SIZE_PRODUCT,MESSAGE_PRODUCT2,PANEL_TITLE}; -const tMessage mess_version = {"version",LOC_TITL_W-FONT_SIZE_PRODUCT*6,FONT_SIZE_TITLE+2,COLOR_WHITE,FONT_SIZE_PRODUCT,MESSAGE_VERSION,PANEL_TITLE}; - -#define LOC_MESS_X 20 -#define LOC_MESS_W (400 - LOC_MESS_X*2) -#define LOC_MESS_Y (LOC_TITL_Y + LOC_TITL_H + 10) -#define LOC_MESS_H (240 - LOC_MESS_Y - 10) -//TOPメニュー -//情報表示はログと排他 -#define FONT_SIZE 10 -#define STR_LINE(ln) (FONT_SIZE + 2)*ln -const tPanel panel_menu = {NULL_PTR,NULL_STR,LOC_MESS_X,LOC_MESS_Y,LOC_MESS_W,LOC_MESS_H,PANEL_MENU,SCREEN_UPPER}; -const tMessage mess_menu_read = {"[Backup] Card savedata Backup",10,STR_LINE(1),COLOR_WHITE,FONT_SIZE,MESSAGE_MENU_READ,PANEL_MENU}; -const tMessage mess_menu_write = {"[Restore] restore to Card",10,STR_LINE(2),COLOR_WHITE,FONT_SIZE,MESSAGE_MENU_WRITE,PANEL_MENU}; -//const tMessage mess_menu_end = {"[End] close this apprication",10,STR_LINE(3),COLOR_WHITE,FONT_SIZE,MESSAGE_MENU_END,PANEL_MENU}; -const tMessage mess_menu_operate = {"touch below",10,STR_LINE(4),COLOR_GREEN,FONT_SIZE,MESSAGE_MENU_OPERATE,PANEL_MENU}; -const tMessage mess_bkuperr = {"Backup error",10,STR_LINE(6),COLOR_RED,FONT_SIZE,MESSAGE_MENU_ERROR,PANEL_MENU}; -const tMessage mess_carderr = {"CARD error",10,STR_LINE(7),COLOR_YELLO,FONT_SIZE,MESSAGE_MENU_CAUTION,PANEL_MENU}; -const tMessage mess_debug = {"Crush Mode",10,STR_LINE(3),COLOR_YELLO,FONT_SIZE,MESSAGE_MENU_DEBUG,PANEL_MENU}; - -//Backup -//const tPanel panel_bkup = {NULL_PTR,NULL_STR,LOC_LOG_X,LOC_LOG_Y,LOC_LOG_W,LOC_LOG_H,PANEL_BKUP,SCREEN_UPPER}; -const tPanel panel_bkup = {NULL_PTR,NULL_STR,LOC_MESS_X,LOC_MESS_Y,LOC_MESS_W,LOC_MESS_H,PANEL_BKUP,SCREEN_UPPER}; -const tMessage mess_quit_operate = {"touch [Quit],or Push B",10,STR_LINE(4),COLOR_SKY,FONT_SIZE,MESSAGE_QUIT_OPERATE,PANEL_BKUP}; -const tMessage mess_conf = {"Do you execute?",10,STR_LINE(2),COLOR_WHITE,FONT_SIZE,MESSAGE_CONF,PANEL_BKUP}; -const tMessage mess_result = {"result",10,STR_LINE(2),COLOR_WHITE,FONT_SIZE,MESSAGE_RESULT,PANEL_BKUP}; -const tMessage mess_operate = {"touch below",10,STR_LINE(4),COLOR_GREEN,FONT_SIZE,MESSAGE_OPERATE,PANEL_BKUP}; -const tMessage mess_status = {"status",10,STR_LINE(7),COLOR_WHITE,FONT_SIZE,MESSAGE_STATUS,PANEL_BKUP}; -const tMessage mess_count = {"count",10,STR_LINE(8),COLOR_WHITE,FONT_SIZE,MESSAGE_COUNT,PANEL_BKUP}; -const tMessage mess_count2 = {"count2",10,STR_LINE(9),COLOR_GREEN,FONT_SIZE,MESSAGE_COUNT2,PANEL_BKUP}; - - -//挿抜発生時 -//const tPanel panel_insexit = {NULL_PTR,NULL_STR,LOC_LOG_X,LOC_LOG_Y,LOC_LOG_W,LOC_LOG_H,PANEL_INSEXIT,SCREEN_UPPER}; -const tPanel panel_insexit = {NULL_PTR,NULL_STR,LOC_MESS_X,LOC_MESS_Y,LOC_MESS_W,LOC_MESS_H,PANEL_INSEXIT,SCREEN_UPPER}; -const tMessage mess_insexit = {"device insert or pull out is detected",10,STR_LINE(3),COLOR_RED,8,MESSAGE_INSEXT_1,PANEL_INSEXIT}; -const tMessage mess_insexit2 = {"return to top menu",10,STR_LINE(5),COLOR_WHITE,8,MESSAGE_INSEXT_2,PANEL_INSEXIT}; -const tMessage mess_insexit3 = {"please touch or push B",10,STR_LINE(6),COLOR_WHITE,8,MESSAGE_INSEXT_3,PANEL_INSEXIT}; - -//削除確認 -//const tPanel panel_delconf = {NULL_PTR,NULL_STR,LOC_CONF_X-10,LOC_CONF_Y,LOC_CONF_W+10,LOC_CONF_H*2,PANEL_DELCONF,SCREEN_UPPER}; -const tPanel panel_delconf = {NULL_PTR,NULL_STR,LOC_MESS_X,LOC_MESS_Y-36,LOC_MESS_W,LOC_MESS_H,PANEL_DELCONF,SCREEN_UPPER}; -const tMessage mess_delconf_Title = {" *** DELETE *** ",10,10,COLOR_YELLO,16,MESSAGE_DELCONF_TITLE,PANEL_DELCONF}; -const tMessage mess_delconf_Msg = {" caution!",10,50,COLOR_YELLO,12,MESSAGE_DELCONF_MSG,PANEL_DELCONF}; -const tMessage mess_delconf_Msg2 = {"this is delete backup",10,70,COLOR_YELLO,12,MESSAGE_DELCONF_MSG2,PANEL_DELCONF}; -const tMessage mess_delconf_Msg3 = {"Do you execute?",10,90,COLOR_YELLO,12,MESSAGE_DELCONF_MSG3,PANEL_DELCONF}; - - - -nn::os::LightEvent stopEvnt(true); - -char scr_ver[16]; -char scr_err[32]; -char scr_debug[32]; -//menu -bool ScrInitialize(uptr heap,u32 size) -{ - scr_evnt = EVNT_NONE; - - if (gui.Initialize(heap,size,&stopEvnt)==false)return false; - - - gui.ButtonCallback((uptr)pushButton); - //コンポーネント登録 - gui.PanelSet(&panel_Read); - gui.PanelSet(&panel_Write); -// gui.PanelSet(&panel_End); - gui.PanelSet(&panel_Yes); - gui.PanelSet(&panel_No); - gui.PanelSet(&panel_Quit); - gui.PanelSet(&panel_Error); - gui.PanelSet(&panel_Success); - gui.PanelSet(&panel_Confirm); - gui.PanelSet(&panel_delconf); - gui.PanelSet(&panel_topmenu_help); - gui.PanelSet(&panel_title); - gui.PanelSet(&panel_menu); - gui.PanelSet(&panel_bkup); - gui.PanelSet(&panel_dbglog); - gui.PanelSet(&panel_insexit); - - gui.PanelLineStyle(PANEL_TITLE,COLOR_BLACK); - - - gui.MessSet(&mess_Title_Err); - gui.MessSet(&mess_Info_Err); - gui.MessSet(&mess_Info2_Err); - gui.MessSet(&mess_Info3_Err); - gui.MessSet(&mess_Title_Suc); - gui.MessSet(&mess_Info_Suc); - gui.MessSet(&mess_Info2_Suc); - gui.MessSet(&mess_conf_Title); - gui.MessSet(&mess_conf_Msg); - gui.MessSet(&mess_delconf_Title); - gui.MessSet(&mess_delconf_Msg); - gui.MessSet(&mess_delconf_Msg2); - gui.MessSet(&mess_delconf_Msg3); - - gui.MessSet(&mess_topmenu_help_read); - gui.MessSet(&mess_topmenu_help_write); - gui.MessSet(&mess_topmenu_help_end); - gui.MessSet(&mess_topmenu_help_operate); - - gui.MessSet(&mess_title); - gui.MessSet(&mess_version); - gui.MessSet(&mess_product); - gui.MessSet(&mess_product2); - gui.MessSet(&mess_menu_read); - gui.MessSet(&mess_menu_write); -// gui.MessSet(&mess_menu_end); - gui.MessSet(&mess_menu_operate); - gui.MessSet(&mess_quit_operate); - gui.MessSet(&mess_conf); - gui.MessSet(&mess_operate); - gui.MessSet(&mess_bkuperr); - gui.MessSet(&mess_carderr); - gui.MessSet(&mess_debug); - gui.MessSet(&mess_result); - gui.MessSet(&mess_status); - gui.MessSet(&mess_count); - gui.MessSet(&mess_count2); - - gui.MessSet(&mess_insexit); - gui.MessSet(&mess_insexit2); - gui.MessSet(&mess_insexit3); - - gui.MemoSet(&memo_dbglog); - - gui.MemoEffective(MESSAGE_PRODUCT); - gui.MessEffective(MESSAGE_ERROR_TITLE); - gui.MessEffective(MESSAGE_ERROR_INFO); - gui.MessEffective(MESSAGE_ERROR_INFO2); - gui.MessEffective(MESSAGE_ERROR_INFO3); - gui.MessEffective(MESSAGE_SUCCESS_TITLE); - gui.MessEffective(MESSAGE_SUCCESS_INFO); - gui.MessEffective(MESSAGE_SUCCESS_INFO2); - gui.MessEffective(MESSAGE_CONFIRM_TITLE); - gui.MessEffective(MESSAGE_CONFIRM_MSG); - gui.MessEffective(MESSAGE_DELCONF_TITLE); - gui.MessEffective(MESSAGE_DELCONF_MSG); - gui.MessEffective(MESSAGE_DELCONF_MSG2); - gui.MessEffective(MESSAGE_DELCONF_MSG3); - gui.MessEffective(MESSAGE_TOPMENU_HELP_READ); - gui.MessEffective(MESSAGE_TOPMENU_HELP_WRITE); - gui.MessEffective(MESSAGE_TOPMENU_HELP_END); - gui.MessEffective(MESSAGE_TOPMENU_HELP_OPERATE); - gui.MessEffective(MESSAGE_MENU_READ); - gui.MessEffective(MESSAGE_MENU_WRITE); -// gui.MessEffective(MESSAGE_MENU_END); - gui.MessEffective(MESSAGE_MENU_OPERATE); - gui.MessEffective(MESSAGE_INSEXT_1); - gui.MessEffective(MESSAGE_INSEXT_2); - gui.MessEffective(MESSAGE_INSEXT_3); - gui.MessEffective(MESSAGE_TITLE); - gui.MessEffective(MESSAGE_VERSION); - gui.MemoEffective(MEMO_DBGLOG); - - gui.PanelLineStyle(PANEL_DELCONF,COLOR_YELLO); - - sprintf(scr_ver,"ver %.2f",VERSION); - gui.MessStr(MESSAGE_VERSION,scr_ver); - gui.MessStr(MESSAGE_MENU_CAUTION,scr_err); - gui.MessStr(MESSAGE_MENU_ERROR,scr_err); - gui.MessStr(MESSAGE_MENU_DEBUG,scr_debug); - - return true; - -} - -void ScrFinalize() -{ - stopEvnt.Signal(); - while(stopEvnt.TryWait()){ - nn::os::Thread::Yield(); - - }; - gui.Finalize(); -} - -//YES-NO ボタン -void YesNo() -{ - gui.ButtonMask(nn::hid::BUTTON_A | nn::hid::BUTTON_B); - gui.PanelEffective(PANEL_YES); - gui.PanelEffective(PANEL_NO); - gui.Draw(); -} - -void Quit() -{ - gui.ButtonMask(nn::hid::BUTTON_A | nn::hid::BUTTON_B); - gui.PanelEffective(PANEL_QUIT); - gui.Draw(); -} - - -//トップメニュー画面 -//引数:カード状態 -void scr_TopMenuDbg(bool formatted,bool insertted)//デバッグ用 -{ - scr_evnt = EVNT_NONE; - gui.ButtonMask(nn::hid::BUTTON_A | nn::hid::BUTTON_R | nn::hid::BUTTON_L); - - if (formatted) - {//リード可能 - gui.MessSet(&mess_topmenu_help_read); - gui.PanelEffective(PANEL_READ); - }else{//リード不可 - gui.MessSet(&mess_topmenu_help_notread); - gui.PanelEffective(PANEL_READ,false); - } - if (insertted) - {//書き込み可 - gui.MessSet(&mess_topmenu_help_write); - gui.PanelEffective(PANEL_WRITE); - }else{//書き込み不可 - gui.MessSet(&mess_topmenu_help_notwrite); - gui.PanelEffective(PANEL_WRITE,false); - } - - gui.MessEffective(MESSAGE_TOPMENU_HELP_READ); - gui.MessEffective(MESSAGE_TOPMENU_HELP_WRITE); -// gui.PanelEffective(PANEL_END); - gui.PanelEffective(PANEL_TOPMENU); - gui.Draw(); -} - -//通常時 - -//プロダクトコード -//引数:カード、拡張セーブに記録されたもの -char scr_pcode[32]; -void scr_PrdCode(char *s) -{ - strcpy(scr_pcode,"CARD : "); - if (s[0]==0) strcat(scr_pcode,"----"); - else strcat(scr_pcode,s); - gui.MessStr(MESSAGE_PRODUCT,scr_pcode); -} - -char scr_pcode2[64]; -void scr_PrdCodeEx(char *s) -{ - strcpy(scr_pcode2,"BKUP : "); - if (s[0]==0) strcat(scr_pcode2,"----"); - else strcat(scr_pcode2,s); - gui.MessStr(MESSAGE_PRODUCT2,scr_pcode2); -} - -//削除の実行確認 -void scr_DelConf() -{ - scr_evnt = EVNT_NONE; - gui.PanelEffective(PANEL_DELCONF); - YesNo(); -} - - -//Top menu -//引数:デバイス状態 -//arg : プロダクトコード一致 -void scr_TopMenu(bool formatted,bool inserted,bool exfm,bool bkupins,int err) -{ - - int i; - scr_evnt = EVNT_NONE; - - u32 mask = 0; -#ifdef CRUSH_ENABLE - extern bool CrashForDebug; - mask | = nn::hid::BUTTON_L;//L = Crush type change,only in Debug mode - if (CrashForDebug==0) gui.MessEffective(MESSAGE_MENU_DEBUG,false,false); - else{ - sprintf(scr_debug,"Crush mode %d",CrashForDebug); - gui.MessEffective(MESSAGE_MENU_DEBUG); - } -#endif -#ifdef DEBUG_ENABLE - mask | = ( nn::hid::BUTTON_DOWN | nn::hid::BUTTON_Y);//Down+X+Y = Debug mode -#endif - - gui.MessStr(MESSAGE_TITLE," < CTR Card Savedata Mover >"); - - gui.MessEffective(MESSAGE_MENU_ERROR,false,false); - gui.MessEffective(MESSAGE_MENU_CAUTION,false,false); - gui.MessEffective(MESSAGE_MENU_OPERATE,false,false); - //片方のみ有効 - if (formatted && bkupins && (exfm == false)) - {//バックアップ - gui.MessEffective(MESSAGE_MENU_OPERATE); - gui.PanelEffective(PANEL_READ); - gui.PanelEffective(PANEL_WRITE,false,false); - }else if (exfm && inserted) - {//リストア - mask |= (nn::hid::BUTTON_LEFT | nn::hid::BUTTON_X);//LEFT+X = Delete 有効 - gui.PanelEffective(PANEL_READ,false,false); - i =0; - if (err & SDATA_ERRPUT_MEDIA) i = ERC_MEDIA + ERC_DEV_CARD;//バックアップがない - else - if (err & SDATA_ERRPUT_PCODE) i = ERC_DEV_OTHER + ERC_PRODCODE;//プロダクトコード不一致 - if (i !=0 ) - { - gui.PanelEffective(PANEL_WRITE,false,false); - sprintf(scr_err,"ERROR %d",i); - gui.MessEffective(MESSAGE_MENU_ERROR); - } - else{ - gui.MessEffective(MESSAGE_MENU_OPERATE); - gui.PanelEffective(PANEL_WRITE); - } - }else{//なし - gui.PanelEffective(PANEL_WRITE,false,false); - gui.PanelEffective(PANEL_READ,false,false); - - if (inserted == false) - { - strcpy(scr_err,"Please Insert Card"); - gui.MessEffective(MESSAGE_MENU_CAUTION); - - }else{ - if (err & SDATA_ERRPUT_MEDIA) i = ERC_MEDIA + ERC_DEV_CARD;//バックアップがない - else - if (err & SDATA_ERRPUT_VERIFI) i = ERC_SDK_VERIFI + ERC_DEV_CARD;//データが壊れている - else if (bkupins == false) i = ERC_DEVICE + ERC_DEV_OUT;//書出し先デバイスが無い - else i = ERC_FORMAT + ERC_DEV_CARD;//フォーマットエラー - sprintf(scr_err,"ERROR %d",i); - gui.MessEffective(MESSAGE_MENU_ERROR); - } - } - - gui.ButtonMask(mask); - - gui.MessEffective(MESSAGE_PRODUCT); - gui.MessEffective(MESSAGE_PRODUCT2); - - gui.PanelEffective(PANEL_TITLE); - gui.PanelEffective(PANEL_MENU); - - gui.Draw(); -} - -//デバッグ用、ボタン待ち -void ScrStep() -{ - scr_evnt = EVNT_NONE; - gui.ButtonMask(nn::hid::BUTTON_B); -} - - -void ClearBkupMess() -{ - gui.MessEffective(MESSAGE_CONF,false,false); - gui.MessEffective(MESSAGE_RESULT,false,false); - gui.MessEffective(MESSAGE_OPERATE,false,false); - gui.MessEffective(MESSAGE_QUIT_OPERATE,false,false); - gui.MessEffective(MESSAGE_STATUS,false,false); - gui.MessEffective(MESSAGE_COUNT,false,false); - gui.MessEffective(MESSAGE_COUNT2,false,false); - gui.PanelEffective(PANEL_BKUP); -} - -//Backup -void scr_Backup() -{ - scr_evnt = EVNT_NONE; - gui.PanelLineStyle(PANEL_BKUP,COLOR_SKY); - gui.MessStr(MESSAGE_TITLE," --- Backup Card Savedata ---"); - gui.PanelEffective(PANEL_TITLE); - ClearBkupMess(); - gui.Draw(); - -} -void scr_BackupYesNo() -{ - scr_Backup(); - gui.MessEffective(MESSAGE_CONF); - gui.MessEffective(MESSAGE_OPERATE); - YesNo(); -} - -//restore -void scr_Restore() -{ - scr_evnt = EVNT_NONE; - gui.PanelLineStyle(PANEL_BKUP,COLOR_PARPL); - gui.MessStr(MESSAGE_TITLE,"--- Restore Card Savedata ---"); - gui.PanelEffective(PANEL_TITLE); - ClearBkupMess();//backupと同じパネルを使う - gui.Draw(); - -} -void scr_RestoreYesNo() -{ - scr_Restore(); - gui.MessEffective(MESSAGE_CONF); - gui.MessEffective(MESSAGE_OPERATE); - YesNo(); -} - - -void scr_Status(char *s,eColor col) -{ - gui.MessCol(MESSAGE_STATUS,col); - gui.MessStr(MESSAGE_STATUS,s); - gui.MessEffective(MESSAGE_STATUS); - gui.Draw(); -} - -void scr_ResultQuit(char *s,eColor col) -{ - gui.MessCol(MESSAGE_RESULT,col); - gui.MessStr(MESSAGE_RESULT,s); - gui.MessEffective(MESSAGE_RESULT); - gui.MessEffective(MESSAGE_QUIT_OPERATE); - Quit(); -} - - -void scr_InsExitQuit() -{ - ClearBkupMess(); - gui.PanelLineStyle(PANEL_INSEXIT,COLOR_RED); - gui.PanelEffective(PANEL_INSEXIT); - Quit(); -} - -// カウント/MAX 表示 -char str_Counter[128]; -char str_Counter2[128]; -void scr_CountPerMax(int ct,int max) -{ - sprintf(str_Counter,"%d / %d",ct,max); - gui.MessStr(MESSAGE_COUNT,str_Counter); - gui.MessEffective(MESSAGE_COUNT); - gui.Draw(); -} - -//ゲージ&total -void scr_CountPerMax2(int ct,int max,int total) -{ - if (total == -1) str_Counter2[0]=0; - else if (total != 0){ -// gui.MessCol(MESSAGE_COUNT2,COLOR_WHITE); - sprintf(str_Counter2,"total size %d",total); - }else{ -// gui.MessCol(MESSAGE_COUNT2,COLOR_YELLO); - int i; - int lv = ct/(max/25); - for (i =0;i'; - while ( i < 25 )str_Counter2[i++] = '|'; - str_Counter2[i] = 0; - } - //sprintf(str_Counter2,"%d / %d",ct,max); - gui.MessStr(MESSAGE_COUNT2,str_Counter2); - gui.MessEffective(MESSAGE_COUNT2); - gui.Draw(); - -} - -void scr_MessOnCount2(char *str) -{ -// gui.MessCol(MESSAGE_COUNT2,COLOR_YELLO); - gui.MessStr(MESSAGE_COUNT2,str); - gui.MessEffective(MESSAGE_COUNT2); - gui.Draw(); -} - - -//実行確認 -void scr_ConfirmDbg(char *str) -{ - scr_evnt = EVNT_NONE; - gui.MessStr(MESSAGE_CONFIRM_TITLE,str); - gui.PanelEffective(PANEL_CONFIRM); - YesNo(); -} - - -//エラー表示とQuitボタン -void scr_ErrorQuitDbg(tColStr **s) -{ - scr_evnt = EVNT_NONE; - gui.MessStr(MESSAGE_ERROR_TITLE,s[0]->str); - gui.MessCol(MESSAGE_ERROR_TITLE,s[0]->color); - gui.MessStr(MESSAGE_ERROR_INFO,s[1]->str); - gui.MessCol(MESSAGE_ERROR_INFO,s[1]->color); - gui.MessStr(MESSAGE_ERROR_INFO2,s[2]->str); - gui.MessCol(MESSAGE_ERROR_INFO2,s[2]->color); - gui.MessStr(MESSAGE_ERROR_INFO3,s[3]->str); - gui.MessCol(MESSAGE_ERROR_INFO3,s[3]->color); - gui.PanelEffective(PANEL_ERROR); - Quit(); -} - -//成功表示とQuitボタン -void scr_SuccessQuitDbg(tColStr **s) -{ - scr_evnt = EVNT_NONE; - gui.MessStr(MESSAGE_SUCCESS_TITLE,s[0]->str); - gui.MessCol(MESSAGE_SUCCESS_TITLE,s[0]->color); - gui.MessStr(MESSAGE_SUCCESS_INFO,s[1]->str); - gui.MessCol(MESSAGE_SUCCESS_INFO,s[1]->color); - gui.MessStr(MESSAGE_SUCCESS_INFO2,s[2]->str); - gui.MessCol(MESSAGE_SUCCESS_INFO2,s[2]->color); - gui.PanelEffective(PANEL_SUCCESS); - Quit(); -} - - -//デバッグログ -void scr_DgbLog(cStrLst *p) -{ - gui.PanelLineStyle(PANEL_DBGLOG,COLOR_BLUE); - - for (int i=0;igetpos()+1;i++)gui.MemoStr(MEMO_DBGLOG,p->line(i),i); - - gui.PanelEffective(PANEL_DBGLOG); - gui.Draw(); -} - - - -int ScrDbgLogGetMax() -{ - return LOG_MAX; -} - - -void scr_Draw() -{ - gui.Draw(); -} - -void scr_GetEvnt() -{ -// gui.thUpdate(); -} - -