MTK 移植泰文输入法

1.移植zi输入法
1.1 在文件..\make\XXX_GPRS.mak中 讲输入方式改为MMI_ZI
XXX_LANGUAGE = EN_SM_THAI 
INPUT_METHOD =MMI_XI
1.2在MMI_feature.h 打开相应的ZI语言输入法的宏开关,
#if defined(CFG_MMI_LANG_THAI) && ((CFG_MMI_LANG_THAI == __ON__)||(CFG_MMI_LANG_THAI == __AUTO__))
#ifndef __MMI_LANG_THAI__
#define __MMI_LANG_THAI__
#endif
#endif
在MMI_featureswithXXXX.h中讲泰文语言宏开关打开
1.3添加zi代码
将zi目录增加到目录工程中
vendor\InputMethod
1.4增加zi的编译选项
make\zi
包含文件有zi.def zi.inc zi.lis zi.pth
1.5增加zi输入法的库文件
make\option.mak
ifeq ($(strip $(INPUT_METHOD)),MMI_ZI)
CUSTOM_COMMINC += vendor\InputMethod\ZI\project\$(strip $(INPUT_METHOD_BASE))\v7_official\inc
COMPOBJS += vendor\InputMethod\ZI\project\$(strip $(INPUT_METHOD_BASE))\v7_official\lib\zi8clib.a
CUS_REL_OBJ_LIST += vendor\InputMethod\ZI\project\$(strip $(INPUT_METHOD_BASE))\v7_official\lib\zi8clib.a
CUS_INPUTMETHOD_BASE = vendor\InputMethod\ZI\project\$(strip $(INPUT_METHOD_BASE))\v7_official
endif 2。移植捷通手写泰文输入法
2.1.在文件..\make\XXX_GPRS.mak中配置版本
涉及 XXX_LANGUAGE = EN_SM_THAI 
USE_JIETONG_HANDWRITING = TRUE //手写识别 打开这个宏的话,一定要把HAND_WRITING设为MMI_HANWANG _DEMO
HAND_WRITING =MMI_HANWANG _DEMO
打开所有的触摸屏支持
TOUCH_PANEL_SUPPORT = MT6301B
TOUCH_PANEL_SHORTCUT_SUPPORT = TRUE //TRUE for touch panel size need to be larger than LCD size
2.2 option.mak 增加相应的库
ifeq ($(strip $(HAND_WRITING)),MMI_HANWANG_DEMO)
COM_DEFS += __MMI_HANWANG__ __MMI_HANWANG_DEMO__
COMPLIST += hanwang
ifeq ($(strip $(USE_JIETONG_HANDWRITING)),TRUE)
COM_DEFS += __USE_JIETONG_HANDWRITING__ 
COMPOBJS += vendor\handwriting\hanwang\v1_official\lib\HZRecog.a
CUS_REL_OBJ_LIST += vendor\handwriting\hanwang\v1_official\lib\HZRecog.a  else
COMPOBJS += vendor\handwriting\hanwang\v1_demo\lib\HWRE_MTL_OEM.a
COMPOBJS += vendor\handwriting\hanwang\v1_demo\lib\thaihw.a  COMPOBJS += vendor\handwriting\hanwang\v1_demo\lib\arabichw.a
CUS_REL_OBJ_LIST += vendor\handwriting\hanwang\v1_demo\lib\HZRecog.a
CUS_REL_OBJ_LIST += vendor\handwriting\hanwang\v1_demo\lib\hw.a
CUS_REL_OBJ_LIST += vendor\handwriting\hanwang\v1_demo\lib\hw.lib
CUS_REL_OBJ_LIST += vendor\handwriting\hanwang\v1_demo\lib\arabichw.a
CUS_REL_OBJ_LIST += vendor\handwriting\hanwang\v1_demo\lib\arabichw.lib CUS_REL_OBJ_LIST += vendor\handwriting\hanwang\v1_demo\lib\HWRE_MTL_OEM.lib
CUS_REL_OBJ_LIST += vendor\handwriting\hanwang\v1_demo\lib\HWRE_MTL_OEM.a
CUS_REL_OBJ_LIST += vendor\handwriting\hanwang\v1_demo\lib\thaihw.a
CUS_REL_OBJ_LIST += vendor\handwriting\hanwang\v1_demo\lib\thaihw.lib
CUS_REL_OBJ_LIST += vendor\handwriting\hanwang\v1_demo\lib\hw.dll
CUS_REL_OBJ_LIST += vendor\handwriting\hanwang\v1_demo\lib\hws.lib
endif CUSTOM_COMMINC += vendor\handwriting\hanwang\v1_demo\inc  endif 2.3参照第三方提供的说明文档,讲文件增加到相应的文件位置 输入法的接口在hanwanginterface.c  mmi_ime_hand_writing_initialize(),增加捷通的方法就行了, #if defined(__USE_JIETONG_HANDWRITING__) 
  long lops;
FS_HANDLE fp;
switch (hw_type)
{
case IMM_HANDWRITING_TYPE_THAI: fp=FS_Open(L"C:\\jietong\\thai_jHWRDIC.DAT",FS_READ_ONLY);
break;
case IMM_HANDWRITING_TYPE_ARABIC:
fp=FS_Open(L"C:\\jietong\\Arabic_jHWRDic.dat",FS_READ_ONLY);
break;
//增加多国语言方法一样。 
default:
fp=FS_Open(L"C:\\jietong\\zh_jHWRDIC.DAT",FS_READ_ONLY);
//默认是中文字典
}  FS_Seek(fp,0,FS_FILE_END);  FS_GetFilePosition(fp,(UINT *)&lops);
hand_writing_data=(BYTE*)malloc(lops);
if(hand_writing_data==NULL)
{
return;}
FS_Seek(fp,0,FS_FILE_BEGIN);
FS_Read(fp,hand_writing_data,lops,NULL);
FS_Close(fp);
HZInitCharacterRecognition(hand_writing_data); #endif  剩下的就是自己编译调试了。

 

2010-2-2

于上海

转载于:https://www.cnblogs.com/jerryzong/archive/2012/03/31/2427205.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/350084.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

java中无法推断类型参数_Java中的推断异常

java中无法推断类型参数借用和窃取其他语言的概念和想法总是很高兴的。 Scala的Option是我真正喜欢的一个主意,因此我用Java编写了一个实现。 它包装了一个可能为null或不为null的对象,并提供了一些可用于某种分类功能的方法。 例如,isDefine…

H3C 三种生成树协议特性的比较

转载于:https://www.cnblogs.com/fanweisheng/p/11153361.html

使用HazelCast进行休眠缓存:基本配置

以前,我们对JPA缓存,机制以及hibernate提供的内容进行了介绍 。 接下来是一个使用Hazelcast作为二级缓存的休眠项目。 为此,我们将在JPA中使用一个基本的spring boot项目。 Spring Boot使用休眠作为默认的JPA提供程序。 我们的设置将非常接…

mysql事务实战_mysql事务隔离级别详解和实战

A事务做了操作 没有提交 对B事务来说 就等于没做 获取的都是之前的数据但是 在A事务中查询的话 查到的都是操作之后的数据没有提交的数据只有自己看得到,并没有update到数据库。查看InnoDB存储引擎 系统级的隔离级别 和 会话级的隔离级别:mysql> sele…

微云 linux_编年史与微云

微云 linux总览 我面临的一个常见问题是: 如果是单个作者,多个读者,如何缩放基于Chronicle的系统。 尽管有解决此问题的方法,但很有可能根本不会有问题。 微云 这是我用来描述单个线程来完成当前由多个服务器完成的工作的术语。 …

H3C 计算子网内可用主机地址数

转载于:https://www.cnblogs.com/fanweisheng/p/11153665.html

mysql中两次排序_MySQL中的两种排序方式: index和filesort

index :通过有序索引顺序扫描直接返回有序数据,不需要额外的排序,操作效率较高。filesort:通过对返回数据进行排序,filesort 并不代表通过磁盘文件排序,而是说明进行了一个排序操作,至于排序操作…

Java命令行界面(第2部分):args4j

在上一篇文章中 ,我研究了如何使用Apache Commons CLI在Java应用程序中解析命令行参数。 在本文中,我将使用另一个库args4j进行相同的操作。 args4j采用了一种不同于Commons CLI的方式来指定Java应用程序应期望的命令行参数。 尽管Commons CLI期望代表选…

mysql my.cnf在哪里_my.cnf配置文件在哪

my.cnf配置文件在linux上是位于路径“/etc/my.cnf”下,在window上则位于安装目录的根目录下;可以使用命令“mysql --help”查看关于MYSQL对应配置文件“my.cnf”搜索顺序。一般linux上都放在 /etc/my.cnf ,window 上安装都是默认可能按照上面的路径还是没…

深入学习Mybatis框架(二)- 进阶

1.动态SQL 1.1 什么是动态SQL&#xff1f; 动态SQL就是通过传入的参数不一样,可以组成不同结构的SQL语句。 这种可以根据参数的条件而改变SQL结构的SQL语句,我们称为动态SQL语句。使用动态SQL可以提高代码重用性。 1.2 XML方式的实现 1.2.1 需要使用到的标签 <if> 用于判…

近似线性依靠matlab_不要仅仅依靠单元测试

近似线性依靠matlab当您构建一个复杂的系统时&#xff0c;仅仅测试组件是不够的。 这很关键&#xff0c;但还不够。 想象一下一家汽车厂生产和进口最高质量的零件&#xff0c;但组装好汽车后再也没有启动发动机。 如果您的测试用例套件几乎不包含单元测试&#xff0c;那么您将永…

戏说 .NET GDI+系列学习教程(三、Graphics类的方法的总结)

转载于:https://www.cnblogs.com/WarBlog/p/11157395.html

从关系数据库到Elasticsearch的索引数据– 1

Elasticsearch提供强大的搜索功能&#xff0c;并支持数据的分片和复制。 因此&#xff0c;我们希望将数据库中可用的数据索引到Elasticsearch中。 有多种方法可以将数据索引到Elasticsearch中&#xff1a; 使用Logstash将源设置为DB&#xff0c;将接收器设置为Elasticsearch&…

mysql 求bit 某位为1_mysql按位的索引判断值是否为1

DELIMITER $$DROP FUNCTION IF EXISTS value_of_bit_index_is_true$$/*计算某个数字的某些索引的位的值是否都为1&#xff0c;索引类似1,2,3,4*/CREATE FUNCTION value_of_bit_index_is_true(number INT, idxies VARCHAR(50)) RETURNS INT(11)BEGIN/*将1,2,3,4,5,6这样的字符串…

python math.asin

import mathmath.asin(x) x : -1 到 1 之间的数值。如果 x 是大于 1&#xff0c;会产生一个错误。 #!/usr/bin/pythonimport math print "asin(0.64) : ", math.asin(0.64)print "asin(0) : ", math.asin(0)print "asin(-1) : ", math.asin(-1)p…

消息队列mysql redis那个好_Redis与RabbitMQ作为消息队列的比较

简要介绍RabbitMQRabbitMQ是实现AMQP(高级消息队列协议)的消息中间件的一种&#xff0c;最初起源于金融系统&#xff0c;用于在分布式系统中存储转发消息&#xff0c;在易用性、扩展性、高可用性等方面表现不俗。消息中间件主要用于组件之间的解耦&#xff0c;消息的发送者无需…

mysql 添加远程连接_为 mysql 添加远程连接账户

1、以管理员身份登录mysqlmysql -u root -p2、选择mysql数据库use mysql3、创建用户并设定密码create user [email protected] identified by ‘123456‘4、使操作生效flush privileges5、使操作生效flush privileges6、用新用户登录mysql -u test -p允许用户从远程访问数据库的…

包装类型与包装类别_包装的重要性

包装类型与包装类别我记得大约15年前开始学习Java的时候。 我读到了很多有关“包装”和“命名空间”的东西&#xff0c;但我完全不了解。 可悲的是&#xff1a;虽然包装的某些方面几乎为行业中的每个人所了解&#xff0c;但其他方面却不是。 因此&#xff0c;让我们看一下哪些软…

isinstance和issubclass

目录 一、isinstance与type二、issubclass一、isinstance与type 在游戏项目中&#xff0c;我们会在每个接口验证客户端传过来的参数类型&#xff0c;如果验证不通过&#xff0c;返回给客户端“参数错误”错误码。 这样做不但便于调试&#xff0c;而且增加健壮性。因为客户端是可…

animation动画不生效_你可能不知道的Animation动画技巧与细节

引言在 web 应用中&#xff0c;前端同学在实现动画效果时往往常用的几种方案&#xff1a;css3 transition / animation - 实现过渡动画setInterval / setTimeout - 通过设置一个间隔时间来不断的改变图像的位置requestAnimationFrame - 通过一个回调函数来改变图像位置&#xf…