이래저래 tslib가 잘 안 붙고.
엔트리 포인트 찾기도 힘들어서.
tslib 소스를 그냥 가져다 붙였다.
프루빙 타임도 절약하고 여러모로 최적화라 할 수 있다.
s3c6410 의 경우다.
struct tslib_linear {
int a[7];
};
struct tslib_linear lin; // 전역변수
// linux_input_EventThread 안에서
...
for (i=0; i<readlen / sizeof(levt[0]); i++) {
DFBInputEvent temp;
switch(levt[i].code) {
case ABS_X:
temp_x = levt[i].value;
levt[i].value = ( lin.a[2] +
lin.a[0]*temp_x +
lin.a[1]*temp_y ) / lin.a[6];
break;
case ABS_Y:
printf("levt_y = %d\n", levt->value);
temp_y = levt[i].value;
levt[i].value = ( lin.a[5] +
lin.a[3]*temp_x +
lin.a[4]*temp_y ) / lin.a[6];
printf("temp_y = %d\n", temp_y);
break;
default:
break;
}
tslib에는 터치스크린에서 커서가 떨거나 하는 일을 잡아주기도 한다.
tslib의 나머지 부분을 가져다 붙이면 directFB에서 모든 터치 보정이 끝나게 된다.
linux-input 만 있으면 땡.