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

📄 flipshow.c

📁 MTK 1389E SOURCE CODE
💻 C
📖 第 1 页 / 共 2 页
字号:
          pbStr[4] = BCD_LO(bHiByte(wCurr)) + '0';
          pbStr[5] = BCD_HI(bLoByte(wCurr)) + '0';
          pbStr[6] = BCD_LO(bLoByte(wCurr)) + '0';
        }
        else
        {
          pbStr[5] = BCD_HI(bHiByte(wCurr)) + '0';
          pbStr[6] = BCD_LO(bHiByte(wCurr)) + '0';
          pbStr[7] = BCD_HI(bLoByte(wCurr)) + '0';
        }
    #else
        pbStr[4] = BCD_LO(bHiByte(wCurr)) + '0';
        pbStr[5] = BCD_HI(bLoByte(wCurr)) + '0';
        pbStr[6] = BCD_LO(bLoByte(wCurr)) + '0';
    #endif
        break;
      case IP_INFO_FILE_INDEX_4:
        pbStr[4] = BCD_HI(bHiByte(wCurr)) + '0';
        pbStr[5] = BCD_LO(bHiByte(wCurr)) + '0';
        pbStr[6] = BCD_HI(bLoByte(wCurr)) + '0';
        pbStr[7] = BCD_LO(bLoByte(wCurr)) + '0';
        break;
    }
    
#ifdef FL_CHK_FOLDER_NS 
    if (bFlGetItemType(wCurr % 6) == FTYPE_FOLDER)
      vFlIpClearInfoArea(IP_INFO_FILE_INDEX);
#endif
    vInMsgColEn(FL_INFO_WB);
    vOsdPosPasteArg(OSD_POS_FS_FILE_INDEX, OSD_MSG_FLMENU_SELECT, pbStr, 0);
  }
}

/**
 * Show the equalizer info (visual spectrum).
 */
#ifdef SPTM_SUPPORT
static void vFlIpShowEq(void) large
{
#ifdef SPTM_SUPPORT
  BYTE  bTmp;
/*
  _wStartX = 300;
  _wStartY = 32;
  _wEndX = 12;  
  _wEndY = 32;
*/
  _wStartX = FS_EQ_X;
  _wStartY = FS_INFO_PANEL_LINE_2_Y;
  _wEndX = FS_EQ_LINE_W;  
  _wEndY = 32;

  bTmp = bSharedInfo(SI_MP3_MOD);
  vSetSharedInfo(SI_PBC_STATE, bTmp);

  //vShowEqBar(FL_INFO_WB, OSD_EQ_TYPE_BAR, FALSE, 15, 4);
  vShowEqBar(FL_INFO_WB, OSD_EQ_TYPE_BAR, FALSE, 14, 4);
#endif
}
#endif

static void vFlIpShowRptType(BYTE bRptType) large
{
  WORD  wMsg;

  switch(bRptType)
  {
    case SV_REPEAT_NONE:
      wMsg = OSD_MSG_MP3_NORMAL_MODE;
      break;

#ifdef DDISC_PB_REP_FOLDER_ENABLED
    case SV_REPEAT_ALL:
      wMsg = OSD_MSG_MP3_REPEAT_FOLDER;
      break;
#endif

    case SV_REPEAT_TRACK:
      wMsg = OSD_MSG_MP3_REPEAT_ONE;
      break;

#ifdef DDISC_PB_SHUFFLE_ENABLED
    case SV_SHUFFLE:
      wMsg = OSD_MSG_MP3_SHUFFLE;
      break;
#endif

#ifdef DDISC_PB_RANDOM_ENABLED
    case SV_RANDOM:
      wMsg = OSD_MSG_MP3_RANDOM;
      break;
#endif

#ifdef DDISC_PB_SINGLE_ENABLED
    case SV_SINGLE:
      wMsg = OSD_MSG_MP3_SINGLE;
      break;
#endif
      
    default: 
      // TODO: add the error handling.
      return;
  }

  vFlIpDrawInfo(IP_INFO_RPT_TYPE, wMsg, 0);
  //void vOsdPosShow(WORD wPosIndex, WORD wMsgIndex, BYTE bTime) large
  //vOsdPosShow(OSD_POS_FS_RPT_TYPE, wMsg, 0xFF);
}

static void vFlIpShowListType(BYTE bType) large
{
  WORD  wMsg;

//  wMsg = _pwListTypeName[bType];

  switch(bType)
  {
    case FLPARM_LIST_FOLDER:
      wMsg = OSD_MSG_MP3_NORMAL_MODE;
      break;
      
#ifdef DATA_DISC_SUPPORT_DISC_LIST
    case FLPARM_LIST_DISC:
      wMsg = OSD_MSG_FL_FILELIST;
      break;
#endif

#ifdef DATA_DISC_SUPPORT_PLAY_LIST 
    case FLPARM_LIST_PLAYLIST:
      wMsg = OSD_MSG_FL_PLAYLIST;
      break;
#endif

    case FLPARM_LIST_INVALID:
      wMsg = OSD_MSG_MP3_NORMAL_MODE;
      break;
  }

  vFlIpDrawInfo(IP_INFO_LIST_TYPE, wMsg, 0);
}


static void vFlIpShowPbcState(BYTE bVal, WORD wMsg) large
{
  BYTE  bState, bSpeed;
  BYTE  pbStr[4];
  WORD  wMsg2;

#if 0
  if (wMsg != 0)
  {
    vFlIpDrawInfo(IP_INFO_PBC, wMsg, 0);
  }
  else
#endif  
  {
    bState = bSharedInfo(SI_MP3_MOD);
    bSpeed = bSharedInfo(SI_PBC_SPEED);
    
    //if (bMode == SV_PLAY)
    bVal = pbISOFastDispTbl[bSpeed];
    bSpeed = bVal;
    {
      pbStr[0] = 2;

      if ((bState == SV_FF) || (bState == SV_FR))
      {
        bVal = bHEXToBCD(bVal);
        if (BCD_HI(bVal) > 0)
        {
          pbStr[1] = BCD_HI(bVal) + '0';
        }
        else
        {
          pbStr[1] = ' ';
        }
        pbStr[2] = BCD_LO(bVal) + '0';
      }
#if ((!defined DISABLE_SF) && (!defined DISABLE_SR))   
      else if ((bState == SV_SF) || (bState == SV_SR))
      {
        bVal = bHEXToBCD(bVal);
        if (BCD_HI(bVal) > 0)
        {
          pbStr[1] = BCD_HI(bVal) + '0';
          pbStr[2] = BCD_LO(bVal) + '0';
        }
        else
        {
          pbStr[1] = BCD_LO(bVal) + '0';
          pbStr[2] = ' ';
        }
      }
#endif      
      else
      {
        pbStr[0] = 0;
      }
      //vGetPbcStateMsg(bMode, pbISOFastDispTbl[bSpeed], &wMsg, pbStr);
      vGetPbcStateMsg(bState, bSpeed, &wMsg2, pbStr);
      vFlIpDrawInfo(IP_INFO_PBC, wMsg2, pbStr);
    }
  }
}

static void vFlIpShowUsrAuxCtrl(BYTE bMode) large
{
  WORD  wMsg;

  switch (bMode)
  {
    case SV_REPEAT_SET_A:
      wMsg = OSD_MSG_ICON_RPT_A;
      break;
    case SV_REPEAT_LAST_SP:
    case SV_REPEAT_INSTANT:
    case SV_REPEAT_AB:
      wMsg = OSD_MSG_ICON_RPT_AB;
      break;
    case SV_REPEAT_NONE:
    case SV_REPEAT_ABNONE:
      vFlIpClearInfoArea(IP_INFO_USR_AUX_CTRL);
      return;
  }
  
  vFlIpDrawInfo(IP_INFO_USR_AUX_CTRL, wMsg, 0);
}

#if 0
void vFlIpShowKeyShift(BYTE bShift) large
{
  char  cTmp;
  BYTE  pbStr[4];

  //cTmp = (char) bShift;
  cTmp = _rAudioCtrl.cCurKey;
  if (cTmp < 0)
  {
    pbStr[1] = '-';
    cTmp = - cTmp;
  }
  else
  {
    pbStr[1] = '+';
  }
  pbStr[0] = bHEXToBCD(cTmp);
  pbStr[2] = BCD_HI(pbStr[0]) + '0';
  pbStr[3] = BCD_LO(pbStr[0]) + '0';
  pbStr[0] = 3;

  vFlIpDrawInfo(IP_INFO_KEY_SHIFT, OSD_MSG_SET_KEY, pbStr);
}
#endif

///////////////////////////////////////////////////////////////////////////////
// Interface


void vFlIpClearInfoArea(BYTE bArea) large
{
  BYTE  i;

  switch (bArea)
  {
    case IP_INFO_PANEL_1:
      for (i=IP_INFO_PANEL_1_START; i<=IP_INFO_PANEL_1_END; i++)
      {
        if (i == IP_INFO_EQ)
        {
          _wStartX = FS_EQ_X;
          _wStartY = 32;
          vOsdClearPos(FL_INFO_WB, 200, 32);
        }
        else
          vOsdPosClear(_rInfoPanelArea[i].wPanelPos[0]);
      }
      break;
     
    case IP_INFO_PANEL_2:
      for (i=IP_INFO_PANEL_2_START; i<=IP_INFO_PANEL_2_END; i++)
      {
        vOsdPosClear(_rInfoPanelArea[i].wPanelPos[1]);
      }
      break;
    
    default:
      if (_bFlIpState == IP_STATE_PANEL_1)
        vOsdPosClear(_rInfoPanelArea[bArea].wPanelPos[0]);
      else // if (_bFlIpState == IP_STATE_PANEL_2)
        vOsdPosClear(_rInfoPanelArea[bArea].wPanelPos[1]);
      break;
  }
}

#ifdef PLAYER_SURROUND
static code WORD _pwReverbModeMsg[AUD_REVERB_MODE_MAX + 1] = { // include OFF
  /* 00 */ OSD_MSG_OFF,
  /* 01 */ OSD_MSG_CONCERT,
  /* 02 */ OSD_MSG_LIVING_ROOM,
  /* 03 */ OSD_MSG_HALL,
  /* 04 */ OSD_MSG_BATHROOM,
  /* 05 */ OSD_MSG_CAVE,
  /* 06 */ OSD_MSG_ARENA,
  /* 07 */ OSD_MSG_CHURCH
};
#endif

void vFlIpShowInfo(BYTE bInfo, BYTE bParam, WORD wParam) large
{
  BYTE  bType;

  switch (bInfo)
  {
    case IP_INFO_PLAYTIME:
      vFlIpShowTimeRemain(bParam, bLoByte(wParam));
      break;
    case IP_INFO_TOTALTIME:
      vFlIpShowTotalTime(bParam, bLoByte(wParam));
      break;
    case IP_INFO_FILE_INDEX:
      vFlIpShowFileIndex(wParam, IP_INFO_FILE_INDEX);
      break;
      break;    
    case IP_INFO_BITRATE:
     if (bSharedInfo(SI_MP3_STT) == MP3STT_PB_STRT)  // PL0010358 make the ¨kbps〃 font disappear ,when read cdda and jpg.
    	 {
      vFlIpShowBitrate(wParam);
          }
      break;
    case IP_INFO_PBC:
      vFlIpShowPbcState(bParam, wParam);
      break;
    case IP_INFO_USR_AUX_CTRL:
      vFlIpShowUsrAuxCtrl(bParam);
      break;
    case IP_INFO_VOLUME:
      vFlIpShowVolume(bParam, bLoByte(wParam));
      break;
    case IP_INFO_EQ:
#ifdef SPTM_SUPPORT
      vFlIpShowEq();
#endif
      break;

      case IP_INFO_LIST_TYPE:
        vFlIpShowListType(bParam);
        break;
      case IP_INFO_KEY_SHIFT:
        //vFlIpShowKeyShift(bParam);
        break;
      case IP_INFO_RPT_TYPE:
        vFlIpShowRptType(bParam);
        break;
      case IP_INFO_REVERB:
#ifdef PLAYER_SURROUND
        /*
        bType = bEepromReadByte(REVERB_MD_POS) + 1;   // !!!
        bType--;                                      // !!! if we use bType directly, its value will be wrong???!!!
        vFlIpDrawInfo(IP_INFO_REVERB, _pwReverbModeMsg[bType], 0);
        */
        if (wParam != 0)
          vFlIpDrawInfo(IP_INFO_REVERB, wParam, 0);
        else
          vFlIpDrawInfo(IP_INFO_REVERB, _pwReverbModeMsg[bParam], 0);
#endif
        break;

    case IP_INFO_FILE_INDEX_0:
    case IP_INFO_FILE_INDEX_1:
    case IP_INFO_FILE_INDEX_2:
    case IP_INFO_FILE_INDEX_3:
    case IP_INFO_FILE_INDEX_4:
    case IP_INFO_FILE_INDEX_5:
      vFlIpShowFileIndex(wParam, bInfo);
      break;

    case IP_INFO_ERROR:
      vFlIpDrawInfo(IP_INFO_ERROR, wParam, 0);
      break;    
      
    case IP_INFO_CHG_LANG:
      vFlIpDrawInfo(IP_INFO_CHG_LANG, wParam, 0);
      break;
      
    case IP_INFO_DISC_TYPE: 
#ifdef RS232_LOG
  DBGLogS(" show disc type ");
  DBGLogB(bSharedInfo(FL_CMD_BLK_SA + 2),0xff,0xff,0xff);
  DBGLogS("\n");
#endif
#if 1   // 20050324, IS00001867, adjust the flow, when stopped, SI_A_CODE_MODE will be cleared to 0xFF
#ifdef CDDA_USE_CDFS
      if (_fgDTSCD)  //if(bSharedInfo(FL_CMD_BLK_SA + 2) == FTYPE_DTS)
      {
        vFlIpDrawInfo(IP_INFO_DISC_TYPE, OSD_MSG_DTS_CD, 0);
      }
      else
#endif
#ifdef HDCD_EN          
      if((bSharedInfo(SI_A_CODE_MODE) == SV_A_CODE_HDCD) || //according to track
          // 20050324, IS00001867, should be SV_HDCD instead of SV_A_CODE_HDCD for disc type
         (bSharedInfo(SI_FS_DISC_TYPE) == SV_HDCD/*SV_A_CODE_HDCD*/))   //according to disc
      {    
        vFlIpDrawInfo(IP_INFO_DISC_TYPE, OSD_MSG_HDCD, 0);
      }
      else
#endif
      {
        vFlIpDrawInfo(IP_INFO_DISC_TYPE, OSD_MSG_CD, 0);
      }    
#else
      if(bSharedInfo(SI_A_CODE_MODE) == SV_A_CODE_PCM)
      {
        vFlIpDrawInfo(IP_INFO_DISC_TYPE, OSD_MSG_CD, 0);
      }    
#ifdef HDCD_EN          
      else if((bSharedInfo(SI_A_CODE_MODE) == SV_A_CODE_HDCD) || //according to track
          // 20050324, IS00001867, should be SV_HDCD instead of SV_A_CODE_HDCD for disc type
         (bSharedInfo(SI_FS_DISC_TYPE) == SV_HDCD/*SV_A_CODE_HDCD*/))   //according to disc
      {    
        vFlIpDrawInfo(IP_INFO_DISC_TYPE, OSD_MSG_HDCD, 0);
      }
#endif      
#ifdef CDDA_USE_CDFS
      else if (_fgDTSCD)  //if(bSharedInfo(FL_CMD_BLK_SA + 2) == FTYPE_DTS)
      {
        vFlIpDrawInfo(IP_INFO_DISC_TYPE, OSD_MSG_DTS_CD, 0);
      } 
#endif
#endif
      break;
     
  }
}


#if 0

void vFlIpShowFileType(BYTE bType) large
{
  switch(bSharedInfo(SI_ISO_ITEM_TYPE))
  {
    case SV_ISO_MP3:
      break;
    case SV_ISO_AC3:
      break;
    case SV_ISO_DTS:
      break;
    case SV_ISO_MLP:
      break;
    case SV_ISO_WMA:
      break;
    case SV_ISO_WAV:
      break;
    case SV_ISO_MPEGA:
      break;
    case SV_ISO_AAC:
      break;
    case SV_ISO_DSD:
      break;
  }
}


#endif

#else  // #if (defined(FSMENU_INFO_PANEL) && defined(PLAYER_FLMENU))

static code BYTE pbISOFastDispTbl[] = { 0 };
static code BYTE pbISOSlowDispTbl[] = { 0 };

typedef struct sInfoPanelArea
{
  WORD  wPanelPos[2];
  BYTE  bTimeout[2];
};

static code struct sInfoPanelArea _rInfoPanelArea[1] =
{
  {0, 0, 0, 0}
};


#endif  // #if (defined(FSMENU_INFO_PANEL) && defined(PLAYER_FLMENU))

⌨️ 快捷键说明

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