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

📄 play_com.c

📁 MTK 1389E SOURCE CODE
💻 C
📖 第 1 页 / 共 5 页
字号:
}
#endif /* SUPPORT_CAPTURE_LOGO */



#ifdef SUPPORT_VOLUME_ADJUST
BOOL fgCOMVolumeUpKey(void) large
{
  BOOL fgFromMute = FALSE;
  BYTE bVal = bAdspCurrVol();

#ifdef MUTE_NO_VOL_KEY
  if (fgIsMute()) /* if mute on */
  {
    return (UOP_FAIL);
  }
#endif

  if (bVal < MAX_VOL_LEVEL)
  {
    bVal ++;
  }

  /* change volume level first */
  vAdspVolume(bVal);

  if (fgIsMute()) /* if mute on */
  {
    fgFromMute = TRUE;
    /* turn mute off first */
    vAdspMute(ADSP_OFF, 0);
    vOsdShowMute(OSD_MUTE_OFF);
  }

#ifdef PLAYER_FLMENU
  if (fgFlCheckStatus(FL_STATUS_IN_MENU))
  {
    if (fgFromMute)
      vFlIpShowInfo(IP_INFO_VOLUME, bVal, FLIP_VOLUME_REDRAW);
    else
      vFlIpShowInfo(IP_INFO_VOLUME, bVal, FLIP_VOLUME_UP);
  }
  else
#endif /* PLAYER_FLMENU */
  {
    vOsdShowVol(bVal, OSD_TIMEOUT);
  }

  vOsdCoreSetAudioStatus(OSD_AUDIO_SHOW_CLEAR, 0);

  _bIRKey = IR_NONE;
  return (UOP_OK);
}

BOOL fgCOMVolumeDownKey(void) large
{
  BYTE fgFromMute = FALSE;
  BYTE bVal = bAdspCurrVol();

#ifdef MUTE_NO_VOL_KEY
  if (fgIsMute()) /* if mute on */
  {
    return (UOP_FAIL);
  }
#endif

  if (bVal > MIN_VOL_LEVEL)
  {
    bVal --;
  }

  /* change volume level first */
  vAdspVolume(bVal);

  if (fgIsMute()) /* if mute on */
  {
    fgFromMute = TRUE;
    /* turn mute off first */
    vAdspMute(ADSP_OFF, 0);
    vOsdShowMute(OSD_MUTE_OFF);
  }

#ifdef PLAYER_FLMENU
  if (fgFlCheckStatus(FL_STATUS_IN_MENU))
  {
    if (fgFromMute)
      vFlIpShowInfo(IP_INFO_VOLUME, bVal, FLIP_VOLUME_REDRAW);
    else
      vFlIpShowInfo(IP_INFO_VOLUME, bVal, FLIP_VOLUME_DOWN);
  }
  else
#endif /* PLAYER_FLMENU */
  {
    vOsdShowVol(bVal, OSD_TIMEOUT);
  }

  vOsdCoreSetAudioStatus(OSD_AUDIO_SHOW_CLEAR, 0);

  _bIRKey = IR_NONE;
  return (UOP_OK);
}

#if 1 //#ifndef SUPPORT_DRM
BOOL fgCOMMuteKey(void) large
{
  if (fgIsMute()) // mute off
  {
    vAdspMute(ADSP_OFF, 0);
    vOsdShowMute(OSD_MUTE_OFF);
  }
  else // mute on
  {
    vAdspMute(ADSP_ON, 0);
    vOsdShowMute(OSD_MUTE_ON);
  }

  _bIRKey = IR_NONE;
  return (UOP_OK);
}
#else
BOOL fgCOMMuteKey(void) large
{
   vDRMRegCodeKey();
   _bIRKey = IR_NONE;
  return (UOP_OK);
}
#endif

#endif

BOOL fgCOMKaraokeKey(void) large
{
#ifdef PLAYER_KARAOKE
   if (fgIsKaraMode())
   {
      fgEepromWriteByte(MIC_SW_POS, EV_OFF);
      bSetMic(NULL_POSITION, 0);
      vOsdShowEchoLevel(OSD_MIC_OFF);
   }
   else /* not in karaoke mode */
   {
      fgEepromWriteByte(MIC_SW_POS, EV_ON);
      bSetMic(NULL_POSITION, 0);
      vOsdShowEchoLevel(OSD_MIC_ON);
   }
#endif /* PLAYER_KARAOKE */

  _bIRKey = IR_NONE;
  return (UOP_OK);
}

#ifdef PLAYER_SURROUND
BOOL fgCOMSurroundKey(void) large
{
#ifdef N22_CERTIFICATION
  if (bEepromReadByte(SPEAKER_POSITION) == EV_DOWN_N22)
  {
    fgEepromWriteByte(SPEAKER_POSITION, EV_DOWN_OFF);
    //clear message
    vOsdPosShow(OSD_POS_AUD_CTRL, OSD_MSG_SPATIALIZER_N22, 1);
  }
  else
  {
    fgEepromWriteByte(SPEAKER_POSITION, EV_DOWN_N22);
    vOsdPosShow(OSD_POS_AUD_CTRL, OSD_MSG_SPATIALIZER_N22, OSD_NO_DISAPPEAR);
  }
  bSpkConfig(NULL_POSITION, 0);
#elif (defined(PLAYER_SURROUND))
  BYTE bType;
  BYTE bDiscType = bSharedInfo(SI_DISC_TYPE);

  if (fgIsNonPlay())
  {
    _bIRKey = IR_NONE;
    return (UOP_OK);
  }
  else if (fgIsDvdPlay() || (bDiscType == SV_DTS_CS)) // multi-channel use equalizer
  {
    bType = bEepromReadByte(EQ_PRESET_POS) + 1;

    if (bType >= AUD_EQ_TYPE_MAX)
    {
      bType = AUD_EQ_TYPE_NONE;
    }

    fgEepromWriteByte(EQ_PRESET_POS, bType);

    bSetEqPreset(NULL_POSITION, 0);
    vOsdShowSurrType(bType, OSD_POS_AUD_CTRL);
  }
#ifdef VCD_SUPPORT
  else /*  if (fgIsVcdPlay() || fgIsCddaPlay()) */ // use Reverb
  {
    bType = bEepromReadByte(REVERB_MD_POS) + 1;

    if (bType > AUD_REVERB_MODE_MAX)
    {
      bType = 0;
    }

    fgEepromWriteByte(REVERB_MD_POS, bType);

    bSetReverbMd(REVERB_MD_POS, bType);
    vOsdShowReverbType(bType, OSD_POS_AUD_CTRL);
  }
#endif
#endif /* PLAYER_SURROUND */

  _bIRKey = IR_NONE;
  return (UOP_OK);
}
#endif

#ifdef PLAYER_KARAOKE
static code const WORD wVocalAssistMsg[VOACL_TYPE_MAX] = {
  OSD_MSG_NO_VOCAL_ASSIST,
  OSD_MSG_VOICE_CANCEL,
  OSD_MSG_LEFT_VOCAL,
  OSD_MSG_RIGHT_VOCAL,
  OSD_MSG_AUDIO_1_VOCAL,
  OSD_MSG_AUDIO_2_VOCAL,
  OSD_MSG_NO_VOCAL,
  OSD_MSG_VOCAL_1,
  OSD_MSG_VOCAL_2,
  OSD_MSG_BOTH_VOCAL
};
#undef VOCAL_ASSIST_STREAM_CHANGE
BOOL fgCOMVocalAssistKey(void) large
{
  BYTE bTmp1, bTmp2;
  BYTE bType = bAdspCurrVocal();

  if (fgIsDvdPlay())
  {
    bTmp1 = bSharedInfo(SI_A_CODE_MODE);
    bTmp2 = bSharedInfo(SI_A_APPL_MODE);

    switch (bType)
    {
      case VOCAL_NO_ASSIST:
        bType = VOCAL_VOICE_CANCEL;
        break;

      case VOCAL_VOICE_CANCEL:
  #ifdef VOCAL_ASSIST_STREAM_CHANGE
        if (bSharedInfo(SI_AST_NS) >= 2)
        {
          bType = VOCAL_AUDIO1;
        }
        else
  #endif /* VOCAL_ASSIST_STREAM_CHANGE */
  #ifdef AC3_KARA_MODE
        if ((bTmp1 == SV_A_CODE_AC3) && (bTmp2 == SV_A_APPL_KARA))
        {
          bType = VOCAL_NONE;
        }
        else
  #endif /* AC3_KARA_MODE */
        {
          bType = VOCAL_NO_ASSIST;
        }
        break;
  #ifdef VOCAL_ASSIST_STREAM_CHANGE
      case VOCAL_AUDIO1:
        bType = VOCAL_AUDIO2;
        break;

      case VOCAL_AUDIO2:
  #ifdef AC3_KARA_MODE
        if ((bTmp1 == SV_A_CODE_AC3) && (bTmp2 == SV_A_APPL_KARA))
        {
          bType = VOCAL_NONE;
        }
        else
  #endif /* AC3_KARA_MODE */
        {
          bType = VOCAL_NO_ASSIST;
        }
        break;
#endif
  #ifdef AC3_KARA_MODE
      case VOCAL_NONE:
        bType = VOCAL_V1;
        break;

      case VOCAL_V1:
        bType = VOCAL_V2;
        break;

      case VOCAL_V2:
        bType = VOCAL_BOTH;
        break;

      case VOCAL_BOTH:
        bType = VOCAL_NO_ASSIST;
        break;
  #endif /* AC3_KARA_MODE */

      default:
        bType = VOCAL_NO_ASSIST;
        break;
    } /* switch() */
  } /* fgIsDvdPlay() */
#ifdef VCD_SUPPORT
  else if (fgIsVcdPlay() || fgIsCddaPlay())
  {
    bTmp1 = bSharedInfo(SI_DISC_TYPE);

    if (IS_SVCD_TYPE(bTmp1))
    {
      switch (bType)
      {
        case VOCAL_NO_ASSIST:
          bType = VOCAL_VOICE_CANCEL;
          break;

        case VOCAL_VOICE_CANCEL:
  #ifdef VOCAL_ASSIST_STREAM_CHANGE
          bType = VOCAL_AUDIO1;
  #else
          bType = VOCAL_NO_ASSIST;
  #endif
          break;
  #ifdef VOCAL_ASSIST_STREAM_CHANGE

        case VOCAL_AUDIO1:
          bType = VOCAL_AUDIO2;
          break;

        case VOCAL_AUDIO2:
#endif          
        default:
          bType = VOCAL_NO_ASSIST;
          break;
      } /* switch() */
    }
    else /* VCD/CDDA */
    {
      switch (bType)
      {
        case VOCAL_NO_ASSIST:
          bType = VOCAL_VOICE_CANCEL;
          break;

        case VOCAL_VOICE_CANCEL:
          bType = VOCAL_LEFT;
          vAdspKaraLR(KARA_LEFT); /* switch to L channel first */
          break;

        case VOCAL_LEFT:
          bType = VOCAL_RIGHT;
          vAdspKaraLR(KARA_RIGHT); /* switch to R channel first */
          break;

        case VOCAL_RIGHT:
        default:
          bType = VOCAL_NO_ASSIST;
          break;
      } /* switch() */
    }
  } /* fgIsVcdPlay() */
#endif

  vAdspVocalAssist(bType);

#ifdef VOCAL_ASSIST_STREAM_CHANGE
  bTmp1 = bSharedInfo(SI_AST_NO);

  if (bType == VOCAL_AUDIO1)
  {
    _fgVocalOn = TRUE;
    if (bTmp1 != 0)
    {
      if (fgIsDvdPlay())
      {
        vSendUopCmd(UOP_CHANGE_ASTN, 0, SV_AUDIO_MASTER, SV_UOP_FORCE);
      }
      else
      {
        /*if (IS_SVCD_TYPE(bSharedInfo(SI_DISC_TYPE)))
        {
          vSetSharedInfo(SI_AST_NO, 0);
          vNotifySharedInfo(SI_AST_NO, 0, 0);
        }
        else*/
        {
          vSendUopCmd(UOP_CHANGE_ASTN, 0, 0, 0);
        }
      }
    }
  }
  else if (bType == VOCAL_AUDIO2)
  {
    _fgVocalOn = TRUE;
    if (bTmp1 != 1)
    {
      if (fgIsDvdPlay())
      {
        vSendUopCmd(UOP_CHANGE_ASTN, 1, SV_AUDIO_MASTER, SV_UOP_FORCE);
      }
      else
      {
        /*if (IS_SVCD_TYPE(bSharedInfo(SI_DISC_TYPE)))
        {
          vSetSharedInfo(SI_AST_NO, 1);
          vNotifySharedInfo(SI_AST_NO, 0, 0);
        }
        else*/
        {
          vSendUopCmd(UOP_CHANGE_ASTN, 1, 0, 0);
        }
      }
    }
  }
  else
#endif

#ifdef VOCAL_ASSIST_MIC_CNT
  if ((bType == VOCAL_VOICE_CANCEL) ||
           (bType == VOCAL_LEFT) || (bType == VOCAL_RIGHT))
  {
    _fgVocalOn = TRUE;
  }
#endif
  else
  {
    _fgVocalOn = FALSE;
  }

  vOsdPosShow(OSD_POS_NORMAL, wVocalAssistMsg[bType], OSD_TIMEOUT);

  _bIRKey = IR_NONE;
  return (UOP_OK);
}

#else /* not define PLAYER_KARAOKE */

BOOL fgCOMVocalAssistKey(void) large
{
  BYTE bMode = bAdspCurrVocal();

  #if 0
  if (fgIsDvdPlay())
  {
    vOsdShowError(SV_ERR_DISC_NOT_SUPPORT, OSD_TIMEOUT_SHORT);
    _bIRKey = IR_NONE;
    return (UOP_OK);
  }
  #endif

  switch (bMode)
  {
    case AUDIO_STEREO:
      bMode = AUDIO_MONO_LEFT;
      break;

    case AUDIO_MONO_LEFT:
      bMode = AUDIO_MONO_RIGHT;
      break;

    case AUDIO_MONO_RIGHT:
      bMode = AUDIO_MONO_MIXED;
      break;

    case AUDIO_MONO_MIXED:
    default:
      bMode = AUDIO_STEREO;
      break;
  } /* switch() */

  vAdspLR(bMode);
  vVCDShowAudioLR(TRUE); /* show OSD */

  _bIRKey = IR_NONE;
  return (UOP_OK);
}
#endif /* not define PLAYER_KARAOKE */

BOOL fgCOMAudKeyShift(void) large
{

#ifdef SUPPORT_AUDIO_KEY_ADJUST
#if (defined(PLAYER_KARAOKE) || defined(USE_EXTERNAL_KARAOKE))
  char cKey;

  #ifdef DVD_AUDIO_NO_KEY_SHIFT
  if (bSharedInfo(SI_DISC_TYPE) == SV_DVD_AUDIO)
  {
//    _bIRKey = IR_NONE;
//    return (UOP_OK);

    // 20050401, CR00002256, show prohibit for non-supported keys
    return (UOP_FAIL);  
  }
  #endif /* DVD_AUDIO_NO_KEY_SHIFT */

  switch (_bIRKey)
  {
    case IR_AUD_KEY_PLUS:
      cKey = cAdspAudKeyCtrl(AUDIO_KEY_PLUS);
      break;

    case IR_AUD_KEY_MINUS:
      cKey = cAdspAudKeyCtrl(AUDIO_KEY_MINUS);
      break;

    case IR_AUD_KEY_RESUME:
    default:
      cKey = cAdspAudKeyCtrl(AUDIO_KEY_RESUME);
      _bIRKey = IR_AUD_KEY_RESUME;
      break;
  }

  #ifdef PROLOGIC_NO_KEY_SHIFT
  if ((_bIRKey != IR_AUD_KEY_RESUME) &&
      (bEepromReadByte(PROLOG_SW_POS) != EV_OFF))
  {
    fgEepromWriteByte(PROLOG_SW_POS, EV_OFF);
    vSetProlog();
  }
  #endif /* PROLOGIC_NO_KEY_SHIFT */

#ifdef DTS_NO_KEY_SHIFT
  if (bSharedInfo(SI_A_CODE_MODE) == SV_A_CODE_DTS)
  {
    vOsdShowError(SV_ERR_INVALID_OPERATION, OSD_TIMEOUT_SHORT);
  }
  else
#endif /* DTS_NO_KEY_SHIFT */
  {
#ifdef PLAYER_FLMENU
    if (fgFlCheckStatus(FL_STATUS_IN_MENU))
    {
      //vFlIpShowKeyShift(cKey);
      vFlIpShowInfo(IP_INFO_KEY_SHIFT, cKey, 0);
    }
    else
#endif /* PLAYER_FLMENU */
    vOsdShowKeyShift(cKey, OSD_TIMEOUT);
  }

  if (cKey > ZERO_KEY_LEVEL)
  {

#if (defined(PLAYER_KARAOKE) || defined(USE_EXTERNAL_KARAOKE))
    VfdShowKeyShift(VFD_AUD_KEY_UP);
#endif

  }
  else if (cKey < ZERO_KEY_LEVEL)
  {

#if (defined(PLAYER_KARAOKE) || defined(USE_EXTERNAL_KARAOKE))
    VfdShowKeyShift(VFD_AUD_KEY_DOWN);
#endif

  }
  else
  {

#if (defined(PLAYER_KARAOKE) || defined(USE_EXTERNAL_KARAOKE))
    VfdShowKeyShift(VFD_AUD_KEY_RESUME);
#endif

  }
#endif /* PLAYER_KARAOKE || USE_EXTERNAL_KARAOKE */

#else /* SUPPORT_AUDIO_KEY_ADJUST */
  vOsdShowError(SV_ERR_INVALID_OPERATION, OSD_TIMEOUT_SHORT);
#endif /* SUPPORT_AUDIO_KEY_ADJUST */
  _bIRKey = IR_NONE;
  return (UOP_OK);
}

BOOL fgCOMEqualizerKey(void) large
{

⌨️ 快捷键说明

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