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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? aud_ctrl.c

?? mtkDVD源代碼程序4*16 很好玩的內置5.1環繞音效 大家可以玩一下
?? C
?? 第 1 頁 / 共 5 頁
字號:
  {
    vWriteDspSharedDInfo(D_SPKCFG, rTmp.Union.Dwrd);
    vNotifyDspSharedInfo(UOP_DSP_CONFIG_SPEAKER);
  }
}

// *********************************************************************
// Function :
// Description :
// Parameter :
// Return    :
// *********************************************************************
static code DWRD dwChDelayUop[DELAY_CH_MAX] = {
  UOP_DSP_CONFIG_DELAY_C,
  UOP_DSP_CONFIG_DELAY_L,
  UOP_DSP_CONFIG_DELAY_R,
  UOP_DSP_CONFIG_DELAY_LS,
  UOP_DSP_CONFIG_DELAY_RS,
  UOP_DSP_CONFIG_DELAY_CB,
  UOP_DSP_CONFIG_DELAY_CH7,
  UOP_DSP_CONFIG_DELAY_SUBWOOFER
};

static code WORD wChDelayShare[DELAY_CH_MAX] = {
  W_CHDELAY_C,
  W_CHDELAY_L,
  W_CHDELAY_R,
  W_CHDELAY_LS,
  W_CHDELAY_RS,
  W_CHDELAY_CB,
  W_CHDELAY_CH7,
  W_CHDELAY_SUB
};

// bDelay is XX0cm, here
#if (defined(INPUT_STATE_KEY_TBL_KEEP) && defined(CHNL_DELAY_USE_TIME))
void vAdspChDelay(BYTE bChannel, BYTE bDelay) large
{
  if (bChannel >= DELAY_CH_MAX)
  {
    return;
  }

  if (bDelay > MAX_CH_DELAY_LEN * 2)
  {
    bDelay = MAX_CH_DELAY_LEN * 2;
  }

  vWriteDspSharedWInfo(wChDelayShare[bChannel], (WORD)(bDelay));
  vNotifyDspSharedInfo(dwChDelayUop[bChannel]);
}
#endif

// bTime is XX msec, here
#ifdef CHNL_DELAY_USE_TIME
void vAdspChDelayTime(BYTE bChannel, BYTE bTime) large
{
#if 0
  if (bChannel >= DELAY_CH_MAX)
  {
    return;
  }

  /* 340m/sec => 34cm/ms ~= 7*5cm */
  if (bTime > ((BYTE)(MAX_CH_DELAY_LEN / 7)))
  {
    bTime = MAX_CH_DELAY_LEN;
  }
  else
  {
    bTime  = bTime * 7;
  }

  vWriteDspSharedWInfo(wChDelayShare[bChannel], (WORD)(bTime));
  vNotifyDspSharedInfo(dwChDelayUop[bChannel]);
#endif

  BYTE bDelay;
  /* 1sec => 340m => 34000cm */
  bDelay = (BYTE) (((WORD)(34*bTime))/5);

  vAdspChDelay(bChannel, bDelay);

}
#endif /* CHNL_DELAY_USE_TIME */

#ifdef PLAYER_TRIM
// *********************************************************************
// Function :
// Description :
// Parameter :
// Return    :
// *********************************************************************
static code DWRD dwChTrimUop[TRIM_CH_MAX] = {
  UOP_DSP_TRIM_C,
  UOP_DSP_TRIM_L,
  UOP_DSP_TRIM_R,
  UOP_DSP_TRIM_LS,
  UOP_DSP_TRIM_RS,
  UOP_DSP_TRIM_CB,
  UOP_DSP_TRIM_CH7,
  UOP_DSP_TRIM_SUBWOOFER,
  UOP_DSP_LFE_LEVEL
};

static code WORD wChTrimShare[TRIM_CH_MAX] = {
  D_TRIM_C,
  D_TRIM_L,
  D_TRIM_R,
  D_TRIM_LS,
  D_TRIM_RS,
  D_TRIM_CB,
  D_TRIM_CH7,
  D_TRIM_SUB,
  D_TRIM_LFE
};

void vAdspChTrim(BYTE bChannel, BYTE bLevel) large
{
  if (bChannel >= TRIM_CH_MAX)
  {
    return;
  }

  if (bLevel >= TRIM_LEVEL_MAX)
  {
    bLevel = TRIM_LEVEL_MAX - 1;
  }

  vWriteDspSharedDInfo(wChTrimShare[bChannel], TRIM[bLevel]);
  vNotifyDspSharedInfo(dwChTrimUop[bChannel]);
}

#endif /* PLAYER_TRIM */

// *********************************************************************
// Function :
// Description :
// Parameter :
// Return    :
// *********************************************************************
#if 0 //uncall
void vAdspDialogGain(BYTE bLevel) large
{
  if (bLevel >= TRIM_LEVEL_MAX)
  {
    bLevel = TRIM_LEVEL_MAX - 1;
  }

  vWriteDspSharedDInfo(D_DIALOGUE, TRIM[bLevel]);
  vNotifyDspSharedInfo(UOP_DSP_DIALOGUE_GAIN);
}
#endif /* uncall */

#endif /* not TWO_CHANNEL_ONLY */

// *********************************************************************
// Function :
// Description :
// Parameter :
// Return    :
// *********************************************************************
void vAdspVocalAssist(BYTE bMode) large
{
  strucDspKaraFlag rTmp1;
  WORD wTmp2;

  rTmp1.Union.Byte = bReadDspSharedBInfo(B_KARAFLAG);
  rTmp1.Union.Bit.Reserve = 0;

  if (_rAudioCtrl.sEcho.fgMic == TRUE)
  {
    wTmp2 = DSP_AC3_KARA_AWARE;
  }
  else
  {
    wTmp2 = DSP_AC3_KARA_DISABLE;
  }

  /* reset to default value first */
  _rAudioCtrl.sVocal.fgVoiceCancel = FALSE;
  rTmp1.Union.Bit.VoiceCancel = FALSE;
  rTmp1.Union.Bit.LRMix = FALSE;

  switch (bMode)
  {
    case VOCAL_VOICE_CANCEL:
      _rAudioCtrl.sVocal.fgVoiceCancel = TRUE;
#ifdef VOCAL_ASSIST_MIC_CNT
      rTmp1.Union.Bit.VoiceCancel = FALSE;
      rTmp1.Union.Bit.VocalAssist = FALSE;
#else
      rTmp1.Union.Bit.VoiceCancel = TRUE;
      rTmp1.Union.Bit.VocalAssist = TRUE;
#endif
      break;

    case VOCAL_LEFT:
      rTmp1.Union.Bit.LRMix = TRUE;
      rTmp1.Union.Bit.VoiceCancel = FALSE;
#ifdef VOCAL_ASSIST_MIC_CNT
      rTmp1.Union.Bit.VocalAssist = FALSE;
#else
      rTmp1.Union.Bit.VocalAssist = TRUE;
#endif
      break;

    case VOCAL_RIGHT:
      rTmp1.Union.Bit.LRMix = TRUE;
      rTmp1.Union.Bit.VoiceCancel = FALSE;
#ifdef VOCAL_ASSIST_MIC_CNT
      rTmp1.Union.Bit.VocalAssist = FALSE;
#else
      rTmp1.Union.Bit.VocalAssist = TRUE;
#endif
      break;

    case VOCAL_AUDIO1:
      rTmp1.Union.Bit.VoiceCancel = FALSE;
      rTmp1.Union.Bit.VocalAssist = FALSE;
      break;

    case VOCAL_AUDIO2:
      rTmp1.Union.Bit.VoiceCancel = FALSE;
      rTmp1.Union.Bit.VocalAssist = FALSE;
      break;

    case VOCAL_NONE:
      rTmp1.Union.Bit.VoiceCancel = FALSE;
      rTmp1.Union.Bit.VocalAssist = FALSE;
      wTmp2 = DSP_AC3_KARA_NONE;
      break;

    case VOCAL_V1:
      rTmp1.Union.Bit.VoiceCancel = FALSE;
      rTmp1.Union.Bit.VocalAssist = FALSE;
      wTmp2 = DSP_AC3_KARA_V1;
      break;

    case VOCAL_V2:
      rTmp1.Union.Bit.VoiceCancel = FALSE;
      rTmp1.Union.Bit.VocalAssist = FALSE;
      wTmp2 = DSP_AC3_KARA_V2;
      break;

    case VOCAL_BOTH:
      rTmp1.Union.Bit.VoiceCancel = FALSE;
      rTmp1.Union.Bit.VocalAssist = FALSE;
      wTmp2 = DSP_AC3_KARA_BOTH;
      break;

    case VOCAL_NO_ASSIST:
    default:
      _rAudioCtrl.sVocal.fgVoiceCancel = FALSE;
      rTmp1.Union.Bit.VocalAssist = FALSE;
      rTmp1.Union.Bit.VoiceCancel = FALSE;
#ifdef AC3_KARA_MODE
      wTmp2 = DSP_AC3_KARA_BOTH;
#else
      wTmp2 = DSP_AC3_KARA_AWARE;
#endif      
      bMode = VOCAL_NO_ASSIST;
      break;
  }

  /* set the internal flag */
  if (bMode == VOCAL_NO_ASSIST)
  {
    _rAudioCtrl.sFlag.fgVocalAssist = FALSE;
  }
  else
  {
    _rAudioCtrl.sFlag.fgVocalAssist = TRUE;
  }

  _rAudioCtrl.sVocal.bVocalMode = bMode;

#ifdef VOCAL_ASSIST_MIC_CNT
  _rAudioCtrl.sVocal.fgMicActive = FALSE;
  _rAudioCtrl.sVocal.bMicCnt = 0;
#endif

  /* notify the ADSP */
  if (bReadDspSharedBInfo(B_KARAFLAG) != rTmp1.Union.Byte)
  {
    vWriteDspSharedBInfo(B_KARAFLAG, rTmp1.Union.Byte);
    vNotifyDspSharedInfo(UOP_DSP_KARAOKE_FLAG);
  }

  if (_rAudioCtrl.sVocal.fgMelody == FALSE)
  {
    wTmp2 |= DSP_AC3_NO_MELODY;
  }

  if (wReadDspSharedWInfo(W_AC3KARAMOD) != wTmp2)
  {
#ifdef RS232_LOG
   DBGLogS(" write DSP shared  ");
   DBGLogB(bHiByte(wTmp2),bLoByte(wTmp2),0xff,0xff);
   DBGLogS("\n");
#endif    
    vWriteDspSharedWInfo(W_AC3KARAMOD, wTmp2);
    vNotifyDspSharedInfo(UOP_DSP_AC3_KARAOKE_MODE);
  }
}
// *********************************************************************
// Function : void vAdspKaraLR(BYTE bMode)
// Description :
// Parameter :
// Return    :
// *********************************************************************
void vAdspKaraLR(BYTE bMode) large
{
  BYTE bLevel;
#ifdef VOCAL_ASSIST_MIC_CNT
  strucDspKaraFlag rTmp;
#endif

  if (bMode == KARA_LEFT)
  {
    bLevel = LRMIX_LEFT_ONLY;
  }
  else if (bMode == KARA_RIGHT)
  {
    bLevel = LRMIX_RIGHT_ONLY;
  }
#ifdef VOCAL_ASSIST_MIC_CNT
  else if (bMode == KARA_STEREO)
  {
    rTmp.Union.Byte = bReadDspSharedBInfo(B_KARAFLAG);
    rTmp.Union.Bit.LRMix = FALSE;
    vWriteDspSharedBInfo(B_KARAFLAG, rTmp.Union.Byte);
    vNotifyDspSharedInfo(UOP_DSP_KARAOKE_FLAG);    
    return;
  }
#endif /* VOCAL_ASSIST_MIC_CNT */
  else
  {
    return;
  }

  _rAudioCtrl.bKaraMixRatioLR = bLevel;

  if (fgIsVocalAssistOn())
  {
    vWriteDspSharedDInfo(D_LRMIXRATIO, LRMIX[bLevel]);
    vNotifyDspSharedInfo(UOP_DSP_LR_MIX_RATIO);

  #ifdef VOCAL_ASSIST_MIC_CNT /* if the state is not sync */
    rTmp.Union.Byte = bReadDspSharedBInfo(B_KARAFLAG);
    rTmp.Union.Bit.LRMix = TRUE;
    rTmp.Union.Bit.VoiceCancel = FALSE;
    rTmp.Union.Bit.VocalAssist = FALSE;
    rTmp.Union.Bit.Reserve = 0;

    if (bReadDspSharedBInfo(B_KARAFLAG) != rTmp.Union.Byte)
    {
      vWriteDspSharedBInfo(B_KARAFLAG, rTmp.Union.Byte);
      vNotifyDspSharedInfo(UOP_DSP_KARAOKE_FLAG);
    }
  #endif /* VOCAL_ASSIST_MIC_CNT */
  }
}

