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

📄 play_iso.c

📁 MTK 1389e版 MINI组合音响代码
💻 C
📖 第 1 页 / 共 3 页
字号:
    /* case UOP_STEP: */
    /* case UOP_STEP_BACK: */
    /* case UOP_A_TO_B: */
    /* case UOP_FREEZE: */

    /* PBC control */
    /* case UOP_MENU_CALL: */
    /* case UOP_RETURN: */
 #if 0 //MTK_guosong @04-16-04
    case UOP_CHANGE_ASTN:
    case UOP_CHANGE_SPSTN:
    {
    #ifndef BBK
      bTmp1 = bSharedInfo(SI_AST_NO);
      bTmp2 = bSharedInfo(SI_AST_NS);

      if ((bUopRet == SV_NO_ERROR) && (bTmp1 < bTmp2) && (bTmp2 > 0))
      {
        vDVDShowAudio(bTmp1, bTmp2);
      }
    #endif
      break;
    }
 #else
  case UOP_CHANGE_SPSTN: 						
      bTmp1 = bSharedInfo(SI_SPST_NO);
      bTmp2 = bSharedInfo(SI_SPST_NS);
      
     #ifdef  DEBUGE_LIKE
    DRS232LogS("-y2\n");
    DRS232LogB(bSharedInfo(SI_SPST_NO),bTmp1,bTmp2,bSharedInfo(SI_SPST_NS));
    #endif
     #if 0//def MPEG4_TXT_SP
      if ((bUopRet == SV_NO_ERROR) && (bTmp2 > 0) && ((bTmp1 & 0x1f) < bTmp2) && (_bSetupResumeSub == 0))
      #else
      if ((bUopRet == SV_NO_ERROR) && (bTmp2 > 0) && ((bTmp1 & 0x1f) < bTmp2))
    #endif	
      {
       #ifdef  DEBUGE_LIKE
    DRS232LogS("-y3\n");
    DRS232LogB(bSharedInfo(SI_SPST_NO),bTmp1,bTmp2,bSharedInfo(SI_SPST_NS));
    #endif
        vDVDShowSubtitle(bTmp1, bTmp2);
      }
      else
      {

	   #ifdef  DEBUGE_LIKE
    DRS232LogS("-y4\n");
    DRS232LogB(bSharedInfo(SI_SPST_NO),bTmp1,bTmp2,bSharedInfo(SI_SPST_NS));
    #endif

        #if 0//def MPEG4_TXT_SP
		if((bUopRet == SV_NO_ERROR) && (bTmp2 > 0) && ((bTmp1 & 0x1f) < bTmp2) &&(_bSetupResumeSub == 1))
		{
		_bSetupResumeSub = 0;
		break;
		}
        #endif

#if (DVD_USER_STREAM_CHANGE == DVD_STREAM_CHANGE_DIRECT)
        vOsdShowSubtitle(OSD_SUBTITLE_CLEAR, 0, 0, 0, 0, 0);
#else
        if (fgIsInputStateValid(INPUT_STATE_SUBTITLE_CHANGE))
        {
          fgSetPlayPostKey(IR_TIME_OUT);
        }
#endif
      }
      break;
    
    case UOP_CHANGE_ASTN:
    {
      bTmp1 = bSharedInfo(SI_AST_NO);
      bTmp2 = bSharedInfo(SI_AST_NS);

      if ((bUopRet == SV_NO_ERROR) && (bTmp1 < bTmp2) && (bTmp2 > 0))
      {
        vDVDShowAudio(bTmp1, bTmp2);
      }
      break;
    }
#endif

    /* case UOP_CHANGE_AGL: */
    /* case UOP_RESUME_PLAY: */
    /* case UOP_RESUME: */
    /* case UOP_DEFAULT: */
    /* case UOP_TOP: */
    /* case UOP_GOUP: */
    /* case UOP_STILL_OFF: */
    /* case UOP_MEMORY_PLAY: */

    /* non-PBC control */
    /* case UOP_PBC_SWITCH: */
    #ifdef BBK_MENU
    #define FLDGTMN_HILIT           HL_2
	#define FLDGTMN_HILIT_COL       0x7844
    case UOP_DIGEST: 
    	vSetHLCol(FLDGTMN_HILIT, FLDGTMN_HILIT_COL);
    	break;
    #endif

    /* case UOP_PROGRAM: */
    case UOP_RANDOM:
    case UOP_SHUFFLE:
    {
      bTmp1 = bSharedInfo(SI_USR_PBC_CTRL);
      bTmp2 = bSharedInfo(SI_ISO_ITEM_TYPE);
      
      if (fgFlCheckStatus(FL_STATUS_IN_MENU))
      {
        vFlIpShowInfo(IP_INFO_RPT_TYPE, bTmp1, 0);
      }
      else if ((fgIsIsoItemStill(bTmp2) || fgIsIsoItemAV(bTmp2)) && (bUopRet == SV_NO_ERROR))
      {
        switch (bTmp1)
        {
#if 0 //bywhy 10/09
          case SV_SHUFFLE:
            vOsdPosShow(OSD_POS_NORMAL, OSD_MSG_MP3_SHUFFLE, OSD_TIMEOUT_SHORT);
            break;
            
          case SV_RANDOM:
            vOsdPosShow(OSD_POS_NORMAL, OSD_MSG_MP3_RANDOM, OSD_TIMEOUT_SHORT);
            break;
#endif
          case SV_REPEAT_NONE:
          case SV_REPEAT_ABNONE:
            vOsdPosShow(OSD_POS_NORMAL, OSD_MSG_NORMAL_MODE, OSD_TIMEOUT_SHORT);
            break;

          default:
            break;
        }

        bRet = UOP_OK;
      }
      break;
    } /* UOP_SHUFFLE */

    /* case UOP_MEMORY: */
    case UOP_BOOKMARK:
      vBookmarkUpdate();
      break;

    /* 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: */
    case UOP_FILE_DONE:
      break;

    default:
      break;
  }

  return (bRet);
}

BYTE fgISORemainKey(void) large
{
  BYTE bDiscType = bSharedInfo(SI_DISC_TYPE);
  BYTE bPbcState = bSharedInfo(SI_PBC_STATE);
  BYTE bISOType = bSharedInfo(SI_ISO_ITEM_TYPE); //BillDen
  BYTE bType = bCurrRemainType();

#ifdef SUPPORT_DRM
   #ifndef DRMVOD
  if (fgFlCheckStatus(FL_STATUS_IN_MENU)
    #ifdef MP3_AUTO_PLAY
	&& IsoFileCmdTimer == 0
    #endif	
     )
  {
   vDRMRegCodeKey();
   _bIRKey = IR_NONE;
    return (UOP_OK);
  }
  else
  #endif	
#endif  	
{

  if (bISOType < SV_ISO_MPG) //BillDen
    return (UOP_OK);

  if (!fgIsDiscPlay(bPbcState))
  {
    vOsdShowError(SV_ERR_PLAYBACK_ONLY, OSD_TIMEOUT_SHORT);
    return (UOP_OK);
  }

  bType++;

  if (bType > OSD_SHOW_SINGLE_REMAIN)
  {
    bType = OSD_SHOW_DISABLE;
  }

  vOsdDisplayChange(DISP_REMAIN_CHG, bType);
}
  return (UOP_OK);
}

BYTE fgISOSearchKey(void) large
{
  BYTE bPbcState = bSharedInfo(SI_PBC_STATE);
  BYTE bItemType = bSharedInfo(SI_ISO_ITEM_TYPE);
  
/*10/17am  if (_rSearchStateCtx.bType == SEARCH_NONE)
  {
    vChangeInputState(INPUT_STATE_FILE_SELECT, FALSE);
  }
  else if (fgIsDiscPlay(bPbcState) && 
           (fgIsIsoItemAV(bItemType) || fgIsIsoItemAOnly(bItemType)) &&
           (bItemType != SV_ISO_WMA))*/
//10/18am bg
//10/18am bg //Vincent OGG -> MPG @05-29-04
#ifdef SUPPORT_OGG
  if((bSharedInfo(SI_ISO_ITEM_TYPE) == SV_ISO_AVI || bSharedInfo(SI_ISO_ITEM_TYPE) == SV_ISO_OGG) && _rSearchStateCtx.bType == SEARCH_NONE)
#else
    if(bSharedInfo(SI_ISO_ITEM_TYPE) == SV_ISO_AVI  && _rSearchStateCtx.bType == SEARCH_NONE)
#endif
  {
    vChangeInputState(INPUT_STATE_FILE_SELECT, FALSE);
  }else
//10/18am end
  if (fgIsDiscPlay(bPbcState) && fgIsIsoItemAV(bItemType))
  {
    vChangeInputState(INPUT_STATE_ISO_TIME_SEARCH, FALSE);
  }
//10/17am
  else
  {
    vOsdShowError(SV_ERR_INPUT_INVALID, OSD_TIMEOUT_SHORT);
  }
//10/17am
  return (UOP_OK);
}

#if 0
static BYTE bISOGetRepeatType(BYTE bType)
{
  switch (bType)
  {
    case SV_REPEAT_TRACK:
      return (SV_REPEAT_ALL);

    case SV_REPEAT_ALL:
      return (SV_REPEAT_NONE);

    case SV_REPEAT_NONE:
      return (SV_REPEAT_TRACK);
      
    default:
      return (0xff);
  }
}

static BYTE fgISORepeatKey(void) large
{
  BYTE bRepeatType;

  bRepeatType = bISOGetRepeatType(bSharedInfo(SI_REPEAT_MODE));

  if (bRepeatType == 0xff)
  {
    bRepeatType = bISOGetRepeatType(bSharedInfo(SI_USR_PBC_CTRL));
  }

  if (bRepeatType == 0xff)
  {
    bRepeatType = SV_REPEAT_TRACK;
  }

  vSendUopCmd(UOP_REPEAT, bRepeatType, 0, 0);

  return (UOP_OK);
}
#elif defined(PLAYER_FLMENU)
BYTE fgISORepeatKey(void) large
{
  BYTE bType = bFlNextRepeatType();

  if (bType == SV_SHUFFLE) {
    vSendUopCmd(UOP_SHUFFLE, SV_ON, 0x0, 0x0);
  }
  else if (bType == SV_RANDOM) {
    vSendUopCmd(UOP_RANDOM, SV_ON, 0x0, 0x0);
  }
  else {
    vSendUopCmd(UOP_REPEAT, bType, 0x0, 0x0);
  }
  
  return (UOP_OK);
}
#else
static BYTE fgISORepeatKey(void) large
{
  return (UOP_OK);
}
#endif

BYTE fgISOProgramKey(void) large
{
  return (UOP_OK);
}

BYTE fgISOFFKey(void) large
{
  /* Todo: check play item type */

#ifdef PLAYER_FLMENU
  BYTE bPbcState = bFlGetFgPbcState();
#else
  BYTE bPbcState = bSharedInfo(SI_PBC_STATE);
#endif
  BYTE bPbcSpeed = bSharedInfo(SI_PBC_SPEED);

  if (!fgIsDiscPlay(bPbcState))
  {
    vOsdShowError(SV_ERR_PLAYBACK_ONLY, OSD_TIMEOUT_SHORT);
    return (UOP_OK);
  }
#ifdef PAUSE_NO_TRICK
  else if (bPbcState == SV_PAUSE)
  {
    vOsdShowError(SV_ERR_NORMAL_PLAY_ONLY, OSD_TIMEOUT_SHORT);
    return (UOP_OK);
  }
#endif

  if(bPbcState == SV_FF)
  {
    if(bPbcSpeed < ISO_FAST_MAX - 1)
    {
      bPbcSpeed++;
    }
    else
    {
#ifdef TRICK_MODE_USE_PLAY
      vSendUopCmd(UOP_PLAY, 0, 0, 0);
      return (UOP_OK);
#else
      bPbcSpeed = 0;
#endif
    }
  }
  else
  {
    bPbcSpeed = SV_TWO;
  }

  vSendUopCmd(UOP_FORWARD, SV_FAST, bPbcSpeed, pbISOFastSpeedTbl[bPbcSpeed]);

  return (UOP_OK);
}

BYTE fgISOFRKey(void) large
{
  /* Todo: check play item type */

#ifdef PLAYER_FLMENU
  BYTE bPbcState = bFlGetFgPbcState();
#else
  BYTE bPbcState = bSharedInfo(SI_PBC_STATE);
#endif  
  
  BYTE bPbcSpeed = bSharedInfo(SI_PBC_SPEED);

  if (!fgIsDiscPlay(bPbcState))
  {
    vOsdShowError(SV_ERR_PLAYBACK_ONLY, OSD_TIMEOUT_SHORT);
    return (UOP_OK);
  }
#ifdef PAUSE_NO_TRICK
  else if (bPbcState == SV_PAUSE)
  {
    vOsdShowError(SV_ERR_NORMAL_PLAY_ONLY, OSD_TIMEOUT_SHORT);
    return (UOP_OK);
  }
#endif

  if(bPbcState == SV_FR)
  {
    if(bPbcSpeed < ISO_FAST_MAX - 1)
    {
      bPbcSpeed++;
    }
    else
    {
#ifdef TRICK_MODE_USE_PLAY
      vSendUopCmd(UOP_PLAY, 0, 0, 0);
      return (UOP_OK);
#else
      bPbcSpeed = 0;
#endif
    }
  }
  else
  {
    bPbcSpeed = SV_TWO;
  }

  vSendUopCmd(UOP_REVERSE, SV_FAST, bPbcSpeed, pbISOFastSpeedTbl[bPbcSpeed]);

  return (UOP_OK);
}

BYTE fgISOSFKey(void) large
{
  /* Todo: check play item type */
  BYTE bPbcState = bSharedInfo(SI_PBC_STATE);
  BYTE bPbcSpeed = bSharedInfo(SI_PBC_SPEED);
  BYTE bItemType = bSharedInfo(SI_ISO_ITEM_TYPE);

  if (!fgIsDiscPlay(bPbcState))
  {
    vOsdShowError(SV_ERR_PLAYBACK_ONLY, OSD_TIMEOUT_SHORT);
    return (UOP_OK);
  }
#ifdef PAUSE_NO_TRICK
  else if (bPbcState == SV_PAUSE)
  {
    vOsdShowError(SV_ERR_NORMAL_PLAY_ONLY, OSD_TIMEOUT_SHORT);
    return (UOP_OK);
  }
#endif

#ifdef ZOOM_NO_SLOW_STEP
  if (fgIsIsoItemAV(bItemType) && (bSharedInfo(SI_ZOOM_SWITCH) != SV_ZOOM_1))
  {
    vOsdShowError(SV_ERR_NORMAL_PLAY_ONLY, OSD_TIMEOUT_SHORT);
    return (UOP_OK);
  }
#endif

  if(bPbcState == SV_SF)
  {
    if(bPbcSpeed < ISO_SLOW_MAX - 1)
    {
      bPbcSpeed++;
    }
    else
    {
#ifdef TRICK_MODE_USE_PLAY
      vSendUopCmd(UOP_PLAY, 0, 0, 0);
      return (UOP_OK);
#else
      bPbcSpeed = 0;
#endif
    }
  }
  else
  {
    bPbcSpeed = SV_TWO;
  }

  vSendUopCmd(UOP_FORWARD, SV_SLOW, bPbcSpeed, 0);

  return (UOP_OK);
}

BYTE fgISOStepFKey(void) large
{
  BYTE bItemType = bSharedInfo(SI_ISO_ITEM_TYPE);

  if (fgIsIsoItemAV(bItemType))
  {
#ifdef ZOOM_NO_SLOW_STEP
    if (bSharedInfo(SI_ZOOM_SWITCH) != SV_ZOOM_1)
    {
      vOsdShowError(SV_ERR_NORMAL_PLAY_ONLY, OSD_TIMEOUT_SHORT);
      return (UOP_OK);
    }
#endif

    vSendUopCmd(UOP_STEP, 0, 0, 0);
  }
  else
  {
    vOsdShowError(SV_ERR_DISC_NOT_SUPPORT, OSD_TIMEOUT_SHORT);
  }

  return UOP_OK;
}

BYTE fgISOStepRKey(void) large
{
  BYTE bItemType = bSharedInfo(SI_ISO_ITEM_TYPE);

  if (fgIsIsoItemAV(bItemType))
  {
#ifdef ZOOM_NO_SLOW_STEP
    if (bSharedInfo(SI_ZOOM_SWITCH) != SV_ZOOM_1)
    {
      vOsdShowError(SV_ERR_NORMAL_PLAY_ONLY, OSD_TIMEOUT_SHORT);
      return (UOP_OK);
    }
#endif

    vSendUopCmd(UOP_STEP_BACK, 0, 0, 0);
  }
  else
  {
    vOsdShowError(SV_ERR_DISC_NOT_SUPPORT, OSD_TIMEOUT_SHORT);
  }

  return UOP_OK;
}

BYTE fgISOAudioKey(void) large
{
  BYTE bTmp1 = bSharedInfo(SI_AST_NO);
  BYTE bTmp2 = bSharedInfo(SI_AST_NS);
  BYTE bMode = bAdspCurrVocal();

  if (bSharedInfo(SI_MPIC_STT) != MPICSTT_PB_STRT) //BillDen
    return UOP_FAIL;

  if (bTmp2 <= 1)
  {
    switch (bMode)
    {
      case AUDIO_STEREO:
        bMode = AUDIO_MONO_LEFT;
        break;

      case AUDIO_MONO_LEFT:
        bMode = AUDIO_MONO_RIGHT;
        break;

      case AUDIO_MONO_RIGHT:
#ifdef AUD_EN_MIXED_MONO
        bMode = AUDIO_MONO_MIXED;
#else
        bMode = AUDIO_STEREO;
#endif
        break;

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

    vAdspLR(bMode);
  }
  else
  {
      if ((bSharedInfo(SI_PBC_STATE) != SV_PLAY) ||
          (bTmp2 <= 1) || (bTmp1 >= bTmp2))
      {
        return (UOP_FAIL);
      }

      bTmp1++;
      if (bTmp1 >= bTmp2)
      {
        bTmp1 = 0;
      }
      vSendUopCmd(UOP_CHANGE_ASTN, bTmp1, 0, 0);
  }
  vOsdPosShow(OSD_POS_NORMAL, OSD_MSG_MP4_AUDIO, OSD_TIMEOUT_SHORT);

  return (UOP_OK);
}

⌨️ 快捷键说明

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