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

📄 setup.c

📁 车载电子影音系统dvd播放系统原程序代码
💻 C
📖 第 1 页 / 共 5 页
字号:
#if defined (SUPPORT_PSCAN_PROMPT_SETUP) || defined (SUPPORT_PSCAN_PROMPT_OSD)
            // Brian1.07a, cancel PScan prompt
            __bOSDPromptMode = FALSE;
#endif


    // Brian0.90 always do these when exit Setup
    GDI_ClearRegion(__bCurrentRegionId);
#ifdef GDI_4_BIT_OSD
    // reload palette for 4-bit region as early as possible
    // this colud save some trouble: the pink-screen-flash problem
    GDI_SetGDIPalEntry();
#endif

    // Brian0.87, disable one field display when exit Setup
    W99AV_WriteDRAMData(W99AV_DRAM_ONE_FIELD, 0x0);



    // brian.277a Test Tone
    // PCM_SCALE may be set by Test Tone, so we turn it off as it was when we enter Setup
    // if we don't turn PCM_SCALE off, there may be noise (on AMP) when it change Audio Output
    CHIPS_OpenAudio(FALSE);

    //clear the password status if user press KEY_SETUP to exist password page
    //_RecoverVariables();

    //turn on highlight
    HAL_ControlHighlight(HAL_HLI_ACTION_SELECT, __bNowBTNNumber);
    HAL_Display(HAL_DISPLAY_SPST, TRUE);

    //clear VCD3.0 highlight before leaving SETUP
    HAL_VCD30_Area(FALSE);

	// Brian2.39a-2
	OSD_ShowHighlight(TRUE);
/*
#ifdef SETUP_BLINKING_SELECTION
    {
        extern DWORD _dwFont[];
    // store the palette data back
    _dwFont[0] = ((COL_CUR_SEL)| ((DWORD) 0x5A << 24));
    OSD_ChangePALEntry(44, _dwFont[0]);
    OSD_ChangePALEntry(180, _dwFont[0]);
    OSD_ChangePALEntry(212, _dwFont[0]);
    }
#endif
*/

    //OSD_OUTPUT_MACRO(MSG_SETUP_MAIN_BASE, wParam, 0); // Exit SETUP

    __bKey=KEY_NO_KEY;
    //__bSetupMode = FALSE;

    // to prevent from doing a long time when the the level is changed.
    if (_bParentalControlChange)
        NV_Setting(SET_PTL_ID_FLD, 0);

    //clear OSD highlight
    //_ClearAllHighlight();

    //Do the recover action before playing
#ifdef SETUP_REDUCE_LUMINANCE
    //recover luminance
    W99AV_WriteRegW(LAR, W99AV_LAR_VALUE); // DVD_101-2TCH, must use 0x82
#endif

    //_SetTVSystemToIC(); // Brian.172r call SETUP_AdjustSetting + OSD_OUTPUT_MACRO ( MSG_TVMODE, __SetupInfo.bTVSystem, 0x0 ) instead
    //_SetVideoOutputToIC(); // Brian.172r call SETUP_AdjustSetting instead


    SETUP_AdjustSetting(SETUP_SCREEN_VIDEO_OUTPUT);
    // Brian0.87, seems unnecessary, and I didn't implement it either
    //OSD_OUTPUT_MACRO ( MSG_TVMODE, __SetupInfo.bTVSystem, 0x0 );

        // TCC276
    SETUP_AdjustSetting(SETUP_SCREEN_TV_TYPE);
   //  	printf("exit setup!\n");//xuli1108
	 _SetBrightnessToIC();	//xuli1108
	  _SetContrastToIC();	//xuli1108   
    // Brian2.78b-2, need do this check anyway
    if (_bAudioTypeChange)
    {
        
        SETUP_AdjustSetting(SETUP_AUDIO_OUTPUT);
#ifdef  SUPPORT_AV_SYSTEM
    // Added by KCHong, open DDX when playing test tone
    CHIPS_Channel_ReMapping();
    // Set volume for normal case
    // wyc2.80, rename function name to AMP_SetChannelVolume
    for(_bSetupTemp=0;_bSetupTemp<=8;_bSetupTemp++)
        AMP_SetChannelVolume(_bSetupTemp,1);
    // wyc2.80, rename function name to AMP_mute
    AMP_mute(DAC_MUTE_ON);
#endif

    }

    // Brian0.83
    // inform OSD that we are leaving Setup
    // OSD module should update _bCurrentUI and _bPreviousUI, recover previous UI
//    OSD_Output(MSG_OSDAPP, OSD_APPMODE_EXIT, 0x0); 
    OSD_OUTPUT_MACRO(MSG_OSDAPP, OSD_APPMODE_EXIT, 0x0); //Brian1.02

#ifdef PRESTOP_BEFORE_SETUP_AND_PROGRAM //XuLi.230
	if((__bPreCountStop==0) ||
		(__bProgramStop==TRUE)) //Need resume
	{
		if(!(__wDiscType & CDROM_M1))
		{
			UTL_PreStartServo( __dwTimeNow);
			CC_DoKeyAction(KEY_RESUME);
			__bProgramStop=0;
		}
        else if (__btPause)
            CC_DoKeyAction(KEY_PAUSE);

        if (__bAttrPlay == ATTR_JPG) //CoCo2.30, change to next JPEG immediately
        {
            __bFMStage=STAGE_NEXT_ITEM;
        }
	}
#else //#ifdef PRESTOP_BEFORE_SETUP_AND_PROGRAM
    if (__btPause)
    {

        //if (_bAudioTypeChange)
        //    HAL_SetAudioType(__bAudioType);

        //CoCo.172q, fix the problem about MP3/LPCM/CD-DA audio is not continuous.
        //if (__bAudioType == HAL_AUDIO_AC3) // Brian.172r call SETUP_AdjustSetting instead
        //    HAL_SetAudioType(__bAudioType);

        // Brian2.78b-2, move it out
        //if (_bAudioTypeChange)
        //    SETUP_AdjustSetting(SETUP_AUDIO_OUTPUT);
        CC_DoKeyAction(KEY_PAUSE);
    }
#endif	
    // Brian2.78b-2, will always do this check
    //else // brian.277a Test Tone
    //{   // make sure all the setting is correct, for test tone may have change the dwACR2, ...
    //    if (_bAudioTypeChange)
    //        HAL_SetAudioType(__bAudioType);
    //}


    __bSetupMode = FALSE;

    _IdentifyRegionCode();  // brian.161 check region code (show or clear the error message)
   
    // thumbnail has remove this variable
/*
    //CoCo.jpeg
    if (__bThumbnailMode)
        __bThumbnailRepaint = TRUE;
*/
#ifndef NO_DIGEST //LJY1.20, support 4M flash, remove digest
    //LJY0.87, enable audio for digest mode
    if(__btDIGEST)
        CHIPS_OpenAudio( TRUE );
#endif

    // Brian0.90
    //W99AV_WriteDM (W99AV_DM_UDE_CDDA, 0) ;

//#endif
#endif
}

//  ***************************************************************************
//  Function    :   _GetPasswordNumber
//  Description :   This function will transfer the char password to "number" password.
//  Arguments   :   None.
//  Return      :   The password number.
//  Side Effect :
//  ***************************************************************************
WORD    _GetPasswordNumber(void)
{
    WORD    wPassword = 0;
#ifndef NO_SETUP
    wPassword =  (WORD)__bPassword[0]*(WORD)1000;
    wPassword += (WORD)__bPassword[1]*(WORD)100;
    wPassword += (WORD)__bPassword[2]*(WORD)10;
    wPassword += (WORD)__bPassword[3];

#endif
    return wPassword;
}

//  ***************************************************************************
//  Function    :   _SetMenuEnable
//  Description :   This function will set __bMenuItemEnable array according to
//                  bMode.
//  Arguments   :   VCD mode: bMode == 1, Run-time mode: bMode == 2
//  Return      :   none
//  Side Effect :
//  ***************************************************************************
void    _SetMenuEnable(BYTE bMode)
{
#ifndef NO_SETUP

	switch (bMode)
    {
    case 0:
	case 1:
	case 2:
		// enable all items
		// Note: take care of the size of _bEnableXXX arry, may not be just 1 
		_bEnableLanguage[0] = 0xFF;
		_bEnableScreen[0] = 0xFF;
		_bEnableAudio[0] = 0xFF;
		_bEnableCustom[0] = 0xFF;
		_bEnableMain[0] = 0xFF;
        break;
	}

	switch (bMode)
    {
	case 1:	//VCD mode
	case 2:	//Run-time mode
		OSDMENU_SET_ITEM_ENABLE(SETUP_MENU_LANGUAGE, SETUP_LANGUAGE_MENU, FALSE);
		OSDMENU_SET_ITEM_ENABLE(SETUP_MENU_LANGUAGE, SETUP_LANGUAGE_AUDIO, FALSE);
		OSDMENU_SET_ITEM_ENABLE(SETUP_MENU_LANGUAGE, SETUP_LANGUAGE_SUBTITLE, FALSE);
#ifndef REMOVE_SETUP_SPEAKER_TEST
		OSDMENU_SET_ITEM_ENABLE(SETUP_MENU_AUDIO, SETUP_AUDIO_SPEAKER_TEST, FALSE);
#endif
        
        // Brian2.79, use __bCountStop to determine the status
        // Allow change TV Type when pre-stop, i.e., __bCountStop == 1
        if (__bCountStop != 1)
		{
			//disable "TV TYPE"
		   OSDMENU_SET_ITEM_ENABLE(SETUP_MENU_SCREEN, SETUP_SCREEN_TV_TYPE, FALSE);
		}
        break;
	}
	
    switch (bMode)
    {
	//case 0:
	//	break;
#ifndef ENABLE_CUSTOM_SETUP
    case 1: //VCD mode
#endif
    case 2: //Run-time mode

        // Brian2.79, use __bCountStop to determine the status
        // Allow change CUSTOM SETUP when pre-stop, i.e., __bCountStop == 1
        if (__bCountStop != 1)
		{
           //disable "CUSTOM SETUP"
			OSDMENU_SET_ITEM_ENABLE(SETUP_MENU_MAIN, SETUP_MAIN_CUSTOM, FALSE);
		}
        else
        {   // is in pre-stop and custom setup is enabled, so we also enable Change Password and Angle Mark
			//disable Parental Control
			OSDMENU_SET_ITEM_ENABLE(SETUP_MENU_CUSTOM, SETUP_CUSTOM_PARENTAL, FALSE);
            //disable Read Default Value
			OSDMENU_SET_ITEM_ENABLE(SETUP_MENU_CUSTOM, SETUP_CUSTOM_DEFAULT_VALUE, FALSE);
        }

        //disabe "AUDIO LPCM"
		if (bMode == 2) // VCD mode doesn't disable LPCM
			OSDMENU_SET_ITEM_ENABLE(SETUP_MENU_AUDIO, SETUP_AUDIO_LPCM, FALSE);

        break;
    case 3: //not 5.1 channel
        //disabe "AUDIO CENTER"
		OSDMENU_SET_ITEM_ENABLE(SETUP_MENU_AUDIO, SETUP_AUDIO_CENTER, FALSE);
        //disabe "AUDIO REAR"
		OSDMENU_SET_ITEM_ENABLE(SETUP_MENU_AUDIO, SETUP_AUDIO_REAR, FALSE);
        //disabe "AUDIO SUBWOOFER"
		OSDMENU_SET_ITEM_ENABLE(SETUP_MENU_AUDIO, SETUP_AUDIO_SUBWOOFER, FALSE);

        // Brian1.23, only do that when Prologic, otherwise the item has the same ID as SETUP_MENU_AUDIO_WITH_PROLOGIC will be diabled
        if (__bSupportFeature & SUPPORT_FEATURE_PROLOGIC)
        {
            // Brian1.08, disable the Pro Logic item directly
            OSDMENU_SET_ITEM_ENABLE(SETUP_MENU_AUDIO_WITH_PROLOGIC, SETUP_AUDIO_PROLOGIC, FALSE);
        }

        break;
    case 4: //5.1 channel
        //Enable "AUDIO CENTER"
		OSDMENU_SET_ITEM_ENABLE(SETUP_MENU_AUDIO, SETUP_AUDIO_CENTER, TRUE);
        //Enable "AUDIO REAR"
		OSDMENU_SET_ITEM_ENABLE(SETUP_MENU_AUDIO, SETUP_AUDIO_REAR, TRUE);
        //Enable "AUDIO SUBWOOFER"
		OSDMENU_SET_ITEM_ENABLE(SETUP_MENU_AUDIO, SETUP_AUDIO_SUBWOOFER, TRUE);

        // Brian1.23, only do that when Prologic, otherwise the item has the same ID as SETUP_MENU_AUDIO_WITH_PROLOGIC will be enabled
        if (__bSupportFeature & SUPPORT_FEATURE_PROLOGIC)
        {
            // Brian1.08, enable the Pro Logic item
            OSDMENU_SET_ITEM_ENABLE(SETUP_MENU_AUDIO_WITH_PROLOGIC, SETUP_AUDIO_PROLOGIC, TRUE);
        }
        break;
    default:
        break;
    }
	
#endif // #ifndef NO_SETUP
}


