lkml.org 
[lkml]   [2006]   [Aug]   [8]   [last100]   RSS Feed
Views: [more markup]  [less markup]  [headers]  [forward] 
 
Messages in this thread
/
DateTue, 8 Aug 2006 11:21:33 +0200
FromPavel Machek <>
SubjectRe: [PATCH 03/12] hdaps: Unify and cache hdaps readouts
Hi!

> >Okay, so what about ..
> >
> >#define CONVERT(x) *(s16*)(data.val+x) * (hdaps_invert?-1:1);
> >
> >...or better inline function?
> 
> Actually, some models require fancier transformations. This was
> supposed to be reserved for a future patch, but might as well prepare
> the infrastructure:

Certainly better.

> /* Some models require an axis transformation to the standard reprsentation 
> */
> static void transform_axes(int inx, int iny, int *outx, int *outy) {
> 	*outx = inx * (hdaps_invert?-1:1);
> 	*outy = iny * (hdaps_invert?-1:1);
> }
> ...
> 	/* Parse position data: */
> 	transform_axes(*(s16*)(data.val+EC_ACCEL_IDX_XPOS1),
> 	               *(s16*)(data.val+EC_ACCEL_IDX_YPOS1), &pos_x, &pos_y);

You could also do

void transform_axes(int *x, int *y)
{
 	*outx = inx * (hdaps_invert?-1:1);
 	*outy = iny * (hdaps_invert?-1:1);
}
...
 	/* Parse position data: */
	x = *(s16*)(data.val+EC_ACCEL_IDX_XPOS1);
	y = *(s16*)(data.val+EC_ACCEL_IDX_YPOS1);
 	transform_axes(&x, &y);
...which looks even better to me.
								Pavel
-- 
(english) http://www.livejournal.com/~pavelmachek
(cesky, pictures) http://atrey.karlin.mff.cuni.cz/~pavel/picture/horses/blog.html
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

\
 
 \ /
  Last update: 2006-08-08 11:25    [from the cache]
©2003-2008