[PATCH v2 1/9] evdev: use struct calibration for those kind of fields
Tiago Vignatti
tiago.vignatti at intel.com
Wed Oct 26 05:55:21 PDT 2011
No functional changes.
Signed-off-by: Tiago Vignatti <tiago.vignatti at intel.com>
---
compositor/evdev.c | 32 +++++++++++++++++++-------------
1 files changed, 19 insertions(+), 13 deletions(-)
diff --git a/compositor/evdev.c b/compositor/evdev.c
index f0cdf30..3f8b9ad 100644
--- a/compositor/evdev.c
+++ b/compositor/evdev.c
@@ -40,7 +40,13 @@ struct evdev_input_device {
int tool, new_x, new_y;
int base_x, base_y;
int fd;
- int min_x, max_x, min_y, max_y;
+ struct {
+ int min_x;
+ int max_x;
+ int min_y;
+ int max_y;
+ } calibration;
+
int is_touchpad, old_x_value, old_y_value, reset_x_value, reset_y_value;
};
@@ -100,13 +106,13 @@ evdev_process_absolute_motion(struct evdev_input_device *device,
switch (e->code) {
case ABS_X:
*absolute_event = device->tool;
- *x = (value - device->min_x) * screen_width /
- (device->max_x - device->min_x) + device->output->x;
+ *x = (value - device->calibration.min_x) * screen_width /
+ (device->calibration.max_x - device->calibration.min_x) + device->output->x;
break;
case ABS_Y:
*absolute_event = device->tool;
- *y = (value - device->min_y) * screen_height /
- (device->max_y - device->min_y) + device->output->y;
+ *y = (value - device->calibration.min_y) * screen_height /
+ (device->calibration.max_y - device->calibration.min_y) + device->output->y;
break;
}
}
@@ -120,23 +126,23 @@ evdev_process_absolute_motion_touchpad(struct evdev_input_device *device,
switch (e->code) {
case ABS_X:
- value -= device->min_x;
+ value -= device->calibration.min_x;
if (device->reset_x_value)
device->reset_x_value = 0;
else {
*dx = (value - device->old_x_value) * touchpad_speed /
- (device->max_x - device->min_x);
+ (device->calibration.max_x - device->calibration.min_x);
}
device->old_x_value = value;
break;
case ABS_Y:
- value -= device->min_y;
+ value -= device->calibration.min_y;
if (device->reset_y_value)
device->reset_y_value = 0;
else {
*dy = (value - device->old_y_value) * touchpad_speed /
/* maybe use x size here to have the same scale? */
- (device->max_y - device->min_y);
+ (device->calibration.max_y - device->calibration.min_y);
}
device->old_y_value = value;
break;
@@ -249,13 +255,13 @@ evdev_configure_device(struct evdev_input_device *device)
abs_bits);
if (TEST_BIT(abs_bits, ABS_X)) {
ioctl(device->fd, EVIOCGABS(ABS_X), &absinfo);
- device->min_x = absinfo.minimum;
- device->max_x = absinfo.maximum;
+ device->calibration.min_x = absinfo.minimum;
+ device->calibration.max_x = absinfo.maximum;
}
if (TEST_BIT(abs_bits, ABS_Y)) {
ioctl(device->fd, EVIOCGABS(ABS_Y), &absinfo);
- device->min_y = absinfo.minimum;
- device->max_y = absinfo.maximum;
+ device->calibration.min_y = absinfo.minimum;
+ device->calibration.max_y = absinfo.maximum;
}
}
if (TEST_BIT(ev_bits, EV_KEY)) {
--
1.7.5.4
More information about the wayland-devel
mailing list