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

📄 play_ain.c

📁 MTK 1389E SOURCE CODE
💻 C
字号:
/**********************************************************************/
/***************    MTK CONFIDENTIAL & COPYRIGHTED     ****************/
/***************                                       ****************/
/***************  $Modtime:: 04/08/27 9:40a    $       ****************/
/***************  $Revision:: 1                $       ****************/
/***************                                       ****************/
/***************   Description : Play module for       ****************/
/***************                 audio in              ****************/
/***************                                       ****************/
/***************       Company : MediaTek Inc.         ****************/
/***************    Programmer :                       ****************/
/**********************************************************************/

#define _PLAY_AIN_C_

#pragma NOAREGS
#include "general.h"

#ifdef MTK_MENU
  #include "setupmn\stpadsp.h" /* for bSetAudioInSource() */
#else
  #include "setup\adspr.h" /* for bSetAudioInSource() */
#endif

#ifdef AUDIO_IN_EN

#define AIN_TYPE_MAX      4

static code BYTE pbAinSrc[AIN_TYPE_MAX] = {
  EV_AI_OFF,
  EV_AI_LINE_1,
  EV_AI_SPDIF_1,
  EV_AI_SPDIF_2
};

// *********************************************************************
// Function : void vAINInit(BYTE bType) large
// Description : Audio in play module initial
// Parameter : None
// Return    : None
// *********************************************************************
void vAINInit(BYTE bType) large
{
  BYTE bMode = bEepromReadByte(AUDIO_IN_POS);

  if ((bMode == EV_AI_OFF) || (bMode >= EV_AIN_MAX))
  {
    // force switch to first mode
    fgEepromWriteByte(AUDIO_IN_POS, pbAinSrc[1]);
    
    bMode = pbAinSrc[1];
  }

  vAINSwitchSource(bMode);
}

// *********************************************************************
// Function : void vAINExit(void) large
// Description : Audio in play module exit
// Parameter : None
// Return    : None
// *********************************************************************
void vAINExit(void) large
{
  if (bEepromReadByte(AUDIO_IN_POS) != EV_AI_OFF)
  {
    // force switch to first audio in off mode
    fgEepromWriteByte(AUDIO_IN_POS, EV_AI_OFF);
    
    vAINSwitchSource(EV_AI_OFF);
  }
}

// *********************************************************************
// Function : BYTE bAINDisplayKey(void) large
// Description :
// Parameter : None
// Return    : None
// *********************************************************************
BOOL fgAINDisplayKey(void) large
{
  BYTE bType = _rOsdStateCtx.bPlayInfoType + 1;
  BYTE bSrc = bEepromReadByte(AUDIO_IN_POS);

  // switch to next display type
  if (bType > AIN_DISP_MODE_MAX)
  {
    bType = AIN_DISP_MODE_DISABLE;
  }

  vAINShowDispMode(bType);

  vAINShowInputSource(bSrc);

  return (UOP_OK);
}

// *********************************************************************
// Function : void bAINFunctionKey(void) large
// Description : Audio in play module exit
// Parameter : None
// Return    : None
// *********************************************************************
BOOL fgAINFunctionKey(void) large
{
  BYTE bIdx, bType;

  if ((fgIsFuncAin() == FALSE) || fgIsPeriCmdBusy())
  {
    return (UOP_OK);
  }

  bType = bEepromReadByte(AUDIO_IN_POS);

  for (bIdx = 0; bIdx < AIN_TYPE_MAX; bIdx++)
  {
    if (pbAinSrc[bIdx] == bType)
    {
      break;
    }
  }

  if (bIdx >= (AIN_TYPE_MAX -1))
  {
    // switch back to DVD mode
    bType = EV_AI_OFF;
  }
  else
  {
    bType = pbAinSrc[bIdx + 1];
  }

  fgEepromWriteByte(AUDIO_IN_POS, bType);
  vAINSwitchSource(bType);

  if (bType == EV_AI_OFF)
  {
    vPlayerFuncSwitch(PLAYER_FUNC_DVD);
  }

  return (UOP_OK);
}

/************************************************************************
     Function : void vOsdUpdate(void)
  Description : Update OSD/VFD
    Parameter : None
    Return    : None
************************************************************************/
BYTE bAInHandleUopRet(BYTE bUopId, BYTE bUopRet) large
{
  BYTE bRet = UOP_UPDATE;
  BYTE bTmp1, bTmp2;

  if (bUopRet != SV_NO_ERROR)
  {
    bRet = UOP_FAIL; /* show error */
  }
  else
  {
    bRet = UOP_UPDATE;
  }

  switch (bUopId)
  {
    /* case UOP_DIGITAL_BTN: */
    /* case UOP_ARROW_BTN: */

    /* normal playback */
    /* case UOP_RESUME: */
    /* case UOP_RESUME_PLAY: */
    /* case UOP_PLAY: */
    /* case UOP_PAUSE: */
    /* case UOP_STOP: */
    /* case UOP_NEXT: */
    /* case UOP_PREVIOUS: */
    /* case UOP_REPEAT: */

    /* trick mode control */
    /* case UOP_FORWARD: */
    /* case UOP_REVERSE: */
    /* case UOP_STEP: */
    /* case UOP_STEP_BACK: */
    /* case UOP_A_TO_B: */
    /* case UOP_FREEZE: */

    /* PBC control */
    /* case UOP_MENU_CALL: */
    /* case UOP_RETURN: */
    /* case UOP_CHANGE_ASTN: */
    /* case UOP_NEXT_ASTN: */
    /* case UOP_CHANGE_SPSTN: */
    /* case UOP_NEXT_SPSTN: */
    /* case UOP_SP_SWITCH: */
    /* case UOP_NEXT_SPSTN_NOSP: */
    /* case UOP_CHANGE_AGL: */
    /* case UOP_DEFAULT: */
    /* case UOP_TOP: */
    /* case UOP_GOUP: */
    /* case UOP_STILL_OFF: */
    /* case UOP_MEMORY_PLAY: */

    /* non-PBC control */
    /* case UOP_PBC_SWITCH: */
    /* case UOP_DIGEST: */
    /* case UOP_PROGRAM: */
    /* case UOP_RANDOM: */
    /* case UOP_SHUFFLE: */
    /* case UOP_MEMORY: */
    /* case UOP_BOOKMARK: */
    /* case UOP_BOOKMARK: */

    /* item play */
    /* case UOP_TIME_PLAY: */
    /* case UOP_TITLE_PLAY: */
    /* case UOP_PTT_PLAY: */
    /* case UOP_TRACK_PLAY: */
    /* case UOP_MP3_PLAY: */
    /* case UOP_JPEG_PLAY: */

    default:
      break;
  }

  return (bRet);
}

#endif /* AUDIO_IN_EN */

⌨️ 快捷键说明

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