?? fsgui_new.c
字號:
Limit=pDSV->ORI_PG_Ns;
else
Limit=pDSV->PL_Ns;
//if (!refresh_dir_page)
// return;
VRClearRectArea(VR_Item_Rect, DIR_STEP, DIR_AREA_BKGROUND_CRCB, -1);//zhaoyanhua add
// DrawRectCorner(VR_PG_Rect, CORNER_RAD, 1,DIR_STEP, DIR_AREA_BKGROUND_CRCB);
VRShowHL();
//sJpeg->Dir_Count=Limit;
i = pFsJpeg->dir_page_now * VR_PER_PAGE;
j = 0;
while (j < VR_PER_PAGE && i < Limit)
{
VR_Show_Item(i, j);
j++;
i++;
}
}
//
// Draw VR main menu, fill framebuf by some difference color
//
void VR_FSGUI_Menu()
{
// background
//FSGUI_FillFrameBuf(0,0,352,288,BK_GROUNDY,BK_GROUNDCRCB);
FSGUI_FillFrameBuf(0,0,352,288,BK_GROUNDY,BK_CRCB);
#ifdef MONO_FSGUI //FS GUI, axel 2003-12-29 23:26
// DrawRectCorner(Rect[DIR_RECT], CORNER_RAD, 1,1, DIR_AREA_BKGROUND_CRCB);
// DrawRectCorner(Rect[FILE_RECT], CORNER_RAD, 1, 1, FILE_AREA_BKGROUND_CRCB);
#else
DrawRectCorner(VR_PG_Rect, CORNER_RAD, 1,DIR_STEP, 0x36, 0xc1, DIR_AREA_BKGROUND_CRCB);
#endif
}
#define BUTTON_OFFSET 90
/*
void VR_Draw_Button(UINT8 PlaylistCount,UINT16 Mode)
{
{
DrawRect(fsArea[FS_AREA_BUTTON].xStart+BUTTON_OFFSET, fsArea[FS_AREA_BUTTON].yStart,
25, 25,
Mode == 0 ? 1 : 0, BUTTON_Y, BUTTON_CRCB);
}
DrawFileIcon(fsArea[FS_AREA_BUTTON].xStart +BUTTON_OFFSET+ 6, fsArea[FS_AREA_BUTTON].yStart + 6, CNT_AREA_MP3BUTTON - 2);
//draw JPEG icon
if (PlaylistCount)
{
DrawRect(fsArea[FS_AREA_BUTTON].xStart +BUTTON_OFFSET+ 27, fsArea[FS_AREA_BUTTON].yStart, 25, 25,
Mode == 1 ? 1 : 0, BUTTON_Y, BUTTON_CRCB);
}
else
{
FSGUI_FillFrameBuf(fsArea[FS_AREA_BUTTON].xStart+BUTTON_OFFSET + 27, fsArea[FS_AREA_BUTTON].yStart,
25, 25,
BUTTON_Y, BUTTON_CRCB);
}
DrawFileIcon(fsArea[FS_AREA_BUTTON].xStart +BUTTON_OFFSET+ 33, fsArea[FS_AREA_BUTTON].yStart + 6, CNT_AREA_JPEGBUTTON - 2);
}
*/
#define BUTTON_START_X 120
#define BUTTON_START_Y 245
void VR_Draw_Button(UINT8 PlaylistCount)
{
DrawRect(BUTTON_START_X, BUTTON_START_Y,
100, 25,
VR_Mode == 0 ? 1 : 0, BUTTON_Y, BUTTON_CRCB);
// DrawFileIcon(fsArea[FS_AREA_BUTTON].xStart ++ 6, fsArea[FS_AREA_BUTTON].yStart + 6, CNT_AREA_MP3BUTTON - 2);
FSGUI_ShowString(BUTTON_START_X+15,
BUTTON_START_Y+5,
"ORIGINAL", YELLOW_Y, YELLOW_CRCB);
//draw JPEG icon
if (PlaylistCount)
{
DrawRect(BUTTON_START_X +100+2, BUTTON_START_Y, 100, 25,
VR_Mode == 1 ? 1 : 0, BUTTON_Y, BUTTON_CRCB);
}
else
{
FSGUI_FillFrameBuf(BUTTON_START_X+100+2, BUTTON_START_Y,
100, 25,
BUTTON_Y, BUTTON_CRCB);
}
//DrawFileIcon(fsArea[FS_AREA_BUTTON].xStart +BUTTON_OFFSET+ 33, fsArea[FS_AREA_BUTTON].yStart + 6, CNT_AREA_JPEGBUTTON - 2);
FSGUI_ShowString(BUTTON_START_X+15+100+2,
BUTTON_START_Y+5,
"PLAYLIST", YELLOW_Y, YELLOW_CRCB);
}
void VR_Menu_Set_Scroll()
{
pFsJpeg->File_Page_Count = (pFsJpeg->file_specify_in_dir + VR_PER_PAGE - 1) / VR_PER_PAGE;
if (pFsJpeg->File_Page_Count != 1)
pFsJpeg->scroll_len = fsArea[FS_AREA_MOVEBAR].ySize / pFsJpeg->File_Page_Count;
else if (pFsJpeg->file_specify_in_dir != 1)
pFsJpeg->scroll_len = fsArea[FS_AREA_MOVEBAR].ySize / 2;
else
pFsJpeg->scroll_len = fsArea[FS_AREA_MOVEBAR].ySize;
if (pFsJpeg->scroll_len < 4)
pFsJpeg->scroll_len = 4;
if ((fsArea[FS_AREA_MOVEBAR].ySize - pFsJpeg->scroll_len) >= (pFsJpeg->file_specify_in_dir - 1))
{
pFsJpeg->scroll_step = (fsArea[FS_AREA_MOVEBAR].ySize - pFsJpeg->scroll_len) / (pFsJpeg->file_specify_in_dir - 1);
pFsJpeg->scroll_len = fsArea[FS_AREA_MOVEBAR].ySize - pFsJpeg->scroll_step * (pFsJpeg->file_specify_in_dir - 1);
}
else
{
pFsJpeg->scroll_step = 10 * (fsArea[FS_AREA_MOVEBAR].ySize - pFsJpeg->scroll_len) / (pFsJpeg->file_specify_in_dir - 1);
pFsJpeg->scroll_len = fsArea[FS_AREA_MOVEBAR].ySize - pFsJpeg->scroll_step * (pFsJpeg->file_specify_in_dir - 1) / 10;
}
pFsJpeg->file_page_will = 0;
pFsJpeg->file_will = 0;
}
void VRShowHL(void)
{
// clear last HL
switch (old_ControlArea)
{
case CNT_AREA_DIR:
{
VRClearRectArea(VR_Item_Rect, DIR_STEP, DIR_AREA_BKGROUND_CRCB, HL_show%VR_PER_PAGE);
VR_Show_Item(HL_show,HL_show%VR_PER_PAGE);
}
break;
case CNT_AREA_MP3BUTTON:
case CNT_AREA_JPEGBUTTON:
#if 0
{
DrawRect(fsArea[FS_AREA_BUTTON].xStart+BUTTON_OFFSET, fsArea[FS_AREA_BUTTON].yStart,
25, 25,
VR_Mode == VR_MODE_ORI? 1 : 0, BUTTON_Y, BUTTON_CRCB);
DrawFileIcon(fsArea[FS_AREA_BUTTON].xStart + 6+BUTTON_OFFSET, fsArea[FS_AREA_BUTTON].yStart + 6, CNT_AREA_MP3BUTTON - 2);
}
{
//FSGUI_FillFrameBuf(fsArea[FS_AREA_BUTTON].xStart + 3+ 27-1, fsArea[FS_AREA_BUTTON].yStart + 3, 24,24, BUTTON_Y,BUTTON_CRCB);
DrawRect(fsArea[FS_AREA_BUTTON].xStart+27+BUTTON_OFFSET, fsArea[FS_AREA_BUTTON].yStart,
25, 25,
VR_Mode == VR_MODE_PLAYLIST? 1 : 0, BUTTON_Y, BUTTON_CRCB);
DrawFileIcon(fsArea[FS_AREA_BUTTON].xStart + 33+BUTTON_OFFSET, fsArea[FS_AREA_BUTTON].yStart + 6, CNT_AREA_JPEGBUTTON - 2);
}
#else
VR_Draw_Button(pDSV->PL_Ns);
#endif
break;
default: break;
}
// draw current HL
switch (pFsJpeg->ControlArea)
{
case CNT_AREA_DIR:
{
HL_show = pFsJpeg->dir_current;
old_ControlArea = CNT_AREA_DIR;
FSGUI_FillFrameBuf(VR_Item_Rect.xStart , FS_DIRLIST_YSTART + (HL_show%VR_PER_PAGE)*VR_PER_PAGE* FS_FILELIST_YSTEP, HL_Width, HL_Heighth*3+10, HL_Y, HL_CRCB);
VR_Show_Item(HL_show,HL_show%VR_PER_PAGE);
}
break;
case CNT_AREA_MP3BUTTON:
{
old_ControlArea = CNT_AREA_MP3BUTTON;
#if 0
FSGUI_FillFrameBuf(fsArea[FS_AREA_BUTTON].xStart+BUTTON_OFFSET , fsArea[FS_AREA_BUTTON].yStart , 25,25,HL_Y,HL_CRCB);
DrawFileIcon(fsArea[FS_AREA_BUTTON].xStart+BUTTON_OFFSET+ 6, fsArea[FS_AREA_BUTTON].yStart + 6, CNT_AREA_MP3BUTTON - 2);
#else
FSGUI_FillFrameBuf(BUTTON_START_X , BUTTON_START_Y, 100,25,HL_Y,HL_CRCB);
FSGUI_ShowString(BUTTON_START_X+15,
BUTTON_START_Y+5,
"ORIGINAL", YELLOW_Y, YELLOW_CRCB);
#endif
}
break;
case CNT_AREA_JPEGBUTTON:
{
old_ControlArea = CNT_AREA_JPEGBUTTON;
#if 0
FSGUI_FillFrameBuf(fsArea[FS_AREA_BUTTON].xStart+27+BUTTON_OFFSET, fsArea[FS_AREA_BUTTON].yStart , 25,25, HL_Y,HL_CRCB);
DrawFileIcon(fsArea[FS_AREA_BUTTON].xStart+BUTTON_OFFSET + 33, fsArea[FS_AREA_BUTTON].yStart + 6, CNT_AREA_JPEGBUTTON - 2);
#else
FSGUI_FillFrameBuf(BUTTON_START_X +100+2 , BUTTON_START_Y, 100,25,HL_Y,HL_CRCB);
FSGUI_ShowString(BUTTON_START_X+15+100+2,
BUTTON_START_Y+5,
"PLAYLIST", YELLOW_Y, YELLOW_CRCB);
#endif
}
break;
default: break;
}
}
void VR_Draw_Menu_Bkg()
{
disable_video();
config_memory(MEMORY_GRAPH_SMALL);
setup_tv_format(tv_format);
delay_srv_10ms(2);
VR_FSGUI_Menu();
delay_srv_10ms(2);
enable_video();
DrawScroll();
pFsJpeg->file_specify_in_dir=pDSV->ORI_PG_Ns;
VR_Menu_Set_Scroll();
MoveScroll(0);
VR_PG_List();
VR_Draw_Button(pDSV->PL_Ns);
}
void FSGUI_FillFrameBuf2(int x, int y, int xSize, int ySize, UINT16 color_Y, UINT16 color_CrCb)
{
int i, j;
for (j = y; j < y + ySize; j++)
{
for (i = x; i < x + xSize; i++)
{
UINT16 NewY;
if((color_Y-(i-150)/6-j/6)>10)
NewY=(color_Y-(i-150)/6-j/6);
else
NewY=10;
*Y_XY(i, j) = NewY & 0xff;
*C_XY(i, j) = color_CrCb;
}
}
}
void FSGUI_ShowBigString(int x, int y, const char *s, BYTE iY, UINT16 iCbCr)
{
int i = 0;
BYTE* p = (BYTE *)s;
int length = 0;
//sometime may exceed 25 chinese
//zhaoyanhua modify. 2003-8-26 14:36
#ifdef MP3_TXT_DISPLAY
unsigned char ss[100];
#else
unsigned char ss[50];
#endif
unsigned char* ss_ptr = ss;
strcpy(ss_ptr, p);
while(p[i])
{
length++;
i++;
}
i = 0;
while (*p)
{
BYTE c;
BYTE c1;
int iRes = 0;
// which character
c = *p;
c1 = *(p + 1);
#ifdef USE_GB2312_FONT
if (((c >= 0xA1) && (c <= 0xF8)) && ((c1 >= 0xA1) && (c1 < 0xFF)))
{
// GB code
iRes = 3;
}
else
#endif
#ifdef USE_BIG5_FONT
if(((c >= 0xA1) && (c <= 0xF9)) && ((c1 >= 0x40 && c1 <= 0x7E) || (c1 >= 0xA1 && c1 <= 0xFE))) // yhwang for big5 20021001
{
// Big5 code
iRes = 2;
}
else
#endif
if ((c >= 32) && (c <= 126)) // ASCII code
iRes = 1;
else
{
iRes = 0;
c = '_';
}
if ((iRes == 0) || (iRes == 1))
{
#ifdef SUPPORT_CHINESE_FONT // Clead
if ((c == '!') || (c == '"') || (c == '#') || (c == '$') ||
(c == '&') || (c == '\'') || (c == '(') || (c == ')') ||
(c == ',') || (c == ';') || (c == '=') || (c == '^'))
#ifdef USE_GB2312_FONT
{
c1 = 0x03 + 0xa0;
c = c + 0x80;
FSGUI_GBShowChar(0, (x + i), y, c1, c, iY, iCbCr);
}
else
#elif defined(USE_BIG5_FONT)
{
if(c < 114)
{
c1 = 0xa2;
c = c + 0x8e;
}
else
{
c1 = 0xa3;
c = c - 113 + 0x40;
}
FSGUI_Big5ShowChar(0, (x + i), y, c1, c, iY, iCbCr);
}
else
#endif
FSGUI_ShowChar(0, (x + i), y, c, iY, iCbCr);
#else
FSGUI_ShowBigChar(0, (x + i), y, c, iY, iCbCr);
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -