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

📄 play_iso.c

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

BYTE fgISOAngleKey(void) large
{
  BYTE bAglNs = bSharedInfo(SI_AGL_NS);
  BYTE bAglNo = bSharedInfo(SI_AGL_NO);

  if ((bSharedInfo(SI_PBC_STATE) != SV_PLAY) ||
      (bAglNs <= 1) || (bAglNs > 9) || (bAglNo > bAglNs))
  {
    return (UOP_FAIL);
  }

  if (bAglNo >= bAglNs)
  {
    bAglNo = 1;
  }
  else
  {
    bAglNo++;
  }
  vSendUopCmd(UOP_CHANGE_AGL, bAglNo, 0, 0);

  return (UOP_OK);
}

BYTE fgISONumKey(void) large
{
  /* Check if the number selection is valid is done by FSMENU */
#ifdef BBK_MENU

 #ifndef ADO_PLAY_NO_DIR
/*10/17am*/  if ((bSharedInfo(SI_JPG_MODE)==JPEGMOD_DIGEST)           // megaa patch 03/03/06, reopen
				||(bSharedInfo(SI_DISC_TYPE) == SV_PCD))
 #else
  if (bSharedInfo(SI_JPG_MODE)==JPEGMOD_DIGEST||fgFlCheckStatus(FL_STATUS_IN_MEMU))           // megaa patch 03/03/06, reopen
 #endif
    vChangeInputState(INPUT_STATE_FILE_SELECT, TRUE);
#endif
//10/17am
  else
  {
    vOsdShowError(SV_ERR_INPUT_INVALID, OSD_TIMEOUT_SHORT);
  }
//10/17am
  return (UOP_OK);
}

BYTE fgISODirKey(void) large
{
  BYTE bParm;

  switch(_bIRKey)
  {
    case IR_UP:
      bParm = SV_UP;
      break;
    case IR_DOWN:
      bParm = SV_DOWN;
      break;
    case IR_LEFT:
      bParm = SV_LEFT;
      break;
    case IR_RIGHT:
      bParm = SV_RIGHT;
      break;
    case IR_ENTER:
      bParm = SV_ACTIVATE;
      break;
    default:
      return (UOP_FAIL);
  }

  vSendUopCmd(UOP_ARROW_BTN, bParm, 0, 0);

  return (UOP_OK);
}

// *********************************************************************
// Key map function
// *********************************************************************
BYTE fgISOPlayKey(void) large
{
  vSendUopCmd(UOP_PLAY, 0, 0, 0);

  return (UOP_OK);
}

BYTE fgISOPauseKey(void) large
{
#ifdef PLAYER_FLMENU
  BYTE bPbcState = bFlGetFgPbcState();
#else
  BYTE bPbcState = bSharedInfo(SI_PBC_STATE);
#endif

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

  if (fgIsInputStateValid(INPUT_STATE_PCD_ZOOM))
  {
    vOsdShowError(OSD_MSG_ERR_INPUT_INVALID, OSD_TIMEOUT_SHORT);
    return (UOP_OK);
  }  
  //if (bSharedInfo(SI_PBC_STATE) == SV_PAUSE)
  if (bPbcState == SV_PAUSE)
  {
    vSendUopCmd(UOP_PLAY, 0, 0, 0);
  }
  else
  {
    vSendUopCmd(UOP_PAUSE, 0, 0, 0);
  }

  return (UOP_OK);
}

BYTE fgISOStopKey(void) large
{
 #ifdef BBK
    vOsdPosClear(OSD_POS_PLAY_STATUS);
 #endif
  vSendUopCmd(UOP_STOP, 0, 0, SV_STOP_FORCE); //Vincent 0->sv_stop_force @03-15-04

  return (UOP_OK);
}

BYTE fgISONextKey(void) large
{
  vSendUopCmd(UOP_NEXT, 0, 0, 0);

  return (UOP_OK);
}

BYTE fgISOPrevKey(void) large
{
  vSendUopCmd(UOP_PREVIOUS, 0, 0, 0);

  return (UOP_OK);
}

BYTE fgISOA2BKey(void) large
{
  BYTE bPbcState = bSharedInfo(SI_PBC_STATE);

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

  vSendUopCmd(UOP_A_TO_B, 0, 0, 0);

  return (UOP_OK);
}

BYTE fgISOResumeKey(void) large
{
  vSendUopCmd(UOP_RESUME, 0, 0, 0);

  return (UOP_OK);
}

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

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

#ifdef SIMPLE_ZOOM_MODE

#ifdef SUPPORT_ZOOM_13
#define ISO_ZOOM_USED_MODE   11

static code BYTE pbIsoZoomMode[ISO_ZOOM_USED_MODE] = {
  SV_ZOOM_12,
  SV_ZOOM_13,
  SV_ZOOM_15,
  SV_ZOOM_2,
  SV_ZOOM_25,
  SV_ZOOM_3,
  SV_ZOOM_35,
  SV_ZOOM_4,
  SV_ZOOM_21,
  SV_ZOOM_31,
  SV_ZOOM_41
};
#else
#define ISO_ZOOM_USED_MODE   6

static code BYTE pbIsoZoomMode[ISO_ZOOM_USED_MODE] = {
  SV_ZOOM_2,
  SV_ZOOM_3,
  SV_ZOOM_4,
  SV_ZOOM_21,
  SV_ZOOM_31,
  SV_ZOOM_41
};
#endif
#endif /* SIMPLE_ZOOM_MODE */

BYTE fgISOZoomInKey(void) large
{
  BYTE bZoom;
#ifdef SIMPLE_ZOOM_MODE
  BYTE bIdx;
#endif
#ifdef ZOOM_NO_SLOW_STEP
  BYTE bPbcState = bSharedInfo(SI_PBC_STATE);
#endif

  if (fgFlCheckStatus(FL_STATUS_IN_MENU))
  {
    vOsdShowError(SV_ERR_INVALID_OPERATION, OSD_TIMEOUT_SHORT);
    return (UOP_OK);
  }
  else if (fgFlCheckStatus(FL_STATUS_IN_JPEG))
  {
    vChangeInputState(INPUT_STATE_PCD_ZOOM, FALSE);
    return (UOP_OK);
  }
#ifdef ZOOM_NO_SLOW_STEP
  else if (fgFlCheckStatus(FL_STATUS_IN_MPEG))
  {
    if ((bPbcState == SV_SF) || (bPbcState == SV_SR) ||
        (bPbcState == SV_STEP) || (bPbcState == SV_STEP_BACK))
    {
      vOsdShowError(SV_ERR_NORMAL_PLAY_ONLY, OSD_TIMEOUT_SHORT);
      return (UOP_OK);
    }
  }
#endif

  bZoom = bSharedInfo(SI_ZOOM_SWITCH);

#ifdef ENABLE_ZOOM_USER_MODE
  if (bZoom == SV_ZOOM_USR)
  {
    vSendUopCmd(UOP_ZOOM_IN, SV_ZOOM_OFF, 0, 0);
    return (UOP_OK);
  }
#endif

  // get next zoom mode
#ifdef SIMPLE_ZOOM_MODE
  for (bIdx = 0; bIdx < ISO_ZOOM_USED_MODE; bIdx++)
  {
    if (pbIsoZoomMode[bIdx] > bZoom)
    {
      bZoom = pbIsoZoomMode[bIdx];
      break;
    }
  }
  
  if (bIdx == ISO_ZOOM_USED_MODE)
  {
    bZoom = SV_ZOOM_IN_MAX + 1;
  }
#else
  bZoom += 1;
#endif

  if (bZoom > SV_ZOOM_IN_MAX)
  {
#ifdef ZOOM_IN_OUT_SAME_KEY
    fgSetPlayPostKey(IR_ZOOM_OUT);
    return(UOP_OK);
#else
    bZoom = SV_ZOOM_OFF;
#endif
  }
  else if (bZoom < SV_ZOOM_IN_MIN)
  {
    bZoom = SV_ZOOM_IN_MIN;
  }

  vSendUopCmd(UOP_ZOOM_IN, bZoom, 0, 0);

  return (UOP_OK);
}

BYTE fgISOZoomOutKey(void) large
{
  BYTE bItemType = bSharedInfo(SI_ISO_ITEM_TYPE);
  BYTE bZoom;
#ifdef SIMPLE_ZOOM_MODE
  BYTE bIdx;
#endif
#ifdef ZOOM_NO_SLOW_STEP
  BYTE bPbcState = bSharedInfo(SI_PBC_STATE);
#endif

  if (fgIsIsoItemAOnly(bItemType))
  {
    vOsdShowError(SV_ERR_DISC_NOT_SUPPORT, OSD_TIMEOUT_SHORT);
    return (UOP_OK);
  }
  else if (bItemType == SV_ISO_JPG)
  {
    vChangeInputState(INPUT_STATE_PCD_ZOOM, FALSE);
    return (UOP_OK);
  }
#ifdef ZOOM_NO_SLOW_STEP
  else if (fgIsIsoItemAV(bItemType))
  {
    if ((bPbcState == SV_SF) || (bPbcState == SV_SR) ||
        (bPbcState == SV_STEP) || (bPbcState == SV_STEP_BACK))
    {
      vOsdShowError(SV_ERR_NORMAL_PLAY_ONLY, OSD_TIMEOUT_SHORT);
      return (UOP_OK);
    }
  }
#endif

  bZoom = bSharedInfo(SI_ZOOM_SWITCH);

#ifdef ENABLE_ZOOM_USER_MODE
  if (bZoom == SV_ZOOM_USR)
  {
    vSendUopCmd(UOP_ZOOM_IN, SV_ZOOM_OFF, 0, 0);
    return (UOP_OK);
  }
#endif

  // get next zoom mode
#ifdef SIMPLE_ZOOM_MODE
  for (bIdx = 0; bIdx < ISO_ZOOM_USED_MODE; bIdx++)
  {
    if (pbIsoZoomMode[bIdx] > bZoom)
    {
      bZoom = pbIsoZoomMode[bIdx];
      break;
    }
  }
  
  if (bIdx == ISO_ZOOM_USED_MODE)
  {
    bZoom = SV_ZOOM_OUT_MAX + 1;
  }
#else
  bZoom += 1;
#endif

  if (bZoom > SV_ZOOM_OUT_MAX)
  {
    bZoom = SV_ZOOM_OFF;
  }
  else if (bZoom < SV_ZOOM_OUT_MIN)
  {
    bZoom = SV_ZOOM_OUT_MIN;
  }

  vSendUopCmd(UOP_ZOOM_IN, bZoom, 0, 0);

  return (UOP_OK);
}

#ifdef ENABLE_ZOOM_USER_MODE
BYTE fgISOZoomUsrKey(void) large
{
  BYTE bItemType = bSharedInfo(SI_ISO_ITEM_TYPE);
#ifdef ZOOM_NO_SLOW_STEP
  BYTE bPbcState = bSharedInfo(SI_PBC_STATE);
#endif

  if (fgIsIsoItemAV(bItemType))
  {
#ifdef ZOOM_NO_SLOW_STEP
    if ((bPbcState == SV_SF) || (bPbcState == SV_SR) ||
        (bPbcState == SV_STEP) || (bPbcState == SV_STEP_BACK))
    {
      vOsdShowError(SV_ERR_NORMAL_PLAY_ONLY, OSD_TIMEOUT_SHORT);
      return (UOP_OK);
    }
#endif
  }
  else
  {
    // not supportted
    return (UOP_OK);
  }

  if (bSharedInfo(SI_ZOOM_SWITCH) != SV_ZOOM_USR)
  {
    vSendUopCmd(UOP_ZOOM_IN, SV_ZOOM_USR, ZOOM_USR_H_BASE, ZOOM_USR_V_BASE);
  }
  else
  {
    vSendUopCmd(UOP_ZOOM_IN, SV_ZOOM_OFF, 0, 0);
  }

  return (UOP_OK);
}
#endif /* ENABLE_ZOOM_USER_MODE */


#ifdef MPEG4_TXT_SP
BYTE fgISOSubtitleKey(void) large		 //Hide and display subtitle   //guosong add
{  

#ifdef  DEBUGE_LIKE
DRS232LogS("-s4\n");
DRS232LogB(_bSubtitleState,0,0,0);
#endif
  switch (_bSubtitleState)  	
  {
    case SUBTITLE_OFF:
    	vCreateWB(WB_MP4_SP, TRUE);
	    vSetWBTcColor(WB_MP4_SP);
    	vSetMsgCol4(WB_MP4_SP, 0, 0, 0, 2);
	    vSetTransEn(WB_MP4_SP, 0);
    	vEnableWB(WB_MP4_SP);
	    _bSubtitleState = SUBTITLE_ON;
	  
	vOsdShowSubtitle(OSD_SUBTITLE_CLEAR, 0, 0, 0, 0, 0);
        vOsdPosShow(OSD_POS_SUBTITLE, OSD_MSG_SUBTITLE_SETTING, OSD_TIMEOUT);  
   	break;

    default:						
  	    vDeleteWB(WB_MP4_SP);
		_bSubtitleState = SUBTITLE_OFF;
	    vOsdShowSubtitle(OSD_SUBTITLE_CLEAR, 0, 0, 0, 0, 0);
            vOsdPosShow(OSD_POS_SUBTITLE, OSD_MSG_SUBTITLE_OFF, OSD_TIMEOUT);
    	break;
  	}
  return (UOP_OK);
}
#endif


#if 0 //MTK_guosong @04-16-04
BYTE fgIsoSpKey(void) large
{
  BYTE bTmp1 = bSharedInfo(SI_SPST_NO);
  BYTE bTmp2 = bSharedInfo(SI_SPST_NS);
  
  if (bTmp1 < bTmp2)
    vSendUopCmd(UOP_CHANGE_SPSTN, bTmp1, 0, 0);

  return (UOP_OK);
}
#else
//guosong
BYTE fgISOSpKey(void) large
{
  BYTE bTmp1 = bSharedInfo(SI_SPST_NO);
  BYTE bTmp2 = bSharedInfo(SI_SPST_NS);


#if 0//def SUPPORT_WAIXIAO
  if(fgIsIsoPlay()&&(bSharedInfo(SI_ISO_ITEM_TYPE) == SV_ISO_AVI))
{
  bTmp2=0x01;
 vSetSharedInfo(SI_SPST_NS, bTmp2);
  }
#endif
  
#if 0 //Vincent @04-28-04 def MPEG4_TXT_SP
_bPressSbKey = 1;
#endif
  if (!fgFlCheckStatus(FL_STATUS_IN_MPEG))
    return (UOP_OK);

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

  if ((bTmp1 & (~0x41)) == 0x3e) // include 0x3e, 0x3f, 0x7e, 0x7f
  {
    /* take dummy stream as subtitle disabled */
    bTmp1 = 0x00;
  }

#if 0//def  DEBUGE_LIKE
DRS232LogS("-sub\n");
DRS232LogB(bSharedInfo(SI_PBC_STATE),bTmp1,bTmp2,0);
#endif


  if ((bSharedInfo(SI_PBC_STATE) != SV_PLAY) ||
  	//subtitle语言太多或者没有=0,或者到了最后项则出错处理
      (bTmp2 > 32) || (bTmp2 == 0) || ((bTmp1 & 0x1f) >= bTmp2))
  {
    return UOP_FAIL;
  }
// ifdef SUPPORT_WAIXIAO 
  if (bTmp1 & 0x40)
  {
    if ((bTmp1 & 0x1f) >= bTmp2 - 1)       //已经到最后一项了
    {
      /* turn off sub-picture */
      bTmp1 = 0x00;
    }
    else      //没有到最后一项subtitle则继续切换subtitle
    {
      /* next sp */
      bTmp1 = ((bTmp1 & 0x1f) + 1) | 0x40;
    }
  }
  else     //重新赋值循环切换
  {
    bTmp1 = 0x40; /* first stream is 0 */
  }
//
#ifdef  DEBUGE_LIKE
DRS232LogS("-s2\n");
DRS232LogB(bSharedInfo(SI_SPST_NO),bTmp1,bTmp2,bSharedInfo(SI_SPST_NS));
#endif



  vSendUopCmd(UOP_CHANGE_SPSTN, bTmp1, 0, 0);



  #ifdef MPEG4_TXT_SP    //Add by Tide@08-04-04
   _bSbStatus = bTmp1; 
  #endif

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

  #if 0//def SUPPORT_WAIXIAO
    if(fgIsIsoPlay()&&(bSharedInfo(SI_ISO_ITEM_TYPE) == SV_ISO_AVI))
	 vSetSharedInfo(SI_SPST_NO, bTmp1);
// vSetSharedInfo(SI_SPST_NS, bTmp2);
#endif
  return (UOP_OK);
}
#endif

#else  // #ifdef SUPPORT_DATA_DISC

#ifdef SIMPLE_ZOOM_MODE
  static code BYTE pbIsoZoomMode[] = { 0 };
#endif

void vISOInit(BYTE bType) large 
{ 
  BYTE bTmp = pbIsoZoomMode[0];
}

void vISOExit(void) large { }
void vISOFsMenuShow(BYTE bMode) large { }
void vISOFSMenuFilterInit(BYTE fgInit) large  { }
BOOL fgISOFSMenuFilterState(void) large  {  return (FALSE);  }
void vISOFSMenuFilterExit(void) large  { }
void vISOFileSelectInit(BYTE fgInit) large  { }
BOOL fgISOFileSelectState(void) large  { return (TRUE);  }
void vISOTimeSearchInit(BYTE fgInit) large  { }
BOOL fgISOTimeSearchState(void) large  { return (TRUE);  }
void vISOTimeSearchExit(void) large  { }

BYTE bISOHandleUopRet(BYTE bUopId, BYTE bUopRet) large
{ 
  return (UOP_OK);
}

#endif   // #ifdef SUPPORT_DATA_DISC

⌨️ 快捷键说明

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