forked from mfulz_github/qmk_firmware
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.
This commit is contained in:
parent
508e905d8d
commit
eb060db71b
|
@ -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);
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue