聲明:本資料爲公司同事整理提供
MMICheckDiskDisplay 開機點亮背光
PEN_CHECK_BOUND 檢查觸筆位置是否在控制區域
wgui_general_pen_down_hdlr 觸屏事件
setup_dialing_keypad 撥號界面
gui_dialing_key_select 顯示選中撥號圖片
ExecuteDialKeyPadKeyHandler
gui_dialing_screen_translate_pen_position
gui_dialing_screen_translate_pen_event
GetDispNameorNum 撥號取得姓名、號碼
mmi_ucm_entry_outgoing_call
dialer_input_box_change_callback 撥號界面顯示
gui_dialing_screen_translate_pen_event 撥號觸屏事件
ShowMOMTCallScreen 來去電 來電 去電
RedrawMOMTCallScreen
gui_virtual_keyboard_cache_and_show_selected_key 虛擬鍵盤選中顯示
UI_inputbox_show_cursor 輸入框 光標 顯示
mmi_frm_is_screen_width_height_swapped 屏是不是旋轉90°
g_idle_context.ToMainMenuScrFromIdleApp = 1;
IdleHandlePoundKeyForKeypadLock 鎖鍵盤
HandlePoundKeyForUnlock
#ifdef __SLT_MMI_D800_MAIN_MENU_STYLE__ //20080506 add
if (GetActiveScreenId() != MAIN_MENU_SCREENID)
extern kal_bool Is_On_MainMenu_Screen();
D800_MainMenu_Title_Height
mmi_idle_is_on_idle_screen
FrameworkBackwardCompatible.c
FrameworkBackwardCompatible.h 字符轉換函數
mmi_chset_convert(g_chset_text_encoding, MMI_CHSET_UCS2, (char*)ascii_path, (char*)dest, sizeof(dest)-10);
證券之星 stock 測試帳號 13917580633 123456
__DRV_DUAL_SIM_INVERSE__ 雙卡互換
MTPNP_AD_Get_Startup_Mode 雙卡的啓動設置
mmi_bootup_sim1_is_insert 檢查sim1有沒有插入
PowerAndEndKeyHandler end鍵函數
setup_bottom_shortcuts 觸摸屏下面的四個圖標
mmi_frm_hide_menu_item/mmi_frm_unhide_menu_item 隱藏/顯示菜單
gui_create_single_line_input_box_use_buffer 虛擬鍵盤、輸入 有關
mmi_pen_editor_compute_candidate_input_box_height
gPenEditorCandidateInputBox
mmi_pen_editor_show_candidate_area
show_asyncdynamic_list 行事曆顯示
#if 1 //20080506 add
ShowCategory14Screen
#ifdef __SLT_MMI_D800_MAIN_MENU_STYLE__ //20080506 add
__SLT_MMI_D800_UI_STYLE__
gMainMenuTitleIcon[i] = NULL;
#else
gMainMenuTitleIcon[i] = MAIN_MENU_TITLE_ICON_BASE + list_of_icons[i] - MAIN_MENU_ICON_IMGBASE;
#endif
dm_reset_title_coordinates
MMI_MAINMENU_CONTENT_Y
MMI_MAINMENU_CONTENT_HEIGHT
/* height of status icon bar */
CFG_UI_STATUS_BAR_HEIGHT
/* height of thin title */
CFG_UI_THIN_TITLE_HEIGHT
CFG_UI_MAIN_MENU_NORMAL_IMAGE_CLIP_HEIGHT //
CFG_UI_MAIN_MENU_HIGHLIGHTED_IMAGE_HEIGHT //主菜單顯示高度
dm_setup_and_draw_matrix_menu
CFG_UI_MENUITEM_HEIGHT
CFG_UI_SOFTKEY_HEIGHT
CFG_UI_BUTTON_BAR_HEIGHT
show_softkey_background_with_clipping //button 背景
gui_show_icontext_button //button字體
show_status_icons //icon 背景
redraw_softkey
gui_title_oem_show_normal
gui_title_oem_show_background //title背景
gui_title_show_text //title字體
gui_shortcut_show //title右上方顯示的數字index值
wgui_title_set_no_icon_shct(MMI_TRUE) //title右上方顯示的數字index值
gui_show_vertical_scrollbar_style_4 //scroll bar
MMI_fixed_list_menu.vbar
gui_scrollbar_draw_button
gui_clock_show //時鐘顯示
IMG_BACKGROUND_defaultTheme //二級菜單背景圖
FlightModeCheckBeforeAnimation //開機
gui_fixed_matrix_menu_auto_calculate
CFG_UI_MAINMENU_SHOW_STATUS_ICON 顯示/隱藏主菜單的status
current_MMI_theme 當前主題
gui_show_fixed_matrix_menu 圖片大小不正確時死機
MMI_ASSERT((xPos2 - xPos + 1) * (yPos2 - yPos + 1) * gdi_layer_get_bit_per_pixel() >> 3 <=
MMI_MAIN_MENU_MATRIX_HIGHLIGHTED_BUF_SIZE);
mmi_audply_redraw_main_screen 音樂播放器主界面
mmi_audply_redraw_main_play_list 刷新音樂歌詞列表
EMS_matrix_highlight_handler 預設動畫列表
gui_show_fixed_matrix_menu
EarphoneDisplayPopup 耳機插入/拔出 GpioDetectInd
MMI_ON_WIN32 MMI_ON_HARDWARE_P
__MTK_TARGET__
#ifdef __cplusplus
extern "C" {
#endif
__SMS_BLACK_LIST__ 短信防火牆
SLT_MMI_SLIDE_UNLOCK 滑動解鎖
__MMI_VCARD__ 名片夾
__SLT_MMI_PHB_VCARD__ 超級電話本
__MMI_VIP__ SECURITY_VIP vip功能
__SLT_LONG_DISTANCE_DDD__ 長途區號
__MMI_UI_HINTS_IN_MENUITEM__ 在菜單空間顯示hint(正常應該關閉,彈出hint)
Execution Region //查看Ram 空間 (在lis文件中搜索該關鍵字)
//手機默認密碼
NVRAM_SECURITY_VIP_PASSWORD_LID
NVRAM_EF_MS_SECURITY_DEFAULT 對應升級項:NVRAM_EF_MS_SECURITY_LID_VERNO
mmi_frm_sms_save_sms_req 發短信
mmi_msg_new_msg_ind 新短信到達
mmi_msg_entry_new_msg_ind
ReleaseEMSEditBuffer 釋放寫短信的buffer
SCR_INLINE_EDIT 編輯電話本界面
SCR_ADD_NEW_ENTRY 增加電話本界面
color_dialing_font_map[] 撥號界面的不同字體顏色數組
gui_show_dialer_input_box_ext 撥號輸入框
wgui_setup_dialer_inputbox
IdleDialPadCall
mmi_ucm_entry_outgoing_call
ShowMOMTCallScreen
nvram_cust_pack.c存放開關機默認值
custom_mmi_default_value.h 存放開關機默認值定義
fmgr_msdc_plug_in_hdlr
fmgr_msdc_plug_out_hdlr 插拔T卡
mmi_vobj_is_pending_object 收到名片夾
mmi_vobj_receive_get_full_tmp_path_name 取得名片夾路徑
isEarphonePlugged //耳機是否插入標誌
gPenEditorSelectCandidate, 漢王判斷有無備選字
s_bShowingCand 國筆判斷有無備選字
handle_category28_input
手機信號的顯示是根據公式
frame_number = (level_percentage * (n_frames)) / 100;
來計算需要顯示哪一針圖片,瞭解原理後大家可以對gSignalStrengthLevel靈活付值.
void ChangeStatusIconLevel(S16 icon_ID, U8 level_percentage)
mmi_phb_sel_quick_search_get_index //電話本選擇複製、刪除時中鍵顯示的勾和叉圖
setup_bottom_shortcuts 觸屏底部絲印的快捷鍵
custom_comp_config_tbl 自己配製的任務列表
resource_shortcuts.c gShctDefaultDediList 快捷鍵定義
mmi_audply_redraw_lyric : 顯示歌詞 idle_screen_show_network_details : 待機顯示歌名
nvram_common_config.c // 恢復出廠設置的定義以及 自動測試的程序
(增加或刪除工程模式中測試項目 數組 NVRAM_EF_AUTOTEST_DEFAULT[NVRAM_EF_AUTOTEST_SIZE])
nvram_user_config.c //存放nvram的各項默認值
nvram_restore_byte_cache //恢復出廠設置的byte值
wgui_categories_inputsenum.h //輸入法的定義
custom_hw_default.c //電池參數
audcoeff.c 、 nvram_default_audio.c //音頻參數
FactoryModeDef.h //工程模式、測試模式的定義
FactoryModeSrc.c 存放工程模式的各項設置 其中const testlet Tests[MAX_AUTO_TEST_ITEMS] = {}存放*#87#自動測試時的各項測試 函數
MAX_AUTO_TEST_ITEMS 自動測試項目的最大值
nvram_common_config.c NVRAM_EF_PORT_SETTING_DEFAULT [] //設置默認調試端口
nvram_cust_pack.c NVRAM_CACHE_DOUBLE_DEFAULT //觸摸屏校準數據
custom_wap_cust_pack.c //書籤,主頁
audio_group_init[NUM_OF_GROUP] 鈴聲設置數組
initalize_main_menu_application()註冊主菜單得各個高亮函數
GlobalConstants.h //存放按鍵定義
keypad_def.c //按鍵映射關係
CustImgDataHW.h //編譯後的圖片數據數組 __MAINLCD+__路徑+__文件名+__擴展名[]
CustCoordinates.c //Screen控件
MMI_features_GUIPLUTO.h __MMI_BI_DEGREE_MAIN_MENU_STYLE__ //主菜單樣式 __MMI_MAINMENU_TYPE__
NVRAM_EF_SMSAL_SMS_TOTAL //短消息最大值(nvram_user_defs.h)
CM_SMS_MAX_MSG_NUM (customer_ps_inc.h) //要比NVRAM_EF_SMSAL_SMS_TOTAL值大(100)
PHB_PHONE_ENTRY (.make) //手機電話簿容量
PHB_SIM_ENTRY //sim卡電話簿容量
nvram_user_defs.h 文件中 NVRAM_EF_SMSAL_SMS_TOTAL 手機短信的容量定義 CM_SMS_MAX_MSG_NUM 短信總容量定義(sim + phone)
.mak 文件中PHB_PHONE_ENTRY 定義手機中電話本的容量 PHB_SIM_ENTRY定義sim卡的電話本容量
MAX_BT_SMS_NUM 藍牙短信容量
mmi_phb_quick_search_find_entry 電話本輸入字符搜索列表
refresh_search_list_change_list 字符搜索列表回調函數
PhoneSetupResList.h //牆紙定義、數量
IMERes.c //定義筆畫輸入法(MTK源代碼 __MMI_TOUCH_SCREEN__和筆畫 INPUT_MODE_MMI_SM_STROKE 互斥)
NVRAM_PROFILES_DEFAULT //情景模式裏面的設置,鈴聲等的默認值
MMI_PROFILE_ENUM_TYPE 情景模式
IdleToggleProfile 激活情景模式
CustResDefPLUTO.h //定義資源路徑 及 工程菜單定義 如:*#86# *#65289*# 等
DEFAULT_HARDWARE_YEAR DEFAULT_HARDWARE_MON DEFAULT_HARDWARE_DAY//手機默認年、月、日 份
GUITypeDef.h HIGHLIGHT_EFFECT SOFTKEY_STYLE STATUSBAR_STYLE //定義高亮菜單的效果、按鈕和statusbar的顯示風格
pixtel_UI_show_fixed_matrix_menu //九宮格數據
//沒有小電池,第一次正常關機開機時時間不能保存
kal_bool DRV_POWERON(void) :: if (RTC_isFisrtOn()/*||(KAL_FALSE==RTC_is_config_valid())*/)//modify by lvqiang for rtc bug11832
S8* path; //字符轉換函數, 把ASCII 轉換成 UCS2 如例:
mmi_chset_convert(g_chset_text_encoding, MMI_CHSET_UCS2, (char*)MUSIC_FOLDER, (char*)path, FMGR_MAX_PATH_LEN-10);
mmi_ucs2cat((PS8)filexpr_temp, (const PS8)path);
//創建中文文件夾
#define PHB_VCARD_FOLDER "/x0D/x54/x47/x72/x39/x59/x00/x00//" // 名片夾
#ifdef __cplusplus //20070613 add for simulator
extern "C" {
#endif /* __cplusplus */
NVRAM_EF_PHB_COMPARE_DIGIT_DEFAULT 電話本比較的位數
MTK平臺的UA內置方法:
custom_wap_config.h文件裏頭的
#define WAP_CUSTOM_CFG_DEFAULT_UA_HEADER "MAUI WAP Browser"
#define WAP_CUSTOM_CFG_DEFAULT_MMS_UA_HEADER "MAUI MMS User Agent"
這兩項引號中的紅體字部分內容替換爲我們提供的有效UA!
"LCT_D800B_01/1.0 Nucleus/1.13.21 MTK6225/07A Release/5.1.2008 Browser/TelecaQ03C1 Profile/MIDP-2.0 Configuration/CLDC-1.1"
電池顯示六格的問題:
3520000, 3570000, 3680000, 3780000,
3890000, 3950000, 4000000, 4090000, 9999999,
#define NVRAM_EF_CUST_HW_LEVEL_TBL_SIZE 444
#define BATTERY_MAX_LEVEL 11
gui_fixed_menuitems.c
(pixtel_UI_show_fixed_fullscreen_page_menuitem())
gui_fixed_menus.c (g_MainMenu_Item_Poistion 數組存放9宮格的座標值)
show_fixed_list調用下面函數
(pixtel_UI_show_fixed_list_menu()調用DrawMainMenuBgImageContext()畫選中位置的圖片)
CustMenuRes.c const CUSTOM_MENU nCustMenus[]所有屏幕畫面的參數 菜單ID 父菜單ID 子菜單個數 等等,結構描述如下:
//The Below is the structure of the MenuItem which can be transfered to any screen.
typedef struct Custom_MenuItem
{
U16 nMenuItemId; //Unique Id for each MenuItem.
U16 nParentId; //ItemId of the parent if 0(zero) then no parent.
U16 nNumofMenuItem; //Number of Children it has.
U16 nHideFlag; //This is a flag to mask/hide.(not sure currently)
U16 nMovable; //This is a flag for moving like 0-NotMovable Anywhere,
//1-Movable within the same parent..etc
U16 nDispAttribute; //This is a display attribute flag like 1-list,2-Circular,3-Tab..etc.
U16 nStrId; //Unique StringId of the MenuItem.
U16 nImageId; //Unique Image of the MenuItem.
U16 *nOrderMenuItemId; //ItemId of the children in Sequence
}CUSTOM_MENU;
目錄結構: plutommi
Alarm 鬧鐘
AsyncEvents 異步事件和硬件協議事件的處理
Audio 聲音管理
Calendar 日曆
CallManagement 電話呼叫
Calls 輔助服務
CommonScreens 所有應用的公用屏幕
Data Time 日期和時間的實現
Debug 包含.obj文件並且是正在工作的文件夾
DebugLevel 管理debug日誌的MACROS
Demo 一個demo應用
Framework 管理應用消息,流程控制和操作系統封裝
EventHandling
FileSystem
History
NVRAMManager
Osl
Tasks
FunandGames FunandGames的應用
GPIO 處理不同的外部設備例如:背光,震動,led
GUI 管理UI的相關函數
IdleDemo 待機應用和事例
Inc 所有應用的共享文件
MiscFramework Pixtel MMI平臺管理字體unicode的支持。
Organizer
PhoneBook 電話簿
Profiles
SAT sim卡應用的工具箱
Settings 設置應用
Shortcuts 快捷應用
ToDoList
pixtelmmi.cpp
MtkWinMainStart()函數開始application--------(TaskInit.c)InitApplication()
create/init trace機制,task隊列,信號,線程等
(MMITask.c)MMI_task()
while(1)
讀消息從循環隊列中讀消息,成功的情況下讀task隊列,根據隊列id號生成一個task.同時調用該task.
POWER_ON_KEYPAD:
InitializeAll()(初始framework):(InitUnicodeSupport()
gdi_init()
InitMMIUsbContext()(如果支持usb)
mmi_irda_init_cntx() //如果支持紅外的話 mmi_irda_set_recv_files_cnt() // InitProtocolEvents() initFramework()
InitHardwareEvents()
InitTime() // InitMMI_App()
PopulateResData() //通用資源數據
InitNvramData() //初始化的數據
EntryCalibrationSettingScr
mmi_bootup_exit_disk_check
mmi_pwron_entry_animation_screen() //開機動畫 FlightModeCheckBeforeAnimation //開機顯示動畫
Res_MainMenu.c PopulateMainMenuRes() 增加主菜單!
PopulateRes.c PopulateMainMenuRes()
RegisterHighlightHandler() 註冊高亮顯示
////////////////////////////////////////////////////////////////////////////////////////////
mainmenu.c
goto_main_menu()
RegisterHighlightHandler(main_menu_custom_highlight_handler);//判斷是否播放聲音
ShowCategory14Screen() //顯示主菜單(wgui_categories_MM.c)
case PAGE_MENU:
register_fixed_list_highlight_handler(category14_main_menu_list_highlight_handler);
(category14_main_menu_list_highlight_handler)
DrawMainMenuBgImageContext()畫選中位置的圖片
LCD_CLAM_OPEN_HALFLITE_TO_OFF_TIME 背光半黯時間
pixtel_UI_measure_image() //獲取被給圖象的寬高!
/mmi/setting/風格設置保存在nvram中,initphonesetupcntx()時讀取.
gui_fixed_menus.c
定義mainmenu_item_position
GlobalConstants.h 定義
///////////////////////////////////////////////////////////////////////////////////////////////
mmitask 的while循環內接收消息ProcessPCKeyEvent()----Osl/KeyBrd.c
處理ProcessKeyEvent(),發送按鍵事件到mmitask
調用ExecuteCurrKeyHandler() 根據消息找到對應的按鍵-----Events/Events.c
left_softkey_up()----執行當前按鍵對應的處理函數--left_softkey_functions[KEY_EVENT_UP]()
(通過SetLeftSoftkeyFunction()設置的按鍵和函數對應關係)找到需要處理的對應函數
-----wgui_softkey.c
get_softkey_function //取得按鍵函數
custom_nvram_editor_data_item.h 私有標識
CustResDefYJG_M100_01.h 快捷鍵
////////////////////////////////////////////////////////////////////////////////////////////////
custom
audio
項目目錄
resource_audio.h(聲音資源定義)
resource_audio.c(聲音資源內容)
Setting
說明:系統初始化時初始化sethighlitehandler函數,使菜單id和對應highlite函數相綁定,相對應。
當進入該菜單時,例如Setting菜單: EntryScrSettingMenu() 註冊對應的執行highlight的函數。
然後刷新屏幕
從MainMenu.c(hightlight_mainmenu_settings())進入。
hightlight_mainmenu_settings是從initalize_main_menu_application函數SetHiliteHandler
EntryPhnsetScrSvr
EntryPhnsetScrSvrSettings
EntryPhnsetScrSvrSystem
EntryPhnsetScrSvrSysView
EntryPhnsetScrSvrSelect
EntryPhnsetScrSvrDwnl
EntryPhnsetScrSvrDwnlView
initialize_gui
set_MMI_theme((MMI_theme *)MMI_themes[0]); //初始化theme
wgui_EMS_input_information_background()----wgui_ems_categories.c
-------UI_fill_rectangle() ----wingui.c
gui_themes.c set_mmi_theme(t)-----current_mmi_theme=t 設置整體風格
wgui.c initialize_gui() 初始化設置整體風格
void custom_drv_init(void)
{
。。。
//add for sim_change
{ //sim卡互換代碼
extern void sim_switchPhysicalSlotMapping(kal_bool); //添加部分
sim_switchPhysicalSlotMapping(KAL_TRUE); //添加部分
}
}
音頻格式
mp3 :5
mid: 17