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

📄 flmain.c

📁 手机8032的完整代码。吐血推荐。小做改动就可以生产。
💻 C
📖 第 1 页 / 共 2 页
字号:
  #if 0
  if (bFlCmdRetOp() == FLCMD_RET_OP_SEL)
  {
    return fgFlOnMn();
  }
  #endif

  if (fgFlClIsLock())
  {
    switch(bFlClPath())
    {
      case FL_CMDPATH_SEL_0:
  #if defined(MP3_LYRICS_V2_SUPPORT)
      case FL_CMDPATH_INIT_1:
      case FL_CMDPATH_INIT_0:
  #elif defined(ISO_AUTO_PLAY)
      case FL_CMDPATH_INIT_1:
    #else
      case FL_CMDPATH_INIT_0:
    #endif
      #ifdef MP3_LYRICS_V2_SUPPORT
        if (bSharedInfo(SI_MP3_KARA_DISC_TYPE) == SV_ID_MATCH)
        {
          return fgFlOnLrc();
        }
        else
      #endif
        {
        return fgFlOnMn();
        }
        break;
      case FL_CMDPATH_SEL_1:
        if ((_bIRKey == IR_CMD_DONE) &&
            ((FL_ACK(_dwIrDoneParm) == SI_DDISC_PB_MODULE) || (_rFlCmdLock.fgLeap)))
        {
          vFlClNext();  // FL_CMDPATH_SEL_2:
          // tmp
          wPos = FL_ITEM_FIELD(_bFlMnCurItemIdx);
          bLoByte(wIdx) = bSharedInfo(wPos + 6);
          bHiByte(wIdx) = bSharedInfo(wPos + 7);
          //added by msz00049 for CR PL00004129
          #ifdef FLMN_RET_PLAY_DIR	  
          if(bFlGetItemType(_bFlMnCurItemIdx) == FTYPE_AUDIO)
	         vWorkAreaMove(FALSE);
	        #endif
	        //added end
          vFlCmdClickItem(_bFlMnListId, wIdx);
          return TRUE;
        }
        break;
      case FL_CMDPATH_RPLC_CMDTGT:
      case FL_CMDPATH_CHG_CMDTGT:
        if ((_bIRKey == IR_CMD_DONE) && (FL_ACK(_dwIrDoneParm) == SI_DDISC_PB_MODULE))
        {
          vFlClRls();
        }
        break;
    }
  }

  switch (_bFlCmdTarget)
  {
  case FL_CMD_TARGET_MENU:
#ifdef MP3_LYRICS_V2_SUPPORT
    if (bSharedInfo(SI_MP3_KARA_DISC_TYPE) == SV_ID_MATCH)
    {
      fgIsGrabbed = fgFlOnLrc();
    }
    else
#endif
    {
    fgIsGrabbed = fgFlOnMn();
    }
    break;
  case FL_CMD_TARGET_JPEG:
    fgIsGrabbed = fgFlOnJv();
    break;
#ifdef DDISC_FTYPE_MPG_SUPPORT
  case FL_CMD_TARGET_MPEG:
    fgIsGrabbed = fgFlOnMp();
    break;
#endif
#ifdef JPEG_DDISC_DIGEST_ENABLE
  case FL_CMD_TARGET_HELP:
    fgIsGrabbed = fgFlOnHp();
    break;
#endif
  case FL_CMD_TARGET_NONE:
    // - init state
#ifdef MP3_LYRICS_V2_SUPPORT
    if (bSharedInfo(SI_MP3_KARA_DISC_TYPE) == SV_ID_MATCH)
    {
      fgIsGrabbed = fgFlLrcOnInit();
    }
    else
#endif
    {
    fgIsGrabbed = fgFlOnInit();
    }
    break;
  default:
    break;
  }

  return fgIsGrabbed;
}

// FOR COMPATIBLE (TMP)
void vFsMenuExit(void)
{
#ifdef USB_COPY_DEBUG
  DRS232LogS("vFsMenuExit");
#endif

#ifdef MP3_LYRICS_V2_SUPPORT
  if (bSharedInfo(SI_MP3_KARA_DISC_TYPE) == SV_ID_MATCH)
  {
    vDeleteWB(MP3LRC_MENU_WB);
    vDeleteWB(MP3LRC_INTRO_WB);
  }
  else
#endif
  {
  vDeleteWB(FL_MENU_WB);
  vDeleteWB(FL_INFO_WB);
  }

#ifdef JPEG_DDISC_DIGEST_ENABLE
  vDeleteWB(FL_DGTMN_WB);
#endif

  vFlSetCmdTarget(FL_CMD_TARGET_NONE);

#if (DRAM_SZ == DRAM_2M)  || defined(USE_DRAM_CFG1)
  // Commented by Hiker Hauk: This line of code conflicts with USB Copy.
  // Who added this line? Maybe he needs to check whether this is ok.
  #ifndef SUPPORT_USB_COPY
  vOsdSetMemBlk(OSD_MEM_BLK_STATIC, OSD_MEM_DEFAULT);
  #endif
#endif

#ifdef UNICODE_SUPPORT_COPY
  _bUSBCopyState = USB_COPY_STATE_NONE;
#endif


  return;
}

void vFlRecover(void) large
{
  switch (_bFlCmdTarget)
  {
    case FL_CMD_TARGET_MENU:
#ifdef MP3_LYRICS_V2_SUPPORT
      if (bSharedInfo(SI_MP3_KARA_DISC_TYPE) == SV_ID_MATCH)
      {
        vFlLrcRecover();
      }
      else
#endif
      {
      vFlMnRecover();
      }        
      break;
    case FL_CMD_TARGET_JPEG:
      vFlJvRecover();
      break;
#ifdef DDISC_FTYPE_MPG_SUPPORT
    case FL_CMD_TARGET_MPEG:
      vFlMpRecover();
      break;
#endif
#ifdef JPEG_DDISC_DIGEST_ENABLE
    case FL_CMD_TARGET_HELP:
      vFlHpRecover(TRUE);
      break;
#endif
  }
}

void vFlChgLang(BYTE bLang) large
{
  switch (_bFlCmdTarget)
  {
    case FL_CMD_TARGET_MENU:
      vFlMnChgLang(bLang);
      break;
#ifdef JPEG_DDISC_DIGEST_ENABLE
    case FL_CMD_TARGET_JPEG:
      vFlJvChgLang(bLang);
      break;
    case FL_CMD_TARGET_HELP:
      vFlHpRecover(FALSE);
      break;
#endif
  }
}

BOOL fgFlCheckStatus(BYTE bStatus) large
{
  if (!fgIsIsoPlay()
#ifdef SUPPORT_PCD
    && !fgIsPcdPlay()
#endif
    )
    return FALSE;

  switch (bStatus)
  {
    case FL_STATUS_BUSY:
      return ((bSharedInfo(SI_MP3_STT) == MP3STT_PB_STRT) ||
              (bSharedInfo(SI_JPG_STT) == JPEGSTT_DEC_STRT) ||
              (bSharedInfo(SI_MPIC_STT) == MPICSTT_PB_STRT));
    case FL_STATUS_OCCUPIED:
      return (fgFlClIsLock());
    case FL_STATUS_IN_MENU:
      return (_bFlCmdTarget == FL_CMD_TARGET_MENU);
    case FL_STATUS_IN_HELP:
      return (_bFlCmdTarget == FL_CMD_TARGET_HELP);
    case FL_STATUS_IN_JPEG:
      return (_bFlCmdTarget == FL_CMD_TARGET_JPEG);
    case FL_STATUS_IN_JPGDGST:
      return ((_bFlCmdTarget == FL_CMD_TARGET_JPEG) &&
              (bSharedInfo(SI_JPG_MODE) == JPEGMOD_DIGEST));
    case FL_STATUS_IN_MPEG:
      return (_bFlCmdTarget == FL_CMD_TARGET_MPEG);
    case FL_STATUS_JPEG_DECODING:
      return (bSharedInfo(SI_JPG_STT) == JPEGSTT_DEC_STRT);
  }
}
void vFlShowError(WORD wPos, WORD wMsg, BYTE bTime) large
{
#if 1//def JPG_INFO

  if (fgFlCheckStatus(FL_STATUS_IN_MENU))
  {
    vFlIpShowInfo(IP_INFO_ERROR, 0, wMsg);
  }
  else
  {
    vOsdPosShow(wPos, wMsg, bTime);
  }
#endif
  return;
}

#ifdef DATA_DISC_SUPPORT_PLAY_LIST
void vFlSendUopCmd(BYTE bCmd, BYTE bParam, BYTE bRetJob) large
{
  _bFlWaitUopRet = bCmd;
  _bFlUopRetJob = bRetJob;

  vSendUopCmd(bCmd, bParam, 0x0, 0x0);
}
#endif

void vFlHandleUopCheck() large
{
  if (fgFlClIsLock())
  {
    switch (bFlClPath())
    {
      case FL_CMDPATH_RPLC_CMDTGT:
        vFlCmdTargetEnter(_bFlCmdTarget);
        return;
    }
  }
}

//#ifndef NEW_PLAY
void vFlHandleUopRet(BYTE bUopId, BYTE bUopRet) large
{
  if (bUopRet != SV_NO_ERROR)
    return;
#if 0
  if (bUopId == UOP_STOP)
  {
    switch(_bFlUopRetJob)
    {
      case UOP_RET_CHG_CMDTGT:
        vFlCmdTargetEnter(_bFlCmdTarget);
        break;
      case UOP_RET_RPLC_CMDTGT:
    //vFlSetCmdTarget(FL_CMD_TARGET_MENU);
        break;
    }
    _bFlWaitUopRet = 0xFF;
  }
#endif

  if (fgFlClIsLock())
  {
    switch (bFlClPath())
    {
      case FL_CMDPATH_RPLC_CMDTGT:
        vFlCmdTargetEnter(_bFlCmdTarget);
        return;
      //PL00003626, for entering target after leaving previous target and not yet entering new one.
      case FL_CMDPATH_SEL_1:
        if (_bFlWaitUopRet == UOP_STOP && _bFlUopRetJob == UOP_RET_PL_JPG)
        {
          vFlCmdTargetEnter(_bFlCmdTarget);
          fgSetPlayPostKey(IR_CMD_DONE);
          _bFlWaitUopRet = UOP_NONE;
          _bFlUopRetJob = 0xFF;
        }
        return ;
    }
  }

  switch(_bFlCmdTarget)
  {
    case FL_CMD_TARGET_MENU:
#ifdef MP3_LYRICS_V2_SUPPORT
      if (bSharedInfo(SI_MP3_KARA_DISC_TYPE) == SV_ID_MATCH)
      {
        vFlLrcHandleUopRet(bUopId);
      }
      else
#endif
      {
      vFlMnHandleUopRet(bUopId);
      }
      break;
    case FL_CMD_TARGET_JPEG:
      //vFlJvHandleUopRet(bUopId);
      break;
    case FL_CMD_TARGET_MPEG:
//      vFlMphandleUopRet(bUopId);
      break;
    case FL_CMD_TARGET_HELP:
      break;
  }
}

#else  // #ifdef PLAYER_FLMENU

BOOL fgFsMenuState(void) large  { return TRUE; }

#endif  // #ifdef PLAYER_FLMENU

⌨️ 快捷键说明

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