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 [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
[Index of Archives]
[Kernel Newbies]
[Netfilter]
[Bugtraq]
[Photo]
[Stuff]
[Gimp]
[Yosemite News]
[MIPS Linux]
[ARM Linux]
[Linux Security]
[Linux RAID]
[Video 4 Linux]
[Linux for the blind]
[Linux Resources]