📄 mode.c
字号:
#endif
//*********************ryan 081209 change 1600*900 to 1440*900**********************
if((modecnt==_MODE_1920x1080_60HZ)||(modecnt==_MODE_1920x1080_60HZ_DMT))
{
if(stModeInfo.IVTotal>1123)
modecnt=_MODE_1920x1080_60HZ_DMT;
else
{
if(stModeInfo.IHSyncPulseCount < 8)
modecnt=_MODE_1920x1080_60HZ_RB;
else if(stModeInfo.IHSyncPulseCount < 14)
modecnt=_MODE_1920x1080_60HZ_DMT;
else
modecnt=_MODE_1920x1080_60HZ;
}
}
if(modecnt==_MODE_1920x1200_60HZ)
{
if(stModeInfo.IHSyncPulseCount > 33)
modecnt=_MODE_1600x1200_60HZ;
}
if((modecnt==_MODE_1366x768_60HZ)||(modecnt==_MODE_1360x768_60HZ))
{
if(stModeInfo.IVTotal>796)
{
if(stModeInfo.IHSyncPulseCount > 52)
modecnt=_MODE_1024x768_60HZ;
else
modecnt=_MODE_1366x768_60HZ;//stModeInfo.IVTotal=798
}
else
{//0804 sephinroth
if(stModeInfo.IHSyncPulseCount > 44)
modecnt=_MODE_1366x768_60HZ;
else
modecnt=_MODE_1360x768_60HZ;//stModeInfo.IVTotal=795
}
}
if(modecnt == _MODE_1680x1050_60HZ)
{
if((stModeInfo.IHSyncPulseCount < 20) && (stModeInfo.IVTotal > 1090 ))
{
if(stModeInfo.IHSyncPulseCount < 11)
modecnt=_MODE_1920x1080_60HZ_RB;
else
modecnt = _MODE_1680x1050_60Hz_TVBOX;
}
else
{
if(stModeInfo.IHSyncPulseCount < 20)
modecnt = _MODE_1680x1050_60HZ_RB;
else
modecnt = _MODE_1680x1050_60HZ;
}
}
if(modecnt == _MODE_1152x720_60HZ)
{
if(stModeInfo.IHSyncPulseCount < 35)
modecnt = _MODE_1280x720_60HZ;
}
if((modecnt == _MODE_1280x800_60HZ) || (modecnt == _MODE_1280x800_60HZ_RB))
{
if(stModeInfo.IHSyncPulseCount < 30)
modecnt = _MODE_1280x800_60HZ_RB;
else
modecnt = _MODE_1280x800_60HZ;
}
if(modecnt == _MODE_1024x768_75HZ)
{
if(stModeInfo.IVTotal > 802)
modecnt = _MODE_1280x768_75HZ;
}
if(modecnt == _MODE_640x480_75HZ)
{
if((stModeInfo.IHSyncPulseCount < 57) && (stModeInfo.IVTotal > 501))
modecnt = _MODE_848x480_75HZ;
}
if(modecnt == _MODE_1600x1200_75HZ)
{
if(stModeInfo.IHSyncPulseCount < 27)
modecnt = _MODE_1920x1200_75HZ;
}
if(modecnt == _MODE_1152x900_76HZ)
{
//*********************ryan 081209 change 1600*900 to 1440*900**********************
#if(1)
if(stModeInfo.IHSyncPulseCount > 26)
modecnt = _MODE_1440x900_75HZ;
#else
if(stModeInfo.IHSyncPulseCount > 26)
modecnt = _MODE_1600x900_75HZ;
#endif
//*********************ryan 081209 change 1600*900 to 1440*900**********************
}
if(modecnt == _MODE_1600x1200_60HZ_RB)
{
// modecnt = _MODE_1920x1200_60HZ_RB; //ryan 081208 choose 1600*1200RB
}
if((modecnt == _MODE_1856x1392_60HZ) || (modecnt == _MODE_2048x1536_60HZ_RB))
modecnt = _MODE_NOSUPPORT;
return modecnt;
}
}
SET_MODE_SEARCH_TYPE(_USER_MODE_TYPE);
modecnt = CModeSearchAcceptiveModeVGA();
if((modecnt == _MODE_NOSIGNAL) || (modecnt == _MODE_NOSUPPORT))
return modecnt;
if((modecnt == _MODE_1856x1392_60HZ) || (modecnt == _MODE_2048x1536_60HZ_RB))
modecnt = _MODE_NOSUPPORT;
return modecnt;
}
//--------------------------------------------------
// Description : Compare preset VGA mode
// Input Value : Mode number
// Output Value : Return _TRUE if the input mode number is correspondence
//--------------------------------------------------
bit CModeComparePresetModeVGA(BYTE ucModeCnt)
{
BYTE polarity, polaritytemp;
polarity = (stModeInfo.Polarity & ~_BIT0) | ((bit)CScalerGetBit(_STABLE_PERIOD_H_50, _BIT6) ? 0x00 : _BIT0);
if(abs(stModeInfo.IVFreq - tINPUTMODE_PRESET_TABLE[ucModeCnt].IVFreq) > tINPUTMODE_PRESET_TABLE[ucModeCnt].IVFreqTolerance)
{
return _FALSE;
}
if(abs(stModeInfo.IHFreq - tINPUTMODE_PRESET_TABLE[ucModeCnt].IHFreq) > tINPUTMODE_PRESET_TABLE[ucModeCnt].IHFreqTolerance)
{
return _FALSE;
}
//V406 modify Start 20080314
//V406 Patch Note (15) : To separate confused mode.
if(abs(stModeInfo.IVTotal - tINPUTMODE_PRESET_TABLE[ucModeCnt].IVTotal) > 2)// y080609 yc_chen
{
return _FALSE;
}
//V406 moidfy End 20080314
if((bit)(polarity & _BIT0))
{
if((bit)(polarity & _BIT1))
polaritytemp = _SYNC_HP_VP;
else
polaritytemp = _SYNC_HP_VN;
}
else
{
if((bit)(polarity & _BIT1))
polaritytemp = _SYNC_HN_VP;
else
polaritytemp = _SYNC_HN_VN;
}
if((polaritytemp & tINPUTMODE_PRESET_TABLE[ucModeCnt].PolarityFlag) == 0x00)
return _FALSE;
return _TRUE;
}
//--------------------------------------------------
// Description : Search an acceptive mode
// Input Value : None
// Output Value : Mode number
//--------------------------------------------------
BYTE CModeSearchAcceptiveModeVGA(void)
{
BYTE acceptivemode = _MODE_NOSUPPORT;
if(stModeInfo.IVTotal < 420)
{
}
else if( stModeInfo.IVTotal<435 )
{
if( stModeInfo.IVFreq<790 )
acceptivemode = _MODE_640x350_70HZ;
else
acceptivemode = _MODE_640x350_85HZ;
}
else if(stModeInfo.IVTotal < 488) // 720x400 Mode : Vertical Line < 488
{
if(stModeInfo.IVFreq < 790)
acceptivemode = _MODE_720x400_70HZ;
else
acceptivemode = _MODE_720x400_85HZ;
}
else if(stModeInfo.IVTotal < 585) // 640x480 Mode : 488 <= Vertical Line < 585
{
if(stModeInfo.IVFreq < 590)
{
acceptivemode = _MODE_640x500_58HZ;
}
else if(stModeInfo.IVFreq < 640)
{
if(stModeInfo.IVTotal < 510)
acceptivemode = _MODE_848x480_60HZ;
else
{
if(stModeInfo.IHSyncPulseCount > 70)
acceptivemode = _MODE_640x480_60HZ;
else
acceptivemode = _MODE_1920x1080i_60HZ;
}
}
else if(stModeInfo.IVFreq < 680)
acceptivemode = _MODE_640x480_66HZ;
else if(stModeInfo.IVFreq < 710)
acceptivemode = _MODE_848x480_70HZ;
else if(stModeInfo.IVFreq < 740)
{
if(stModeInfo.IVTotal < 510)
acceptivemode = _MODE_848x480_72HZ;
else
acceptivemode = _MODE_640x480_72HZ;
}
else if(stModeInfo.IVFreq < 790)
{
if((stModeInfo.IHSyncPulseCount < 57) && (stModeInfo.IVTotal > 501))
acceptivemode = _MODE_848x480_75HZ;
else
acceptivemode = _MODE_640x480_75HZ;
}
else
acceptivemode = _MODE_640x480_75HZ;//85HZ
}
else if(stModeInfo.IVTotal < 610) // 640x480 Mode : 488 <= Vertical Line < 610
{
if(stModeInfo.IVFreq < 640)
{
if(stModeInfo.IHSyncPulseCount > 70)
acceptivemode = _MODE_848x480_60HZ;
else
acceptivemode = _MODE_720x576p_60HZ;
}
else if(stModeInfo.IVFreq < 690)
acceptivemode = _MODE_640x480_66HZ;
else if(stModeInfo.IVFreq < 740)
acceptivemode = _MODE_640x480_72HZ;
else if(stModeInfo.IVFreq < 790)
acceptivemode = _MODE_640x480_75HZ;
else
acceptivemode = _MODE_640x480_85HZ;
}
else if(stModeInfo.IVTotal < 660) // 800x600 Mode : 610 <= Vertical Line < 660
{
if(stModeInfo.IVFreq < 580)
acceptivemode = _MODE_800x600_56HZ;
else if(stModeInfo.IVFreq < 660)
acceptivemode = _MODE_800x600_60HZ;
else if(stModeInfo.IVFreq < 740)
acceptivemode = _MODE_800x600_72HZ;
else if(stModeInfo.IVFreq < 790)
acceptivemode = _MODE_800x600_75HZ;
else
acceptivemode = _MODE_800x600_85HZ;
}
else if(stModeInfo.IVTotal < 732) // 832x624 Mode : 660 <= Vertical Line < 732
{
if(stModeInfo.IVFreq < 740)
acceptivemode = _MODE_800x600_72HZ;
else
acceptivemode = _MODE_832x624_75HZ;
}
else if(stModeInfo.IVTotal < 780) // 1280x720 Mode : 732 <= Vertical Line < 780
{
if(stModeInfo.IVFreq < 740)
acceptivemode = _MODE_1280x720_60HZ;
else
acceptivemode = _MODE_1280x720_75HZ;
}
else if(stModeInfo.IVTotal < 810) // 1024x768/1280x768 Mode : 780 <= Vertical Line < 820
{
if(stModeInfo.IVFreq < 650)
{
if(stModeInfo.IVTotal>796)
{
if(stModeInfo.IHSyncPulseCount > 52)
acceptivemode=_MODE_1024x768_60HZ;
else
acceptivemode=_MODE_1366x768_60HZ;
}
else
{
if(stModeInfo.IVTotal>786)
{
if(stModeInfo.IHSyncPulseCount > 44)
acceptivemode=_MODE_1366x768_60HZ;
else
acceptivemode=_MODE_1360x768_60HZ;
}
else
{
if(stModeInfo.IHSyncPulseCount < 30)
acceptivemode = _MODE_1280x768_60HZ_RB;
else
acceptivemode = _MODE_1024x768_60HZ;
}
}
}
else if(stModeInfo.IVFreq < 715)
acceptivemode = _MODE_1024x768_70HZ;
else if(stModeInfo.IVFreq < 735)
acceptivemode = _MODE_1024x768_72HZ;
else if(stModeInfo.IVFreq < 790)
{
if(stModeInfo.IVTotal < 803)
acceptivemode = _MODE_1024x768_75HZ;
else
acceptivemode = _MODE_1280x768_75HZ;
}
else
acceptivemode = _MODE_1024x768_85HZ;
}
else if(stModeInfo.IVTotal < 880) // 1024x800 Mode : 820 <= Vertical Line < 880
{
if(stModeInfo.IVFreq < 630)
{
if(stModeInfo.IHSyncPulseCount < 30)
acceptivemode = _MODE_1280x800_60HZ_RB;
else
acceptivemode = _MODE_1280x800_60HZ;
}
else if(stModeInfo.IVFreq < 710)
acceptivemode = _MODE_1280x800_70HZ;
else if(stModeInfo.IVFreq < 730)
{
if(stModeInfo.IVTotal < 820)
acceptivemode = _MODE_1024x768_72HZ;
else
acceptivemode = _MODE_1280x800_72HZ;
}
else if(stModeInfo.IVFreq < 760)
acceptivemode = _MODE_1280x800_75HZ;
else
acceptivemode = _MODE_1280x800_85HZ;
}
else if(stModeInfo.IVTotal < 920) // 1152x864/870 Mode : 880 <= Vertical Line < 920
{
if(stModeInfo.IVFreq < 650)
acceptivemode = _MODE_1152x864_60HZ;
else if(stModeInfo.IVFreq < 740)
acceptivemode = _MODE_1152x864_70HZ;
else if(stModeInfo.IVFreq < 790)
{
if((stModeInfo.IHFreq > 679) && (stModeInfo.IHFreq < 697))
acceptivemode = _MODE_1152x870_75HZ;
else
acceptivemode = _MODE_1152x864_75HZ;
}
else
acceptivemode = _MODE_1152x864_85HZ;
}
else if(stModeInfo.IVTotal < 975) // 1152x900/1440x900 Mode : 920 <= Vertical Line < 975
{
if(stModeInfo.IVFreq < 660)
{
//*********************ryan 081209 change 1600*900 to 1440*900**********************
#if(1)
if(stModeInfo.IHSyncPulseCount < 25)
acceptivemode = _MODE_1440x900_60HZ_RB;
else
acceptivemode = _MODE_1440x900_60HZ;
#else
if(stModeInfo.IHSyncPulseCount < 25)
acceptivemode = _MODE_1600x900_60HZ_RB;
else
acceptivemode = _MODE_1600x900_60HZ;
#endif
//*********************ryan 081209 change 1600*900 to 1440*900**********************
}
else if(stModeInfo.IVFreq < 700)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -