oplus: synaptics_hbp: Assign unique keycodes to every gesture

Based on Luk1337's original work for touch v2

Co-authored-by: LuK1337 <priv.luk@gmail.com>
Change-Id: I560558bfedadce79bc8e9456db40924aa08c04d0
This commit is contained in:
Maitreya25
2025-02-21 17:13:21 +00:00
committed by Bruno Martins
parent bd92ad199e
commit f684185286
3 changed files with 8 additions and 5 deletions

View File

@@ -843,9 +843,9 @@ static void syna_dev_report_input_events(struct syna_tcm *tcm)
input_report_key(input_dev, KEY_WAKEUP, 0);
input_sync(input_dev);
} else {
input_report_key(input_dev, KEY_F4, 1);
input_report_key(input_dev, KEY_GESTURE_START + touch_data->gesture_type, 1);
input_sync(input_dev);
input_report_key(input_dev, KEY_F4, 0);
input_report_key(input_dev, KEY_GESTURE_START + touch_data->gesture_type, 0);
input_sync(input_dev);
}
}
@@ -971,7 +971,7 @@ exit:
*/
static int syna_dev_create_input_device(struct syna_tcm *tcm)
{
int retval = 0;
int retval = 0, i = 0;
struct tcm_dev *tcm_dev = tcm->tcm_dev;
struct input_dev *input_dev = NULL;
@@ -1024,8 +1024,9 @@ static int syna_dev_create_input_device(struct syna_tcm *tcm)
#ifdef ENABLE_WAKEUP_GESTURE
set_bit(KEY_WAKEUP, input_dev->keybit);
input_set_capability(input_dev, EV_KEY, KEY_WAKEUP);
set_bit(KEY_F4, input_dev->keybit);
input_set_capability(input_dev, EV_KEY, KEY_F4);
for (i = UP_VEE; i <= S_GESTURE; i++) {
set_bit(KEY_GESTURE_START + i, input_dev->keybit);
}
set_bit(KEY_UNDER_WATER, input_dev->keybit);
input_set_capability(input_dev, EV_KEY, KEY_UNDER_WATER);
set_bit(KEY_ON_WATER, input_dev->keybit);

View File

@@ -596,6 +596,7 @@ struct tcm_touch_data_blob {
/* for gesture */
unsigned int gesture_id;
unsigned int gesture_type;
struct tcm_gesture_data_blob gesture_data;
unsigned char data_point[24]; /*6 points*/
unsigned char extra_gesture_info[6];

View File

@@ -88,6 +88,7 @@ enum gesture_classification {
#define UNDER_WATER 0x85
#define ON_WATER 0x86
#define KEY_GESTURE_START 246
#define UNKOWN_GESTURE 0
#define DOU_TAP 1 /* double tap*/