diff --git a/build/libraries_sysmenu/util/ARM9/src/util.c b/build/libraries_sysmenu/util/ARM9/src/util.c index 5569200b..e3db2a3d 100644 --- a/build/libraries_sysmenu/util/ARM9/src/util.c +++ b/build/libraries_sysmenu/util/ARM9/src/util.c @@ -16,6 +16,7 @@ *---------------------------------------------------------------------------*/ #include +#include #include // define data------------------------------------------ @@ -246,3 +247,31 @@ BOOL UTL_CheckRTCTime( RTCTime *timep ) return TRUE; } +//====================================================================== +// タイトル数取得 +//====================================================================== + +// ローンチ対象のアプリ数カウント +int UTL_GetInstalledSoftBoxCount( void ) +{ + int l; + int listNum; + int validNum = 0; + OSTitleId titleIDArray[ LCFG_TWL_FREE_SOFT_BOX_COUNT_MAX ]; + + MI_CpuClear32( titleIDArray, sizeof(titleIDArray) ); + + // インストールされているNANDアプリ全タイトルのTitleID取得 + listNum = NAM_GetNumTitles(); + (void)NAM_GetTitleList( titleIDArray, (u32)listNum ); + + // 取得したタイトルがローンチ対象かどうかをチェック + for( l = 0; l < listNum; l++ ) { + // "Not Launch"でない かつ "Data Only"でない なら有効なタイトルとしてリストに追加 + if( ( titleIDArray[ l ] & ( TITLE_ID_NOT_LAUNCH_FLAG_MASK | TITLE_ID_DATA_ONLY_FLAG_MASK ) ) == 0 ) { + validNum++; + } + } + return validNum; +} + diff --git a/include/sysmenu/util.h b/include/sysmenu/util.h index 94de957a..02cec6fd 100644 --- a/include/sysmenu/util.h +++ b/include/sysmenu/util.h @@ -53,6 +53,9 @@ extern BOOL UTL_IsLeapYear100( u32 year ); // extern u32 UTL_CalcPCTLInquiryCode( void ); // 問い合わせコード(10進8桁)算出 extern u32 UTL_CalcPCTLMasterKey( void ); // マスターキー  (10進5桁)算出(※内部でRTC_GetDateを使用します。) +// タイトル数取得(内部でNAMを使用するので、NAM_Initが事前に呼ばれている必要あり) +extern int UTL_GetInstalledSoftBoxCount( void ); + #endif #ifdef __cplusplus