深圳市腾泰技术有限公司

qcc512x qcc302x qcc303x earbud按键多击功能实现方式

发表时间:2020-02-02 12:15



qcc512x-qcc302x earbud按键多击功能实现方式



qcc512x-qcc302x earbud按键部分功能实现不如高通Sink工程做的完善,earbud仅仅支持如下InputEventAction_t操作,Sink工程目前支持ButtonsTime_t类型。由于TWS耳机结构较小,大多使用一个按键,为了实现更多的功能,大部分情况下均需要单击,双击,三击甚至四击,五击等操作。本文主要讲解一下实现的几种思路。


由于Sink工程按键操作比较完善,所以可以移植Sink工程按键部分。这是第一种思路,这个移植需要对高通平台比较熟悉。主要移植sink_buttons.csink_buttonmanager.c以及对应的头文件。移植后还可以根据实际需求在针对扩展。

修改XML文件,识别按键按下和抬起,根据按下和抬起次数和时间间隔来自定义实现多击功能。抬起后规定时间内没有再次按下即为本次按键动作结束。主要修改UI部分逻辑实现。

扩展InputEventAction_t,增加三击,四击等操作。主要修改lib下的文件。

typedef enum

{

    ENTER,

    HELD,

    RELEASE,

    SINGLE_CLICK,

    HELD_RELEASE,

    DOUBLE_CLICK

} InputEventAction_t;

typedef enum ButtonsTimeTag

{

    B_INVALID,

    B_SHORT,

    B_LONG,

    B_VERY_LONG,

    B_DOUBLE,

    B_REPEAT,

    B_LOW_TO_HIGH,

    B_HIGH_TO_LOW,

    B_SHORT_SINGLE,

    B_LONG_RELEASE,

    B_VERY_LONG_RELEASE,

    B_VERY_VERY_LONG,

    B_VERY_VERY_LONG_RELEASE,

    B_TRIPLE,

    B_HOLD

} ButtonsTime_t;

以上三种修改方式均可以实现根据项目需求自定义扩展。


分享到:
手机号码:17150309559
联系邮箱:tws@tengtaijishu.com
联系地址:广东省深圳市龙华区民治街道彩悦大厦510B

微信号:tengtaijishu02


微信公众号:tengtaijishu