📄 spi_api.c
字号:
print_vfd_msg(5, CHAR_S);
print_vfd_msg(6, CHAR_E);
#if 0
print_vfd_msg(2, CHAR_C);
print_vfd_msg(3, CHAR_L);
print_vfd_msg(4, CHAR_O);
print_vfd_msg(5, CHAR_S);
print_vfd_msg(6, CHAR_E);
print_vfd_msg(2, CHAR_C);
print_vfd_msg(3, CHAR_L);
print_vfd_msg(4, CHAR_O);
print_vfd_msg(5, CHAR_S);
print_vfd_msg(6, CHAR_E);
print_vfd_msg(2, CHAR_C);
print_vfd_msg(3, CHAR_L);
print_vfd_msg(4, CHAR_O);
print_vfd_msg(5, CHAR_S);
print_vfd_msg(6, CHAR_E);
print_vfd_msg(2, CHAR_C);
print_vfd_msg(3, CHAR_L);
print_vfd_msg(4, CHAR_O);
print_vfd_msg(5, CHAR_S);
print_vfd_msg(6, CHAR_E);
print_vfd_msg(2, CHAR_C);
print_vfd_msg(3, CHAR_L);
print_vfd_msg(4, CHAR_O);
print_vfd_msg(5, CHAR_S);
print_vfd_msg(6, CHAR_E);
#endif
//print_vfd_msg(6, CHAR_DASH);
//print_vfd_msg(7, CHAR_DASH);
}
void vfd_mp3(void)
{
vfd_dot(VFD_DOT_ON, VFD_DOT_MP3);
#if LED1623_MODUL_2
vfd_dot(VFD_DOT_ON, VFD_DOT_DB);
vfd_dot(VFD_DOT_ON, VFD_DOT_DTS);
#endif
}
void vfd_repeatOne(void)
{
vfd_dot(VFD_DOT_ON, VFD_DOT_REP);
}
void vfd_repeatAll(void)
{
vfd_dot(VFD_DOT_ON, VFD_DOT_REP);
}
void vfd_repeatOff(void)
{
vfd_dot(VFD_DOT_OFF, VFD_DOT_REP);
}
void vfd_GAME(void)
{
FPClearFp();
print_vfd_msg(6, CHAR_DASH);
print_vfd_msg(5, CHAR_DASH);
print_vfd_msg(4, CHAR_DASH);
print_vfd_msg(3, CHAR_DASH);
print_vfd_msg(2, CHAR_DASH);
print_vfd_msg(1, CHAR_DASH);
}
void vfd_mp3_stop(void)
{
vfd_dot(VFD_DOT_OFF, VFD_DOT_PLAY);
VfdDiscTurnF = 0;
}
#if LED1623_MODUL_1
unsigned char FpKeyArray[]={ /*temporarily*/
KEY_NULL, KEY_NULL, KEY_NULL, KEY_NULL, //00-03
KEY_NULL, KEY_NULL, KEY_NULL, KEY_NULL, //04-07
KEY_NULL, KEY_NULL, KEY_NULL, KEY_NULL, //08-0b
KEY_NULL, KEY_NULL, KEY_NULL, KEY_NULL, //0c-0f
KEY_NULL, KEY_NULL, KEY_NULL, KEY_NULL, //10-17
KEY_STOP, KEY_AUDIO, KEY_NULL, KEY_PAUSE,
KEY_OPEN_CLOSE
};
#endif
#if LED1623_MODUL_2
unsigned char FpKeyArray[]={
KEY_NULL, KEY_NULL, KEY_NULL, KEY_NULL, //00-03
KEY_OPEN_CLOSE, KEY_SKIP_BACK,
KEY_NULL, KEY_AUDIO, //04-07
KEY_SKIP_NEXT //08-0b
};
#endif
#if LED1623_MODUL_4
#if 1 //HTS 3303
unsigned char FpKeyArray[]={ /*temporarily*/
KEY_NULL, KEY_NULL, KEY_NULL, KEY_NULL, //00-03
KEY_OPEN_CLOSE, KEY_NULL, KEY_NULL, KEY_NULL, //04-07
KEY_NULL, KEY_NULL, KEY_NULL, KEY_NULL, //08-0b
KEY_STOP, KEY_SKIP_BACK, KEY_NULL, KEY_PLAY_PAUSE, //0c-0f
KEY_POWER_OFF, KEY_NULL, KEY_NULL, KEY_NULL, //10-17
KEY_STOP, KEY_AUDIO, KEY_NULL, KEY_PAUSE,
KEY_OPEN_CLOSE
};
#else //3308
unsigned char FpKeyArray[]={ /*temporarily*/
KEY_NULL, KEY_NULL, KEY_NULL, KEY_NULL, //00-03
KEY_AUDIO, KEY_STOP, KEY_NULL, KEY_NULL, //04-07
KEY_NULL, KEY_NULL, KEY_NULL, KEY_NULL, //08-0b
KEY_STOP, KEY_SKIP_BACK, KEY_NULL, KEY_OPEN_CLOSE, //0c-0f
#if SEPERATE_PLAY_PAUSE
KEY_PLAY,
#else
KEY_PLAY_PAUSE,
#endif
KEY_NULL, KEY_NULL, KEY_NULL, //10-17
KEY_STOP, KEY_AUDIO, KEY_NULL, KEY_PAUSE,
KEY_OPEN_CLOSE
};
#endif
#endif
#if 0 //HTS_C 1 LED1623_MODUL_2
unsigned char FpKeyArray[]={
KEY_NULL, KEY_NULL, KEY_NULL, KEY_NULL, //00-03
KEY_OPEN_CLOSE,
//#if SEPERATE_PLAY_PAUSE
//KEY_PLAY,
//#else
KEY_PLAY_PAUSE,
//#endif
KEY_NULL, KEY_AUDIO, //04-07
KEY_NTSCPAL //08-0b
};
#endif
#endif
#if HT1621
/********************************************************************
LCD 1621
********************************************************************/
void ShowVFD(OsdMsg_t * vfd_msg)
{
ULONG32 CurrentTime;
#if 0 //pwc block for test 2006.03.26
if(gOpen_pressed)
{
EI();
return;
}
#endif
CurrentTime = VcdGetCurSec();
vfd_audio_channel();
vfd_display_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 1
vfd_dot(VFD_DOT_ON, VFD_DOT_VCD);
#else
vfd_dot(VFD_DOT_ON, VFD_DOT_DB);
vfd_dot(VFD_DOT_ON, VFD_DOT_DVD);
vfd_dot(VFD_DOT_ON, VFD_DOT_DTS);
#endif
//vfd_readtoc();
VfdDiscTurnF = 0;
}
break;
case DSP_CDDA:
vfd_dot(VFD_DOT_ON, VFD_DOT_CD);
//vfd_readtoc();
VfdDiscTurnF = 0;
break;
case DSP_PLAY:
vfd_play();
break;
case DSP_PAUSE:
vfd_pause();
VfdDiscTurnF = 0;
break;
case DSP_STOP:
//vfd_show_time(gVcdTrackInfo.CurrTrack_no , CurrentTime);
vfd_show_time(gVcdTrackInfo.Total_track_cnt, (gVcdTrackInfo.TrackLBAList[gVcdTrackInfo.Total_track_cnt]-gVcdTrackInfo.TrackLBAList[0])/75);
VfdDiscTurnF = 0;
vfd_dot(VFD_DOT_OFF, VFD_DOT_REPEAT);
vfd_dot(VFD_DOT_OFF, VFD_DOT_PAUSE);
vfd_dot(VFD_DOT_OFF, VFD_DOT_PLAY);
vfd_dot(VFD_DOT_ON, VFD_DOT_COLON);
//vfd_dot(VFD_DOT_OFF, VFD_DOT_REPALL);
//vfd_dot(VFD_DOT_OFF, VFD_DOT_PLAYA);
//vfd_dot(VFD_DOT_OFF, VFD_DOT_PLAYB);
vfd_dot(VFD_DOT_OFF, VFD_DOT_PGM);
//vfd_dot(VFD_DOT_OFF, VFD_DOT_RAN);
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_REPEAT);
break;
case DSP_REPEAT_ALL:
vfd_dot(VFD_DOT_ON, VFD_DOT_REPEAT);
//vfd_dot(VFD_DOT_ON, VFD_DOT_REPALL);
break;
#if _SUPPORT_REPEAT_AB
case DSP_REPEAT_A:
// vfd_dot(VFD_DOT_ON, VFD_DOT_PLAYA);
break;
case DSP_REPEAT_AB:
// vfd_dot(VFD_DOT_ON, VFD_DOT_PLAYA);
// vfd_dot(VFD_DOT_ON, VFD_DOT_PLAYB);
break;
#endif
case DSP_REPEAT_OFF:
//vfd_dot(VFD_DOT_OFF, VFD_DOT_PLAYA);
//vfd_dot(VFD_DOT_OFF, VFD_DOT_PLAYB);
//vfd_dot(VFD_DOT_OFF, VFD_DOT_REP1);
// vfd_dot(VFD_DOT_OFF, VFD_DOT_REPALL);
vfd_dot(VFD_DOT_OFF, VFD_DOT_REPEAT);
break;
case DSP_ON:
if( PBC_PROGRAM == Vcd_GetPBCState())
vfd_dot(VFD_DOT_ON, VFD_DOT_PGM);
else if(PBC_RANDOM == Vcd_GetPBCState()){
vfd_dot(VFD_DOT_OFF, VFD_DOT_PGM);
vfd_dot(VFD_DOT_ON, VFD_DOT_RAN);
}
else{
//vfd_dot(VFD_DOT_OFF, VFD_DOT_PGM);
//vfd_dot(VFD_DOT_OFF, VFD_DOT_RAN);
}
break;
case DSP_NO_DISC:
vfd_nodisc();
break;
case DSP_UNKNOW_DISC:
vfd_unkowndisc();
break;
/* case DSP_NUM:
if(gTrkSelectEnd_flag){
vfd_show_time(gNumber_output , 0);
}*/
break;
case DSP_RETURN:
#if _SUPPORT_GAMECD
if(gIsGameCD){
vfd_show_time(0, 0);
VfdDiscTurnF = 1;
}
#endif
break;
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;
}
}
void LCD_sendcmd(unsigned char cmd)
{
unsigned char i;
ClearVFDStb();
for(i = 0;i<3;i++)
{
FP_Delay(LCD_CLOCK_DELAY);
ClearVFDClk();
if(cmd & 0x04)
SetVFDData();
else
ClearVFDData();
cmd <<= 1;
FP_Delay(LCD_CLOCK_DELAY);
SetVFDClk();
}
}
void LCD_objectSendcommand(unsigned char command)
{
unsigned char i,j;
LCD_sendcmd(LCD_COMMAND);
j = command;
for(i = 0;i<8;i++)
{
FP_Delay(LCD_CLOCK_DELAY);
ClearVFDClk();
if(j & 0x80)
SetVFDData();
else
ClearVFDData();
j<<=1;
FP_Delay(LCD_CLOCK_DELAY);
SetVFDClk();
}
FP_Delay(LCD_CLOCK_DELAY);
ClearVFDClk();
// ClearVFDData();
SetVFDStb();
FP_Delay(LCD_CLOCK_DELAY);
// SetVFDClk();
// SetVFDStb();
}
#ifdef display_mode1
//BY May 060427
void LCD_objectSenddata_Plugin(unsigned char address)
{
unsigned char i,j;
unsigned char data;
LCD_sendcmd(LCD_WRITE);
for(i=0; i<6; i++)
{
FP_Delay(LCD_CLOCK_DELAY);
ClearVFDClk();
if(address & 0x20)
SetVFDData();
else
ClearVFDData();
FP_Delay(LCD_CLOCK_DELAY);
address <<= 1;
SetVFDClk();
}
for( j=0; j<FP_MAX_BUF; j++)
{
data = FpBuf[ j ];
for(i=0; i<4; i++)
{
FP_Delay(LCD_CLOCK_DELAY);
ClearVFDClk();
if(data & 0x80)
SetVFDData();
else
ClearVFDData();
FP_Delay(LCD_CLOCK_DELAY);
SetVFDClk();
data <<= 1;
}
}
SetVFDStb();
}
#endif
void LCD_objectSenddata(unsigned char address,unsigned char data)
{
unsigned char i;
LCD_sendcmd(LCD_WRITE);
for(i=0; i<6; i++)
{
FP_Delay(LCD_CLOCK_DELAY);
ClearVFDClk();
if(address & 0x20)
SetVFDData();
else
ClearVFDData();
FP_Delay(LCD_CLOCK_DELAY);
address <<= 1;
SetVFDClk();
}
for(i=0; i<4; i++)
{
FP_Delay(LCD_CLOCK_DELAY);
ClearVFDClk();
if(data & 0x80)
SetVFDData();
else
ClearVFDData();
FP_Delay(LCD_CLOCK_DELAY);
SetVFDClk();
data <<= 1;
}
SetVFDStb();
}
void VFD_state_init()
{
unsigned char i;
LCD_objectSendcommand(LCD_RC_256);
LCD_objectSendcommand(LCD_SYS_EN);
//LCD_objectSendcommand(LCD_IRQ_DIS);
LCD_objectSendcommand(LCD_BIAS);
//LCD_objectSendcommand(DIS_TBT);
//LCD_objectSendcommand(DIS_WDT);
//LCD_objectSendcommand(LCD_OFF_TONE);
LCD_objectSendcommand(LCD_LCD_ON);
LCD_objectSendcommand(LCD_NORMAL);
#if Test_Mode // pwc 2005.12.28
for(i=0;i<FP_MAX_BUF;i++)
FpBuf[i]=0;
vfd_dot(1,dot);
if(flash_lcd)
{
for(i = 0;i <=FP_MAX_BUF; i ++)
LCD_objectSenddata(i,0xff); //light all
}
else
{
for(i = 0;i <=FP_MAX_BUF; i ++)
LCD_objectSenddata(i,FpBuf[i]);
if (dot > 0x110)
dot = 0;
}
return;
#else
for(i = 0;i <=FP_MAX_BUF; i ++){
FpBuf[i] = FpBufBak[i] = 0;
LCD_objectSenddata(i,0x00);
}
vfd_readtoc();
#ifdef display_mode1
VFD_next_state =VFD_state_refresh_01_plugin; //VFD_state_refresh_0;
#else
VFD_next_state = VFD_state_refresh_0;
#endif
#endif
}
void VFD_state_refresh_0(void)
{
#if 0 //test front panel
static int dot = 0;
unsigned char i ;
//FPClearFp();
for(i=0;i<FP_MAX_BUF;i++)
FpBuf[i]=0;
//FpBuf[dot / 8] |= (1 << (dot % 8));
vfd_dot(1,dot);
//dot ++;
for(i = 0;i <=FP_MAX_BUF; i ++){
LCD_objectSenddata(i,FpBuf[i]);
//LCD_objectSenddata(i,0xff); //light all
}
dot ++; // pwc breakpoint
if (dot > 0x110) dot = 0;
//LCD_objectSenddata(2,1<<4);
return;
#else
unsigned char i,j;
VFDRefreshPtr = 0;
for (i = 0; i < FP_MAX_BUF; i++)
{
if(FpBuf[i] != FpBufBak[i] ){
FpBufBak[i] = FpBuf[i];
VFDRefreshPtr ++;
//j = VFDRefreshPtr;
VFDRefreshStack[VFDRefreshPtr].position = i;
VFDRefreshStack[VFDRefreshPtr].data = FpBuf[i];
}
}
if(VFDRefreshPtr){
VFD_next_state = VFD_state_refresh_1;
}else
VFD_next_state = VFD_state_refresh_2;
#endif
}
void VFD_state_refresh_1(void)
{
for( ;VFDRefreshPtr>0; VFDRefreshPtr--){
LCD_objectSenddata(VFDRefreshStack[VFDRefreshPtr].position, VFDRefreshStack[VFDRefreshPtr].data);
}
VFD_next_state = VFD_state_refresh_2;
}
#ifdef display_mode1
void VFD_state_refresh_01_plugin(void)//by May 060427
{
LCD_objectSenddata_Plugin(0);
VFD_next_state = VFD_state_refresh_2;
}
#endif
void VFD_state_refresh_2(void)
{
if(VfdDiscTurnF){
if(OsdGetStatus() == DSP_PROG)
vfd_normal_state();
vfd_disc_turn(1);
}
//VFD_next_state = VFD_state_refresh_0;
VFD_next_state =VFD_state_refresh_3;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -