setup_exe.c

来自「Sunplus 8202S source code.」· C语言 代码 · 共 562 行 · 第 1/2 页

C
562
字号
/*
*  Terry,2004/2/10 03:34PM
*/
//#include "setup_page.h"//nono mark why add it??

#ifndef AC3_BASS_MANAGEMENT
 int downmix_off;
#endif 

#ifdef PULIANG_SETUP_MENU  //yaowh add 04-12-15
    int show_menu_setup_flag;
#endif

#ifdef SELECT_MEDIA_IN_SETUPMENU
BYTE media_changed_flag = 0;
#endif

void exe_setup_function(UINT8 tt_id, UINT8 sub_id, UINT8 exe);

#ifdef DVD_SETUP_REENG
extern void setup_VA2sel(void);
extern UINT32 setup_getSelPos(UINT8 selection);
extern UINT16 setup_getItemPos(UINT8 item);
#endif

#ifdef SETUP_MENU_TWO_BUTTON_SELECT_TWO_SUBTITLE  //added by wangwei,2004-10-24 23:12
extern int IDTWO;
UINT8 language_id;
UINT16 LCD_2;  //Language CoDe of the second subtitle.
#endif

#ifdef SUPPORT_HD_DVD
extern void scaler_main(void);

static inline void  exe_setup_function_dvi(UINT8 tt_id, UINT8 sub_id, UINT8 exe)
{
    #ifdef ADD_DVI311_SETUP
	
    #if 0////Modifed by chenzhao on 2004-12-10 15:39  
    static unsigned char init_output=1;
	if(tt_id == STR_OS_DVI311_FORMAT)
	{
		dvi311_format = sub_id;
		if(dvi311_format==STR_OS_ANOLOG_OUTPUT)  ////analog kevin0710
			{
			if(init_output==0)  
			{
				}
			else
			{
				init_output=0;
				scaler_main(); 
				}
            close_pll(0x00);
            Power_off_311=1;
			}
		if(dvi311_format==STR_OS_DIGIT_OUTPUT)  //digital
			{
			if(Power_off_311==1)
				{
				    close_pll(0xff);
#if 0
   			 	GPIO_O_SET(40, 1);
 				delay_1ms(200);
				delay_1ms(200);
				GPIO_O_SET(40, 0);	//reset 311	
				delay_1ms(600);
				scaler_main();
#endif //0
				Power_off_311=0;
				}
			init_output=0;
			}
//		scaler_main(); //040512
		printf("set output--kevin");
    	psprintf(linebuf, "dvi311_format %x\n", dvi311_format); 
    	epp_write_wait(linebuf);	
	}
    #endif
    #ifdef HDCP_CUSTOM//Modifed by chenzhao on 2004-12-1 11:24   
	if(tt_id == STR_OS_HDCP)
	{
	    if(STR_OS_OFF==sub_id)
	        hdcp_mode=HDCP_OFF;
        else
	        hdcp_mode=HDCP_ON;
        ResetAuthentStates();
	}
    #endif
	if(tt_id ==STR_OS_TV_SYS)
	{
	    if(sub_id!=STR_OS_AUTO)
		dvi311_tv_mode = sub_id;
        #ifdef DVD_SETUP_REENG//Modifed by chenzhao on 2004-11-24 21:8   
            dvi311_mode=setup_VA[SETUP_VA_SPV311MODE]-MIN_ITEM_SEL;
        #else
        dvi311_mode=SETUP_DVI_MODE-MIN_ITEM_SEL;//for load saved SETUP_DVI_MODE.added by ChenZhao on 2004-10-19 14:22  
        #endif
		//kevin tsest
//if(tv_out_id!=P_SCAN)//Modifed by chenzhao on 2004-11-25 16:46  //not HD output  kevin@2k0708
//{
	if(dvi311_tv_mode>0x84&&dvi311_mode==Mode_576P)// NTSC and 480P   @kevin 2k40708
                    dvi311_mode=Mode_480P;
	if(dvi311_tv_mode==0x84&&dvi311_mode==Mode_480P)// PAL and 576P   @kevin 2k40708
                    dvi311_mode=Mode_576P;                        
#if 0//Modifed by chenzhao on 2004-11-25 16:46   
//}
else if(tv_out_id==P_SCAN)                                   //not HD output  kevin@2k0708
{
	if(dvi311_tv_mode>0x84&&dvi311_mode==Mode_576P)// NTSC and 480P   @kevin 2k40708
		dvi311_mode=Mode_480P;
	if(dvi311_tv_mode==0x84&&dvi311_mode==Mode_480P)// PAL and 576P   @kevin 2k40708
		dvi311_mode=Mode_576P;
}	
#endif
        #ifdef DVD_SETUP_REENG//Modifed by chenzhao on 2004-11-24 21:8   
            setup_VA[SETUP_VA_SPV311MODE]=dvi311_mode+MIN_ITEM_SEL;
        #else
        //SETUP_DVI_MODE=dvi311_mode+MIN_ITEM_SEL;
        #endif
        if(Power_off_311==1)//for standby powerup start 311.added by ChenZhao on 2004-10-19 16:51  
        {
            close_pll(0xff);
            Power_off_311=0;
        }
		scaler_main(); //040512
    	psprintf(linebuf, "dvi311_tv_mode %x,exe=%d\n", dvi311_tv_mode,exe); 
    	epp_write_wait(linebuf);		
	}
	#endif

}

#endif


#include "str_os_downmix_setup.inc"
#include "str_os_aud_out.inc"

#include "str_os_16_9.inc"
#include "str_os_4_3lb.inc"
#include "str_os_4_3ps.inc"

