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

📄 fsgui_new_large.c

📁 dvd里面的一个文件系统的代码
💻 C
📖 第 1 页 / 共 2 页
字号:
/**************************************************************
** 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 + -