\r
void HID_Device_USBTask(USB_ClassInfo_HID_Device_t* const HIDInterfaceInfo)\r
{\r
- static uint8_t PreviousReportINData[HID_MAX_REPORT_SIZE];\r
-\r
if (USB_DeviceState != DEVICE_STATE_Configured)\r
return;\r
\r
\r
ReportINSize = CALLBACK_HID_Device_CreateHIDReport(HIDInterfaceInfo, &ReportID, ReportINData);\r
\r
- bool StatesChanged = (memcmp(ReportINData, PreviousReportINData, ReportINSize) != 0);\r
+ bool StatesChanged = (memcmp(ReportINData, HIDInterfaceInfo->State.PreviousReportINData, ReportINSize) != 0);\r
bool IdlePeriodElapsed = (HIDInterfaceInfo->State.IdleCount && !(HIDInterfaceInfo->State.IdleMSRemaining));\r
\r
- memcpy(PreviousReportINData, ReportINData, ReportINSize);\r
+ memcpy(HIDInterfaceInfo->State.PreviousReportINData, ReportINData, ReportINSize);\r
\r
if (ReportINSize && (StatesChanged || IdlePeriodElapsed))\r
{\r
bool UsingReportProtocol; /**< Indicates if the HID interface is set to Boot or Report protocol mode */\r
uint16_t IdleCount; /**< Report idle period, in mS, set by the host */\r
uint16_t IdleMSRemaining; /**< Total number of mS remaining before the idle period elapsed - this should be\r
- * decremented by the user application if non-zero each millisecond */ \r
+ * decremented by the user application if non-zero each millisecond */ \r
+\r
+ uint8_t PreviousReportINData[HID_MAX_REPORT_SIZE]; /**< Previously generated report from the HID interface */\r
} State; /**< State data for the USB class interface within the device. All elements in this section\r
* are reset to their defaults when the interface is enumerated.\r
*/\r