📄 sysmenu55.c
字号:
SetBkMode( hdc, OPAQUE);
SetBkColor( hdc, GetColorInDef256Palette(255));
SetTextColor( hdc, GetColorInDef256Palette(31));
DrawText(hdc, UNICODE(str), -1, &rect, DT_LEFT|DT_VCENTER|DT_SINGLELINE|DT_OPAQUE);
SetBkMode( hdc, TRANSPARENT);
}
void DrawEEPROMItem(HDC hdc,const lpSysmenuRect srect)
{
#if 0
int left,right,top,bottom;
RECT rect;
left=srect->rect.left+EEPROM_ITEM_XOFFSET;
top=srect->rect.top+EEPROM_ITEM_YOFFSET;
right=left+EEPROM_ITEM_WIDTH;
bottom=top+EEPROM_ITEM_HEIGHT;
SetRect(&rect, left, top, right,bottom);
SetTextColor( hdc, GetColorInDef256Palette(31));
DrawText(hdc, UNICODE(promedit), -1, &rect, DT_LEFT|DT_VCENTER|DT_SINGLELINE);
top+=(EEPROM_ITEM_HEIGHT*3);
bottom=top+EEPROM_ITEM_HEIGHT;
SetRect(&rect, left, top, right, bottom);
DrawText(hdc, UNICODE(eeprom), -1, &rect, DT_LEFT|DT_VCENTER|DT_SINGLELINE);
#endif
}
void BtoHexStr(BYTE val,BYTE* str)
{
BYTE temp;
temp=(val>>4)&0x0f;
if(temp<=0x09)
str[0]=0x30+temp;
else
str[0]=(temp-10)+0x41;
temp=val&0x0f;
if(temp<=0x09)
str[1]=0x30+temp;
else
str[1]=(temp-10)+0x41;
str[2]='\0';
}
void DrawEEPROMItemValue(HDC hdc,const lpSysmenuRect srect,BYTE addressNum,BYTE val,BYTE highlight)
{
#if 0
int left,top,right,bottom;
RECT rect;
BYTE str[3];
BYTE pos_x,pos_y;
pos_x=addressNum%8;
pos_y=addressNum/8;
memset(str,'\0',3);
BtoHexStr(val,str);
left=srect->rect.left+EEPROM_VALUE_XOFFSET+EEPROM_VALUE_WIDTH*pos_x;
top=srect->rect.top+EEPROM_ITEM_YOFFSET+EEPROM_ITEM_HEIGHT*3+EEPROM_ITEM_HEIGHT*pos_y;//EEPROM_ITEM_HEIGHT*3 for space between two line.
right=left+EEPROM_VALUE_WIDTH;//*(addressNum+1);
bottom=top+EEPROM_ITEM_HEIGHT;
SetRect(&rect, left, top,right, bottom);
SetBkMode( hdc, OPAQUE);
SetBkColor( hdc,GetColorInDef256Palette(255) );
if(highlight==HIGHLIGHT)
{
SetBkColor( hdc,GetColorInDef256Palette(158) );
SetTextColor(hdc, GetColorInDef256Palette(30));
}
else
SetTextColor(hdc, GetColorInDef256Palette(31));
DrawText(hdc, UNICODE(str), -1, &rect, DT_CENTER|DT_VCENTER|DT_SINGLELINE|DT_OPAQUE);
SetBkMode( hdc, TRANSPARENT);
#endif
}
void DrawEEPROMValueEdit(HDC hdc,const lpSysmenuRect srect,BYTE curNum,BYTE curval)
{
#if 0
int left,right,top,bottom,x,y;
RECT rect;
BYTE str[3];
HPEN pen,oldpen;
left=srect->rect.left+EEPROM_VALUE_XOFFSET;
top=srect->rect.top+EEPROM_ITEM_YOFFSET;
right=left+EEPROM_VALUE_WIDTH;
bottom=top+EEPROM_ITEM_HEIGHT;
SetRect(&rect, left, top, right,bottom);
SetBkMode( hdc, OPAQUE);
SetBkColor( hdc,GetColorInDef256Palette(255) );
SetTextColor(hdc, GetColorInDef256Palette(31));
curNum+=1;
if(curNum>9)
BtoHexStr(curNum,str);
else
{
str[0]=curNum+0x30;
str[1]='\0';
}
DrawText(hdc, UNICODE(str), -1, &rect, DT_LEFT|DT_VCENTER|DT_SINGLELINE|DT_OPAQUE);
//draw current prom edit value
left=left+EEPROM_VALUE_WIDTH;
right=left+EEPROM_VALUE_WIDTH;
SetRect(&rect, left, top, right, bottom);
SetTextColor(hdc, GetColorInDef256Palette(31));
memset(str,0x00,3);
BtoHexStr(curval,str);
DrawText(hdc, UNICODE(str), -1, &rect, DT_CENTER|DT_VCENTER|DT_SINGLELINE|DT_OPAQUE);
pen = CreatePen(PS_SOLID, 4, GetColorInDef256Palette(31));
oldpen=(HPEN)SelectObject(hdc,(HGDIOBJ)pen);
x=left+(right-left)/2-12;
y=bottom;
MoveToEx(hdc, x, y, NULL);
x+=24;
LineTo(hdc,x,y);
SelectObject(hdc,(HGDIOBJ)oldpen);
DeleteObject((HGDIOBJ)pen);
SetBkMode( hdc, TRANSPARENT);
#endif
}
void LoadEEPROMOptionValue(void)
{
int i;
memset(eepromdata,0x00,EEPROM_VALUE_BYTES);
Read_OptionPara();
// strcpy(eepromdata,(BYTE*)EEP_Option_Parameter);
eepromdata[EEP_COUNTRY_CODEH]=EEP_Option_Parameter.bCountryCode[0];
eepromdata[EEP_COUNTRY_CODEL]=EEP_Option_Parameter.bCountryCode[1];
eepromdata[EEP_LANGUAGE]=EEP_Option_Parameter.bOSDLang;
eepromdata[EEP_OPTION_1]=EEP_Option_Parameter.bEEPROMOption[0];
eepromdata[EEP_OPTION_2]=EEP_Option_Parameter.bEEPROMOption[1];
eepromdata[EEP_OPTION_3]=EEP_Option_Parameter.bEEPROMOption[2];
eepromdata[EEP_OPTION_4]=EEP_Option_Parameter.bEEPROMOption[3];
eepromdata[EEP_OPTION_5]=EEP_Option_Parameter.bEEPROMOption[4];
for(i=0;i<EEPROM_VALUE_BYTES;i++)
{
//PRINTF("\n\neepromdata=%d",eepromdata[i]);
}
}
void SetEEPOption(BYTE index,BYTE val)
{
#if 0
switch(index)
{
case 0:
case 1:
EEP_Option_Parameter.bCountryCode[index]=val;
OSD_Setup_Parameter.bCountryCode[index]=val;
break;
case 2:
EEP_Option_Parameter.bOSDLang=val;
OSD_Setup_Parameter.bOSDLang=val;
break;
case 3:
case 4:
case 5:
case 6:
case 7:
EEP_Option_Parameter.bEEPROMOption[index-3]=val;
break;
default:
break;
}
#endif
}
void ShowEEPOptionTable(HDC hdc,const lpSysmenuRect srect,BYTE curEditNum )
{
#if 0
BYTE i;
//draw eeprom item
DrawEEPROMItem(hdc, srect);
//draw eeprom item values
for(i=0;i<EEPROM_VALUE_BYTES;i++)
{
if(i==curEditNum)
DrawEEPROMItemValue(hdc, srect, i,eepromdata[i],HIGHLIGHT);
else
DrawEEPROMItemValue(hdc, srect, i,eepromdata[i],HIGHLIGHT_CANCEL);
}
//draw eeprom edit item
DrawEEPROMValueEdit(hdc,srect,curEditNum,eepromdata[curEditNum]);
#endif
}
void UiFuncEEPROMInit(void)
{
#if 0
BYTE i;
BYTE highlight=0;
cur_func=UI_FUNC_EEP_OPTION;
press_progkey=FALSE;
LoadEEPROMOptionValue();
eep_value=eepromdata[0];
clearScreen(hk_dc);
DeleteDC( hk_dc);
HiddenKeyDCInit();
//initialize EEPROM window rectangle
sRc.rect.left=EEPROM_UPPERLEFT;
sRc.rect.top=EEPROM_UPPERTOP;
sRc.rect.right=EEPROM_UPPERLEFT+EEPROM_WIDTH;
sRc.rect.bottom=EEPROM_UPPERTOP+EEPROM_HEIGHT;
sRc.bkCol=SYSMENU_BKCOLOR;
sRc.region1Col=30;
sRc.region2Col=294;
// show eeprom talbe
cur_editnum=0;
ShowEEPOptionTable(hk_dc,&sRc, cur_editnum);
CmdFPMsg_Ext(VFD_EPROM_SHOW, cur_editnum+1, eep_value);
VfdOpenLongKey(1);
#endif
}
void UiFuncEEPROMOptionProc(WORD MsgType, DWORD MsgInput)
{
#if 0
#ifdef _VENDER_E_
switch (MsgType)
{
case C_DT_TEST:
if(MsgInput==C_DT_TEST_BEGIN)
{
cur_func=UI_FUNC_NORMAL;
clearScreen(hk_dc);
DeleteDC(hk_dc);
ChangeLogoData(1);
ShowLogo(C_LOGO_FRAME);
g_UiCrntFunc = UI_FUNC_NORMAL;
(UiInitFunc[UI_FUNC_NORMAL])();
CmdUIMsg(C_DT_TEST, C_DT_TEST_BEGIN);
}
break;
case C_FP_PLAYTIME:
case C_FP_SHOWLOAD:
case C_NV_NOTICE:
case C_PLAYBACK_MANAGE:
case C_UI_NOTICE:
//UiFuncNormalProc(MsgType, MsgInput);
break;
case C_TIMER_ACTIVE:
if( MsgInput==C_SCRSAVERON_TIMER)
ScrSaverTurnON();
break;
case C_FP_MIC_DETECT:
UiFuncNormalProc(MsgType, MsgInput);
break;
case C_SCRSV_NOTICE:
EEPOptionRespondScrsaverNotice(MsgInput);
break;
case C_FP_KEY:
EEPOptionRespondFPKey(MsgInput);
break;
}
#endif
#endif
}
void EEPOptionRespondScrsaverNotice(DWORD MsgInput)
{
#if 0
if(MsgInput==C_SCRSV_OFF)
{
HiddenKeyDCInit();
ShowEEPOptionTable(hk_dc,&sRc, cur_editnum);
}
#endif
}
void EEPOptionRespondFPKey(DWORD MsgInput)
{
#if 0
BYTE temp,i;
switch((BYTE)MsgInput)
{
case V_KEY_DOWN:
DrawEEPROMItemValue(hk_dc, &sRc, cur_editnum,eepromdata[cur_editnum],HIGHLIGHT_CANCEL);
if(cur_editnum==0)
cur_editnum=0x07;
else
cur_editnum-=1;
eep_value=eepromdata[cur_editnum];
CmdFPMsg_Ext(VFD_EPROM_SHOW, cur_editnum+1,eep_value );
DrawEEPROMItemValue(hk_dc, &sRc, cur_editnum,eepromdata[cur_editnum],HIGHLIGHT);
DrawEEPROMValueEdit(hk_dc,&sRc,cur_editnum,eepromdata[cur_editnum]);
break;
case C_KEY_UP:
DrawEEPROMItemValue(hk_dc, &sRc, cur_editnum,eepromdata[cur_editnum],HIGHLIGHT_CANCEL);
if(cur_editnum==0x07)
cur_editnum=0;
else
cur_editnum+=1;
eep_value=eepromdata[cur_editnum];
CmdFPMsg_Ext(VFD_EPROM_SHOW, cur_editnum+1,eep_value );
DrawEEPROMItemValue(hk_dc, &sRc, cur_editnum,eepromdata[cur_editnum],HIGHLIGHT);
DrawEEPROMValueEdit(hk_dc,&sRc,cur_editnum,eepromdata[cur_editnum]);
break;
case V_KEY_0:
case V_KEY_1:
case V_KEY_2:
case V_KEY_3:
case V_KEY_4:
case V_KEY_5:
case V_KEY_6:
case V_KEY_7:
case V_KEY_8:
case V_KEY_9:
temp=MsgInput-V_KEY_0;
if(press_progkey&&temp>0&&temp<7)
{
temp=temp+9;
}
eep_value=(eep_value<<4)+temp;
CmdFPMsg_Ext(VFD_EPROM_SHOW, cur_editnum+1, eep_value);
DrawEEPROMValueEdit(hk_dc,&sRc,cur_editnum,eep_value);
break;
case V_KEY_A:
case V_KEY_B:
case V_KEY_C:
case V_KEY_D:
case V_KEY_E:
case V_KEY_F:
temp=MsgInput-V_KEY_A+10;
eep_value=(eep_value<<4)+temp;
CmdFPMsg_Ext(VFD_EPROM_SHOW, cur_editnum+1, eep_value);
DrawEEPROMValueEdit(hk_dc, &sRc, cur_editnum, eep_value);
break;
case V_KEY_ENTER:
eepromdata[cur_editnum]=eep_value;
SetEEPOption(cur_editnum,eep_value);
Write_OptionPara();
LoadEEPROMOptionValue();
CmdFPMsg_Ext(VFD_EPROM_SHOW, cur_editnum+1, eepromdata[cur_editnum]);
DrawEEPROMItemValue( hk_dc, &sRc, cur_editnum, eepromdata[cur_editnum],HIGHLIGHT );
if(cur_editnum==5)
{
Read_OptionPara();
InitSysPara();//for fixed bug: after change screen saver time ,if don't press any key,scrsaver will be error.
}
break;
case V_KEY_OPEN:
case V_KEY_POWER:
case V_KEY_PAUSE:
case V_KEY_CLOSE:
if(cur_func==UI_FUNC_EEP_OPTION)
{
cur_func=UI_FUNC_NORMAL;
clearScreen( hk_dc);
DeleteDC(hk_dc);
Read_OptionPara();
InitSysPara();
Set_DTS_Decode_Option();
if(GetDefSetupPara(GETCMD_PROGRESSIVE)&&!GetDefSetupPara(GETCMD_PAL_PSCAN)
&&OSD_Setup_Parameter.bScanMode==SETUPFUNC_SCANMD_PROC)
OSD_Setup_Parameter.bTVOutPut = C_NTSC;
else
OSD_Setup_Parameter.bTVOutPut = GetDefSetupPara(GETCMD_TVOUTPUT);
SetTVOutput(OSD_Setup_Parameter.bTVOutPut);
if( (GetDefSetupPara(GETCMD_SCART)&&OSD_Setup_Parameter.bScanMode ==SETUPFUNC_SCANMD_INT) ||OSD_Setup_Parameter.bScanMode ==SETUPFUNC_SCANMD_VGA )
OSD_Setup_Parameter.bVideoOutput = SETUPFUNC_VIDOPUT_RGB;
else
OSD_Setup_Parameter.bVideoOutput = SETUPFUNC_VIDOPUT_YUVSM;
OSD_Setup_Parameter.bTempVideoOutPut = OSD_Setup_Parameter.bVideoOutput;
SetVidOutput(&OSD_Setup_Parameter.bVideoOutput);
//If set VGA off when current output is VGA, change to YPbPr
if(OSD_Setup_Parameter.bScanMode == SETUPFUNC_SCANMD_VGA && !GetDefSetupPara(GETCMD_VGA) )
{
OSD_Setup_Parameter.bScanMode = SETUPFUNC_SCANMD_PROC;
OSD_Setup_Parameter.bVideoOutput = SETUPFUNC_VIDOPUT_YUVSM;
SetVidOutput(&OSD_Setup_Parameter.bVideoOutput);
SetScanMode(&OSD_Setup_Parameter.bScanMode);
}
Write_UserPara();
InitSetupCfg();
ChangeLogoData(1);
ShowLogo(C_LOGO_FRAME);
if(MsgInput==V_KEY_PAUSE)
{
(UiInitFunc[UI_FUNC_NORMAL])();
g_UiCrntFunc=UI_FUNC_NORMAL;
SendVFDPart1Show();
}
}
VfdCloseLongKey(1);
break;
}
if(MsgInput==V_KEY_PROGRAM)
{
if(!press_progkey)
press_progkey=TRUE;
}
else
{
press_progkey=FALSE;
}
#endif
}
void BtoStr(BYTE* str,BYTE val,BYTE strlen)
{
BYTE i,j,temp,temp1;
BYTE pos=0;
BYTE str1[4];
memset(str,0x00,strlen);
memset(str1,0x00,4);
if(val==0)
{
str[0]=0x30;
return;
}
temp=val/100;
str1[pos]=temp+0x30;
pos++;
if(pos==strlen)
return;
temp1=(val-temp*100)/10;
str1[pos]=temp1+0x30;
pos++;
if(pos==strlen)
return;
temp1=(val-temp*100)%10;
str1[pos]=temp1+0x30;
for(i=0;i<3;i++)
{
if(str1[i]>0x30)
break;
}
for(j=0;i<3;i++,j++)
{
str[j]=str1[i];
}
}
#ifdef _VENDER_E_
void ShowRegionTable(HDC hdc,const lpSysmenuRect srect,BYTE rgn)
{
BYTE regioncode[4]="_ ";
DrawRegionCodeItem(hdc,srect);
DrawRegionCodeItemValue(hdc,srect,1,regioncode);
BtoStr(regioncode,rgn,4);
DrawRegionCodeItemValue(hdc,srect,2,regioncode);
}
void UiFuncShowRegionCodeInit(void)
{
BYTE region;
cur_func=UI_FUNC_SHOWREGION;
region=OSD_Setup_Parameter.bRegion; //bond modify 031208
HiddenKeyDCInit();
//
sRc.rect.left=EEPROM_UPPERLEFT;
sRc.rect.top=EEPROM_UPPERTOP;
sRc.rect.right=EEPROM_UPPERLEFT+EEPROM_WIDTH;
sRc.rect.bottom=EEPROM_UPPERTOP+EEPROM_HEIGHT;
sRc.bkCol=SYSMENU_BKCOLOR;
sRc.region1Col=30;
sRc.region2Col=294;
//DrawSysmenuRect(hk_dc,&sRc);
ShowRegionTable(hk_dc,&sRc,region);
CmdFPMsg_Ext(VFD_REGIONCODE_SHOW, region, 0);
}
void Save2RegionEEProm(BYTE val)
{
OSD_Setup_Parameter.bRegion=val;
Write_UserPara();
}
void UiFuncShowRegionCodeProc(WORD MsgType, DWORD MsgInput)
{
#ifdef _VENDER_E_
switch (MsgType)
{
case C_DT_TEST:
if(MsgInput==C_DT_TEST_BEGIN)
{
cur_func=UI_FUNC_NORMAL;
clearScreen(hk_dc);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -