📄 nmosd.c
字号:
case MODESTR_REPEATA:
pos1=LoadText(RS_MPLAYER_REPEAT_A, testbuf,30);
pos1-=2;
pos1+=LoadText(RS_GUI_SPACE_2, &testbuf[pos1], 30);
pos1-=2;
pos1+=LoadText(RS_MPLAYER_HYPHEN, &testbuf[pos1],30);
pos1-=2;
pos1+=LoadText(RS_GUI_SPACE_2, &testbuf[pos1], 30);
pos1-=2;
pos1+=LoadText(RS_GUI_SPACE_2, &testbuf[pos1], 30);
break;
default:
LoadText(strtype, testbuf,100);
break;
}
}
void ShowModeGuiWithMemdc(HDC hdc,lpBaseRect brect,lpBaseBmp bmp,BYTE* str, BOOL symbol)
{
RECT BmpRect,StrRect,TempRect;
HDC hMemDC;
HBITMAP hOldBmp;
//added by gushun
COLORREF clText, clBk, clTopEdge, clBotEdge, clLittleBk;
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);
//added by gushun
SetRect(&BmpRect, bmp->upperleftx, bmp->upperlefty, bmp->upperleftx+bmp->width, bmp->upperlefty+bmp->height);
CopyRect(&StrRect, &(brect->rect));
hMemDC=InitMemoryDC(hdc, StrRect.right-StrRect.left, StrRect.bottom-StrRect.top, &hOldBmp);
if (symbol)
{
TempRect.left=0;
TempRect.top=0;
TempRect.right=StrRect.right-StrRect.left;
TempRect.bottom=StrRect.bottom-StrRect.top;
//show highlight box
//modyfied by gushun
// GUI_CreateLeftMidRightBitmap2(hMemDC, &TempRect, IM_GUI_ICON_AUDIO_BACK,IM_GUI_ICON_AUDIO_BACK,IM_GUI_ICON_AUDIO_BACK,TRUE);
GUI_CreateButtonControl2(hMemDC, &TempRect, clBk, clTopEdge, clBotEdge, clText, "", NORMAL_STRING, 0, 0);
TempRect.left = MODELITTLEBOXLEFT-StrRect.left;
TempRect.top = MODELITTLEBOXTOP-StrRect.top;
TempRect.right = MODELITTLEBOXRIGHT-StrRect.left;
TempRect.bottom = MODELITTLEBOXBOTTOM-StrRect.top;
GUI_CreateButtonControl2(hMemDC, &TempRect, clLittleBk, clLittleBk, clLittleBk, clLittleBk, "", NORMAL_STRING, 0, 0);
//modyfied by gushun
OffsetRect(&TempRect,-40 , 0);
//draw item info
//added by gushun
TempRect.left=0;
TempRect.top=0;
TempRect.right=StrRect.right-StrRect.left;
TempRect.bottom=StrRect.bottom-StrRect.top;
//added by gushun
#if 0
DrawMultiLine(hdc,
consoleAudioItem.lineCount,
consoleAudioItem.lpString[0],
&TempRect,
CNSL_TEXT_UNSELE_COLOR,
DT_RIGHT | DT_VCENTER | DT_SINGLELINE | DT_CHARCLIP);
#endif
}
else
{
TempRect.left=0;
TempRect.top=0;
TempRect.right=StrRect.right-StrRect.left;
TempRect.bottom=StrRect.bottom-StrRect.top;
//show highlight box
//modyfied by gushun
// GUI_CreateLeftMidRightBitmap2(hMemDC, &TempRect, IM_GUI_ICON_BACK,IM_GUI_ICON_BACK,IM_GUI_ICON_BACK,TRUE);
GUI_CreateButtonControl2(hMemDC, &TempRect, clBk, clTopEdge, clBotEdge, clText, "", NORMAL_STRING, 0, 0);
TempRect.left = MODELITTLEBOXLEFT-StrRect.left;
TempRect.top = MODELITTLEBOXTOP-StrRect.top;
TempRect.right = MODELITTLEBOXRIGHT-StrRect.left;
TempRect.bottom = MODELITTLEBOXBOTTOM-StrRect.top;
GUI_CreateButtonControl2(hMemDC, &TempRect, clLittleBk, clLittleBk, clLittleBk, clLittleBk, "", NORMAL_STRING, 0, 0);
//modyfied by gushun
//draw item info
//added by gushun
TempRect.left=0;
TempRect.top=0;
TempRect.right=StrRect.right-StrRect.left;
TempRect.bottom=StrRect.bottom-StrRect.top;
//added by gushun
GUI_CreateButtonControl2(hMemDC,&TempRect,CL_BKNOCARE, CL_BKNOCARE,CL_BKNOCARE, GetColorInDef256Palette(CNSL_TEXT_UNSELE_COLOR), str, UNICODE_STRING, DT_RIGHT, 8);
}
TempRect.left=BmpRect.left-StrRect.left;
TempRect.top=BmpRect.top-StrRect.top;
TempRect.right=BmpRect.right-StrRect.left;
TempRect.bottom=BmpRect.bottom-StrRect.top;
//show item image
GUI_CreateBitmapControl2(hMemDC,&TempRect,CL_BKNOCARE, CL_BKNOCARE, CL_BKNOCARE, bmp->BmpID, 0, 0);
BitBlt(hdc, StrRect.left, StrRect.top, StrRect.right-StrRect.left, StrRect.bottom-StrRect.top, hMemDC, 1,0,SRCCOPY);
DelMemoryDC(hMemDC, hOldBmp);
}
extern BOOL GetMuteVolumeStatus();
BOOL (*ptr_GetMuteVolumeStatus)();
/*----------------------------------------------------------------------------
* Function name: ShowModeGui
* Arguments: WORD msgtype,WORD bmpid,LPBYTE str
* Return value: None
* Remark: This function show modegui;The global variable it uses is modebox.
*----------------------------------------------------------------------------*/
void ShowModeGui(WORD msgtype,WORD msginput1,WORD msginput2)
{
BYTE str[100];
if(g_UiCrntSubFunc==UI_SUBFUNC_BMARK)
{
g_UiCrntSubFunc=UI_SUBFUNC_BASAL;//bond add for lg bug 031118.
ClearRectArea(gui_hdc,GUITYPE_MODEGUI);
}
#ifdef _MUTE_ENABLE_
ptr_GetMuteVolumeStatus = GetMuteVolumeStatus;
if(g_UiCrntSubFunc == UI_SUBFUNC_MUTEVOLUME && (*ptr_GetMuteVolumeStatus)() == MUTEVOLUME_STATUS_MUTE)
{
ClearRectArea(gui_hdc, GUITYPE_MUTE);
}
#endif
if(modeGuiType==MSG_VOICE&&(DiscType==C_DVD))
ClearRectArea(gui_hdc,GUITYPE_MODEGUI);
if((modeGuiType >= MSG_LOADING&& modeGuiType <= MSG_BAD_DISC)||modeGuiType==MSG_DVD_AUDIO||modeGuiType==MSG_UNSURPORT_DISC)
ClearRectArea(gui_hdc, GUITYPE_MODEGUI);
SetOSDLanguage(&OSD_Setup_Parameter.bOSDLang);
modeGuiType = msgtype;
SetRect(&(modebox.baserec.rect), MODEBOXLEFT, MODEBOXTOP, MODEBOXRIGHT, MODEBOXBOTTOM);
switch(msgtype)
{
case MSG_REPEAT_A:
modebox.bmp.BmpID=IM_GUI_RPT;
GetModeStr(MODESTR_REPEATA, 0, 0,str);
break;
case MSG_REPEAT_AB:
modebox.bmp.BmpID=IM_GUI_RPT;
GetModeStr(RS_MPLAYER_REPEAT_AB,0, 0,str);
break;
case MSG_REPEATOFF:
modebox.bmp.BmpID=IM_GUI_RPT;
GetModeStr(RS_GUI_OFF,0, 0,str);
break;
case MSG_REPEAT:
modebox.bmp.BmpID=IM_GUI_RPT;
if(msginput1==1)
GetModeStr(RS_GUI_LEARNING_REPEAT, 0, 0,str);
else
{
if (DiscType == C_DVD)
GetModeStr(RS_GUI_CHAPTER, 0, 0,str);
else
GetModeStr(RS_GUI_TRACKS, 0, 0,str);
}
break;
case MSG_REPEAT_ALL:
modebox.bmp.BmpID=IM_GUI_RPT;
if (DiscType == C_DVD )
GetModeStr(RS_GUI_TITLE, 0, 0,str);
else
GetModeStr(RS_MPLAYER_ALL, 0, 0,str);
break;
case MSG_ANGLE:
modebox.bmp.BmpID=IM_GUI_ANGLE;
GetModeStr(MODESTR_NUMSELECT,msginput1, msginput2,str);
break;
case MSG_BOOKMARK:
modebox.bmp.BmpID=IM_GUI_MARKER;
GetModeStr(MODESTR_BMNUMSELECT,msginput1, msginput2,str);
break;
case MSG_SUBPIC:
modebox.bmp.BmpID=IM_GUI_SUBTITLE;
if(msginput1==0&&msginput2!=0)
GetModeStr(RS_GUI_OFF,0,0,str);
else if(msginput1==0&&msginput2==0)
UNStringCopy( str,"\0N\0O\0N\0E\0\0");
else
GetModeStr(MODESTR_NUMSTR,msginput1, msginput2,str);
break;
case MSG_NUM:
if(DiscType==C_DVD)
modebox.bmp.BmpID=IM_GUI_CHAPTER;
else
modebox.bmp.BmpID=IM_GUI_TITLE;
GetModeStr(MODESTR_NUMSELECT,msginput1, msginput2,str);
break;
case MSG_SOUND:
modebox.bmp.BmpID=IM_GUI_SOUND;
if(msginput1==0)
GetModeStr(RS_GUI_NORMAL,0, 0,str);
else
GetModeStr(RS_GUI_SRS3D,0, 0,str);
break;
case MSG_VOICE:
modebox.bmp.BmpID=IM_GUI_AUDIO;
if(DiscType == C_SVCD||DiscType==C_VCD20||DiscType==C_VCD10)
{
if(msginput1==0)
GetModeStr(RS_GUI_STEREO,0,0,str);
else if(msginput1==1)
GetModeStr(RS_GUI_LEFT,0,0,str);
else
GetModeStr(RS_GUI_RIGHT,0,0,str);
break;
}
else
{
ShowAudioItem();
return;
}
case MSG_PAL:
modebox.bmp.BmpID=0;
GetModeStr(RS_SETUP_DISP_PAL,0,0,str);
break;
case MSG_AUTO:
modebox.bmp.BmpID=0;
GetModeStr(RS_GUI_DEINT_MODE_AUTO,0,0,str);
break;
case MSG_NTSC:
modebox.bmp.BmpID=0;
GetModeStr(RS_SETUP_DISP_NTSC,0,0,str);
break;
}
ShowModeGuiWithMemdc(gui_hdc, &modebox.baserec,&modebox.bmp, str, 0);
if(msgtype==MSG_REPEAT_A)
SetTimer( OSD6_TM_ID, ModeOSDOff, INFINITETIME);
else// if(msgtype==MSG_REPEAT_AB||msgtype==MSG_PREV)
SetTimer( OSD6_TM_ID, ModeOSDOff, TIME_3SEC);
//else if(msgtype==MSG_NEXT)
// SetTimer( OSD6_TM_ID, ModeOSDOff, TIME_3SEC/*500*/);//bond modify 031013 for bug 1520
// else
// SetTimer( OSD6_TM_ID, ModeOSDOff, TIME_3SEC );
}
/*----------------------------------------------------------------------------
* Function name: ShowDiscType
* Arguments:
* Return value: None
* Remark: show current disc type
*----------------------------------------------------------------------------*/
void ShowDiscType(HDC hdc,WORD DiscType,WORD input)
{
#if 0
static BaseString Nodiscstr ={
RS_DISC_NO_DISC,
{
LOAD_ICON_LEFT+PL_BMP_WIDTH+13+9,
PL_ALARMSTR_TOP,
MSGLEFT,/*LOAD_ICON_LEFT+PL_BMP_WIDTH+243,*/
PL_ALARMSTR_BOTTOM,
255,255,255
},
DT_LEFT|DT_SINGLELINE|DT_VCENTER,32,NULL
};
BYTE nodiscstr[30];
static BaseString Chkdiscstr ={
RS_DISC_CHECK_DISC,
{
LOAD_ICON_LEFT+PL_BMP_WIDTH+13,
PL_ALARMSTR_TOP,
LOAD_ICON_LEFT+PL_BMP_WIDTH+243,
PL_ALARMSTR_BOTTOM,
255,255,255
},
DT_LEFT|DT_SINGLELINE|DT_VCENTER,32,NULL
};
BYTE chkdiscstr[30];
static BaseString Discerrstr ={
RS_DISC_DISC_ERROR,
{
LOAD_ICON_LEFT+PL_BMP_WIDTH+13,
PL_ALARMSTR_TOP,
LOAD_ICON_LEFT+PL_BMP_WIDTH+243,
PL_ALARMSTR_BOTTOM,
255,255,255
},
DT_LEFT|DT_SINGLELINE|DT_VCENTER,32,NULL
};
BYTE discerrstr[30];
#endif
BaseBmp bp;
WORD guiIndex;
switch(DiscType)
{
case MSG_LOADING:
guiIndex = IM_DISC_ANI_1+input;
break;
case MSG_UNKNOWN_DISC:
case MSG_UNSURPORT_DISC:
guiIndex = IM_DISC_ERR_CHECK;
break;
// case MSG_UNSURPORT_DISC:
// guiIndex = IM_DISC_ERR_CHECK;
// break;
case MSG_DVD:
guiIndex = IM_DISC_DVD;
break;
case MSG_VCD10:
guiIndex = IM_DISC_VCD10;
break;
case MSG_VCD20:
guiIndex = IM_DISC_VCD20;
break;
case MSG_SVCD:
guiIndex = IM_DISC_SVCD;
break;
case MSG_NO_DISC:
guiIndex = IM_DISC_NO_DISC;
break;
case MSG_BAD_DISC:
guiIndex = IM_DISC_ERR_CHECK;
ClearRectArea(gui_hdc, GUITYPE_SCREEN);
break;
case MSG_CDDA:
guiIndex = IM_DISC_CD;
break;
case MSG_HDCD:
guiIndex = IM_DISC_HDCD;
break;
// case MSG_DVD_AUDIO:
// guiIndex = IM_DISC_AUDIO;
// break;
default :
guiIndex = 0;
}
if(guiIndex!=0)
{
//if(DiscType!=MSG_LOADING)
ClearRectArea(gui_hdc, GUITYPE_MODEGUI);
/* if(DiscType==MSG_NO_DISC)
{
GetModeStr(Nodiscstr.stringID,0,0,nodiscstr);
DrawBaseString(gui_hdc, &Nodiscstr,nodiscstr);
}
else if(DiscType==MSG_UNKNOWN_DISC)
{
GetModeStr(Discerrstr.stringID,0,0,discerrstr);
DrawBaseString(gui_hdc, &Discerrstr,discerrstr);
}
else if(DiscType==MSG_UNSURPORT_DISC)
{
GetModeStr(Chkdiscstr.stringID,0,0,chkdiscstr);
DrawBaseString(gui_hdc, &Chkdiscstr,chkdiscstr);
}
else*/
{
bp.upperleftx = 50;//63;
bp.upperlefty = 16;//22;
bp.height = 46;//34;
bp.width = 84;//58;
bp.BmpID = IM_DISC_ICON;
DrawBaseBmp(hdc,&bp);
}
bp.upperleftx = 41;
bp.upperlefty = 62;
bp.height = 19;
bp.width = 104;
modeGuiType = DiscType;
bp.BmpID = guiIndex;
DrawBaseBmp(hdc,&bp);
if(DiscType==MSG_CDDA || DiscType==MSG_HDCD)
delay(TIME_1SEC);
}
}
void ShowDiscLoad(HDC hdc,WORD DiscType,WORD input)
{
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -