⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 vfd_sy_m5_256.c

📁 Sunplus 8202S source code.
💻 C
字号:
/*
//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;
}





⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -