📄 nonshow.c
字号:
/**********************************************************************/
/*************** MTK CONFIDENTIAL & COPYRIGHTED ****************/
/*************** ****************/
/*************** $Modtime:: 05/03/24 9:46a $ ****************/
/*************** $Revision: 2.0 $ ****************/
/*************** ****************/
/*************** Description : OSD ****************/
/*************** ****************/
/*************** Company : MediaTek Inc. ****************/
/*************** Programmer : Peter Huang ****************/
/**********************************************************************/
#define _NONSHOW_C_
#pragma NOAREGS
#include "general.h"
#include "osdshow.h"
#define NEW_FONT
#define OSD_LANGUAGE_NUM EV_OSD_LANG_NS
typedef struct sInitMsgLength
{
WORD bMsgOpen;
WORD bMsgClose;
WORD bMsgLoad;
} sInitMsgLength;
/*Adjust these parameter according to the length of correlative message*/
#ifdef NEW_FONT
static code sInitMsgLength _rInitMsgLength[OSD_LANGUAGE_NUM] =
{
#ifdef GUI_II_YWB
{122,110,186}, //English +10
{260,226,234}, //Russian +10
{142,136,202}, //Ukrainian +10
{230,206,214}, //fjw 060926 -10
#else
{112,100,176}, //English
{240,216,224}, //Russian
{132,126,192}, //Ukrainian
#endif
};
#else
static code sInitMsgLength _rInitMsgLength[OSD_LANGUAGE_NUM] =
{
{100,88, 144}, //English
{220,196,196}, //Russian
{128,120,172}, //Ukrainian
#ifdef GUI_II_YWB
{230,206,214}, //fjw 060926 -10
#endif
};
#endif
#ifdef GUI_DC_SELECT //billy[060912]
extern BYTE xdata fgCardToDvd ;
#endif
// *********************************************************************
// Function : static void vShowInitMsgBmp(WORD wMsgIndex, BYTE bTime)
// Description :
// Parameter :
// Return : None
// *********************************************************************
static void vShowInitMsgBmp(WORD wMsgIndex, BYTE bTime) large
{
BYTE bLngIdx;
BYTE pbBmp[6];
bLngIdx = bEepromReadByte(OSD_LANG_POSITION);
if(bLngIdx >= EV_OSD_LANG_NS)
{
bLngIdx = EV_OSD_ENGLISH;
fgEepromWriteByte(OSD_LANG_POSITION, bLngIdx);
}
pbBmp[0] = 5;
pbBmp[1] = BMP_PROCESS_0;
pbBmp[2] = BMP_PROCESS_1;
pbBmp[3] = BMP_PROCESS_2;
pbBmp[4] = BMP_PROCESS_3;
pbBmp[5] = BMP_PROCESS_4;
pbBmp[6] = BMP_PROCESS_5;
switch(wMsgIndex)
{
case OSD_MSG_OPEN:
#ifdef INIT_POS_DEBGU
_wStartX = (NOMAL_INITMSG_WIDTH - _wPosOpen - STATUS_BMP_WIDTH) / 2;
#else
_wStartX = (NOMAL_INITMSG_WIDTH - _rInitMsgLength[bLngIdx].bMsgOpen - STATUS_BMP_WIDTH) / 2;
#endif
break;
case OSD_MSG_CLOSE:
#ifdef INIT_POS_DEBGU
_wStartX = (NOMAL_INITMSG_WIDTH - _wPosClose- STATUS_BMP_WIDTH) / 2;
#else
_wStartX = (NOMAL_INITMSG_WIDTH - _rInitMsgLength[bLngIdx].bMsgClose- STATUS_BMP_WIDTH) / 2;
#endif
break;
case OSD_MSG_LOADING:
#ifdef INIT_POS_DEBGU
_wStartX = (NOMAL_INITMSG_WIDTH - _wPosLoad- STATUS_BMP_WIDTH) / 2;
#else
_wStartX = (NOMAL_INITMSG_WIDTH - _rInitMsgLength[bLngIdx].bMsgLoad- STATUS_BMP_WIDTH) / 2;
#endif
break;
case OSD_MSG_LOADING_USB:
#ifdef SUPPORT_MCR
case OSD_MSG_LOADING_CARD:
#endif
#ifdef INIT_POS_DEBGU
_wStartX = (NOMAL_INITMSG_WIDTH - _wPosLoad- STATUS_BMP_WIDTH) / 2;
#else
_wStartX = (NOMAL_INITMSG_WIDTH - _rInitMsgLength[bLngIdx].bMsgLoad- STATUS_BMP_WIDTH) / 2;
#endif
break;
default:
return;
}
_wStartY = 0;
vOsdMsgShow(WB_NORMAL_INITMSG, wMsgIndex, bTime);
_wStartX = NOMAL_INITMSG_WIDTH - _wStartX - STATUS_BMP_WIDTH;
vOsdShowBmpXY(_wStartX, INTI_BMP_POS_Y, WB_NORMAL_INITMSG, pbBmp, 1, bTime);
}
// *********************************************************************
// Function : void vOsdShowInitState(BYTE bInitState)
// Description :
// Parameter :
// Return : None
// Note :
// *********************************************************************
void vOsdShowInitState(BYTE bInitState) large
{
BYTE i;
vClearWB(WB_NORMAL_INITMSG);
vDelBmp();
#ifdef PORTABLEDVD
vOsdShowShiftState(_bVRMTState);
#endif
#ifdef GUI_DC_SELECT //billy[060912]
if(_bDevType == DEVICE_CARD||_bDevType == DEVICE_USB)
{
if(bInitState == SV_TRAY_OPENING)
bInitState = SV_EMD_LOADING;
}
if(fgCardToDvd == 1)
{
if(bInitState == SV_TRAY_OPENING)
bInitState = SV_LOADING_DISC;
fgCardToDvd = 0;
}
if(bInitState == SV_TRAY_CLOSING)
bInitState = SV_LOADING_DISC;
#endif
switch (bInitState)
{
case SV_LOADING_DISC:
vShowInitMsgBmp(OSD_MSG_LOADING, OSD_NO_DISAPPEAR);
break;
case SV_EMD_LOADING:
#ifdef SUPPORT_MCR
if(_bDevType == DEVICE_CARD)
vShowInitMsgBmp(OSD_MSG_LOADING_CARD, OSD_NO_DISAPPEAR);
else
#endif
vShowInitMsgBmp(OSD_MSG_LOADING_USB, OSD_NO_DISAPPEAR);
break;
case SV_TRAY_OPENING:
vShowInitMsgBmp(OSD_MSG_OPEN, OSD_NO_DISAPPEAR);
#ifdef PORTABLEDVD //billy[060708]
_bVRMTState = EV_NORMAL_STATE;
vOsdPosClear(OSD_POS_SHIFT_STATE);
#endif
break;
case SV_TRAY_CLOSING:
vShowInitMsgBmp(OSD_MSG_CLOSE, OSD_NO_DISAPPEAR);
break;
case SV_TRAY_ERROR:
_wStartX = 0;
_wStartY = 0;
vOsdMsgShowCenter(WB_NORMAL_INITMSG, OSD_MSG_TRAY_ERROR, OSD_NO_DISAPPEAR, NOMAL_INITMSG_WIDTH);
break;
case SV_NO_DISC:
vDelBmp(); /* to clear bitmap ICON */
_wStartX = 0;
_wStartY = 0;
#ifdef GUI_DC_SELECT
if(_bDevType == DEVICE_USB)
{
vOsdMsgShowCenter(WB_NORMAL_INITMSG,OSD_MSG_NO_USB, OSD_NO_DISAPPEAR, NOMAL_INITMSG_WIDTH);
}
else if(_bDevType == DEVICE_CARD)
{
vOsdMsgShowCenter(WB_NORMAL_INITMSG,OSD_MSG_NO_CARD, OSD_NO_DISAPPEAR, NOMAL_INITMSG_WIDTH);
}
else
#endif
{
vOsdMsgShowCenter(WB_NORMAL_INITMSG, OSD_MSG_NO_DISC, OSD_NO_DISAPPEAR, NOMAL_INITMSG_WIDTH);
}
break;
case SV_UNKNOWN_DISC:
_wStartX = 0;
_wStartY = 0;
vOsdMsgShowCenter(WB_NORMAL_INITMSG, OSD_MSG_UNKNOWN_DISC, OSD_NO_DISAPPEAR, NOMAL_INITMSG_WIDTH);
break;
case SV_DISC_IDENTIFIED:
// HACK code: let the icon and message disappear at the same time
vOsdSetSt(OSD_ST_BURST);
vClearWB(WB_NORMAL_INITMSG);
vOsdSetSt(OSD_ST_NML);
vDelBmp();
break;
default:
vOsdSetSt(OSD_ST_BURST);
vClearWB(WB_NORMAL_INITMSG);
vOsdSetSt(OSD_ST_NML);
vDelBmp();
break;
}
}
// *********************************************************************
// Function : void vOsdShowPlayStatus(BYTE bStatus, BYTE bTime)
// Description :
// Parameter : bState
// Return : None
// *********************************************************************
void vOsdShowPlayStatus(BYTE bStatus, BYTE bTime) large
{
WORD wMsgIndex = 0;
switch (bStatus)
{
case OSD_SHOW_PLAY:
wMsgIndex = OSD_MSG_ICON_PLAY;
break;
case OSD_SHOW_TRICK:
break;
case OSD_SHOW_NEXT_TRK:
case OSD_SHOW_NEXT_CH:
case OSD_SHOW_NEXT_ITEM:
wMsgIndex = OSD_MSG_ICON_NEXT;
break;
case OSD_SHOW_PREV_TRK:
case OSD_SHOW_PREV_CH:
case OSD_SHOW_PREV_ITEM:
wMsgIndex = OSD_MSG_ICON_PREV;
break;
default:
bStatus = OSD_SHOW_CLEAR;
break;
}
if (wMsgIndex != 0)
{
vOsdCoreSetPlayStatus(bStatus, bTime);
}
if (bStatus == OSD_SHOW_CLEAR)
{
vOsdDisplayChange(DISP_TRICK, bSharedInfo(SI_PBC_STATE));
}
else if (wMsgIndex != 0)
{
{
if(fgFlCheckStatus(FL_STATUS_IN_JPEG))//billy050509 for icon next prev can't display when the jpeg digest
vEnableWB(WB_NORMAL_HEAD1);//billy050509 for icon next prev can't display when the jpeg digest
vOsdPosShow(OSD_POS_PLAY_STATUS, wMsgIndex, bTime);
#ifdef BBK_NEW_INDICATOR
vOsdShowStateBmp(BMP_PLAY_STATUS, bStatus, bTime);
#endif
}
}
}
struct _sPbcStateMsg
{
WORD wMsg;
WORD wIcon;
};
static code struct _sPbcStateMsg _rPbcStateMsg[SV_DIGEST+1] =
{
{ OSD_MSG_NULL, OSD_MSG_NULL },
{ OSD_MSG_NULL, OSD_MSG_ICON_STOP }, // SV_STOP
{ OSD_MSG_NULL, OSD_MSG_ICON_PLAY }, // SV_PLAY
{ OSD_MSG_NULL, OSD_MSG_ICON_FFX}, // SV_FF
{ OSD_MSG_NULL, OSD_MSG_ICON_SFX}, // SV_SF
{ OSD_MSG_NULL, OSD_MSG_ICON_FRX}, // SV_FR
{ OSD_MSG_ICON_SRX, OSD_MSG_ICON_SRX }, // SV_SR
{ OSD_MSG_NULL, OSD_MSG_ICON_PAUSE }, // SV_PAUSE
{ OSD_MSG_NULL, OSD_MSG_ICON_STEP }, // SV_STEP
{ OSD_MSG_ICON_STEP_BACK, OSD_MSG_ICON_STEP_BACK }, // SV_STEP_BACK
{ OSD_MSG_NULL, OSD_MSG_NULL}, // SV_FREEZE
{ OSD_MSG_NULL, OSD_MSG_ICON_PLAY }, // SV_STILL
{ OSD_MSG_NULL, OSD_MSG_NULL}, // SV_SETUP_PAUSE
{ OSD_MSG_NULL, OSD_MSG_ICON_STOP }, // SV_STOP_RESUME
{ OSD_MSG_NULL, OSD_MSG_ICON_PLAY }, // SV_DIGEST9
{ OSD_MSG_NULL, OSD_MSG_ICON_PLAY }, // SV_DIGEST4
{ OSD_MSG_NULL, OSD_MSG_ICON_PLAY }, // SV_DIGEST
};
void vGetPbcStateMsg(BYTE bState, BYTE bVal, WORD *wMsg, BYTE *pbStr) large
{
pbStr[0] = 2;
if ((bState == SV_FF) || (bState == SV_FR))
{
if (bVal == 0)
{
bState = SV_PLAY;
}
else
{
bVal = bHEXToBCD(bVal);
if (BCD_HI(bVal) > 0)
{
pbStr[1] = BCD_HI(bVal) + '0';
pbStr[2] = BCD_LO(bVal) + '0';
}
else
{
pbStr[1] = BCD_LO(bVal) + '0';
pbStr[2] = ' ';
}
}
}
else if ((bState == SV_SF) || (bState == SV_SR))
{
if (bVal == 0)
{
bState = SV_PLAY;
}
else
{
bVal = bHEXToBCD(bVal);
if (BCD_HI(bVal) > 0)
{
pbStr[1] = BCD_HI(bVal) + '0';
pbStr[2] = BCD_LO(bVal) + '0';
}
else
{
pbStr[1] = BCD_LO(bVal) + '0';
pbStr[2] = ' ';
}
}
}
else
{
pbStr[0] = 0;
}
*wMsg = _rPbcStateMsg[bState].wIcon;
// *wMsg = (fgFlCheckStatus(FL_STATUS_IN_MENU)) ? _rPbcStateMsg[bState].wIcon :
// _rPbcStateMsg[bState].wMsg;
}
// *********************************************************************
// Function : void vOsdShowPbcState(BYTE bState, BYTE bVal, BYTE bTime)
// Description :
// Parameter : bState
// - SV_STOP
// - SV_PLAY
// - SV_FF
// - SV_FR
// - SV_SF
// - SV_SR
// - SV_PAUSE
// - SV_STEP
// Return : None
// *********************************************************************
void vOsdShowPbcState(BYTE bState, BYTE bVal, BYTE bTime) large
{
BYTE pbStr[5];
WORD wMsgIndex = 0;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -