MTK6226-DS-PHB-SIMB-Load
一、电话簿菜单资源结构
MAIN_MENU_PHONEBOOK_MENUID
MENU_ID_PHB_QUICK_SEARCH
MITEM101_PBOOK_SEARCH_ENTRY,
MITEM111_PBOOK_VIEW_ENTRY,
MITEM111_PBOOK_VIEW_SIMA_ENTRY,
MITEM111_PBOOK_VIEW_SIMB_ENTRY,
MITEM111_PBOOK_VIEW_PHONE_ENTRY,
MITEM111_PBOOK_VIEW_ALL_ENTRY,
MITEM102_PBOOK_NEW_ENTRY,
MITEM_ADD_ENTRY_TO_SIM,
MENU_MTPNP_PB_ADD_SIM2,
MITEM_ADD_ENTRY_TO_PHONE,
MITEM104_PBOOK_COPY_ALL,
MITEM_PBOOK_COPY_ALL_SIM,
MENU_MTPNP_PB_COPYALL_SIM2TOPHONE,
MITEM_PBOOK_COPY_ALL_PHONE,
MENU_MTPNP_PB_COPYALL_PHONETOSIM2,
MITEM103_PBOOK_DELETE_ALL,
MITEM_PBOOK_DELETE_ALL_SIM,
MENU_MTPNP_PB_DELALL_SIM2,
MITEM_PBOOK_DELETE_ALL_PHONE,
MENU_ID_PHB_DELETE_ALL_ONE_BY_ONE,
MITEM109_PBOOK_CALLER_GROUPS
MITEM111_PBOOK_IMPORTOUTPORT_ENTRY
MITEM111_PBOOK_OUTPORTTOFILE_ENTRY,
MITEM111_PBOOK_IMPORTFROMFILE_ENTRY
MITEM110_PBOOK_SETTINGS
进入某个entry的option选项:
MITEM101_PBOOK_VIEW_OPTIONS
MENU_ID_PHB_OPTION_IP_DIAL
MITEM1010_PBOOK_VIEW,
MITEM1011_PBOOK_EDIT,
MITEM1012_PBOOK_DELETE
MITEM1013_PBOOK_COPY_ENTRY,
MITEM1014_PBOOK_MOVE,
MENU_ID_PHB_OPTION_SEND_SMS,
MENU_ID_PHB_OPTION_SEND_MMS,
Copy菜单:
MITEM1013_PBOOK_COPY_ENTRY
MENU_MTPNP_PB_MOVE_SIM1TOPHONE,
MENU_MTPNP_PB_MOVE_PHONETOSIM1,
MENU_MTPNP_PB_MOVE_SIM2TOSIM1,
MENU_MTPNP_PB_MOVE_SIM1TOSIM2,
MENU_MTPNP_PB_MOVE_SIM2TOPHONE,
MENU_MTPNP_PB_MOVE_PHONETOSIM2,
Delete菜单:
MITEM1014_PBOOK_MOVE
MENU_MTPNP_PB_MOVE_SIM1TOPHONE,
MENU_MTPNP_PB_MOVE_PHONETOSIM1,
MENU_MTPNP_PB_MOVE_SIM2TOSIM1,
MENU_MTPNP_PB_MOVE_SIM1TOSIM2,
MENU_MTPNP_PB_MOVE_SIM2TOPHONE,
MENU_MTPNP_PB_MOVE_PHONETOSIM2,
二、资源加载和初始化
InitializeAll( )
//加载资源
PopulateResData( )
PopulateMainMenuRes( )
PopulatePbResData( ) //此函数加载的是A卡和B卡的资源(部分B卡资源没有加载)
populateSettingMenu( )
PopulateCmResData( )
PopulateCallHistoryRes( )
#ifdef __MMI_UCM__
UCMResourceData();
#endif
#ifdef __MMI_DUAL_SIM_MASTER__
Mercury_ResPopulate(); //加载B卡的资源
#endif
//初始化设置
InitCallManagement( )
mmi_ucm_init( )
InitCallLogs( )
#ifndef __MMI_DUAL_SIM_DUAL_CALL_SLAVE__
MMI_APP_INIT(mmi_phb_init_protocol()); 设置协议栈函数,初始化全局变量g_phb_cntx
#endif
#ifdef __MMI_UCM__
MMI_APP_INIT(mmi_idle_init_dial_pad_option());
#endif
#if defined(__MMI_DUAL_SIM_MASTER__)
MMI_APP_INIT(MTPNP_PFAL_Init()); 设置B卡菜单的高亮相应函数
MTPNP_PFAL_ADN_Init() 设置B卡电话簿相关菜单的响应函数
SetSlaveProtocolEventHandler(MTPNP_PFAL_ADN_phb_ind_update, PRT_PHB_UPDATE_IND);
猜测:B卡的PHB操作(edit, add, delete),Call History操作都是在MTPNP_PFAL_ADN_phb_ind_update()中处理。
#endif
三、开机获取PHB all entries
当所有电话簿从L4C传送到MMI之后,L4C返回消息:PRT_PHB_STARTUP_FINISH_IND,进入响应:mmi_phb_ind_startup_finish( )。
在单模项目中,这个函数的最后是直接进入mmi_phb_sort_build_name_index()对g_phb_name_index[]进行排序,然后进入
mmi_phb_init_build_lookup_table()装载和排序LookUpTable[]。
但是在6226-DS双模项目中,在mmi_phb_ind_startup_finish( )的最后是进入:mmi_phb_startup_finish_final_step()。此函数会呼叫函数:
MTPNP_PFAL_ADN_Is_PHB_Before_Sort()来判断Slave_g_phb_startup_before_sort的值,
如果为TRUE,表示B卡的电话簿已经获取完毕,然后就可以排序g_phb_name_index[],装载排序LookUpTable[]。
但是此时由于B卡电话簿还没有获取,Slave_g_phb_startup_before_sort = FALSE,因此就直接退出了。
获取B卡PHB entries
L4C2返回消息:XXX(隐藏),进入:
MTPNP_PFAL_ADN_HandleReadSuccessEntry()
store_index = mmi_phb_get_max_pb_sim_entries() + mmi_phb_get_max_pb_phone_entries() + info->record_index - 1;
可见:PhoneBook[]的存储位置是:Phone + SIM A + SIM B
把返回的信息加入到PhoneBook[]中
#if defined(__MMI_PHB_PINYIN_SORT__)
mmi_phb_util_make_pinyin_cache(store_index);
#endif
g_phb_name_index[PhoneBookEntryCount] = index;
PhoneBookEntryCount++;
当B卡的所有电话信息返回到MMI后,L4C2返回消息:XXX(隐藏),进入:
MTPNP_PFAL_ADN_HandleLoadFinish()
g_phb_cntx.refresh_list = MMI_PHB_ENTRY_REFRESH;
PhoneBookEntryCount = MTPNP_PFAL_ADN_GetMasterPhoneCount() + MTPNP_AD_ADN_SIM2GetUsedNumber();
设置一些B卡的PHB信息
if (MTPNP_AD_FDN_GetStatus())
MTPNP_PFAL_ADN_fdn_get_list_to_ram();
else
MTPNP_PFAL_ADN_after_fdn_get_list_to_ram();
MTPNP_PFAL_ADN_after_fdn_get_list_to_ram()
MTPNP_PFAL_ADN_Set_Is_PHB_Before_Sort(MTPNP_TRUE); 设置Slave_g_phb_startup_before_sort=TRUE
mmi_phb_startup_finish_final_step();
此时条件都满足,因此进入mmi_phb_sort_build_name_index();对g_phb_name_index[]排序,然后进入mmi_phb_ind_startup_finish_after_name_sort();装载LookUpTable[]并排序。
MTK6226-DS-PHB-SIMB-Load相关推荐
- apppath php,App.php
## 引导文件定义 > App.php执行应用文件位于`thinkphp/library/think/App.php`,调用`init()`初始化方法,具体内容如下: ``` private s ...
- 操作系统学习:内存分页与中断
本文参考书籍 1.操作系统真相还原 2.Linux内核完全剖析:基于0.12内核 3.x86汇编语言 从实模式到保护模式 ps:基于x86硬件的pc系统 内存分页机制 内存信息的获取 在进行内存分页之 ...
- UML类图关系大全 and 报表的基本用法
UML类图关系大全 1.关联 双向关联: C1-C2:指双方都知道对方的存在,都可以调用对方的公共属性和方法. 在 GOF的设计模式书上是这样描述的:虽然在分析阶段这种关系是适用的,但我们觉得它对于描 ...
- lvs集群基础及lvs-nat、dr、fwm实践
集群基础知识点: 集群类型:LB.HA.HP.DS LB:load balance,负载均衡集群,director:负载均衡器或者调度器,上游服务(upstream server),后端服务器称为re ...
- 我是如何学习写一个操作系统(三):操作系统的启动之保护模式
前言 上一篇其实已经说完了boot的大致工作,但是Linux在最后进入操作系统之前还有一些操作,比如进入保护模式.在我自己的FragileOS里进入保护模式是在引导程序结束后完成的. 实模式到保护模式 ...
- Extjs FormPanel/TabPanel/GridPanel混合
tabPanel包含两个FormPanel Ext.onReady(function () {var tabsDemo = new Ext.TabPanel({renderTo: Ext.getBod ...
- cmd指令大全指令_汇编语言常用指令大全
MOV 指令为双操作数指令,两个操作数中必须有一个是寄存器. MOV DST , SRC // Byte / Word 执行操作: dst = src 1.目的数可以是通用寄存器, 存储单元和段寄存器 ...
- Microsoft Visual Studio 2005中使用水晶报表
Microsoft Visual Studio 2005中使用水晶报表 沈阳 王智 OICQ:16994162 http://wangzhihome.51.net/ 2006-4-11 如有转贴请注明 ...
- 【原】hive 操作笔记
1.建表: hive> CREATE TABLE pokes (foo INT, bar STRING); hive> CREATE TABLE invites (foo INT, bar ...
- hive取mysql数据oracle数据,Hive安装过程(mysql/oracle存储元数据)详解
Hive安装过程(mysql/oracle存储元数据) 前置条件: - mysql数据库已经安装成功 - hadoop环境已经配置正确,且可以提供正常服务 说明: -由于资源有限,下面配置的hadoo ...
最新文章
- Tomca的启动与关闭
- Asp.Net Core异常处理整理
- 简化工作——我的bat文件
- 李洋疯狂C语言之求素数的方法
- java 开发环境的搭建
- Codeforces Round #445 div.2 D. Restoration of string 乱搞
- 日志系统实战(二)-AOP动态获取运行时数据
- 面试小题,传入6返回9,传入9返回6
- [转]struct和class的区别 观察者模式 https连接 点击button收到点
- 信息工程与计算机科学就业前景,信息与计算机科学就业前景及方向揭秘
- 家庭计算机如何共享打印机共享,win7系统怎么设置家庭组共享打印机
- Html画组织架构图
- Flutter 仿网易云音乐App
- 2023移动光猫H2-2超级密码获取教程(可改桥接)
- 【warm up】热身训练 的学习率设置
- 3年车载测试人员的经验总结分享
- 语音特征MFCC和PLP
- 代理服务器 (proxy) 的使用
- JS中的arguements到底是个啥?
- Android安全测试用例(网络资源学习记录)
热门文章
- MySQL 通过子查询批量插入数据
- 从 0 到 1 开发一个聊天通讯 服务 复盘总结
- deepin20如何换源_Deepin更换镜像源
- 备份android分区,安卓手机手动【备份+还原】分区
- 搜狗输入法中文状态下开启和关闭英文自动提示
- Algorithm Gossp (18) 最大公因数、最小公倍数、因式分解
- C++ opencv 识别火焰 (代码)
- win10加装机械硬盘卡_以微软的技术实力,win10还会出现硬盘100%占用的问题,为什么呢...
- 百度地图实现测量面积和测量距离功能
- win10 + Ubuntu 18.04.1 LTS (Bionic Beaver) 双系统的安装配置