Input: Convert ValuatorMask to double-precision internally

Switch the ValuatorMask struct to using doubles instead of ints for the
actual values.  Preserve the old int API, and (attempt to) round towards
zero for values we return.

Signed-off-by: Daniel Stone <daniel@fooishbar.org>
Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>
This commit is contained in:
Daniel Stone 2011-02-23 14:31:01 +00:00 committed by Peter Hutterer
parent 60a766a96f
commit 79d4deb76d
2 changed files with 3 additions and 3 deletions

View File

@ -514,7 +514,7 @@ valuator_mask_set(ValuatorMask *mask, int valuator, int data)
int
valuator_mask_get(const ValuatorMask *mask, int valuator)
{
return mask->valuators[valuator];
return trunc(mask->valuators[valuator]);
}
/**
@ -527,7 +527,7 @@ valuator_mask_unset(ValuatorMask *mask, int valuator)
int i, lastbit = -1;
ClearBit(mask->mask, valuator);
mask->valuators[valuator] = 0;
mask->valuators[valuator] = 0.0;
for (i = 0; i <= mask->last_bit; i++)
if (valuator_mask_isset(mask, i))

View File

@ -34,7 +34,7 @@
struct _ValuatorMask {
int8_t last_bit; /* highest bit set in mask */
uint8_t mask[(MAX_VALUATORS + 7)/8];
int valuators[MAX_VALUATORS]; /* valuator data */
double valuators[MAX_VALUATORS]; /* valuator data */
};
extern void verify_internal_event(const InternalEvent *ev);