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 (DeltaMovement)
if (ReportItem->Attributes.Usage.Usage == USAGE_X)
LEDMask |= ((DeltaMovement > 0) ? LEDS_LED1 : LEDS_LED2);
}
else
{
if (DeltaMovement)
else
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 (DeltaMovement)
if (ReportItem->Attributes.Usage.Usage == USAGE_X)
LEDMask |= ((DeltaMovement > 0) ? LEDS_LED1 : LEDS_LED2);
}
else
{
if (DeltaMovement)
else
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)
/* 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);
}
}
......
......@@ -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);
}
}
......
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