亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來(lái)到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? aud_ctrl.c

?? mtkDVD源代碼程序4*16 很好玩的內(nèi)置5.1環(huán)繞音效 大家可以玩一下
?? C
?? 第 1 頁(yè) / 共 5 頁(yè)
字號(hào):
// Description :
// Parameter :
// Return    :
// *********************************************************************
void vAdspReset(void) large
{
  WriteAUD(AUD_BSCFG, 0x0);

  // this is play type dependant, called from vPlayerReset() in combine.c
#if 0
  _rAudioCtrl.sVocal.bVocalMode = VOCAL_NO_ASSIST;
  _rAudioCtrl.sVocal.fgVoiceCancel = FALSE;
#endif
}

#if (!defined(SET_VSURR_IN_SPKCFG) && defined(PLAYER_SURROUND))
// *********************************************************************
// Function :
// Description :
// Parameter :
// Return    :
// *********************************************************************
BOOL fgCheckIsVSurrValid(BYTE bAudioType, BYTE bDiscType, BYTE bInitState) large
{
  BOOL fgValid;
#ifdef DOLBY_PROLOGIC
  strucPrologicFlag rTmp;
#elif (defiend(DOLBY_PROLOGIC2))
  strucDspPLIIConfig rTmp;
#endif

  if (bInitState == SV_DISC_IDENTIFIED)
  {
    /* check multi-channel bit-stream */
    switch (bDiscType)
    {
      case SV_DVD_VIDEO:
      case SV_DVD_AUDIO:
      case SV_MINI_DVD:
      case SV_DTS_CS:
        fgValid = FALSE;
        break;

      case SV_DATA:
        fgValid = TRUE;
        break;

      case SV_SVCD:
      case SV_CVD:
      case SV_VCD3_0:
      case SV_VCD2_0:
      case SV_VCD1_1:
      case SV_VCD6_0:
      case SV_VCD6_1:
      case SV_PCD:
      case SV_CDDA:
      case SV_CDG:
      case SV_HDCD:
      default:
        fgValid = TRUE;
        break;
    } /* switch (bDiscType) */
  }
  else
  {
    fgValid = TRUE;
  }

  /* check Pro-Logic */
#ifdef DOLBY_PROLOGIC
  rTmp.Union.Word = wReadDspSharedWInfo(W_PROLOGICCFG);

  if (rTmp.Union.Bit.On == TRUE)
  {
    fgValid = FALSE;
  }
#elif (defiend(DOLBY_PROLOGIC2))
  rTmp.Union.Word = wReadDspSharedWInfo(W_PLIICONFIG);

  if (rConfig.Union.Bit.En == TRUE)
  {
    fgValid = FALSE;
  }
#endif /* DOLBY_PROLOGIC2 */

  return (fgValid);
}
#endif /* !SET_VSURR_IN_SPKCFG && PLAYER_SURROUND */

