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.c和sink_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; 以上三种修改方式均可以实现根据项目需求自定义扩展。 声明:此篇为我的网站原创文章,转载请标明出处链接:http://tengtaijishu.com/h-nd-20.html
|