#ifdef PLAYER_KARAOKE
// *********************************************************************
// Function :
// Description :
// Parameter :
// Return    :
// *********************************************************************
void vAdspKaraMode(BYTE bMode) large
{
  /* note: the ADSP will clear its buffer automatically, so no need to mute first */

  /* TODO: restore vocal asssit and LR mix setting */
  /* TODO: if set to karaoke mode and SPDIF is on, should we force to PCM output? */
  strucDspMicFlag rTmp;
  BYTE bChange;

  bChange = FALSE;

  rTmp.Union.Byte = bReadDspSharedBInfo(B_MPFLAG);
  rTmp.Union.Bit.Reserve = 0;

  if (bMode == KARA_MODE_ENABLE)
  {
    _rAudioCtrl.sFlag.fgKaraMode = TRUE;
    _rAudioCtrl.sEcho.fgMic = TRUE;

    if (rTmp.Union.Bit.On != TRUE)
    {
      rTmp.Union.Bit.On = TRUE;
      bChange = TRUE;
    }

    /* set to two channel downmix mode */
  }
  else
  {
    _rAudioCtrl.sFlag.fgKaraMode = FALSE;
    _rAudioCtrl.sEcho.fgMic = FALSE;

    if (rTmp.Union.Bit.On != FALSE)
    {
      rTmp.Union.Bit.On = FALSE;
      bChange = TRUE;
    }

    /* restore the channel config is needed */
  }

#ifdef VOCAL_ASSIST_MIC_CNT
  _rAudioCtrl.sVocal.fgMicActive = FALSE;
  _rAudioCtrl.sVocal.bMicCnt = 0;
#endif

  #ifdef KARA_FORCE_SPDIF_PCM
  if ((_rAudioCtrl.sIEC.bFormat == SPDIF_FLAG_RAW) && (_rAudioCtrl.sFlag.fgSpdifOn == TRUE))
  {
    if (bMode == KARA_MODE_ENABLE)
    {
      /* set to PCM mode */
      vWriteDspSharedBInfo(B_IECFLAG, SPDIF_FLAG_PCM);
      vNotifyDspSharedInfo(UOP_DSP_IEC_FLAG);
    }
    else
    {
      /* restore to RAW mode */
      vWriteDspSharedBInfo(B_IECFLAG, SPDIF_FLAG_RAW);
      vNotifyDspSharedInfo(UOP_DSP_IEC_FLAG);
    }
  }
  #endif

  if (bChange)
  {
    vWriteDspSharedBInfo(B_MPFLAG, rTmp.Union.Byte);

  #ifdef MIC_AUTOMUTE
    /* after microphone switch, always set microphone mix off */
    vWriteDspSharedWInfo(B_MP_CHMIX, 0);

    _rAudioCtrl.bMicAutomuteCnt = MIC_AUTOMUTE_ON_CNT;
  #endif
  
    vNotifyDspSharedInfo(UOP_DSP_MICROPHONE_FLAG);
  }
}

// *********************************************************************
// Function :
// Description :
// Parameter :
// Return    :
// *********************************************************************
void vAdspSetMicEq(BYTE bMode) large
{
  strucDspMicFlag rTmp;

  rTmp.Union.Byte = bReadDspSharedBInfo(B_MPFLAG);
  rTmp.Union.Bit.Reserve = 0;

  if (bMode == ADSP_ON)
  {
    rTmp.Union.Bit.Eq = TRUE;
    /* set to two channel downmix mode */
  }
  else
  {
    rTmp.Union.Bit.Eq = FALSE;
    /* restore the channel config is needed */
  }

  vWriteDspSharedBInfo(B_MPFLAG, rTmp.Union.Byte);
  vNotifyDspSharedInfo(UOP_DSP_MICROPHONE_FLAG);
}



#ifdef VOCAL_ASSIST_MIC_CNT
// *********************************************************************
// Function : void vAdspKaraVC(BOOL fgOn)
// Description :
// Parameter :
// Return    :
// *********************************************************************
void vAdspKaraVC(BOOL fgOn) large
{
  strucDspKaraFlag rTmp1;

  rTmp1.Union.Byte = bReadDspSharedBInfo(B_KARAFLAG);

  if (rTmp1.Union.Bit.VoiceCancel != fgOn)
  {
    rTmp1.Union.Bit.VoiceCancel = fgOn;

    /* notify the ADSP */
    vWriteDspSharedBInfo(B_KARAFLAG, rTmp1.Union.Byte);
    vNotifyDspSharedInfo(UOP_DSP_KARAOKE_FLAG);
  }
}
#endif /* VOCAL_ASSIST_MIC_CNT */



#ifdef AC3_KARA_MODE
  #ifdef AC3_KARA_MELODY
// *********************************************************************
// Function : void vAdspKaraMelody(BOOL fgOn)
// Description :
// Parameter :
// Return    :
// *********************************************************************
void vAdspKaraMelody(BOOL fgOn) large
{
  WORD wTmp1 = wReadDspSharedWInfo(W_AC3KARAMOD);

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲一区成人在线| 欧美日本精品一区二区三区| 国内精品在线播放| 久久不见久久见中文字幕免费| 日韩国产高清在线| 精品一区二区综合| 豆国产96在线|亚洲| 2024国产精品| 日本亚洲三级在线| 日本在线不卡一区| 久久久蜜桃精品| 国产一区二区电影| 久久久久久久av麻豆果冻| 91在线免费视频观看| 成人在线视频一区| 欧美剧情片在线观看| 国产人伦精品一区二区| 欧美xxxxxxxx| 中文字幕乱码日本亚洲一区二区| www成人在线观看| 亚洲国产精品99久久久久久久久| 色综合视频一区二区三区高清| 欧美日韩国产片| 91在线视频播放| 91免费在线看| 久久精品视频网| 麻豆精品一区二区综合av| 北条麻妃一区二区三区| 精品日产卡一卡二卡麻豆| 午夜av区久久| 欧美一级黄色片| 九九在线精品视频| 97超碰欧美中文字幕| 国产精品嫩草99a| av色综合久久天堂av综合| 欧美视频三区在线播放| 国产精品美女久久久久久| 成人短视频下载| 亚洲视频一二区| 欧美三级电影网站| 美女久久久精品| 国产网红主播福利一区二区| 国产成人精品1024| 中文字幕日韩一区| 欧美精品一区二区三区在线播放| 国产欧美精品一区二区三区四区| 成人午夜视频在线观看| 亚洲欧美视频一区| 欧美一区二区三区在线观看视频| 精品一区二区国语对白| 国产精品亲子伦对白| 色94色欧美sute亚洲13| 日韩电影一区二区三区| 国产三级一区二区三区| av电影在线观看一区| 亚洲视频中文字幕| 91麻豆精品国产91久久久久| 九九**精品视频免费播放| 国产精品免费人成网站| 欧美xxxx在线观看| 色综合久久六月婷婷中文字幕| 亚洲伊人色欲综合网| 国产欧美日韩卡一| 欧美激情一区二区三区蜜桃视频| 亚洲欧洲成人自拍| 欧美日韩亚洲综合| 99视频精品免费视频| 久久成人精品无人区| 亚洲午夜免费福利视频| 欧美肥大bbwbbw高潮| 色欧美88888久久久久久影院| 精品一区二区成人精品| 日产国产高清一区二区三区| 亚洲第一主播视频| 91亚洲精品一区二区乱码| 亚洲第一激情av| 亚洲成人三级小说| 亚洲自拍偷拍九九九| 亚洲人123区| 一区免费观看视频| 亚洲精品视频一区| 日韩一区中文字幕| 日韩美女精品在线| 一区二区在线免费| 欧美高清你懂得| 国产美女在线精品| 国产乱码精品1区2区3区| 麻豆91精品91久久久的内涵| 老司机午夜精品| 国产成人av电影| 欧美日韩综合色| 日韩美女在线视频| 精品国产乱码久久久久久1区2区| 欧美精品一区二区久久久| 国产亚洲欧美日韩在线一区| 亚洲欧洲精品成人久久奇米网| 日韩精品一区国产麻豆| 国产欧美日韩卡一| 日韩精品电影一区亚洲| 激情综合色播五月| 欧美日韩在线精品一区二区三区激情| 在线播放欧美女士性生活| 精品嫩草影院久久| 亚洲图片自拍偷拍| 成人污污视频在线观看| 精品国产免费久久| 亚洲欧洲av一区二区三区久久| 午夜精品福利久久久| 成人午夜视频网站| 欧美色综合影院| 日韩限制级电影在线观看| 欧美日韩国产a| 中文字幕成人网| 久久99精品久久久久久动态图 | 国产精品一区不卡| 欧美精品v日韩精品v韩国精品v| 国产欧美视频在线观看| 欧美猛男男办公室激情| 欧美一区午夜精品| 亚洲一区二区欧美日韩| 成人美女视频在线观看| 久久综合色一综合色88| 蜜桃视频在线观看一区二区| 精品视频在线视频| 亚洲国产欧美一区二区三区丁香婷| 国产精品18久久久久久vr| 欧美一区二区视频免费观看| 亚洲国产欧美一区二区三区丁香婷| 99久久综合99久久综合网站| 亚洲精品中文在线观看| 日本v片在线高清不卡在线观看| 欧美系列一区二区| 日韩精品免费专区| 精品久久久久久无| 成人免费视频app| 亚洲综合激情小说| 日韩精品一区二区三区四区| 精品亚洲免费视频| 国产精品灌醉下药二区| 91麻豆福利精品推荐| 污片在线观看一区二区| 一区二区三区四区在线| 国产高清成人在线| 亚洲一区中文日韩| 久久九九久精品国产免费直播| 懂色一区二区三区免费观看| 香蕉加勒比综合久久| 国产精品免费视频一区| 91麻豆精品国产自产在线观看一区 | 国产最新精品精品你懂的| 国产精品免费视频一区| 日韩亚洲欧美在线| 日本韩国一区二区| 成人激情电影免费在线观看| 蜜臀91精品一区二区三区| 亚洲精品国产精华液| 国产精品五月天| 99久久婷婷国产综合精品电影| 亚洲自拍偷拍麻豆| 又紧又大又爽精品一区二区| 国产欧美日韩亚州综合| 91精品国产色综合久久不卡蜜臀| 99精品欧美一区| 成人性视频免费网站| 国产伦精品一区二区三区免费迷 | 国产清纯白嫩初高生在线观看91| 欧美福利电影网| 日韩一区在线看| 8x8x8国产精品| 91麻豆精品在线观看| 色婷婷狠狠综合| 国产成人亚洲综合a∨婷婷| 男男gaygay亚洲| 午夜久久电影网| 亚洲成在线观看| 国模冰冰炮一区二区| 色激情天天射综合网| 日韩午夜电影av| 亚洲一本大道在线| 成人丝袜18视频在线观看| 欧美裸体bbwbbwbbw| 亚洲丝袜自拍清纯另类| 国产精品一二三四五| 欧美午夜一区二区三区| 日本一区二区三区国色天香| 秋霞午夜av一区二区三区| 91首页免费视频| 国产精品免费观看视频| 国产激情视频一区二区在线观看 | 久久综合九色综合97_久久久| 国产日韩欧美a| 色94色欧美sute亚洲线路一久| 精品福利av导航| 裸体一区二区三区| 欧美日韩国产综合一区二区| 国产精品久久久久久亚洲伦| 国产酒店精品激情| 国产午夜精品一区二区三区四区| 久久69国产一区二区蜜臀| 日韩欧美aaaaaa|