Nice!
On Mon, Jan 11, 2010 at 03:59:26PM +0000, Przemysław Firszt wrote:
> From 8cdbb16abd0086fd752241b2c25662eb16d37498 Mon Sep 17 00:00:00 2001
> From: Przemo Firszt <[email protected]>
> Date: Mon, 11 Jan 2010 15:34:40 +0000
> Subject: [PATCH 5/5] Replace hardcoded rotation tables using function
>
> Signed-off-by: Przemo Firszt <[email protected]>
> ---
> src/wcmTilt2Rotation.c | 702
> +-----------------------------------------------
> 1 files changed, 6 insertions(+), 696 deletions(-)
>
> diff --git a/src/wcmTilt2Rotation.c b/src/wcmTilt2Rotation.c
> index 23fd878..925bbd4 100644
> --- a/src/wcmTilt2Rotation.c
> +++ b/src/wcmTilt2Rotation.c
> @@ -21,673 +21,14 @@
> #endif
>
> #include "xf86Wacom.h"
> +#include <math.h>
>
> -void wcmTilt2R(WacomDeviceStatePtr ds);
> -
[..]
> -unsigned short tiltTable_63[2] = {
> - (45 | (20 << 8)),(44 | (19 << 8))
> -};
> +#ifndef M_PI
> +#define M_PI 3.14159265358979323846
> +#endif
Is this necessary? which version of math.h doesn't have M_PI defined?
>
> -unsigned short tiltTable_64[1] = {
> - (45 | (19 << 8))
> -};
>
> -unsigned short *cTable[] = {
> -
> &tiltTable_00[0],&tiltTable_01[0],&tiltTable_02[0],&tiltTable_03[0],&tiltTable_04[0],&tiltTable_05[0],
> -
> &tiltTable_06[0],&tiltTable_07[0],&tiltTable_08[0],&tiltTable_09[0],&tiltTable_10[0],&tiltTable_11[0],
> -
> &tiltTable_12[0],&tiltTable_13[0],&tiltTable_14[0],&tiltTable_15[0],&tiltTable_16[0],&tiltTable_17[0],
> -
> &tiltTable_18[0],&tiltTable_19[0],&tiltTable_20[0],&tiltTable_21[0],&tiltTable_22[0],&tiltTable_23[0],
> -
> &tiltTable_24[0],&tiltTable_25[0],&tiltTable_26[0],&tiltTable_27[0],&tiltTable_28[0],&tiltTable_29[0],
> -
> &tiltTable_30[0],&tiltTable_31[0],&tiltTable_32[0],&tiltTable_33[0],&tiltTable_34[0],&tiltTable_35[0],
> -
> &tiltTable_36[0],&tiltTable_37[0],&tiltTable_38[0],&tiltTable_39[0],&tiltTable_40[0],&tiltTable_41[0],
> -
> &tiltTable_42[0],&tiltTable_43[0],&tiltTable_44[0],&tiltTable_45[0],&tiltTable_46[0],&tiltTable_47[0],
> -
> &tiltTable_48[0],&tiltTable_49[0],&tiltTable_50[0],&tiltTable_51[0],&tiltTable_52[0],&tiltTable_53[0],
> -
> &tiltTable_54[0],&tiltTable_55[0],&tiltTable_56[0],&tiltTable_57[0],&tiltTable_58[0],&tiltTable_59[0],
> -
> &tiltTable_60[0],&tiltTable_61[0],&tiltTable_62[0],&tiltTable_63[0],&tiltTable_64[0]
> -};
> +void wcmTilt2R(WacomDeviceStatePtr ds);
weird, how comes this line was moved by the diff?
I like the patch, lines disappearing is always good :) If Ping's tests are
successful, I'll merge it in.
Cheers,
Peter
>
>
> /*****************************************************************************
> * wcmTilt2R -
> @@ -700,38 +41,7 @@ void wcmTilt2R(WacomDeviceStatePtr ds)
> short tilt_x = ds->tiltx;
> short tilt_y = ds->tilty;
>
> - short offset = -180;
> - unsigned short *xyTable;
> -
> - if (tilt_x < 0)
> - {
> - tilt_x = -tilt_x;
> - offset *= -1;
> - }
> -
> - if (tilt_y <= 0)
> - {
> - tilt_y = -tilt_y;
> - offset *= -1;
> - offset -= 180;
> - }
> -
> - if (tilt_y < tilt_x)
> - {
> - short tmp = tilt_x;
> - tilt_x = tilt_y;
> - tilt_y = tmp;
> - offset *= -1;
> - offset -= 90;
> - }
> -
> - xyTable = cTable[tilt_x];
> - ds->rotation = (xyTable[tilt_y-tilt_x] & 0xFF) + offset;
> -
> - if (ds->rotation < 0)
> - {
> - ds->rotation *= -1;
> - }
> + ds->rotation = ABS(round(((180 * atan2(tilt_x,tilt_y)) / M_PI) - 180));
>
> /* Intuos4 mouse has an (180-5) offset */
> ds->rotation = ((360 - ds->rotation + 180 - 5) % 360) * 5;
> --
> 1.6.5.7
>
------------------------------------------------------------------------------
This SF.Net email is sponsored by the Verizon Developer Community
Take advantage of Verizon's best-in-class app development support
A streamlined, 14 day to market process makes app distribution fast and easy
Join now and get one step closer to millions of Verizon customers
http://p.sf.net/sfu/verizon-dev2dev
_______________________________________________
Linuxwacom-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/linuxwacom-devel