Commit eb060db7 authored by Dean Camera's avatar Dean Camera
Browse files

Tighten up the code in the delta movement detection code in the...

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.
parent 508e905d
......@@ -148,16 +148,13 @@ int main(void)
(ReportItem->Attributes.Usage.Usage == USAGE_Y)) &&
(ReportItem->ItemType == REPORT_ITEM_TYPE_In))
{
int16_t DeltaMovement = (int16_t)(ReportItem->Value << (16 - ReportItem->Attributes.BitSize));
int16_t DeltaMovement = HID_ALIGN_DATA(ReportItem, int16_t);
if (ReportItem->Attributes.Usage.Usage == USAGE_X)
{
if (DeltaMovement)
{
if (ReportItem->Attributes.Usage.Usage == USAGE_X)
LEDMask |= ((DeltaMovement > 0) ? LEDS_LED1 : LEDS_LED2);
}
else
{
if (DeltaMovement)
LEDMask |= ((DeltaMovement > 0) ? LEDS_LED3 : LEDS_LED4);
}
}
......
......@@ -159,14 +159,11 @@ int main(void)
{
int16_t DeltaMovement = HID_ALIGN_DATA(ReportItem, int16_t);
if (ReportItem->Attributes.Usage.Usage == USAGE_X)
{
if (DeltaMovement)
{
if (ReportItem->Attributes.Usage.Usage == USAGE_X)
LEDMask |= ((DeltaMovement > 0) ? LEDS_LED1 : LEDS_LED2);
}
else
{
if (DeltaMovement)
LEDMask |= ((DeltaMovement > 0) ? LEDS_LED3 : LEDS_LED4);
}
}
......
......@@ -285,17 +285,13 @@ void ProcessJoystickReport(uint8_t* JoystickReport)
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)
{
/* Turn on the appropriate LED according to direction if the delta is non-zero */
/* Check to see if a (non-zero) delta movement has been indicated */
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)
LEDMask |= ((DeltaMovement > 0) ? LEDS_LED3 : LEDS_LED4);
}
}
......
......@@ -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)
{
/* Turn on the appropriate LED according to direction if the delta is non-zero */
/* Check to see if a (non-zero) delta movement has been indicated */
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)
LEDMask |= ((DeltaMovement > 0) ? LEDS_LED3 : LEDS_LED4);
}
}
......
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment