system_util.c
上传用户:caisangzi8
上传日期:2013-10-25
资源大小:15756k
文件大小:5k
源码类别:

DVD

开发平台:

C/C++

  1. void
  2. sysmain_boot_message(void)
  3. {
  4.     printf("Sunplus DVD driver " __DATE__ "n");
  5.     printf("FSJPEGDATA:%x DataSaved:%xn",sizeof(FSJPEGDATA),sizeof(DataSaved));
  6. }
  7. void
  8. sysmain_load_setup(void)
  9. {
  10.     //
  11.     // Initialize user setup with default value
  12.     set_default_value();
  13.     //
  14.     // Load user_setup from i2c eeprom
  15. #ifdef FORCE_REWRITE_WHEN_UPGRADE//terry,2004/1/8 05:32PM
  16.     load_user_setup(0);  
  17. #else
  18.     load_user_setup();  
  19. #endif    
  20. #ifdef FORCE_RETURN_TO_DEFAULT_TV_FORMAT
  21.     //
  22.     // restore default TV
  23.     setup_SetTV_default_format();
  24. #endif//FORCE_RETURN_TO_DEFAULT_TV_FORMAT
  25. }
  26. void
  27. sysmain_setup_hardware(void)
  28. {
  29.     //
  30.     // setup TV-encoder output current
  31. #ifdef IC_8202E
  32. sp8200tv_setup_dac_current(TV_DAC_A_HALF|TV_DAC_B_QUART|TV_DAC_C_QUART|TV_DAC_D_QUART|TV_DAC_E_QUART|TV_DAC_F_QUART); // dac f/e/d/c/b quarter-swing
  33. #else
  34. #ifdef TV_USE_HALF_SWING
  35.     tv_dachalf(TV_DAC_F|TV_DAC_E|TV_DAC_D|TV_DAC_C|TV_DAC_B);   // dac f/e/d/c/b half-swing
  36. #else
  37.     tv_dachalf(0); 
  38. #endif
  39. #endif // IC_8202E
  40.     //
  41.     // setup TV-encoder DAC output
  42. #ifndef TVOUT6_4DAC_ON
  43. #ifdef TV_USE_4_DAC
  44. #ifdef SPHE1000
  45. tv_dacoff(TV_DAC_F|TV_DAC_E);                               // dac d/c/b/a on ,e,f off
  46. #else
  47.      #ifdef GBM_PORTABLE_DVD
  48.          tv_dacoff(TV_DAC_F|TV_DAC_E);                               // dac d/c/b/a on ,e,f off
  49.      #else    
  50. //gerry add for gbm,when we set to S-VIDEO,tv dac3 will be off,2004-5-13 15:44
  51. #if ((defined(S_VIDEO_OUT)&&defined(S_VIDEO_SET_TV_DAC3_OFF))||defined(USE_YUV_NO_BLUE))
  52. extern UINT8 setup_GetVideoMode(void);
  53.          if(setup_GetVideoMode()==SVIDEO_POSITION)           //default S_VIDEO out
  54.          tv_dacoff(TV_DAC_C|TV_DAC_B|TV_DAC_E);                             // dac f/e/d//a on ,b,c off
  55.          else
  56. #endif
  57.          tv_dacoff(TV_DAC_C|TV_DAC_B);                               // dac f/e/d//a on ,b,c off
  58.      #endif    
  59. #endif
  60. #else
  61.     #ifndef SLEEP_WHEN_POWER_ON        //hq,3-11-25 22:39
  62.      #ifndef USE_SUNPLUS_EMU_BOARD
  63.      #ifdef SUPPORT_FUNCTION_MENU //Jack added for argus portable dvd
  64.      #ifdef SUPPORT_SPI
  65.      if(pdvd_mode == PDVD_MODE)
  66.      {
  67.        sp8200tv_setup_custom_output(TV_OUT_CScRGB);
  68.        tv_dacoff(TV_DAC_C|TV_DAC_B|TV_DAC_A); 
  69.      }
  70.      else
  71.      #endif
  72.      #endif
  73.      #endif
  74.      #ifdef GBM_ONLY_CVBS_S_VIDEO_SHOW_COMPOSITE//gerry,2004-7-30 17:11
  75.      tv_dacoff(TV_DAC_F|TV_DAC_E|TV_DAC_D|TV_DAC_C|TV_DAC_B);//turn off dac f/e/d/c/b,gerry,2004-7-30 17:11
  76.      #else//GBM_ONLY_CVBS_S_VIDEO_SHOW_COMPOSITE
  77.      tv_dacoff(0);                   // dac f/e/d/c/b/a on
  78.      #endif//GBM_ONLY_CVBS_S_VIDEO_SHOW_COMPOSITE
  79. #endif
  80. #endif
  81. #endif
  82. }
  83. //terry,2003/8/9 03:48PM
  84. //wanghaoying 2003-8-12 19:38 modified the type of the function
  85. BYTE wait_dsp_port0_5(int port0,int port5,int val,UINT32 risc_waiting_dsp_tm)
  86. {
  87.     UINT32 i;
  88.     if(srv_on == 0) risc_waiting_dsp_tm = 0x1;//terry,2003/8/11 11:41AM
  89.     
  90.     
  91.     for (i=0; i< risc_waiting_dsp_tm; i++) 
  92.     {
  93.          
  94.          if ( (port0==0)||((regs0->dsp24_port[0] & 0x8000) == 0x8000) )
  95.          {
  96.             if( (port5==0)||(regs0->dsp24_port[5]==(UINT32)val) )//wanghaoying 2003-8-12 19:36 modified, please terry confirm
  97.             {
  98.               return 1;
  99.             }
  100.          }
  101.         #if 0//def DVD_SERVO//servo-test 2004-5-3 16:47
  102.         if(srv_on == 1)
  103.             ServoDecMainLoop();// barry add for polling servo status
  104.         #endif
  105.     }    
  106.     
  107.     return 0;
  108. }
  109. void delay_srv_10ms(int tms)
  110. {
  111.     #if defined(SUPPORT_CARD_STORAGE)||defined(SUPPORT_USB)||defined(SPHE8202_CARD_STORAGE)
  112.     if (media_type==MEDIA_CARD)  
  113.     {
  114.         delay_1ms(10*tms);
  115.         return;
  116.     }     
  117.     #endif
  118. #ifndef DVD_SERVO
  119.     delay_1ms(10*tms);
  120. #else
  121.     if (srv_on==0)   
  122.     {
  123.      int i;
  124.      for(i=0;i<tms;i++)
  125.      {
  126.            delay_1ms(10);
  127.            
  128.            //#ifdef HANYANG_SCAN_KEY
  129.            //check_hanyang_keylight_status();
  130.            //#endif
  131. #if defined(USE_VFDPORT_TO_KEYLIGHT_MINTON)
  132.            check_minton_keylight_status();
  133. #endif
  134.         }
  135.     }
  136.     else
  137.     { 
  138.         int now,old = GET_RTC_15_0();
  139.         int cnt = 0;
  140.     
  141.         do {
  142.             now = GET_RTC_15_0();
  143.             if(old!=now)
  144.             {
  145.                 cnt++;
  146.                 old=now;
  147. #if defined(USE_VFDPORT_TO_KEYLIGHT_MINTON)
  148.                 check_minton_keylight_status();
  149. #endif
  150.         
  151.         //#ifdef HANYANG_SCAN_KEY
  152.            //check_hanyang_keylight_status();
  153.            //#endif
  154.          }
  155.         #ifdef DVD_SERVO
  156.             ServoDecMainLoop();// barry add for polling servo status
  157.         #endif
  158. #ifdef HDMI
  159.         HDCP_polling();//Modifed for avoid unknow recursion.chenzhao on 2004-12-14 16:21  
  160. #endif
  161.         }while(cnt<=tms);
  162.    }
  163. #endif   
  164. }