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

2019-04-02 19:09

r = clp[384+((y1 + c1)>>16)];

*(unsigned short*)d1 = ((r>>3)<<11) | ((g>>2)<< 5) | (b>>3); d1 += 2;

//down-left

y2 = tab_76309[*py2++]; b = clp[384+((y2 + c4)>>16)]; g = clp[384+((y2 - c2 - c3)>>16)]; r = clp[384+((y2 + c1)>>16)];

*(unsigned short*)d2 = ((r>>3)<<11) | ((g>>2)<< 5) | (b>>3); d2 += 2;

//up-right

y1 = tab_76309[*py1++]; b = clp[384+((y1 + c4)>>16)];

g = clp[384+((y1 - c2 - c3)>>16)]; r = clp[384+((y1 + c1)>>16)];

*(unsigned short*)d1 = ((r>>3)<<11) | ((g>>2)<< 5) | (b>>3); d1 += 2;

//down-right

y2 = tab_76309[*py2++]; b = clp[384+((y2 + c4)>>16)]; g = clp[384+((y2 - c2 - c3)>>16)]; r = clp[384+((y2 + c1)>>16)];

*(unsigned short*)d2 = ((r>>3)<<11) | ((g>>2)<< 5) | (b>>3); d2 += 2;

}

d1 += doubWidth; d2 += doubWidth; py1 += width; py2 += width; } } #endif

9 触摸屏的支持

21

mmi_pen_editor_pen_down_handler

wgui_general_pen_down_hdlr

wgui_touch_screen.c

mmi_pen_editor_setup_input_box

注册pen down handler (mmi_pen_editor_pen_down_handler)-

mmi_pen_editor_pen_down_handler –〉处理PEN_EDITOR_CONTROL控件集,如果没有,则调用通用处理函数:

void wgui_general_pen_down_hdlr(mmi_pen_point_struct point),在其中查找控件集合,处理控件(主义,这里的控件时显示控件,在draw manager里定义,不同于上面的pen 控件) 查找当前的screen,并且查找其中的控件

void wgui_general_pen_up_hdlr(mmi_pen_point_struct point)

在列表里面,点击某一项,触摸屏会如下处理: wgui_general_pen_list_menu_hdlr

但是这个函数每次更换high light的时候,都会被重置,因此需要在每次high light的时候重新设置。

wgui_register_list_item_selected_callback()

同样,九宫格的处理是在下面的函数:

wgui_general_pen_matrix_menu_hdlr

只需要在enternewscreen时,使用wgui_register_matrix_item_selected_callback_all,就可以了,不需要每次high light都处理。

在TouchScreen.c module里面

typedef void (*mmi_pen_hdlr) (mmi_pen_point_struct pos); typedef struct {

S16 x; S16 y;

} mmi_pen_point_struct;

void mmi_pen_register_down_handler(mmi_pen_hdlr) void mmi_pen_register_up_handler(mmi_pen_hdlr pen_fp) void mmi_pen_register_move_handler(mmi_pen_hdlr pen_fp) void mmi_pen_register_long_tap_handler(mmi_pen_hdlr pen_fp)

22

10 Status Bar

statusIconRes.h 添加image id wgui_status_icons.h 添加 status id

wgui_status_icons.c 向MMI_status_icon MMI_status_icons[MAX_STATUS_ICONS]数组添加status 项

bmp图片13x13,放在\\MainLCD\\idleScreen\\Statusicons

11 网络

网络操作中的打开网络,创建socket,DNS以及关闭网络都与2各ID有关:

Account ID:数据账户的位序,在数据账户中有2个账户,GSM和GPRS,GSM有10个选项,从0到9,GPRS账户从10开始,例如:我们使用GPRS账户中的第四项作为imiChat的账户,则这个ID为13。(注:在07B双卡中, AccountID还需要使用

always_ask_encode_data_account_id函数,针对不同的卡进行处理,返回的ID才能使用,打开网络时使用AccountID,其他的Socket和DNS操作,以及关闭网络,都需要使用转换的AccountID)

Mode ID:这个ID是指该网络由哪个task操作的,如果想让网络层在单独的Task里面跑,则可以制定自定义的task。

打开网络:主要是设置账户的APN,向MOD_L4C发送 PRT_MMI_PS_SET_GPRS_DATA_ACCOUNT_REQ,需要传入AccountID,ModeID和账户的名称以及APN名称(例如CMNET或者CMNET)。

DNS:soc_gethostbyname,需要传入AccountID,ModeID

创建socket:soc_create

关闭网络:

soc_win32.c

kal_int8 soc_create(kal_uint8 domain, kal_uint8 type, kal_uint8 protocol, kal_uint16 mod_id, kal_uint32 nwk_account_id) 创建一个socket

23

kal_int8 soc_setsockopt(kal_int8 s, kal_uint16 option, kal_uint8 *val, kal_uint8 val_size) 设置socket的属性

1. 向MOD_L4C设置网络

2. DNS:MMI向LC4和TCPIPmodule发送消息,也不能简单地换module

3. soc_create用MOD

send:MMI-〉TCPIP

close:MMI-〉TCPIP detach

close ind:TCPIP->SOCK close_ind

MMI Task Stack Size: 5698

如果上网操作变成拨打电话,则是APN帐户设置不对,有次因为把13(第四个帐户再加9),直接设置成了4,导致出了问题

数据帐户设置 EntryDTCNTGPRSList

调节音量

EntryScrProfilesCommonVolumeLevel

察看jpeg图片

mmi_imgview_view_image_hdlr_ext

23网络与25不同

23关闭网络使用:soc_app_auto_deactivate_req(mod, account, 0),该函数会发送消息 MOD_MMI -> MOD_ABM:MSG_ID_SOC_ABM_DEACTIVATE_REQ

然后在处理后,MOD_ABM -> MOD_SOC:MSG_ID_SOC_AMB_DEACTIVATE_CNF

cmwap代理 HTTP/1.1 200 OK

Content-Type: text/vnd.wap.wml; charset=UTF-8 Content-Length: 804

Date: Wed, 20 Jan 2010 04:55:19 GMT

24

Connection: Close

Proxy-Connection: Close

Via: HTTP/1.1 SHSH-PS-WAP2-GW18(infoX-WISG, Huawei Technologies)

Server: WebLogic Server 8.1 SP3 Tue Jun 29 23:11:19 PDT 2004 404973 with CRs:

wml

PUBLIC

\

WML

1.1//EN\

\

href=\TN=2SQMQMZ6&IMSI=46002\

关闭网络的地方,再08A版本后,使用的是:cbm_release_bearer

12 SMS

smsmsg.c

void mmi_frm_sms_new_sms_ind(void *inMsg)

void mmi_frm_sms_delete_sms(PsFuncPtrU16 callback, module_type mod_src, U8 type, U16 index)

联通和移动编码不同

拔电池和关机是有区别的,拔电池,与基站的联系并没有断开,而关机会断开的,因此,拔电池再重新开机时会收到短消息,会导致异常的。

void miiaux_dual_send_sms_req(int slave, const char* number, const char* content, miipts_send_sms_cb cb)

25


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

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

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

马上注册会员

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