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

📄 setup.c

📁 车载电子影音系统dvd播放系统原程序代码
💻 C
📖 第 1 页 / 共 5 页
字号:

        if ((__SetupInfo.bAudioLPCM < SETUP_AUDIO_LPCM_BEGIN) ||
            (__SetupInfo.bAudioLPCM > SETUP_AUDIO_LPCM_END))
        {
            __SetupInfo.bAudioLPCM = SETUP_DEFAULT_AUDIO_LPCM;

#ifdef _DEBUG_INFO
            _bEEPROMError = SETUP_ADDR_AUDIO_LPCM;
#endif
        }
        
        // Brian1.10, check region code range
        if ((__SetupInfo.bRegionControl != REGION_ALL) && (__SetupInfo.bRegionControl != REGION1) &&
            (__SetupInfo.bRegionControl != REGION2) && (__SetupInfo.bRegionControl != REGION3) &&
            (__SetupInfo.bRegionControl != REGION4) && (__SetupInfo.bRegionControl != REGION5) &&
            (__SetupInfo.bRegionControl != REGION6) )
        {
            __SetupInfo.bRegionControl = SETUP_DEFAULT_REGION;

#ifdef _DEBUG_INFO
            _bEEPROMError = SETUP_ADDR_REGION_CTL;
#endif
        }

        if ((__SetupInfo.wParentalCtl < SETUP_CUSTOM_PC_LEVEL_BEGIN) ||
            (__SetupInfo.wParentalCtl > SETUP_CUSTOM_PC_LEVEL_END))
        {
            __SetupInfo.wParentalCtl = SETUP_DEFAULT_PARENTAL;

#ifdef _DEBUG_INFO
            _bEEPROMError = SETUP_ADDR_PARENTAL_CTL_LEVEL;
#endif
        }

        if ((__SetupInfo.bOSDLanguage < SETUP_LANGUAGE_OSD_BEGIN) ||
            (__SetupInfo.bOSDLanguage > SETUP_LANGUAGE_OSD_END))
        {
            __SetupInfo.bOSDLanguage = SETUP_DEFAULT_OSD_LANGUAGE;

#ifdef _DEBUG_INFO
            _bEEPROMError = SETUP_ADDR_OSD_LANGUAGE;
#endif
        }

        break;
    case SETUP_OTHERS_INITIAL:
// ** TCH2.74;         bSize = SETUP_ADDR_ANGLE_MARK_DISPLAY + EPROM_ANGLE_MARK_DISPLAY_BYTE - SETUP_ADDR_AUDIO_CENTER; //from wAudioCenter to wSPSTLanguageCode in SETUPINFO
        // __SetupInfor.bVCDControl don't do any protection
        bSize = SETUP_ADDR_LAST - SETUP_ADDR_AUDIO_CENTER; //from wAudioCenter to wSPSTLanguageCode in SETUPINFO

        bInstance = SETUP_ADDR_AUDIO_CENTER - SETUP_ADDR_BASE;

        for (i=0; i < bSize/8; i++)
        {
            HAL_EEPROM_PRead(SETUP_ADDR_AUDIO_CENTER+(i*8), 8, pbSetupPtr+ bInstance +(i*8));
        }

        if (bSize%8)
        {
            HAL_EEPROM_PRead(SETUP_ADDR_AUDIO_CENTER+8*(bSize/8), bSize%8, pbSetupPtr+bInstance+8*(bSize/8));
        }

        if ((__SetupInfo.bAudioCenter < SETUP_AUDIO_CENTER_BEGIN) ||
            (__SetupInfo.bAudioCenter > SETUP_AUDIO_CENTER_END))
        {
            __SetupInfo.bAudioCenter = SETUP_DEFAULT_AUDIO_CENTER;

#ifdef _DEBUG_INFO
            _bEEPROMError = SETUP_ADDR_AUDIO_CENTER;
#endif
        }

        if ((__SetupInfo.bAudioRear < SETUP_AUDIO_REAR_BEGIN) ||
            (__SetupInfo.bAudioRear > SETUP_AUDIO_REAR_END))
        {
            __SetupInfo.bAudioRear = SETUP_DEFAULT_AUDIO_REAR;

#ifdef _DEBUG_INFO
            _bEEPROMError = SETUP_ADDR_AUDIO_REAR;
#endif
        }

        if ((__SetupInfo.bAudioSubwoofer < SETUP_AUDIO_SUBWOOFER_BEGIN) ||
            (__SetupInfo.bAudioSubwoofer > SETUP_AUDIO_SUBWOOFER_END))
        {
            __SetupInfo.bAudioSubwoofer = SETUP_DEFAULT_AUDIO_SUBWOOFER;

#ifdef _DEBUG_INFO
            _bEEPROMError = SETUP_ADDR_AUDIO_SUBWOOFER;
#endif
        }

        if ((__SetupInfo.bAudioDNR < SETUP_AUDIO_DNR_BEGIN) ||
            (__SetupInfo.bAudioDNR > SETUP_AUDIO_DNR_END))
        {
            __SetupInfo.bAudioDNR = SETUP_DEFAULT_AUDIO_DNR;

#ifdef _DEBUG_INFO
            _bEEPROMError = SETUP_ADDR_AUDIO_DNR;
#endif
        }

        if ((__SetupInfo.bAudioKaraoke < SETUP_AUDIO_KARAOKE_BEGIN) ||
            (__SetupInfo.bAudioKaraoke > SETUP_AUDIO_KARAOKE_END))
        {
            __SetupInfo.bAudioKaraoke = SETUP_DEFAULT_AUDIO_KARAOKE;

#ifdef _DEBUG_INFO
            _bEEPROMError = SETUP_ADDR_AUDIO_KARAOKE;
#endif
        }

        if ((__SetupInfo.bMenuLanguage < SETUP_LANGUAGE_MENU_BEGIN) ||
            (__SetupInfo.bMenuLanguage > SETUP_LANGUAGE_MENU_END))
        {
            __SetupInfo.bMenuLanguage = SETUP_DEFAULT_MENU_LANGUAGE;

#ifdef _DEBUG_INFO
            _bEEPROMError = SETUP_ADDR_MENU_LANGUAGE;
#endif
        }

        if ((__SetupInfo.bAudioLanguage < SETUP_LANGUAGE_AUDIO_BEGIN) ||
            (__SetupInfo.bAudioLanguage > SETUP_LANGUAGE_AUDIO_END))
        {
            __SetupInfo.bAudioLanguage = SETUP_DEFAULT_AUDIO_LANGUAGE;

#ifdef _DEBUG_INFO
            _bEEPROMError = SETUP_ADDR_AUDIO_LANGUAGE;
#endif
        }

        if ((__SetupInfo.bSPSTLanguage < SETUP_LANGUAGE_SP_BEGIN) ||
            (__SetupInfo.bSPSTLanguage > SETUP_LANGUAGE_SP_END))
        {
            __SetupInfo.bSPSTLanguage = SETUP_DEFAULT_SPST_LANGUAGE;

#ifdef _DEBUG_INFO
            _bEEPROMError = SETUP_ADDR_SPST_LANGUAGE;
#endif
        }

        if ((__SetupInfo.bAngleMarkDisplay < SETUP_CUSTOM_ANGLE_MARK_BEGIN) ||
            (__SetupInfo.bAngleMarkDisplay > SETUP_CUSTOM_ANGLE_MARK_END))
        {
            __SetupInfo.bAngleMarkDisplay = SETUP_DEFAULT_ANGLE_MARK;
            // brian.172, move it out
            //_SetAngleMarkTime(); //brian.170a

#ifdef _DEBUG_INFO
            _bEEPROMError = SETUP_ADDR_ANGLE_MARK_DISPLAY;
#endif
        }

        // TCC276, add protection for __SetupInfo.bVCDControl
        if (__SetupInfo.bVCDControl != 0 && __SetupInfo.bVCDControl != 0x5A)
        {
                        if (SETUP_DEFAULT_VCD_CTL == FALSE)
                                __SetupInfo.bVCDControl = 0 ;
                        else
                                __SetupInfo.bVCDControl = 0x5A ;
        }

        // Brian1.08
        if ((__SetupInfo.bAudioPrologic < SETUP_AUDIO_PROLOGIC_BEGIN) ||
            (__SetupInfo.bAudioPrologic > SETUP_AUDIO_PROLOGIC_END))
        {
            __SetupInfo.bAudioPrologic = SETUP_DEFAULT_AUDIO_PROLOGIC;

#ifdef _DEBUG_INFO
            _bEEPROMError = SETUP_ADDR_AUDIO_PROLOGIC;
#endif
        }


#ifdef _DEBUG_INFO
        if (_bEEPROMError != 0)
            OSD_OUTPUT_MACRO(MSG_VERSION, _bEEPROMError, 0xff);
#endif


        break;
    }

#endif

    _SetAngleMarkTime(); //brian.172, should always set angle mark time
}

//  ***************************************************************************
//  Function    : SETUP_Initial
//  Description : This API will export to other modules use while SETUP data should be
//              : initialized and prepare for further usage.
//  Arguments   : SETUP_POWERON_INITIAL ==>must use this type for power on initialization.
//              : After LOGO is displayed, use SETUP_OTHERS_INITIAL to initialize __SetupInfo
//  Return      : TRUE
//  Side Effect :
//  ***************************************************************************
BIT SETUP_Initial(BYTE bType)
{

                // Brian2.78b-3, init internal variables
    //__btInputPassword=FALSE;
    //__bPasswordIndex = 0;
    //__btInputMenuLanguageCode=FALSE;
    //__bMenuLanguageCodeIndex = 0;
    //__btInputAudioLanguageCode=FALSE;
    //__bAudioLanguageCodeIndex = 0;
    //__btInputSPSTLanguageCode=FALSE;
    //__bSPSTLanguageCodeIndex = 0;
    __bInputPassword=FALSE;
    __bInputPasswordIndex=0;

#ifdef SUPPORT_CDIF
    gbtServoInfo = FALSE;       
    gbtServoRegRW = FALSE;      
#endif //SUPPORT_CDIF         

//#if !defined(RELEASE_SETTING) || !defined(SYSTEM_8051)
#ifndef WRITE_EEPROM_ENABLE

    //_WriteSetupData(SETUP_DATA_DEFAULT, 1);
    _WriteSetupData(SETUP_DATA_DEFAULT, READ_TOTAL_DEFAULT); // Brian1.24

    // Module should add their Init function here to set EPROM to default value
#ifdef  SUPPORT_AV_SYSTEM
    //Kevin2.81-2, write default volume value into EPROM
    CHIPS_EPPROMReadWriteVolume(WRITE_ALL_INITIAL);

    //Kevin2.81-2, write default tuner vaule into EPROM
    AVSYS_TunerDataAccess(DATA_DEFAULT|DATA_WRITE);
#endif  // #ifdef SUPPORT_AV_SYSTEM


#else

    if (bType == SETUP_POWERON_INITIAL)
    {
#ifdef WRITE_EEPROM_ENABLE //Kevin0.91, add define
        HAL_EEPROM_PRead(SETUP_ADDR_IDENTIFY, 7, __SetupInfo.cSetupIdentify);
#endif

        __SetupInfo.cSetupIdentify[7]=0;

        pbSetupPtr=&__SetupInfo;

#ifdef WRITE_EEPROM_ENABLE //Kevin0.91, add define
        HAL_EEPROM_PRead(SETUP_ADDR_VERSION, 1, pbSetupPtr + EPROM_IDENTIFY_BYTE);
#endif

    }

    // Brian2.81
    // Setup module will call other modules' Init function only when EPROM data is incorrect.
    // Setup will not call other modules' Init fuction when EPROM data is correct
    //if (! CT_strcmp(__SetupInfo.cSetupIdentify, "WINBOND") && __SetupInfo.bSetupVersion == SETUP_VERSION) 
    // Brian2.31, only CT_strcpy and CT_strncopy is put in common, so other CT_xxx needs string copy first
    if (! CT_strcmp(__SetupInfo.cSetupIdentify, CT_strcpy(__bMsgString,"WINBOND")) && __SetupInfo.bSetupVersion == SETUP_VERSION) 

    {
        // setup data is correct
        _ReadSetupData(bType);
        // Setup should not read data from EPROM for other modules. The power-on flow should do this. 

        //Kevin1.25, move below. Otherwise, 4 wait no ACK for 8M, 'cause IRAM hasn't been loaded 
        // Brian1.25, set brightness and contrast when initialization
        //_SetBrightnessToIC();
        //_SetContrastToIC();
    }
    else
    {
        // setup data is incorrect
        //_WriteSetupData(SETUP_DATA_DEFAULT, 1); // write default Setup data to EPROM
        _WriteSetupData(SETUP_DATA_DEFAULT, READ_TOTAL_DEFAULT); // Brian1.24

        // Module should add their Init function here to set EPROM to default value
#ifdef  SUPPORT_AV_SYSTEM
        //Kevin2.81-2, write default volume value into EPROM
        CHIPS_EPPROMReadWriteVolume(WRITE_ALL_INITIAL);

        //Kevin2.81-2, write default tuner vaule into EPROM
        AVSYS_TunerDataAccess(DATA_DEFAULT|DATA_WRITE);
#endif  // #ifdef SUPPORT_AV_SYSTEM
    }


#endif

    // update Setup info to SPRM
    // reference VI4-, 4.6.1.2
    // *SPRM[0], Menu Description Language Code
    // SPRM[2], Sup-picture stream on/off flag
    // SPRM[3], Angle number??
    // SPRM[11], Player Audio Mixing Mode for Karaoke
    // SPRM[12], Contry Code for Parental Management
    // SPRM[13], Parental Level
    // SPRM[14], Player Configuration for Video(Aspect ratio)
    // SPRM[15], P_CFG for audio
    // *SPRM[16], Initial Language Code for AST
    // SPRM[17], Initial Language Code extension for AST
    // *SPRM[18], Initial Language Code for SPST
    // SPRM[19], Initial Language extension Code for SPST
    // SPRM[20], Player Region Code
    // bit 15-8, upper byte
    // bit 7-0, lower byte

    if (bType == SETUP_POWERON_INITIAL)
    {
        _SetVideoOutputToIC();
        // LLY.278, it's unnecessary because it will be done while 1st power-on by HAL_PowerDown()
        //_SetVideoAspectToIC(); // TCC276
/*
        if (__SetupInfo.bRegionControl == REGION_ALL)
            //__wSPRMs[20]= REGION3;
            //__wSPRMs[20]= NV_Setting(SET_REGION_CODE, 0);
            // brian.172, just call NV_Setting, it will modify __wSPRMs[20]
            NV_Setting(SET_REGION_CODE, 0);
        else
            __wSPRMs[20]=__SetupInfo.bRegionControl;
*/
        //Brian1.05, just call NV_Setting, it will set __wSPRMs[20] always
        NV_Setting(SET_REGION_CODE, 0); 
    }
    else
    {
        //Kevin1.25, move here
        // Brian1.25, set brightness and contrast when initialization
        _SetBrightnessToIC();
        _SetContrastToIC();

        _TransferLanguageToSPRM();
        _SetDNRToIC();

#ifdef  SUPPORT_KARAOKE_SET
        if ((__SetupInfo.bAudioKaraoke - SETUP_AUDIO_KARAOKE_BASE) == 0) //on
            CHIPS_MICControl(CHIPS_ON);
        else if ((__SetupInfo.bAudioKaraoke - SETUP_AUDIO_KARAOKE_BASE) == 1) //off
            CHIPS_MICControl(CHIPS_OFF);
#endif
        //initial the System parameter only in Setup module not in NV_InitialParameters
        // reference Anex J
        __wSPRMs [10]=0;     // TT_PGCN fot NV_TMR, 1 to 7fffh(bits 0-14)
        __wSPRMs [11]=0;     // Player Audio ixing Mode(P_AMXMD) for karaoke.

        // must use upper case
        CT_strncpy((char *)&__wSPRMs[12], "US", 2);

        // Paraental level(PTL_LVL), 1-8(bits 0-3)
        __wSPRMs[13]= __SetupInfo.wParentalCtl - SETUP_CUSTOM_PC_LEVEL_BASE + 1;

        // don't do parental control, set as highest level
        if (!__SetupInfo.bParentalControl )
            __wSPRMs[13]=8;

        // RD_ONLY
        // default ???
        __wSPRMs [14]=0;     // Player configuration(P_CFG) for Video
        __wSPRMs [15]=0;     // P_CFG for Audio
        __wSPRMs [17]=0;     // Initial Language Code extension(INI_LCD_EXT)
        __wSPRMs [19]=0;     // Initial Language Code extension for SPST
    }

#ifndef REMOVE_SETUP_SPEAKER_TEST
    // brian.277a Test Tone
    __SetupInfo.bAudioTestTone = SETUP_AUDIO_SPEAKER_TEST_AUTO;
#endif

    return TRUE;
}

//  ***************************************************************************
//  Function    :   _ExitSetup
//  Description :   Exit SETUP and recover some flags.
//  Arguments   :   none.
//  Return      :   None.
//  Side Effect :
//  ***************************************************************************
void    _ExitSetup(void)
{
//#ifndef NO_OSD
#ifndef NO_SETUP

#ifndef REMOVE_SETUP_SPEAKER_TEST
    if (_bDSPTestTone) // Brian1.23 //Brian1.11d-2, fix "bo" noise when TestTone --> Exit Setup
    {
        CHIPS_SoftMute();
        UTL_DelayTime(COUNT_50_MSEC, FALSE);
        W99AV_WriteRegDW (AUDIOCFG1R, 0x6, 0);
    }
#endif

    // Brian1.07a, clear it, for this is also used by PScan Prompt
    __bInputPassword = FALSE;

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -