画面表示しないバージョンのLauncher変更

・カードを挿している場合はカードのアプリを起動
 ・カードを挿していない場合およびSelect押下起動では本体設定が起動
 ・画面表示しないバージョンのLauncherをビルドする場合は、ビルドスイッチにDO_NOT_SHOW_LAUNCHERを指定してsysmenuライブラリおよびLauncherをビルドする必要あり
  (片方だけスイッチ指定してビルドするなどの事故に要注意)

git-svn-id: file:///Users/lillianskinner/Downloads/platinum/twl/TwlIPL/trunk@882 b08762b0-b915-fc4b-9d8c-17b2551a87ff
This commit is contained in:
yoshida_teruhisa 2008-03-14 07:16:18 +00:00
parent e5d0ba8ed5
commit 8cedf4f6e0
2 changed files with 38 additions and 2 deletions

View File

@ -43,6 +43,8 @@ SRCS = sysmenu_lib.c \
TARGET_LIB = libsysmenu$(TWL_LIBSUFFIX).a
MACRO_FLAGS += -DDO_NOT_SHOW_LAUNCHER
include $(TWL_IPL_RED_ROOT)/build/buildtools/commondefs
INSTALL_TARGETS = $(TARGETS)

View File

@ -244,7 +244,7 @@ static TitleProperty *SYSMi_CheckShortcutBoot( void )
SYSM_IsInspectCard() ||
( ( PAD_Read() & SYSM_PAD_PRODUCTION_SHORTCUT_CARD_BOOT ) ==
SYSM_PAD_PRODUCTION_SHORTCUT_CARD_BOOT )
) {
){
s_bootTitle.flags.isAppRelocate = TRUE;
s_bootTitle.flags.isAppLoadCompleted = TRUE;
s_bootTitle.flags.isInitialShortcutSkip = TRUE; // 初回起動シーケンスを飛ばす
@ -280,7 +280,41 @@ static TitleProperty *SYSMi_CheckShortcutBoot( void )
return &s_bootTitle;
}
//[TODO:]スタンドアロンで何らかの条件を満たした場合、カード強制起動させる
// スタンドアロン起動時
// ランチャー画面を表示しないバージョンの場合
// カードがささっていたらカードを起動する
// ささっていない場合は本体設定を起動
#ifdef DO_NOT_SHOW_LAUNCHER
if( SYSM_IsExistCard() )
{
s_bootTitle.flags.isAppRelocate = TRUE;
s_bootTitle.flags.isAppLoadCompleted = TRUE;
s_bootTitle.flags.isInitialShortcutSkip = TRUE; // 初回起動シーケンスを飛ばす
s_bootTitle.flags.isLogoSkip = TRUE; // ロゴデモを飛ばす
s_bootTitle.flags.bootType = LAUNCHER_BOOTTYPE_ROM;
s_bootTitle.flags.isValid = TRUE;
// ROMヘッダバッファのコピー
{
u16 id = (u16)OS_GetLockID();
(void)OS_LockByWord( id, &SYSMi_GetWork()->lockCardRsc, NULL ); // ARM7と排他制御する
(void)SYSMi_CopyCardRomHeader();
(void)OS_UnlockByWord( id, &SYSMi_GetWork()->lockCardRsc, NULL ); // ARM7と排他制御する
OS_ReleaseLockID( id );
}
s_bootTitle.titleID = *(u64 *)( &SYSM_GetCardRomHeader()->titleID_Lo );
SYSM_SetLogoDemoSkip( s_bootTitle.flags.isLogoSkip );
return &s_bootTitle;
}else
{
s_bootTitle.flags.isLogoSkip = TRUE; // ロゴデモを飛ばす
s_bootTitle.titleID = TITLE_ID_MACHINE_SETTINGS;
s_bootTitle.flags.bootType = LAUNCHER_BOOTTYPE_NAND;
s_bootTitle.flags.isValid = TRUE;
s_bootTitle.flags.isAppRelocate = FALSE;
s_bootTitle.flags.isAppLoadCompleted = FALSE;
return &s_bootTitle;
}
#endif
//-----------------------------------------------------
// TWL設定データ未入力時の初回起動シーケンス起動