ir_parser.c
来自「凌阳8202T的红外接收代码及LED屏的驱动代码」· C语言 代码 · 共 2,095 行 · 第 1/5 页
C
2,095 行
FSGUI_Menu();
#ifdef PMP_UI
if((pFsJpeg->gifsState == FS_STATE_INIT)||
(pFsJpeg->gifsState == FS_STATE_MP3))
{
if(pFsJpeg->gifsState == FS_STATE_MP3)
update_current_file_index();
FSGUI_Refresh_PMP();
FSGUI_DirList(pFsJpeg->hdd_dir_current);
ShowHL();
}
#else
FSGUI_Refresh();
#endif
}
}
}
else
{
s_uiNeedReadFileInformation = FALSE;
}
}
#endif//#ifndef USE_SETUP_SELECT_FONT//shenyj add for alco 11/28
}
#else
#define ChangeFontByAngleKey( rx )
#endif
#ifdef MONE_DSP24_SHOW_CODEC_NAME_BY_ANGLE_KEY // 2005/02/18 yltseng
static inline void ShowDSPCodecNameByAngleKey( BYTE rx )
{
//Steven 2007/04/11 mark
//#ifdef SUPPORT_SCORE_GPIO_DETECT_MIC /// for 8202l support score jiangxl 20070205
// extern int mic_counter;
// int testscore = 0 ;
//#endif
if( rx == IRC_ANGLE )
{
extern void DSP_GetCodecIDString( char* pBuf );
extern void DSP_GetCodecVersionString( char* pBuf );
char aID[32];
DSP_GetCodecIDString( aID );
char aVer[4];
DSP_GetCodecVersionString( aVer );
char aBuf[36];
psprintf( aBuf, "%s %s", aID, aVer );
psprintf(linebuf, "dsp info : %s\n", aBuf );
io_write_wait(linebuf);
ConvertLowerCaseToUpperCase( aBuf );
osdshow( REGION1, aBuf );
}
}
#else
#define ShowDSPCodecNameByAngleKey( rx )
#endif
#ifdef MONE_SHOW_JPEG_RESOLUTION_BY_ANGLE_KEY
static inline void ShowJpegResolutionByAngleKey( BYTE rx )
{
if( rx == IRC_ANGLE )
{
UINT16 w, h;
jpg_get_actual_resoluation(&w, &h);
delay_1ms(20);
char wBuf[12];
psprintf( wBuf, "%d %c", w, 'X');
char hBuf[6];
psprintf( hBuf, "%d [%d %d]", h, jpg_get_downsample_rate()>>16, jpg_get_downsample_rate()&0xffff);
strcat1(wBuf, hBuf);
osdshow( REGION1, wBuf );
}
}
#else
#define ShowJpegResolutionByAngleKey( rx )
#endif
static inline UINT32 RejectBySWD( BYTE rx __attribute__((unused)))
{
BYTE res;
res = FALSE;
#ifdef SUPPORT_PLAY_SWD
extern BYTE SWD_CheckIrcmd(BYTE rx);
if( START_POLLING_SWD )
{
res = SWD_CheckIrcmd(rx);
}
#endif
return res;
}
extern BYTE GetCurrentFileType();
#ifdef SUPPORT_DIVX6
//#include "divx6_if.h"
extern UINT32 divx6_menu_exist;
extern UINT32 divx6_menu_playback;
#endif
#ifdef SUPPORT_MALATA_INVALID_KEY//tianye 200607
#include "user_if.h"
int mlata_ircmd_pre_paser(BYTE rx);
int mlata_ircmd_pre_paser(BYTE rx)
{
int check_result = 0;
#ifdef CDROM_TITLE_MENU_INVALID_KEY
if((cd_type_loaded == CDROM)&&(
(rx == IRC_TITLEMENU)||((rx == IRC_PBC)) ))
{
check_result = 1;
}
#endif//end=> #ifdef CDROM_TITLE_MENU_INVALID_KEY
#ifdef SOME_KEY_INVALID_WHEN_WRONG_REGION
else if((dvd_error==REGION_ERR)&&
((rx == IRC_PAUSEPLAY)||(rx == IRC_GOTO)||(rx == IRC_TITLEMENU)
||(rx == IRC_DISPLAY)||(rx == IRC_P10)||(rx == IRC_PBC)))
{
check_result = 1;
}
#endif//end=> #ifdef SOME_KEY_INVALID_WHEN_WRONG_REGION
#ifdef SOME_KEY_INVALID_WHEN_TITLE_MENU
else if(cd_type_loaded==CDDVD)
{
if(((disp_time ==0)||(get_tt_info(DISP_TT) == 0)||(get_tt_info(DISP_CH)==0)||(HL_exist))
&&((rx == IRC_PREV)||(rx == IRC_GOTO)||(rx == IRC_AB)/*||(rx == IRC_STOP)*/
||(rx == IRC_SLOW)||(rx == IRC_ZOOM)))
{
check_result = 1;
}
}
#endif//end=> #ifdef SOME_KEY_INVALID_WHEN_TITLE_MENU
return check_result;
}
#endif//endif=> #ifdef SUPPORT_MALATA_INVALID_KEY
#ifdef SUPPORT_iPOD_DOCKING
void call_ir_func_ipod(UINT8 rx)
{
UINT8 inputKey = IPOD_INPUT_KEY_NONE;
if((system_state == SYSTEM_DOING_IPOD_MODE)&&(!(full_scrn & SOUND)))
{
//menu control key
if (rx == IRC_RETURN)
inputKey = IPOD_INPUT_KEY_MENU;
else if (rx == IRC_UP)
inputKey = IPOD_INPUT_KEY_UP;
else if (rx == IRC_DOWN)
inputKey = IPOD_INPUT_KEY_DOWN;
else if ( rx == IRC_LEFT )
inputKey = IPOD_INPUT_KEY_LEFT;
else if ( rx == IRC_RIGHT )
inputKey = IPOD_INPUT_KEY_RIGHT;
else if (rx == IRC_SELECT)
inputKey = IPOD_INPUT_KEY_ENTER;
//play control key
else if (rx == IRC_PAUSE)
//inputKey = IPOD_INPUT_KEY_PLAYPAUSE;
inputKey = IPOD_INPUT_KEY_PAUSE;
else if ( (rx == IRC_PLAY)||(rx == IRC_PLAY_RESUME) )
inputKey = IPOD_INPUT_KEY_PLAY;
else if (rx == IRC_PREV)
inputKey = IPOD_INPUT_KEY_PREV_TRACK;
else if (rx == IRC_NEXT)
inputKey = IPOD_INPUT_KEY_NEXT_TRACK;
else if (rx == IRC_FORWARD)
inputKey = IPOD_INPUT_KEY_STR_FF;
else if (rx == IRC_BACKWARD)
inputKey = IPOD_INPUT_KEY_STR_FB;
else if (rx == IRC_SETUP) //stop ff or fb
inputKey = IPOD_INPUT_KEY_END_REW;
else if (rx == IRC_STOP)
inputKey = IPOD_INPUT_KEY_STOP;
else if (rx == IRC_SUBP)
inputKey = IPOD_INPUT_KEY_CHNAGE_MODE;
else if(rx == IRC_POWER)
inputKey = IPOD_INPUT_KEY_POWER;
ipod_handle_input(inputKey);
}
}
#endif
extern int do_USB_init(void);
extern int do_SD_MMC_init(void);
extern int do_MS_init(void);
#ifdef MP4KOK_FUNCTION_SELECT //tanhuan
extern BYTE Filekok_Gui_Ir_hander(BYTE bIrvalue);
#endif
#ifdef SUPPORT_FILEKOK
int filekok_not_open;
#endif
void ircmd_pre_paser(BYTE rx)
{
#ifdef MP4KOK_FUNCTION_SELECT //tanhuan
if( Is_FileKok_Gui() )
{
if(Filekok_Gui_Ir_hander( rx )) return;
}
#endif
#ifdef SUPPORT_FILEKOK
extern BYTE mp4_kok_disc;
if ((rx == IRC_RETURN)&&(play_state == VCD_STATE_MP3_FILELIST) && (GetCurrentFileType()== CDROM_MP4)&&(mp4_kok_disc==1))
{
extern void FileKok_MainLoop();
filekok_not_open=1;
ircmd_trayout();
filekok_not_open=0;
return;
}
#endif
/* BEGIN: Added by xgqi, 2007/7/11 */
#ifdef SUPPORT_FILESEARCH
extern BYTE bUiRefreshFinished;
if(FileSearch_Gui_IsOn())
{
if(FileSearch_Ircmd_API(rx))
{
return;
}
}
if ((rx == IRC_ZOOM)&&( ((cd_type_loaded == CDROM)||(media_type == MEDIA_CARD))/*&& (((system_state == SYSTEM_SETUP_BROWSE))||(system_state >= SYSTEM_BROWSE))*/
&& FileSearch_Gui_IsOff( )&&(!jpg_is_decoding_process()))&&!FileSearch_Is_NotPermitIn())
{
FileSearch_Gui_Entrance();
return;
}
#endif
/* END: Added by xgqi,2007/7/11 */
#ifdef SUPPORT_FILE_COPYING
#ifdef FILE_COPYING_USE_GUI
if( Is_FileCopy_Gui() )
{
if(Filecopy_Gui_Ir_hander( rx )) return;
}
if (((rx == IRC_SUBP) && (cd_type_loaded == CDROM) && (media_type == MEDIA_CD))
)
{
if((pFsJpeg->ControlArea == CNT_AREA_DIR)||(pFsJpeg->ControlArea == CNT_AREA_FILE))//wangmin 061221
{
if(!((((pFsJpeg->gifsFuncBtn == FS_FUNC_JPEG)&&(pFsJpeg->g_nJpegMode == JPEG_FULL_SCREEN_MODE))||(pFsJpeg->gifsFuncBtn == FS_FUNC_OTHER))&&(play_state != VCD_STATE_MP3_FILELIST)))
{
if(pFsJpeg->g_nJpegMode == JPEG_THUMBNAIL_MODE)
{
invalid_key();
return;
}
#ifdef DIRECT_ACCESS_MEDIA//added by wangwei, 2006-10-10 17:10
if( is_usb_media_exists())
{
if( FileCopy_check_device() >=0 )
{
Filecopy_Gui_Enterance();
}
}
else
{
psprintf(RegionValStr[REGION2], "NO DEVICE");
PrintOsdMsg(STR_OS_SPACE, REGION2, 1, 1);
return;
}
return;
/*
if (is_usb_media_exists())
{
UsbTestReady();
Filecopy_Gui_Enterance();
}
else
{
psprintf(RegionValStr[REGION2], "NO DEVICE");
PrintOsdMsg(STR_OS_SPACE, REGION2, 1, 1);
return;
}
*/
#else
if( FileCopy_check_device() == 1)
{
Filecopy_Gui_Enterance();
}
return;
#endif
}
}
}
#else
printf_w("wangmin rx =%d .cd_type_loaded=%d .media_type =%d.\n",rx,cd_type_loaded,media_type);
if(((rx == IRC_SUBP)||(rx == IRC_RIPPING)) && (cd_type_loaded == CDROM))//&& (media_type == MEDIA_CD))
{
if(pFsJpeg->gifsState != FS_STATE_INIT)//muwei add ,when in PreStop or Stop,(Break from the FS GUI State),Don't Copy
if((pFsJpeg->ControlArea == CNT_AREA_DIR)||(pFsJpeg->ControlArea == CNT_AREA_FILE))//wangmin 061221
{
if(!((((pFsJpeg->gifsFuncBtn == FS_FUNC_JPEG)&&(pFsJpeg->g_nJpegMode == JPEG_FULL_SCREEN_MODE))||(pFsJpeg->gifsFuncBtn == FS_FUNC_OTHER))&&(play_state != VCD_STATE_MP3_FILELIST)))
{
#ifdef DIRECT_ACCESS_MEDIA//added by wangwei, 2006-10-10 17:10
/* BEGIN: Modified by xg.qi, 2007/5/24 */
// printf("Current media_status is %d\n",media_status);
if(media_status ==STATUS_DISC)
{
if ( is_usb_media_exists( ) )
{
UsbTestReady();
}
/* BEGIN: Added by xg.qi, 2007/5/17 */
#ifdef SUPPORT_CD2CARD_COPY
else if (is_card_media_exists())
{
card_test_ready_notBrowse();
}
#endif
/* END: Added by xg.qi, 2007.5.17 */
else
{
psprintf(RegionValStr[REGION2], "NO DEVICE");
PrintOsdMsg(STR_OS_SPACE, REGION2, 1, 1);
return;
}
}
#ifdef SPHE8202_CARD_STORAGE
else if(media_status == STATUS_CARD)
{
Record_MediaInfo();
SLAVE_ENUMERATED = 0; //when do usb init ,it be setted to true.
if (is_usb_media_exists())
{
UsbTestReady();
}
else
{
psprintf(RegionValStr[REGION2], "NO DEVICE");
PrintOsdMsg(STR_OS_SPACE, REGION2, 1, 1);
return;
}
}
#endif
else
{
invalid_key();
return;
}
/* END: Modified by xg.qi, 2007/5/24 */
#endif//DIRECT_ACCESS_MEDIA
fs_activate_copy();
if (fs_is_activated_copy())
{
funcBtn = pFsJpeg->gifsFuncBtn;
/*wangmin add for jpeg copy flow*/
if((pFsJpeg->gifsFuncBtn == FS_FUNC_JPEG)&&(pFsJpeg->g_nJpegMode == JPEG_PREVIEW_MODE))
{
pFsJpeg->gbfsJpgBreak = 1;
pFsJpeg->gifsFuncBtn = FS_FUNC_COPYING;
}
else
{
pFsJpeg->gifsFuncBtn = FS_FUNC_COPYING;
AVD_SetMediaInterrupt();
}
}
return;
}
}
}
#endif
#endif
UINT8 need_run_cmd=1,display_again=0;//terry,0513
UINT32 invalid=ir_invalid_state[rx];
#ifdef IR_DBG
//printf("ir pre-parser in\n");
#endif
#ifdef IPTV_MODEL //temp added 08/03/10 for all key pass
invalid = 0;
#endif
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?