?? fsgui_new.c
字號(hào):
/**************************************************************
** FILE
** fsGUI_new.c
**
** DESCRIPTION
** On the base of fsGUI1.c, build a new GUI for MP3/JPEG/GAME.
**
**
** Creator: zhaoyanhua
** Date: 3-7-10 13:24
****************************************************************/
#include "global.h"
#include "func.h"
#include "memmap.h"
#include "util.h"
#include "graph.h"
#include "memcfg.h"
#include "framebuf.h"
#include "macro.h"
#include "stc.h"
#include "cfont.h"
#include "vfdfunc.h"
#include "osd.h"
#include "image.h"
#include "nesinit.h"
#include "fs96602.h"
#include "fsNAV.h"
#include "fsGUI.h"
#include "fsGUI1.h"
//#include "user_if.h"
//zhaoyanhua add 3-7-25 15:08
#include "fsGUI1.h"
//#include "fsGUI_new.h"
#ifdef JPG_OLD_PARSER_FLOW
#ifdef JPG_EFFECT
#include "jpegeffect.h"
#endif
#else
#include "pic_effect.h"
#endif
#ifdef SUPPORT_HL_SCROLL_DISPLAY_LFN //yaowh 2006-11-10 10:29AM
#include "file_if.h"
#include "file_def.h"
#endif
#include "fsGUIX.h"
//extern const UINT8 pic_cd_str[17];//terry,2004/1/8 06:25PM
#ifdef FAT_FILE_MODE//liweihua 2004-10-25 20:15
extern FSJPEGDATA *pFsJpegbuf;
extern UINT32 iso9660buf;
#endif
#ifdef IDE_CF_SW
extern UINT8 max_part;
#endif//#ifdef IDE_CF_SW
#ifdef CARD_SETUP_TYPE_5
extern UINT8 PMP_CF_Card_Insert;
#endif
#ifdef FILE_MODE_WRITE
extern BYTE *mediaStr[];
extern BYTE srceType_flag;
extern FSJPEGDATA *pFsJpeg_des_buf;
extern UINT32 iso9660buf_src;
extern UINT32 iso9660buf_des;
void Draw_File_Mode_Button(void);
extern void ShowFileItem(UINT16, int);
#endif
/*
* FUNC: draw slot.
*/
void DrawScroll(UINT8 area)
{
int x, y, xSize, ySize;
x = fsArea[area].xStart;
y = fsArea[area].yStart;
xSize = fsArea[area].xSize;
ySize = fsArea[area].ySize;
#ifdef PHILIPS_FSGUI//chenzhao20050613
FSGUI_FillFrameBuf(x+1, y+ARROW_SIZE, xSize-2, ySize-2*ARROW_SIZE, PREVIEW_BKGROUND_Y, FILE_AREA_BKGROUND_CRCB);//terry,2004/1/30 06:54PM
#elif defined(INDIGO_STYLE_FSGUI)
FSGUI_FillFrameBuf( x, y, xSize, ySize, FILE_LIST_RIGHT_Y, DIR_AREA_BKGROUND_CRCB); // clear bg
FSGUI_FillFrameBuf( x, y, xSize, 1, SCROLL_LINE_Y,SCROLL_LINE_CbCr); // top line
FSGUI_FillFrameBuf( x, y, 1, ySize, SCROLL_LINE_Y,SCROLL_LINE_CbCr); // left line
FSGUI_FillFrameBuf(x+xSize, y, 1, ySize, SCROLL_LINE_Y,SCROLL_LINE_CbCr); // right line
FSGUI_FillFrameBuf( x, y+ySize, xSize, 1, SCROLL_LINE_Y,SCROLL_LINE_CbCr); // bottom line
#else
FSGUI_FillFrameBuf(x, y+ARROW_SIZE, xSize, ySize-2*ARROW_SIZE, WHITE_Y-0x05, WHITE_CRCB);//terry,2004/1/30 06:54PM
#endif
}
void MoveScroll(UINT16 locate, UINT8 area)
{
int y, fileOrDirCount,scroll_length, scroll_step;
if(area == FS_AREA_MOVEBAR)
{
DrawScroll(FS_AREA_SLOT);
fileOrDirCount = pFsJpeg->file_specify_in_dir;
scroll_step = pFsJpeg->scroll_step;
scroll_length = pFsJpeg->scroll_len;
}
#ifdef DIR_SCROLL_BAR
else
{
int iDirCount=0, total_dir=0;
for (iDirCount = 0; iDirCount < pFsJpeg->fsnav_dir_cnt; iDirCount++)
{
if (iso9660_dir[iDirCount].type & (0x01 << pFsJpeg->gifsFuncBtn))
total_dir++;
}
pFsJpeg->dir_count_in_specity_Category = total_dir;
DrawScroll(FS_DIR_AREA_SLOT);
fileOrDirCount = pFsJpeg->dir_count_in_specity_Category;
scroll_step = pFsJpeg->dir1_scroll_step;
scroll_length = pFsJpeg->dir1_scroll_len;
}
#endif
#ifndef INDIGO_STYLE_FSGUI
DrawArrow(fsArea[area].xStart,fsArea[area].yStart-ARROW_SIZE,2);
DrawArrow(fsArea[area].xStart,fsArea[area].yStart +fsArea[area].ySize,1);
#endif
if ((fsArea[area].ySize - scroll_length) >= (fileOrDirCount - 1))
y = fsArea[area].yStart + locate * scroll_step;
else
y = fsArea[area].yStart + locate * scroll_step / 100;
#ifdef INDIGO_STYLE_FSGUI
FSGUI_FillFrameBuf(fsArea[area].xStart, y, fsArea[area].xSize, scroll_length, SCROLL_LINE_Y, SCROLL_LINE_CbCr);
#else
DrawRect(fsArea[area].xStart, y, fsArea[area].xSize, scroll_length, 0, YELLOW_Y, YELLOW_CRCB);
#endif
}
#ifdef INDIGO_STYLE_FSGUI
//2006-06-02, mimitsai add for HD ui.
#ifdef INDIGO_STYLE_LARGE_FSGUI
#define lineWid 3
#else
#define lineWid 1
#endif
void DrawBottomOutLine(UINT16 x, UINT16 y, UINT16 wid, UINT16 hei, UINT8 color_y, UINT16 color_cbcr)
{
FSGUI_FillFrameBuf( x -lineWid, y -lineWid, wid, lineWid, color_y, color_cbcr);
FSGUI_FillFrameBuf( x -lineWid, y -lineWid, lineWid, hei, color_y, color_cbcr);
FSGUI_FillFrameBuf( x+wid-lineWid, y -lineWid, lineWid, hei, color_y, color_cbcr);
FSGUI_FillFrameBuf( x -lineWid, y+hei-lineWid, wid+lineWid, lineWid, color_y, color_cbcr);
}
//2006-06-02, mimitsai add for HD ui.
void DrawSelectedBottomOutLine(UINT16 x, UINT16 y, UINT16 wid, UINT16 hei)
{
FSGUI_FillFrameBuf( x -lineWid, y -lineWid, wid, lineWid, BK_GROUNDY, BK_GROUNDCRCB);
FSGUI_FillFrameBuf( x -lineWid, y -lineWid, lineWid, hei, BK_GROUNDY, BK_GROUNDCRCB);
FSGUI_FillFrameBuf( x+wid-lineWid, y -lineWid, lineWid, hei, (RGB2Y (125, 128, 156)), (RGB2Cr(125, 128, 156)<<8)|(RGB2Cb(125, 128, 156)));
FSGUI_FillFrameBuf( x -lineWid, y+hei-lineWid, wid+lineWid, lineWid, (RGB2Y (125, 128, 156)), (RGB2Cr(125, 128, 156)<<8)|(RGB2Cb(125, 128, 156)));
}
#endif
void SelectHL()
{
int iFiles;
#ifdef MP3_DIRECT_SELECT
iFiles = pFsJpeg->count_file[pFsJpeg->gifsFuncBtn - FS_FUNC_MP3];
#else
iFiles = pFsJpeg->file_specify_in_dir;
#endif
// 2004/04/20 yltseng, to make HL wider for Chinse Font and Joliet
#ifdef INDIGO_STYLE_FSGUI
HL_Width = ITEM_MAX_WIDTH;
#else
#if defined (SUPPORT_FONT_UTIL) || defined (SUPPORT_JOLIET_FORMAT) // 2005/02/16 yltseng
#ifdef DIR_SCROLL_BAR
HL_Width = 110;;
#else
HL_Width = 116;
#endif
#else
if (iFiles>999)
HL_Width = 116;
else if (iFiles>99)
HL_Width = 108;
else
#ifdef DIR_SCROLL_BAR
HL_Width = 110;
#else
HL_Width = 116;
#endif
#endif
#endif
//ShowHL();//move to the last of SelectHL() zhaoyanhua 2004-2-2 17:13
#ifdef MP3_TXT_DISPLAY //zhaoyanhua add 2003-9-2 9:40
if ( ( (JPEG_Preview_drawed == DIR_LIST_IN_DIR_AREA)
&&(pFsJpeg->gifsFuncBtn != FS_FUNC_MP3) )
|| ( (MP3_Lyrics_Drawed == DIR_LIST_IN_DIR_AREA)
&&(pFsJpeg->gifsFuncBtn == FS_FUNC_MP3)))//zhaoyanhua modify 2003-8-28 13:29
#else
//to avoid the bug : when play JPEG, BUTTON->FILE (RIGHT) or(UP) ,not draw DIR playing again.
//zhaoyanhua modify 2003-12-27 11:10
if ( ((JPEG_Preview_drawed == DIR_LIST_IN_DIR_AREA) //&&(!(pFsJpeg->gifsbPreview))
&&(pFsJpeg->gifsFuncBtn == FS_FUNC_JPEG))//for JPEG
||((JPEG_Preview_drawed == DIR_LIST_IN_DIR_AREA) && (pFsJpeg->gifsFuncBtn != FS_FUNC_JPEG))//for MP3/OTHER
)
#endif
{
#if defined (SUPPORT_ID3) && defined( SUPPORT_ID3_NEWGUI ) // in FSGUI dir area 2007-1-31 13:57
if ((pFsJpeg->gifsFuncBtn == FS_FUNC_MP3 && pFsJpeg->ControlArea == CNT_AREA_DIR)
|| pFsJpeg->gifsFuncBtn != FS_FUNC_MP3)
#endif
{
ShowCurrentDirPlaying();
}
}
ShowCurrentFilePlaying();
ShowHL();//zhaoyanhua move here 2004-2-2 17:13
}
#ifdef READ_FAT_LONGNAME //linrc 2005-3-17 10:58
BYTE dFlag;
void ShowHL(void)
{
#ifdef AUDIO_SHOW_SAVER
if (bDisableGUI) return;
#endif
#if defined(FAT_FILE_MODE)||defined(FILE_MODE_WRITE)
FSJPEGDATA *addr1;
UINT32 addr2;
BYTE j;
#endif
// clear last HL
switch (old_ControlArea)
{
case CNT_AREA_FILE:
//zhaoyanhua add 2004-2-2 16:54
//make some changes for the GUI not blink .
if(HL_show == fsnav_file_HL)
ShowCurrentFilePlaying();
else
{//2006-06-02, mimitsai add for HD ui.
ClearRectArea(Rect[FILE_RECT], FILE_STEP, FILE_LIST_LEFT_Y, FILE_LIST_RIGHT_Y, FILE_AREA_BKGROUND_CRCB,FS_AREA_FILEITEM, HL_show);
FSShowFileItem(HL_show, FS_GetFileProperty(pFsJpeg->file_array[HL_show],FILE_PROPERTY_NAME));//resume the last HL
//FSShowFileItem(HL_show, iso9660_file[pFsJpeg->file_array[HL_show]].name);//resume the last HL
}
break;
case CNT_AREA_DIR:
//zhaoyanhua add 2004-2-2 16:54
//make some changes for the GUI not blink .
if(HL_show == fsnav_dir_HL)
{
#if defined (SUPPORT_ID3) && defined (SUPPORT_ID3_NEWGUI) // in FSGUI dir area 2007-1-31 13:57 denghg add for not ShowCurrentFilePlaying when move from dir area 2007-2-3 9:55
if (pFsJpeg->gifsFuncBtn != FS_FUNC_MP3
|| (pFsJpeg->ControlArea == CNT_AREA_DIR && pFsJpeg->gifsFuncBtn == FS_FUNC_MP3))
#endif
{
ShowCurrentDirPlaying();
}
}
else
{//2006-06-02, mimitsai add for HD ui.
ClearRectArea(Rect[DIR_RECT], DIR_STEP, FILE_LIST_LEFT_Y, FILE_LIST_RIGHT_Y, DIR_AREA_BKGROUND_CRCB, FS_AREA_DIRITEM, HL_show);
ShowDirItem(HL_show,iso9660_dir[pFsJpeg->dir_array[HL_show]].name);//resume the last HL
}
break;
case CNT_AREA_MP3BUTTON:
{
#ifdef INDIGO_STYLE_FSGUI
if(pFsJpeg->gifsFuncBtn == FS_FUNC_MP3)
DrawSelectedBottomOutLine(fsArea[FS_AREA_MP3_BUTTON].xStart, fsArea[FS_AREA_MP3_BUTTON].yStart, fsArea[FS_AREA_MP3_BUTTON].xSize, fsArea[FS_AREA_MP3_BUTTON].ySize);
else
DrawBottomOutLine(fsArea[FS_AREA_MP3_BUTTON].xStart,fsArea[FS_AREA_MP3_BUTTON].yStart, fsArea[FS_AREA_MP3_BUTTON].xSize ,fsArea[FS_AREA_MP3_BUTTON].ySize, HIGHLIGHT_BG_COLOR_Y, HIGHLIGHT_BG_COLOR_CbCr);
#else
DrawRect(fsArea[FS_AREA_BUTTON].xStart, fsArea[FS_AREA_BUTTON].yStart,
25, 25,
pFsJpeg->gifsFuncBtn == FS_FUNC_MP3 ? 1 : 0, BK_GROUNDY, BK_GROUNDCRCB);
DrawFileIcon(fsArea[FS_AREA_BUTTON].xStart + 6, fsArea[FS_AREA_BUTTON].yStart + 6, CNT_AREA_MP3BUTTON - 2);
#endif
}
break;
case CNT_AREA_JPEGBUTTON:
{
#ifdef INDIGO_STYLE_FSGUI
if(pFsJpeg->gifsFuncBtn == FS_FUNC_JPEG)
DrawSelectedBottomOutLine(fsArea[FS_AREA_JPG_BUTTON].xStart, fsArea[FS_AREA_JPG_BUTTON].yStart, fsArea[FS_AREA_JPG_BUTTON].xSize, fsArea[FS_AREA_JPG_BUTTON].ySize);
else
DrawBottomOutLine(fsArea[FS_AREA_JPG_BUTTON].xStart,fsArea[FS_AREA_JPG_BUTTON].yStart, fsArea[FS_AREA_JPG_BUTTON].xSize ,fsArea[FS_AREA_JPG_BUTTON].ySize, HIGHLIGHT_BG_COLOR_Y, HIGHLIGHT_BG_COLOR_CbCr);
#else
DrawRect(fsArea[FS_AREA_BUTTON].xStart+27, fsArea[FS_AREA_BUTTON].yStart,
25, 25,
pFsJpeg->gifsFuncBtn == FS_FUNC_JPEG ? 1 : 0, BK_GROUNDY, BK_GROUNDCRCB);
DrawFileIcon(fsArea[FS_AREA_BUTTON].xStart + 33, fsArea[FS_AREA_BUTTON].yStart + 6, CNT_AREA_JPEGBUTTON - 2);
#endif
}
break;
#ifdef SUPPORT_NESGAME
case CNT_AREA_GAMEBUTTON:
{
#ifdef INDIGO_STYLE_FSGUI
if(pFsJpeg->gifsFuncBtn == FS_FUNC_GAME)
DrawSelectedBottomOutLine(fsArea[FS_AREA_GAME_BUTTON].xStart, fsArea[FS_AREA_GAME_BUTTON].yStart, fsArea[FS_AREA_GAME_BUTTON].xSize, fsArea[FS_AREA_GAME_BUTTON].ySize);
else
DrawBottomOutLine(fsArea[FS_AREA_GAME_BUTTON].xStart,fsArea[FS_AREA_GAME_BUTTON].yStart, fsArea[FS_AREA_GAME_BUTTON].xSize ,fsArea[FS_AREA_GAME_BUTTON].ySize, HIGHLIGHT_BG_COLOR_Y, HIGHLIGHT_BG_COLOR_CbCr);
#else
DrawRect(fsArea[FS_AREA_BUTTON].xStart+54, fsArea[FS_AREA_BUTTON].yStart,
25, 25,
pFsJpeg->gifsFuncBtn == FS_FUNC_GAME ? 1 : 0, BK_GROUNDY, BK_GROUNDCRCB);
DrawFileIcon(fsArea[FS_AREA_BUTTON].xStart + 60, fsArea[FS_AREA_BUTTON].yStart + 6, CNT_AREA_GAMEBUTTON - 2);
#endif
}
break;
#endif
#ifdef SUPPORT_FILE_SYSTEM_MODE
case CNT_AREA_OTHERBUTTON:
{
#ifdef INDIGO_STYLE_FSGUI
if(pFsJpeg->gifsFuncBtn == FS_FUNC_OTHER)
DrawSelectedBottomOutLine(fsArea[FS_AREA_OTHER_BUTTON].xStart, fsArea[FS_AREA_OTHER_BUTTON].yStart, fsArea[FS_AREA_OTHER_BUTTON].xSize, fsArea[FS_AREA_OTHER_BUTTON].ySize);
else
DrawBottomOutLine(fsArea[FS_AREA_OTHER_BUTTON].xStart,fsArea[FS_AREA_OTHER_BUTTON].yStart, fsArea[FS_AREA_OTHER_BUTTON].xSize ,fsArea[FS_AREA_OTHER_BUTTON].ySize, HIGHLIGHT_BG_COLOR_Y, HIGHLIGHT_BG_COLOR_CbCr);
#else
#ifdef SUPPORT_NESGAME
DrawRect(fsArea[FS_AREA_BUTTON].xStart+81, fsArea[FS_AREA_BUTTON].yStart,
25, 25,
pFsJpeg->gifsFuncBtn == FS_FUNC_GAME ? 1 : 0, BK_GROUNDY, BK_GROUNDCRCB);
DrawFileIcon(fsArea[FS_AREA_BUTTON].xStart + 87, fsArea[FS_AREA_BUTTON].yStart + 6, CNT_AREA_OTHERBUTTON - 2);
#else
DrawRect(fsArea[FS_AREA_BUTTON].xStart+54, fsArea[FS_AREA_BUTTON].yStart,
25, 25,
pFsJpeg->gifsFuncBtn == FS_FUNC_OTHER ? 1 : 0, BK_GROUNDY, BK_GROUNDCRCB);
DrawFileIcon(fsArea[FS_AREA_BUTTON].xStart + 60, fsArea[FS_AREA_BUTTON].yStart + 6, CNT_AREA_OTHERBUTTON - 2);
#endif
#endif
?? 快捷鍵說(shuō)明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -