10A 之前的備忘

10A 之前的備忘


mmi_idle_exe_callback  進入待機前的準備,檢查是否有新短信、未接來電(mmi_nmgr_entry_default_idle) 等
NetWorkAttachedIndication 網絡 搜網結束
IdleRefreshServiceIndicationArea  idle_screen_show_network_details   待機顯示網絡、運營商名稱  mmi_netset_retrieve_opname_from_plmn
MTPNP_PFAL_NW_Attach_Indication從卡
InitNetWorkBootUpEventsCallBack  註冊的地方

mmi_frm_execute_current_protocol_handler        幾個常用打斷點的函數
ExecuteCurrKeyHandler   ExecuteCurrHiliteHandler   EntryNewScreen  execute_softkey_function

mmi_pen_editor_set_CSK_content        快速搜索中鍵切換輸入法顯示字符   mmi_imui_draw_information_bar 輸入法顯示
gui_draw_single_line_character_background  快速搜索 輸入法 連續輸入時待選字背景與顏色  gui_draw_single_line_one_line

CLNDR_START_WEEKDAY  星期開始日 週期    DOW 取得星期的index

phb_startup_translate_ln_from_sim        25 電話本@@@符號問題
record->array[record->no_entry].name_length = istring_decode_from_sim((kal_uint8) alpha_size, phb_ef.alpha_id, &istring);
        /*新增代碼*/
        for (i = 0; i < alpha_size; i++)
        {
                if (phb_ef.alpha_id[i] != 0)
                {
                        break;
                }
        }
        if (i >= alpha_size)
        {
                record->array[record->no_entry].name_length = 0;
        }
        /*新增代碼 end*/


handle_inline_time_edit  inline 時間輸入, 單行輸入框輸入法等
create_time_input create_date_input  單行時間、日期輸入框 可以改變字體大小date_time_input_theme.text_font
show_time_input        SetFont 設置字體
dm_redraw_category_screen        共用繪製窗口
applib_dt_get_date_time        得到手機時間

extern kal_uint32 kal_adm_get_max_alloc_size(KAfL_ADM_ID adm_id); 取得所有RAM大小
extern kal_uint32 kal_adm_get_total_left_size(KAL_ADM_ID adm_id);取得剩餘RAM大小
                                                g_med_ext_mem_cntx.ext_mem_pool_id   media
                                                g_applib_mem_cntx.screen_pool_id,
                                                g_applib_mem_cntx.app_pool_id
gui_show_fixed_icontext_menuitem        菜單

date_input_register_keys
time_input_register_keys //註冊修改日期、時間界面的處理函數

mmi_frm_get_hilite_hdlr  取得高亮菜單函數
get_softkey_function     取得左右軟件函數


mdi_audio.c 音頻播放函數在這裏找

WGUI_STATUS_ICON_SHOW_TIME_IN_RIGHT  待機status bar顯示 時間
set_dt_display    設置待機時間顯示位置
gui_clock_show         顯示待機時間
update_main_LCD_date_time 待機時間更新
hide_main_LCD_date_time;    /* set function pointer of hide func of date time of main lcd */
show_main_LCD_date_time; /* set func piinter of show date time of main lcd */
update_main_LCD_date_time;        /* set function of upadet date time of main lcd */

ShowChargingCompleteScr  關機充電結束
IdleScreenBatteryFullCharged 開機充電結束

mmi_ucm_entry_outgoing_call 撥出電話
mmi_ucm_entry_in_call 通話中界面   DummyScr1002ActiveCall  ShowCategory20Screen 
mmi_ucm_end_single_action 結束通話
                通話中時間顯示函數 dt_show_duration

CUST_IMG_PATH  圖片路徑
gIndexIconsImageList  公共 圖片、icon list列表

change_EMS_inputbox_mode            23 07A版本 ems輸入法

mmi_input_box_msg_call_back_ems        //ems短信
wgui_EMS_redraw_remaining_characters_display //顯示輸入短信剩餘字串個數  __MMI_MESSAGES_EMS_REMAINING_COUNTER__                                                                          __MMI_HIDE_EMS_REMAINING_CHAR__
mmi_imm_get_curr_input_mode /* The current input mode. */ //取得當前輸入法
redraw_EMS_inputbox 短信輸入inputbox
wgui_EMS_redraw_input_information_bar        短信輸入法圖標顯示
gui_end_ems_new_line_loop        短信新行
gui_draw_ems_under_line  短信輸入畫面畫線函數
mmi_frm_sms_index_list[MMI_SMS_MAX_MSG_NUM] 全部短信鏈表
收短信過程:
      1  l4a_callback         2 SMSMsg        3 SmsPsHandler        4 MessagesMiscell
1        l4c_sms_new_msg_text_lind                       
        [...]                       
2                mmi_frm_sms_new_sms_ind               
                mmi_frm_sms_new_sms               
                mmi_frm_sms_indicate_sms               
                mmi_frm_sms_new_msg_ind               
3                        mmi_msg_handle_new_msg_ind       
4                                mmi_msg_new_msg_ind
                                mmi_msg_entry_new_msg_ind
mmi_frm_sms_startup_read_ind 短信初始化
mmi_frm_sms_startup_finish_ind 短信初始化完成

mmi_msg_get_msg_num  未讀短信條數 msgbox_info.totalinbox 收件箱短信個數   g_msg_cntx.msg_ind_in_idle 是否有新到消息
CHISTGetMissedCallCountBeforeView  未接電話條數

gui_measure_string      取得字串高度和寬度
gui_measure_image        取得圖片高度和寬度
gdi_image_get_dimension_id 根據圖片ID取得圖片寬度和高度
gdi_image_draw_resized_id  以固定的大小畫圖
gdi_image_draw_resized_file
gdi_image_draw_resized_id_h_v_center
 
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
wgui_setup_dialer_inputbox
dialer_input_box_change_callback  撥號界面顯示 
show_dialer_inputbox
gui_show_dialer_input_box_ext  顯示撥號字體、圖片
gui_dialing_screen_translate_pen_event   撥號觸屏事件

MMI_dialer_inputbox  撥號界面輸入框
color_dialing_font_map[] 撥號界面的不同字體顏色數組
gui_show_dialer_input_box_ext 撥號輸入框
wgui_setup_dialer_inputbox
   IdleDialPadCall
mmi_ucm_entry_outgoing_call
ShowMOMTCallScreen

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


證券之星 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_show_single_line_input_box        顯示單行輸入
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
show_status_icon_bar 顯示狀態欄

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
arrange_status_icons    //排列status icon 座標

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                        //時鐘顯示
gui_clock_analog_clock_initialize      待機模擬時鐘初始化
gui_clock_show_digital    數字時鐘顯示,日期  gui_clock_date_string 日期字串 gui_clock_time_string 取得時間字串

IMG_BACKGROUND_defaultTheme                //二級菜單背景圖
gui_show_dynamic_list_menu 顯示動態菜單,例:文件瀏覽界面
dm_set_scr_bg_image(IMG_MAIN_MENU_MATRIX_BG, NULL, -1, -1, current_MMI_theme->bg_opacity_full);  設置背景圖片
dm_get_scr_bg_flag(&mm_bg_flags);
dm_set_scr_bg_flag(mm_bg_flags | DM_SCR_BG_FORCE_SHOW);

FlightModeCheckBeforeAnimation //開機

gui_fixed_matrix_menu_auto_calculate

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)
wgui_display_fixed_text_list_pop_up_description 顯示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 編輯電話本界面    handle_inline_full_screen_edit 電話本名稱編輯全屏編輯界面
SCR_ADD_NEW_ENTRY 增加電話本界面
              
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 //電話本選擇複製、刪除時中鍵顯示的勾和叉圖

NVRAM_EF_PHB_COMPARE_DIGIT_DEFAULT                電話本比較的位數 匹配

setup_bottom_shortcuts  觸屏底部絲印的快捷鍵
g_multitap_arabic  多國語絲印排版
g_multitap_bopomofo 繁體註音絲印 0,1,……

custom_comp_config_tbl  自己配製的任務列表

resource_shortcuts.c  gShctDefaultDediList  快捷鍵定義  __MMI_DEDICATED_KEY_SHORTCUTS__
mmi_audply_redraw_lyric : 顯示歌詞   idle_screen_show_network_details : 待機顯示歌名

nvram_common_config.c        // 恢復出廠設置的定義以及  自動測試的程序  RstStartRestore
(增加或刪除工程模式中測試項目 數組 NVRAM_EF_AUTOTEST_DEFAULT[NVRAM_EF_AUTOTEST_SIZE])
nvram_user_config.c                //存放nvram的各項默認值

nvram_restore_byte_cache        //恢復出廠設置的byte值

mmi_imc_key_redraw_softkey  輸入法 待選字 左右鍵
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 []        //設置默認調試端口 uart 串口

nvram_cust_pack.c                NVRAM_CACHE_DOUBLE_DEFAULT                //觸摸屏校準數據
custom_wap_cust_pack.c         //書籤,主頁
                       
audio_group_init[NUM_OF_GROUP]        鈴聲設置數組

GlobalConstants.h                        //存放按鍵定義
keypad_def.c                                        //按鍵映射關係

CustImgDataHW.h                                //編譯後的圖片數據數組  __MAINLCD+__路徑+__文件名+__擴展名[]

CustCoordinates.c                        //Screen控件

MMI_features_GUIPLUTO.h  __MMI_BI_DEGREE_MAIN_MENU_STYLE__  //主菜單樣式  __MMI_MAINMENU_TYPE__
initalize_main_menu_application()註冊主菜單得各個高亮函數
CFG_UI_MAINMENU_SHOW_STATUS_ICON  顯示/隱藏主菜單的status
CFG_UI_MAIN_MENU_NORMAL_IMAGE_CLIP_HEIGHT        //
CFG_UI_MAIN_MENU_HIGHLIGHTED_IMAGE_HEIGHT        //主菜單顯示高度
    ShowCategory14Screen
dm_setup_and_draw_matrix_menu
mtk_UI_show_fixed_matrix_menu  矩陣菜單

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_bt_is_hs_connected()         藍牙耳機是否連接上
    mmi_bt_is_a2dp_connected()       藍牙音頻高階服務

mmi_phb_quick_search_find_entry 電話本輸入字符搜索列表
refresh_search_list_change_list   字符搜索列表回調函數


PhoneSetupResList.h //牆紙定義、數量 __MMI_WALLPAPER_NUM__  CFG_MMI_WALLPAPER_NUM
IMERes.c            //定義筆畫輸入法(MTK源代碼 __MMI_TOUCH_SCREEN__和筆畫 INPUT_MODE_MMI_SM_STROKE 互斥)

NVRAM_PROFILES_DEFAULT   //情景模式裏面的設置,鈴聲等的默認值
MMI_PROFILE_ENUM_TYPE  情景模式
IdleToggleProfile  激活情景模式

NOR_FAT_PARTITION_SECTORS   開闢手機空間 以扇區爲單位,一個扇區是512Byte
NOR_BOOTING_NOR_FS_FIRST_DRIVE_SECTORS 53版本

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\\"  // 名片夾 

FrameworkBackwardCompatible.c
FrameworkBackwardCompatible.h        字符轉換函數
mmi_chset_convert(g_chset_text_encoding, MMI_CHSET_UCS2, (char*)ascii_path, (char*)dest, sizeof(dest)-10);
    mmi_chset_mixed_text_to_ucs2_str  、DynamicMenu_chset_text_to_ucs2_str 、 mmi_asc_to_ucs2


#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 //開機顯示動畫   

mmi_idle_entry_searching_screen(void)        搜網
IdleRefreshServiceIndicationArea();
void EntryIdleScreen(void)
mmi_bootup_entry_idle_screen()
mmi_bootup_exit_network_searching()
mmi_bootup_entry_network_searching()        開機搜網

                                    
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 定義
KEYTIMER_LONGPRESS  長按按鍵時間    KEYTIMER_REPEAT 重複按鍵時間

///////////////////////////////////////////////////////////////////////////////////////////////
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(聲音資源內容)

編譯過程:
/MCU/make.bat 調用/tools/下的make.exe -f gsm2.mak
gsm2.mak 執行操作,並且執行comp.mak 連接組件庫
$(CUSTOMER)_$(PROJECT).mak (Monza_GPRS.mak) //客戶工程的私有配置,包括預處理,include路徑,模塊
Option.mak        工程的通用選項,宏定義。
Verno_Monza.mak        版本號
GSM2.mak        (主build腳本)
Monza_GPRS.mak        (客戶工程build腳本)
Comp.mak        (組件模塊build腳本)

模塊的option文件
        *.lis        (模塊的源代碼列表)
        *.def        (模塊的私有便宜預定義)
        *.pth        (模塊的源代碼目錄路徑)
        *.inc        (模塊的頭文件目錄路徑)
~buildinfo.tmp        ---------Gsm2.mak        Option.mak
~compbld.tmp        ---------組件模塊需要的編譯信息
...............................................................................................
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

show_DOW_select 鬧鐘、todo待辦事項的日期顯示 { 'S', 'M', 'T', 'W', 'T', 'F', 'S' }

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()  初始化設置整體風格

MMI_FRM_SCRMEM_POOL_SIZE  內存空間

void custom_drv_init(void)
{
。。。
//add for sim_change
        {        //sim卡互換代碼
                extern void sim_switchPhysicalSlotMapping(kal_bool);    //添加部分
                sim_switchPhysicalSlotMapping(KAL_TRUE);                       //添加部分
        }
}

各Feature 定義規則:
平臺項目:原則上定義爲:SLT_MMI
平臺系列項目:原則上定義爲:SLT_<系列項目名稱>_MMI

模塊名稱                        縮寫                        格式                                                                                備註
短消息                                SMS                        __SLT_MMI_SMS_XXX__       
彩信                                        MMS                        __SLT_MMI_MMS_XXX__       
WAP                                        WAP                        __SLT_MMI_WAP_XXX__       
聊天                                        CHAT                __SLT_MMI_CHAT_XXX__       
語音信箱                        VM                        __SLT_MMI_VM_XXX__       
小區廣播                        CB                        __SLT_MMI_CB_XXX__       
呼叫記錄                        CH                        __SLT_MMI_CH_XXX__       
通話                                        CC                        __SLT_MMI_CC_XXX__       
通話計費                        AOC                        __SLT_MMI_AOC_XXX__       
情景模式                        PRF                        __SLT_MMI_PRF_XXX__       
設置                                        ST                        __SLT_MMI_ST_XXX__       
附加業務                        SS                        __SLT_MMI_SS_XXX__       
Camera                        CAM                        __SLT_MMI_CAM_XXX__       
Audio                                AUD                        __SLT_MMI_AUD_XXX__                包括mp3,鈴聲相關
Video                                VID                        __SLT_MMI_VID_XXX__       
Sound Record        SR                __SLT_MMI_SR_XXX__       
Alarm                                ALM                        __SLT_MMI_ALM_XXX__       
日曆                                        CLN                        __SLT_MMI_CLN_XXX__       
其他應用                        OTH                        __SLT_MMI_OTH_XXX__       
GAME                                GAME                __SLT_MMI_GAME_XXX__       
我的資料                        FMGR                __SLT_MMI_FMGR_XXX__       
STK                                        STK                        __SLT_MMI_STK_XXX__       
電話本                                PHB                        __SLT_MMI_PHB_XXX__       


##連接符號
#雙引號
例:
#define paster( n ) printf( "token" #n " = %d", token##n )

If a macro is called with a numeric argument like
paster( 9 );

the macro yields
printf( "token" "9" " = %d", token9 );

which becomes
printf( "token9 = %d", token9 );

音頻格式
mp3 :5
mid: 17

鎖網功能:
 NVRAM_EF_SML_DEFAULT
        #ifdef __LOCK_NET__
           {SML_STATE_LOCK,0,0,1}        ,       
         #else
        {SML_STATE_UNLOCK,SML_RETRY_COUNT_N_CAT,0,0},   /* Category N */
         #endif
        ........
        #ifdef __LOCK_NET__
         0x45,0x20,0x2F,   0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
         #else
           0xc1,0xc1,0xc1, 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
         #endif
是鎖越南的   452 02   MCC=452 MNC=02
對應的nv項是 NVRAM_EF_SML_LID_VERNO
                               __MMI_SML_UNLOCK_AFTER_VERIFIED__   輸入密碼解鎖宏(沒有實現、驗證)

53平臺可以卡1鎖聯通,卡2鎖移動
{   
   #ifdef __GEMINI__  //0805
      {
                SML_MAGIC_HEAD_VALUE,
    #ifdef CUSTOM_SML_DEFAULT
         CUSTOM_SML_DEFAULT
    #else /* CUSTOM_SML_DEFAULT */
        {
       #ifdef __LOCK_NET__
           {SML_STATE_LOCK,0,0,1}        ,       
         #else
        {SML_STATE_UNLOCK,SML_RETRY_COUNT_N_CAT,0,0}, 
        /* Category N */
         #endif
        {SML_STATE_UNLOCK,SML_RETRY_COUNT_NS_CAT ,0,0},  


本文來自:我愛研發網(52RD.com) - R&D大本營
詳細出處:http://www.52rd.com/blog/Detail_RD.Blog_jimbo_lee_27105.html

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章