#include "str_os_svideo.inc"
#include "str_os_ycbcr.inc"
#include "str_os_tv_rgb.inc"
#include "str_os_pc_vga.inc"
#include "str_os_pscan_yuv.inc"

#ifdef SUPPORT_PROLOGIC_II
#include "str_os_prologic2.inc"
#endif



//added by JS	//for setup reengineering	//20040817
#ifdef DVD_SETUP_REENG

#ifdef SPHE8202_CARD_STORAGE 
   extern void Card_power_off();                         
#endif

void exe_setup_function(UINT8 tt_id, UINT8 sub_id, UINT8 exe)
{
    //language,osd,subtitle,audio
    //printf("tt:%d sub:%d exe:%x\n",tt_id,sub_id,exe);
    #ifdef STORE_VIDEO_PARAMETER
    BYTE res; 
    #endif     

printf("\n	exe_setup_function in  %d  %d  %d\n", tt_id, sub_id, exe);
	
    #ifdef ADD_DVI311_SETUP
    exe_setup_function_dvi(tt_id,  sub_id,  exe);
	#endif
    switch(tt_id)
    {
    #ifdef SELECT_MEDIA_IN_SETUPMENU
    case STR_OS_MEDIA_TYPE:
    		if(system_state == SYSTEM_OPEN)	//Maoyong 2004/8/11 can't switch in OPEN state
    			break;
    			
    		switch(sub_id)
    		{
    			case STR_OS_MEDIA_DISC:
    			    if(media_type == MEDIA_CARD)
                    {
                      #ifdef SPHE8202_CARD_STORAGE 
                        Card_power_off();   //wthsin,  2004/9/1 10:13am
                      #endif 
                        media_changed_flag = 1;
                        SwitchMedia(CARD2CD);
                        printf("========= Switch to Disk Media ==========\n");
                    }
    				break;
			    case STR_OS_MEDIA_USB:
			        if( (media_type == MEDIA_CD) || (storage_type != USB_DEVICE) )
    			    {
    			      #ifdef SPHE8202_CARD_STORAGE 
                        Card_power_off();   //wthsin,  2004/9/1 10:13am
                      #endif      			    	
    			        media_changed_flag = 1;
    			        storage_type = USB_DEVICE;
                        SwitchMedia(CD2CARD);
                        printf("========= Switch to USB Device ==========\n");
                    }
				    break;
			    case STR_OS_MEDIA_CARD:	//Maoyong 2004/8/11 for eastech TYPE 3 CARD Storage
                    if( (media_type == MEDIA_CD) || ( (storage_type != MS_CARD_DEVICE) && (storage_type != SD_CARD_DEVICE) && (storage_type != SMC_CARD_DEVICE) )  )
    			    {
    			        media_changed_flag = 1;
    			        if(detect_type & MS_CARD_DEVICE)
    			            storage_type = MS_CARD_DEVICE;
                        else if(detect_type & SD_CARD_DEVICE)
    			            storage_type = SD_CARD_DEVICE;
    			        else if(detect_type & SMC_CARD_DEVICE) 
    			        	storage_type = SMC_CARD_DEVICE;  
                        SwitchMedia(CD2CARD);
                        printf("========= Switch to MS/SD/SMC CARD Device ==========\n");
                    }
				    break;
    		}
    		break;
    #endif //#ifdef SELECT_MEDIA_IN_SETUPMENU
        	
    #ifdef TUNR_OFF_PARENTAL_LVL
    case STR_OS_RATING:
	bTurnOffParentalLVL=0;//terry,2002/9/20 11:40PM
	break;
    #endif
#ifdef ADD_P_SCAN_ONOFF
	case STR_OS_P_SCAN_YUV:  //add by Tom 20040714
		if(sub_id==STR_OS_ON)
 			str_os_pscan_yuv();        
		else
			str_os_ycbcr(); 
		break;
#endif

	case STR_OS_OSD:
		{

			int         i;
			for  (i=MIN_ITEM_SEL; i<=MAX_ITEM_SEL; i++) {//nono 2-10-30 17:35
				if (sub_id==setup_item[setup_pos[1]][setup_pos[2]][i])
				{
					break;
				}
			}
			/*	//marked by JS	//20040817
			#ifdef SUPER_DEFAULT_OSD_LANG
			if(page==CUSTMPAGEINDEX)
			{
			    	UserSet.setup_default_osd_lang = i -2;
                		SETUP_OSD_LANG = UserSet.setup_default_osd_lang +2;
			}
			#endif
			*/
			//osd_font_mode = i-2;
			osd_font_mode = OSD_LANG_MAP[i-2]; //Jeff 20030217			
		}
		break;


	case STR_OS_SUBTITLE_LANG_SETUP:
		UserSet.SPSTN = 0x40|0x3E;//setting sub-picture on
		if(sub_id==STR_OS_AUTO) {
			sub_id=LCD_EN;//'e' * 256 + 'n';
		} else if(sub_id==STR_OS_OFF) {
			//sub_id=LCD_EN;//'e' * 256 + 'n';
			sub_id=0; //Jeff 20020925
			UserSet.SPSTN =0xffbf;//setting sub-picture on
		}
		UserSet.SPST_LCD = lang_639code[sub_id];//trans_lang_id(sub_id);
			
//#define SETUP_CAN_DIRECT_SEL_SUBTITLE			
#ifdef	SETUP_CAN_DIRECT_SEL_SUBTITLE
		dvd_sel_subtitle_right_now();
#endif
		printf("UserSet.SPST_LCD:%d\n",UserSet.SPST_LCD);
		printf("SPTN:%x\n",UserSet.SPSTN);	

⌨️ 快捷键说明

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