From 29ddd08c754b656e28780ad8c005847a51869437 Mon Sep 17 00:00:00 2001 From: yosiokat Date: Tue, 3 Jun 2008 05:23:25 +0000 Subject: [PATCH] =?UTF-8?q?UTL=5FGetInstalledSoftBoxCount=20=E3=81=AE?= =?UTF-8?q?=E8=BF=BD=E5=8A=A0=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit git-svn-id: file:///Users/lillianskinner/Downloads/platinum/twl/TwlIPL/branches/20080524_SDK500fc_plus4_branch@1565 b08762b0-b915-fc4b-9d8c-17b2551a87ff --- build/libraries_sysmenu/util/ARM9/src/util.c | 29 ++++++++++++++++++++ include/sysmenu/util.h | 3 ++ 2 files changed, 32 insertions(+) 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