📄 drawtool.c
字号:
#include "global.h"
#include "func.h"
#include "util.h"
#include "stdlib.h"
//#include "hwsetup.h"
#include "fs9660.h"
#include "graph.h"
#include "framebuf.h"
//#include "macro.h"
//#include "stc.h"
#include "vpp.h"
#include "osd.h"
#include "memmap.h"
#include "regmap.h"
#include "user_init.h"
const UINT16 folderFont[][12] = {
// folder unopened
{
0x1f00, 0x3180,
0x60c0, 0x7ffe,
0x4002, 0x4002,
0x4002, 0x4002,
0x4002, 0x4002,
0x4002, 0x7ffe,
},
// folder opened
{
0x1f80, 0x30c0,
0x607e, 0x4002,
0xffe2, 0x8022,
0x4012, 0x4012,
0x200a, 0x200a,
0x1006, 0x1ffe,
},
};
/*
**
*/
void clr_window(int x_start, int y_start, int height, int width)
{
FSGUI_FillFrameBuf(x_start, y_start, width, height, BKG_Y, BKG_CRCB);
}
/*
** FUNCTION
**
** DESCRIPTION
**
*/
void FillRedColor(int startx, int endx)
{
FSGUI_FillFrameBuf(startx, TIME_Y, endx - startx, TIME_H, BKG_Y, BKG_CRCB);
}
/*
**
*/
void FSGUI_Menu()
{
int width, height;
regs0->dis_pic_id = 0;
PrintOsdMsg(STR_OS_NULL, REGION1, 1, 0, CH_N); //charles jpeg->>mp3.
#ifdef SUPPORT_JPG_ZOOM_ON
jpg_zoom_in_out = 0;
vpp_zoom = 1;
jpg_dis_xoffset = 0;
jpg_dis_yoffset = 0;
#endif
#ifdef SUPPORT_JPG_DOUBLE_BUFFER
jpg_vpp_flag = 0;
#endif
jpg_clr_menu = 0; //charles 2002/5/13
#if CONFIG==CONFIG_COMBO_SVCD
//clrBuffer(); //charles 2002/5/8
clrFrameBuffer(FRAME_REF0);
vpp_set_pic(352, 288); //charles 2002/5/13
#endif
#if CONFIG==CONFIG_COMBO_SVCD
width = 480;
height = 576;
#else
width = 352;
height = 288;
#endif
// background
FSGUI_FillFrameBuf(0, 0, width, height, BKG_Y, BKG_CRCB);
// high line
FSGUI_FillFrameBuf(0, Y1, width, LIGHT_WID, WHITE_Y, WHITE_CRCB);
FSGUI_FillFrameBuf(0, Y1 + LIGHT_WID, X1, SHADOW_WID, BLACK_Y, BLACK_CRCB);
FSGUI_FillFrameBuf(X1 + LIGHT_WID + SHADOW_WID, Y1 + LIGHT_WID,
width - X1 - LIGHT_WID - SHADOW_WID, SHADOW_WID,
BLACK_Y, BLACK_CRCB);
FSGUI_FillFrameBuf(X1, Y1 + LIGHT_WID + SHADOW_WID,
LIGHT_WID, 180, WHITE_Y, WHITE_CRCB);
FSGUI_FillFrameBuf(X1 + LIGHT_WID, Y1 + LIGHT_WID + SHADOW_WID,
SHADOW_WID, 180, BLACK_Y, BLACK_CRCB);
FSGUI_FillFrameBuf(SLOT_X, SLOT_Y, SLOT_W, SLOT_H, WHITE_Y, WHITE_CRCB);
DrawTime(0, 0);
}
/*
**
*/
void FSGUI_FillFrameBuf(int x, int y, int xSize, int ySize, UINT16 color_Y,
UINT16 color_CrCb)
{
int i, j;
if((xSize == 0) || (ySize == 0))
return;
for(j = y; j < y + ySize; j++)
{
for(i = x; i < x + xSize; i++)
{
*Y_XY(i, j) = (color_Y) & 0xff;
*C_XY(i, j) = color_CrCb;
}
}
//return;
}
/*
**
*/
void mp3_control_icon(int iShow)
{
UINT16 x, y;
UINT16 i, j;
if(Gmem.gmp3.gifsSlide + Gmem.gmp3.gifsStatic) // needn't care it when play jpeg, panxing, 2002-3-27
{
return;
}
y = 0;
if(Gmem.gmp3.in_mp3_root)
{
x = CONT_X1;
}
else
{
x = CONT_X2;
}
if(iShow)
{
for(j = CONT_Y; j <= (CONT_Y + CONT_H); j++)
{
for(i = (x + y); i <= (x + CONT_W - y); i++)
{
*Y_XY(i, j) = RED_Y;
*C_XY(i, j) = RED_CRCB;
}
y++;
}
}
else
{
clr_window(x, CONT_Y, CONT_H, CONT_W);
}
}
/*
**
*/
void mp3_dir_icon(void)
{
int iDir;
int i, j;
int x, y;
int numDir;
if(Gmem.gmp3.refresh_dir_page == 0)
{
return;
}
clr_window(DIRICON_X, DIRICON_Y, DIRICON_H, DIRICON_W);
x = DIRICON_X;
y = DIRICON_Y;
// calculate the number of directories in current dir page,panxing, 2002-3-29
if(Gmem.gmp3.dir_page_now == Gmem.gmp3.dir_total_page)
{
numDir = Gmem.gmp3.mp3_dir_cnt - (Gmem.gmp3.dir_page_now - 1) * ItemNum;
}
else
{
numDir = ItemNum;
}
for(iDir = 0; iDir < numDir; iDir++)
{
for(i = 0; i < 12; i++)
{
for(j = 0; j < 16; j++)
{
if(iDir != (Gmem.gmp3.mp3_dir_now - 1) % ItemNum)
{
if((folderFont[0][i] & (1 << (15 - j))))
{
*Y_XY((x + j), (y + i + iDir * FS_FILELIST_YSTEP)) =
LIGHTYELLOW_Y;
*C_XY((x + j), (y + i + iDir * FS_FILELIST_YSTEP)) =
LIGHTYELLOW_CRCB;
}
}
else
{
if((folderFont[1][i] & (1 << (15 - j))))
{
*Y_XY((x + j), (y + i + iDir * FS_FILELIST_YSTEP)) =
LIGHTYELLOW_Y;
*C_XY((x + j), (y + i + iDir * FS_FILELIST_YSTEP)) =
LIGHTYELLOW_CRCB;
}
}
}
}
/*
if (iDir != (Gmem.gmp3.mp3_dir_now-1)%ItemNum)
psprintf (linebuf, "%d%d\n", UNOPFOLDERL,UNOPFOLDERR);
else
psprintf (linebuf, "%d%d\n", OPFOLDERL,OPFOLDERR);
drawString(x,y+iDir*FS_FILELIST_YSTEP,linebuf);
*/
}
}
/*
**
*/
void mp3_show_path(void)
{
int iFile, iDir;
iDir = Gmem.gmp3.mp3_dir_now - 1;
iFile = Gmem.gmp3.first_mp3_entry + Gmem.gmp3.mp3_trk_now - 1;
clr_window(INFO_X, INFO_Y, INFO_H, INFO_W);
psprintf(linebuf, "[%s]%s", iso9660_dir[iDir].name,
iso9660_file[iFile].name);
//check_name (linebuf, 1);
if(strcmp(iso9660_file[iFile].ext, "MP3") == 0)
{
strcat(linebuf, ".MP3");
}
#ifdef SUPPORT_JPG //charles 2002/04/08
else if(strcmp(iso9660_file[iFile].ext, "JPG") == 0)
{
strcat(linebuf, ".JPG");
}
#endif
#if CONFIG==CONFIG_COMBO_SVCD //rbhung 2002.09.24 for EDO Release
#ifdef SUPPORT_GAME //charles 2002/04/08
else if(strcmp(iso9660_file[iFile].ext, "NES") == 0)
{
strcat(linebuf, ".NES");
}
#endif
#endif
else
{
strcat(linebuf, ".xx");
}
setColor(YELLOW_Y << 16 | YELLOW_CRCB);
drawString(INFO_X, INFO_Y, linebuf);
}
/*
**
*/
void MoveScroll(UINT16 locate)
{
int h1;
if((BAR_H - Gmem.gmp3.scroll_len) >= (file_in_dir - 1))
{
h1 = locate * Gmem.gmp3.scroll_step;
}
else
{
h1 = locate * Gmem.gmp3.scroll_step / 10;
}
clr_window(BAR_X, BAR_Y, BAR_H, BAR_W);
FSGUI_FillFrameBuf(BAR_X, BAR_Y + h1, BAR_W, Gmem.gmp3.scroll_len,
WHITE_Y, WHITE_CRCB);
//return ;
}
/*
** FUNCTION
**
** DESCRIPTION
**
*/
void mp3_file_list(UINT16 select_file)
{
UINT16 i; //Jeff 20010805 BYTE->UINT16
UINT16 j; //Jeff 20010805 BYTE->UINT16
if(Gmem.gmp3.refresh_file_page == 0)
{
return;
}
if((Gmem.gmp3.file_page_old != Gmem.gmp3.file_page_now) ||
(Gmem.gmp3.refresh_dir_page))
{
clr_window(FILEITEM_X, FILEITEM_Y, FILEITEM_H, FILEITEM_W);
}
j = 0;
i = Gmem.gmp3.first_mp3_entry + (Gmem.gmp3.file_page_now - 1) * ItemNum;
//psprintf(linebuf, "file-list %d %d %d %d\n", i,Gmem.gmp3.file_page_now,Gmem.gmp3.first_mp3_entry,Gmem.gmp3.last_mp3_entry);
//epp_write_slow(linebuf);
do
{
#ifdef MP3_DIRECT_SELECT //huo 2000.11.08
psprintf(linebuf, "%02d %s\n", (i + 1), iso9660_file[i].name);
#else /* */
psprintf(linebuf, "%02d %s\n", (i - Gmem.gmp3.first_mp3_entry + 1),
iso9660_file[i].name);
#endif /* */
check_name(linebuf, 0);
if(j ==
(select_file % ItemNum ==
0 ? (ItemNum - 1) : select_file % ItemNum - 1))
{
#ifdef MP3_DIRECT_SELECT //huo 2000.11.08
Gmem.gmp3.mp3_user_select = i + 1; //zyf 891108
#endif /* */
setColor(WHITE_Y << 16 | WHITE_CRCB);
}
else
{
setColor(YELLOW_Y << 16 | YELLOW_CRCB);
}
if(strcmp(iso9660_file[i].ext, "MP3") == 0)
{
strcat(linebuf, ".MP3");
}
#ifdef SUPPORT_JPG //charles 2002/04/08
else if(strcmp(iso9660_file[i].ext, "JPG") == 0)
{
strcat(linebuf, ".JPG");
}
#endif /* */
#if CONFIG==CONFIG_COMBO_SVCD //rbhung 2002.09.24 for EDO Release
#ifdef SUPPORT_GAME // charles 2002/04/08
else if(strcmp(iso9660_file[i].ext, "NES") == 0)
{
strcat(linebuf, ".NES");
}
#endif
#endif
else
{
strcat(linebuf, ".xx");
}
drawString(FILEITEM_X, FILEITEM_Y + j * FS_FILELIST_YSTEP, linebuf);
i++;
j++;
} while(j < ItemNum && i < Gmem.gmp3.last_mp3_entry);
Gmem.gmp3.file_page_old = Gmem.gmp3.file_page_now;
Gmem.gmp3.refresh_file_page = 0;
}
/*
**
*/
void mp3_dir_list(void)
{
UINT16 i; //Jeff 20010805 BYTE->UINT16
UINT16 j; //Jeff 20010805 BYTE->UINT16
i = (Gmem.gmp3.dir_page_now - 1) * ItemNum;
j = 0;
if(Gmem.gmp3.refresh_dir_page == 0)
{
return;
}
if(Gmem.gmp3.dir_page_old != Gmem.gmp3.dir_page_now)
{
clr_window(DIRITEM_X, DIRITEM_Y, DIRITEM_H, DIRITEM_W);
}
do
{
if(iso9660_dir[i].dir > 0)
{
j++;
psprintf(linebuf, "%02d [%s]\n", i + 1, iso9660_dir[i].name);
check_name(linebuf, 1);
if(j == (Gmem.gmp3.mp3_dir_now - 1) % ItemNum + 1)
{
setColor(WHITE_Y << 16 | WHITE_CRCB);
}
else
{
setColor(YELLOW_Y << 16 | YELLOW_CRCB);
}
drawString(DIRITEM_X, DIRITEM_Y + FS_FILELIST_YSTEP * (j - 1), linebuf); //ych 001207
}
i++;
}
while(j < ItemNum && i < Gmem.gmp3.mp3_dir_cnt);
Gmem.gmp3.dir_page_old = Gmem.gmp3.dir_page_now;
Gmem.gmp3.refresh_dir_page = 0;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -