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

📄 setup_tab_reeng.c

📁 Sunplus 8202S source code.
💻 C
📖 第 1 页 / 共 5 页
字号:
    #ifdef MONE_SETUP
    printf("\n\n=============>  set_default_value()     IN\n");
    #endif
    
    #ifdef ADD_DVI311_SETUP//Modifed by chenzhao on 2004-11-30 19:55   
	Power_off_311=1;   
    #endif
    
    for(i=0;i<(MAX_SETUP_PAGE+MAX_CUSTM_SETUP_PAGE);i++){
        for(j=1;j<=MAX_PAGE_ITEM;j++){
            VA=setup_item[i][j][MAX_ITEM_SEL+1]; 
            if(VA<MAX_SETUP_VA){
                if((setup_item[i][j][1]==STR_OS_RATING)||(setup_item[i][j][1]==STR_OS_PASSWORD)||(setup_item[i][j][1]==STR_OS_REGION_CODE))
                {/*do nothing here*/} 
                #ifdef ADD_DVI311_SETUP//Modifed by chenzhao on 2004-11-30 19:55   
                else if((setup_item[i][j][1]==STR_OS_HDCP))
                {
                    if(setup_VA[VA]<MIN_ITEM_SEL)
                        setup_VA[VA]=MIN_ITEM_SEL;
                } 
                #endif
                else
                {
                    setup_VA[VA] = setup_item[i][j][MAX_ITEM_SEL+2]+MIN_ITEM_SEL;
                    if(setup_item[i][j][1]==STR_OS_TV_SYS)
                        exe_setup_function(setup_item[i][j][1], setup_item[i][j][setup_VA[VA]], 1);
                }
            }
        }
    }
    setup_VA2sel();
    
    init_val_by_record();
    
    #ifdef MONE_SETUP
    dump_setup_val();
    printf("\n\n=============>  set_default_value()     OUT\n");
    #endif
}



//    xyy deleted 2004-3-8 
//the amp default status settint is moved to amp_gui.c
//void set_ampsetup_default(void)


//added by JS   //for setup reengineering   //20040811
void run_set_variable(void)
{
    int     i,j;
    int     P0, P1, P2, P3;
    P0 = setup_pos[0];
    P1 = setup_pos[1];
    P2 = setup_pos[2];
    P3 = setup_pos[3];


#ifdef MONE_SETUP
printf("\n\n        >>>>>run_set_variable   IN\n");
#endif

//freyman 2004-3-26 0:00, for when next page used MAX_SETUP_PAGE is defined 7 in setup_def.h
//#if (defined(SAME_DISC_RESUME)&&!defined(GBM_FULL_FUNCTION))||defined(SHOW_STANDBY_TIMER)//for the next sys-page is P.7,wangfeng 2003-12-1 17:49 
//    for(i=0;i<MAX_SETUP_PAGE+1;i++)       
//#else
    
    for(i=0;i<MAX_SETUP_PAGE;i++)
//#endif
        for(j=1;j<=MAX_PAGE_ITEM;j++)
        {
            setup_pos[1] = i;
        setup_pos[2] = j;
        #if defined(BBK_NEW_SETUP)&&defined(BBK_DV961_DVD)
            if(i == ONEKEYPASSPAGE)
            {
                /*  //marked by JS  //for setup reengineering   //20040819
                SETUP_SPK_DOWNMIX = DOWNMIXSTEREO;
          //TV format
                SETUP_TV_FORMAT = 2;//NTSC;
                exe_setup_function(setup_item[i][0][1],setup_item[i][0][DOWNMIXSTEREO],1);
                exe_setup_function(setup_item[i][1][1],setup_item[i][1][2],1);    
                continue;
              */  
              //added by JS //for setup reengineering   //20040819
          if(setup_item[i][j][1]==STR_OS_DOWNMIX_SETUP){
            setup_VA[SETUP_VA_DOWNMIX] = DOWNMIXSTEREO;
            exe_setup_function(STR_OS_DOWNMIX_SETUP,setup_item[i][j][DOWNMIXSTEREO],1);                
          }
          else if(setup_item[i][j][1]== STR_OS_TV_SYS){
            setup_VA[SETUP_VA_TV_SYS] = 2; //set to NTSC    //??????? is this always correct?
            exe_setup_function(STR_OS_TV_SYS, setup_item[i][j][2], 1);
          }     
            }
        #endif
            
            sel=setup_sel[i][j];
         setup_pos[3]=sel;
         
            if (setup_item[i][j][1]!=STR_OS_SSAVER_SETUP)
            {
                #ifdef SELECT_MEDIA_IN_SETUPMENU    //Maoyong 2004/8/11 run default setting should ignore media selection item
                if(setup_item[i][j][1] ==STR_OS_MEDIA_TYPE)
                    continue;
                #endif
            
                //only setting variable ,not run function...
                //printf("i:%d  j:%d sel:%d",i,j,sel);
                if(setup_item[i][j][1]==STR_OS_RATING)
                {
                    if( (sel<RATE_LOW)||(sel>RATE_HIGH) )
                    {
                        sel = RATE_DEFAULT;
                        setup_sel[i][j]=sel;
               setup_pos[3] = sel;
                    }
                }
#ifdef GBM_DVD
                if (setup_item[i][j][1]==STR_OS_TV_SYS)
                {
                    exe_setup_function(setup_item[i][j][1],setup_item[i][j][sel],1);
                }
                else
#endif
                exe_setup_function(setup_item[i][j][1],setup_item[i][j][sel],0); 
            }
        }

        safe_srn_forceOFF();
        
#ifdef HDCP_CUSTOM
    UINT16 pi;
    pi=setup_getItemPos(STR_OS_HDCP);
    if(pi!=0xffff)
        exe_setup_function(setup_item[pi>>8][pi & 0xff][1],setup_item[pi>>8][pi & 0xff][setup_sel[pi>>8][pi & 0xff]],0);
#endif
    setup_pos[0] = P0;
    setup_pos[1] = P1;
    setup_pos[2] = P2;
    setup_pos[3] = P3;
#ifdef MONE_SETUP
printf("\n\n        >>>>>run_set_variable   OUT\n");
#endif      
}




#ifdef SUPPORT_PASSWD3
extern UINT8 setup_audio_mode;
void chg_audio_default_mode(void)
{
   WriteToI2c(0xa0, 0,(BYTE *)&setup_audio_mode,1);//audio mode
}
#endif

void init_mode_val(void)
{
#ifdef VOLUME_RECODE
{
   int r;
   int i;
   
   #ifdef CNTR_5SPK_VOLUME//wangfeng 2003-11-11 21:27   
   for (i=0; i<7; i++) 
   {    
    #ifdef SW_VOL_63
      if(i==6) audio_volume  = SUB_DEFAULT;
          else audio_volume = DEFAULT_VOL;
        #else
          audio_volume = DEFAULT_VOL;
        #endif    
   
        //audio_volume = VOL_VALUE;       //set to max volume  at the first time  gerry 2-11-6 9:24
        r=WriteToI2c(0xa0, ADDR_I2C_VOLUME+i, (BYTE *)&audio_volume,sizeof(audio_volume));   
   }//for
    
   audio_volume=DEFAULT_VOL;
   volume_Switch=0;
   
   #else//CNTR_5SPK_VOLUME//wangfeng 2003-11-11 21:27   
    audio_volume = DEFAULT_VOL;       //set to max volume when we default gerry 2-11-6 9:26;   
    r=WriteToI2c(0xa0, ADDR_I2C_VOLUME+i, (BYTE *)&audio_volume,sizeof(audio_volume));
   #endif
}
#endif//#ifdef VOLUME_RECODE
    
#ifdef IR_KEY_SET_VIDEO_MODE
   video_mode_val=0;
   WriteToI2c(0xa0, VIDEO_MODE_I2C_ADDRESS,(BYTE *)&video_mode_val,1);
#endif   

#ifdef SUPPORT_PASSWD3
   setup_audio_mode=0;
   chg_audio_default_mode();
#endif
   
}

void read_record_val(void)
{

#ifdef VOLUME_RECODE     //read volume from I2C    gerry  2-11-5 16:47
    int i,r; 

  #ifdef CNTR_5SPK_VOLUME
  for (i=0; i<7; i++) 
  {  
    r=ReadFromI2c(0xa0,ADDR_I2C_VOLUME+i,(BYTE *)&audio_volume,sizeof(audio_volume));    
    //printf("%%%%%%^^^^^^r==<%d>:audio_volume=====>%d\n",r,audio_volume);
    
    if(r<=0) audio_volume = DEFAULT_VOL;       //set to max volume when we default gerry 2-11-6 9:26;   
    volume_5SPK[i] = audio_volume;//VOL_VALUE; //set to maximum volume
    if(i==0) idVolume_5SPK[i]    = Volume_Font_ID;
    else     idVolume_5SPK[i]    = VOL_FL_ID+i-1;
  } //for
  
  audio_volume  = volume_5SPK[0] ;
  volume_Switch = 0;     //set to main volume
  #else
  r=ReadFromI2c(0xa0,ADDR_I2C_VOLUME+i,(BYTE *)&audio_volume,sizeof(audio_volume));  
  //printf("%%%%%%^^^^^^r==<%d>:audio_volume=====>%d\n",r,audio_volume);
  #endif
#endif //VOLUME_RECODE

#ifdef IR_KEY_SET_VIDEO_MODE
  int r;
  r=ReadFromI2c(0xa0, VIDEO_MODE_I2C_ADDRESS,(BYTE *)&video_mode_val,1);
  //printf("%%%%%%^^^^^^r==<%d>:video_mode_val=====>%d\n",r,video_mode_val);
  if(r<=0) video_mode_val=0;  
  set_video_val(video_mode_val);
#endif  

#ifdef SUPPORT_PASSWD3
  ReadFromI2c(0xa0,0,(BYTE *)&setup_audio_mode,1);
#endif
  
}        



void init_val_by_record(void)
{

    //printf("\n\n  [init_val_by_record]\n");

     //echo: shift to 0 ~ 8
        echo_level = setup_VA[SETUP_VA_ECHO] -2;
        //key: shift to -6 ~ 6
    audio_key = setup_VA[SETUP_VA_KEY]  -2 -6;  
        //ac3_dynarange 0 ~ 8
    ac3_dynarange = setup_VA[SETUP_VA_DYNAMCRANGE] -2;
        //mic-volume: shift to 0 ~  8
       #ifdef  MIC_2CHANNEL    // fake code here
       mic_volume = setup_VA[SETUP_VA_MIC_VOL_2] - 2;
    mic_volume = setup_VA[SETUP_VA_MIC_VOL_1] - 2;   
    #else
    mic_volume = setup_VA[SETUP_VA_MIC_VOL] - 2;
    #endif
        
#ifdef DYNAMIC_SPECTRUM       //zhaoyanhua add  2003-12-3 11:42     
       if(setup_VA[SETUP_VA_BAND] == 2)
       {
            band_onoff = 1;
            bEqDisplay = 1; 
       }
#endif
}


#ifdef MONE_SETUP
void dump_setup_val(void)
{
  int i, j;

  printf(">>>read eeprom setup menu,ok!!\n");
  for (i=0; i<MAX_SETUP_PAGE+MAX_CUSTM_SETUP_PAGE; i++) {
    for (j=0; j<7; j++) {
        printf("   setup_sel[%d][%d]=%d\n", i, j, setup_sel[i][j]);
    }
  }
}
#else
#define dump_setup_val();
#endif


#ifdef FORCE_REWRITE_WHEN_UPGRADE//terry,2004/1/8 05:28PM
void load_user_setup(UINT8 force_update)
#else
void load_user_setup(void)
#endif
{
    //int       i,j,VA;
    int         iRts;
    UINT16      unChksum,unTmp;
    BYTE        *p;
    UINT32  romSum=0;

    #ifdef MONE_SETUP
        printf("\n  <load_user_setup>  IN\n\n");
        #endif
    //================================================================= 

    //get ROM-code-checksum from ROM(20th ~ 23th Byte)
    {
        UINT32  *pSum;
        pSum = (UINT32 *)(ROM_BASE_UNCACHED+0x40);
        romCheckSum = *pSum &0xffffff;
    }

    //read ROM-code-checksum from setup EEPROM(flash)(0-th Byte)
    p = (BYTE *)(&romSum);
    iRts = ReadFromI2c(0xa0, 1, p, 3);    
    WriteToI2c(0xa0, 1, (BYTE *)&romCheckSum,3);//save rom check sum        
    printf("romCheckSum:%x %x\n",romCheckSum,romSum);

#ifdef FORCE_REWRITE_WHEN_UPGRADE//terry,2004/1/8 05:28PM
    if(force_update==1)
    {
        romSum = 0;     
         setup_VA[SETUP_VA_RATING]= RATE_DEFAULT;
        NP_PTL_LVL = 8;//zhaoyanhua  2004-3-9 11:32 after UPGRADE, must set parent level is 8.
    }
#endif    

    if (iRts > 0)//read ROM-code-checksum from setup EEPROM(flash)(0-th Byte) ok
    { 
         if (romSum==romCheckSum) 
        {
             #ifdef Ti3001_OSD_UI_1
              load_amplifier_setup();   // jason add 2-10-5 15:59
             #endif             
/*  xyy marked 2004-3-8 11:28
            #if defined(SUPPORT_APOGEE_AMP)&&defined(XINGQIU_DVD_RECEIVER)
            //xyy 2004-1-13 10:04
            load_amp_setup();
             #endif             
*/
         //read setup setting from setup EEPROM(4-th Byte)
         p=(BYTE *)setup_VA;
         iRts=ReadFromI2c(0xa0, sizeof(UINT32), p, sizeof(setup_VA));
/*

    printf("===================================================================\n");
         for(i=0; i<64; i++)
         {
            printf("setup_VA[%d] = %x\n", i, setup_VA[i]);
         }
    printf("===================================================================\n");
*/
        setup_VA2sel();

         
            //yanlb added 2004/07/07
            #ifdef  REMB_3DSOUND 
                load_3Dsound(sound_sel,user_osd_set);
            #endif
        } 
    else //flash upgrade (romSum!=romCheckSum)
       {
            iRts = -1;
            //if rom0-check-sum is not equal, set to default password, Jeff 20020703
            #ifdef SUPER_DEFAULT_OSD_LANG
            UserSet.setup_default_osd_lang = DEFAULT_OSD_LANG;
            #endif
            UserSet.parent_passwd = DEFAULT_PASSWORD;
            WriteToI2c(0xa0, sizeof(UINT32)+sizeof(setup_VA)+2, (BYTE *)&UserSet, sizeof(t_USER_SET));
        #if defined(SUPPORT_DDX8000)//xyy 2004-5-26
            //init_ddx_amp_st();
            //save_amplifier_status_to_e2prom();
        #endif
        #if defined(SUPPORT_TUNER_MV114) || defined(SUPPORT_TUNER_ALPS)//xyy 2004-5-26
                    init_tuner_var();
        #endif
            //init mode
            init_mode_val();
        } //if (romSum==romCheckSum) {
    } //if (iRts > 0) {

    //read audio/video mode
    read_record_val();
    
    if(iRts>0)  // read setup setting from setup EEPROM(4-th Byte) ok
    {
        init_val_by_record();       
        dump_setup_val();        

        //read setup checksum from setup EEPROM
        iRts=ReadFromI2c(0xa0, sizeof(UINT32)+sizeof(setup_VA), (BYTE *)&unChksum, 2);
        if (iRts>0)
        {
            printf("read eeprom setup check success\n");            
            //count setup checksum
            unTmp = run_save_unChk_cmd(0);
            //check setup checksum and counted checksum
            if (unTmp!=unChksum) 
            {                
                printf("check sum error, uTmp=%d unCkhsum=%d\n",unTmp,unChksum);                
                iRts=-2;
            }
            else 
            {
                printf("check sum success\n");
            }        
        }
        else 
        {
            printf("read eeprom setup check error\n");
        }
        
        #ifdef MONE_SETUP
        printf("chksum=%02x\n",unChksum);
        #endif
    }


    //set to default, when
    // 1. different ROM-code-checksum(setup-EEPROM vs. ROM)
    // 2.counted setup-checksum != stored in setup EEPROM
    if (iRts < 0)
    {

        #ifdef MONE_SETUP
        printf("\n\n read eeprom setup menu,fail!!  set to default now!!\n");
        #endif

        setup_VA[SETUP_VA_REGION_CODE] = REGION_NUM+2; //nono 20031121
        UserSet.P_RCD = REGION_NUM;

        set_default_value();
        run_save_total_sel();        

        #ifdef Ti3001_OSD_UI_1    // jason 2-10-5 15:30
    reset_amplifier_default_setup();
        #endif

        #ifdef POWER_RESUME
        RsmInfo2Flash(1); //clear resume flash memory, Jeff 20020928
        #endif
    }

    //read UserSet for DVD-related
    //if (iRts>0)
    iRts=ReadFromI2c(0xa0, sizeof(UINT32)+sizeof(setup_VA)+2, (BYTE *)&UserSet, sizeof(t_USER_SET));
    if(iRts>0)
    {
        printf("read eeprom system menu,ok!!\n");
        printf("\n\npassword>>> %d\n", UserSet.parent_passwd);
        UserSet.P_RCD = setup_VA[SETUP_VA_REGION_CODE] - 2;

⌨️ 快捷键说明

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