update touch.c
git-svn-id: https://rt-thread.googlecode.com/svn/trunk@1645 bbd45198-f89e-11dd-88c7-29a3b14d5316
This commit is contained in:
parent
ea6e56e063
commit
446dafebad
|
@ -68,8 +68,8 @@
|
||||||
|
|
||||||
#define X_MIN 74
|
#define X_MIN 74
|
||||||
#define X_MAX 934
|
#define X_MAX 934
|
||||||
#define Y_MIN 89
|
#define Y_MIN 920
|
||||||
#define Y_MAX 920
|
#define Y_MAX 89
|
||||||
|
|
||||||
struct s3c2410ts
|
struct s3c2410ts
|
||||||
{
|
{
|
||||||
|
@ -129,8 +129,23 @@ static void report_touch_input(int updown)
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
if (touch->max_x > touch->min_x)
|
||||||
|
{
|
||||||
touch->x = touch->width * (ts.xp-touch->min_x)/(touch->max_x-touch->min_x);
|
touch->x = touch->width * (ts.xp-touch->min_x)/(touch->max_x-touch->min_x);
|
||||||
touch->y = touch->height - (touch->height * (ts.yp-touch->min_y)/(touch->max_y-touch->min_y));
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
touch->x = touch->width * ( touch->min_x - ts.xp ) / (touch->min_x-touch->max_x);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (touch->max_y > touch->min_y)
|
||||||
|
{
|
||||||
|
touch->y = touch->height * ( ts.yp - touch->min_y ) / (touch->max_y-touch->min_y);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
touch->y = touch->height * ( touch->min_y - ts.yp ) / (touch->min_y-touch->max_y);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
emouse.x = touch->x;
|
emouse.x = touch->x;
|
||||||
|
@ -184,9 +199,24 @@ static void report_touch_input(int updown)
|
||||||
touch->y = ts.yp;
|
touch->y = ts.yp;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
touch->x = touch->width * (ts.xp-touch->min_x)/(touch->max_x-touch->min_x);
|
if (touch->max_x > touch->min_x)
|
||||||
touch->y = touch->height - (touch->height * (ts.yp-touch->min_y)/(touch->max_y-touch->min_y));
|
{
|
||||||
|
touch->x = touch->width * ( ts.xp - touch->min_x ) / (touch->max_x-touch->min_x);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
touch->x = touch->width * ( touch->min_x - ts.xp ) / (touch->min_x-touch->max_x);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (touch->max_y > touch->min_y)
|
||||||
|
{
|
||||||
|
touch->y = touch->height * ( ts.yp - touch->min_y ) / (touch->max_y-touch->min_y);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
touch->y = touch->height * ( touch->min_y - ts.yp ) / (touch->min_y-touch->max_y);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
touch_event.x = touch->x;
|
touch_event.x = touch->x;
|
||||||
|
@ -391,8 +421,8 @@ static rt_err_t rtgui_touch_control (rt_device_t dev, rt_uint8_t cmd, void *args
|
||||||
/* update */
|
/* update */
|
||||||
touch->min_x = data->min_x;
|
touch->min_x = data->min_x;
|
||||||
touch->max_x = data->max_x;
|
touch->max_x = data->max_x;
|
||||||
touch->min_y = data->max_y;
|
touch->min_y = data->min_y;
|
||||||
touch->max_y = data->min_y;
|
touch->max_y = data->max_y;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
rt_kprintf("min_x = %d, max_x = %d, min_y = %d, max_y = %d\n",
|
rt_kprintf("min_x = %d, max_x = %d, min_y = %d, max_y = %d\n",
|
||||||
|
@ -428,7 +458,7 @@ void rtgui_touch_hw_init(void)
|
||||||
touch->min_x = X_MIN;
|
touch->min_x = X_MIN;
|
||||||
touch->max_x = X_MAX;
|
touch->max_x = X_MAX;
|
||||||
touch->min_y = Y_MIN;
|
touch->min_y = Y_MIN;
|
||||||
touch->max_y = X_MAX;
|
touch->max_y = Y_MAX;
|
||||||
touch->eventpost_func = RT_NULL;
|
touch->eventpost_func = RT_NULL;
|
||||||
touch->eventpost_param = RT_NULL;
|
touch->eventpost_param = RT_NULL;
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue