aboutsummaryrefslogtreecommitdiffstats
path: root/Demos/Host/LowLevel/MouseHostWithParser/MouseHostWithParser.c
diff options
context:
space:
mode:
authorDean Camera <dean@fourwalledcubicle.com>2010-08-09 12:04:52 +0000
committerDean Camera <dean@fourwalledcubicle.com>2010-08-09 12:04:52 +0000
commiteb060db71b629d72107e67a5057bf70f7d53307d (patch)
treeba8722f487a1da31044cdf06caab6def812f6530 /Demos/Host/LowLevel/MouseHostWithParser/MouseHostWithParser.c
parent508e905d8d39c3968927aa2c1a45350f49452df1 (diff)
downloadlufa-eb060db71b629d72107e67a5057bf70f7d53307d.tar.gz
lufa-eb060db71b629d72107e67a5057bf70f7d53307d.tar.bz2
lufa-eb060db71b629d72107e67a5057bf70f7d53307d.zip
Tighten up the code in the delta movement detection code in the MouseHostWithParser and JoystickHostWithParser demos. Make the ClassDriver JoystickHostWithParser demo use the HID_ALIGN_DATA() macro instead of manual shifting and casting.
Diffstat (limited to 'Demos/Host/LowLevel/MouseHostWithParser/MouseHostWithParser.c')
-rw-r--r--Demos/Host/LowLevel/MouseHostWithParser/MouseHostWithParser.c16
1 files changed, 6 insertions, 10 deletions
diff --git a/Demos/Host/LowLevel/MouseHostWithParser/MouseHostWithParser.c b/Demos/Host/LowLevel/MouseHostWithParser/MouseHostWithParser.c
index 1b9c12aa9..38e4b2564 100644
--- a/Demos/Host/LowLevel/MouseHostWithParser/MouseHostWithParser.c
+++ b/Demos/Host/LowLevel/MouseHostWithParser/MouseHostWithParser.c
@@ -299,19 +299,15 @@ void ProcessMouseReport(uint8_t* MouseReport)
if (!(FoundData))
continue;
- int16_t DeltaMovement = (int16_t)(ReportItem->Value << (16 - ReportItem->Attributes.BitSize));
+ int16_t DeltaMovement = HID_ALIGN_DATA(ReportItem, int16_t);
- /* Determine if the report is for the X or Y delta movement */
- if (ReportItem->Attributes.Usage.Usage == USAGE_X)
+ /* Check to see if a (non-zero) delta movement has been indicated */
+ if (DeltaMovement)
{
- /* Turn on the appropriate LED according to direction if the delta is non-zero */
- if (DeltaMovement)
+ /* Determine if the report is for the X or Y delta movement, light LEDs as appropriate */
+ if (ReportItem->Attributes.Usage.Usage == USAGE_X)
LEDMask |= ((DeltaMovement > 0) ? LEDS_LED1 : LEDS_LED2);
- }
- else
- {
- /* Turn on the appropriate LED according to direction if the delta is non-zero */
- if (DeltaMovement)
+ else
LEDMask |= ((DeltaMovement > 0) ? LEDS_LED3 : LEDS_LED4);
}
}