10A 之前的备忘

时间:2022-11-09 10:03:52

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