//  ***************************************************************************
//  Function    :   _SetupBrightnessToIC
//  Description :   This function will set brightness value to IC.
//  Arguments   :   None.
//  Return      :   None.
//  Side Effect :
//  ***************************************************************************
void    _SetBrightnessToIC(void)
{
#ifndef NO_SETUP
/*
    switch (__SetupInfo.bBrightness)
    {
    case SETUP_SCREEN_BRIGHTNESS_NORMAL:
        HAL_AdjustBrightView(HAL_BRIGHTVIEW_NORMAL);
        break;
    case SETUP_SCREEN_BRIGHTNESS_BRIGHT:
        HAL_AdjustBrightView(HAL_BRIGHTVIEW_BRIGHT);
        break;
    case SETUP_SCREEN_BRIGHTNESS_SOFT:
        HAL_AdjustBrightView(HAL_BRIGHTVIEW_SOFT);
        break;
    default:
        break;
    }
*/
    // Brian1.25
    HAL_AdjustBrightView(__SetupInfo.bBrightness-SETUP_SCREEN_BRIGHTNESS_BASE);

#endif // #ifndef NO_SETUP
}


//  ***************************************************************************
//  Function    :   _SetupContrastToIC
//  Description :   This function will set contrast value to IC.
//  Arguments   :   None.
//  Return      :   None.
//  Side Effect :
//  ***************************************************************************
void    _SetContrastToIC(void)
{
#ifndef NO_SETUP
/*
    switch (__SetupInfo.bContrast)
    {
    case SETUP_SCREEN_CONTRAST_MINUS4:
        HAL_AdjustContrast(HAL_CONTRAST_LEVEL0);
        break;
    case SETUP_SCREEN_CONTRAST_MINUS3:
        HAL_AdjustContrast(HAL_CONTRAST_LEVEL1);
        break;
    case SETUP_SCREEN_CONTRAST_MINUS2:
        HAL_AdjustContrast(HAL_CONTRAST_LEVEL2);
        break;
    case SETUP_SCREEN_CONTRAST_MINUS1:
        HAL_AdjustContrast(HAL_CONTRAST_LEVEL3);
        break;
    case SETUP_SCREEN_CONTRAST_0:
        HAL_AdjustContrast(HAL_CONTRAST_LEVEL4);
        break;
    case SETUP_SCREEN_CONTRAST_PLUS1:
        HAL_AdjustContrast(HAL_CONTRAST_LEVEL5);
        break;
    case SETUP_SCREEN_CONTRAST_PLUS2:
        HAL_AdjustContrast(HAL_CONTRAST_LEVEL6);
        break;
    case SETUP_SCREEN_CONTRAST_PLUS3:
        HAL_AdjustContrast(HAL_CONTRAST_LEVEL7);
        break;
    case SETUP_SCREEN_CONTRAST_PLUS4:
        HAL_AdjustContrast(HAL_CONTRAST_LEVEL8);
        break;
    default:
        break;
    }
*/
    // Brian1.25
    HAL_AdjustContrast(__SetupInfo.bContrast-SETUP_SCREEN_CONTRAST_BASE);

#endif // #ifndef NO_SETUP
}

//  ***************************************************************************
//  Function    :   _SetDNRToIC
//  Description :   This function will set DNR value to IC. The "dynamics" register
//              :   w

⌨️ 快捷键说明

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