- 1、本文档共317页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
MTK重要功能模块详述
开发归档
mtk学习开发归档01
1.1. 各模块功能Application layer: 包含用户定义的应用程序
Framework layer: 包含消息处理和事件操作。。
UI Layer: 包含ui相关联的函数
MMI Queue: 协议栈/L4将事件写入其中,MMI Task从中读取事件。
L4/NS Queue: MMI Task将事件写入其中,L4 task/Network Simulator从中读取事件。
MMI Task执行流程:
1. 等待消息事件发送给MMI 队列
2. MMI 队列中的消息由协议占发送
3. Framework层执行事件。
4. Framework层出发应用层的回调函数
应用层对接收事件做出回应
(以按键事件为例子)
1.1. L4 - MMI Task说明:
1. 协议占向MMI Queue中写入事件
2. MMI Task从MMI Queue中读取
Framework层为最新注册事件调用回调函数
应用层接收到按键事件并做出回应
1.1. MMI-L4
(应用程序发送播放声音请求)
说明:
1.应用层向framework层发送请求,使其向L4队列传送信息
2.Framework将消息写入L4队列
3.L4从L4队列中读取事件并播放请求的声音
1.1.1. Framework 层1. 为应用程序提供事件句柄API来管理事件句柄
键盘事件句柄API
协议事件句柄API
Misc.Handlers
- Exit Handlers
Set Exit handlers for particular screen
Execute Exit handler for current screen
Clear Crrent Exit Handler
2. History API
3. Queue API
- Create Queue
oslMsgqid OslIntCreateMsgQ(PS8 queue_name,U32 max_msg_size,U32 max_msgs)
- Write to Queue
OSLSTATUS OslIntWriteMsgQ(oslMsgqidmsgqid,void *msgPtr,U32 msgSize, OSLWAITMODE wait_mode)
- Read from Queue
OSLSTATUS OslIntReadMsgQ(oslMsgqidmsgqid,void *msgPtr, U32 *msgSize,OSLWAITMODE wait_mode)
1.1.2. UI 层2. 窗口函数
Function to enter : void ShowCategoryXScreen(argument list);
Function to exit : void ExitCategoryXScreen(void);
Function to get the size of history : BYTE* GetCategoryXHistory(BYTE* buffer);
Function to get the history : INT GetCategoryXHistorySize(void);
ShowCatagoryXXXScreen
注册事件句柄
预处理UI元素
- 调用重绘函数
RedrawCategoryXXXScreen
- 使用GDI函数绘制窗口
ExitCategoryXXXScreen
- 重新设置函数指针
其他操作依据不同的窗口而定
GetCategoryXXXHistorySize
- 用来返回gui buffer和input buffer的大小
GetCategoryXXXHistory
- 用来返回gui buffer和input buffer的数据
GetCategoryXXXData
- 用来返回input buffer
- 改变softkey labels
Void ChangeLeftSoftkey(STRING_ID s,IMAGE_ID i);
Void ChangeRightSoftkey(STRING_ID s, IMAGE_ID i);
- 改变softkey functions
Void SetLeftSoftkeyFunctio
文档评论(0)