MTK开发参考MTK - Dev - Guide(2)

2019-04-02 19:09

2 添加资源

所有的字符串,图片,声音资源最终都是以二进制数组的形式存在于程序中的。

2.1 定义ID范围

Plutommi\\mmi\\inc\\mmidatatype.h

首先定义始末范围

#define RESOURCE_BASE_RANGE(name, count)

\\

RESOURCE_BASE_##name, \\

RESOURCE_BASE_##name##_END = RESOURCE_BASE_##name + count – 1

Typedef enum { …

#if defined(__PDK_DEMO__)

RESOURCE_BASE_RANGE(PDK_DEMO, 100), #endif

} RESOURCE_BASE_ENUM;

typedef struct {

char *appname;

unsigned short min; // value;

unsigned short max; } mmi_resource_base_struct;

#define RESOURCE_BASE_TABLE_BEGIN() \\ const mmi_resource_base_struct g_mmi_resource_base_table[] = {

#define RESOURCE_BASE_TABLE_ITEM(ENUM_NAME) \\

{#ENUM_NAME, \\

(U16) RESOURCE_BASE_##ENUM_NAME, \\

(U16) RESOURCE_BASE_##ENUM_NAME##_END}, #define RESOURCE_BASE_TABLE_END() \\

};

6

然后定义应用程序使用的宏定义

#if defined(__PDK_DEMO__)

#define PDK_DEMO_BASE ((U16) RESOURCE_BASE_PDK_DEMO) #define PDK_DEMO_BASE_MAX ((U16) RESOURCE_BASE_PDK_DEMO_END) RESOURCE_BASE_TABLE_ITEM(PDK_DEMO) #endif //__PDK_DEMO__

2.2 添加应用程序

添加应用程序

Add new application

Plutommi\\mmi\\inc\\mmidatatype.h

typedef enum { …

APP_MIIPTS, …

} APPLICATION_DEPLOY;

#define ADD_APPLICATION(nId, pName, nMinId, nMaxId) \\

AddApp(nId, pName, nMinId, nMaxId)

void PopulateResData(void) { …

ADD_APPLICATION(APP_MIIPTS, \T\

… };

添加字符串

添加图片

添加菜单

7

2.3 添加菜单

define a new menu item in a new file ?plutommi\\mmi\\inc\\menuid\\miiptsmenuitems.h‘ MENU_ID_MIIPTS_APP,

include our app-menu in message menu

PopulateMessagesResData()?

ADD_APPLICATION_MENUITEM(MESSAGES_MENU_SMS_MENUID, …

MENU_ID_MIIPTS_APP, .. );

we add our appmenu into the system message menu. ADD_APPLICATION_MENUITEM((MENU_ID_MIIPTS_APP, MAIN_MENU_MESSAGES_MENUID, 0, SHOW, MOVEABLEACROSSPARENT|SHORTCUTABLE, STR_ID_MIIPTS_APP_NAME, 0));

2.4 Add new string

资源id在plutommi\\Customer\\ResGenerator文件夹里面

GetImageRaw读取资源ReadRes.c文件中

2.5 图片资源

gdi_image_draw_id

GetImage:从资源id中获取buffer GetImageTheme:取theme相关的图像 GetImageRaw:

GetImageFromIndex:

gdi_image_codec_draw: gdi_image_parse_info

gdi_image_parse_resource_internal: gdi_image_gif_draw_handler

8

1,

ImageIdMap:

资源内部格式:8位控制信息,0位type,1为帧数,

InitializeResourceVariables.c:初始化资源相关的变量

mtk_nCustImageNames:resource generator产生的图像的数组

CustImgDataHW.h:中就是所有的图像数组

2.6 编译资源

AlmInitRTCPwron? PopulateResData

#if defined(__PDK_DEMO__) {

extern void populate_pdk_demo_res(void); populate_pdk_d emo_res(); }

#endif //__PDK_DEMO__

这段代码,只有resgen时候才会用到。

编译资源时,会把Res_MMI目录下的所有源文件拷贝到工作目录,然后编译,其他的源文件不编译,所以需要把资源生成文件发在该目录下。

9

3 NVRAM

Default值在文件nvram_common_config.c中定义

目前, 我的format之后,值不是0,而是FF,为什么?因为Flash的默认情况下都是1,写操作是将某些位置为0,这是由Flash的原理决定的。

size必须为偶数 index是从1开始

读可以size内的任意大小,写必须为声明的大小 必须在nvram_user_config.c中定义新的nvram 项

锐锦的nvram定义在nvram_user_config.c中

联桥的定义在

属性:NVRAM_CATEGORY_USER

NVRAM_RESERVED_VALUE 这2条很重要

MAX_PHB_SIM_ENTRY = 250 MAX_PHB_PHONE_ENTRY = 200

初始化的时候,malloc函数还没有初始化? 我觉得有些不可能

nvram每项数据最大不能超过2k

1. Add new lid to nvram_lid_commapp_enum in

\\custom\\common\\PLUTO_MMI\\nvram_common_defs.h

code example: typedef enum {

NVRAM_EF_ADC_LID = NVRAM_LID_COMMAPP_BEGIN, …

NVRAM_EF_RAC_PREFERENCE_LID,

NVRAM_EF_MIIPTS_MSG_LID, //our code /* Add LID with its compile optoin in the tail comment */

NVRAM_EF_LAST_LID_COMMAPP

10


MTK开发参考MTK - Dev - Guide(2).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:中文系本科论文设计

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: