From: Pekka Paalanen <pekka.paala...@collabora.co.uk> Move calibration printing here and call do_set_calibration() from evdev_device_set_calibration() so that all matrix setting paths print the same way.
Print the matrix values in a matrix style to help readability, and mention the input device. Signed-off-by: Pekka Paalanen <pekka.paala...@collabora.co.uk> --- libweston/libinput-device.c | 51 +++++++++++++++++++++------------------------ 1 file changed, 24 insertions(+), 27 deletions(-) diff --git a/libweston/libinput-device.c b/libweston/libinput-device.c index cb0bafe8..742cb5c9 100644 --- a/libweston/libinput-device.c +++ b/libweston/libinput-device.c @@ -344,10 +344,17 @@ do_set_calibration(struct evdev_device *evdev_device, { enum libinput_config_status status; + weston_log("input device %s: applying calibration:\n", + libinput_device_get_sysname(evdev_device->device)); + weston_log_continue(STAMP_SPACE " %f %f %f\n", + calb->m[0], calb->m[1], calb->m[2]); + weston_log_continue(STAMP_SPACE " %f %f %f\n", + calb->m[3], calb->m[4], calb->m[5]); + status = libinput_device_config_calibration_set_matrix(evdev_device->device, calb->m); if (status != LIBINPUT_CONFIG_STATUS_SUCCESS) - weston_log("Failed to apply calibration.\n"); + weston_log("Error: Failed to apply calibration.\n"); } static void @@ -557,8 +564,7 @@ evdev_device_set_calibration(struct evdev_device *device) const char *sysname = libinput_device_get_sysname(device->device); const char *calibration_values; uint32_t width, height; - float calibration[6]; - enum libinput_config_status status; + struct weston_touch_device_matrix calibration; if (!libinput_device_config_calibration_has_matrix(device->device)) return; @@ -568,7 +574,7 @@ evdev_device_set_calibration(struct evdev_device *device) * output to load a calibration. */ if (libinput_device_config_calibration_get_default_matrix( device->device, - calibration) != 0) + calibration.m) != 0) return; /* touch_set_calibration() has updated the values, do not load old @@ -612,35 +618,26 @@ evdev_device_set_calibration(struct evdev_device *device) if (!calibration_values || sscanf(calibration_values, "%f %f %f %f %f %f", - &calibration[0], - &calibration[1], - &calibration[2], - &calibration[3], - &calibration[4], - &calibration[5]) != 6) + &calibration.m[0], + &calibration.m[1], + &calibration.m[2], + &calibration.m[3], + &calibration.m[4], + &calibration.m[5]) != 6) goto out; - weston_log("Applying calibration: %f %f %f %f %f %f " - "(normalized %f %f)\n", - calibration[0], - calibration[1], - calibration[2], - calibration[3], - calibration[4], - calibration[5], - calibration[2] / width, - calibration[5] / height); - /* normalize to a format libinput can use. There is a chance of this being wrong if the width/height don't match the device width/height but I'm not sure how to fix that */ - calibration[2] /= width; - calibration[5] /= height; + calibration.m[2] /= width; + calibration.m[5] /= height; - status = libinput_device_config_calibration_set_matrix(device->device, - calibration); - if (status != LIBINPUT_CONFIG_STATUS_SUCCESS) - weston_log("Failed to apply calibration.\n"); + do_set_calibration(device, &calibration); + + weston_log_continue(STAMP_SPACE " raw translation %f %f for output %s\n", + calibration.m[2] * width, + calibration.m[5] * height, + device->output->name); out: if (udev_device) -- 2.16.1 _______________________________________________ wayland-devel mailing list wayland-devel@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/wayland-devel