if(ts_sample.int_state & 0x08) { if (ts_sample.contact_resistance < 2) { if (ts_sample.x_position == 0 && ts_sample.y_position == 0 && ts_sample.contact_resistance == 0) { x = last_x; y = last_y; } else { x = ts_sample.x_position * 480 / 1894; y = 799 - ts_sample.y_position * 800 / 3245; } if (x != last_x) { input_report_abs(mxc_inputdev, ABS_X, x); last_x = x; } if (y != last_y) { input_report_abs(mxc_inputdev, ABS_Y, y); last_y = y; } /* report pressure */ input_report_abs(mxc_inputdev, ABS_PRESSURE, ts_sample.contact_resistance); /* report the BTN_TOUCH */ if (ts_sample.contact_resistance != last_press) { input_event(mxc_inputdev, EV_KEY,BTN_TOUCH, ts_sample.contact_resistance); } } input_sync(mxc_inputdev); last_press = ts_sample.contact_resistance; } else if(ts_sample.int_state & 0x04) { input_report_key(input_button,KEY_MENU,ts_sample.button_data); }