www.pudn.com > DVBT_SUNPLUS_0801.rar > vfd_sy_m5_256.c, change:2006-07-31,size:11695b


/* 
//SHAWN add at 910131 
// when use SAMSUNG 
*/ 
#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" 
 
extern UINT32	coding_mode_now; 
extern UINT16 Is_MP3_STATE(void); 
 
 
#define OFFSET	20 
#define MAX_POS	7 
#define VFD_DISPLAY_SIZE 12 
#define VFD_DISPLAY_MODE VFDC_SET_DISP_6D16S 
 
 
#define DISC_SIZE 12 
const UINT8 vfd_disc[DISC_SIZE] = {91,90,89,88,87,86,85,84,83,82,81,80}; //BYTE, BIT (11,3),(11,3).....(10,0) 
 
 
#define TOTAL_SEG 9 
const UINT8 vfd_7seg_p[TOTAL_SEG]={6,7,4,5,2,3,0,1,9};//7 seg position BYTE 
 
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||s[i]==0x00) 
				{ 
					c=0; 
				} 
			} 
			linebuf[j+OFFSET]=c&0xff; 
		}else 
		{ 
			linebuf[j+OFFSET]=0x00; 
        } 
	}/*for loop*/ 
 
 
 
	for(i=0,j=1;i<TOTAL_SEG;i++,j++) 
	{ 
        var_data=vfd_7seg_p[i]; 
		if(var_data==1||var_data==3||var_data==5||var_data==7||var_data==9) //BYTE 
		{ 
 
			vfd_mem[var_data] =   (linebuf[j+OFFSET]<<1)| //bit1~7 
				(vfd_mem[var_data]&0x01);//bit 0 
        } 
		//       	if(vfd_7seg_p[i]==0||vfd_7seg_p[i]==2||vfd_7seg_p[i]==4||vfd_7seg_p[i]==6)//BYTE 
       	if(var_data==0||var_data==2||var_data==4||var_data==6)//BYTE 
		{ 
 
			vfd_mem[var_data] =  (linebuf[j+OFFSET])| //bit0~6 
				(vfd_mem[var_data]&0x80);   //bit7 
        } 
		//        else if(vfd_7seg_p[i]==7) 
		//         vfd_mem[vfd_7seg_p[i]] =linebuf[j+OFFSET]|(vfd_mem[7]&0x01); 
	} 
} 
 
 
 
 
 
 
 
 
 
 
UINT16 vfd_set_disc_run(UINT16 index) 
{ 
    BYTE i; 
	for(i=0;i<DISC_SIZE;i++) 
	{ 
		vfd_set_dot(vfd_disc[i]); 
	} 
    vfd_set_dot(vfd_disc[index]); 
	if(adv_search_time>=0) 
    { 
		//        vfd_set_dot(vfd_disc[index]); 
		if(index>=(DISC_SIZE-1)) 
		{ 
			index=0; 
		}else 
			index++; 
 
		//		vfd_reset_dot(vfd_disc[index]); 
 
    }else 
    { 
		//        vfd_set_dot(vfd_disc[index]); 
		if(index==0) 
		{ 
			index=DISC_SIZE-1; 
		}else 
			index--; 
		//		vfd_reset_dot(vfd_disc[index]); 
    } 
    vfd_reset_dot(vfd_disc[index]); 
 
    return index; 
 
} 
 
 
 
void vfd_set_cd_type(void) 
{ 
 
	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) )//nono 2-5-10 13:50 
		vfd_reset_dot(VFD_DOT_MP3); 
		if( (Is_MP3_STATE())&&(Mp3ReadFinish) 
		#ifdef SUPPORT_WMA//zhaoyanhua add 03-10-11 17:58 when WMA ,not dot MP3. 
		    && ( GetCurrentFileType()!= CDROM_WMA) 
		#endif 
		  )//nono 2-5-10 13:50 
			vfd_set_dot(VFD_DOT_MP3); 
		break; 
 
	case CDDA: 
 
		vfd_set_dot(VFD_DOT_CD); 
 
		break; 
 
	case CDUNKNOWN: 
 
 
		break; 
		/* 
		case CDSVCD: 
 
 
			break; 
		*/ 
 
	default://vcd 
 
		vfd_set_dot(VFD_DOT_VCD); 
 
		break; 
 
	} 
 
} 
 
 
 
 
void vfd_set_showtime(void) 
{ 
 
	//BYTE track_num,track_tt=0; 
	BYTE track_tt=0; 
	int track_num;//nono 2-7-10 18:50 
 
 
	if(cd_type_loaded==CDDVD) 
	{ 
		if(play_state==VCD_STATE_STOP) 
		{ 
			//track_num=get_tt_info(DISP_TT_Ns);//DISP_CH); 
			track_num=get_tt_info(DISP_CH_Ns); 
			track_tt=get_tt_info(DISP_TT_Ns); 
			vfd_set_dot(VFD_DOT_TOTAL); 
			psprintf(linebuf,"%02d%s%01d%02d%02d",track_tt,"  ",show_time_hh,show_time_mm,show_time_ss);//nono 2-5-20 10:23 
		} 
		else 
		{ 
			track_num=get_tt_info(DISP_CH);//nono 1-12-12 21:15 
			track_tt=get_tt_info(DISP_TT); 
			vfd_reset_dot(VFD_DOT_TOTAL); 
			psprintf(linebuf,"%02d%02d%01d%02d%02d",track_tt,track_num,show_time_hh,show_time_mm,show_time_ss); 
 
		} 
 
		//psprintf(linebuf,"%02d%02d%01d%02d%02d",track_tt,track_num,show_time_hh,show_time_mm,show_time_ss); 
		//vfd_set_dot(VFD_DOT_TITLE); 
 
	} 
	else 
	{ 
 
		if(play_state==VCD_STATE_STOP) 
		{ 
			if(cd_type_loaded==CDROM) 
			{ 
				track_num=mp3_file_count();//0;//nono 2-4-21 19:35 
			} 
			else//xiaosan 02-06-10 
				track_num=cd_total_trk(); 
			//track_num=get_tt_info(DISP_TT_Ns);//DISP_CH); 
			vfd_set_dot(VFD_DOT_TOTAL); 
		} 
		else 
		{ 
			vfd_reset_dot(VFD_DOT_TOTAL); 
			track_num=disp_trk_now; 
		} 
        //track_num=disp_trk_now; 
       	psprintf(linebuf,"%02d%01d%02d%02d",track_num,show_time_hh,show_time_mm,show_time_ss); 
		// vfd_reset_dot(VFD_DOT_TITLE); 
	} 
 
	vfd_set_str(0,linebuf); 
	vfd_set_dot(VFD_DOT_MIN); 
	vfd_set_dot(VFD_DOT_MINSEC); 
	//vfd_set_dot(VFD_DOT_DOT); 
	//vfd_set_dot(VFD_DOT_CHAPTER); 
 
 
 
	//***************************************************************** 
 
#if 0 
 
	if(cd_type_loaded!=CDROM)  //jjding 2000/11/17 
	{ 
		vfd_set_dot(VFD_DOT_CHAPTER); 
		vfd_set_dot(VFD_DOT_TITLE); 
		vfd_set_dot(VFD_DOT_VCD); 
		vfd_set_dot(VFD_DOT_MINSEC); 
		vfd_set_dot(VFD_DOT_H_M); 
 
		//vfd_set_tt(cd_total_trk()); 
		//vfd_set_pp(disp_trk_now);       //VFD set min 
	}else	if(play_state!=VCD_STATE_STOP) 
	{ 
	/*if(play_state==VCD_STATE_MP3_DIRLIST) 
	{ 
	vfd_set_pp(0); 
	vfd_set_mm(0); 
	vfd_set_ss(0); 
	}else*/ 
		{ 
			if(mp3_user_select>99) 
			{ 
				vfd_set_tt(mp3_user_select/100); 
				vfd_set_pp(mp3_user_select%100); 
			} 
			else 
			{ 
				vfd_set_tt(0); 
				vfd_set_pp(mp3_user_select); 
			} 
		} 
 
	}else 
	{ 
		vfd_set_tt(mp3_total_dir); 
		vfd_reset_dot(VFD_DOT_MINSEC); 
		vfd_set_mm(iso9660_file_cnt/100); 
		vfd_set_ss(iso9660_file_cnt%100); 
	} 
#endif 
 
 
 
 
} 
 
 
 
void vfd_set_audio(void) 
{ 
	// int i; 
    //UINT8 id=*get_audio_mode(); 
    //if((cd_type_loaded==CDDVD)||(cd_type_loaded==CDDA)) 
    { 
		//  printf("<id3:%x><id3=%d>",id,id); 
        vfd_reset_dot(VFD_DOT_DOBLY); 
        vfd_reset_dot(VFD_DOT_DTS); 
 
        if( ( coding_mode_now&(AUDIF_CODING_MODE_DTS|AUDIF_CODING_MODE_DTSCD) )||(cd_subtype==CD_DTS) )//nono 2-7-25 16:52 
        { 
			//printf("<id1:%x><id1=%d",id,id); 
   	        vfd_set_dot(VFD_DOT_DTS); 
   	        //vfd_reset_dot(VFD_DOT_DOBLY); 
        } 
        else if(coding_mode_now==AUDIF_CODING_MODE_AC3) 
        { 
			//printf("<id2:%x><id2=%d",id,id); 
            vfd_set_dot(VFD_DOT_DOBLY); 
            //vfd_reset_dot(VFD_DOT_DTS); 
        } 
	} 
	/* 
	switch(cd_type_loaded) 
	{ 
	case CDDVD: 
	//printf("\n *get_audio_mode()=%d \n",*get_audio_mode()); 
	if(*get_audio_mode()==68) 
	{ 
	vfd_set_dot(VFD_DOT_DTS); 
	vfd_reset_dot(VFD_DOT_DOBLY); 
	} 
	else 
	{ 
	vfd_set_dot(VFD_DOT_DOBLY); 
	vfd_reset_dot(VFD_DOT_DTS); 
	} 
 
	  break; 
 
		default: 
 
 
			break; 
 
			  } 
 
	*/ 
 
#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 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) //modify by shawn 0416 
	{ 
		//erase_vfd_mem(); 
		vfd_set_dot(VFD_DOT_PAUSE); 
		//vfd_set_str(STR_OS_PAUSE,""); 
	}else 
		vfd_reset_dot(VFD_DOT_PAUSE); 
 
 
 
    //if(IsPBCOn()||cd_type_loaded==CDDVD) 
	//vfd_set_dot(VFD_DOT_MENU); 
    //else 
	//vfd_reset_dot(VFD_DOT_MENU); 
 
 
	if(prog_cnt) 
       	vfd_set_dot(VFD_DOT_PROG); 
    else 
		vfd_reset_dot(VFD_DOT_PROG); 
 
 
	vfd_reset_dot(VFD_DOT_REPEAT); 
	vfd_reset_dot(VFD_DOT_REPALL); 
	if(rep_mode==REPEAT_TRACK||rep_ab_mode==REPEAT_FIND_A||rep_ab_mode==REPEAT_FIND_B) 
	{ 
 
		vfd_set_dot(VFD_DOT_REPEAT); 
 
    } 
    else if(rep_mode==REPEAT_DISC) 
	{ 
		vfd_set_dot(VFD_DOT_REPALL); 
		vfd_set_dot(VFD_DOT_REPEAT); 
	} 
	else if(rep_mode==REPEAT_DIRECTORY) 
	{ 
 
		//	 vfd_reset_dot(VFD_DOT_REPEAT); 
		vfd_set_dot(VFD_DOT_REPALL); 
	} 
 
 
 
 
#if 0 
#ifdef VFD_DOT_PAL 
	if(tv_format==MODE_PAL) 
	{ 
		vfd_set_dot(VFD_DOT_PAL); 
		vfd_reset_dot(VFD_DOT_NTSC); 
	} 
	else 
	{ 
		vfd_set_dot(VFD_DOT_NTSC); 
		vfd_reset_dot(VFD_DOT_PAL); 
	} 
#endif 
#endif 
 
 
 
 
 
	vfd_set_cd_type(); 
	vfd_set_audio(); 
	//printf("V=%x\n",vfd_mem[3]); 
	vfd_set_showtime(); 
 
 
} 
 
 
 
 
UINT16	vfd_set_power_state(UINT16 index) 
{ 
	//char light_str[]="CLOSE"; 
	//char light_str[]=""; 
	erase_vfd_mem(); 
	//vfd_set_str(0,light_str); 
 
 
	return index; 
} 
 
 
UINT16	vfd_set_idle_state(UINT16 index) 
{ 
 
 
	erase_vfd_mem(); 
	vfd_set_str(0,"CLOSE"); 
 
 
	return index; 
} 
 
 
UINT16	vfd_set_no_disc_state(UINT16 index) 
{ 
    int i; 
 
    erase_vfd_mem(); 
    vfd_set_str(0,"NODISC "); 
 
    for(i=0;i<DISC_SIZE;i++) 
        vfd_set_dot(vfd_disc[i]);  //nono 1-12-12 20:55 
 
	return index; 
} 
 
 
 
UINT16	vfd_set_close_state(UINT16 index) 
{ 
 
	//  erase_vfd_mem(); 
 
    if(is_test_unit()==TRUE||system_state==SYSTEM_READ_TITLE||system_state==SYSTEM_NODISC) 
        vfd_set_str(0,"LOAD"); 
    else 
        vfd_set_str(0,"CLOSE"); 
 
	//vfd_set_dot(VFD_DOT_DOT); 
 
 
 
 
    return index; 
} 
 
 
 
UINT16	vfd_set_toc_state(UINT16 index) 
{ 
 
    erase_vfd_mem(); 
    vfd_set_str(0,"LOAD"); 
 
    return index; 
} 
 
 
UINT16	vfd_set_open_state(UINT16 index) 
{ 
 
    erase_vfd_mem(); 
    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) 
{ 
 
	vfd_set_dot(VFD_DOT_PLAY); 
	index=vfd_set_disc_run(index); 
 
	return index; 
} 
 
 
UINT16	vfd_set_stop_state(UINT16 index) 
{ 
    int i; 
    vfd_reset_dot(VFD_DOT_PLAY); 
    for(i=0;i<DISC_SIZE;i++) 
        vfd_set_dot(vfd_disc[i]);  //nono 1-12-12 20:55 
 
 
	return index; 
} 
 
 
 
UINT16	vfd_set_normal_state(UINT16 index) 
{ 
 
	vfd_set_dot(VFD_DOT_PLAY); 
	index=vfd_set_disc_run(index); 
 
 
	return index; 
}