📄 flipshow.c
字号:
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 + -