www.pudn.com > 6027_HD65.rar > flipshow.c
/**********************************************************************/
/*************** MTK CONFIDENTIAL & COPYRIGHTED ****************/
/*************** ****************/
/*************** $Modtime:: 04/08/03 11:10a $ ****************/
/*************** $Revision:: 14 $ ****************/
/*************** ****************/
/*************** Description : File Menu ****************/
/*************** Info Panel Module ****************/
/*************** ****************/
/*************** Company : MediaTek Inc. ****************/
/*************** Programmer : Jacob Lin ****************/
/**********************************************************************/
#pragma NOAREGS
#define __FLIPSHOW_C_
#include "../general.h"
#include "../osdshow.h"
#include "flcomm.h"
#include "flctrl.h"
#include "flconfig.h"
#include "../../procdef.h"
#if (defined(FSMENU_INFO_PANEL) && defined(PLAYER_FLMENU))
static void vWord2Str(WORD wVal, BYTE *pbStr, BYTE bLen) large;
static void vFlIpShowTimeRemain(BYTE bMin, BYTE bSec) large;
static void vFlIpShowTotalTime(BYTE bMin, BYTE bSec) large;
static void vFlIpShowBitrate(WORD wBitrate) large;
static void vFlIpShowVolume(BYTE bVal, BYTE bStyle) large;
static void vFlIpShowPbcState(BYTE bVal, WORD wMsg) large;
static void vFlIpShowUsrAuxCtrl(BYTE bMode) large;
static void vFlIpShowFileIndex(WORD wCurr, BYTE bType) large;
#ifdef FL_CHK_FOLDER_NS
static void vFlIpShowFolderIndex(WORD wCurr) large;
#endif
static void vFlIpShowRptType(BYTE bRptType) large;
static void vFlIpShowListType(BYTE bType) large;
#ifdef SPTM_SUPPORT
static void vFlIpShowEq(void) large;
#endif
static code BYTE pbISOFastDispTbl[] = { 0, 2, 4, 8, 16, 32 };
static code BYTE pbISOSlowDispTbl[] = { 0, 2, 4, 8, 16 };
#ifdef SUPPORT_DTS_CD
extern BIT _fgDTSCD;
#endif
typedef struct sInfoPanelArea
{
WORD wPanelPos[2];
BYTE bTimeout[2];
};
#if 0
static code WORD _pwListTypeName[] =
{
OSD_MSG_MP3_NORMAL_MODE
#ifdef FLMN_SUPPORT_FILELIST
, OSD_MSG_FL_FILELIST
#endif
#ifdef FLMN_SUPPORT_PLAYLIST
, OSD_MSG_FL_PLAYLIST
#endif
};
#endif
#define OSD_TIMEOUT_SHORTER 2
static code struct sInfoPanelArea _rInfoPanelArea[IP_INFO_MAX] =
{
// Common
{ { OSD_POS_FS_PLAYTIME, OSD_POS_FS_PLAYTIME }, { OSD_NO_DISAPPEAR, OSD_NO_DISAPPEAR } },
{ { OSD_POS_FS_TOTALTIME, OSD_POS_FS_TOTALTIME }, { OSD_NO_DISAPPEAR, OSD_NO_DISAPPEAR } },
{ { OSD_POS_FS_FILE_INDEX, OSD_POS_FS_FILE_INDEX }, { OSD_NO_DISAPPEAR, OSD_NO_DISAPPEAR } },
// Panel 1
{ { OSD_POS_FS_BITRATE, OSD_POS_FS_INFO_BAR }, { OSD_NO_DISAPPEAR, OSD_TIMEOUT_SHORTER } },
{ { OSD_POS_FS_PBC, OSD_POS_FS_INFO_BAR }, { OSD_NO_DISAPPEAR, OSD_TIMEOUT_SHORTER } },
{ { OSD_POS_FS_USR_AUX_CTRL, OSD_POS_FS_INFO_BAR }, { OSD_NO_DISAPPEAR, OSD_TIMEOUT_SHORTER } },
{ { OSD_POS_FS_VOLUME, OSD_POS_FS_INFO_BAR }, { OSD_NO_DISAPPEAR, OSD_TIMEOUT_SHORTER } },
{ { OSD_POS_FS_EQ, OSD_POS_FS_INFO_BAR }, { OSD_NO_DISAPPEAR, OSD_TIMEOUT_SHORTER } },
// Panel 2
{ { OSD_POS_FS_INFO_BAR, OSD_POS_FS_LIST_TYPE }, { OSD_TIMEOUT_SHORTER, OSD_NO_DISAPPEAR } },
{ { OSD_POS_FS_INFO_BAR, OSD_POS_FS_KEY_SHIFT }, { OSD_TIMEOUT_SHORTER, OSD_NO_DISAPPEAR } },
{ { OSD_POS_FS_INFO_BAR, OSD_POS_FS_RPT_TYPE }, { OSD_TIMEOUT_SHORTER, OSD_NO_DISAPPEAR } },
{ { OSD_POS_FS_INFO_BAR, OSD_POS_FS_REVERB }, { OSD_TIMEOUT_SHORTER, OSD_NO_DISAPPEAR } },
// Info Bar
{ { OSD_POS_FS_INFO_BAR, OSD_POS_FS_INFO_BAR }, { OSD_TIMEOUT_SHORTER, OSD_TIMEOUT_SHORTER } },
{ { OSD_POS_FS_INFO_BAR, OSD_POS_FS_INFO_BAR }, { OSD_TIMEOUT_SHORTER, OSD_TIMEOUT_SHORTER } },
{ { OSD_POS_FS_DISC_TYPE, OSD_POS_FS_DISC_TYPE }, { OSD_TIMEOUT_LONG, OSD_TIMEOUT_LONG } }
};
////////////////////////////////////////////////////////////////////////////////
// Utility Function
static void vWord2Str(WORD wVal, BYTE *pbStr, BYTE bLen) large
{
wVal = wWRDToBCD(wVal);
pbStr[0] = bLen;
if (bLen == 3)
{
pbStr[1] = BCD_LO(bHiByte(wVal)) + '0';
pbStr[2] = BCD_HI(bLoByte(wVal)) + '0';
pbStr[3] = BCD_LO(bLoByte(wVal)) + '0';
}
else // if (bLen == 4)
{
pbStr[1] = BCD_HI(bHiByte(wVal)) + '0';
pbStr[2] = BCD_LO(bHiByte(wVal)) + '0';
pbStr[3] = BCD_HI(bLoByte(wVal)) + '0';
pbStr[4] = BCD_LO(bLoByte(wVal)) + '0';
}
}
static void vFlIpDrawInfo(BYTE bInfo, WORD wMsg, BYTE *pbStr) large
{
BYTE bTime;
WORD wPos;
wPos = _rInfoPanelArea[bInfo].wPanelPos[_bFlIpState];
bTime = _rInfoPanelArea[bInfo].bTimeout[_bFlIpState];
if (pbStr)
{
vOsdPosShowArg(wPos, wMsg, bTime, pbStr);
}
else
{
vOsdPosShow(wPos, wMsg, bTime);
}
}
///////////////////////////////////////////////////////////////////////////////
//
static void vFlIpShowTimeRemain(BYTE bMin, BYTE bSec) large
{
BYTE pbTime[5];
vCheckTimeValid2(bMin, bSec);
pbTime[0] = 4;
pbTime[1] = BCD_HI(bMin) + '0';
pbTime[2] = BCD_LO(bMin) + '0';
pbTime[3] = BCD_HI(bSec) + '0';
pbTime[4] = BCD_LO(bSec) + '0';
vFlIpDrawInfo(IP_INFO_PLAYTIME, OSD_MSG_TIME_RIGHT_2, pbTime);
}
static void vFlIpShowTotalTime(BYTE bMin, BYTE bSec) large
{
BYTE pbTime[5];
vCheckTimeValid2(bMin, bSec);
pbTime[0] = 4;
pbTime[1] = BCD_HI(bMin) + '0';
pbTime[2] = BCD_LO(bMin) + '0';
pbTime[3] = BCD_HI(bSec) + '0';
pbTime[4] = BCD_LO(bSec) + '0';
vFlIpDrawInfo(IP_INFO_TOTALTIME, OSD_MSG_TIME_RIGHT_2, pbTime);
}
static void vFlIpShowBitrate(WORD wBitrate) large
{
BYTE i;
BYTE pbBr[8];
if (wBitrate != 0xFFFF)
{
vWord2Str(wBitrate, pbBr, 4);
pbBr[0] = 8;
pbBr[5] = 'K';
pbBr[6] = 'b';
pbBr[7] = 'p';
pbBr[8] = 's';
for (i=1; i<=4; i++)
{
if (pbBr[i] == '0')
pbBr[i] = ' ';
else
break;
}
}
else
{
pbBr[0] = 4;
pbBr[1] = ' ';
pbBr[2] = ' ';
pbBr[3] = ' ';
pbBr[4] = ' ';
}
if (_bFlIpState == IP_STATE_PANEL_1)
vOsdPosShowStr(OSD_POS_FS_BITRATE, pbBr);
}
static void vFlIpShowVolume(BYTE bVal, BYTE bStyle) large
{
BYTE pbStr[3];
BYTE i;
if (bStyle & FLIP_VOLUME_MUTE_ON)
{
/*
_wStartX = FS_VOLUME_X;
_wEndX = FS_VOLUME_X + FS_VOLUME_W;
_wStartY = FS_VOLUME_Y;
_wEndY = FS_VOLUME_H;
*/
if (_bFlIpState == IP_STATE_PANEL_1)
{
vOsdPosClear(OSD_POS_FS_VOLUME);
vOsdPosShow(OSD_POS_FS_VOLUME, OSD_MSG_MUTE, OSD_NO_DISAPPEAR);
}
else
vOsdPosShow(OSD_POS_FS_INFO_BAR, OSD_MSG_MUTE, OSD_TIMEOUT_SHORT);
return;
}
else if (bStyle & FLIP_VOLUME_MUTE_OFF)
{
if (_bFlIpState == IP_STATE_PANEL_1)
{
vOsdPosClear(OSD_POS_FS_VOLUME);
}
else
{
vOsdPosShow(OSD_POS_FS_INFO_BAR, OSD_MSG_MUTEOFF, OSD_TIMEOUT_SHORT);
return;
}
}
if (_bFlIpState == IP_STATE_PANEL_1)
{
if (bStyle & FLIP_VOLUME_REDRAW)
{
_wStartX = FS_VOLUME_X;
_wEndX = FS_VOLUME_X + FS_VOLUME_W;
_wStartY = FS_VOLUME_Y;
_wEndY = FS_VOLUME_H;
vOsdPosClear(OSD_POS_FS_VOLUME);
_wStartY = FS_VOLUME_Y;
_wEndY = FS_VOLUME_H;
vDrawProgress(bVal, MAX_VOL_LEVEL);
}
else
{
_wStartX = FS_VOLUME_X;
_wEndX = FS_VOLUME_X + FS_VOLUME_W;
_wStartY = FS_VOLUME_Y;
_wEndY = FS_VOLUME_H;
if (bStyle & FLIP_VOLUME_UP)
{
//vMoveProgress(bVal-1, MAX_VOL_LEVEL, FALSE);
}
else if (bStyle & FLIP_VOLUME_DOWN)
{
vMoveProgress(bVal+1, MAX_VOL_LEVEL, FALSE);
}
_wStartX = FS_VOLUME_X;
_wEndX = FS_VOLUME_X + FS_VOLUME_W;
_wStartY = FS_VOLUME_Y;
_wEndY = FS_VOLUME_H;
vMoveProgress(bVal, MAX_VOL_LEVEL, TRUE);
}
}
else
{
if (bVal < 0)
{
bVal = 0;
}
if (bVal > MAX_VOL_LEVEL)
{
bVal = MAX_VOL_LEVEL;
}
/*
pbStr[0] = 12;
for(i=0; i= 1000)
wCurr = wCurr * 10 + _rNumInStateCtx.bDig[3];
}
else
{
wCurr = wFlGetItemIdx(_bFlMnCurItemIdx) + 1;
}
if (wCurr > _wFlMnListLen)
wCurr = wFlGetItemIdx(_bFlMnCurItemIdx) + 1;
if (wCurr) wCurr--;
bType = IP_INFO_FILE_INDEX;
}
if (bType == IP_INFO_FILE_INDEX)
{
//if (bFlGetItemType(wCurr % FL_ITEM_N) == FTYPE_FOLDER)
#ifdef FL_CHK_FOLDER_NS
if (bFlGetItemType(wCurr % 6) == FTYPE_FOLDER)
{
vFlIpShowFolderIndex(wCurr);
return;
}
#endif
wTotal = _wFlMnListLen;
wCurr++;
#ifdef FL_CHK_FOLDER_NS
if(bSharedInfo(FL_LIST_FIELD(_bFlMnListId)) == FLPARM_LIST_FOLDER)
wFldrNs = wFlGetSubFldrNs(_bFlMnListId);
else
wFldrNs = 0;
wCurr -= (wFldrNs);
wTotal -= (wFldrNs);
#endif
if (wTotal < 1000)
{
vWord2Str(wCurr, pbStr, 3);
vWord2Str(wTotal, pbStr+4, 3);
pbStr[4] = '/';
pbStr[8] = pbStr[9] = ' ';
}
else // if (wTotal > 1000)
{
vWord2Str(wCurr, pbStr, 4);
vWord2Str(wTotal, pbStr+5, 4);
pbStr[5] = '/';
}
pbStr[0] = 9;
vInMsgColDis(FL_INFO_WB);
vOsdPosShowStr(OSD_POS_FS_FILE_INDEX, pbStr);
}
else // IP_INFO_FILE_INDEX_?
{
wTotal = _wFlMnListLen;
if (wTotal < 1000)
{
pbStr[0] = 6;
pbStr[1] = pbStr[2] = 3;
}
else
{
pbStr[0] = 7;
pbStr[1] = pbStr[2] = 4;
}
pbStr[3] = 0;
pbStr[4] = pbStr[5] = pbStr[6] = pbStr[7] = '-';
wCurr = wWRDToBCD(wCurr);
switch(bType)
{
case IP_INFO_FILE_INDEX_0:
break;
case IP_INFO_FILE_INDEX_1:
#ifdef FLIP_DIGIT_RIGHT
if (wTotal < 1000)
pbStr[6] = BCD_LO(bHiByte(wCurr)) + '0';
else
pbStr[7] = BCD_HI(bHiByte(wCurr)) + '0';
#else
pbStr[4] = BCD_HI(bHiByte(wCurr)) + '0';
#endif
break;
case IP_INFO_FILE_INDEX_2:
#ifdef FLIP_DIGIT_RIGHT
if (wTotal < 1000)
{
pbStr[5] = BCD_LO(bHiByte(wCurr)) + '0';
pbStr[6] = BCD_HI(bLoByte(wCurr)) + '0';
}
else
{
pbStr[6] = BCD_HI(bHiByte(wCurr)) + '0';
pbStr[7] = BCD_LO(bHiByte(wCurr)) + '0';
}
#else
pbStr[4] = BCD_LO(bHiByte(wCurr)) + '0';
pbStr[5] = BCD_HI(bLoByte(wCurr)) + '0';
#endif
break;
case IP_INFO_FILE_INDEX_3:
#ifdef FLIP_DIGIT_RIGHT
if (wTotal < 1000)
{
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:
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(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
(bSharedInfo(SI_FS_DISC_TYPE) == 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
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))