?? flhelp.c
字號:
/**********************************************************************/
/*************** MTK CONFIDENTIAL & COPYRIGHTED ****************/
/*************** ****************/
/*************** $Modtime:: 07/04/09 11:49a $ ****************/
/*************** $Revision:: 2 $ ****************/
/*************** ****************/
/*************** Description : File List ****************/
/*************** JPEG Help Module ****************/
/*************** ****************/
/*************** Company : MediaTek Inc. ****************/
/*************** Programmer : Jacob Lin ****************/
/**********************************************************************/
#define __FLHELP_C_
#include "../general.h"
#include "../../procdef.h"
#include "flcomm.h"
#pragma NOAREGS
#if (defined(DDISC_FTYPE_JPEG_SUPPORT) && defined(SUPPORT_DATA_DISC))
/*
extern void vJpegHelpMenuShow(BOOL fgRedraw) large;
void vJpegHelpMenuClose(void) large;
extern void vDrawSetupBorder(void) large;
extern void vFsMenuHpMenuInit(void);
extern void vSetSetWbCol(BYTE bType);
*/
//extern void vSetWbCol(void);
static void vFlHpShowBorder(void) large;
static void vFlHpShowPage(BOOL fgRedraw) large;
static xdata BYTE _bFlHpMode;
#define FLHP_INIT 0
#define FLHP_PAGE_1 1
#define FLHP_PAGE_2 2
#define FLHP_PAGE_END FLHP_PAGE_2
#define FLHP_BTN_X 365
#define FLHP_BTN_Y 0
#define FLHP_TITLE_X 90
#define FLHP_TITLE_Y 20 // 40
#define FLHP_STARTX 20
#define FLHP_STARTY 70 // 100
#define FLHP_MSG_H 30
#define FLHP_INTRO_STARTX FLHP_STARTX +160
#define FLHP_INTRO_STARTY FLHP_STARTY
#define FLHP_COLOR_BLACK 2
#define FLHP_COLOR_WHITE 3
#define FLHP_CTITLE_X 190
typedef struct {
WORD wKeyMsg;
WORD wFuncMsg;
} structFlHpMsg;
#ifdef MT1389_REV_HD
static code structFlHpMsg _rFlHpPage1Msg[] = {
{ OSD_MSG_JPG_STOP, OSD_MSG_JPG_MENU_FUNC },
{ OSD_MSG_JPG_NEXT, OSD_MSG_JPG_NEXT_FUNC },
{ OSD_MSG_JPG_PREV, OSD_MSG_JPG_PREV_FUNC },
{ OSD_MSG_JPG_PLAY, OSD_MSG_JPG_PLAY_FUNC },
};
#else
static code structFlHpMsg _rFlHpPage1Msg[] = {
#ifdef FSMENU_STYLE_1
{ OSD_MSG_JPG_RESUME, OSD_MSG_JPG_PROGRAM_FUNC },
#else
{ OSD_MSG_JPG_PROGRAM, OSD_MSG_JPG_PROGRAM_FUNC },
#endif
{ OSD_MSG_JPG_STOP, OSD_MSG_JPG_MENU_FUNC },
{ OSD_MSG_JPG_NEXT, OSD_MSG_JPG_NEXT_FUNC },
{ OSD_MSG_JPG_PREV, OSD_MSG_JPG_PREV_FUNC },
{ OSD_MSG_JPG_PLAY, OSD_MSG_JPG_PLAY_FUNC },
{ OSD_MSG_JPG_INVERT, OSD_MSG_JPG_INVERT_FUNC },
{ OSD_MSG_JPG_MIRROR, OSD_MSG_JPG_MIRROR_FUNC}
};
#endif
#ifdef MT1389_REV_HD
static code structFlHpMsg _rFlHpPage2Msg[] = {
{ OSD_MSG_JPG_ZOOM, OSD_MSG_JPG_ZOOM_FUNC },
{ OSD_MSG_JPG_ZOOMIN, OSD_MSG_JPG_ZOOMIN_FUNC },
{ OSD_MSG_JPG_ZOOMOUT, OSD_MSG_JPG_ZOOMOUT_FUNC },
{ OSD_MSG_JPG_PAN, OSD_MSG_JPG_PAN_FUNC }
};
#else
static code structFlHpMsg _rFlHpPage2Msg[] = {
{ OSD_MSG_JPG_ROTATE_CCLKW, OSD_MSG_JPG_ROTATE_CCLKW_FUNC },
{ OSD_MSG_JPG_ROTATE_CLKW, OSD_MSG_JPG_ROTATE_CLKW_FUNC },
{ OSD_MSG_JPG_ZOOM, OSD_MSG_JPG_ZOOM_FUNC },
{ OSD_MSG_JPG_ZOOMIN, OSD_MSG_JPG_ZOOMIN_FUNC },
{ OSD_MSG_JPG_ZOOMOUT, OSD_MSG_JPG_ZOOMOUT_FUNC },
{ OSD_MSG_JPG_PAN, OSD_MSG_JPG_PAN_FUNC }
};
#endif
#define FLHP_PAGE1_N TBL_SIZE(_rFlHpPage1Msg)
#define FLHP_PAGE2_N TBL_SIZE(_rFlHpPage2Msg)
static void vFlHpShowBorder(void) large
{
// Horizontal Line
vOsdShowLineXY(WB_SETUP_ITEM, FLHP_COLOR_WHITE, 2, 0, 0, SETUP_ITEM_W, 0);
vOsdShowLineXY(WB_SETUP_ITEM, FLHP_COLOR_BLACK, 2, 0, 2, SETUP_ITEM_W, 2);
vOsdShowLineXY(WB_SETUP_MSG, FLHP_COLOR_WHITE, 2, 0, (SETUP_MSG_H - 3), SETUP_MSG_W, (SETUP_MSG_H - 3));
vOsdShowLineXY(WB_SETUP_MSG, FLHP_COLOR_BLACK, 2, 0, (SETUP_MSG_H - 5), SETUP_MSG_W, (SETUP_MSG_H - 5));
// Vertical Line
vOsdShowLineXY(WB_SETUP_ITEM, FLHP_COLOR_WHITE, 3, 0, 0, 0, SETUP_ITEM_H - 1);
vOsdShowLineXY(WB_SETUP_ITEM, FLHP_COLOR_BLACK, 3, 2, 2, 2, SETUP_ITEM_H - 1);
vOsdShowLineXY(WB_SETUP_MSG, FLHP_COLOR_WHITE, 3, 0, 0, 0, SETUP_MSG_H - 2);
vOsdShowLineXY(WB_SETUP_MSG, FLHP_COLOR_BLACK, 3, 2, 0, 2, SETUP_MSG_H - 4);
vOsdShowLineXY(WB_SETUP_ITEM, FLHP_COLOR_WHITE, 3, (SETUP_ITEM_W - 3), 0, (SETUP_ITEM_W - 3), SETUP_ITEM_H - 1);
vOsdShowLineXY(WB_SETUP_ITEM, FLHP_COLOR_BLACK, 3, (SETUP_ITEM_W - 6), 2, (SETUP_ITEM_W - 6), SETUP_ITEM_H - 1);
vOsdShowLineXY(WB_SETUP_MSG, FLHP_COLOR_WHITE, 3, (SETUP_MSG_W - 3), 0, (SETUP_MSG_W - 3), SETUP_MSG_H - 2);
vOsdShowLineXY(WB_SETUP_MSG, FLHP_COLOR_BLACK, 3, (SETUP_MSG_W - 6), 0, (SETUP_MSG_W - 6), SETUP_MSG_H - 4);
}
static void vFlHpShowPage(BOOL fgRedraw) large
{
BYTE bTemp;
if(!fgRedraw)
{
if(_bFlHpMode >= FLHP_PAGE_END)
{
_bFlHpMode = FLHP_INIT;
//vJpegHelpMenuClose();
// - resume jpg decoding
vSendUopCmd(UOP_PAUSE, 0x01, 0x02, 0x00);
return;
}
else
{
if(_bFlHpMode == FLHP_INIT)
{
// - pause jpg decoding
vSendUopCmd(UOP_PAUSE, 0x01, 0x01, 0x00);
}
_bFlHpMode ++;
}
}
#if !defined(USE_SMALL_SPTM) && defined (SPTM_SUPPORT)
if (fgIsEqShow())
{
vDisableWB(WB_NORMAL_SPTM);
}
#endif
vChgColDis();
#ifndef HILI_USE_OSD
vHideHL(HL_1);
vHideHL(HL_2);
#endif
vFlHpShowBorder();
vOsdClearPosXY(8, 6, FL_HELP_WB, (SETUP_ITEM_W - 16), (SETUP_ITEM_H - 6));
switch (_bFlHpMode)
{
case FLHP_PAGE_1:
vSetMsgCol4(FL_HELP_WB, 0, 0, 2, 3);
_wStartX = (bEepromReadByte(OSD_LANG_POSITION) == EV_OSD_CHINESE) ? FLHP_CTITLE_X : FLHP_TITLE_X;
_wStartY = FLHP_TITLE_Y;
vOsdMsgPaste(FL_HELP_WB, OSD_MSG_JPG_HELP_TITLE);
vSetMsgCol4(FL_HELP_WB, 0, 0, 2, 3);
_wStartX = FLHP_STARTX;
_wStartY = FLHP_STARTY;
for (bTemp=0; bTemp < FLHP_PAGE1_N; bTemp++)
{
vOsdMsgPaste(FL_HELP_WB, _rFlHpPage1Msg[bTemp].wKeyMsg);
_wStartY += FLHP_MSG_H;
}
vSetMsgCol4(WB_SETUP_ITEM, 0, 0, 0, 2);
_wStartX = FLHP_INTRO_STARTX;
_wStartY = FLHP_INTRO_STARTY;
for (bTemp=0; bTemp < FLHP_PAGE1_N; bTemp++)
{
vOsdMsgPaste(FL_HELP_WB, _rFlHpPage1Msg[bTemp].wFuncMsg);
_wStartY += FLHP_MSG_H;
}
vSetMsgCol4(WB_SETUP_MSG , 0, 1, 1, 3);
_wStartX = FLHP_BTN_X;
_wStartY = FLHP_BTN_Y;
vOsdClearPos(WB_SETUP_MSG, 120, 30);
vOsdMsgPaste(WB_SETUP_MSG, OSD_MSG_JPG_CONTINUE);
break;
case FLHP_PAGE_2:
vSetMsgCol4(FL_HELP_WB, 0, 0, 2, 3);
_wStartX = (bEepromReadByte(OSD_LANG_POSITION) == EV_OSD_CHINESE) ? FLHP_CTITLE_X : FLHP_TITLE_X;
_wStartY = FLHP_TITLE_Y;
vOsdMsgPaste(FL_HELP_WB, OSD_MSG_JPG_HELP_TITLE);
vSetMsgCol4(FL_HELP_WB, 0, 0, 2, 3);
_wStartX = FLHP_STARTX;
_wStartY = FLHP_STARTY;
for (bTemp=0; bTemp < FLHP_PAGE2_N; bTemp++)
{
/*
Mark it by Bright_liu 2005/11/17, for CQ(PL00205142)
*/
/*
if (bTemp == 3)
_wStartX = FLHP_STARTX + 20;
*/
vOsdMsgPaste(FL_HELP_WB, _rFlHpPage2Msg[bTemp].wKeyMsg);
_wStartY += FLHP_MSG_H;
}
vSetMsgCol4(WB_SETUP_ITEM, 0, 0, 0, 2);
_wStartX = FLHP_INTRO_STARTX;
_wStartY = FLHP_INTRO_STARTY;
for (bTemp=0; bTemp < FLHP_PAGE2_N; bTemp++)
{
vOsdMsgPaste(FL_HELP_WB, _rFlHpPage2Msg[bTemp].wFuncMsg);
_wStartY += FLHP_MSG_H;
}
vSetMsgCol4(WB_SETUP_MSG , 0, 1, 1, 3);
_wStartX = FLHP_BTN_X;
_wStartY = FLHP_BTN_Y;
vOsdClearPos(WB_SETUP_MSG, 140, 30);
vOsdMsgPaste(WB_SETUP_MSG, OSD_MSG_JPG_EXIT_MENU);
break;
}
}
void vFlHpEnter(WORD wItem) large
{
BYTE i;
_bFlHpMode = FLHP_INIT;
for(i=0; i < WB_INDEX_MAX; i++)
{
vDisableWB(i);
}
#ifdef SETUP_MENU_TRUECOLOR
vCreateWB(WB_SETUP_ITEM, TRUE);
vCreateWB(WB_SETUP_MSG, TRUE);
vSetTcPal(WB_SETUP_ITEM, 0, BLEND_2, TRUECOLOR_GREENBLUE);
vSetTcPal(WB_SETUP_ITEM, 1, BLEND_2, TRUECOLOR_GREENBLUE);
vSetTcPal(WB_SETUP_ITEM, 2, BLEND_2, TRUECOLOR_BLACK);
vSetTcPal(WB_SETUP_ITEM, 3, BLEND_2, TRUECOLOR_WHITE);
vSetTcPal(WB_SETUP_MSG, 0, BLEND_2, TRUECOLOR_GREENBLUE);
vSetTcPal(WB_SETUP_MSG, 1, BLEND_2, TRUECOLOR_ORANGE);
vSetTcPal(WB_SETUP_MSG, 2, BLEND_2, TRUECOLOR_BLACK);
vSetTcPal(WB_SETUP_MSG, 3, BLEND_2, TRUECOLOR_WHITE);
#else
vCreateWB(WB_SETUP_ITEM, FALSE);
vCreateWB(WB_SETUP_MSG, FALSE);
vSetPal(WB_SETUP_ITEM, 0, BLEND_2, COLOR_GREENBLUE);
vSetPal(WB_SETUP_ITEM, 1, BLEND_2, COLOR_GREENBLUE);
vSetPal(WB_SETUP_ITEM, 2, BLEND_2, COLOR_BLACK);
vSetPal(WB_SETUP_ITEM, 3, BLEND_2, COLOR_WHITE);
vSetPal(WB_SETUP_MSG, 0, BLEND_2, COLOR_GREENBLUE);
vSetPal(WB_SETUP_MSG, 1, BLEND_2, COLOR_ORANGE);
vSetPal(WB_SETUP_MSG, 2, BLEND_2, COLOR_BLACK);
vSetPal(WB_SETUP_MSG, 3, BLEND_2, COLOR_WHITE);
#endif
vEnableWB(WB_SETUP_MSG);
vEnableWB(WB_SETUP_ITEM);
vClearWB(WB_SETUP_MSG);
vClearWB(WB_SETUP_ITEM);
/*
#ifdef SETUP_MENU_TRUECOLOR
vSetWBTcMode(WB_SETUP_ITEM);
vSetWBTcMode(WB_SETUP_MSG);
#endif
*/
vFlHpShowPage(FALSE);
vSetSharedInfo(SI_JPG_TARGET,SV_JPG_HELP);
}
WORD wFlHpLeave(BOOL bSuicide) large
{
vDeleteWB(WB_SETUP_ITEM);
vDeleteWB(WB_SETUP_MSG);
vSendUopCmd(UOP_PAUSE, 0x01, 0x02, 0x00);
vChgColDis();
#ifndef HILI_USE_OSD
vHideHL(HL_1);
vHideHL(HL_2);
#endif
#if !defined(USE_SMALL_SPTM) && defined (SPTM_SUPPORT)
if (fgIsEqShow())
{
vEnableWB(WB_NORMAL_SPTM);
}
#endif
vSetSharedInfo(SI_JPG_TARGET,SV_JPG_NORMAL);
return ((WORD)bSharedInfo(SI_JPG_ITEM_IDX_HI)*256 + bSharedInfo(SI_JPG_ITEM_IDX_LO));
}
void vFlHpRecover(BOOL bDrawAll) large
{
BYTE i;
if (bDrawAll)
{
for(i=0; i < WB_INDEX_MAX; i++)
{
vDisableWB(i);
}
vEnableWB(WB_SETUP_MSG);
vEnableWB(WB_SETUP_ITEM);
vClearWB(WB_SETUP_MSG);
vClearWB(WB_SETUP_ITEM);
#ifdef SETUP_MENU_TRUECOLOR
vSetWBTcMode(WB_SETUP_ITEM);
vSetWBTcMode(WB_SETUP_MSG);
#endif
}
vFlHpShowPage(TRUE);
}
BOOL fgFlOnHp(void) large
{
BOOL fgIsGrabbed = FALSE;
switch (_bIRKey)
{
case IR_ENTER:
case IR_PLAY:
case IR_PLAY_ENTER:
case IR_PLAY_PAUSE:
if(_bFlHpMode == FLHP_PAGE_END)
{
//vFlHpShowPage(FALSE);
//vOsdShowWb(OSD_WB_RESTORE);
vFlSetCmdTarget(FL_CMD_TARGET_JPEG);
}
else
{
vFlHpShowPage(FALSE);
}
fgIsGrabbed = TRUE;
break;
default:
fgIsGrabbed = TRUE;
break;
}
return fgIsGrabbed;
}
#endif // #if (defined(DDISC_FTYPE_JPEG_SUPPORT) && defined(SUPPORT_DATA_DISC))
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -