|
此是SUNPLUS屏文件
#include "user_init.h"
#include "config.h"
#include "global.h"
#include "vfdfunc.h"
//#include "vfd_7seg.h"
#include "stdlib.h"
#include "user_if.h"
#include "audif.h"
#include "kernel.h"
#include "auctrl.h"
extern UINT16 Is_MP3_STATE(void);
//#define CDROM_AUTO
//extern UINT16 coding_mode_now;
UINT8 spin_speed;
UINT8 color_timer=0;
#define OFFSET 20
#define MAX_POS 7
#define VFD_DISPLAY_SIZE 14
#define VFD_DISPLAY_MODE 3
#define DISC_SIZE 1
const UINT8 vfd_disc[DISC_SIZE] = {255};
#define TOTAL_SEG 4
BYTE vfd_adddress[7]=
{
3,2,1,0,7,8,9,
};
BYTE vfd_grid_add[TOTAL_SEG]={0,22,32,48};
const UINT16 vfd_char[26]=
{
VFD_7SEG_A,
VFD_7SEG_B,
VFD_7SEG_C,
VFD_7SEG_D,
VFD_7SEG_E,
VFD_7SEG_F,
VFD_7SEG_G,
VFD_7SEG_H,
VFD_7SEG_I,
VFD_7SEG_J,
VFD_7SEG_K,
VFD_7SEG_L,
VFD_7SEG_M,
VFD_7SEG_N,
VFD_7SEG_O,
VFD_7SEG_P,
VFD_7SEG_P,//q
VFD_7SEG_R,
VFD_7SEG_S,
VFD_7SEG_T,
VFD_7SEG_U,
VFD_7SEG_U,//v
VFD_7SEG_W,
VFD_7SEG_X,
VFD_7SEG_Y,
VFD_7SEG_Z //z
};
const UINT16 vfd_digit[] =
{
VFD_7SEG_0,
VFD_7SEG_1,
VFD_7SEG_2,
VFD_7SEG_3,
VFD_7SEG_4,
VFD_7SEG_5,
VFD_7SEG_6,
VFD_7SEG_7,
VFD_7SEG_8,
VFD_7SEG_9
};
/****************************************************************************************/
/* cpy_src_len: bit 8 is 1 means that bit 8 means that only show partial string between 0 and cpy_src_len */
/* bit 8 is 0: normal show string, that is copy total string */
/* bit0~bit7 mean that copied source length */
/* start_p: start position of VFD for show string(position:0~9) */
/****************************************************************************************/
void vfd_set_str(UINT8 id, char *s)
{
BYTE i,j;
UINT16 c=0;
BYTE var_data;
if(id) {//english id
//s=(char *)_OsdMessegeFont1[id][0];
s=(char *)&(_OsdMessegeFont1[0][id][0]);
}
i=strlen(s);
//linebuf[20]=0;
for(j=TOTAL_SEG;j>0;j--)
{
if(i>0)
{
i--;
if( (s[i]>='a')&&(s[i]<='z') )
c=vfd_char[s[i]-0x20-'A'];
else if( (s[i]>='A')&&(s[i]<='Z') )
c=vfd_char[s[i]-'A'];
else if( (s[i]>='0')&&(s[i]<='9') )
c=vfd_digit[s[i]-'0'];
else
{
if(s[i]==0x20)
{
c=0;
}
}
//linebuf[2*j+OFFSET]=c>>8;
//linebuf[2*j-1+OFFSET]=c&0x00ff;
linebuf[j+OFFSET]=c&0xff;
}else
{
//linebuf[2*j+OFFSET]=0x00;
//linebuf[2*j-1+OFFSET]=0x00;
linebuf[j+OFFSET]=0x00;
}
}/*for loop*/
for(i=TOTAL_SEG;i>0; i--){
var_data=i;//vfd_7seg_p[i];
for(j=0;j<7;j++){
if((linebuf[var_data+OFFSET]>>j)&0x01)
vfd_set_dot(vfd_adddress[j]+vfd_grid_add[i-1]); //light coresponding dot
else
vfd_reset_dot(vfd_adddress[j]+vfd_grid_add[i-1]); //clear former data
}
}
}
void vfd_set_cd_type(void)
{
#ifdef CDROM_AUTO
AUTOS++;
if(AUTOS==50) AUTOS=11;
#endif
switch(cd_type_loaded)
{
case CDDVD:
vfd_set_dot(VFD_DOT_DVD);
if(get_angle_Ns()>1)
vfd_set_dot(VFD_DOT_ANGLE);
else
vfd_reset_dot(VFD_DOT_ANGLE);
break;
case CDROM:
if( (Is_MP3_STATE())&&(Mp3ReadFinish)&&(IS_AUDIF_CODING_MODE_MP3))//nono 2-5-10 13:50
{
vfd_set_dot(VFD_DOT_MP3);
vfd_reset_dot(VFD_DOT_MP4);
}else if( GetCurrentFileType() == CDROM_MP4 )
{
vfd_reset_dot(VFD_DOT_MP3);
vfd_set_dot(VFD_DOT_MP4);
}else{
vfd_reset_dot(VFD_DOT_MP3);
vfd_reset_dot(VFD_DOT_MP4);
}
break;
case CDDA:
vfd_set_dot(VFD_DOT_CD);
break;
case CDUNKNOWN:
break;
case CDSVCD:
vfd_set_dot(VFD_DOT_V);
break;
default://vcd
#ifdef CDROM_AUTO
if (GetCurrentFileType() == CDROM_JPEG)
{
if((AUTOS==8)&&(disp_trk_now<=1)) ircmd_play();
}
else
{
if((AUTOS==3)&&(disp_trk_now<=1)) ircmd_play();
}
#endif
vfd_set_dot(VFD_DOT_V);
break;
}
}
void vfd_set_showtime(void)
{
int track_num;
BYTE show_mm_tmp;
if(cd_type_loaded==CDDVD)
if(play_state==VCD_STATE_STOP)
{
track_num=get_tt_info(DISP_TT_Ns);//DISP_CH);
}
else
{
track_num=get_tt_info(DISP_CH);//nono 1-12-12 21:15
}
else
track_num=disp_trk_now;
show_mm_tmp=(show_time_hh*60+show_time_mm)%100;
{
show_mm_tmp=(show_time_hh*60+show_time_mm)%100;
psprintf(linebuf,"%1d%02d%02d",track_num,show_mm_tmp,show_time_ss);
vfd_set_str(0,linebuf);
vfd_set_dot(VFD_DOT_MINSEC);
vfd_set_dot(VFD_DOT_MIN);
vfd_set_dot(VFD_DOT_MIN2);
}
}
void vfd_set_audio(void)
{
vfd_reset_dot(VFD_DOT_DTS);
vfd_reset_dot(VFD_DOT_DOBLY);
#ifdef DUMMY_DTS
if(dummy_dts==1)
#else
if( ( coding_mode_now&(AUDIF_CODING_MODE_DTS|AUDIF_CODING_MODE_DTSCD) )||(cd_subtype==CD_DTS) )//nono 2-7-25 16:13
#endif
{
#ifndef VFD_NO_DTS_LIGHT
vfd_set_dot(VFD_DOT_DTS);
#endif
}
else if(coding_mode_now==AUDIF_CODING_MODE_AC3)
{
vfd_set_dot(VFD_DOT_DOBLY);
}
#if 0
#ifdef VFD_DOT_MIC1
switch(audio_channel)
{
case CH_LR:
case CH_RR:
case CH_LL:
// vfd_reset_dot(VFD_DOT_MIC1);
// vfd_reset_dot(VFD_DOT_MIC2);
break;
case CH_AUTO_L:
case CH_AUTO_R:
vfd_set_dot(VFD_DOT_MIC1);
// vfd_set_dot(VFD_DOT_MIC2);
break;
}
#endif
#endif
#if 1 //liliuhai add
switch(audio_channel)
{
case CH_LR:
vfd_set_dot(VFD_DOT_1L);
vfd_set_dot(VFD_DOT_2R);
vfd_reset_dot(VFD_DOT_MIC1);
break;
case CH_RR:
vfd_reset_dot(VFD_DOT_1L);
vfd_set_dot(VFD_DOT_2R);
vfd_reset_dot(VFD_DOT_MIC1);
break;
case CH_LL:
vfd_set_dot(VFD_DOT_1L);
vfd_reset_dot(VFD_DOT_2R);
vfd_reset_dot(VFD_DOT_MIC1);
break;
}
#endif
#if 0
#ifdef VFD_DOT_1L
switch(audio_effect)
{
case SE_STEREO:
vfd_reset_dot(VFD_DOT_1L);
vfd_reset_dot(VFD_DOT_2R);
break;
case SE_HALL:
case SE_LIVE:
case SE_THEATER:
case SE_ROOM:
vfd_set_dot(VFD_DOT_1L);
vfd_set_dot(VFD_DOT_2R);
break;
}
#endif
#endif
}
void vfd_set_playback(void)
{
if(play_state==VCD_STATE_PAUSE)
{
//erase_vfd_mem();
vfd_set_dot(100);
vfd_set_dot(VFD_DOT_PAUSE);
vfd_reset_dot(VFD_DOT_PLAY);
//vfd_set_str(STR_OS_PAUSE,"");
}else
{
if((play_state!=VCD_STATE_STOP)&&(play_state!=VCD_STATE_MP3_FILELIST))
vfd_set_dot(VFD_DOT_PLAY);
vfd_reset_dot(VFD_DOT_PAUSE);
}
if(IsPBCOn())
{
vfd_set_dot(VFD_DOT_PBC);
}
else
vfd_reset_dot(VFD_DOT_PBC);
vfd_set_cd_type();
vfd_set_audio();
//printf("V=%x\n",vfd_mem[3]);
vfd_set_showtime();
}
UINT16 vfd_set_no_disc_state(UINT16 index)
{
char light_str[]="Errd";
erase_vfd_mem();
if (bDiscType == CD_OKO)
{
vfd_set_str(0,light_str);
}else
vfd_set_str(0,"NODI");
return index;
}
UINT16 vfd_set_close_state(UINT16 index)
{
//char light_str[]="CLOSE";
erase_vfd_mem();
if(is_test_unit()==TRUE||system_state==SYSTEM_READ_TITLE||system_state==SYSTEM_NODISC)
{
//vfd_set_str(STR_OS_READ,"");
vfd_set_str(0,"LOAD");
}
else
{
//vfd_set_str(STR_OS_CLOSE,"");
vfd_set_str(0,"CLOS");
};
return index;
}
UINT16 vfd_set_toc_state(UINT16 index)
{
//char light_str[]="READ";
erase_vfd_mem();
//vfd_set_str(STR_OS_READ,"");
vfd_set_str(0,"LOAD");
return index;
}
UINT16 vfd_set_open_state(UINT16 index)
{
//char light_str[]="OPEN";
erase_vfd_mem();
//vfd_set_str(STR_OS_OPEN,"");
vfd_set_str(0,"OPEN");
return index;
}
/*
UINT16 vfd_set_game_state(UINT16 index)
{
vfd_reset_dot(VFD_DOT_PLAY);
return index;
}
*/
UINT16 vfd_set_pause_state(UINT16 index)
{
vfd_reset_dot(VFD_DOT_PLAY);
return index;
}
UINT16 vfd_set_mp3_state(UINT16 index)
{
//if(play_state!=VCD_STATE_STOP)
vfd_reset_dot(VFD_DOT_PLAY);
return index;
}
UINT16 vfd_set_stop_state(UINT16 index)
{
int i;
vfd_reset_dot(VFD_DOT_PLAY);
return index;
}
UINT16 vfd_set_normal_state(UINT16 index)
{
index=vfd_set_disc_run(index);
return index;
}
|
|