⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 sfapi.c

📁 此为在MTK手机平台上添加软解码MP4要修改的源代码
💻 C
📖 第 1 页 / 共 4 页
字号:
{
  	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 + -