📄 irkey.c
字号:
/*************** MTK CONFIDENTIAL & COPYRIGHTED ****************/
/*************** ****************/
/*************** $Modtime:: 04/04/19 3:01p $ ****************/
/*************** $Revision:: 1 $ ****************/
/*************** ****************/
/*************** Description : remote controller key ****************/
/*************** mapping table ****************/
/*************** ****************/
/*************** Company : MediaTek Inc. ****************/
/*************** Programmer : ****************/
/**********************************************************************/
/* map IR key code to internal key code */
#if (defined(IR_USE_RC6) || defined(IR_USE_RC5))
#ifdef IR_USE_RC6
#define IR_CUSTOM_CODE_RC6 0x04
code const BYTE _pbIRKeyTblRC6[256] =
{
/* 0x00 */ IR_NUM0,
/* 0x01 */ IR_NUM1,
/* 0x02 */ IR_NUM2,
/* 0x03 */ IR_NUM3,
/* 0x04 */ IR_NUM4,
/* 0x05 */ IR_NUM5,
/* 0x06 */ IR_NUM6,
/* 0x07 */ IR_NUM7,
/* 0x08 */ IR_NUM8,
/* 0x09 */ IR_NUM9,
/* 0x0a */ IR_NONE,
/* 0x0b */ IR_NONE,
/* 0x0c */ IR_POWER,
/* 0x0d */ IR_MUTE,
/* 0x0e */ IR_NONE,
/* 0x0f */ IR_DISPLAY,
/* 0x10 */ IR_NONE,
/* 0x11 */ IR_NONE,
/* 0x12 */ IR_NONE,
/* 0x13 */ IR_NONE,
/* 0x14 */ IR_NONE,
/* 0x15 */ IR_NONE,
/* 0x16 */ IR_NONE,
/* 0x17 */ IR_NONE,
/* 0x18 */ IR_NONE,
/* 0x19 */ IR_NONE,
/* 0x1a */ IR_NONE,
/* 0x1b */ IR_NONE,
/* 0x1c */ IR_NONE,
/* 0x1d */ IR_REPEAT,
/* 0x1e */ IR_NONE,
/* 0x1f */ IR_NONE,
/* 0x20 */ IR_NEXT,
/* 0x21 */ IR_PREV,
/* 0x22 */ IR_NONE,
/* 0x23 */ IR_NONE,
/* 0x24 */ IR_NONE,
/* 0x25 */ IR_NONE,
/* 0x26 */ IR_NONE,
/* 0x27 */ IR_NONE,
/* 0x28 */ IR_NONE,
/* 0x29 */ IR_NONE,
/* 0x2a */ IR_NONE,
/* 0x2b */ IR_NONE,
/* 0x2c */ IR_PLAY,
/* 0x2d */ IR_NONE,
/* 0x2e */ IR_NONE,
/* 0x2f */ IR_NONE,
/* 0x30 */ IR_PAUSE,
/* 0x31 */ IR_STOP,
/* 0x32 */ IR_NONE,
/* 0x33 */ IR_NONE,
/* 0x34 */ IR_NONE,
/* 0x35 */ IR_NONE,
/* 0x36 */ IR_NONE,
/* 0x37 */ IR_NONE,
/* 0x38 */ IR_NONE,
/* 0x39 */ IR_NONE,
/* 0x3a */ IR_NONE,
/* 0x3b */ IR_SET_A,
/* 0x3c */ IR_NONE,
/* 0x3d */ IR_NONE,
/* 0x3e */ IR_NONE,
/* 0x3f */ IR_NONE,
/* 0x40 */ IR_NONE,
/* 0x41 */ IR_NONE,
/* 0x42 */ IR_NONE,
/* 0x43 */ IR_NONE,
/* 0x44 */ IR_NONE,
/* 0x45 */ IR_NONE,
/* 0x46 */ IR_NONE,
/* 0x47 */ IR_NONE,
/* 0x48 */ IR_NONE,
/* 0x49 */ IR_NONE,
/* 0x4a */ IR_NONE,
/* 0x4b */ IR_SUB_TITLE,
/* 0x4c */ IR_NONE,
/* 0x4d */ IR_NONE,
/* 0x4e */ IR_AUDIO,
/* 0x4f */ IR_NONE,
/* 0x50 */ IR_NONE,
/* 0x51 */ IR_NONE,
/* 0x52 */ IR_NONE,
/* 0x53 */ IR_NONE,
/* 0x54 */ IR_ROOT_MENU,
/* 0x55 */ IR_NONE,
/* 0x56 */ IR_NONE,
/* 0x57 */ IR_NONE,
/* 0x58 */ IR_UP,
/* 0x59 */ IR_DOWN,
/* 0x5a */ IR_LEFT,
/* 0x5b */ IR_RIGHT,
/* 0x5c */ IR_PLAY_ENTER,
/* 0x5d */ IR_NONE,
/* 0x5e */ IR_NONE,
/* 0x5f */ IR_NONE,
/* 0x60 */ IR_NONE,
/* 0x61 */ IR_NONE,
/* 0x62 */ IR_NONE,
/* 0x63 */ IR_NONE,
/* 0x64 */ IR_NONE,
/* 0x65 */ IR_NONE,
/* 0x66 */ IR_NONE,
/* 0x67 */ IR_NONE,
/* 0x68 */ IR_NONE,
/* 0x69 */ IR_NONE,
/* 0x6a */ IR_NONE,
/* 0x6b */ IR_NONE,
/* 0x6c */ IR_NONE,
/* 0x6d */ IR_NONE,
/* 0x6e */ IR_NONE,
/* 0x6f */ IR_NONE,
/* 0x70 */ IR_NONE,
/* 0x71 */ IR_NONE,
/* 0x72 */ IR_NONE,
/* 0x73 */ IR_NONE,
/* 0x74 */ IR_NONE,
/* 0x75 */ IR_NONE,
/* 0x76 */ IR_NONE,
/* 0x77 */ IR_NONE,
/* 0x78 */ IR_NONE,
/* 0x79 */ IR_NONE,
/* 0x7a */ IR_NONE,
/* 0x7b */ IR_NONE,
/* 0x7c */ IR_NONE,
/* 0x7d */ IR_NONE,
/* 0x7e */ IR_NONE,
/* 0x7f */ IR_NONE,
/* 0x80 */ IR_NONE,
/* 0x81 */ IR_NONE,
/* 0x82 */ IR_SETUP,
/* 0x83 */ IR_TITLE_PBC,
/* 0x84 */ IR_NONE,
/* 0x85 */ IR_ANGLE,
/* 0x86 */ IR_NONE,
/* 0x87 */ IR_NONE,
/* 0x88 */ IR_NONE,
/* 0x89 */ IR_NONE,
/* 0x8a */ IR_NONE,
/* 0x8b */ IR_NONE,
/* 0x8c */ IR_NONE,
/* 0x8d */ IR_NONE,
/* 0x8e */ IR_NONE,
/* 0x8f */ IR_NONE,
/* 0x90 */ IR_NONE,
/* 0x91 */ IR_NONE,
/* 0x92 */ IR_NONE,
/* 0x93 */ IR_NONE,
/* 0x94 */ IR_NONE,
/* 0x95 */ IR_NONE,
/* 0x96 */ IR_NONE,
/* 0x97 */ IR_NONE,
/* 0x98 */ IR_NONE,
/* 0x99 */ IR_NONE,
/* 0x9a */ IR_NONE,
/* 0x9b */ IR_NONE,
/* 0x9c */ IR_NONE,
/* 0x9d */ IR_NONE,
/* 0x9e */ IR_NONE,
/* 0x9f */ IR_NONE,
/* 0xa0 */ IR_NONE,
/* 0xa1 */ IR_NONE,
/* 0xa2 */ IR_NONE,
/* 0xa3 */ IR_NONE,
/* 0xa4 */ IR_NONE,
/* 0xa5 */ IR_NONE,
/* 0xa6 */ IR_NONE,
/* 0xa7 */ IR_NONE,
/* 0xa8 */ IR_NONE,
/* 0xa9 */ IR_NONE,
/* 0xaa */ IR_NONE,
/* 0xab */ IR_NONE,
/* 0xac */ IR_NONE,
/* 0xad */ IR_NONE,
/* 0xae */ IR_NONE,
/* 0xaf */ IR_NONE,
/* 0xb0 */ IR_NONE,
/* 0xb1 */ IR_NONE,
/* 0xb2 */ IR_NONE,
/* 0xb3 */ IR_NONE,
/* 0xb4 */ IR_NONE,
/* 0xb5 */ IR_NONE,
/* 0xb6 */ IR_NONE,
/* 0xb7 */ IR_NONE,
/* 0xb8 */ IR_NONE,
/* 0xb9 */ IR_NONE,
/* 0xba */ IR_NONE,
/* 0xbb */ IR_NONE,
/* 0xbc */ IR_NONE,
/* 0xbd */ IR_NONE,
/* 0xbe */ IR_NONE,
/* 0xbf */ IR_NONE,
/* 0xc0 */ IR_NONE,
/* 0xc1 */ IR_NONE,
/* 0xc2 */ IR_NONE,
/* 0xc3 */ IR_NONE,
/* 0xc4 */ IR_NONE,
/* 0xc5 */ IR_NONE,
/* 0xc6 */ IR_NONE,
/* 0xc7 */ IR_NONE,
/* 0xc8 */ IR_NONE,
/* 0xc9 */ IR_NONE,
/* 0xca */ IR_NONE,
/* 0xcb */ IR_NONE,
/* 0xcc */ IR_NONE,
/* 0xcd */ IR_NONE,
/* 0xce */ IR_NONE,
/* 0xcf */ IR_NONE,
/* 0xd0 */ IR_NONE,
/* 0xd1 */ IR_NONE,
/* 0xd2 */ IR_NONE,
/* 0xd3 */ IR_NONE,
/* 0xd4 */ IR_NONE,
/* 0xd5 */ IR_DIGEST,
/* 0xd6 */ IR_NONE,
/* 0xd7 */ IR_NONE,
/* 0xd8 */ IR_NONE,
/* 0xd9 */ IR_NONE,
/* 0xda */ IR_NONE,
/* 0xdb */ IR_NONE,
/* 0xdc */ IR_NONE,
/* 0xdd */ IR_NONE,
/* 0xde */ IR_NONE,
/* 0xdf */ IR_NONE,
/* 0xe0 */ IR_NONE,
/* 0xe1 */ IR_NONE,
/* 0xe2 */ IR_NONE,
/* 0xe3 */ IR_NONE,
/* 0xe4 */ IR_KARAOKE,
/* 0xe5 */ IR_NONE,
/* 0xe6 */ IR_NONE,
/* 0xe7 */ IR_VOCAL_ASSIST,
/* 0xe8 */ IR_NONE,
/* 0xe9 */ IR_NONE,
/* 0xea */ IR_NONE,
/* 0xeb */ IR_NONE,
/* 0xec */ IR_AUD_KEY_RESUME,
/* 0xed */ IR_NONE,
/* 0xee */ IR_NONE,
/* 0xef */ IR_NONE,
/* 0xf0 */ IR_NONE,
/* 0xf1 */ IR_NONE,
/* 0xf2 */ IR_NONE,
/* 0xf3 */ IR_NONE,
/* 0xf4 */ IR_NONE,
/* 0xf5 */ IR_NONE,
/* 0xf6 */ IR_NONE,
/* 0xf7 */ IR_ZOOM_IN,
/* 0xf8 */ IR_NONE,
/* 0xf9 */ IR_NONE,
/* 0xfa */ IR_NONE,
/* 0xfb */ IR_NONE,
/* 0xfc */ IR_NONE,
/* 0xfd */ IR_NONE,
/* 0xfe */ IR_NONE,
/* 0xff */ IR_NONE
};
#endif
#if (defined(IR_USE_RC5_UNDER_RC6) || defined(IR_USE_RC5))
#define IR_CUSTOM_CODE_RC5 0x02
code const BYTE _pbIRKeyTblRC5[64] =
{
/* 0x00 */ IR_NUM7,
/* 0x01 */ IR_CLEAR,
/* 0x02 */ IR_NUM3,
/* 0x03 */ IR_NUM2,
/* 0x04 */ IR_ADD10,
/* 0x05 */ IR_NUM6,
/* 0x06 */ IR_NUM5,
/* 0x07 */ IR_NUM0,
/* 0x08 */ IR_NUM9,
/* 0x09 */ IR_NUM8,
/* 0x0a */ IR_NUM4,
/* 0x0b */ IR_NONE,
/* 0x0c */ IR_EJECT,
/* 0x0d */ IR_POWER,
/* 0x0e */ IR_ROOT_MENU,
/* 0x0f */ IR_NONE,
/* 0x10 */ IR_LEFT,
/* 0x11 */ IR_RIGHT,
/* 0x12 */ IR_NUM1,
/* 0x13 */ IR_NONE,
/* 0x14 */ IR_NONE,
/* 0x15 */ IR_FF,
/* 0x16 */ IR_FR,
/* 0x17 */ IR_NONE,
/* 0x18 */ IR_NONE,
/* 0x19 */ IR_NONE,
/* 0x1a */ IR_NONE,
/* 0x1b */ IR_NONE,
/* 0x1c */ IR_NONE,
/* 0x1d */ IR_NONE,
/* 0x1e */ IR_NONE,
/* 0x1f */ IR_NONE,
/* 0x20 */ IR_DOWN,
/* 0x21 */ IR_UP,
/* 0x22 */ IR_PLAY_ENTER,
/* 0x23 */ IR_GOTO,
/* 0x24 */ IR_NONE,
/* 0x25 */ IR_NONE,
/* 0x26 */ IR_NONE,
/* 0x27 */ IR_NONE,
/* 0x28 */ IR_NONE,
/* 0x29 */ IR_ANGLE,
/* 0x2a */ IR_RETURN,
/* 0x2b */ IR_REPEAT,
/* 0x2c */ IR_PREV,
/* 0x2d */ IR_NEXT,
/* 0x2e */ IR_PLAY_PAUSE,
/* 0x2f */ IR_STOP,
/* 0x30 */ IR_SET_A,
/* 0x31 */ IR_NONE,
/* 0x32 */ IR_SUB_TITLE,
/* 0x33 */ IR_NONE,
/* 0x34 */ IR_PROGRAM,
/* 0x35 */ IR_NONE,
/* 0x36 */ IR_AUDIO,
/* 0x37 */ IR_DISPLAY,
/* 0x38 */ IR_ZOOM_IN,
/* 0x39 */ IR_NONE,
/* 0x3a */ IR_NONE,
/* 0x3b */ IR_NONE,
/* 0x3c */ IR_TITLE_PBC,
/* 0x3d */ IR_NONE,
/* 0x3e */ IR_NONE,
/* 0x3f */ IR_SETUP //IR_DISPLAY
};
#endif
#elif (MTK_REMOTE == 0)
#define IR_CUSTOM_CODE (_pbIRSysCode[0])
#define IR_CUSTOM_SUB_CODE (_pbIRSysCode[1])
code const BYTE _pbIRSysCode[2] = { 0x08, 0xf7 }; /* note bit reversed */
#define IR_KEY_CODE_MAX 0x60
#define IR_KEY_GAP_START 0x40
#define IR_KEY_GAP_SIZE 0x20
#define IR_KEY_TBL_SIZE (IR_KEY_CODE_MAX - IR_KEY_GAP_SIZE)
code const BYTE _pbIRKeyTbl[IR_KEY_TBL_SIZE] =
{
/* 0x00 */ IR_NUM2,
/* 0x01 */ IR_NUM1,
/* 0x02 */ IR_NUM3,
/* 0x03 */ IR_NUM4,
/* 0x04 */ IR_AUD_KEY_PLUS,
/* 0x05 */ IR_ADD10,
/* 0x06 */ IR_PAL_NTSC,
/* 0x07 */ IR_NONE,
/* 0x08 */ IR_SETUP,
/* 0x09 */ IR_EJECT,
/* 0x0a */ IR_NONE,
#ifdef USE_TEMP_DIGEST_KEY
/* 0x0b */ IR_DIGEST,
#else
/* 0x0b */ IR_CLEAR,
#endif
/* 0x0c */ IR_SF,
/* 0x0d */ IR_REPEAT,
/* 0x0e */ IR_SET_A,
/* 0x0f */ IR_VOLUME_DOWN,
/* 0x10 */ IR_STEPR,
/* 0x11 */ IR_NUM9,
/* 0x12 */ IR_NUM0,
#ifdef USE_TEMP_SR_KEY
/* 0x13 */ IR_SR,
#else
/* 0x13 */ IR_EQUALIZER,
#endif
/* 0x14 */ IR_NUM6,
/* 0x15 */ IR_NUM5,
/* 0x16 */ IR_NUM7,
/* 0x17 */ IR_NUM8,
/* 0x18 */ IR_PLAY_PAUSE,
/* 0x19 */ IR_STOP,
/* 0x1a */ IR_AUD_KEY_MINUS,
/* 0x1b */ IR_DISPLAY,
/* 0x1c */ IR_RETURN,
/* 0x1d */ IR_SUB_TITLE,
/* 0x1e */ IR_ROOT_MENU,
/* 0x1f */ IR_RANDOM,
/* 0x40 */ IR_ANGLE,
/* 0x41 */ IR_PROGRAM,
/* 0x42 */ IR_NONE,
/* 0x43 */ IR_NONE,
/* 0x44 */ IR_SURROUND,
/* 0x45 */ IR_RIGHT,
/* 0x46 */ IR_DOWN,
/* 0x47 */ IR_TITLE_MENU,
/* 0x48 */ IR_UP,
/* 0x49 */ IR_ZOOM_IN,
/* 0x4a */ IR_NONE,
/* 0x4b */ IR_FR,
/* 0x4c */ IR_NEXT,
/* 0x4d */ IR_VOCAL_ASSIST,
/* 0x4e */ IR_PLAY_ENTER,
/* 0x4f */ IR_PREV,
/* 0x50 */ IR_PLAY_ENTER,
/* 0x51 */ IR_FF,
/* 0x52 */ IR_AUDIO,
/* 0x53 */ IR_GOTO,
/* 0x54 */ IR_NONE,
/* 0x55 */ IR_MUTE,
/* 0x56 */ IR_STEPF,
/* 0x57 */ IR_MARK,
/* 0x58 */ IR_NONE,
/* 0x59 */ IR_NONE,
/* 0x5a */ IR_LEFT,
/* 0x5b */ IR_NONE,
/* 0x5c */ IR_VOLUME_UP,
/* 0x5d */ IR_NONE,
/* 0x5e */ IR_NONE,
/* 0x5f */ IR_NONE
};
#elif (MTK_REMOTE == 1)
#define IR_CUSTOM_CODE (_pbIRSysCode[0])
#define IR_CUSTOM_SUB_CODE (_pbIRSysCode[1])
code const BYTE _pbIRSysCode[2] = { 0x00, 0xff };
#define IR_KEY_CODE_MAX 0x60
#define IR_KEY_GAP_START 0x40
#define IR_KEY_GAP_SIZE 0x20
#define IR_KEY_TBL_SIZE (IR_KEY_CODE_MAX - IR_KEY_GAP_SIZE)
code const BYTE _pbIRKeyTbl[IR_KEY_TBL_SIZE] =
{
/* 0x00 */ IR_EJECT,
/* 0x01 */ IR_NUM3,
/* 0x02 */ IR_SET_A,
/* 0x03 */ IR_GOTO,
/* 0x04 */ IR_NONE,
/* 0x05 */ IR_NUM2,
/* 0x06 */ IR_PLAY_ENTER,
/* 0x07 */ IR_REPEAT,
/* 0x08 */ IR_NONE,
/* 0x09 */ IR_NUM1,
/* 0x0a */ IR_ROOT_MENU,
/* 0x0b */ IR_PAL_NTSC,
/* 0x0c */ IR_MUTE,
/* 0x0d */ IR_DISPLAY,
#ifdef USE_TEMP_CLEAR_KEY
/* 0x0e */ IR_CLEAR,
#else
/* 0x0e */ IR_RETURN,
#endif
/* 0x0f */ IR_TITLE_MENU,
/* 0x10 */ IR_NEXT,
/* 0x11 */ IR_NONE,
/* 0x12 */ IR_NONE,
/* 0x13 */ IR_NONE,
/* 0x14 */ IR_PREV,
/* 0x15 */ IR_NONE,
/* 0x16 */ IR_NONE,
/* 0x17 */ IR_NONE,
/* 0x18 */ IR_FF,
/* 0x19 */ IR_NONE,
/* 0x1a */ IR_NONE,
/* 0x1b */ IR_NONE,
/* 0x1c */ IR_FR,
/* 0x1d */ IR_NONE,
/* 0x1e */ IR_NONE,
/* 0x1f */ IR_NONE,
/* 0x40 */ IR_RIGHT,
/* 0x41 */ IR_NUM0,
/* 0x42 */ IR_NUM9,
/* 0x43 */ IR_NUM6,
/* 0x44 */ IR_UP,
/* 0x45 */ IR_ADD10,
/* 0x46 */ IR_NUM8,
/* 0x47 */ IR_NUM5,
/* 0x48 */ IR_DOWN,
/* 0x49 */ IR_NONE,
/* 0x4a */ IR_NUM7,
/* 0x4b */ IR_NUM4,
/* 0x4c */ IR_LEFT,
/* 0x4d */ IR_SETUP,
/* 0x4e */ IR_ANGLE,
/* 0x4f */ IR_SUB_TITLE,
/* 0x50 */ IR_VOLUME_UP,
/* 0x51 */ IR_VOLUME_DOWN,
#if (defined(PLAYER_KARAOKE) || defined(USE_EXTERNAL_KARAOKE))
/* 0x52 */ IR_AUD_KEY_PLUS,
#else
/* 0x52 */ IR_CLEAR,
#endif
/* 0x53 */ IR_NONE,
/* 0x54 */ IR_ZOOM_IN,
/* 0x55 */ IR_MARK,
#ifdef USE_TEMP_DIGEST_KEY
/* 0x56 */ IR_DIGEST,
#else
/* 0x56 */ IR_AUD_KEY_RESUME,
#endif
/* 0x57 */ IR_STOP,
/* 0x58 */ IR_PROGRAM,
#ifdef USE_TEMP_SR_KEY
/* 0x59 */ IR_SR, /* A-TIME */
#else
/* 0x59 */ IR_EQUALIZER, /* A-TIME */
#endif
#if (defined(PLAYER_KARAOKE) || defined(USE_EXTERNAL_KARAOKE))
/* 0x5a */ IR_AUD_KEY_MINUS,
#else
/* 0x5a */ IR_RANDOM,
#endif
/* 0x5b */ IR_PAUSE,
/* 0x5c */ IR_STEPF,
/* 0x5d */ IR_SF,
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -