📄 nmosd.c
字号:
BaseBmp bp;
WORD guiIndex;
bp.upperleftx = 50;
bp.upperlefty = 16;
bp.height = 46;
bp.width = 84;
guiIndex = IM_DISC_ANI_1+input;
if(guiIndex!=0)
{
modeGuiType = DiscType;
bp.BmpID = guiIndex;
DrawLoadBmp(hdc,&bp);
}
}
/*----------------------------------------------------------------------------
* Function name: ClearRectArea
* Arguments:
* Return value: None
* Remark: clear gui by type
*----------------------------------------------------------------------------*/
void ClearRectArea( HDC hdc,BYTE GuiType)
{
RECT rect;
HBRUSH hbr;
int left,top,right,bottom;
extern BOOL isShow3DSur;
extern BOOL bNeedShowAC3;
//haiyuan030806 prohibit clear modegui in console mode
if(g_UiCrntSubFunc == UI_SUBFUNC_CONSOLE && GuiType == GUITYPE_MODEGUI)
return;
//--------------------
if (GuiType==GUITYPE_SCREEN||GuiType==GUITYPE_MODEGUI||GuiType==GUITYPE_DISPLAYGUI)
isShow3DSur =FALSE;
switch(GuiType)
{
case GUITYPE_SCREEN:
left=0;
top=0;
right=608;
bottom=416;
break;
case GUITYPE_DISPLAYGUI:
left=0;
top=0;
if(bIsDVDRegionErr)
right=MSGLEFT+8;
else
right=MSGLEFT-15;//CNSL_HINTBOX_RIGHT;
bottom=420;
break;
case GUITYPE_DISPLAYHINT:
left=50;
top=334;
right=374;
bottom=435;
break;
case GUITYPE_MODEGUI:
bNeedShowAC3=0;
modeGuiType = 0;
left=0;
top=0;
if(bIsDVDRegionErr)
right=MSGLEFT+8;
else
right=MSGLEFT-2;
bottom=150;
break;
case GUITYPE_PLAYMODEGUI:
#ifdef _MPLAY_ENABLE_
//--> Gordon. in Slide show, the dc is different, so the position was not correct if using old dc, to let it be the same as MPO, I reimplemented it.
if(FileType==C_JPGFILE )
{
MPA_RefreshAuxiliary(AT_PLAYMODE_CLR, &gAuxParam);
return;
}
else
//<-- Gordon
#endif //MPLAYER_ENABLE
{
left=MSGLEFT;
top=MSGTOP;
right=MSGRIGHT;
bottom=MSGTOP+64;
}
break;
case GUITYPE_ZOOM:
left = ZOOM_LEFT-10;
top = ZOOM_TOP;
right = ZOOM_LEFT + ZOOM_WIDTH+10;
bottom = ZOOM_TOP + ZOOM_UP_HEIGHT + ZOOM_DOWN_HEIGHT+10;
break;
case GUITYPE_KARAOKE:
if (g_UiCrntFunc==UI_FUNC_FILEOPEN||FileType==C_JPGFILE)
{
left = KOK_LEFT;
top = KOK_TOP;
right = left + KOK_OUTLOOK_WIDTH + 2;
bottom = top + KOK_OUTLOOK_HIGH + 2;
}
else
{
left = KOK_LEFT;
top = KOK_TOP;
right = left + 450+100;//bond modify it for bug 2187
bottom = top + 45+30+100;
}
break;
#ifdef _BRIGHT_ENABLE_
#define _GUITYPE_VOLUME_BRIGHT_ENABLE_
#endif
#ifdef _MUTE_ENABLE_
#define _GUITYPE_VOLUME_BRIGHT_ENABLE_
#endif
#ifdef _GUITYPE_VOLUME_BRIGHT_ENABLE_
case GUITYPE_VOLUME_BRIGHT:
if ((g_UiCrntFunc==UI_FUNC_FILEOPEN) || (FileType==C_JPGFILE) || bMixPlay)
{
left = KOK_LEFT;
top = KOK_TOP;
right = left + KOK_OUTLOOK_WIDTH + 2+20;
bottom = top + KOK_OUTLOOK_HIGH + 2;
}
else
{
left = KOK_LEFT-20;
top = KOK_TOP;
right = left + 450+100+20;
bottom = top + 45+30+100;
}
break;
#endif
#ifdef _MUTE_ENABLE_
case GUITYPE_MUTE:
if ((g_UiCrntFunc==UI_FUNC_FILEOPEN) || (FileType==C_JPGFILE) || bMixPlay)
{
left = KOK_LEFT;
top = KOK_TOP;
right = left + 100;
bottom = top + KOK_OUTLOOK_HIGH + 2;
}
else
{
left = KOK_LEFT;
top = KOK_TOP;
right = left + 100;
bottom = top + 45+30+100;
}
break;
#endif
}
// SetRect(&rect,0, 0, 608, 416);
SetRect(&rect,left, top, right, bottom);
hbr=CreateSolidBrush(GetColorInDef256Palette(255));
FillRect(hdc, &rect, hbr);
DeleteObject((HGDIOBJ)hbr);
}
/*----------------------------------------------------------------------------
* Function name: ShowDiscInfo
* Arguments: WORD Msg_type,WORD Msg_input
* Return value: None
* Remark: show sth. about disc current info,such as invalid,disctype,warning,angle and menu
* number.
*----------------------------------------------------------------------------*/
static WORD infotype;
void ShowDiscInfo(WORD Msg_type,WORD Msg_input)
{
BYTE numlen;
static BaseBmp bbp =
{
0,
INVALID_MSG_LEFT,
INVALID_MSG_TOP,
INVALID_MSG_WIDTH,INVALID_MSG_HEIGHT
};
BYTE anglestr[4]={0xe0,0x0c,0x00,0x00};
BYTE str[10]={0xe0,0x0c,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00};
BaseRect br=
{
{INVALID_MSG_LEFT-8,INVALID_MSG_TOP-5, INVALID_MSG_LEFT+36, INVALID_MSG_TOP+28},//{428,6,568,38}
251,
251,
251
};
BYTE numstr[15];
int pos1,pos2,temp;
if(Msg_type==MSG_INVALID)
{
if(infotype!=MSG_INVALID&&infotype!=MSG_LOADING)
ClearRectArea(gui_hdc, GUITYPE_PLAYMODEGUI);
ShowInvalidWithMemdc(gui_hdc, &br, NULL);
/*
DrawBaseRect(gui_hdc,&br);
bbp.BmpID = IM_DISC_ERR_ERROR;
bbp.upperleftx = INVALID_MSG_LEFT+2;
bbp.upperlefty = INVALID_MSG_TOP;
bbp.height = INVALID_MSG_HEIGHT;
//--> Gordon
if(FileType==C_JPGFILE || bMixPlay)
{
bbp.upperleftx+=56;
bbp.upperlefty+=16;
}
//<-- Gordon
bbp.width = INVALID_MSG_WIDTH;
DrawBaseBmp(gui_hdc, &bbp);
bbp.BmpID = IM_PLAY_STATE_INVALID_FRAME_UP;
bbp.upperleftx = INVALID_MSG_LEFT-8;
bbp.upperlefty = INVALID_MSG_TOP-5;
bbp.height = 2;//INVALID_MSG_HEIGHT;
//--> Gordon
if(FileType==C_JPGFILE || bMixPlay)
{
bbp.upperleftx+=56;
bbp.upperlefty+=16;
}
//<-- Gordon
bbp.width = INVALID_MSG_WIDTH;
DrawBaseBmp(gui_hdc, &bbp);
bbp.BmpID = IM_PLAY_STATE_INVALID_FRAME_DOWN;
bbp.upperleftx = INVALID_MSG_LEFT-8;
bbp.upperlefty = INVALID_MSG_TOP+28;
bbp.height = 2;//INVALID_MSG_HEIGHT;
//--> Gordon
if(FileType==C_JPGFILE || bMixPlay)
{
bbp.upperleftx+=56;
bbp.upperlefty+=16;
}
//<-- Gordon
bbp.width = INVALID_MSG_WIDTH;
DrawBaseBmp(gui_hdc, &bbp);
bbp.BmpID = IM_PLAY_STATE_INVALID_FRAME_LEFT;
bbp.upperleftx = INVALID_MSG_LEFT-8;
bbp.upperlefty = INVALID_MSG_TOP-3;
bbp.height = 36;//INVALID_MSG_HEIGHT;
//--> Gordon
if(FileType==C_JPGFILE || bMixPlay)
{
bbp.upperleftx+=56;
bbp.upperlefty+=16;
}
//<-- Gordon
bbp.width = 2;//INVALID_MSG_WIDTH;
DrawBaseBmp(gui_hdc, &bbp);
bbp.BmpID = IM_PLAY_STATE_INVALID_FRAME_RIGHT;
bbp.upperleftx = INVALID_MSG_LEFT+36;
bbp.upperlefty = INVALID_MSG_TOP-3;
bbp.height = 36;//INVALID_MSG_HEIGHT;
//--> Gordon
if(FileType==C_JPGFILE || bMixPlay)
{
bbp.upperleftx+=56;
bbp.upperlefty+=16;
}
//<-- Gordon
bbp.width = INVALID_MSG_WIDTH;
DrawBaseBmp(gui_hdc, &bbp);
*/
infotype=MSG_INVALID;
//modeGuiType=MSG_INVALID;
SetTimer(SHOWINVALID_TM_ID,ShowInvalidTimer,TIME_3SEC);
}
if(Msg_type==MSG_ANGLE)
{
ClearRectArea(gui_hdc, GUITYPE_PLAYMODEGUI);
bbp.BmpID = IM_GUI_ANGLE;
bbp.upperleftx = INVALID_MSG_LEFT;
bbp.upperlefty = INVALID_MSG_TOP;
bbp.height = INVALID_MSG_HEIGHT;
bbp.width = INVALID_MSG_WIDTH;
infotype=MSG_ANGLE;
DrawBaseBmp(gui_hdc, &bbp);
SetTimer(SHOWINVALID_TM_ID,ShowInvalidTimer,TIME_5SEC);
}
if(Msg_type==MSG_NUM) //030812-03lily:show number on OSD
{
ClearRectArea(gui_hdc, GUITYPE_PLAYMODEGUI);
if(Msg_input<10)
{
if(Msg_input==0)
Msg_input=10;
pos1=LoadText(RS_MPLAYER_1+Msg_input-1, numstr,15);
}
else
{
temp=Msg_input/10;
pos1=LoadText(RS_MPLAYER_1+temp-1, numstr,15);
temp=Msg_input%10;
if(temp!=0)
pos2=LoadText(RS_MPLAYER_1+temp-1, &numstr[pos1-2],15);
else
pos2=LoadText(RS_MPLAYER_0, &numstr[pos1-2],15);
}
if(infotype==MSG_INVALID)
{
ClearRectArea(gui_hdc, GUITYPE_PLAYMODEGUI);
SetTimer(SHOWINVALID_TM_ID,ShowInvalidTimer,INFINITETIME);
}
infotype=MSG_NUM;
ShowStrWithMemdc(gui_hdc,&br, numstr);
SetTimer(OSD1_TM_ID,PlayModeGUITimer,TIME_3SEC);//301011-01mi
}
if((Msg_type >= MSG_LOADING&& Msg_type <= MSG_BAD_DISC)||Msg_type==MSG_DVD_AUDIO||Msg_type==MSG_UNSURPORT_DISC
||Msg_type==MSG_HDCD)
{
if(bShowNPswitch == 1)
{
bShowNPswitch = 0;
ClearRectArea(gui_hdc, GUITYPE_MODEGUI);
}
if(Msg_type == MSG_LOADING)
ShowDiscLoad(gui_hdc,Msg_type,Msg_input);
else
ShowDiscType(gui_hdc, Msg_type,Msg_input);
infotype=MSG_LOADING;
if ((Msg_type==MSG_UNKNOWN_DISC)||(Msg_type==MSG_UNSURPORT_DISC)||(Msg_type==MSG_NO_DISC))
SetTimer(OSD6_TM_ID,ModeOSDOff,INFINITETIME);
else
SetTimer(OSD6_TM_ID,ModeOSDOff,TIME_3SEC);
}
}
/*----------------------------------------------------------------------------
* Function name: ShowAudioItem
* Arguments: none
* Return value: None
* Remark: show audio at the modebox position
*----------------------------------------------------------------------------*/
void ShowAudioItem()
{
WORD height;
RECT tempRect,bmpRect,totalRect;
int i;
COLORREF clText, clBk, clTopEdge, clBotEdge, clLittleBk;
HDC hMemDC;
HBITMAP hOldBmp;
extern BOOL isShow3DSur;
#ifdef _MUTE_ENABLE_
ptr_GetMuteVolumeStatus = GetMuteVolumeStatus;
if(g_UiCrntSubFunc == UI_SUBFUNC_MUTEVOLUME && (*ptr_GetMuteVolumeStatus)() == MUTEVOLUME_STATUS_MUTE)
{
ClearRectArea(gui_hdc, GUITYPE_MUTE);
}
#endif
if(isShow3DSur)
isShow3DSur =FALSE;
consoleAudioItem.curLine = 0;
GetAudioInfo2Item(&consoleAudioItem);
clBk = GetColorInDef256Palette(MODEBOX_COLOURE_BK);
clTopEdge = GetColorInDef256Palette(MODEBOX_COLOURE_TOPEDGE);
clBotEdge = GetColorInDef256Palette(MODEBOX_COLOURE_BOTEDGE);
clText = GetColorInDef256Palette(MODEBOX_COLOURE_TEXT);
clLittleBk = GetColorInDef256Palette(MODEBOX_COLOURE_LITTLEBK);
if(consoleAudioItem.lineCount ==1)
{
return;
}
if(consoleAudioItem.lineCount>3)
{
return;
}
totalRect.left = MODEBOXLEFT;
totalRect.top = MODEBOXTOP;
totalRect.bottom = MODEBOXHBOTTOM;
totalRect.right = MODEBOXRIGHT;
hMemDC=InitMemoryDC(gui_hdc, totalRect.right-totalRect.left, totalRect.bottom-totalRect.top, &hOldBmp);
tempRect.left = 0;
tempRect.top = 0;
tempRect.bottom = MODEBOXHBOTTOM-totalRect.top;
tempRect.right = MODEBOXRIGHT-totalRect.left;
GUI_CreateButtonControl2(hMemDC, &tempRect, clBk, clTopEdge, clBotEdge, clText, "", NORMAL_STRING, 0, 0);
//count the bmp position
bmpRect.left = MODEICONLEFT-totalRect.left;
bmpRect.top = MODEICONTOP-totalRect.top;
bmpRect.bottom = bmpRect.top+MODEICONHEIGHT;
bmpRect.right = bmpRect.left+MODEICONWIDTH;
#ifdef _SDRAM_4M16x1
GUI_CreateBitmapControl2(hMemDC,&bmpRect,CL_BKNOCARE, CL_BKNOCARE, CL_BKNOCARE, IM_GUI_ICON_AUDIO, 2, 12);
#else
GUI_CreateBitmapControl2(hMemDC,&bmpRect,CL_BKNOCARE, CL_BKNOCARE, CL_BKNOCARE, IM_GUI_AUDIO, 2, 12);
#endif
tempRect.left = MODELITTLEBOXLEFT - totalRect.left;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -