📄 fp_handle.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 + -