android4.04
初始化:
ts->input_dev->evbit[0] = BIT_MASK(EV_SYN) | BIT_MASK(EV_KEY) | BIT_MASK(EV_ABS) ;
ts->input_dev->keybit[BIT_WORD(BTN_TOUCH)] = BIT_MASK(BTN_TOUCH);
ts->input_dev->absbit[0] = BIT(ABS_X) | BIT(ABS_Y);// | BIT(ABS_PRESSURE);
input_set_capability(ts->input_dev,EV_KEY,touch_key_array[retry]);
input_set_abs_params(ts->input_dev, ABS_X, 0, ts->abs_x_max, 0, 0);
input_set_abs_params(ts->input_dev, ABS_Y, 0, ts->abs_y_max, 0, 0);
input_set_abs_params(ts->input_dev, ABS_MT_POSITION_X, 0, ts->abs_x_max, 0, 0);
input_set_abs_params(ts->input_dev, ABS_MT_POSITION_Y, 0, ts->abs_y_max, 0, 0);
input_set_abs_params(ts->input_dev, ABS_MT_TRACKING_ID, 0, ts->max_touch_num, 0, 0);
上报:
if(touch_num) {
for(index=0; index<touch_num; index++) {
input_x = (unsigned int) (point_data[position]<<8) + (unsigned int)( point_data[position+1]);
input_y = (unsigned int)(point_data[position+2]<<8) + (unsigned int) (point_data[position+3]);
input_report_key(ts->input_dev, BTN_TOUCH, 1);
input_report_abs(ts->input_dev, ABS_MT_POSITION_X, input_x);
input_report_abs(ts->input_dev, ABS_MT_POSITION_Y, input_y);
input_mt_sync(ts->input_dev);
}
} else {
input_report_key(ts->input_dev, BTN_TOUCH, 0);
input_mt_sync(ts->input_dev);
}
input_sync(ts->input_dev);