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

📄 fp_handle.c

📁 SAMSUNG 5009的源代码
💻 C
字号:
/****************************************************************************** *   Filename    : FP_handle.c *   Start       : 2003. 5. 26. *   By          : Taejin Kwon *   Contact     : eric.kwon@samsung.com *   Description : control the front micom. *				  It can be changed when a new micom is used. ****************************************************************************** *//****************************************************** *       INCLUDES *****************************************************/#include "Basic_typedefs.h"#include "CUSTOM/Custom_option.h"#include "OS/OS_abstract.h"#include "API/SH_types.h"#include "API/SH_api.h"#include "API/SH_reg.h"#include "COMMON/Common.h"#include "MAIN/Appl_types.h"#include "MAIN/Global_state.h"#include "CUSTOM/Osd_types.h"#include "CUSTOM/Key_handler_setup.h"#include "CUSTOM/Key_defs.h"#include "CUSTOM/FP_data.h"#include "CUSTOM/FP_handle.h"#include "CUSTOM/Spi_api.h"#include "MAIN/DVD/Dvd_predef.h"#include "MAIN/DVD/Dvd_common.h"#include "DRIVER/EEPROM/Eeprom_drv.h"FP_IFCALLBACK AttachedKeySendCallback = FP_NullKeySendCallback;extern VOID SH_SetIdleMode( VOID );extern VOID SH_EndPowerOffCheck( VOID );/****************************************************************************** * Function name  : FP_AttachKeySendCallback  * Arguments      : callback -> FP_IFCALLBACK type * Return         : void * By             : * Description    :  ****************************************************************************** */void FP_AttachKeySendCallback( FP_IFCALLBACK callback ){	AttachedKeySendCallback = callback;}/*rainbow.zhang 050826:support vfd*/unsigned char FpKeyArray[]={	RC_KEY_XXXX,	RC_KEY_XXXX,		RC_KEY_XXXX,		RC_KEY_XXXX,		RC_KEY_XXXX,	RC_KEY_XXXX,		RC_KEY_XXXX,		RC_KEY_XXXX,		RC_KEY_XXXX,	RC_KEY_OPENCLOSE,	RC_KEY_XXXX,		RC_KEY_XXXX,		RC_KEY_XXXX,	RC_KEY_XXXX,		RC_KEY_XXXX,		RC_KEY_XXXX,		RC_KEY_XXXX,	RC_KEY_STOP,		RC_KEY_XXXX,		RC_KEY_XXXX,		RC_KEY_XXXX,	RC_KEY_PLAY,		RC_KEY_XXXX,		RC_KEY_XXXX,		RC_KEY_XXXX,};#if _APP_CAP_PERI_VFDunsigned char VfdMode;static char timestr_bakup[6]={0,0,0,0,0,0};VOID UpDateIcon(){	static unsigned char count = 1;	static unsigned char iconindex = 0;	if(count--)		return;	if((VfdMode<=FP_MAIN_STOP)||(VfdMode==FP_MAIN_LEADIN))		return;	switch(GetMainState()){		case MAIN_STOP:			iconindex = 6;			count = 0xFF;			break;		case MAIN_PAUSE:			count = 0xFF;			break;		case MAIN_FR:			if(--iconindex==0)				iconindex = 5;			count = 25;			break;		case MAIN_SR:			if(--iconindex==0)				iconindex = 5;			count = 100;			break;		case MAIN_FF:			if(++iconindex>5)				iconindex = 0;			count = 25;			break;		case MAIN_SF:			if(++iconindex>5)				iconindex = 0;			count = 100;			break;		case MAIN_PLAY:			if(++iconindex>5)				iconindex = 0;			count = 50;			break;	}	FPDisplayIcon(FP_INFO_ALL,0);	switch(iconindex){		case 0:			FPDisplayIcon(FP_INFO_S0|FP_INFO_S6,1);			break;		case 1:			FPDisplayIcon(FP_INFO_S0|FP_INFO_S5,1);			break;		case 2:			FPDisplayIcon(FP_INFO_S0|FP_INFO_S4,1);			break;		case 3:			FPDisplayIcon(FP_INFO_S0|FP_INFO_S3,1);			break;		case 4:			FPDisplayIcon(FP_INFO_S0|FP_INFO_S2,1);	 		break;		case 5:			FPDisplayIcon(FP_INFO_S0|FP_INFO_S1,1);			break;		case 6:			FPDisplayIcon(FP_INFO_ALL,1);			break;	}}/*rainbow.zhang 050826:support vfd*/VOID SetVfdTvMode(SET_TV_SYS_ID tv_mode ){	//don't display the mode when load	if(VfdMode!=FP_MAIN_LEADIN)	{		switch(tv_mode)		{			case SET_COLOR_PAL:#if _COP_TV_PAL60			case SET_COLOR_PAL60:#endif#if _COP_TV_PALM			case SET_COLOR_PALM:#endif				#if _COP_TV_PALN			case SET_COLOR_PALN:#endif					FPDisplayIcon(FP_INFO_NTSC,0);				FPDisplayIcon(FP_INFO_PAL,1);				break;			case SET_COLOR_AUTO:			case SET_COLOR_NTSC:			default:				FPDisplayIcon(FP_INFO_NTSC,1);				FPDisplayIcon(FP_INFO_PAL,0);				break;		}	}	}/*rainbow.zhang 050826:support vfd*/#if 0/*not used function disable by Liu 051102*//*rainbow.zhang 050908:support vfd*/VOID ClrVfdTvMode(VOID){	FPDisplayIcon(FP_INFO_NTSC,1);	FPDisplayIcon(FP_INFO_PAL,0);	}/*rainbow.zhang 050908:support vfd*/#endif/*rainbow.zhang 050826:support vfd*/VOID SetVfdKaraoke(ONOFF id){	//don't display the mode when load	if(VfdMode!=FP_MAIN_LEADIN)	{		if(id)			FPDisplayIcon(FP_INFO_KARAOKE,1);		else			FPDisplayIcon(FP_INFO_KARAOKE,0);				}	}/*rainbow.zhang 050826:support vfd*//*rainbow.zhang 050826:support vfd*/VOID SetVfdPlaybackInfo( BYTE1 dis_type, BYTE2 chapter, BYTE2 time ){/*rainbow.zhang 050826:support vfd*/	char i;	char timestr[6];	if(dis_type == 0)	{		timestr[5] = (time%60)%10 +'0';		timestr[4] = (time%60)/10 +'0';		timestr[3] = (time/60)%10 +'0';		timestr[2] = ((time/60)%60)/10 +'0';				timestr[1] = (chapter%10)+'0';		timestr[0] = (chapter/10)+'0';	}	if(dis_type == 1)	{		timestr[5] = (time%60)%10 +'0';		timestr[4] = (time%60)/10 +'0';		timestr[3] = (time/60)%10 +'0';		timestr[2] = ((time/60)%60)/10 +'0';		timestr[1] = timestr_bakup[1];		timestr[0] = timestr_bakup[0];	}	if(dis_type == 2)	{		timestr[5] = timestr_bakup[5];		timestr[4] = timestr_bakup[4];		timestr[3] = timestr_bakup[3];		timestr[2] = timestr_bakup[2];		timestr[1] = (chapter%10)+'0';		timestr[0] = (chapter/10)+'0';	}	for (i=0; i<6; i++)			timestr_bakup[i] = timestr[i];		FPOutString(0,timestr);	FPDisplayIcon(FP_INFO_DOT,1);/*rainbow.zhang 050826:support vfd*/}VOID SetVfdTotalTime( BYTE1 dis_type, BYTE2 chapter, BYTE2 time ){/*rainbow.zhang 050826:support vfd*/	SetVfdPlaybackInfo(0, chapter,  time );/*rainbow.zhang 050826:support vfd*/}VOID SetVfdMainState( BYTE1 mode ){/*rainbow.zhang 050826:support vfd*/	static unsigned char bRestore = 0;	VfdMode = mode;	switch(mode)	{		case FP_MAIN_POWER_OFF:		case FP_MAIN_CLOSE:		case FP_MAIN_OPEN:		case FP_MAIN_LEADIN:		case FP_MAIN_FIRMCD:			FPClearFp();			bRestore = 0;			break;		case FP_MAIN_PLAY:		case FP_MAIN_MENU:		case FP_MAIN_PAUSE:			break;		case FP_MAIN_STANDBY:			if(bRestore==0){				bRestore = 1;				SaveFp();			}				break;		case FP_MAIN_SETUP:			if(bRestore==0){				bRestore = 1;				SaveFp();			}				FPClearFp();			break;		case FP_MAIN_STOP:			FPClearFp(); 			break;		default:			FPDisplayIcon(FP_INFO_ALL,0);			FPDisplayIcon(FP_INFO_DOT,0);			break;	}	switch(mode){		case FP_MAIN_POWER_OFF:			FPOutString(0,"   OFF");			break;		case FP_MAIN_CLOSE:			FPOutString(0," CLOSE");			break;		case FP_MAIN_OPEN:			FPOutString(0,"  OPEN");			break;		//case FP_MAIN_STANDBY:		case FP_MAIN_STOP:			FPOutString(0,"  STOP");			break;		case FP_MAIN_PAUSE:			break;		case FP_MAIN_MENU:			//FPOutString(0,"  ROOT");          			break;		case FP_MAIN_LEADIN:			FPOutString(0,"  LOAD");			break;		case FP_MAIN_SEARCH:			break;		case FP_MAIN_SETUP:			FPOutString(0," SETUP");			break;		case FP_MAIN_FIRMCD:			FPOutString(0,"UPDATE");		    break;		case FP_MAIN_NL_PLAY:				FPOutString(0,"      ");			break;		case FP_MAIN_POWER_OFF_SIGN:			break;		case FP_MAIN_DISC_END:			FPOutString(0,"   END");			break;		case FP_MAIN_PLAY:			if(bRestore){				bRestore = 0;				RestoreFp();			}			break;	}/*rainbow.zhang 050826:support vfd*/}VOID SetVfdDiscState( BYTE1 mode ){/*rainbow.zhang 050826:support vfd*/	SysPrintf("SetVfdDiscState mode = 0x%\n",mode);	switch(mode){		case FP_DISC_NO_DISC:			FPOutString(0,"NODISC");			break;		case FP_DISC_DVD_VIDEO:		case FP_DISC_DVD_AUDIO	:			FPDisplayIcon(FP_INFO_DVD,1);			break;		case FP_DISC_VCD_1_1:		case FP_DISC_VCD_2_0:			FPDisplayIcon(FP_INFO_V|FP_INFO_CD,1);			break;		case FP_DISC_SVCD:			FPDisplayIcon(FP_INFO_S|FP_INFO_V|FP_INFO_CD,1);                    break;		case FP_DISC_CD:			FPDisplayIcon(FP_INFO_CD,1);			FPDisplayIcon(FP_INFO_MP3,0);			break;		case FP_DISC_SVCD_OFF:			FPDisplayIcon(FP_INFO_S|FP_INFO_V|FP_INFO_CD,1);			FPDisplayIcon(FP_INFO_PBC,0);			break;		case FP_DISC_CVD_MENU_OFF:          			FPDisplayIcon(FP_INFO_PBC,0);			break;		case FP_DISC_SVCD_ON:			FPDisplayIcon(FP_INFO_S|FP_INFO_V|FP_INFO_CD,1);			FPDisplayIcon(FP_INFO_PBC,1);			break;		case FP_DISC_CVD_MENU_ON:			FPDisplayIcon(FP_INFO_PBC,1);			break;		case FP_DISC_MP3:			FPDisplayIcon(FP_INFO_MP3,1);			FPDisplayIcon(FP_INFO_CD,0);			break;		case FP_DISC_JPEG:			FPDisplayIcon(FP_INFO_MP3,0);			break;		default: 			break;	}/*rainbow.zhang 050826:support vfd*/}VOID SetVfdPowerOff( VOID ){	/* <<< @: 5008CHN-2020,2021.ishan 050614 : Go to idle state  *//*rainbow.zhang 050826:support vfd*/	FPClearFp();/*rainbow.zhang 050826:support vfd*/	/* go to idle mode */	SH_SetIdleMode();	/* Stop the watch dog timer */	SH_EndPowerOffCheck();	/* >>> @: 5008CHN-2020,2021.ishan 050614 : */}VOID SetVfdDimmer( UCHAR value ){}void SetVfdPBCDisplay(BYTE1 pbc){}/*rainbow.zhang 050826:support vfd*/VOID SetVfdAudio( UCHAR	id ){	//don't display the mode when load	if(VfdMode!=FP_MAIN_LEADIN)	{		switch(id)		{			case 0:				FPDisplayIcon(FP_INFO_AUDIO_L,1);				FPDisplayIcon(FP_INFO_AUDIO_R,1);				break;			case 1:				FPDisplayIcon(FP_INFO_AUDIO_L,1);				FPDisplayIcon(FP_INFO_AUDIO_R,0);				break;			default:				FPDisplayIcon(FP_INFO_AUDIO_L,0);				FPDisplayIcon(FP_INFO_AUDIO_R,1);				break;		}	}}/*rainbow.zhang 050826:support vfd*//*rainbow.zhang 050908:support vfd*/VOID ClrVfdAudio(VOID){	FPDisplayIcon(FP_INFO_AUDIO_L,0);	FPDisplayIcon(FP_INFO_AUDIO_R,0);		}/*rainbow.zhang 050908:support vfd*/VOID SetVfdRepeatDisplay( BYTE1 mode ){}VOID SetVfdPrgmRndDisplay( BYTE1 mode ){} VOID SetVfdJpegNumber( UINT16 num ){/*rainbow.zhang 050826:support vfd*/	char jpegstr[6];	jpegstr[0]=' ';	jpegstr[1]=' ';        	jpegstr[2]= (num/1000) + '0';	jpegstr[3]= ((num%1000)/100) + '0';	jpegstr[4]= (((num%1000)%100)/10) + '0';	jpegstr[5]= (((num%1000)%100)%10) + '0';        	FPOutString(0,jpegstr);	FPDisplayIcon(FP_INFO_DOT,0);/*rainbow.zhang 050826:support vfd*/}VOID InitFrontPanel(VOID){}#else  /* _APP_CAP_PERI_VFD */VOID UpDateIcon(){}VOID SetVfdPlaybackInfo( BYTE2 title, BYTE2 chapter, BYTE2 time ){}VOID SetVfdTotalTime( BYTE2 title, BYTE2 chapter, BYTE2 time ){}VOID SetVfdMainState( BYTE1 mode ){}VOID SetVfdDiscState( BYTE1 mode ){}VOID SetVfdPowerOff( VOID ){	/* <<< @: 5008CHN-2020,2021.ishan 050614 : Go to idle state  */	/* go to idle mode */	SH_SetIdleMode();	/* Stop the watch dog timer */	SH_EndPowerOffCheck();	/* >>> @: 5008CHN-2020,2021.ishan 050614 : */}VOID SetVfdDimmer( UCHAR value ){}VOID SetVfdAudio( UCHAR	id ){}VOID SetVfdRepeatDisplay( BYTE1 mode ){}VOID SetVfdPrgmRndDisplay( BYTE1 mode ){} VOID SetVfdJpegNumber( UINT16 num ){}VOID InitFrontPanel(VOID){}#endif /* _APP_CAP_PERI_VFD */

⌨️ 快捷键说明

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