Hi, On 08/27/2014 06:31 AM, Peter Hutterer wrote: > Signed-off-by: Peter Hutterer <peter.hutte...@who-t.net>
Looks good: Reviewed-by: Hans de Goede <hdego...@redhat.com> > --- > See patch 08/11, not sure we really want that configuration back-channel. I think it is useful to have. Regards, Hans > > src/evdev.c | 19 ++++++++++++------- > src/evdev.h | 4 ++++ > src/udev-seat.c | 2 +- > 3 files changed, 17 insertions(+), 8 deletions(-) > > diff --git a/src/evdev.c b/src/evdev.c > index 0059444..e24e268 100644 > --- a/src/evdev.c > +++ b/src/evdev.c > @@ -612,15 +612,11 @@ static int > evdev_calibration_get_default_matrix(struct libinput_device *libinput_device, > float matrix[6]) > { > - struct matrix m; > + struct evdev_device *device = (struct evdev_device*)libinput_device; > > - /* Always return the identity matrix for now. In the future, this > - should return the WL_CALIBRATION matrix defined as default > - matrix for this device */ > - matrix_init_identity(&m); > - matrix_to_farray6(&m, matrix); > + matrix_to_farray6(&device->abs.default_calibration, matrix); > > - return !matrix_is_identity(&m); > + return !matrix_is_identity(&device->abs.default_calibration); > } > > struct evdev_dispatch_interface fallback_interface = { > @@ -956,6 +952,7 @@ evdev_device_create(struct libinput_seat *seat, > > matrix_init_identity(&device->abs.calibration); > matrix_init_identity(&device->abs.usermatrix); > + matrix_init_identity(&device->abs.default_calibration); > > if (evdev_configure_device(device) == -1) > goto err; > @@ -1027,6 +1024,14 @@ evdev_device_get_id_vendor(struct evdev_device *device) > } > > void > +evdev_device_set_default_calibration(struct evdev_device *device, > + const float calibration[6]) > +{ > + matrix_from_farray6(&device->abs.default_calibration, calibration); > + evdev_device_calibrate(device, calibration); > +} > + > +void > evdev_device_calibrate(struct evdev_device *device, > const float calibration[6]) > { > diff --git a/src/evdev.h b/src/evdev.h > index 110ea74..50ca713 100644 > --- a/src/evdev.h > +++ b/src/evdev.h > @@ -74,6 +74,7 @@ struct evdev_device { > > int apply_calibration; > struct matrix calibration; > + struct matrix default_calibration; /* from > LIBINPUT_CALIBRATION_MATRIX */ > struct matrix usermatrix; /* as supplied by the caller */ > } abs; > > @@ -161,6 +162,9 @@ unsigned int > evdev_device_get_id_vendor(struct evdev_device *device); > > void > +evdev_device_set_default_calibration(struct evdev_device *device, > + const float calibration[6]); > +void > evdev_device_calibrate(struct evdev_device *device, > const float calibration[6]); > > diff --git a/src/udev-seat.c b/src/udev-seat.c > index d0324dd..ccff35c 100644 > --- a/src/udev-seat.c > +++ b/src/udev-seat.c > @@ -100,7 +100,7 @@ device_added(struct udev_device *udev_device, struct > udev_input *input) > &calibration[3], > &calibration[4], > &calibration[5]) == 6) { > - evdev_device_calibrate(device, calibration); > + evdev_device_set_default_calibration(device, calibration); > log_info(&input->base, > "Applying calibration: %f %f %f %f %f %f\n", > calibration[0], > _______________________________________________ wayland-devel mailing list wayland-devel@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/wayland-devel