📄 sfapi.c
字号:
{
SFApp_KeyHandler(KEY_LSK,KEY_EVENT_DOWN);
}
void SfKeyLSK_UpHandler(void)
{
SFApp_KeyHandler(KEY_LSK,KEY_EVENT_UP);
}
void SfKeyRSK_DownHandler(void)
{
SFApp_KeyHandler(KEY_RSK,KEY_EVENT_DOWN);
}
void SfKeyRSK_UpHandler(void)
{
SFApp_KeyHandler(KEY_RSK,KEY_EVENT_UP);
}
void SfKeyEnter_DownHandler(void)
{
SFApp_KeyHandler(KEY_ENTER,KEY_EVENT_DOWN);
}
void SfKeyEnter_UpHandler(void)
{
SFApp_KeyHandler(KEY_ENTER,KEY_EVENT_UP);
}
void SfKeyUpArrow_DownHandler(void)
{
SFApp_KeyHandler(KEY_UP_ARROW,KEY_EVENT_DOWN);
}
void SfKeyUpArrow_UpHandler(void)
{
SFApp_KeyHandler(KEY_UP_ARROW,KEY_EVENT_UP);
}
void SfKeyDownArrow_DownHandler(void)
{
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);
}
#if 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
}
#endif
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_VOL_UP, KEY_EVENT_DOWN);
SetKeyHandler(mmi_gfx_volume_down, KEY_VOL_DOWN, KEY_EVENT_DOWN);
mmi_pen_register_down_handler(SFApp_PenPressHandler);
mmi_pen_register_move_handler(SFApp_PenMoveHandler);
mmi_pen_register_up_handler(SFApp_PenReleaseHandler);
}
void SFApp_SetupGDI(void)
{
gdi_layer_clear(GDI_COLOR_BLACK);
TurnOnBacklight(0);
entry_full_screen();
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);
lcd_power_up();
gdi_layer_lock_frame_buffer();
mmi_frm_kbd_set_tone_state(MMI_KEY_TONE_DISABLED);
}
void SFApp_FreeGDI(void)
{
gdi_layer_unlock_frame_buffer();
lcd_power_down();
TurnOffBacklight();
mmi_frm_kbd_set_tone_state(MMI_KEY_TONE_ENABLED);
}
void SFApp_Leave(void);
void SFApp_Enter(void);
#if 0
void EntryGame(PS8 filename, BOOL is_short)
{
#ifdef __J2ME__
if(jvm_is_pause_mode())
{
mmi_java_display_is_busy_for_pause_mode();
return;
}
#endif
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(SCREENID_GAMESIMU,SFApp_Leave,SFApp_Entry,SFNull);
SetDelScrnIDCallbackHandler( SCREENID_GAMESIMU, (HistoryDelCBPtr)mmi_game_simu_delete_history_hdlr );
/* stop bg music */
mdi_audio_suspend_background_play();
SFApp_SetupHandlers();
SFApp_SetupGDI();
SFApp_LoadGameSetting();
if(SFApp_IsFirstTime())
{
//do init
SFApp_SetFirstTime(SFFalse);
g_kernal.bAppRunning=SFTrue;
SFSystem_Initialize();
//g_kernal.pApplication=SFNesEmuApp_Create();
g_kernal.pApplication->pfnEvtHandler(g_kernal.pApplication,EVT_APP_START,0,0);
}
else
{
//resume
ISFApplication*pApp=SFGetApp();
pApp->pfnEvtHandler(pApp,EVT_APP_RESUME,0,0);
}
}
#endif
void SFApp_Leave(void)
{
ISFApplication*pApp=SFGetApp();
if(!g_kernal.bAppRunning)
{
//destroy
pApp->pfnEvtHandler(pApp,EVT_APP_DESTROY,0,0);
SFApp_SetFirstTime(SFTrue);
SFSystem_Finalize();
}
else
{
//pause
pApp->pfnEvtHandler(pApp,EVT_APP_PAUSE,0,0);
//gdi_layer_blt_previous(0, 0, UI_device_width-1, UI_device_height-1);
}
SFApp_FreeGDI();
/* resume background audio */
mdi_audio_resume_background_play();
}
/**
* @brief 获取游戏中可分配的连续空间大小
* @return 空间的大小
*/
SFSize_T SFSystem_GetHeapSize(void)
{
return SNOWFISH_APP_MEM_LENGTH;
}
void SFSystem_GetCurrentDataTime(SFDateTime*pDataTime)
{
MYTIME mt;
DTGetRTCTime(&mt);
pDataTime->nYear=(U16)mt.nYear;
pDataTime->nMonth=(U8)mt.nMonth;
pDataTime->nDay=(U8)mt.nDay;
pDataTime->nHour=(U8)mt.nHour;
pDataTime->nMinute=(U8)mt.nMin;
pDataTime->nSecond=(U8)mt.nSec;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -