?? ui_input_pool.c
字號(hào):
/****************************************************************************************************
* Copyright (c) 2005 ZORAN Corporation, All Rights Reserved
* THIS IS UNPUBLISHED PROPRIETARY SOURCE CODE OF ZORAN CORPORATION
*
* File: ui_input_pool.c
*
* Description:
* =========
* Used for UI Key Pool
****************************************************************************************************/
#include "Config.h" // Global Configuration - do not remove!
#include "include\sysdefs.h" // Global definition - do not remove!
#ifdef DEBUG_UI_TRACE
#undef IFTRACE
#define IFTRACE if (gTraceUI)
#include "Debug\DbgMain.h"
#endif //DEBUG_UI_TRACE
#ifndef DEBUG_UI_TRACE
#undef dbg_printf(sMsg)
#define dbg_printf(sMsg)
#undef dbgm_printf(sMsg, mode)
#define dbgm_printf(sMsg, mode)
#endif
/****************************************************************************************************
* INCLUDE FILES
****************************************************************************************************/
// Include C Standard
// Include project specific
#include "Kernel\eventdef.h"
#include "Cpu\cpu_api.h"
#ifndef D_GINGER_I96
#include "Cpu\Timefunc.h"
#endif //D_GINGER_I96
#include "Playcore\Timing\Timing.h"
#include "CoreAPI\coreapi.h"
#include "CoreAPI\DeviceManager.h"
#include "Menu\menu_operation_def.h"
#include "UI_Manager\UI_Input\ui_input_pool.h"
/****************************************************************************************************
* DEFINITION: Private named CONSTants
****************************************************************************************************/
/****************************************************************************************************
* DEFINITION: Private macros
****************************************************************************************************/
#define SECRET_KEY_MAX_LONG 8
#define SECRET_WILDCARD 0xff
#define SEQUENCE_KEY_LENGTH 2
/****************************************************************************************************
* DEFINITION: Private typedefs
****************************************************************************************************/
enum
{
SECRET_KEY_VERSION,
SECRET_KEY_TVOUTRECOVER,
SECRET_KEY_TVFORMATRECOVER,
SECRET_KEY_SETREGIONCODE,
SECRET_KEY_GETCHECKSUM,
SECRET_KEY_FEVERSION,
#ifndef D_GINGER_I96
SECRET_KEY_BOARDVERSION,
#endif
#ifdef D_GINGER_I96
SECRET_KEY_CHIPID,
#endif // D_GINGER_I96
MAX_SECRET_KEY
};
typedef BOOL (* SECRET_FUNC)(void);
typedef struct SECRET_KEY_TAG
{
UINT16 wKeyCnt;
SECRET_FUNC secret_op;
UINT16 wUicc[];
}SECRET_KEY,*pSECRET_KEY;
typedef struct KEY_POOL_TAG
{
UINT32 last_time;
UINT16 last_uicc;
UINT8 ucHead;
}KEY_POOL,*pKEY_POOL;
typedef struct{
UINT16 wUicc[SEQUENCE_KEY_LENGTH];
UINT16 wUiop;//uiop
}SEQUENCE_KEY;
/****************************************************************************************************
* DEFINITION: Public (global) variables
****************************************************************************************************/
/****************************************************************************************************
* DEFINITION: Private (static) variables
****************************************************************************************************/
static KEY_POOL __RAMTYPE key_pool;
#ifdef D_GINGER_I96
static KEY_POOL_CODE __RAMTYPE kpKeepKeyPoolCode[KEYPOOL_DEPTH];
#endif //D_GINGER_I96
static BOOL SECRET_GetVersion(void);
#ifndef D_GINGER_I86
static BOOL SECRET_GetChipID(void);
#endif
static BOOL SECRET_TVoutRecover(void);
static BOOL SECRET_TVformat_Recover(void);
static BOOL SECRET_SetRegionCode(void);
static BOOL SECRET_GetChecksum(void);
static BOOL SECRET_GetFEVersion(void);//Mars 10/20/2005
#ifndef D_GINGER_I96
static BOOL SECRET_GetBoardVersion(void);//Mars 10/20/2005
#endif
STATIC CONST SECRET_KEY secret_key_version = {3, SECRET_GetVersion, {UICC_1,UICC_6,UICC_4}};
STATIC CONST SECRET_KEY secret_key_tvoutrecover = {3, SECRET_TVoutRecover, {UICC_EJECT,UICC_LEFT,UICC_MUTE}};
STATIC CONST SECRET_KEY secret_key_tvformatrecover = {3, SECRET_TVformat_Recover, {UICC_EJECT,UICC_LEFT,UICC_SUBTITLE}};
STATIC CONST SECRET_KEY secret_key_setregioncode = {5, SECRET_SetRegionCode, {UICC_9,UICC_9,UICC_9,UICC_9,SECRET_WILDCARD}};
STATIC CONST SECRET_KEY secret_key_getchecksum = {4, SECRET_GetChecksum, {UICC_2,UICC_8,UICC_1,UICC_2}};
STATIC CONST SECRET_KEY secret_key_FEversion = {3, SECRET_GetFEVersion, {UICC_1,UICC_6,UICC_5}};
#ifndef D_GINGER_I96
STATIC CONST SECRET_KEY secret_key_Boardversion = {3, SECRET_GetBoardVersion, {UICC_1,UICC_6,UICC_6}};
#endif
#ifdef D_GINGER_I96
STATIC CONST SECRET_KEY secret_key_chipid = {3, SECRET_GetChipID, {UICC_1,UICC_9,UICC_6}};
#endif // D_GINGER_I96
// TODO: add other SecretKey here and change the MAX_SECRET_KEY define
CONST pSECRET_KEY Secret_Key_Tab[MAX_SECRET_KEY] = {(CONST pSECRET_KEY)&secret_key_version,
(CONST pSECRET_KEY)&secret_key_tvoutrecover,
(CONST pSECRET_KEY)&secret_key_tvformatrecover,
(CONST pSECRET_KEY)&secret_key_setregioncode,
(CONST pSECRET_KEY)&secret_key_getchecksum,
(CONST pSECRET_KEY)&secret_key_FEversion,
#ifndef D_GINGER_I96
(CONST pSECRET_KEY)&secret_key_Boardversion,
#endif
#ifndef D_GINGER_I86
(CONST pSECRET_KEY)&secret_key_chipid,
#endif
// TODO:Add other defined Secret Key here
};
STATIC CONST SEQUENCE_KEY oSequenceKeyTable[] = {
{{UICC_A, UICC_0}, UIOP_REPEAT}
,{{UICC_A, UICC_1}, UIOP_SHUFFLE}
,{{UICC_A, UICC_2}, UIOP_PROGRAM}
,{{UICC_A, UICC_3}, UIOP_INTRO_PLAY}
,{{UICC_A, UICC_4}, UIOP_PBC}
// <<< Ram.wang_1125_05: modify I86_AV_RECEIVER FUNCTION LIKE AS THOMSON
#ifdef D_I86_AV_RECEIVER
,{{UICC_A, UICC_5}, UIOP_SOURCE}
#else
,{{UICC_A, UICC_5}, UIOP_NONE}
#endif
// >>> Ram.wang_1125_05
#ifdef D_MULTI_CDDA_SHUFFLE_PLAY
,{{UICC_A, UICC_6}, UIOP_MULTI_CDDA_SHUFFLE}
#else
,{{UICC_A, UICC_6}, UIOP_NONE}
#endif
,{{UICC_A, UICC_7}, UIOP_NONE}
,{{UICC_A, UICC_8}, UIOP_NONE}
,{{UICC_A, UICC_9}, UIOP_NONE}
,{{UICC_C, UICC_0}, UIOP_TV_SYS}
,{{UICC_C, UICC_1}, UIOP_VIDEO_OUTMODE}
#ifdef EZVIEW_ENABLED
,{{UICC_C, UICC_2}, UIOP_EZVIEW}
#else
,{{UICC_C, UICC_2}, UIOP_NONE}
#endif//#ifdef EZVIEW_ENABLED
,{{UICC_C, UICC_3}, UIOP_MAESTROLINK}
,{{UICC_C, UICC_4}, UIOP_JPEG_ROTATION}
,{{UICC_C, UICC_5}, UIOP_MPP}
,{{UICC_C, UICC_6}, UIOP_DD_EX}
,{{UICC_C, UICC_7}, UIOP_MIC_ON_OFF}
,{{UICC_C, UICC_8}, UIOP_VOLUME_UP}
,{{UICC_C, UICC_9}, UIOP_VOLUME_DOWN}
,{{UICC_D, UICC_0}, UIOP_10P}
#ifdef D_LCD_FLIP
,{{UICC_D, UICC_1}, UIOP_LCD_FLIP}
#else
,{{UICC_D, UICC_1}, UIOP_NONE}
#endif
#ifdef D_LCD_DISPLAY_MODE
,{{UICC_D, UICC_2}, UIOP_LCD_DISPLAY_MODE}
#else
,{{UICC_D, UICC_2}, UIOP_NONE}
#endif
,{{UICC_D, UICC_3}, UIOP_NONE}
,{{UICC_D, UICC_4}, UIOP_NONE}
,{{UICC_D, UICC_5}, UIOP_NONE}
,{{UICC_D, UICC_6}, UIOP_NONE}
,{{UICC_D, UICC_7}, UIOP_NONE}
,{{UICC_D, UICC_8}, UIOP_NONE}
,{{UICC_D, UICC_9}, UIOP_NONE}
,{{UICC_E, UICC_0}, UIOP_PLAY_PAUSE}
,{{UICC_E, UICC_1}, UIOP_PAGE_UP}
,{{UICC_E, UICC_2}, UIOP_PAGE_DOWN}
,{{UICC_E, UICC_3}, UIOP_NEXT_INDEX}
,{{UICC_E, UICC_4}, UIOP_PREV_INDEX}
,{{UICC_E, UICC_5}, UIOP_NEXT_CHAPTER}
,{{UICC_E, UICC_6}, UIOP_PREV_CHAPTER}
,{{UICC_E, UICC_7}, UIOP_NONE}
,{{UICC_E, UICC_8}, UIOP_NONE}
,{{UICC_E, UICC_9}, UIOP_NONE}
,{{UICC_F, UICC_0}, UIOP_NONE}
,{{UICC_F, UICC_1}, UIOP_NONE}
,{{UICC_F, UICC_2}, UIOP_NONE}
,{{UICC_F, UICC_3}, UIOP_NONE}
,{{UICC_F, UICC_4}, UIOP_NONE}
,{{UICC_F, UICC_5}, UIOP_NONE}
#ifdef FTA_SUPPORT
,{{UICC_F, UICC_6}, UIOP_FTA_TAB_EXIT}
#else
,{{UICC_F, UICC_6}, UIOP_NONE}
#endif
#ifdef FTA_SUPPORT
,{{UICC_F, UICC_7}, UIOP_FTA_TAB_ADD}
#else
,{{UICC_F, UICC_7}, UIOP_NONE}
#endif
#ifdef FTA_SUPPORT
,{{UICC_F, UICC_8}, UIOP_FTA_TAB_DELETE}
#else
,{{UICC_F, UICC_8}, UIOP_NONE}
#endif
,{{UICC_F, UICC_9}, UIOP_NONE}
#if 0
#ifdef FTA_SATELLITE
,{{UICC_F, UICC_6}, UIOP_FTA_TRANSPORT_TABLE}
#else // FTA_SATELLITE
,{{UICC_F, UICC_6}, UIOP_NONE}
#endif // FTA_SATELLITE
#ifdef FTA_SUPPORT
,{{UICC_F, UICC_7}, UIOP_FTA_CHANNEL_TABLE}
#else // FTA_SUPPORT
,{{UICC_F, UICC_7}, UIOP_NONE}
#endif // FTA_SUPPORT
#if defined( FTA_SUPPORT ) && defined(FTA_SATELLITE)
,{{UICC_F, UICC_8}, UIOP_CHNL_SCANNING}
#else // defined( FTA_SUPPORT ) && defined(FTA_SATELLITE)
,{{UICC_F, UICC_8}, UIOP_NONE}
#endif // defined( FTA_SUPPORT ) && defined(FTA_SATELLITE)
#ifdef FTA_SUPPORT
,{{UICC_F, UICC_9}, UIOP_FTA_SELECTION}
#else
,{{UICC_F, UICC_9}, UIOP_NONE}
#endif//#ifdef FTA_SUPPORT
#endif
,{{UICC_G, UICC_0}, UIOP_BOOKMARK}
,{{UICC_G, UICC_1}, UIOP_DEVICE_SWITCH}
#ifdef D_GUI_COMPONENT_BRIGHTNESS_EDGE_CONTROLLER
,{{UICC_G, UICC_2}, UIOP_BRIGHTNESS_EDGE_CONTROL}
#else
,{{UICC_G, UICC_2}, UIOP_NONE}
#endif//#ifdef D_GUI_COMPONENT_BRIGHTNESS_EDGE_CONTROLLER
,{{UICC_G, UICC_3}, UIOP_DIGEST}
,{{UICC_G, UICC_4}, UIOP_EQUALIZER}
,{{UICC_G, UICC_5}, UIOP_SPECTRUM}
,{{UICC_G, UICC_6}, UIOP_PROLOGIC}
,{{UICC_G, UICC_7}, UIOP_BASS_MGR}
#ifdef D_ENABLE_MUSIC_MODE_SUPPORT
,{{UICC_G, UICC_8}, UIOP_MUSIC_MODE}
#else
,{{UICC_G, UICC_8}, UIOP_NONE}
#endif// D_ENABLE_MUSIC_MODE_SUPPORT
,{{UICC_G, UICC_9}, UIOP_VOLUME}
};
/****************************************************************************************************
* DECLARATION: Private (static) functions
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -