?? fsgui_new_large.c
字號:
/**************************************************************
** FILE
** fsGUI_new_large.c
**
** DESCRIPTION
** On the base of fsGUI_new.c, build a larger Memory Mode GUI for MP3/JPEG/GAME.
**
**
** Creator: MaoYong
** Date: 3-12-19 14:49
****************************************************************/
#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"
//Maoyong 2004.04.15 add MP3_LARGE_GUI in fsGUI_new.h for different define.
#include "fsGUI_new.h"
#ifdef JPG_OLD_PARSER_FLOW
#ifdef JPG_EFFECT
#include "jpegeffect.h"
#endif
#else
#include "pic_effect.h"
#endif
#ifdef MP3_TXT_DISPLAY//zhaoyanhua add 2003-9-1 17:49
//for MP3_Lyrics_Drawed
#define MP3_LYRICS_IN_DIR_AREA 1
#define DIR_LIST_IN_DIR_AREA 0
extern UINT16 MP3TotalNo;
extern BYTE MP3_Lyrics_Drawed;
extern void ShowLyricsWhileHL(void);
#endif
extern void set_disbuf_now(int);
extern BYTE jpg_break_up_down; //Maoyong 2004.04.19
//#define NEW_MP3_GUI_DEBUG
#if 0
#ifndef NEW_MP3_GUI_DEBUG
#undef printf
#endif
#endif
//define main menu look-and-feel style
//Notes : to avoid blinking (when white/black line displaying in n/n+1 line, with interlace mode)
// SHADOW_WID , LIGHT_WID should >=2
// X1, Y1, Y3 should be 2*n
#define SHADOW_WID 2
#define LIGHT_WID 2
#define LT 1//CornerLT
#define LB 2//CornerRT
#define RT 3//CornerLB
#define RB 4//CornerRB
///////////////////////////////////////////////////////////////////////
void DrawArrow(int xStart, int yStart, BYTE updown);
//2006-06-02, mimitsai add for HD ui.
void DrawRectCorner(BTNAREA Rect, int CornerRad, BYTE updown, UINT8 step, BYTE Y_1, BYTE Y_2, UINT16 RegionColor_C);
void ClearRectArea(BTNAREA Rect, UINT16 RectColorStep, BYTE Y_1, BYTE Y_2, UINT16 CbCr,int iIndex,int iItem);
void ShowPlayFrame(int x, int y,int len,int high);
void ShowCurrentDirPlaying();
void ShowCurrentFilePlaying();
///////////////////////////////////////////////////////////////////////
//module global functions for internal reference
void DirList();
void FileList(void);
void DrawFolderIcon(int x, int y, BYTE type);
void ShowDirItem(int iItem, const char *s);
void FSShowDirIcon(void);
void ShowFileIcon(void);
void DrawFileIconX(int x, int y, int type, int mono);
#define DrawFileIcon(x,y,t) DrawFileIconX(x,y,t,0)
void DrawScroll(UINT8);
void ClearArea(UINT16 iIndex);
void SelectHL();
void ShowButtonHL(int x, int y,int len);
//void ShowHL(int x, int y,int len,int high);
void ShowHL();
void FSGUI_FlashFileIcon(int iFlash);
UINT16 CountSpecifyFile(int iDir);
int PrepareForChangeFilePage(UINT16 iPage, UINT16 iSpecialTrk,UINT16 iDirect);
void CalcDirNow(UINT16 *iDir);
//module global variables for internal reference
UINT16 Hl_x;
UINT16 Hl_y;
UINT16 Hl_len;
UINT16 Hl_high;
UINT16 Hl_x_btn;
UINT16 Hl_y_btn;
UINT16 Hl_len_btn;
UINT16 old_file_page; // index of current page
UINT16 old_dir_page;
UINT16 refresh_file_page;
UINT16 refresh_dir_page;
UINT16 refresh_dir_icon;
#ifdef AUDIO_SHOW_SAVER
BYTE bDisableGUI = 0;
#endif
// define a struct .
//for draw RECT. zhaoyanhua add 3-7-25 15:01
#include "fsGUIX.h"
//extern const UINT8 pic_cd_str[17];//terry,2004/1/8 06:25PM
void DrawButton(void)
{
#ifdef AUDIO_SHOW_SAVER
if (bDisableGUI) return;
#endif
//draw MP3 icon
if (pFsJpeg->gifsMP3Count)
{
DrawRect(fsArea[FS_AREA_BUTTON].xStart, fsArea[FS_AREA_BUTTON].yStart,
48, 48,
pFsJpeg->gifsFuncBtn == FS_FUNC_MP3 ? 1 : 0, BK_GROUNDY, BK_GROUNDCRCB);
}
else
{
FSGUI_FillFrameBuf(fsArea[FS_AREA_BUTTON].xStart, fsArea[FS_AREA_BUTTON].yStart,
48, 48,
BK_GROUNDY, BK_GROUNDCRCB);
}
DrawFileIcon(fsArea[FS_AREA_BUTTON].xStart + 12, fsArea[FS_AREA_BUTTON].yStart + 12, CNT_AREA_MP3BUTTON - 2);
//draw JPEG icon
if (pFsJpeg->gifsJPEGCount)
{
DrawRect(fsArea[FS_AREA_BUTTON].xStart + 50, fsArea[FS_AREA_BUTTON].yStart, 48, 48,
pFsJpeg->gifsFuncBtn == FS_FUNC_JPEG ? 1 : 0, BK_GROUNDY, BK_GROUNDCRCB);
}
else
{
FSGUI_FillFrameBuf(fsArea[FS_AREA_BUTTON].xStart + 50, fsArea[FS_AREA_BUTTON].yStart,
48, 48,
BK_GROUNDY, BK_GROUNDCRCB);
}
DrawFileIcon(fsArea[FS_AREA_BUTTON].xStart + 62, fsArea[FS_AREA_BUTTON].yStart + 12, CNT_AREA_JPEGBUTTON - 2);
#if defined(SUPPORT_NESGAME)||defined(SUPPORT_SPG_GAME)
//Jeff 20020521
//draw GAME icon
if (pFsJpeg->gifsGAMECount)
{
DrawRect(fsArea[FS_AREA_BUTTON].xStart + 100, fsArea[FS_AREA_BUTTON].yStart, 48, 48,
pFsJpeg->gifsFuncBtn == FS_FUNC_GAME? 1 : 0, BK_GROUNDY, BK_GROUNDCRCB);
}
else
{
FSGUI_FillFrameBuf(fsArea[FS_AREA_BUTTON].xStart + 100, fsArea[FS_AREA_BUTTON].yStart,
48, 48,
BK_GROUNDY, BK_GROUNDCRCB);
}
DrawFileIcon(fsArea[FS_AREA_BUTTON].xStart + 112, fsArea[FS_AREA_BUTTON].yStart + 12, CNT_AREA_GAMEBUTTON - 2);
#endif
#ifdef SUPPORT_FILE_SYSTEM_MODE // Robert 020930
#ifdef SUPPORT_NESGAME
if (pFsJpeg->gifsOtherCount)
{
DrawRect(fsArea[FS_AREA_BUTTON].xStart + 150, fsArea[FS_AREA_BUTTON].yStart, 48, 48,
pFsJpeg->gifsFuncBtn == FS_FUNC_OTHER? 1 : 0, BK_GROUNDY, BK_GROUNDCRCB);
}
else
{
FSGUI_FillFrameBuf(fsArea[FS_AREA_BUTTON].xStart + 150, fsArea[FS_AREA_BUTTON].yStart,
48, 48,
BK_GROUNDY, BK_GROUNDCRCB);
}
DrawFileIcon(fsArea[FS_AREA_BUTTON].xStart + 162, fsArea[FS_AREA_BUTTON].yStart + 12, CNT_AREA_OTHERBUTTON - 2);
#else
if (pFsJpeg->gifsOtherCount)
{
DrawRect(fsArea[FS_AREA_BUTTON].xStart + 100, fsArea[FS_AREA_BUTTON].yStart, 48, 48,
pFsJpeg->gifsFuncBtn == FS_FUNC_OTHER? 1 : 0, BK_GROUNDY, BK_GROUNDCRCB);
}
else
{
FSGUI_FillFrameBuf(fsArea[FS_AREA_BUTTON].xStart + 100, fsArea[FS_AREA_BUTTON].yStart,
48, 48,
BK_GROUNDY, BK_GROUNDCRCB);
}
DrawFileIcon(fsArea[FS_AREA_BUTTON].xStart + 112, fsArea[FS_AREA_BUTTON].yStart + 12, CNT_AREA_OTHERBUTTON - 2);
#endif
#endif
#ifdef SUPPORT_MIDI
#ifdef SUPPORT_NESGAME
if (pFsJpeg->gifsMidiCount)
{
DrawRect(fsArea[FS_AREA_BUTTON].xStart + 200, fsArea[FS_AREA_BUTTON].yStart,
48, 48,
pFsJpeg->gifsFuncBtn == FS_FUNC_MIDI? 1 : 0, BK_GROUNDY, BK_GROUNDCRCB);
}
else
{
FSGUI_FillFrameBuf(fsArea[FS_AREA_BUTTON].xStart + 200, fsArea[FS_AREA_BUTTON].yStart,
48, 48,
BK_GROUNDY, BK_GROUNDCRCB);
}
DrawFileIcon(fsArea[FS_AREA_BUTTON].xStart + 212, fsArea[FS_AREA_BUTTON].yStart + 12, CNT_AREA_MIDIBUTTON - 2);
#else
if (pFsJpeg->gifsMidiCount)
{
DrawRect(fsArea[FS_AREA_BUTTON].xStart + 150, fsArea[FS_AREA_BUTTON].yStart,
48, 48,
pFsJpeg->gifsFuncBtn == FS_FUNC_MIDI? 1 : 0, BK_GROUNDY, BK_GROUNDCRCB);
}
else
{
FSGUI_FillFrameBuf(fsArea[FS_AREA_BUTTON].xStart + 162, fsArea[FS_AREA_BUTTON].yStart,
48, 48,
BK_GROUNDY, BK_GROUNDCRCB);
}
DrawFileIcon(fsArea[FS_AREA_BUTTON].xStart + 87, fsArea[FS_AREA_BUTTON].yStart + 12, CNT_AREA_MIDIBUTTON - 2);
#endif
#endif
return;
}
/*
* 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;
FSGUI_FillFrameBuf(x, y+ARROW_SIZE, xSize, ySize-2*ARROW_SIZE, WHITE_Y-0x05, WHITE_CRCB);//terry,2004/1/30 06:54PM
}
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
DrawArrow(fsArea[area].xStart,fsArea[area].yStart-ARROW_SIZE,2);
DrawArrow(fsArea[area].xStart,fsArea[area].yStart +fsArea[area].ySize,1);
if ((fsArea[area].ySize - scroll_length) >= (fileOrDirCount - 1))
y = fsArea[area].yStart + locate * scroll_step;
else
y = fsArea[area].yStart + locate * scroll_step / 10;
DrawRect(fsArea[area].xStart, y, fsArea[area].xSize, scroll_length, 0, YELLOW_Y, YELLOW_CRCB);
}
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
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -