⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 sysmenu55.c

📁 M3355的源代码
💻 C
📖 第 1 页 / 共 3 页
字号:
    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 + -