mirror of
https://github.com/qmk/qmk_firmware.git
synced 2025-06-11 19:34:17 +00:00
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
Block a user