📄 sfapi.c
字号:
SFApp_KeyHandler(KEY_DOWN_ARROW,KEY_EVENT_DOWN);
}
void SfKeyDownArrow_UpHandler(void)
{
SFApp_KeyHandler(KEY_DOWN_ARROW,KEY_EVENT_UP);
}
void SfKeyLeftArrow_DownHandler(void)
{
SFApp_KeyHandler(KEY_LEFT_ARROW,KEY_EVENT_DOWN);
}
void SfKeyLeftArrow_UpHandler(void)
{
SFApp_KeyHandler(KEY_LEFT_ARROW,KEY_EVENT_UP);
}
void SfKeyRightArrow_DownHandler(void)
{
SFApp_KeyHandler(KEY_RIGHT_ARROW,KEY_EVENT_DOWN);
}
void SfKeyRightArrow_UpHandler(void)
{
SFApp_KeyHandler(KEY_RIGHT_ARROW,KEY_EVENT_UP);
}
void SfKeyStar_DownHandler(void)
{
SFApp_KeyHandler(KEY_STAR,KEY_EVENT_DOWN);
}
void SfKeyStar_UpHandler(void)
{
SFApp_KeyHandler(KEY_STAR,KEY_EVENT_UP);
}
void SfKeyPound_DownHandler(void)
{
SFApp_KeyHandler(KEY_POUND,KEY_EVENT_DOWN);
}
void SfKeyPound_UpHandler(void)
{
SFApp_KeyHandler(KEY_POUND,KEY_EVENT_UP);
}
void SfKeyClear_DownHandler(void)
{
SFApp_KeyHandler(KEY_CLEAR,KEY_EVENT_DOWN);
}
void SfKeyClear_UpHandler(void)
{
SFApp_KeyHandler(KEY_CLEAR,KEY_EVENT_UP);
}
void SfKeyEnd_DownHandler(void)
{
SFApp_KeyHandler(KEY_END,KEY_EVENT_DOWN);
}
void SFAppRegistKeyHandler()
{
ClearInputEventHandler(MMI_DEVICE_KEY);
SetKeyHandler(SfKey0_DownHandler,KEY_0,KEY_EVENT_DOWN);
SetKeyHandler(SfKey0_UpHandler,KEY_0,KEY_EVENT_UP);
SetKeyHandler(SfKey1_DownHandler,KEY_1,KEY_EVENT_DOWN);
SetKeyHandler(SfKey1_UpHandler,KEY_1,KEY_EVENT_UP);
SetKeyHandler(SfKey2_DownHandler,KEY_2,KEY_EVENT_DOWN);
SetKeyHandler(SfKey2_UpHandler,KEY_2,KEY_EVENT_UP);
SetKeyHandler(SfKey3_DownHandler,KEY_3,KEY_EVENT_DOWN);
SetKeyHandler(SfKey3_UpHandler,KEY_3,KEY_EVENT_UP);
SetKeyHandler(SfKey4_DownHandler,KEY_4,KEY_EVENT_DOWN);
SetKeyHandler(SfKey4_UpHandler,KEY_4,KEY_EVENT_UP);
SetKeyHandler(SfKey5_DownHandler,KEY_5,KEY_EVENT_DOWN);
SetKeyHandler(SfKey5_UpHandler,KEY_5,KEY_EVENT_UP);
SetKeyHandler(SfKey6_DownHandler,KEY_6,KEY_EVENT_DOWN);
SetKeyHandler(SfKey6_UpHandler,KEY_6,KEY_EVENT_UP);
SetKeyHandler(SfKey7_DownHandler,KEY_7,KEY_EVENT_DOWN);
SetKeyHandler(SfKey7_UpHandler,KEY_7,KEY_EVENT_UP);
SetKeyHandler(SfKey8_DownHandler,KEY_8,KEY_EVENT_DOWN);
SetKeyHandler(SfKey8_UpHandler,KEY_8,KEY_EVENT_UP);
SetKeyHandler(SfKey9_DownHandler,KEY_9,KEY_EVENT_DOWN);
SetKeyHandler(SfKey9_UpHandler,KEY_9,KEY_EVENT_UP);
SetKeyHandler(SfKeyLSK_DownHandler,KEY_LSK,KEY_EVENT_DOWN);
SetKeyHandler(SfKeyLSK_UpHandler,KEY_LSK,KEY_EVENT_UP);
SetKeyHandler(SfKeyRSK_DownHandler,KEY_RSK,KEY_EVENT_DOWN);
SetKeyHandler(SfKeyRSK_UpHandler,KEY_RSK,KEY_EVENT_UP);
SetKeyHandler(SfKeyEnter_DownHandler,KEY_ENTER,KEY_EVENT_DOWN);
SetKeyHandler(SfKeyEnter_UpHandler,KEY_ENTER,KEY_EVENT_UP);
SetKeyHandler(SfKeyUpArrow_DownHandler,KEY_UP_ARROW,KEY_EVENT_DOWN);
SetKeyHandler(SfKeyUpArrow_UpHandler,KEY_UP_ARROW,KEY_EVENT_UP);
SetKeyHandler(SfKeyDownArrow_DownHandler,KEY_DOWN_ARROW,KEY_EVENT_DOWN);
SetKeyHandler(SfKeyDownArrow_UpHandler,KEY_DOWN_ARROW,KEY_EVENT_UP);
SetKeyHandler(SfKeyLeftArrow_DownHandler,KEY_LEFT_ARROW,KEY_EVENT_DOWN);
SetKeyHandler(SfKeyLeftArrow_UpHandler,KEY_LEFT_ARROW,KEY_EVENT_UP);
SetKeyHandler(SfKeyRightArrow_DownHandler,KEY_RIGHT_ARROW,KEY_EVENT_DOWN);
SetKeyHandler(SfKeyRightArrow_UpHandler,KEY_RIGHT_ARROW,KEY_EVENT_UP);
SetKeyHandler(SfKeyStar_DownHandler,KEY_STAR,KEY_EVENT_DOWN);
SetKeyHandler(SfKeyStar_UpHandler,KEY_STAR,KEY_EVENT_UP);
SetKeyHandler(SfKeyPound_DownHandler,KEY_POUND,KEY_EVENT_DOWN);
SetKeyHandler(SfKeyPound_UpHandler,KEY_POUND,KEY_EVENT_UP);
SetKeyHandler(SfKeyClear_DownHandler,KEY_CLEAR,KEY_EVENT_DOWN);
SetKeyHandler(SfKeyClear_UpHandler,KEY_CLEAR,KEY_EVENT_UP);
SetKeyHandler(SfKeyEnd_DownHandler,KEY_END,KEY_EVENT_DOWN);
}
SFBool SFKey_IsPressed(SFInt aKeyCode)
{
if(g_kernal.iKeyState&(1<<aKeyCode))
{
return SFTrue;
}
else
{
return SFFalse;
}
}
static SFInt SFApp_MapKeyCode(S32 aKey)
{
//kal_prompt_trace(MOD_MMI,"SFApp_MapKeyCode get key ===========%d",aKey);
switch(aKey){
case KEY_0:
return SFKEY_NUM0;
case KEY_1:
return SFKEY_NUM1;
case KEY_2:
return SFKEY_NUM2;
case KEY_3:
return SFKEY_NUM3;
case KEY_4:
return SFKEY_NUM4;
case KEY_5:
return SFKEY_NUM5;
case KEY_6:
return SFKEY_NUM6;
case KEY_7:
return SFKEY_NUM7;
case KEY_8:
return SFKEY_NUM8;
case KEY_9:
return SFKEY_NUM9;
case KEY_LSK:
return SFKEY_SL;
case KEY_RSK:
return SFKEY_SR;
case KEY_ENTER:
return SFKEY_SM;
case KEY_UP_ARROW:
return SFKEY_UP;
case KEY_DOWN_ARROW:
return SFKEY_DOWN;
case KEY_LEFT_ARROW:
return SFKEY_LEFT;
case KEY_RIGHT_ARROW:
return SFKEY_RIGHT;
case KEY_STAR:
return SFKEY_STAR;
case KEY_POUND:
return SFKEY_POUND;
case KEY_CLEAR:
return SFKEY_CLR;
default:
return SFKEY_NONE;
}
}
void SFApp_Leave(void);
static void SFApp_KeyHandler(S32 aKey,S32 aKeyState)
{
ISFApplication*pApp=SFGetApp();
//kal_prompt_trace(MOD_MMI,"SFApp_KeyHandler get akey========%d",aKey);
//kal_prompt_trace(MOD_MMI,"SFApp_KeyHandler get aKeyState========%d",aKeyState);
if(aKeyState==KEY_EVENT_DOWN)
{
if(aKey==KEY_END)
{
//close the app
g_kernal.bAppRunning=SFFalse;
//terminate request
SFApp_Terminate();
}
else
{
aKey=SFApp_MapKeyCode(aKey);
if(aKey!=SFKEY_NONE)
{
g_kernal.iKeyState|=1<<aKey;
//call the event handler
pApp->pfnEvtHandler(pApp,EVT_KEYDOWN,(SFWPARAM)aKey,0);
}
}
}
else if(aKeyState==KEY_EVENT_UP)
{
/*if(aKey==KEY_END)
{
//close the app
g_kernal.bAppRunning=SFFalse;
//terminate request
SFApp_Terminate();
SFApp_Leave();
SFDEBUG("term req");
}
else*/
{
aKey=SFApp_MapKeyCode(aKey);
if(aKey!=SFKEY_NONE)
{
g_kernal.iKeyState&=~(1<<aKey);
//call the event handler
pApp->pfnEvtHandler(pApp,EVT_KEYUP,(SFWPARAM)aKey,0);
}
}
}
}
static void SFApp_PenMoveHandler(mmi_pen_point_struct pos)
{
ISFApplication*pApp=SFGetApp();
pApp->pfnEvtHandler(pApp,EVT_POINTER_DRAGGED,SFMAKE_POINT(pos.x,pos.y),0);
}
static void SFApp_PenPressHandler(mmi_pen_point_struct pos)
{
ISFApplication*pApp=SFGetApp();
pApp->pfnEvtHandler(pApp,EVT_POINTER_PRESSED,SFMAKE_POINT(pos.x,pos.y),0);
}
static void SFApp_PenReleaseHandler(mmi_pen_point_struct pos)
{
ISFApplication*pApp=SFGetApp();
pApp->pfnEvtHandler(pApp,EVT_POINTER_RELEASED,SFMAKE_POINT(pos.x,pos.y),0);
}
//static void SFApp_LoadGameSetting()
//{
// S16 error;
//#ifdef __MMI_GAME_MULTICHANNEL_SOUND__
//
// ReadValue(NVRAM_GFX_BACKGROUND_MUSIC_SETTING, &g_bBgMusicOn, DS_BYTE , &error);
//
// /* if not init, init as ON */
// if(g_bBgMusicOn == 0xff)
// {
// g_bBgMusicOn = TRUE;
// }
//#endif
//}
static U32 g_myKeyState=0;
static void KeyHandler_ForA_Up(void)
{
g_myKeyState&=~SFKS_NUM2;
}
static void KeyHandler_ForB_Up(void)
{
g_myKeyState&=~SFKS_NUM1;
}
static void KeyHandler_ForSelect_Up(void)
{
g_myKeyState&=~SFKS_NUM8;
}
static void KeyHandler_ForStart_Up(void)
{
g_myKeyState&=~SFKS_NUM7;
}
static void KeyHandler_ForUp_Up(void)
{
g_myKeyState&=~SFKS_UP;
}
static void KeyHandler_ForDown_Up(void)
{
g_myKeyState&=~SFKS_DOWN;
}
static void KeyHandler_ForLeft_Up(void)
{
g_myKeyState&=~SFKS_LEFT;
}
static void KeyHandler_ForRight_Up(void)
{
g_myKeyState&=~SFKS_RIGHT;
}
static void KeyHandler_ForA_Down(void)
{
g_myKeyState|=~SFKS_NUM2;
}
static void KeyHandler_ForB_Down(void)
{
g_myKeyState|=~SFKS_NUM1;
}
static void KeyHandler_ForSelect_Down(void)
{
g_myKeyState|=~SFKS_NUM8;
}
static void KeyHandler_ForStart_Down(void)
{
g_myKeyState|=~SFKS_NUM7;
}
static void KeyHandler_ForUp_Down(void)
{
g_myKeyState|=SFKS_UP;
}
static void KeyHandler_ForDown_Down(void)
{
g_myKeyState|=SFKS_DOWN;
}
static void KeyHandler_ForLeft_Down(void)
{
g_myKeyState|=SFKS_LEFT;
}
static void KeyHandler_ForRight_Down(void)
{
g_myKeyState|=SFKS_RIGHT;
}
static void KeyHandler_ForSound_Up(void)
{
g_myKeyState&=~SFKS_NUM9;
}
static void KeyHandler_ForSound_Down(void)
{
g_myKeyState|=SFKS_NUM9;
}
void SetupKeyHandlers(void)
{
g_myKeyState=0;
SetKeyHandler(KeyHandler_ForUp_Up,KEY_UP_ARROW,KEY_EVENT_UP);
SetKeyHandler(KeyHandler_ForDown_Up,KEY_DOWN_ARROW,KEY_EVENT_UP);
SetKeyHandler(KeyHandler_ForLeft_Up,KEY_LEFT_ARROW,KEY_EVENT_UP);
SetKeyHandler(KeyHandler_ForRight_Up,KEY_RIGHT_ARROW,KEY_EVENT_UP);
SetKeyHandler(KeyHandler_ForUp_Down,KEY_UP_ARROW,KEY_EVENT_DOWN);
SetKeyHandler(KeyHandler_ForDown_Down,KEY_DOWN_ARROW,KEY_EVENT_DOWN);
SetKeyHandler(KeyHandler_ForLeft_Down,KEY_LEFT_ARROW,KEY_EVENT_DOWN);
SetKeyHandler(KeyHandler_ForRight_Down,KEY_RIGHT_ARROW,KEY_EVENT_DOWN);
SetKeyHandler(KeyHandler_ForA_Up,KEY_1,KEY_EVENT_UP);
SetKeyHandler(KeyHandler_ForB_Up,KEY_2,KEY_EVENT_UP);
SetKeyHandler(KeyHandler_ForSelect_Up,KEY_4,KEY_EVENT_UP);
SetKeyHandler(KeyHandler_ForStart_Up,KEY_5,KEY_EVENT_UP);
SetKeyHandler(KeyHandler_ForA_Down,KEY_1,KEY_EVENT_DOWN);
SetKeyHandler(KeyHandler_ForB_Down,KEY_2,KEY_EVENT_DOWN);
SetKeyHandler(KeyHandler_ForSelect_Down,KEY_4,KEY_EVENT_DOWN);
SetKeyHandler(KeyHandler_ForStart_Down,KEY_5,KEY_EVENT_DOWN);
SetKeyHandler(KeyHandler_ForSound_Up,KEY_VOL_UP,KEY_EVENT_UP);
SetKeyHandler(KeyHandler_ForSound_Down,KEY_VOL_DOWN,KEY_EVENT_DOWN);
}
void SFApp_SetupHandlers(void)
{
//clear key states
g_kernal.iKeyState=0;
ClearAllKeyHandler();
SetKeyHandler(SfKeyEnd_DownHandler,KEY_END,KEY_EVENT_DOWN);
SetKeyHandler(mmi_gfx_volume_up, KEY_UP_ARROW, KEY_EVENT_DOWN);
SetKeyHandler(mmi_gfx_volume_down, KEY_DOWN_ARROW, KEY_EVENT_DOWN);
mmi_pen_register_down_handler(SFApp_PenPressHandler);
mmi_pen_register_move_handler(SFApp_PenMoveHandler);
mmi_pen_register_up_handler(SFApp_PenReleaseHandler);
SetupKeyHandlers();
}
#if 0
void SFApp_SetupGDI(void)
{
gdi_handle gdi_hdlr;
lcd_power_up();
entry_full_screen();
gdi_layer_reset_clip();
gdi_layer_get_base_handle(&gdi_hdlr);
gdi_layer_set_blt_layer(gdi_hdlr,0,0,0);
gdi_layer_set_active(gdi_hdlr);
gdi_layer_clear(GDI_COLOR_BLACK);
TurnOnBacklight(0);
gdi_layer_blt_ext(GDI_LAYER_MAIN_BASE_LAYER_HANDLE, 0, 0, 0,
#ifdef GDI_6_LAYERS
0, 0,
#endif
0, 0, LCD_WIDTH-1, LCD_HEIGHT-1);
gdi_layer_lock_frame_buffer();
mmi_frm_kbd_set_tone_state(MMI_KEY_TONE_DISABLED);
/*
gdi_handle gdi_hdlr;
lcd_power_up();
entry_full_screen();
gdi_layer_reset_clip();
gdi_layer_get_base_handle(&gdi_hdlr);
gdi_layer_set_blt_layer(gdi_hdlr,0,0,0);
gdi_layer_set_active(gdi_hdlr);
mmi_frm_kbd_set_tone_state(MMI_KEY_TONE_DISABLED);
*/
}
#endif
/*
方案二*/
void SFApp_SetupGDI(void)
{
gdi_handle gdi_hdlr;
lcd_power_up();
entry_full_screen();
gdi_layer_reset_clip();
gdi_layer_get_base_handle(&gdi_hdlr);
gdi_layer_set_blt_layer(gdi_hdlr,0,0,0);
gdi_layer_clear(GDI_COLOR_BLACK);
gdi_layer_set_active(gdi_hdlr);
mmi_frm_kbd_set_tone_state(MMI_KEY_TONE_DISABLED);
}
#if 0
void SFApp_FreeGDI(void)
{
gdi_layer_unlock_frame_buffer();
lcd_power_down();
TurnOffBacklight();
mmi_frm_kbd_set_tone_state(MMI_KEY_TONE_ENABLED);
/*
lcd_power_down();
TurnOffBacklight();
mmi_frm_kbd_set_tone_state(MMI_KEY_TONE_ENABLED);
*/
}
#endif
/*
方案二*/
void SFApp_FreeGDI(void)
{
lcd_power_down();
TurnOffBacklight();
mmi_frm_kbd_set_tone_state(MMI_KEY_TONE_ENABLED);
}
void SFApp_Leave(void);
void SFApp_Enter(void);
void EntrySFApp(PS8 filename, BOOL is_short)
{
memset(u16_g_game_file_name,0x0,FMGR_PATH_BUFFER_SIZE);
pfnUnicodeStrcpy((PS8)u16_g_game_file_name, filename);
SFApp_Entry();
}
void game_simu_highlight(void)
{
SetLeftSoftkeyFunction(EntryRomList, KEY_EVENT_UP);
SetKeyHandler(EntryRomList, KEY_RIGHT_ARROW, KEY_EVENT_DOWN);
SetRightSoftkeyFunction(GoBackHistory,KEY_EVENT_UP);
SetKeyHandler(GoBackHistory, KEY_LEFT_ARROW, KEY_EVENT_DOWN);
}
void GameSimuInit(void)
{
//SetHiliteHandler(MENU_ID_FNG_GAME_SIMU, game_simu_highlight);
}
U8 mmi_game_simu_delete_history_hdlr( void* in_param )
{
ISFApplication*pApp=SFGetApp();
if(g_kernal.bAppRunning)
{
g_kernal.bAppRunning = SFFalse;
pApp->pfnEvtHandler(pApp,EVT_APP_DESTROY,0,0);
SFApp_SetFirstTime(SFTrue);
SFSystem_Finalize();
}
}
void SFApp_Entry(void)
{
//create the app first
EntryNewScreen(SCR_ID_VDOPLY_STREAM_EDITOR,SFApp_Leave,SFApp_Entry,SFNull);
SetDelScrnIDCallbackHandler( SCR_ID_VDOPLY_STREAM_EDITOR, (HistoryDelCBPtr)mmi_game_simu_delete_history_hdlr );
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -