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

📄 mode.c

📁 realtek LCD monitor, TV开发源代码
💻 C
📖 第 1 页 / 共 5 页
字号:
#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 + -