android input tp

android2.3


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                         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);


你可能感兴趣的:(安卓)