📄 panel.c
字号:
for(i=1;i<method;i++)
vfd_dot(VFD_DOT_OFF,vfd_prg[i]);
if(flash_flag)
vfd_dot(VFD_DOT_ON,vfd_prg[method]);
else
vfd_dot(VFD_DOT_OFF,vfd_prg[method]);
flash_flag = !flash_flag;
/*
prg_flag = (method <= 12) ? method : 12;
trk = gVcdTrackInfo.Total_track_cnt - gVcdTrackInfo.CurrTrack_no;
if(trk - 1 > 11)
trk = 12;
// cd_disp_trk
for(i = 1; i <=((MP3_DISC== GetDiscType())?12:trk); i++)
{
if(prg_flag == 0)
FpBuf[vfd_prg[i] >> 3] |= (1 << (vfd_prg[i] & 0x07));
else if(--prg_flag == 0)
FpBuf[vfd_prg[i] >> 3] ^= (1 << (vfd_prg[i] & 0x07)); //flash vfd pgm
else
FpBuf[vfd_prg[i] >> 3] &= ~(1 << (vfd_prg[i] & 0x07)); //turn off vfd pgm
}
*/
}
#define MAX_DISC_DOT 6
vfd_disc[MAX_DISC_DOT]={31,30,29,28,27,26};
extern USHORT mp3_cur_track;
void vfd_disc_turn(unsigned char mode)
{
// static unsigned char i = 0;
// static unsigned char jj = 0;
static BYTE j=0;
static BYTE t = 0;
if(SysGetSema(&gVfd_RWSema,SYS_NO_WAIT ) == SYS_RETURN_SUCCESS )
{
vfd_dot(VFD_DOT_ON, VFD_DOT_RING);
for(t=0;t<MAX_DISC_DOT;t++)
{
if((mode==1)||(mode==2))
vfd_dot(VFD_DOT_ON,vfd_disc[t]);
else
vfd_dot(VFD_DOT_OFF,vfd_disc[t]);
}
if (mode)
{
vfd_dot(VFD_DOT_OFF,vfd_disc[j++]);
if(j>=MAX_DISC_DOT)
j=0;
}
switch (j)
{
case 1:
vfd_dot(VFD_DOT_ON, VFD_DOT_COLON);
// vfd_dot(VFD_DOT_ON, VFD_DOT_PGM);
if(GetDiscType() == MP3_DISC)
vfd_set_pgm(mp3_cur_track);
else
vfd_set_pgm(gVcdTrackInfo.CurrTrack_no);
break;
case 4:
vfd_dot(VFD_DOT_OFF, VFD_DOT_COLON);
// vfd_dot(VFD_DOT_OFF, VFD_DOT_PGM);
default:
break;
}
SysReleaseSema(&gVfd_RWSema );
}
}
void vfd_readtoc(void)
{
FPClearFp();
print_vfd_msg(1, CHAR_C);
print_vfd_msg(2, CHAR_L);
print_vfd_msg(3, CHAR_O);
print_vfd_msg(4, CHAR_S);
print_vfd_msg(5, CHAR_E);
}
const BYTE hex22bcd[]={VFD_7SEG_A,VFD_7SEG_b,VFD_7SEG_C,VFD_7SEG_d,VFD_7SEG_E,VFD_7SEG_F,
VFD_7SEG_H,VFD_7SEG_II,VFD_7SEG_J};
void vfd_show_time(USHORT track , ULONG32 time)
{
static unsigned char cd_time_ss = 0xff;
unsigned char cd_disp_trk,cd_disp_hh,cd_disp_mm,cd_disp_ss;
unsigned char trk_ttp11;
ULONG32 CurrentTime;
vfd_dot(VFD_DOT_ON, VFD_DOT_COLON1);
CurrentTime = time;
cd_disp_trk = (unsigned char) track;
if(MP3_DISC== GetDiscType())
{
if(cd_disp_trk>=100)
{
cd_disp_trk = cd_disp_trk %100;
trk_ttp11 = cd_disp_trk /10;
if (trk_ttp11 >= 8)
print_vfd_message(0,VFD_7SEG_J);//hex22bcd[trk_ttp11]);
else
print_vfd_message(0, hex22bcd[trk_ttp11]);
}
else
print_vfd_msg(0, cd_disp_trk/10);
print_vfd_msg(1, cd_disp_trk %10);
print_vfd_msg(2, (CurrentTime/60)/10);
print_vfd_msg(3, (CurrentTime/60)%10);
print_vfd_msg(4, (CurrentTime%60)/10);
print_vfd_msg(5, (CurrentTime%60)%10);
}else
{
#if VFD_SHOW_HOUR
print_vfd_msg(0, cd_disp_trk/10);
print_vfd_msg(1, cd_disp_trk%10);
print_vfd_msg(2, CurrentTime/3600);
print_vfd_msg(3, ((CurrentTime%3600) /60)/10);
print_vfd_msg(4, ((CurrentTime%3600) /60)%10);
print_vfd_msg(5, (CurrentTime%60)/10);
print_vfd_msg(6, (CurrentTime%60)%10);
#else
print_vfd_msg(0, (cd_disp_trk%100)/10);
print_vfd_msg(1, (cd_disp_trk%100) %10);
print_vfd_msg(2, (CurrentTime/60)/10);
print_vfd_msg(3, (CurrentTime/60)%10);
print_vfd_msg(4, (CurrentTime%60)/10);
print_vfd_msg(5, (CurrentTime%60)%10);
#endif
}
}
void vfd_mp3_show_time_stop(void)
{
extern USHORT gMp3TotalFile;
extern Mp3_FolderPageInfo_t *gFolderPage;
unsigned char cd_disp_mm,cd_disp_ss,cd_disp_trk1;
cd_disp_trk1 = (unsigned char)gFolderPage->content_num;
cd_disp_mm = gMp3TotalFile/100;
cd_disp_ss = gMp3TotalFile%100;
print_vfd_msg(0, (cd_disp_trk1%100)/10);
print_vfd_msg(1, (cd_disp_trk1%100)%10);
print_vfd_msg(2, gMp3TotalFile/1000);
print_vfd_msg(3, (gMp3TotalFile%1000)/100);
print_vfd_msg(4, cd_disp_ss/10);
print_vfd_msg(5, cd_disp_ss%10);
vfd_dot(VFD_DOT_OFF, VFD_DOT_REMAIN);
vfd_dot(VFD_DOT_OFF, VFD_DOT_COLON);
}
void vfd_disc_fill_all(void)
{
BYTE t;
for(t=0;t<MAX_DISC_DOT;t++)
vfd_dot(VFD_DOT_ON,vfd_disc[t]);
vfd_set_pgm_all();
vfd_dot(VFD_DOT_OFF, VFD_DOT_REMAIN);
vfd_dot(VFD_DOT_OFF, VFD_DOT_INTRO);
vfd_dot(VFD_DOT_OFF, VFD_DOT_1L);
vfd_dot(VFD_DOT_OFF, VFD_DOT_2R);
vfd_dot(VFD_DOT_OFF, VFD_DOT_PBC);
vfd_dot(VFD_DOT_OFF, VFD_DOT_PLAY);
vfd_dot(VFD_DOT_OFF, VFD_DOT_PAUSE);
}
void vfd_open(void)
{
FPClearFp();
VfdDiscTurnF = 0;
print_vfd_msg(2, CHAR_O);
print_vfd_msg(3, CHAR_P);
print_vfd_msg(4, CHAR_E);
print_vfd_msg(5, CHAR_N);
}
void vfd_close(void)
{
VfdDiscTurnF = 0;
print_vfd_msg(1, CHAR_C);
print_vfd_msg(2, CHAR_L);
print_vfd_msg(3, CHAR_O);
print_vfd_msg(4, CHAR_S);
print_vfd_msg(5, CHAR_E);
}
void vfd_nodisc(void)
{
print_vfd_msg(0, CHAR_N);
print_vfd_msg(1, CHAR_O);
print_vfd_msg(2, CHAR_D);
print_vfd_msg(3, CHAR_I);
print_vfd_msg(4, CHAR_S);
print_vfd_msg(5, CHAR_C);
}
#endif
void vfd_pause(void)
{
vfd_dot(VFD_DOT_ON, VFD_DOT_PAUSE);
vfd_dot(VFD_DOT_OFF, VFD_DOT_PLAY);
}
void vfd_play(void)
{
vfd_dot(VFD_DOT_OFF, VFD_DOT_PAUSE);
vfd_dot(VFD_DOT_ON, VFD_DOT_PLAY);
}
void vfd_normal_state(void)
{
ULONG32 CurrentTime;
vfd_audio_channel();
vfd_display_mode();
#if SHOW_REMAIN_TIME_IN_VFD //zmf
if(DISC_REMAIN_TIME== gVcdDisplayTime)
{
CurrentTime = VcdGetRemSecInDisc() ;
vfd_show_time(gVcdTrackInfo.Total_track_cnt , CurrentTime);
#if PANEL_FUT58
vfd_dot(VFD_DOT_ON, VFD_DOT_REMAIN);
#endif
}
else if( TRK_REMAIN_TIME == gVcdDisplayTime)
{
CurrentTime = VcdGetRemSecInTrk();
vfd_show_time(gVcdTrackInfo.CurrTrack_no , CurrentTime);
#if PANEL_FUT58
vfd_dot(VFD_DOT_ON, VFD_DOT_REMAIN);
#endif
}
else if( TRK_ELAPSE_TIME == gVcdDisplayTime)
#endif
{
CurrentTime = VcdGetCurSec();
vfd_show_time(gVcdTrackInfo.CurrTrack_no , CurrentTime);
#if PANEL_FUT58
vfd_dot(VFD_DOT_OFF, VFD_DOT_REMAIN);
#endif
}
vfd_dot(VFD_DOT_ON,VFD_DOT_PLAY);
vfd_dot(VFD_DOT_OFF,VFD_DOT_PAUSE);
}
void vfd_mp3(void)
{
vfd_dot(VFD_DOT_ON, VFD_DOT_MP3);
}
void vfd_repeatOne(void)
{
#if PANEL_FUT32||PANEL_FUT14
vfd_dot(VFD_DOT_ON, VFD_DOT_REP1);
vfd_dot(VFD_DOT_OFF, VFD_DOT_REPALL);
#elif PANEL_FUT58 || PANEL_FUT297 || PANEL_FUT63
vfd_dot(VFD_DOT_ON, VFD_DOT_REP1);
vfd_dot(VFD_DOT_OFF, VFD_DOT_REPALL);
#endif
}
void vfd_repeatAll(void) //ZMF
{
#if PANEL_FUT32||PANEL_FUT14
vfd_dot(VFD_DOT_ON, VFD_DOT_REP1);
vfd_dot(VFD_DOT_ON, VFD_DOT_REPALL);
#elif PANEL_FUT58 || PANEL_FUT297 || PANEL_FUT63
vfd_dot(VFD_DOT_ON, VFD_DOT_REP1);
vfd_dot(VFD_DOT_ON, VFD_DOT_REPALL);
#endif
}
void vfd_micon(void)
{
vfd_dot(VFD_DOT_ON, VFD_DOT_MIC1);
#if PANEL_FUT58
vfd_dot(VFD_DOT_ON, VFD_DOT_MIC2);
#endif
}
void vfd_micoff(void)
{
vfd_dot(VFD_DOT_OFF, VFD_DOT_MIC1);
#if PANEL_FUT58
vfd_dot(VFD_DOT_OFF, VFD_DOT_MIC2);
#endif
}
void vfd_repeatOff(void)
{
#if PANEL_FUT32||PANEL_FUT14
vfd_dot(VFD_DOT_OFF, VFD_DOT_REP1);
vfd_dot(VFD_DOT_OFF, VFD_DOT_REPALL);
#elif PANEL_FUT58 || PANEL_FUT297 || PANEL_FUT63
vfd_dot(VFD_DOT_OFF, VFD_DOT_REP1);
vfd_dot(VFD_DOT_OFF, VFD_DOT_REPALL);
#endif
}
void vfd_mp3_stop(void)
{
vfd_mp3_show_time_stop();
vfd_disc_fill_all();
VfdDiscTurnF = 0;
}
#endif
#if LED1623
/********************************************************************
LED 1623
********************************************************************/
void ShowVFD(OsdMsg_t * vfd_msg)
{
#if 0
static unsigned char dot = 0;
FPClearFp(); //test front panel
FpBuf[dot / 8] |= (1 << (dot % 8));
dot ++;
if (dot > 0x5f) dot = 0;
#else
ULONG32 CurrentTime;
CHAR temp,i;
CurrentTime = VcdGetCurSec();
vfd_audio_channel();
vfd_display_mode();
temp=vfd_msg->mode;
switch(vfd_msg->mode){
case DSP_VCD:
#if _SUPPORT_GAMECD
if(gIsGameCD){
vfd_dot(VFD_DOT_ON, VFD_DOT_PLAY);
vfd_show_time(0, 0);
VfdDiscTurnF = 1;
}else
#endif
{
#if HTS_C2
vfd_dot(VFD_DOT_ON, VFD_DOT_DVD);
vfd_dot(VFD_DOT_ON, VFD_DOT_MP4);
vfd_dot(VFD_DOT_ON, VFD_DOT_MP3);
vfd_dot(VFD_DOT_ON, VFD_DOT_DB);
vfd_dot(VFD_DOT_ON, VFD_DOT_DTS);
vfd_dot(VFD_DOT_ON, VFD_DOT_CD);
//vfd_dot(VFD_DOT_ON, VFD_DOT_VCD);
#else
vfd_dot(VFD_DOT_ON, VFD_DOT_VCD);
#endif
vfd_dot(VFD_DOT_ON, VFD_DOT_PLAY);
}
VfdDiscTurnF = 0;
break;
case DSP_CDDA:
vfd_dot(VFD_DOT_ON, VFD_DOT_CD);
vfd_dot(VFD_DOT_ON, VFD_DOT_PLAY);
//vfd_dot(VFD_DOT_ON, VFD_DOT_DB);
//vfd_dot(VFD_DOT_ON, VFD_DOT_DTS);
#if HTS_C2
vfd_dot(VFD_DOT_ON, VFD_DOT_MP3);
#endif
VfdDiscTurnF = 0;
break;
case DSP_PLAY:
vfd_play();
break;
case DSP_PAUSE:
vfd_pause();
VfdDiscTurnF = 0;
break;
case DSP_STOP:
vfd_show_stop();
VfdDiscTurnF = 0;
vfd_dot(VFD_DOT_OFF, VFD_DOT_REP);
vfd_dot(VFD_DOT_OFF, VFD_DOT_PLAY);
vfd_dot(VFD_DOT_OFF, VFD_DOT_PAUSE);
vfd_dot(VFD_DOT_ON, VFD_DOT_DOTM);
vfd_dot(VFD_DOT_ON, VFD_DOT_DOTS);
vfd_disc_fill_all();
break;
case DSP_PREV:
case DSP_NEXT:
case DSP_FR:
case DSP_FF:
case DSP_SR:
case DSP_SF:
vfd_show_time(gVcdTrackInfo.CurrTrack_no,CurrentTime);
VfdDiscTurnF = 0;
break;
case DSP_REPEAT_TRK:
vfd_dot(VFD_DOT_ON, VFD_DOT_REP);
break;
case DSP_REPEAT_ALL:
vfd_dot(VFD_DOT_ON, VFD_DOT_REP);
break;
#if _SUPPORT_REPEAT_AB
case DSP_REPEAT_A:
break;
case DSP_REPEAT_AB:
break;
#endif
case DSP_REPEAT_OFF:
vfd_dot(VFD_DOT_OFF, VFD_DOT_REP);
break;
case DSP_ON:
#if 0
if( PBC_PROGRAM == Vcd_GetPBCState())
vfd_dot(VFD_DOT_ON, VFD_DOT_PGM);
else vfd_dot(VFD_DOT_OFF, VFD_DOT_PGM);
if(PBC_RANDOM == Vcd_GetPBCState())
vfd_dot(VFD_DOT_ON, VFD_DOT_RAN);
else
vfd_dot(VFD_DOT_OFF, VFD_DOT_RAN);
if(PBC_INTRO==Vcd_GetPBCState())
vfd_dot(VFD_DOT_ON, VFD_DOT_INTRO);
else vfd_dot(VFD_DOT_OFF, VFD_DOT_INTRO);
#endif
break;
case DSP_NO_DISC:
vfd_nodisc();
break;
case DSP_UNKNOW_DISC:
vfd_unknowdisc();
break;
case DSP_RETURN:
#if _SUPPORT_GAMECD
if(gIsGameCD){
vfd_show_time(0, 0);
VfdDiscTurnF = 1;
}
#endif
case DSP_DISPLAYMODE:
vfd_display_mode();
break;
case DSP_AUDIO:
vfd_audio_channel();
break;
default:
#if _SUPPORT_GAMECD
if(!gIsGameCD)
#endif
{
if(PBC_PBCON == Vcd_GetPBCState())
vfd_dot(VFD_DOT_ON, VFD_DOT_PBC);
else if(PBC_NORMAL== Vcd_GetPBCState())
vfd_dot(VFD_DOT_OFF, VFD_DOT_PBC);
}
break;
}
switch(vfd_msg->control)
{
case CTRL_UPDATED_TIME:
vfd_normal_state();
VfdDiscTurnF = 1;
break;
default:
break;
}
#endif
}
unsigned char ReceiveByte()
{
unsigned char i,value=0;
SetInputMode_VFDData();
SetVFDClk();
for(i=0;i<8;i++)
{
ClearVFDClk();
FP_Delay(UPD16311_TW_CLOCK_DELAY);
SetVFDClk();
FP_Delay(UPD16311_TW_CLOCK_DELAY);
value<<=1;
if(GetVFDData())
value++;
}
return value;
}
void SendByte(unsigned char uctemp)
{
unsigned char i;
SetOutputMode_VFDData();
FP_Delay(UPD16311_TW_CLOCK_DELAY);
for (i
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -