多点触摸与单点触摸接口主要区别【转】

转自:http://blog.csdn.net/eleven_yy/article/details/7723079

上发单点触摸事件

input_report_key(input,ABS_MT_TRACKING_ID,0);

input_report_key(input, BTN_TOUCH, 1);

input_report_abs(input, ABS_MT_POSITION_X, ts->tc.x1);

input_report_abs(input, ABS_MT_POSITION_Y, ts->tc.y1);

input_sync(input);

上发多点触摸事件

input_report_key(input,ABS_MT_TRACKING_ID,0); // ABS_MT_TRACKING_ID 用来区分是第几指上报上来的坐标

input_report_key(input, BTN_TOUCH, 1);

input_report_abs(input, ABS_MT_POSITION_X, ts->tc.x1);

input_report_abs(input, ABS_MT_POSITION_Y, ts->tc.y1);

input_mt_sync(input);

 

input_report_key(input,ABS_MT_TRACKING_ID,1);

input_report_key(input, BTN_TOUCH, 1);

input_report_abs(input, ABS_MT_POSITION_X, ts->tc.x2);

input_report_abs(input, ABS_MT_POSITION_Y, ts->tc.y2);

input_mt_sync(input);

input_sync(input);

 

在 2.36.28/29 的 input 模块 中增加多点触摸的接口

 

增加多点触摸的命令定义:

linuxsrc/include/input.h

 

#define ABS_MT_TOUCH_MAJOR 0x30 /* Major axis of touching ellipse */

#define ABS_MT_TOUCH_MINOR 0x31 /* Minor axis (omit if circular) */

#define ABS_MT_WIDTH_MAJOR 0x32 /* Major axis of approaching ellipse */

#define ABS_MT_WIDTH_MINOR 0x33 /* Minor axis (omit if circular) */

#define ABS_MT_ORIENTATION 0x34 /* Ellipse orientation */

#define ABS_MT_POSITION_X 0x35 /* Center X ellipse position */

#define ABS_MT_POSITION_Y 0x36 /* Center Y ellipse position */

#define ABS_MT_TOOL_TYPE 0x37 /* Type of touching device */

#define ABS_MT_BLOB_ID 0x38 /* Group a set of packets as a blob */

#define ABS_MT_TRACKING_ID 0x39 /* Unique ID of initiated contact */

#define ABS_MT_PRESSURE 0x3a /* Pressure on contact area */

 

 

 

/*

* MT_TOOL types

*/

#define MT_TOOL_FINGER 0

#define MT_TOOL_PEN 1

 

在同一文件中增加相应的处理函数:

static inline void input_mt_sync(struct input_dev *dev)

{

input_event(dev, EV_SYN, SYN_MT_REPORT, 0);

}

在linuxsrc/driver/input/input.c 中增加定义

/*

* EV_ABS events which should not be cached are listed here.

*/

static unsigned int input_abs_bypass_init_data[] __initdata = {

ABS_MT_TOUCH_MAJOR,

ABS_MT_TOUCH_MINOR,

ABS_MT_WIDTH_MAJOR,

ABS_MT_WIDTH_MINOR,

ABS_MT_ORIENTATION,

ABS_MT_POSITION_X,

ABS_MT_POSITION_Y,

ABS_MT_TOOL_TYPE,

ABS_MT_BLOB_ID,

ABS_MT_TRACKING_ID,

ABS_MT_PRESSURE,

0

};

时间: 2024-10-21 23:42:47

多点触摸与单点触摸接口主要区别【转】的相关文章

5.触摸touch,单点触摸,多点触摸,触摸优先和触摸事件的吞噬

 1 触摸 Coco2dx默认只有CCLayer及其派生类才有触摸的功能. 2 单点触摸 打开触摸开关和触摸方式 setTouchEnabled(true); setTouchMode(kCCTouchesOneByOne); Cocos2dx 对触摸分三布来处理.分是是点触,移动,离开.或是中间被打断.其功能皆有相应的virtual 函数进行override 的. virtual bool ccTouchBegan(CCTouch *pTouch,CCEvent *pEvent); vir

Cocos2d-x实例:单点触摸事件

为了让大家掌握Cocos2d-x中的事件机制下面我们以触摸事件为例使用事件触发器实现单点触摸事件.该实例如图8-3所示场景中有三个方块精灵显示顺序如图8-3所示拖拽它们可以移动它们事件响应优先级是按照它们的显示顺序. 下面我们再看看具体的程序代码首先看一下HelloWorldScene.h文件它的代码如下 #ifndef __HELLOWORLD_SCENE_H__ #define __HELLOWORLD_SCENE_H__ #include "cocos2d.h" typedef

Android基础知识之单点触摸_Android

相对于多点触摸,单点触摸还是很简单的. 新建一个工程,先看看布局文件: <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="

Android基础知识之单点触摸

相对于多点触摸,单点触摸还是很简单的. 新建一个工程,先看看布局文件: <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="

android 多点和单点触摸的区别

问题描述 android 多点和单点触摸的区别 当我使用双指缩放view,单指触摸提示显示的坐标.会出现双指缩放在抬起的时候,如果不是同时离开屏幕,那么就会触发单指触摸事件.请问如何在双指缩放时不触发单指事件? 解决方案 android多点触摸事件的一些事Android多点触摸事件捕获 解决方案二: 你缩放的时候记录一下按下的是几个点,几点触摸,抬起的时候判断一下,如果这各个点都抬起了,在结束缩放过程!

Cocos2d-x3.2单点触摸

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 //GameScene.h #include "cocos2d.h" USING_NS_CC;   class GameScene : public cocos2d::Layer { public:     static cocos2d::Scene* createScene();           virtual bool init();       virtual bool onTou

Cocos2d-x开发实例:单点触摸事件

下面我们通过一个实例详细了解一下层中单点触摸事件的实现过程.感受一下它的缺点和优点.该实例场景如下图所示场景中有两个方块精灵我们可以点击和移动它们. 下面我们看看HelloWorldScene.cpp具体的实现代码如下 bool HelloWorld::init() { if( !Layer::init() ) { returnfalse; } ...... setTouchEnabled(true); //设置为单点触摸 setTouchMode(Touch::DispatchMode::ON

webservice接口开发-Webservice开发单点登录接口怎么实现,有具体代码实例更好

问题描述 Webservice开发单点登录接口怎么实现,有具体代码实例更好 现在要实现一个单点登录功能的接口,请问该如何实现这个功能?使用webservice开发的接口来实现它. 解决方案 既然是两个工程,那就一个做客户端,一个做服务端了,服务端可以把服务发布出来,客户端进行调用,就可以了啊,分布式开发.. 解决方案二: 你去东软帝国这个网站看看,里面有一个,不值得是不是基于webservice的

单点登录接口设计

问题描述 我这里要开发项目,要登陆远程一个公共站点A网址,在那个页面进行了数据id和pwd后,验证成功后跳转我开发的页面,返回来的时候有用户名(用户名怎么来的?)和一些个人信息?现在远程站点给我一个单点登录接口设计文档,这里的过程是怎么样的?有谁可说的详细些,头大来着! 解决方案 解决方案二:不同的人开发的单点登录都是不一样的,问我们没结果的.人家文档肯定说清楚.明白怎么作了.要不然要这文档干嘛?解决方案三:>>"在那个页面进行了数据id和pwd后"你还是回去重念语文比较好