⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 fsgui_pub.c

📁 dvd里面的一个文件系统的代码
💻 C
📖 第 1 页 / 共 5 页
字号:

		DrawFolderIcon(fsArea[FS_AREA_DIRICON].xStart, (FS_DIRLIST_YSTART + FS_FILELIST_YSTEP * i), mode);
	}
	refresh_dir_icon = 0;
}

#ifdef APEX_MP3_ICON
void DrawMp3ApexIcon(int x, int y)
{
    int i, j;

	#ifdef AUDIO_SHOW_SAVER
    if (bDisableGUI) return;
	#endif

    for (i=0; i<24; i++) {
        for (j=0; j<72; j++) {
            //if ( fileIcon[type][i][j] == 0xff) continue;
            FSGUI_DrawPixel(
                x+j, y+i,
	        RGB8_Y[ mp3fileIcon[i][j] ],
                RGB8_CrCb[ mp3fileIcon[i][j] ]
            );
        }
    }
}
#endif//#ifdef APEX_MP3_ICON

void FSShowFileItem(int iItem, const char *s)
{
	#ifdef MP3_TXT_DISPLAY
    char buf[100];
	#else
	char	buf[20];
	#endif

	UINT16	first_seq;

	#ifdef AUDIO_SHOW_SAVER
    if (bDisableGUI) return;
	#endif

	if ((iItem < 0) || (iItem >= PER_PAGE) || (iItem >= pFsJpeg->File_Count))
		return;

	#ifdef MP3_DIRECT_SELECT
	first_seq = pFsJpeg->first_mp3_seq + PER_PAGE * pFsJpeg->file_page_will;
	#else
	first_seq = PER_PAGE * pFsJpeg->file_page_will;
	#endif

#ifdef MP3_DIRECT_SELECT
	if(pFsJpeg->count_file[pFsJpeg->gifsFuncBtn - FS_FUNC_MP3] >= 1000)
		psprintf(buf, "%04d.%s", first_seq + iItem + 1, s);
	else if(pFsJpeg->count_file[pFsJpeg->gifsFuncBtn - FS_FUNC_MP3] >= 100)
#else
	if(pFsJpeg->file_specify_in_dir >= 1000)
		psprintf(buf, "%04d.%s", first_seq + iItem + 1, s);
	if(pFsJpeg->file_specify_in_dir >= 100)
#endif
		psprintf(buf, "%03d.%s", first_seq + iItem + 1, s);
	else
		psprintf(buf, "%02d.%s", first_seq+iItem + 1, s);

#ifdef FS_BMP_GUI
    FSGUI_ShowString(fsArea[FS_AREA_FILEITEM].xStart + 46,
			(FS_DIRLIST_YSTART+ FS_FILELIST_YSTEP * iItem),
			buf, file_focus_y, file_focus_CrCb );
#elif defined(PHILIPS_FSGUI)//chenzhao20050613
    FSGUI_ShowString(fsArea[FS_AREA_FILEITEM].xStart,
            (FS_DIRLIST_YSTART+ FS_FILELIST_YSTEP * iItem),
            buf, file_focus_y, file_focus_CrCb);

#elif defined(INDIGO_STYLE_FSGUI)

	if(((iItem == pFsJpeg->file_current)&&(iItem!= pFsJpeg->file_will)&&(pFsJpeg->file_page_will==pFsJpeg->file_page_now))
	 ||((iItem == pFsJpeg->file_current)&&(pFsJpeg->ControlArea != CNT_AREA_FILE)&&(pFsJpeg->file_page_will==pFsJpeg->file_page_now)))
	{  // when HL, the font must be different color.
		FSGUI_ShowString(fsArea[FS_AREA_FILEITEM].xStart,
			(FS_DIRLIST_YSTART+ FS_FILELIST_YSTEP * iItem),
			buf, TEXT_SELECT_COLODR_Y, TEXT_SELECT_COLODR_CbCr );
	}
	else
	{
		FSGUI_ShowString(fsArea[FS_AREA_FILEITEM].xStart,
			(FS_DIRLIST_YSTART+ FS_FILELIST_YSTEP * iItem),
			buf, FS_FONTCOLOR_FILE_Y, FS_FONTCOLOR_FILE_CrCb );
	}
#else
	FSGUI_ShowString(fsArea[FS_AREA_FILEITEM].xStart,
			(FS_DIRLIST_YSTART+ FS_FILELIST_YSTEP * iItem),
			buf, FS_FONTCOLOR_FILE_Y, FS_FONTCOLOR_FILE_CrCb );
#endif
}

void ShowDirItem(int iItem, const char *s)
{
	char    buf[20];
	UINT16  first_seq;

	#ifdef AUDIO_SHOW_SAVER
	if (bDisableGUI) return;
	#endif

	if ( (iItem < 0) || (iItem >= PER_PAGE) || (iItem >= pFsJpeg->Dir_Count)) {
		return;
	}

	first_seq = PER_PAGE * pFsJpeg->dir_page_now;

	if ( strcmp(s, "")==0 ) {
		psprintf(buf, "%02d.\\", first_seq+iItem+1);
	} else {
		psprintf(buf, "%02d.%s",first_seq+iItem+1, s);
	}

#ifdef FS_BMP_GUI
    FSGUI_ShowString( fsArea[FS_AREA_DIRITEM].xStart + 46,
		(FS_DIRLIST_YSTART+ FS_FILELIST_YSTEP * iItem ),
		buf, file_focus_y, file_focus_CrCb );
#elif defined(PHILIPS_FSGUI)//chenzhao20050613
    FSGUI_ShowString( fsArea[FS_AREA_DIRITEM].xStart,
        (FS_DIRLIST_YSTART+ FS_FILELIST_YSTEP * iItem ),
        buf, file_focus_y, file_focus_CrCb);
#elif defined(INDIGO_STYLE_FSGUI)

	if(((pFsJpeg->dir_array[iItem] == pFsJpeg->fsnav_dir_now) && (pFsJpeg->dir_array[iItem]!= pFsJpeg->fsnav_dir_will))
	 ||((pFsJpeg->dir_array[iItem] == pFsJpeg->fsnav_dir_now) && (pFsJpeg->ControlArea != CNT_AREA_DIR)))
	{	// when HL, the font must be different color.
		FSGUI_ShowString( fsArea[FS_AREA_DIRITEM].xStart,
			(FS_DIRLIST_YSTART+ FS_FILELIST_YSTEP * iItem ),
			buf, TEXT_SELECT_COLODR_Y, TEXT_SELECT_COLODR_CbCr );
	}
	else
		FSGUI_ShowString( fsArea[FS_AREA_DIRITEM].xStart,
			(FS_DIRLIST_YSTART+ FS_FILELIST_YSTEP * iItem ),
			buf, FS_FONTCOLOR_FILE_Y, FS_FONTCOLOR_FILE_CrCb );
#else
	FSGUI_ShowString( fsArea[FS_AREA_DIRITEM].xStart,
		(FS_DIRLIST_YSTART+ FS_FILELIST_YSTEP * iItem ),
		buf, FS_FONTCOLOR_FILE_Y, FS_FONTCOLOR_FILE_CrCb );
#endif
}

//
// DrawFileIcon()
// Draw icon for file types
// type = 0->mp3, = 1->jpeg  , 2->game
//
#include "fsgui_icon_filex.inc"


#ifdef INDIGO_STYLE_FSGUI
void DrawFileIconX(int x, int y, int type, int mono __UNUSED)
{
	if(type == CNT_AREA_MP3BUTTON -2)		FSGUI_DrawIcon(x, y, ICON_FileX[type], MP3_ICON_Y,     MP3_ICON_CbCr,     0);
	else if(type == CNT_AREA_JPEGBUTTON -2)	FSGUI_DrawIcon(x, y, ICON_FileX[type], JPG_ICON_Y,     JPG_ICON_CbCr,     0);
#if defined(SUPPORT_NESGAME)
	else if(type == CNT_AREA_GAMEBUTTON -2)	FSGUI_DrawIcon(x, y, ICON_FileX[type], GAME_ICON_Y,    GAME_ICON_CbCr,    0);	
#endif
	#ifdef  SUPPORT_FILE_SYSTEM_MODE	//Jack added for compile
	else if(type == CNT_AREA_OTHERBUTTON-2)	FSGUI_DrawIcon(x, y, ICON_FileX[type], OTHER_ICON_Y,   OTHER_ICON_CbCr,   0);
	#endif
	else if(type == CNT_TAB_MP3BUTTON   -2)	FSGUI_DrawIcon(x, y, ICON_FileX[type], MP3_BOTTOM_Y,   MP3_BOTTOM_CbCr,   0);
	else if(type == CNT_TAB_JPEGBUTTON  -2)	FSGUI_DrawIcon(x, y, ICON_FileX[type], JPG_BOTTOM_Y,   JPG_BOTTOM_CbCr,   0);
#if defined(SUPPORT_NESGAME)
	else if(type == CNT_TAB_GAMEBUTTON  -2)	FSGUI_DrawIcon(x, y, ICON_FileX[type], GAME_BOTTOM_Y,  GAME_BOTTOM_CbCr,  0);	
#endif
	else if(type == CNT_TAB_OTHERBUTTON -2)	FSGUI_DrawIcon(x, y, ICON_FileX[type], OTHER_BOTTOM_Y, OTHER_BOTTOM_CbCr, 0);	
}
#elif defined(NEW_MP3_GUI)
void DrawFileIconX(int x, int y, int type, int mono)
{
	#ifdef AUDIO_SHOW_SAVER
    if (bDisableGUI) return;
	#endif

    FSGUI_DrawIcon(x, y, ICON_FileX[type], RGB8_Y, RGB8_CrCb, (mono? FSGUI_ICON_MONO : 0));
}
#else
void DrawFileIcon(int x, int y, int type)
{
	#ifdef AUDIO_SHOW_SAVER
    if (bDisableGUI) return;
	#endif

#ifdef FS_BMP_GUI //suqiaoli add 2004-6-10 10:25
    FSGUI_LayPosVariableBmp(x, y,LAY_MP3_ICON_S + type);
#else
    FSGUI_DrawIcon(x, y, ICON_FileX[type], RGB8_Y, RGB8_CrCb, 0);
#endif

}
#endif

//
// DrawFolderIcon()
// Draw icon for directory types
// type=0: unselected, = 1: opened
//
#include "fsgui_icon_folderx.inc"
const UINT8  cluty_fsgui[2] =
{
    YELLOW_Y,
    BLACK_Y,
};

const UINT16  clutc_fsgui[2] =
{
    YELLOW_CRCB,
    BLACK_CRCB,
};
void DrawFolderIcon(int x, int y, BYTE type)
{
#ifdef AUDIO_SHOW_SAVER
    if (bDisableGUI) return;
#endif

#ifdef FS_BMP_GUI //suqiaoli add 2004-6-10 10:26
	#ifdef	GPS_MP3_UI//frank.huang 050915
		if(type)
			FSGUI_LayPosVariableBmp(x, y,LAY_FOLDER_OPEN_ICON);
		else
    		FSGUI_LayPosVariableBmp(x, y,LAY_FOLDER_ICON);
	#else
    	FSGUI_LayPosVariableBmp(x, y,LAY_FOLDER_ICON);
	#endif
#else
	#ifdef INDIGO_STYLE_FSGUI
    	FSGUI_DrawIcon(x, y, ICON_FolderX[type], folder_Y, folder_CbCr, 0);
	#else
    FSGUI_DrawIcon(x, y, ICON_FolderX[type], cluty_fsgui, clutc_fsgui, 0);
#endif
#endif
}

void DrawRectEdge(int x,int y, int xSize,int ySize,UINT16 color_Y,UINT16 color_CrCb)
{
#ifdef AUDIO_SHOW_SAVER
    if (bDisableGUI) return;
#endif

//wanghaoying notice 2004-8-4 17:24,
//maybe when Large-GUI DEMENSION_SIZE should be (DEMENSION_SIZE+1)

	FSGUI_FillFrameBuf(x,y,xSize,DEMENSION_SIZE,color_Y,color_CrCb);
	FSGUI_FillFrameBuf(x,y,DEMENSION_SIZE,ySize,color_Y,color_CrCb);
	FSGUI_FillFrameBuf(x+xSize-DEMENSION_SIZE,y,DEMENSION_SIZE,ySize,color_Y,color_CrCb);
	FSGUI_FillFrameBuf(x,y+ySize-DEMENSION_SIZE,xSize,DEMENSION_SIZE,color_Y,color_CrCb);
}

//
// List File item and clear refresh_file_page
//
void FileList(void)
{
    UINT16 i;

    if (pFsJpeg->gifsState == FS_STATE_JPEG)
        return;

    if (!refresh_file_page)
        return;

	#ifdef FS_BMP_GUI
	    FSGUI_ClearArea(FS_AREA_FILEITEM,PER_PAGE+1);
	//2006-06-02, mimitsai add for HD ui.
	#else
        ClearRectArea(Rect[FILE_RECT], FILE_STEP, FILE_LIST_LEFT_Y, FILE_LIST_RIGHT_Y, FILE_AREA_BKGROUND_CRCB, FS_AREA_FILEITEM, -1);
    #endif

	#ifdef JPG_EFFECT
	    #if !defined ( HELP_BMP_GUI)
    	jpeg_effect_draw_help();
		#endif
	#endif

    for (i = 0; i < pFsJpeg->File_Count; i++)
    {
        DrawFileIcon(fsArea[FS_AREA_FILEICON].xStart,
            (fsArea[FS_AREA_FILEICON].yStart + FS_FILELIST_YSTEP * i), pFsJpeg->gifsFuncBtn - 1);
        FSShowFileItem(i, FS_GetFileProperty(pFsJpeg->file_array[i],FILE_PROPERTY_NAME));
        //FSShowFileItem(i, iso9660_file[pFsJpeg->file_array[i]].name);
    }
    refresh_file_page = 0;
}

//
// Calculat location of the first file specified style -> fsnav_trk_now
// and how many page needed to show these files -> File_Page_Count
// and first_mp3_entry, last_mp3_entry
// file_page_now and file_current clear to 0
// and calculate length of scroll bar
//
UINT16 CalcFileFirstPage(int iDirSelect)
{
	int iFile;

	pFsJpeg->first_mp3_seq = 0;

	pFsJpeg->first_mp3_entry = pFsJpeg->Dir_entry[iDirSelect];

	if(iDirSelect == pFsJpeg->fsnav_dir_cnt - 1)
		pFsJpeg->last_mp3_entry = pFsJpeg->iso9660_file_cnt - 1;
	else
		pFsJpeg->last_mp3_entry = pFsJpeg->Dir_entry[iDirSelect + 1] - 1;

	#ifdef	USE_FSGUI_TO_PLAY_CD//frank.huang add 051014
	if(cd_type_loaded!=CDDA)
	#endif
	pFsJpeg->file_specify_in_dir = CountSpecifyFile(iDirSelect);

#ifdef SAVE_EACH_DIR_FILE_COUNT
	for(iFile = 0; iFile < iDirSelect; iFile++)
	{
        pFsJpeg->first_mp3_seq += FS_DirectoryFileCountGetField(iFile,pFsJpeg->gifsFuncBtn);
	}
#else   //!SAVE_EACH_DIR_FILE_COUNT, no directory file count info in memory, scan through entries to get first_mp3_seq.
	for(iFile = 0; iFile < pFsJpeg->first_mp3_entry; iFile++)
	{
		if (FS_GetFileProperty(iFile,FILE_PROPERTY_CATEGORY) == pFsJpeg->gifsFuncBtn)
		//if (iso9660_file[iFile].type == pFsJpeg->gifsFuncBtn)
			pFsJpeg->first_mp3_seq++;
	}
#endif //#ifdef SAVE_EACH_DIR_FILE_COUNT, dealing with pFsJpeg->first_mp3_seq
	iFile = pFsJpeg->first_mp3_entry;

	while (iFile <= pFsJpeg->last_mp3_entry)
	{
		if (FS_GetFileProperty(iFile,FILE_PROPERTY_CATEGORY) == pFsJpeg->gifsFuncBtn)
		//if (iso9660_file[iFile].type == pFsJpeg->gifsFuncBtn)
		{
			pFsJpeg->fsnav_trk_now = iFile - pFsJpeg->first_mp3_entry;
			break;
		}
		iFile++;
	}

	FSGUI_CalcuteDirFileScrollLen();

	pFsJpeg->file_page_will = 0;
	pFsJpeg->file_will = 0;
	refresh_file_page = 1;

	return pFsJpeg->file_specify_in_dir;
}


UINT16 AnchorFile(int iSeq)
{
	UINT16 file;
	UINT16 j = 0;

	for (file = 0; file <= (pFsJpeg->last_mp3_entry - pFsJpeg->first_mp3_entry); file++)
	{
		if (FS_Ge

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -