minitouch点击原理

minitouch可以实现touch事件的模拟,其touch注入原理和setevent命令类似,都是写input节点来插入input数据。交互方面,通过socket来和调用者通信,接受touch指令。

https://github.com/openstf/minitouchicon-default.png?t=M666https://github.com/openstf/minitouch

minitouch/minitouch.c at master · openstf/minitouch · GitHub

处理代码片段


static int type_b_touch_move(internal_state_t* state, int contact, int x, int y, int pressure)
{
  if (contact >= state->max_contacts || !state->contacts[contact].enabled)
  {
    return 0;
  }

  WRITE_EVENT(state, EV_ABS, ABS_MT_SLOT, contact);

  if (state->has_touch_major)
    WRITE_EVENT(state, EV_ABS, ABS_MT_TOUCH_MAJOR, 0x00000006);

  if (state->has_width_major)
    WRITE_EVENT(state, EV_ABS, ABS_MT_WIDTH_MAJOR, 0x00000004);

  if (state->has_pressure)
    WRITE_EVENT(state, EV_ABS, ABS_MT_PRESSURE, pressure);

  WRITE_EVENT(state, EV_ABS, ABS_MT_POSITION_X, x);
  WRITE_EVENT(state, EV_ABS, ABS_MT_POSITION_Y, y);

  return 1;
}

minitouch的使用不是太方便,从minitouch的通信方式可以受到启发,我们也可以仿照input命令,来实现一个上层调用接口,input命令没有处理多点事件,这里处理一下就可以了,然后通过injectInputEvent来进行事件的注入。

参考资料:

MiniTouch - 简书

https://www.csdn.net/tags/NtjaQgysNzQ3NTktYmxvZwO0O0OO0O0O.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值