📄 osd_draw_explore.c
字号:
/* Highlight the selected item */
index = album_select%MMP_ALBUM_PAGE_UNIT_SIZE;
x = 20 + 190*(index%3);
//y = 182 + 165*(index/3);
y = 174 + 165*(index/3); // cydrain 20061017
SH_GfxChgAreaColor(SH_CANV1, x, y, 160, 30, COLOR_DARK_BLUE, OSD_COLOR_HIGHLIGHT);
}
/******************************************************************************
* Function name : OwSetUpDnArrow
* Arguments :
* IN
* BOOL up_arrow, BOOL dn_arrow
* OUT
* I/O
* Return : VOID
*
* By : KIM DO YEON
* Description :
* Revision :
******************************************************************************
*/
VOID OwSetUpDnArrow(BOOL up_arrow, BOOL dn_arrow)
{
if(up_arrow)
SH_GfxChgAreaColor(SH_CANV1,586, 104, 24, 24, COLOR_GRAY_NORM, COLOR_RED);
else
SH_GfxChgAreaColor(SH_CANV1,586, 104, 24, 24, COLOR_RED, COLOR_GRAY_NORM);
if(dn_arrow)
SH_GfxChgAreaColor(SH_CANV1,586, 355, 24, 24, COLOR_GRAY_NORM, COLOR_RED);
else
SH_GfxChgAreaColor(SH_CANV1,586, 355, 24, 24, COLOR_RED, COLOR_GRAY_NORM);
}
/******************************************************************************
* Function name : OwDrawFolderPage
* Arguments :
* IN BYTE2 folder_page
*
* OUT
* I/O
* Return :
* VOID
* By : Kim Do Yeon
* Description :
* Revision :
******************************************************************************
*/
VOID OwDrawFolderPage(BYTE2 folder_page)
{
CHAR str_tmp[MMP_NAME_LENGTH+MMP_DIGIT_NUM+3], *tmp_str;
BYTE2 folder_start_index, folder_end_index, folder_index, end_index;
BYTE2 str_length, str_size;
SysPrintf("\n[MMP] Folder Page Draw");
/* Get the end folder indexe */
folder_end_index = GetMmpTotalFolders() -1;
/* in case of wrong one */
if(folder_page > (folder_end_index+1)/MMP_CTRL_PAGE_UNIT_SIZE )
folder_page = 0;
/* Get the start folder indexe */
folder_start_index = folder_page*MMP_CTRL_PAGE_UNIT_SIZE;
/* Get the folder names in the current folder page */
tmp_str = MmpGetFolderPage(folder_page);
if( (folder_end_index-folder_start_index) > (MMP_CTRL_PAGE_UNIT_SIZE-1))
end_index = MMP_CTRL_PAGE_UNIT_SIZE -1;
else
end_index = folder_end_index-folder_start_index;
/* Clear the remains in the page */
SH_GfxDrawRec(SH_CANV1, 2, 98, 181, 287, COLOR_TRANS_BLUE);
/* Fill the folder names in the folder page */
for(folder_index = 0; folder_index <= end_index; folder_index++)
{
ASSERT(folder_index < MMP_CTRL_PAGE_UNIT_SIZE);
/* Make a string for file name in file page */
sprintf(str_tmp," %d. ", (folder_start_index+folder_index +1));
strcat(str_tmp, &(tmp_str[((folder_start_index+folder_index)%MMP_CTRL_PAGE_UNIT_SIZE)*(MMP_NAME_LENGTH+1)]));
#if (!_APP_CAP_OSD_CHINESE_FOLDER_FILENAME)
OwSetVisibleString((UCHAR *)str_tmp);
/* Set for dawing a folder name string */
str_size = strlen((CHAR*)str_tmp);
SH_GfxGetStrSize((CHAR*)str_tmp, &str_length, NULL);
while(str_length > (183-43))
{
str_tmp[--str_size] = '\0';
SH_GfxGetStrSize((CHAR*)str_tmp, &str_length, NULL);
}
SH_GfxDrawImage(SH_CANV1, IMG_EXP_FOLDER, 8, 108 + 34*folder_index);
SH_GfxDrawStr(SH_CANV1, str_tmp, 8+35, 105+34*folder_index, NULL);
#else //_APP_CAP_OSD_CHINESE_FOLDER_FILENAME
SH_GfxSetStrWidthLimitSubtitle(str_tmp, (183-43));
SH_GfxDrawImage(SH_CANV1, IMG_EXP_FOLDER, 8, 108 + 34*folder_index);
SH_GfxDrawSubtitle(SH_CANV1, str_tmp, 8+35, 105+34*folder_index, NULL);
#endif //_APP_CAP_OSD_CHINESE_FOLDER_FILENAME
}/* for, file_index */
}
/******************************************************************************
* Function name : OwUpdateFileSel
* Arguments :
* IN BYTE2 old_index, BYTE2 new_index
*
* OUT
* I/O
* Return :
* VOID
* By : Kim Do Yeon
* Description :
* Revision :
******************************************************************************
*/
VOID OwUpdateFileSel(BYTE2 old_index, BYTE2 new_index)
{
BYTE2 file_total;
file_total = GetMmpTotalFiles();
/* Unhighlihgt */
SH_GfxChgAreaColor(SH_CANV1, 234, 98, 198, 287, OSD_MMP_COLOR_EXP_SELECTED, OSD_COLOR_FONT_DEFAULT);
/* Set for new one */
if(new_index < file_total)
{
SH_GfxChgAreaColor(SH_CANV1,199+35, 105+34*(new_index % MMP_CTRL_PAGE_UNIT_SIZE), 198, 30,
OSD_COLOR_FONT_DEFAULT, OSD_MMP_COLOR_EXP_SELECTED);
}
}
/******************************************************************************
* Function name : OwUpdateFolderSel
* Arguments :
* IN BYTE2 old_index, BYTE2 new_index, BYTE2 folder_cursor
*
* OUT
* I/O
* Return :
* VOID
* By : Kim Do Yeon
* Description :
* Revision :
******************************************************************************
*/
VOID OwUpdateFolderSel(BYTE2 old_index, BYTE2 new_index)
{
BYTE2 folder_total;
MmpFileType_et page_type;
folder_total = GetMmpTotalFolders();
page_type = GetMmpFileType();
/* Unhighlihgt */
SH_GfxChgAreaColor(SH_CANV1, 43, 98, 136, 287, OSD_MMP_COLOR_EXP_SELECTED, OSD_COLOR_FONT_DEFAULT);
if(new_index < folder_total)
{
SH_GfxDrawImage(SH_CANV1,
IMG_EXP_FOLDER_OPEN,
8,
108+34*(new_index % MMP_CTRL_PAGE_UNIT_SIZE));
SH_GfxChgAreaColor(SH_CANV1,
8+35,
105+34*(new_index % MMP_CTRL_PAGE_UNIT_SIZE),
138,
30,
OSD_COLOR_FONT_DEFAULT,
OSD_MMP_COLOR_EXP_SELECTED);
}
}
/******************************************************************************
* Function name : OwDrawFilePage
* Arguments :
* IN BYTE2 file_page
*
* OUT
* I/O
* Return :
* VOID
* By : Kim Do Yeon
* Description :
* Revision :
******************************************************************************
*/
VOID OwDrawFilePage(BYTE2 file_page)
{
CHAR str_tmp[MMP_NAME_LENGTH+MMP_DIGIT_NUM+3], *tmp_str;
BYTE2 file_start_index, file_end_index, file_index, end_index;
Gfx_imge_et file_icon;
MmpFileType_et file_type;
BYTE2 str_length, str_size;
/* Get the end file indexe */
file_end_index = GetMmpTotalFiles() -1;
/* in case of wrong one */
if(file_page > (file_end_index+1)/MMP_CTRL_PAGE_UNIT_SIZE )
file_page = 0;
/* Get the start file indexe */
file_start_index = file_page*MMP_CTRL_PAGE_UNIT_SIZE;
/* Get the file names in the current file page */
tmp_str = MmpGetFilePage(file_page, MMP_CTRL_PAGE_UNIT_SIZE);
/* Get the file type */
file_type = GetMmpFileType();
file_icon = OwGetIconImage(file_type);
if( (file_end_index-file_start_index) > (MMP_CTRL_PAGE_UNIT_SIZE-1))
end_index = MMP_CTRL_PAGE_UNIT_SIZE -1;
else
end_index = file_end_index-file_start_index;
/* Clear the remains in the page */
SH_GfxDrawRec(SH_CANV1, 191, 98, 241, 287, COLOR_TRANS_BLUE);
/* Fill the file names in the file page */
for(file_index = 0; file_index <= end_index; file_index++)
{
ASSERT(file_index < MMP_CTRL_PAGE_UNIT_SIZE);
/* Make a string for file name in file page */
sprintf(str_tmp," %d. ", (file_start_index+file_index +1));
strcat(str_tmp, &(tmp_str[((file_start_index+file_index)%MMP_CTRL_PAGE_UNIT_SIZE)*(MMP_NAME_LENGTH+1)]));
#if (!_APP_CAP_OSD_CHINESE_FOLDER_FILENAME)
OwSetVisibleString((UCHAR *)str_tmp);
/* Set for dawing a file name string */
str_size = strlen((CHAR*)str_tmp);
SH_GfxGetStrSize((CHAR*)str_tmp, &str_length, NULL);
while(str_length > (432-234))
{
str_tmp[--str_size] = '\0';
SH_GfxGetStrSize((CHAR*)str_tmp, &str_length, NULL);
}
SH_GfxDrawImage(SH_CANV1, file_icon, 199, 108+34*file_index);
SH_GfxDrawStr(SH_CANV1, str_tmp, 199+35, 105+34*file_index, NULL);
#else //_APP_CAP_OSD_CHINESE_FOLDER_FILENAME
SH_GfxSetStrWidthLimitSubtitle(str_tmp, (432-234));
SH_GfxDrawImage(SH_CANV1, file_icon, 199, 108+34*file_index);
SH_GfxDrawSubtitle(SH_CANV1, str_tmp, 199+35, 105+34*file_index, NULL);
#endif //_APP_CAP_OSD_CHINESE_FOLDER_FILENAME
}/* for, file_index */
}
/******************************************************************************
* Function name : OwUpdateTypeSelect
* Arguments :
* IN BYTE2 old_sel, BYTE2 new_sel
*
* OUT
* I/O
* Return :
* VOID
* By : Kim Do Yeon
* Description :
* Revision :
******************************************************************************
*/
VOID OwUpdateTypeSelect(BYTE2 old_sel, BYTE2 new_sel)
{
MmpFileType_et set_type;
#if _APP_CAP_NAV_MMP_PLAY_VIDEO_FILE
BYTE2 y = 104;
#else
BYTE2 y = 138;
#endif
set_type = GetMmpFileType();
/* Set for old */
if(old_sel != MMP_NOT_KNOWN)
{
if(old_sel != set_type)
{
SH_GfxChgAreaColor(SH_CANV1,437+35, y+34*old_sel, 128,30,OSD_MMP_COLOR_EXP_SELECTED, OSD_COLOR_FONT_DEFAULT);
SH_GfxChgAreaColor(SH_CANV1,437+35, y+34*old_sel, 128,30,OSD_COLOR_FONT_HIGHLIGHT, OSD_COLOR_FONT_DEFAULT);
}
else
{
SH_GfxChgAreaColor(SH_CANV1,437+35, y+34*old_sel, 128,30,OSD_COLOR_FONT_DEFAULT, OSD_MMP_COLOR_EXP_SELECTED);
SH_GfxChgAreaColor(SH_CANV1,437+35, y+34*old_sel, 128,30,OSD_COLOR_FONT_HIGHLIGHT, OSD_MMP_COLOR_EXP_SELECTED);
}
}
/* Set for new */
if(new_sel != MMP_NOT_KNOWN)
{
SH_GfxChgAreaColor(SH_CANV1,437+35, y+34*new_sel, 128,30,OSD_MMP_COLOR_EXP_SELECTED, OSD_COLOR_FONT_HIGHLIGHT);
SH_GfxChgAreaColor(SH_CANV1,437+35, y+34*new_sel, 128,30,OSD_COLOR_FONT_DEFAULT, OSD_COLOR_FONT_HIGHLIGHT);
}
else
{
SH_GfxChgAreaColor(SH_CANV1,437+35, y+34*set_type, 128,30,OSD_COLOR_FONT_HIGHLIGHT, OSD_MMP_COLOR_EXP_SELECTED);
SH_GfxChgAreaColor(SH_CANV1,437+35, y+34*set_type, 128,30,OSD_COLOR_FONT_DEFAULT, OSD_MMP_COLOR_EXP_SELECTED);
#if _APP_CAP_NAV_MMP_PLAY_VIDEO_FILE
if( set_type == MMP_IMAGE_FILE)
{
SH_GfxDrawRec(SH_CANV1, 432+0, 216+0, 172-0*2, 133-2*0, COLOR_TRANS);
}
else
SH_GfxDrawRec(SH_CANV1, 432+0, 216+0, 172-0*2, 133-2*0, COLOR_TRANS_BLUE);
#endif
}
}
/******************************************************************************
* Function name : OwMmpDrawExplore
* Arguments :
* IN
* VOID
* OUT
* I/O
* Return :
* VOID
* By : Qian liping 060405
* Description : to draw and show the explore
* before call the function the related interface function in Mmn_global.c has
* be called first to init the audio/image type, file/folder page,open folder
* Revision :
******************************************************************************
*/
VOID OwMmpDrawExplore(VOID)
{
BYTE1 type_color[3];
BYTE1 index;
BYTE2 bg_y,bg_x,type_y, h;
SH_GfxShowCanvas(SH_CANV2, FALSE);
/*clear subtitle Qian liping 060627 */
if(SH_PAR_GetExSubtitleMode())
SH_GfxShowCanvas(SH_CANV3, FALSE);
if (GetMmpFileType()!=MMP_VIDEO_FILE ||((GetMmpStopMode()!=MMP_RESUME_STOP&& GetMmpPlaySpeed()==0) &&(GetDisplayMainState()!=DISPLAY_SETUP&&GetDisplayMainState()!=DISPLAY_PROGRAM)))//gaoping 20060522 problem 341
SH_MixSetVideoEn( TOGGLE_OFF );
bg_y = 45;
bg_x = 50;
OwGetOsdCenterPosition( &bg_x,&bg_y, 620, 387 );
SH_GfxSetCanvas(SH_CANV1, bg_x, bg_y, 620, 387);
SH_GfxDrawRec(SH_CANV1, 0, 0, 620, 387, COLOR_TRANS_BLUE);
SH_GfxShowCanvas(SH_CANV1, TRUE);
/* Draw Explore Info1 bar */
#ifdef _APP_CAP_GVG_INFO_KEEP_AFTER_PROGRAM // cydrain 20061017
OwMmpDrawInfo1(gOSD_state.etExp_state.etInfo1);
#else
OwMmpExpInfo1Norm();
#endif
/* Info2 bar */
SH_GfxDrawRec(SH_CANV1, 0, 48, 620, 44, COLOR_DARK_BLUE);
SH_GfxDrawRec(SH_CANV1, 2, 50, 616, 40, COLOR_TRANS_BLUE);
/* Folder Page */
SH_GfxDrawRec(SH_CANV1, 0, 96, 185, 291, COLOR_DARK_BLUE);
SH_GfxDrawRec(SH_CANV1, 2, 98, 181, 287, COLOR_TRANS_BLUE);
/* File Page */
SH_GfxDrawRec(SH_CANV1, 189, 96, 431, 291, COLOR_DARK_BLUE);
SH_GfxDrawRec(SH_CANV1, 191, 98, 427, 287, COLOR_TRANS_BLUE);
/* File Selection window*/
#if _APP_CAP_NAV_MMP_PLAY_VIDEO_FILE
type_y = 70;
h = 72+34;
#else
type_y = 104; // Include up / down arror.
h = 72;
#endif
SH_GfxDrawRec(SH_CANV1, 432, type_y+30, 168, h, COLOR_DARK_BLUE);
for( index =MMP_AUDIO_FILE; index <= MMP_VIDEO_FILE; index++ )
{
if( GetMmpTypeFolders(index) == 0 )
type_color[ index ] = OSD_COLOR_INVALID;
else
type_color[ index ] = OSD_COLOR_FONT_DEFAULT;
}
SH_GfxDrawImage(SH_CANV1, IMG_INFO_AUDIO, 437, type_y+34);
SH_GfxDrawStr(SH_CANV1, (CHAR *)gpAudio[MENU_LANG], 437+35, type_y+34, type_color[0]);
SH_GfxDrawImage(SH_CANV1, IMG_VIEW_THUMB, 437, type_y+34*2);
SH_GfxDrawStr(SH_CANV1,(CHAR *)gpImage[MENU_LANG], 437+35, type_y+34*2, type_color[1]);
#if _APP_CAP_NAV_MMP_PLAY_VIDEO_FILE
SH_GfxDrawImage(SH_CANV1, IMG_INFO_MV, 437, type_y+34*3);
SH_GfxDrawStr(SH_CANV1,(CHAR *)gpVideo[MENU_LANG], 437+35, type_y+34*3, type_color[2]);
#endif
// Qian liping 060530 : bug fix 400, delete the black dot in file button icon.
SH_GfxDrawRec(SH_CANV1, 437, type_y+30, 2,h, COLOR_DARK_BLUE);
SH_GfxDrawRec(SH_CANV1, 437+28, type_y+30, 2,h, COLOR_DARK_BLUE);
#if !_APP_CAP_NAV_MMP_PLAY_VIDEO_FILE
/* Arrows */
SH_GfxDrawImage(SH_CANV1, IMG_HELP_UP_ARR, 586, 104);
SH_GfxDrawImage(SH_CANV1, IMG_HELP_DN_ARR, 586, 355);
#endif
OwUpdateTypeSelect(MMP_NOT_KNOWN, MMP_NOT_KNOWN );
}
#else /* _APP_CAP_OSD_FLATTEN_EXPLORER */
/******************************************************************************
* Function name : OwMmpUpdateImgInfo (Non_Flattern)
* Arguments :
* IN
* MmpImgInfoSub_et img_info, SH_RotateAngle_et rotate
* OUT
* I/O
* Return :
* VOID
* By : KIM DO YEON
* Description :
* Revision :
******************************************************************************
*/
VOID OwMmpUpdateImgInfo(VOID)
{
MmpImgInfoSub_et img_info;
SH_RotateAngle_et rotate;
CHAR dis_str[MAX_SUPPORT_DYNAMIC_LENGTH], file_info[10];
BYTE2 icon_x, differ, file_index;
file_index = GetMmpFileCursor();
#if _APP_CAP_FUNC_JPG_PLAY_MODE
BYTE2 total_num;
total_
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -