📄 flhelp.c
字号:
/**********************************************************************/
/*************** MTK CONFIDENTIAL & COPYRIGHTED ****************/
/*************** ****************/
/*************** $Modtime:: 05/04/06 4:21p $ ****************/
/*************** $Revision: 2.0 $ ****************/
/*************** ****************/
/*************** 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))
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 494
#define FLHP_BTN_Y STP_MENU_REAL_H - 56
#define FLHP_TITLE_X 120
#define FLHP_TITLE_Y 36
#define FLHP_STARTX 20
#define FLHP_STARTY 86
#define FLHP_MSG_H 30
#define FLHP_INTRO_STARTX FLHP_STARTX +160
#define FLHP_INTRO2_STARTX FLHP_STARTX +116
#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;
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 },
};
static code structFlHpMsg _rFlHpPage2Msg[] = {
{ 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 }
};
#define FLHP_PAGE1_N TBL_SIZE(_rFlHpPage1Msg)
#define FLHP_PAGE2_N TBL_SIZE(_rFlHpPage2Msg)
static void vFlHpShowBorder(void) large
{
// Horizontal Line
vOsdShowLineXY(FL_HELP_WB, FLHP_COLOR_BLACK, 2, 0, 0, (STP_MENU_REAL_W - 1), 0);
vOsdShowLineXY(FL_HELP_WB, FLHP_COLOR_WHITE, 2, 0, 2, (STP_MENU_REAL_W - 1), 2);
vOsdShowLineXY(FL_HELP_WB, FLHP_COLOR_WHITE, 2, 0, (STP_MENU_REAL_H - 3), (STP_MENU_REAL_W - 1), (STP_MENU_REAL_H - 3));
vOsdShowLineXY(FL_HELP_WB, FLHP_COLOR_BLACK, 2, 0, (STP_MENU_REAL_H - 1), (STP_MENU_REAL_W - 1), (STP_MENU_REAL_H - 1));
// Vertical Line
vOsdShowLineXY(FL_HELP_WB, FLHP_COLOR_BLACK, 3, 0, 0, 0, (STP_MENU_REAL_H - 1));
vOsdShowLineXY(FL_HELP_WB, FLHP_COLOR_WHITE, 3, 2, 2, 2, (STP_MENU_REAL_H - 3));
vOsdShowLineXY(FL_HELP_WB, FLHP_COLOR_WHITE, 3, (STP_MENU_REAL_W - 1), 2, (STP_MENU_REAL_W - 1), (STP_MENU_REAL_H - 3));
vOsdShowLineXY(FL_HELP_WB, FLHP_COLOR_BLACK, 3, STP_MENU_REAL_W, 0, STP_MENU_REAL_W, (STP_MENU_REAL_H - 1));
}
static void vFlHpShowPage(BOOL fgRedraw) large
{
BYTE bTemp;
if(!fgRedraw)
{
if(_bFlHpMode >= FLHP_PAGE_END)
{
_bFlHpMode = FLHP_INIT;
// - 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();
vHideHL(HL_1);
vHideHL(HL_2);
#ifndef FONT_2_PIXEL
// hardware outline
vSetOL(FL_HELP_WB, OL_A_1_PIX, 0, 0);
#endif
vFlHpShowBorder();
vOsdClearPosXY(8, 8, FL_HELP_WB, (STP_MENU_REAL_W - 16), (STP_MENU_REAL_H - 16));
switch (_bFlHpMode)
{
case FLHP_PAGE_1:
vSetMsgCol4(FL_HELP_WB, 0, 0, 2, 3);
_wStartX =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(FL_HELP_WB, 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(FL_HELP_WB , 0, 4, 4, 3);
_wStartX = FLHP_BTN_X - 120;
_wStartY = FLHP_BTN_Y;
vOsdClearPos(FL_HELP_WB, 120, 30);
_wEndX = FLHP_BTN_X;
_wEndY = FLHP_BTN_Y + FLHP_MSG_H - 1;
//vOsdMsgPaste(FL_HELP_WB, OSD_MSG_JPG_CONTINUE);
vOsdMsgPasteRight(FL_HELP_WB, OSD_MSG_JPG_CONTINUE);
break;
case FLHP_PAGE_2:
vSetMsgCol4(FL_HELP_WB, 0, 0, 2, 3);
_wStartX = 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++)
{
vOsdMsgPaste(FL_HELP_WB, _rFlHpPage2Msg[bTemp].wKeyMsg);
_wStartY += FLHP_MSG_H;
}
vSetMsgCol4(FL_HELP_WB, 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(FL_HELP_WB , 0, 4, 4, 3);
_wStartX = FLHP_BTN_X - 140;
_wStartY = FLHP_BTN_Y;
vOsdClearPos(FL_HELP_WB, 140, 30);
_wEndX = FLHP_BTN_X;
_wEndY = FLHP_BTN_Y + FLHP_MSG_H - 1;
//vOsdMsgPaste(FL_HELP_WB, OSD_MSG_JPG_EXIT_MENU);
vOsdMsgPasteRight(FL_HELP_WB, 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);
}
vCreateWB(FL_HELP_WB, TRUE);
vSetTcPal(FL_HELP_WB, 0, BLEND_2, TRUECOLOR_GREENBLUE);
vSetTcPal(FL_HELP_WB, 1, BLEND_2, TRUECOLOR_GREENBLUE);
vSetTcPal(FL_HELP_WB, 2, BLEND_2, TRUECOLOR_BLACK);
vSetTcPal(FL_HELP_WB, 3, BLEND_2, TRUECOLOR_WHITE);
vSetTcPal(FL_HELP_WB, 4, BLEND_2, TRUECOLOR_YELLOW);
vEnableWB(FL_HELP_WB);
vClearWB(FL_HELP_WB);
vFlHpShowPage(FALSE);
}
WORD wFlHpLeave(BOOL bSuicide) large
{
vDeleteWB(FL_HELP_WB);
vSendUopCmd(UOP_PAUSE, 0x01, 0x02, 0x00);
vChgColDis();
vHideHL(HL_1);
vHideHL(HL_2);
#if !defined(USE_SMALL_SPTM) && defined (SPTM_SUPPORT)
if (fgIsEqShow())
{
vEnableWB(WB_NORMAL_SPTM);
}
#endif
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(FL_HELP_WB);
vClearWB(FL_HELP_WB);
vSetWBTcMode(FL_HELP_WB);
}
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)
{
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 + -