/*************************************************************************
*	"itmlist.cci" : アイテム登録テスト
*-------------------------------------------------------------------------
*	　カレントドライブ上のアイテム登録データファイル（TMENU.ITM）内の，
*	アイテム登録情報を表示する。
*
*	※	コマンドモードで動作する
*************************************************************************/

#include	"ccilib.h"

char	ItmPath[256];

char	*ItemTypeName[5] = 
{
	"header",
	"group",
	"application",
	"V1.1",
	"directory"
};

/*************************************************************************
*	空白を表示
*************************************************************************/

int		dspspc( int level )
{
	int		i;
	for ( i = 0; i < level; ++i )
	{
		putchar(' ');
		putchar(' ');
	}
}

int		item_list_all()
{
	int			ret;
	int			stair, fpos, nextFPos;
	int			etyNum;
	short		icnNum;
	char		ttlStr[128];
	char		pathStr[128];
	char		paraStr[128];
	int			atrInf;
	int			nextFPos;
	short		frm[4];

	sprintf( ItmPath, "%c:\\tmenu.itm", FS_getdrv()+'A');

	fpos = 0;
	for(;;)
	{
		ret = ITM_GetItmType( ItmPath, fpos );
		stair = ITM_GetStair( ItmPath, fpos );
		printf("#%5d : " ,fpos );	dspspc(stair);
		switch ( ret )
		{
			case 0:
				printf("Header");
				break;
			case 1:
				printf("Group item");
				ITM_GetGrpData(ItmPath,fpos,&etyNum,&icnNum,ttlStr,&atrInf,frm);
				printf(" item num %4d, title:%s",etyNum, ttlStr );
				break;
			case 2:
				printf("Application item");
				ITM_GetAplData(ItmPath,fpos,&icnNum,ttlStr,pathStr,paraStr,atrInf,frm);
				printf(" title:%s ", ttlStr );
				break;
			case 3:
				printf("V1.1 group item");
				break;
			case 4:
				printf("Directory item");
				break;
		}
		putchar('\n');
		nextFPos = ITM_GetPhysclNextFPos( ItmPath, fpos );
		if ( nextFPos < 0 )
			break;
		fpos = nextFPos;
	}
}

int		main( int argc, char **argv )
{
	item_list_all();
}

