?? ir_parser.c
字號:
/*****************************************************************************
** FILE
** ir_parse.c
**
** DESCRIPTION
** process IR keys and send to ir_cmd_xxx for actual process
**
** creater: Terry
** 2005/09/12 yltseng, Add new structure for font
**
**
****************************************************************************/
#include "config.h"
#include "regmap.h"
#include "global.h"
#ifdef PMP_UI //////////////////////yangli 2005/5/20
#include "fsNAV.h"
#endif
#include "jpeg_parser.h"
#include "fsNav_util.h"
#include "cfont.h"
#include "func.h"
#include "sio.h"
#include "ircmd.h"
#include "ircode.h"
#include "user_init.h"
#include "iop.h"
#include "atapi_if.h"
#include "macro.h"
#include "osd.h"
#include "bitop.h"
#include "timer.h"
#include "kernel.h"
#include "memcfg.h"
#ifdef SUPPORT_MIDI
#include "fsmidi.h" //ouyang 2004.08.13 take apart the function of "up" key
#ifdef SUPPORT_MIDI_MENU_SEL //xlluo 2004.11.23
#include "fsmidiUI.h"
#endif
#endif
#ifdef AD_TCL//2004-3-22 13:11 lijd
#include "user_if.h"
#endif
#ifdef NEWSTYLE_WINDOW
#include "vpp.h"
#include "osd_arc.h"
#endif
#if defined(EASTWIN)||defined(TOP_DOOR_LOADER)
#include "gpio.h"//tulijuan040908
#include "cd.h"
#endif
#ifdef TAS3001_AMP
#include "ti3001.h"
#endif
#ifdef DIRECT_ACCESS_MEDIA
#include "ircmd_switch_media.h"
#endif //#ifdef DIRECT_ACCESS_MEDIA
#ifdef TAS5026_AMP
#include "ti5026.h"
#endif
#ifdef SUPPORT_DIVX_HOME_THEATER
#include "DRM_UI.h"
#endif
#ifdef SUPPORT_DPF_IRCMD//zhuangzhiling
#include "..\dpf\UI\dpf_ircmd.h"
#endif
//#define ssc_watch_ir_code 1
#ifndef DVDRELEASE
#define IR_DBG //terry,2004/2/19 05:04PM,pls don't mark it.
#define MONE_DSP24_SHOW_CODEC_NAME_BY_ANGLE_KEY // 2004/12/21 yltseng
#ifndef JPG_OLD_PARSER_FLOW//jack 061229
#define MONE_SHOW_JPEG_RESOLUTION_BY_ANGLE_KEY // 2006/08/1 Joshua
#endif
#endif
#ifdef JPG_OLD_PARSER_FLOW
#ifdef JPG_EFFECT
#include "jpegeffect.h"
#endif
#else
#include "pic_effect.h"
#endif
#ifdef SUPPORT_REP_READ
#include "read.h"
#endif
#ifdef SUPPORT_DISPLAY_MENU
#include "setup_def.h"
#endif
#ifdef QSI_SHOW_ERR_RATE
#include "uart.h"
#endif
#ifdef SUPPORT_RECEIVER //chenzhao20050620
#include "amp_gui.h"
#endif
#ifdef SUPPORT_VFD_MENU
BYTE call_ir_func_vfd_menu(BYTE key);
#endif
#if defined( SUPPORT_MP3_ENCODER)
#include "audcodec.h"
extern void fs_mp3_encoder_main(void);
extern void fs_mp3_encoder_restart(void);
extern void change_encode_speed(void);
extern void do_close_file(void);
extern UINT32 recNew;
extern void stop_current_ripping(void);
extern int is_cdg_disc(int show __UNUSED); //qinhua ,add for warning,2006-3-1 02:14下午
#endif
//Simon 2006.6.30
#if defined(CD_RIPPING_NO_GUI)||defined(SUPPORT_VCD_MIC_ENCODER)
extern BYTE new_parental_gui;
#include "fs_new_app.h"
#include "fs_new.h"
#endif
#ifdef CD_RIPPING_USE_GUI
#include "cd_ripping.h"
#ifdef DIRECT_ACCESS_MEDIA//added by wangyong for compile warning 2007-1-16 02:10下午
extern UINT32 is_usb_media_exists( void );
extern UINT32 UsbTestReady(void);
#endif
#endif
#ifdef USE_IR_FILTER
#include "ir_filter.h"
#endif
#ifdef SUPPORT_iPOD_DOCKING
#include "ipod.h"
#include "ipod_gui.h"
#include "io_uart0.h"
#endif
#if defined(SUPPORT_FILE_COPYING)||defined(SUPPORT_FILE_DELETING)//wangmin add for jpeg copy demand 060906
#include "fsNAV.h"
#endif
#ifdef NEW_PARENTAL_GUI//zhaoyanhua add 2004-2-9 13:02
extern BYTE new_parental_gui;
#elif defined(MODIFY_PARENTAL_GUI)
extern BYTE parental_gui_flag;
#endif//NEW_PARENTAL_GUI
#if defined(NEW_PARENTAL_GUI)||defined(MODIFY_PARENTAL_GUI)
extern void ExitParentalGUI(void);
#endif
#define CLS_ERR_KEY
#ifdef PRE_NEXT_FLAG
UINT8 PRE_FLAG;
UINT8 NEXT_FLAG;
#endif //axel, for invalid IRC_NEXT in bad discs 2004/7/12
//extern void osd_restore();
extern UINT32 save_srn_start_t;
extern int is_dvd_prohibit_key(void);
extern int is_menu(void); // in cderr.c
extern void init_ir_num(void);
extern void osdshow(UINT8 r,char *buf);
extern void DispPolling(BYTE bReset);
#ifdef TP6317_PANNEL //yaowh add 04-10-25
BYTE TP6317_Power = 0 ;
#endif
#ifdef NEW_UART_COMMAND //lijinhai for fuss new request
extern BYTE nCurrentVolMode;
#endif
#ifdef NEWSTYLE_WINDOW
extern void exit_browse_func(void);
#endif
#ifdef JPG_EFFECT
extern void FSGUI_Menu(void);
#endif
#ifdef SUPPORT_TUNER
extern void tuner_key(BYTE key);
#endif
#ifdef DOUBLE_TITLE //susu add 2003-8-27 13:55
extern void exit_double_title(void);
#endif
#ifdef ROTARY_VOLUME
extern void RotaryStateChk(void);
#endif
extern BYTE setup_IsSettingPassword(void);
#ifdef SUPPORT_8202_DVB//Jack clear warning msg 05/09/29
#if defined(SUPPORT_DVB_GUI_NEW)&&defined(DVB_IR_3D_ON)
#include "..\dvb_h\dvb_func.h"
#endif
#endif
#ifdef HELP_BMP_GUI
#define HELP_PAGE_COUNT 4
#else
#define HELP_PAGE_COUNT 3
#endif
#ifdef OP_PLAYMODE
extern int u;
extern int r;//libing for display&OP_MENU
void exit_op_menu(void);
#endif
#ifdef MODE_SWITCH_DELAY
extern UINT32 read_iso_file_state;
#endif
#ifdef MUSTEK_PORTABLE_DVD
extern void DispPolling(BYTE bReset);
#endif
#ifdef ALCO_DVD_UI
extern void DispPolling(BYTE bReset);
#ifdef DVD_SETUP_REENG
extern void setup_ExitPage(void);
#endif
#endif
#ifdef PAUSE_PREV_DISPLAY_MACROVISION_VERSION
extern BYTE MACVersion_count;
#endif
#ifdef SUPPORT_FILE_SYSTEM_MODE
extern UINT16 IsOtherStatePlayMode(void);
#endif
void ircmd_null(){}
#ifdef QSI_PLATFORM //qsi: added by johnson 20040812
extern void spi_cmd_switch_media_to_card(void);
extern void spi_cmd_switch_media_to_dvd(void);
void ircmd_card_cd_select(void)
{
#ifdef SUPPORT_CARD_STORAGE
if( source_type_now == source_disc)
{
spi_cmd_switch_media_to_card();
}
else
{
spi_cmd_switch_media_to_dvd();
}
#endif
}
#endif
//nono 5-5-9 12:48 move it to irc_function_name_tbl.c
#include "irc_function_name_tbl.c"
//nono 5-5-9 12:48 move it to irc_function_name_tbl_spi_qsi.c
#include "irc_function_name_tbl_spi_qsi.c"
//Marked by maoyong 2004-9-24 10:50, now just use a function to set proc func pointer
#ifdef SUPPORT_NESGAME
BYTE Game_GetBreakIr(BYTE i)
{
switch(i)
{
case 0:return IR_EJECT;
case 1:return IR_POWER;
case 2:return IR_STOP;
case 3:return IR_RETURN;
case 4:return IR_POWER2;
case 5:return IR_RETURN2;
case 6:return IR_VOLUME_DOWN;
case 7:return IR_VOLUME_UP;
default: return 0xff;//terry,2004/2/2 04:35PM
}
}
#ifdef SUPPORT_IR_GAME
BYTE Game_GetControlIr(BYTE i)
{
switch(i)
{
case 0:return IR_RIGHT;
case 1:return IR_LEFT;
case 2:return IR_DOWN;
case 3:return IR_UP;
case 4:return IR_START; //terry,mark it,2004/2/2 04:35PM
case 5:return IR_SELECT;
case 6:return IR_A_KEY;
case 7:return IR_B_KEY;
case 8:return IR_RIGHT_UP;
case 9:return IR_LEFT_UP;
case 10:return IR_RIGHT_DOWN;
case 11:return IR_LEFT_DOWN;
case 12:return IR_RIGHT2;
case 13:return IR_LEFT2;
case 14:return IR_DOWN2;
case 15:return IR_UP2;
case 16:return IR_START2; //terry,mark it,2004/2/2 04:35PM
case 17:return IR_SELECT2;
case 18:return IR_A_KEY2;
case 19:return IR_B_KEY2;
default: return 0xff;//terry,2004/2/2 04:35PM
}
}
#endif
#endif
//nono 5-5-9 12:37 move to ir_inv_tbl_include.c
#include "ir_inv_tbl_include.c"
int user_input_pwd=0;
void cancel_rep(void)
{
if((rep_mode != REPEAT_IDLE)||(rep_ab_mode != REPEAT_AB_IDLE))
{
OSD1000ISP_STATUS(OSDISP_REP_IDLE, OSDIR_REPEAT);
#ifdef IR_SWITCH_DVD_USB_CARD_AVIN_DVB
if(usb_card_state != SWITCH_TO_USB_BUT_HAS_NO_USB)
#endif
//2005.3.23, joshua, this string is too long for osd region2 on 16m platform
#ifdef OP_PLAYMODE//libing 2005-5-26 20:45
PrintOsdMsg(STR_OS_REP_CNL,REGION2,1,0);
#endif
#ifndef SDRAM_16Mb_Mode
PrintOsdMsg(STR_OS_REP_CNL,REGION2,1,0);
#endif
rep_mode = REPEAT_IDLE;
rep_ab_mode= REPEAT_AB_IDLE;
}
}
#ifdef NEW_STYLE_SETUP
extern UINT8 logo_type;//NEW STYLE SETUP FOR GBM
#endif//NEW_STYLE_SETUP
#if defined( SUPPORT_FONT_UTIL ) && defined( SUPPORT_MULTI_FONT_SWITCH ) // 2005/03/10 yltseng
#include "fsNav.h"
#include "fsGUI.h"
#include "LanguageUtil.h"
static UINT8 s_uiNeedReadFileInformation = FALSE;
void ReadFileInformation()
{
if( !s_uiNeedReadFileInformation )
return;
#define FSJPEG_BUF_OFFSET ( ( sizeof( FSJPEGDATA ) >> 2 ) << 2 )
FSJPEGDATA* pTmp = (FSJPEGDATA*) ( (UINT32)pFsJpeg + FSJPEG_BUF_OFFSET );
memcpy( pTmp, pFsJpeg, sizeof( FSJPEGDATA ) );
int iRes = 0;
ReadFile( &iRes );
memcpy( pFsJpeg, pTmp, sizeof( FSJPEGDATA ) );
s_uiNeedReadFileInformation = FALSE;
}
static inline ChangeFontByAngleKey( BYTE rx )
{
#ifndef USE_SETUP_SELECT_FONT//shenyj add for alco 11/28
if( rx == IRC_ANGLE )
{
if( cd_type_loaded == CDROM )
{
langNextFont();
#ifdef PMP_UI ////////////////////////yangli mod for angle key change font,sys will reread dir list,sys can't find subtitle file.2005/11/18
s_uiNeedReadFileInformation = FALSE;
#else
s_uiNeedReadFileInformation = TRUE;
#endif
if( !IsOtherStatePlayMode() )
{
#ifndef PMP_UI
ReadFileInformation();
#endif
extern BYTE JPEG_Preview_drawed;
if( ( IsOtherStatePlayMode() && GetCurrentFileType() == CDROM_MP4 ) ||
( ( pFsJpeg->gifsFuncBtn == FS_FUNC_JPEG ) &&
( ( pFsJpeg->gifsState == FS_STATE_JPEG )
#if defined( FS_BMP_GUI ) || defined( NEW_MP3_GUI ) || defined(INDIGO_STYLE_FSGUI)
|| ( pFsJpeg->g_nJpegMode == JPEG_THUMBNAIL_MODE )
#endif
) ) )
{
// do nothing
}
else
{
if( Is_JPEG_STATE() && JPEG_Preview_drawed == JPEG_PREVIEW_IN_DIR_AREA )
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -