ircmd_2ch_5_1CH.c
上传用户:poi891205
上传日期:2013-07-15
资源大小:9745k
文件大小:2k
源码类别:

DVD

开发平台:

C/C++

  1. /*
  2. *   Terry,2004/2/10 11:57AM
  3. */
  4. #define is_not_dvd()      (cd_type_loaded != CDDVD)
  5. #define is_src_2ch()      ((pDSV->dNs_Audio_ch<=1)&&is_dvd())
  6. #ifndef SUPPORT_PROLOGIC_II   //fengjl add 4-1-27 16:19
  7. #define is_not_support_pl2()     (1)
  8. #else
  9. #define is_not_support_pl2()     (0)
  10. #endif
  11. #define is_invalid_key()  (is_not_support_pl2()&&(is_not_dvd()||is_src_2ch()) )
  12. //#define STR_OS_5_1_CHANNEL 151
  13. void set_2ch_and_pl2(void)
  14. {
  15.   if(ChannelFlag==AUDIO_2CH) AudioSet2chOutput();
  16. #ifdef  SUPPORT_PROLOGIC_II //zhaoyanhua add 2004-2-11 9:59
  17.   else AudioSetPrologic_IIOutput();
  18. #endif//ifndef SUPPORT_PROLOGIC_II
  19. }
  20. void set_downmix_onoff(void)
  21. {
  22.   if(ChannelFlag==AUDIO_2CH) AudioSet2chOutput();
  23.   else AudioSet5_1chOutput();
  24. }
  25. /*
  26.  *Function Description:
  27.  *    if  only 2channel , change between 2channel and PROLOGIC II
  28.  *    if  only 5.1Channel,change between 5channel and 2 channel
  29.  *    else  between 2channel and 5.1 channel 
  30.  * zhaoyanhua 03-11-1 20:04 
  31.  */
  32. void ircmd_2ch_5_1ch()
  33. {
  34.    int id;
  35.    
  36.    if(is_invalid_key())
  37.    {
  38.       invalid_key();
  39.       return;
  40.    }
  41.    
  42.    AUDIF_Set_Volume(0);//2004AUDDRV AudioSetVolume(0);
  43.    if(setup_IsSpkStereo())
  44.    {//chg to 5.1ch
  45.       ChannelFlag = AUDIO_5_1CH; 
  46.       id = STR_OS_5_1_CHANNEL;
  47.    }
  48.    else
  49.    {//chg to 2ch
  50.       ChannelFlag = AUDIO_2CH; 
  51.       id = STR_OS_STEREO;
  52.    }
  53.    if(is_dvd())
  54.    {
  55.       if(pDSV->dNs_Audio_ch<=1)//current audio is 2channel //get from useif.c
  56.           set_2ch_and_pl2();
  57.       else//current audio is 5.1 channel
  58.   set_downmix_onoff();
  59.    }else if (cd_subtype==CD_DTS)//CD_DTS
  60.       set_downmix_onoff();
  61.    else
  62.      set_2ch_and_pl2();
  63.   
  64.    AUDIF_Demute();//2004AUDDRV AudioDemute();
  65.    // These codes is for show Spectrum correctly.
  66.    //zhaoyanhua add 03-10-31 15:45
  67. #ifdef DYNAMIC_SPECTRUM
  68.    if(bEqDisplay) ClearShowSpectrum();
  69. #endif
  70.    if(ChannelFlag == AUDIO_5_1CH)
  71.    {
  72. #ifdef ONLY_EQ_KEY   //fengjl add to turn off EQ and SOUND_FIELD when turn on prologicII 3-12-15 18:58
  73.       if(EQ_type!=0)
  74.       {
  75.           EQ_type = 1;
  76.           SetEQ();
  77.           EQ_type = 0;
  78.       }
  79. #endif
  80.     
  81. #ifdef ONLY_SOUND_FIELD_KEY
  82.       if(surround_type!=0)
  83.       {
  84.  AUDIF_Set_Surround(0);//2004AUDDRV AudioSetSurround(0);
  85.  surround_type = 1;   //OFF
  86.       }
  87. #endif
  88.    }
  89.    PrintOsdMsg(id, REGION1, 1, 0);
  90. }
  91. //===================================ending=================================================