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 TaskMMI Queue中读取

Framework层为最新注册事件调用回调函数

应用层接收到按键事件并做出回应

1.1.       MMI->L4

 

(应用程序发送播放声音请求)

说明:

1.应用层向framework层发送请求,使其向L4队列传送信息

2.Framework将消息写入L4队列

3.L4L4队列中读取事件并播放请求的声音

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 bufferinput buffer的大小

GetCategoryXXXHistory

-          用来返回gui bufferinput 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 SetLeftSoftkeyFunction(void(*f)(void),KEY_EVENT_TYPE k);

Void SetRightSoftkeyFunction(void(*f)(void),KEY_EVENT_TYPE k);

-          在菜单中获得高亮显示项

INT GetHighlightedItem(void);

-          设置高亮显示效果

Void SetHighlightedItem(INT item_index);

-          注册高亮显示句柄

Void RegisterHighlightHandler(void(*fptr)(INT item_index));

-          移除高亮显示句柄

Void ClearHighlightHandler(void);

书写应用程序

-          资源

PixtelDataTypes.h中定义APP_BASE

定义各种资源 ID

Screens

Strings

Images

Menu Items (GlobalMenuItem.h)

书写资源生成函数

Resource Generator(PopulateRes.c)调用

使用宏定义ADD_APPLICATION_XXX

修改ResGenerator”Makefile””readexcel.c”

-          Make file

make file中添加关键宏定义

MMI_features$Proj.h中添加feature macro

添加库文件(COMPOBJS)

添加编译列表

    创建目录 in mcu/make

    添加目录名到CUS_REL_SRC_COMP

-          Initialization

初始化函数

1.       InitializeAll(Not all)

在现有工程主要工作:

<1.> ADD_APPLICATION (AddApp函数)framework中来添加新的

    应用程序。

    void AddApp(U32 nId, S8 *pName, U16 nMinId, U16 nMaxId)

<2.> PopulateXXX :为各个应用程序加载其各种资源(字符串,图片,菜单项)

2.       初始化各种事件句柄

高亮显示句柄

协议事件句柄

-          Entry and Exit

标准入口函数

调用执行当前的退出句柄

获得当前窗口的GUI buffer

获得窗口显示元素

注册高亮显示句柄

调用窗口函数绘制窗体

设置退出句柄

标准出口函数

创建History 节点

将入口函数保存入History节点中

填充输入bufferHistory 节点中的GUI buffer

保存history

高亮句柄

改变左键和右键句柄

 

 

 

 

 

你可能感兴趣的:(api,function,application,buffer,MTK,initialization)