📄 vfdshow.c
字号:
#include "general.h"
#pragma NOAREGS
#ifndef PLAYER_NO_VFD
/************************************************************************
Function :
Description :
Parameter :
Return : None
************************************************************************/
void VfdShowDiscType(BYTE bType) large
{
switch(bType)
{
case SV_DVD_VIDEO:
#ifdef VFDICON_dvdon
VfdIcon(VFDICON_dvdon);
#endif
break;
case SV_DVD_AUDIO:
#ifdef VFDICON_dvd_audio
VfdIcon(VFDICON_dvd_audio);
#elif defined(VFDICON_dvd)
VfdIcon(VFDICON_dvd);
#else
VfdIcon(VFDICON_cdda);
#endif
break;
case SV_VCD1_1:
case SV_VCD2_0:
case SV_VCD3_0:
VfdIcon(VFDICON_vcd);
break;
case SV_CVD:
#ifdef VFDICON_cvd
VfdIcon(VFDICON_cvd);
#else
#ifdef VFDICON_SHOW_CVD_AS_VCD
VfdIcon(VFDICON_vcd);
#endif
#endif
break;
case SV_VCD6_0:
case SV_VCD6_1:
#ifdef VFDICON_dvcd
VfdIcon(VFDICON_dvcd);
#else
VfdIcon(VFDICON_vcd);
#endif
break;
case SV_SVCD:
#ifdef VFDICON_svcd
VfdIcon(VFDICON_svcd);
#else
VfdIcon(VFDICON_vcd);
#endif
break;
case SV_PCD: // - for KODAK picture CD.
/* move to vPCDShowInit() in pcdshow.c
#ifdef VFDMSG_p_cd
VfdMsg(VFDMSG_p_cd);
#endif
*/
break;
case SV_DTS_CS:
#ifdef VFDICON_dts
VfdIcon(VFDICON_dts);
#endif
#ifdef VFDICON_cdda
VfdIcon(VFDICON_cdda);
#endif
break;
case SV_CDDA:
case SV_HDCD:
case SV_CDG:
#ifdef VFDICON_cdda
VfdIcon(VFDICON_cdda);
#endif
break;
case SV_DATA:
break;
case SV_SACD:
#ifdef VFDICON_sacd
VfdIcon(VFDICON_sacd);
#elif (defined(VFDICON_cdda))
VfdIcon(VFDICON_cdda);
#endif
break;
default:
break;
}
#ifdef VFD_HDCD_LED
if(bType == SV_HDCD)
{
VfdLed(TRUE, 0xff); // light on LED
}
else
{
VfdLed(FALSE, 0xff); // LED off
}
#endif /* VFD_HDCD_LED */
}
#if 0
/************************************************************************
Function :
Description :
Parameter :
Return : None
************************************************************************/
BYTE bVfdShowDiscInfoMsg(BYTE bType) large
{
switch (bType)
{
case SV_DVD_VIDEO:
case SV_DVD_AUDIO:
#ifdef VFDMSG_DVD
VfdMsg(VFDMSG_dvd)
break;
#else
return VFD_NO_DISC_INFO_MSG;
#endif
case SV_VCD1_1:
case SV_VCD2_0:
case SV_VCD3_0:
case SV_VCD6_0:
case SV_VCD6_1:
case SV_CVD:
#ifdef VFDMSG_VCD
VfdMsg(VFDMSG_vcd);
break;
#else
return VFD_NO_DISC_INFO_MSG;
#endif
case SV_SVCD:
#ifdef VFDMSG_SVCD
VfdMsg(VFDMSG_svcd);
break;
#else
return VFD_NO_DISC_INFO_MSG;
#endif
case SV_CDDA:
#ifdef VFDMSG_CDDA
VfdMsg(VFDMSG_cdda);
break;
#else
return VFD_NO_DISC_INFO_MSG;
#endif
case SV_DTS_CS:
#ifdef VFDMSG_DTSCD
VfdMsg(VFDMSG_dtscd);
break;
#elif defined(VFDMSG_CDDA)
VfdMsg(VFDMSG_cdda);
break;
#else
return VFD_NO_DISC_INFO_MSG;
#endif
case SV_DATA:
case SV_PCD:
return VFD_NO_DISC_INFO_MSG;
default:
return VFD_NO_DISC_INFO_MSG;
}
return 0;
}
#endif
/************************************************************************
Function :
Description :
Parameter :
Return : None
************************************************************************/
void VfdShowInitStatus(BYTE bStatus) large
{
if (bStatus != SV_DISC_IDENTIFIED)
{
VfdClearAll();
}
switch (bStatus)
{
case SV_LOADING_DISC:
VfdMsg(VFDMSG_loading);
break;
case SV_TRAY_OPENING:
VfdMsg(VFDMSG_open);
break;
case SV_TRAY_CLOSING:
VfdMsg(VFDMSG_close);
break;
case SV_TRAY_ERROR:
break;
case SV_NO_DISC:
VfdMsg(VFDMSG_nodisc);
break;
case SV_UNKNOWN_DISC:
VfdMsg(VFDMSG_undisc);
break;
case SV_DISC_IDENTIFIED:
/*
#ifdef VFDMSG_init
VfdMsg(VFDMSG_init);
#endif
*/
VfdMsg(VFDMSG_loading);
break;
default:
break;
}
VfdShowTvType(bSharedInfo(SI_TV_SYSTEM));
#ifdef PSCAN_EN
VfdShowPScanType(bEepromReadByte(TV_PSCAN_EN_POS), bEepromReadByte(TV_COMP_POS));
#endif
VfdShowKaraMode(bSharedInfo(SI_KARAOKE_SWITCH));
#ifdef VFD_INIT_STATE_FLASHING
if (fgIsDiscReady(bStatus))
{
VfdSetFlashing(VFD_FLASHING_OFF);
}
else
{
VfdSetFlashing(VFD_FLASHING_ON);
}
#endif /* VFD_INIT_STATE_FLASHING */
}
/************************************************************************
Function :
Description :
Parameter :
Return : None
************************************************************************/
void VfdStatusRecall(void) large
{
VfdShowTrick(bSharedInfo(SI_PBC_STATE));
VfdShowAudioType(bSharedInfo(SI_A_CODE_MODE));
VfdShowAudioCh(bSharedInfo(SI_A_CH_CFG));
/* note the following sequence */
VfdShowUsrMode(bSharedInfo(SI_USR_PBC_CTRL));
VfdShowRepeatMode(bSharedInfo(SI_REPEAT_MODE));
VfdShowRepeatAB(bSharedInfo(SI_USR_AUX_CTRL));
}
/************************************************************************
Function :
Description :
Parameter :
Return : None
************************************************************************/
void VfdShowStatus(BYTE bStatus) large
{
BYTE bDiscType = bSharedInfo(SI_DISC_TYPE);
VfdClearAll();
switch (bStatus)
{
case VFD_STATUS_STOP:
VfdClearMsg();
VfdWheel(VFD_WHEEL_CLEAR);
VfdMsg(VFDMSG_stop);
VfdIcon(VFDICON_stop);
break;
case VFD_STATUS_HOLD: /* STOP_RESUME */
VfdClearMsg();
VfdWheel(VFD_WHEEL_CLEAR);
#ifdef VFDMSG_hold
VfdMsg(VFDMSG_hold);
#else
VfdMsg(VFDMSG_stop);
#endif
VfdIcon(VFDICON_stop);
break;
case VFD_STATUS_PLAY:
/* for SVCD/VCD/CD only, recall all VFD status */
VfdClearMsg();
VfdIcon(VFDICON_play);
VfdShowPlayInfo(VFD_INFO_TRACK, 0, bSharedInfo(SI_TRACK_NO));
VfdShowPbcSwitch(bSharedInfo(SI_PBC_SWITCH) == SV_PBC_ON);
VfdStatusRecall();
break;
case VFD_STATUS_VMGM:
#ifndef DVD_SHOW_MENU_TIME
#ifdef VFDMSG_title
VfdMsg(VFDMSG_title);
#endif
#endif
VfdShowAudioType(bSharedInfo(SI_A_CODE_MODE));
VfdShowAudioCh(bSharedInfo(SI_A_CH_CFG));
break;
case VFD_STATUS_VTSM:
#ifndef DVD_SHOW_MENU_TIME
#ifdef VFDMSG_root
VfdMsg(VFDMSG_root);
#endif
#endif
VfdShowAudioType(bSharedInfo(SI_A_CODE_MODE));
VfdShowAudioCh(bSharedInfo(SI_A_CH_CFG));
break;
case VFD_STATUS_VTSTT:
VfdClearMsg();
#ifdef VFDICON_in_vts
VfdIcon(VFDICON_in_vts);
#endif
VfdShowPlayInfo(VFD_INFO_TITLE_CHAPTER, bSharedInfo(SI_TT_NO), bSharedInfo(SI_CHAP_NO));
VfdShowAngle(bSharedInfo(SI_AGL_NS) > 1);
VfdStatusRecall();
break;
case VFD_STATUS_OFF:
#ifdef VFDMSG_off
VfdMsg(VFDMSG_off);
#endif
break;
case VFD_STATUS_ERROR:
#ifdef VFDMSG_error
VfdMsg(VFDMSG_error);
#endif
break;
case VFD_STATUS_PBC:
#ifdef VFDMSG_pbc_play
VfdMsg(VFDMSG_pbc_play);
#endif
VfdIcon(VFDICON_play);
VfdShowPbcSwitch(TRUE);
VfdStatusRecall();
break;
case VFD_STATUS_DIGEST:
#ifdef VFDMSG_digest
VfdMsg(VFDMSG_digest);
#endif
default:
break;
} /* switch( status ) */
VfdShowDiscType(bDiscType);
VfdShowTvType(bSharedInfo(SI_TV_SYSTEM));
VfdShowKaraMode(bSharedInfo(SI_KARAOKE_SWITCH));
return;
}
/************************************************************************
Function :
Description :
Parameter :
Return : None
************************************************************************/
void VfdShowTrick(BYTE bMode) large
{
if (bMode != SV_PAUSE)
{
#ifdef VFDICON_pause_off
VfdIcon(VFDICON_pause_off);
#endif
}
switch (bMode)
{
case SV_PLAY:
VfdIcon(VFDICON_play);
break;
case SV_PAUSE:
#ifdef VFDICON_pause_on
VfdIcon(VFDICON_pause_on);
#endif
#ifdef VFD_VOLATILE_MSG
#ifdef VFDMSG_pause
VfdMsgVolatile(VFDMSG_pause, VFD_MSG_TIMEOUT);
#endif
#endif
break;
case SV_STEP:
case SV_STEP_BACK:
#ifdef VFDICON_pause_on
VfdIcon(VFDICON_pause_on);
#endif
break;
case SV_FF:
#ifdef VFD_VOLATILE_MSG
#ifdef VFDMSG_pause
VfdMsgVolatile(VFDMSG_ff, VFD_MSG_TIMEOUT);
#endif
#endif
break;
case SV_FR:
#ifdef VFD_VOLATILE_MSG
#ifdef VFDMSG_pause
VfdMsgVolatile(VFDMSG_fr, VFD_MSG_TIMEOUT);
#endif
#endif
break;
case SV_SF:
case SV_SR:
case SV_FREEZE:
break;
default:
break;
}
}
/************************************************************************
Function :
Description :
Parameter :
Return : None
************************************************************************/
void VfdShowPlayInfo(BYTE bType, BYTE bHiSeg, BYTE bLoSeg) large
{
switch (bType)
{
case VFD_INFO_TITLE_CHAPTER: /* for DVD */
VfdSegment(VFD_TITLE, bHEXToBCD(bHiSeg), 0);
/*
#ifdef VFD_CHAP100
VfdSegment(VFD_CHAP100, 0, 1);
#endif
*/
VfdSegment(VFD_CHAPTER, bHEXToBCD(bLoSeg), 0);
VfdIcon(VFDICON_title);
break;
case VFD_INFO_TRACK: /* for VCD/SVCD ... */
/* check track range */
if (bLoSeg > 99)
{
bLoSeg = 0;
}
VfdClearNum(VFD_TITLE);
VfdSegment(VFD_CHAPTER, bHEXToBCD(bLoSeg), 0);
VfdIcon(VFDICON_track);
break;
case VFD_INFO_CDDA_TRACK: /* for CDDA ... */
/* check track range */
if (bLoSeg > 99)
{
bLoSeg = 0;
}
VfdClearNum(VFD_TITLE);
VfdSegment(VFD_CHAPTER, bHEXToBCD(bLoSeg), 0);
VfdIcon(VFDICON_track);
break;
case VFD_INFO_NUMBER: /* for MP3, JPG ... */
#ifdef VFD_CHAP100
VfdSegment(VFD_CHAP100, bHiSeg, 1); /* note already in BCD */
#else
VfdSegment(VFD_TITLE, bHiSeg, 1); /* note already in BCD */
#endif
VfdSegment(VFD_CHAPTER, bLoSeg, 0);
VfdIcon(VFDICON_track);
break;
default:
break;
}
}
/************************************************************************
Function :
Description :
Parameter :
Return : None
************************************************************************/
void VfdShowPlayTime(BYTE bHour, BYTE bMin, BYTE bSec) large
{
/* vCheckTimeValid3(bHour, bMin, bSec); */ /* DVD/VCD use different check macro */
/* to prevent the time mark update too fast, we should add a update timer
and check it here */
VfdSegment(VFD_HOUR, bHour, 0);
VfdSegment(VFD_MINUTE, bMin, 0);
VfdSegment(VFD_SECOND, bSec, 0);
VfdIcon(VFDICON_colonon); /* should we show icon here ? */
VfdWheel(VFD_WHEEL_ROTATE);
}
/************************************************************************
Function :
Description :
Parameter :
Return : None
************************************************************************/
void VfdShowUsrMode(BYTE bMode) large
{
VfdIcon(VFDICON_repeat_off);
#ifdef VFDICON_sequence
VfdIcon(VFDICON_sequence);
#else
VfdIcon(VFDICON_a2b_cancel);
VfdSetIcon(ICON_random, 0);
VfdSetIcon(ICON_program, 0);
#endif
switch (bMode)
{
case SV_REPEAT_ALL:
VfdIcon(VFDICON_repeat_all);
break;
case SV_REPEAT_TITLE:
#ifdef VFDICON_title_repeat_on
VfdIcon(VFDICON_title_repeat_on);
#else
VfdIcon(VFDICON_repeat_all);
#endif
break;
case SV_REPEAT_TRACK:
case SV_REPEAT_LIST:
VfdIcon(VFDICON_repeat_one);
break;
case SV_REPEAT_CHAPTER:
#ifdef VFDICON_chapter_repeat_on
VfdIcon(VFDICON_chapter_repeat_on);
#else
VfdIcon(VFDICON_repeat_one);
#endif
break;
case SV_REPEAT_SET_A:
#ifdef VFDICON_a2b_a
VfdIcon(VFDICON_a2b_a);
#endif
break;
case SV_REPEAT_AB:
#ifdef VFDICON_a2b_b
VfdIcon(VFDICON_a2b_b);
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -