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

📄 flipshow.c

📁 mtk1389L latest sourcecode enjoy
💻 C
📖 第 1 页 / 共 2 页
字号:
      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';
      }
      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] = ' ';
        }
      }
      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);
}

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);
}

///////////////////////////////////////////////////////////////////////////////
// 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 SUPPORT_EMD
#define USB_EXIST   0x3F

#ifdef FLMN_EMD_INFO_REFRESH

#define FONT_W_C   16
#define FONT_W_F   16

#define EMD_MSG_POS_USB   FS_EMD_ATTACH_X
#define EMD_MSG_D_SIZE   (FONT_W_D + FONT_W_SPACE)
#define EMD_MSG_U_SIZE   (FONT_W_U + FONT_W_SPACE)
#define EMD_MSG_1_SIZE   (FONT_W_NUM + FONT_W_SPACE)
#define EMD_MSG_2_SIZE   (FONT_W_NUM + FONT_W_SPACE)
#define EMD_MSG_3_SIZE   (FONT_W_NUM + FONT_W_SPACE)
#define EMD_MSG_4_SIZE   (FONT_W_NUM + FONT_W_SPACE)
#define EMD_MSG_5_SIZE   (FONT_W_NUM + FONT_W_SPACE)
#define EMD_MSG_6_SIZE   (FONT_W_NUM + FONT_W_SPACE)

static code BYTE _pbUsbDevMsg[6] =
{
  '1',
  '2',
  '3',
  '4',
  '5',
  '6'
};

static code WORD _pwFlUsbMsgSize[6] =
{
  EMD_MSG_1_SIZE,
  EMD_MSG_2_SIZE,
  EMD_MSG_3_SIZE,
  EMD_MSG_4_SIZE,
  EMD_MSG_5_SIZE,
  EMD_MSG_6_SIZE
};

#define EMD_MSG_POS_MCR   FS_EMD_ATTACH_X
#define EMD_MSG_MS_SIZE   (FONT_W_M + FONT_W_S + FONT_W_SPACE)
#define EMD_MSG_SD_SIZE   (FONT_W_S + FONT_W_D + FONT_W_SPACE)
#define EMD_MSG_SM_SIZE   (FONT_W_S + FONT_W_M + FONT_W_SPACE)
#define EMD_MSG_CF_SIZE   (FONT_W_C + FONT_W_F + FONT_W_SPACE)

static code WORD _pwFlMcrCardMsg[4] =
{
  OSD_MSG_MS,
  OSD_MSG_SD,
  OSD_MSG_SM,
  OSD_MSG_CF
};

static code WORD _pwFlMcrCardMsgSize[4] =
{
  EMD_MSG_MS_SIZE,
  EMD_MSG_SD_SIZE,
  EMD_MSG_SM_SIZE,
  EMD_MSG_CF_SIZE
};

void vFlIpDrawEmdInfo(BYTE bType) large
{
    BYTE  bDevSt, bCurDev, i;
    BYTE  pbStr[18], bIdx;

    BOOL fgMCRUsed = FALSE;
    BYTE bUsbAttachCount = 0;
    
    if(!fgWbEable(FL_MENU_WB) && fgFlCheckStatus(FL_STATUS_IN_MENU))
    {
       vEnableWB(FL_MENU_WB);
    }
    
    vOsdPosClear(OSD_POS_EMD_INFO);
    bCurDev = bSharedInfo(SI_DEVICE_ID);
    for (bIdx = 1; bIdx < 18; bIdx++)
      pbStr[bIdx] = 0;
    _wStartY = FS_EMD_ATTACH_Y;
    _wEndY = _wStartY + FS_EMD_ATTACH_H;

    switch (bType)
    {
    case EMD_INFO_USB:

#ifdef SUPPORT_MULTI_PARTITION_FAT      
      /*Alan Cheng: modified for support multi-partitioned HDD */
      bDevSt = ((bSharedInfo(SI_EMD_DRIVE_0) >> SV_MCR_TOTAL_NS) | 
                     (bSharedInfo(SI_EMD_DRIVE_1) << SV_MCR_TOTAL_NS));
      bCurDev = (bSharedInfo(SI_DRIVE_ID) - SV_MCR_TOTAL_NS);
#else
      bDevSt = bSharedInfo(SI_EMD_ATTACH);
#endif

      _wStartX = EMD_MSG_POS_USB + FONT_W_SPACE;
      _wEndX = _wStartX;      
      //prepare attached USB devices display string
//    pbStr[1] = ' ';
    pbStr[1] = 'D';
    pbStr[2] = ' ';

      if (bDevSt & USB_EXIST)
      {
      pbStr[3] = 'U';
      pbStr[4] = ' ';
      bIdx = 5;
        bUsbAttachCount = 1;
        for (i = 0; i < 6; i++)
        {
          if (bDevSt & (0x01 << i))
          {
            pbStr[bIdx++] = _pbUsbDevMsg[i];
            pbStr[bIdx++] = ' ';
            bUsbAttachCount++;
          }
        }
      }
      pbStr[0] = 2 + (2 * bUsbAttachCount);
      //show string
      vOsdShowStr(FL_MENU_WB, pbStr);
      if (bCurDev == SV_DEVID_CDVDROM)
      {
        //highlight D
        _wEndX = _wStartX + EMD_MSG_D_SIZE;
        vChgColRep(FL_MENU_WB, FLCOLOR_WHITE1, FLCOLOR_YELLOW);
      }
      else if ((bDevSt & USB_EXIST) &&
               ((bCurDev <= SV_DEVID_USB_SLOT_6) &&
                (bCurDev >= SV_DEVID_USB_SLOT_1)))
      {
        //highlight U
        _wStartX += EMD_MSG_D_SIZE;
        _wEndX = _wStartX + EMD_MSG_U_SIZE;
        vChgColRep(FL_MENU_WB, FLCOLOR_WHITE1, FLCOLOR_YELLOW);
        _wStartX += EMD_MSG_U_SIZE;

        for (i = 0; i < 6; i++)
        {
          if (bDevSt & (0x01 << i))
          {
            if (i == bCurDev)
            {
              _wEndX = _wStartX + _pwFlUsbMsgSize[i];
              vChgColRep(FL_MENU_WB, FLCOLOR_WHITE1, FLCOLOR_YELLOW);
              break;
            }
            else
            {
              _wStartX += _pwFlUsbMsgSize[i];
              _wEndX = _wStartX;
            }
          }
        }
      }
      break;

    case EMD_INFO_MCR:
      bDevSt = bSharedInfo(SI_MCR_ATTACH);
      _wStartX = EMD_MSG_POS_MCR;
      _wEndX = _wStartX;
      //prepare attached MCR devices display string
      pbStr[0] = 8;
      bIdx = 1;

      for (i = 0; i < 4; i++)
      {
        if (bDevSt & (0x01 << i))
        {
          pbStr[bIdx++] = _pwFlMcrCardMsg[i] & 0xFF;
          pbStr[bIdx++] = _pwFlMcrCardMsg[i] >> 8;
          if (!fgMCRUsed)
          {
            if (bCurDev == (i + SV_DEVID_MS_CARD))
            {
              _wEndX = _wStartX + _pwFlMcrCardMsgSize[i];
              fgMCRUsed = TRUE;
            }
            else
            {
              _wStartX += _pwFlMcrCardMsgSize[i];
              _wEndX = _wStartX;
            }
          }
        }
      }
      //show string
      vOsdPosShowArg(OSD_POS_EMD_INFO, OSD_MSG_1_CARD_INSERT + ((bIdx - 2) / 2), OSD_NO_DISAPPEAR, pbStr);
      if (fgMCRUsed)
      {
        vChgColRep(FL_MENU_WB, FLCOLOR_WHITE1, FLCOLOR_YELLOW);
      }
      break;
  }
}

#else  // -FLMN_EMD_INFO_REFRESH

void vFlIpDrawEmdInfo(void) large
{
  BYTE  i;
  BYTE  bDevSt, bCurDev;


  vOsdPosShow(OSD_POS_EMD_INFO, OSD_MSG_EMD_ATTACH, OSD_NO_DISAPPEAR);

  bDevSt = bSharedInfo(SI_EMD_ATTACH);
  bCurDev = bSharedInfo(SI_DEVICE_ID);

  _wStartY = FS_EMD_ATTACH_Y;
  _wEndY = _wStartY + FS_EMD_ATTACH_H;

  if (bCurDev == SV_DEVID_CDVDROM)
  {
    _wStartX = EMD_MSG_POS_D;
    _wEndX = EMD_MSG_POS_U;
    vChgColRep(FL_MENU_WB, FLCOLOR_WHITE1, FLCOLOR_YELLOW);
  }

  _wStartX = EMD_MSG_POS_U;
  _wEndX = EMD_MSG_POS_1;

  if ((bDevSt & USB_EXIST) &&
      ((bCurDev <= SV_DEVID_USB_SLOT_6) && (bCurDev >= SV_DEVID_USB_SLOT_1)))
  {
    vChgColRep(FL_MENU_WB, FLCOLOR_WHITE1, FLCOLOR_YELLOW);
  }
  else
  {
    vChgColRep(FL_MENU_WB, FLCOLOR_WHITE1, FLCOLOR_BLACK);
  }

  for (i = 0; i < 8; i++)
  {
    _wStartX = _pwEmdMsgCharPos[i];
    _wEndX = _pwEmdMsgCharPos[i+1];

    if (bDevSt & (0x01 << i))
    {
      if (i == bCurDev)
      {
        vChgColRep(FL_MENU_WB, FLCOLOR_WHITE1, FLCOLOR_YELLOW);
      }
    }
    else
    {
      vChgColRep(FL_MENU_WB, FLCOLOR_WHITE1, FLCOLOR_BLACK);
    }
  }
}
#endif  // FLMN_EMD_INFO_REFRESH

#endif  // SUPPORT_EMD

#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
extern xdata BYTE _bIsSetupMenuShow;
void vFlIpShowInfo(BYTE bInfo, BYTE bParam, WORD wParam) large
{
  BYTE  bType;
  
  if(_bIsSetupMenuShow == TRUE)
  {
    return;
  }
  
  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;
    case IP_INFO_BITRATE:
      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;

#ifdef SUPPORT_EMD
    case IP_INFO_EMD_ATTACH:
  #ifdef FLMN_EMD_INFO_REFRESH
      vFlIpDrawEmdInfo(bParam);
  #else
      vFlIpDrawEmdInfo();
  #endif
      break;
#endif
  }
}


#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 + -