// *********************************************************************
// Function :
// Description :
// Parameter :
// Return    :
// *********************************************************************
void vAdspAudioTypeChange(BYTE bAudioType, BYTE bDiscType, BYTE bInitState) large
{
  BYTE bAudBsCfg = bReadAUD(AUD_BSCFG);
  BYTE bTmp;

#ifdef CDDA_FAST_LOWER_VOL
  if ((bInitState == SV_TRAY_OPENING) &&
      (_rAudioCtrl.sVol.fgLower == TRUE))
  {
    bTmp = bAdspCurrVol();
    vWriteDspSharedDInfo(D_VOL, VOLUME[bTmp]);
    vNotifyDspSharedInfo(UOP_DSP_MASTER_VOLUME);
    _rAudioCtrl.sVol.fgLower = FALSE;
  }
#endif /* CDDA_FAST_LOWER_VOL */

  if (bInitState == SV_DISC_IDENTIFIED)
  {
    _rAudioCtrl.sFlag.fgDspStop = FALSE;
  }
  else /* disc not identified */
  {
    _rAudioCtrl.sFlag.fgDspStop = TRUE;
    return;
  }

  if (bAudioType == SV_A_CODE_NONE)
  {
    bAudBsCfg = 0x00;

#if (!defined(SET_VSURR_IN_SPKCFG) && defined(PLAYER_SURROUND))
    /* for virtual surround */
    bTmp = bReadDspSharedBInfo(B_VSURRFLAG);
    if (fgCheckIsVSurrValid(bAudioType, bDiscType, SV_DISC_IDENTIFIED))
    {
      /* virtual surround is allowed */
      if ((_rAudioCtrl.uSurrType.Bit.bVsurrType == AUD_VSURR_MTK) &&
          (bTmp == DSP_VSURR_OFF))
      {
        vWriteDspSharedBInfo(B_VSURRFLAG, DSP_VSURR_MTK);
        vNotifyDspSharedInfo(UOP_DSP_VIRTUAL_SURROUND_FLAG);
      }
    }
    else
    {
      /* virtual surround is not allowed */
      if (bTmp != DSP_VSURR_OFF)
      {
        vWriteDspSharedBInfo(B_VSURRFLAG, DSP_VSURR_OFF);
        vNotifyDspSharedInfo(UOP_DSP_VIRTUAL_SURROUND_FLAG);
      }
    }
#endif /* !SET_VSURR_IN_SPKCFG && PLAYER_SURROUND */
  }
  else /* audio stream type valid */
  {
    bAudBsCfg = 0x00;

    switch (bAudioType)
    {
      case SV_A_CODE_MPEG:
        break;

      case SV_A_CODE_DTS:
#ifdef DTS_NO_KEY_SHIFT
        if (_rAudioCtrl.cCurKey != ZERO_KEY_LEVEL)
        {
          _rAudioCtrl.cCurKey = ZERO_KEY_LEVEL;
          vWriteDspSharedWInfo(W_KEYLEVEL, (WORD)(_rAudioCtrl.cCurKey));
          vNotifyDspSharedInfo(UOP_DSP_KEY_SHIFT_LEVEL);
        }
#endif /* DTS_NO_KEY_SHIFT */
        break;

      case SV_A_CODE_PCM:
        if (fgIsDvdPlay())
        {
          bAudBsCfg = 0x02;
        }
        break;

      case SV_A_CODE_AC3:
        break;

      case SV_A_CODE_SDDS:
        break;

      case SV_A_CODE_MP3:
        break;

      case SV_A_CODE_WAV:
        break;

      case SV_A_CODE_MLP:
        break;

      case SV_A_CODE_WMA:
        break;

      case SV_A_CODE_HDCD:
        break;

      default:
        break;
    }
  } /* audio stream type valid */

  if (bAudBsCfg != bReadAUD(AUD_BSCFG))
  {
    WriteAUD(AUD_BSCFG, bAudBsCfg);
  }
}

#if 0
// *********************************************************************
// Function :
// Description :
// Parameter :
// Return    :
// *********************************************************************
void vAdspProcMode(BYTE bMode, BOOL fgOnOff) large
{
  WORD wFlag;
  WORD wMask;

  wFlag = wReadDspSharedWInfo(W_PROCMOD);

  switch (bMode)
  {
    case AUD_BASS_TO_SUB:
      wMask = FLAG_BASS_TO_SUB;
      break;

    case AUD_SPECTRUM:
      wMask = FLAG_SPECTRUM_ON;
      break;

    default:
      return;
  }

  if (((wFlag & wMask) != 0) && (fgOnOff == ADSP_OFF))
  {
    wFlag &= (~wMask);
    vWriteDspSharedWInfo(W_PROCMOD, wFlag);
    vNotifyDspSharedInfo(UOP_DSP_PROCESSING_MODE);
  }
  else if (((wFlag & wMask) == 0) && (fgOnOff == ADSP_ON))
  {
    wFlag |= wMask;
    vWriteDspSharedWInfo(W_PROCMOD, wFlag);
    vNotifyDspSharedInfo(UOP_DSP_PROCESSING_MODE);
  }
}
#endif

#ifdef PLAYER_SURROUND
  #ifndef NO_POST_DRC_ON_OFF

// *********************************************************************
// Function :
// Description :
// Parameter :
// Return    :
// *********************************************************************
#if 0//incall
void vAdspPostDRC(BYTE bMode) large
{
  WORD wFlag;

  wFlag = wReadDspSharedWInfo(W_PROCMOD);

  switch (bMode)
  {
    case AUD_DRC_POST_OFF:
      wFlag &= (~(FLAG_POST_AUTO_ON | FLAG_POST_DRC_ON));
      break;

    case AUD_DRC_POST_ON:
      wFlag &= (~FLAG_POST_AUTO_ON);
      wFlag |= FLAG_POST_DRC_ON;
      break;

    case AUD_DRC_POST_AUTO:
      wFlag |= FLAG_POST_AUTO_ON;
      break;

    default:
      return;
  }

  vWriteDspSharedWInfo(W_PROCMOD, wFlag);
  vNotifyDspSharedInfo(UOP_DSP_PROCESSING_MODE);
}
#endif /* uncall */
  #endif /* NO_POST_DRC_ON_OFF */
#endif /* PLAYER_SURROUND */

// *********************************************************************
// Function :
// Description : adjust system master volume
// Parameter :
// Return    :
// *********************************************************************
void vAdspVolume(BYTE bLevel) large
{
  if (bLevel > MAX_VOL_LEVEL)
  {
    bLevel = MAX_VOL_LEVEL;
  }
  else if (bLevel < MIN_VOL_LEVEL)
  {
    bLevel = MIN_VOL_LEVEL;
  }

#ifdef VOL_ZERO_AS_MUTE
  if ((_rAudioCtrl.sVol.bCurVol == 0) && (bLevel != 0)
  #ifdef SPDIF_MODE_CHANGE_MUTE
      && (fgIsIecSwitching() == FALSE)
  #endif
  #ifdef PCM_FREQ_CHANGE_MUTE
      && (fgIsPcmFreqSwitching() == FALSE)
  #endif
     )
  {
    vNotifyDspSharedInfo(UOP_DSP_UNMUTE);
  }
#endif

  _rAudioCtrl.sVol.bCurVol = bLevel;

#ifdef VOL_ZERO_AS_MUTE
  if ((bLevel == 0)
  #ifdef SPDIF_MODE_CHANGE_MUTE
      && (fgIsIecSwitching() == FALSE)
  #endif
  #ifdef PCM_FREQ_CHANGE_MUTE
      && (fgIsPcmFreqSwitching() == FALSE)
  #endif
     )
  {
    vNotifyDspSharedInfo(UOP_DSP_RAW_MUTE);
  }
#endif

  if ((fgIsMute() == FALSE)
  #ifdef SPDIF_MODE_CHANGE_MUTE
      && (fgIsIecSwitching() == FALSE)
  #endif
  #ifdef PCM_FREQ_CHANGE_MUTE
      && (fgIsPcmFreqSwitching() == FALSE)
  #endif
     )
  {
    if (dwReadDspSharedDInfo(D_VOL) != VOLUME[bLevel])
    {
      vWriteDspSharedDInfo(D_VOL, VOLUME[bLevel]);
      vNotifyDspSharedInfo(UOP_DSP_MASTER_VOLUME);
    }
  }
}

// *********************************************************************
// Function :
// Description :
// Parameter :
// Return    :
// *********************************************************************
void vAdspMute(BOOL fgOnOff, BYTE bTime) large
{
  BYTE bIecMute = bReadDspSharedBInfo(B_IEC_MUTE);

  /* doing optional mute on/off control here */
  if (fgOnOff == ADSP_ON) /* mute on */
  {
    if (1
#ifdef SPDIF_MODE_CHANGE_MUTE
        && (fgIsIecSwitching() == FALSE)
#endif
#ifdef PCM_FREQ_CHANGE_MUTE
        && (fgIsPcmFreqSwitching() == FALSE)
#endif
       )
    {
#ifdef MUTE_KEY_MUTE_SPDIF
      vNotifyDspSharedInfo(UOP_DSP_RAW_MUTE);
#endif
#ifdef TRACE_WRONG_VOL
      vWriteDspSharedDInfo(D_VOL, 1);
#else
      vWriteDspSharedDInfo(D_VOL, 0);
#endif
      vNotifyDspSharedInfo(UOP_DSP_MASTER_VOLUME);
    } /* fgIsIecSwitching() == FALSE */

    if (bTime == 0)
    {
      _rAudioCtrl.sVol.fgIsMute = TRUE;
      vResetIecSwitching();
#ifdef PCM_FREQ_CHANGE_MUTE
      vResetPcmFreqSwitching();
#endif
    }
    else
    {
      if (fgIsIecSwitching() == FALSE)
      {
        _rAudioCtrl.sIEC.bState = AUD_IEC_SW_UNMUTE;
      }

      /* temp mute only, not really mute, don't change flag */
      if (bTime > _rAudioCtrl.sIEC.bCnt)
      {
        _rAudioCtrl.sIEC.bCnt = bTime;
      }
    }
  }
  else if (fgOnOff == ADSP_OFF) /* mute off */
  {
    _rAudioCtrl.sVol.fgIsMute = FALSE;

    if (1
#ifdef SPDIF_MODE_CHANGE_MUTE
        && (fgIsIecSwitching() == FALSE)
#endif
#ifdef PCM_FREQ_CHANGE_MUTE
        && (fgIsPcmFreqSwitching() == FALSE)
#endif
        )
    {
#ifdef MUTE_KEY_MUTE_SPDIF
    #ifdef VOL_ZERO_AS_MUTE
      if(_rAudioCtrl.sVol.bCurVol > 0)
    #endif
      {      
        vNotifyDspSharedInfo(UOP_DSP_UNMUTE);
      }
#endif // MUTE_KEY_MUTE_SPDIF
      vWriteDspSharedDInfo(D_VOL, VOLUME[_rAudioCtrl.sVol.bCurVol]);
      vNotifyDspSharedInfo(UOP_DSP_MASTER_VOLUME);
    }
  }
}

// *********************************************************************
// Function :
// Description :
// Parameter :
// Return    :
// *********************************************************************
void vAdspLR(BYTE bMode) large
{
  strucDspKaraFlag rTmp;
  BYTE bType;

  rTmp.Union.Byte = bReadDspSharedBInfo(B_KARAFLAG);

  rTmp.Union.Bit.VoiceCancel = FALSE;
  rTmp.Union.Bit.VocalAssist = FALSE;
  rTmp.Union.Bit.Reserve = 0;

  switch (bMode)
  {
    case AUDIO_MONO_LEFT:
      bType = LRMIX_LEFT_ONLY;
      rTmp.Union.Bit.LRMix = TRUE;
      break;

    case AUDIO_MONO_RIGHT:
      bType = LRMIX_RIGHT_ONLY;
      rTmp.Union.Bit.LRMix = TRUE;
      break;

    case AUDIO_MONO_MIXED:
      bType = LRMIX_BOTH;
      rTmp.Union.Bit.LRMix = TRUE;
      break;

    case AUDIO_STEREO:
    default:
      rTmp.Union.Bit.LRMix = FALSE;
      bMode = AUDIO_STEREO;
      break;
  } /* switch() */

  vWriteDspSharedBInfo(B_KARAFLAG, rTmp.Union.Byte);
  vNotifyDspSharedInfo(UOP_DSP_KARAOKE_FLAG);

  _rAudioCtrl.sVocal.bVocalMode = bMode;
  _rAudioCtrl.sVocal.fgVoiceCancel = FALSE;

  if (_rAudioCtrl.sVocal.bVocalMode != AUDIO_STEREO)
  {
    vWriteDspSharedDInfo(D_LRMIXRATIO, LRMIX[bType]);
    vNotifyDspSharedInfo(UOP_DSP_LR_MIX_RATIO);
  }
}

// *********************************************************************
// Function :
// Description :
// Parameter :
// Return    :
// *********************************************************************
void vAdspSpkDownmix(strucDownmixConfig rSpk) large
{
  strucDspSpkConfig rTmp;
//  BYTE bChanged;

  rTmp.Union.Dwrd = 0;

  switch (rSpk.Mode)
  {
    case DOWNMIX_OFF:
      rTmp.Union.Bit.Type = SPK_CFG_LR;
      _rAudioCtrl.sFlag.fgDownmixOn = FALSE;
      break;

    case DOWNMIX_LO_RO:
      rTmp.Union.Bit.Type = SPK_CFG_LR;
      _rAudioCtrl.sFlag.fgDownmixOn = TRUE;
      break;

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
中文字幕+乱码+中文字幕一区| 欧美视频一区二区在线观看| 99精品欧美一区二区蜜桃免费| 色天天综合久久久久综合片| 欧美男人的天堂一二区| 26uuu久久综合| 亚洲特黄一级片| 日本伊人精品一区二区三区观看方式| 九九精品视频在线看| 成人aaaa免费全部观看| 欧美日韩国产系列| 国产拍欧美日韩视频二区| 亚洲综合在线视频| 九九**精品视频免费播放| jizzjizzjizz欧美| 欧美一区二区日韩| 中文字幕不卡在线观看| 婷婷国产v国产偷v亚洲高清| 国产a视频精品免费观看| 欧美日韩国产综合一区二区三区| 久久久精品综合| 午夜视频在线观看一区二区 | 成人av在线播放网址| 欧美亚州韩日在线看免费版国语版| 日韩欧美一区在线观看| 一区在线观看视频| 久久精品国产一区二区| 色婷婷香蕉在线一区二区| 精品国产一区a| 亚洲风情在线资源站| 国产乱色国产精品免费视频| 欧美中文字幕一区二区三区亚洲| 久久久久久久久久久久久夜| 日韩中文欧美在线| 一本大道久久a久久综合婷婷| 精品蜜桃在线看| 五月激情六月综合| 99re6这里只有精品视频在线观看| 欧美mv日韩mv| 五月婷婷综合在线| 99精品国产热久久91蜜凸| 久久综合九色综合欧美就去吻 | 欧美在线一区二区三区| 久久精品亚洲麻豆av一区二区| 午夜国产精品影院在线观看| heyzo一本久久综合| 久久久精品综合| 美女视频一区在线观看| 欧美手机在线视频| 中文字幕亚洲在| 国产99一区视频免费 | 极品少妇一区二区| 欧美色大人视频| 亚洲精品少妇30p| 成人h精品动漫一区二区三区| 精品久久久久久久久久久院品网 | www.色精品| 国产亚洲一区二区三区在线观看| 日韩国产高清影视| 在线观看日韩av先锋影音电影院| 国产欧美1区2区3区| 国产一区二区电影| 精品伦理精品一区| 激情综合亚洲精品| 91国产视频在线观看| 亚洲视频在线一区二区| 成人一级片网址| 欧美国产成人精品| 成人高清视频在线| 国产精品久久久久国产精品日日 | 国产精品理论片| 国产精品1024久久| 久久久久久久久蜜桃| 国产麻豆视频精品| 久久精品一区八戒影视| 极品尤物av久久免费看| 精品国产百合女同互慰| 激情综合色播激情啊| 精品国产一区二区亚洲人成毛片| 精品亚洲成a人在线观看 | 成人av网站免费| 成人免费在线播放视频| 94-欧美-setu| 亚洲色大成网站www久久九九| 色婷婷激情一区二区三区| 亚洲精品菠萝久久久久久久| 色婷婷国产精品久久包臀| 亚洲综合另类小说| 337p亚洲精品色噜噜噜| 蜜臀av性久久久久蜜臀aⅴ| 欧美一卡2卡三卡4卡5免费| 久久国产人妖系列| 欧美国产日韩在线观看| 91视频一区二区三区| 亚洲一区在线电影| 欧美一区二区三区免费在线看 | 欧美日韩黄视频| 蜜臀av性久久久久蜜臀av麻豆| 精品国产免费视频| 国产91在线观看| 亚洲欧美另类在线| 欧美精品一二三| 久久91精品国产91久久小草| 国产人成亚洲第一网站在线播放| 成人午夜激情影院| 亚洲精品国产精华液| 欧美麻豆精品久久久久久| 九九国产精品视频| 亚洲欧美怡红院| 69久久99精品久久久久婷婷| 国产乱人伦精品一区二区在线观看| 国产精品久久久久毛片软件| 欧美性感一类影片在线播放| 91精品国产品国语在线不卡| 国产精品影视在线观看| 亚洲卡通动漫在线| 欧美狂野另类xxxxoooo| 国产精品一二三四| 一区二区三区在线视频免费| 欧美一区三区四区| 不卡一卡二卡三乱码免费网站| 亚洲主播在线观看| 久久一区二区三区四区| 欧美在线综合视频| 国产一区二区毛片| 亚洲高清视频的网址| 久久亚洲一区二区三区四区| 日本乱人伦一区| 国产在线精品免费av| 亚洲精品美腿丝袜| 久久久精品影视| 欧美丰满少妇xxxbbb| 99国产精品久| 激情小说欧美图片| 亚洲成人精品影院| 国产欧美一区二区精品秋霞影院 | 国产欧美精品一区二区三区四区 | 日本不卡免费在线视频| 国产精品国产三级国产专播品爱网| 8x福利精品第一导航| www.色精品| 激情综合色丁香一区二区| 亚洲综合小说图片| 中文天堂在线一区| 精品三级av在线| 欧美日韩国产中文| www.av精品| 国产在线国偷精品产拍免费yy| 亚洲一区av在线| 中文字幕国产一区| 精品国精品自拍自在线| 欧美女孩性生活视频| 色猫猫国产区一区二在线视频| 国产一二精品视频| 奇米影视一区二区三区| 亚洲国产欧美一区二区三区丁香婷| 国产女主播一区| 亚洲电影在线播放| 中文字幕欧美日韩一区| 欧美精品一区二| 日韩午夜av一区| 欧美日本乱大交xxxxx| 91网上在线视频| 成人app网站| 国产成人欧美日韩在线电影| 日韩高清在线不卡| 亚洲一区二区在线免费看| 亚洲欧洲日产国码二区| 国产欧美日韩在线观看| 欧美不卡一二三| 欧美一区二区三区公司| 欧美视频三区在线播放| 91国产丝袜在线播放| 91猫先生在线| 99精品视频在线免费观看| 国产91精品在线观看| 国产综合久久久久影院| 精品一区二区三区免费观看| 成人福利视频网站| 丰满白嫩尤物一区二区| 成人综合在线网站| 国产91色综合久久免费分享| 国产在线视频一区二区三区| 久久av中文字幕片| 国产专区欧美精品| 国产在线国偷精品免费看| 国产又黄又大久久| 国产福利精品导航| 成人看片黄a免费看在线| 成人激情免费网站| 99久久久精品| 欧美影院一区二区| 欧美精品第1页| 欧美va亚洲va国产综合| 精品国产伦一区二区三区观看体验 | 欧美色中文字幕| 欧美美女一区二区在线观看| 欧美一区午夜视频在线观看 | 国产一区二区主播在线| 国产91丝袜在线播放0|