+\r
+/** Callback for the HID Report Parser. This function is called each time the HID report parser is about to store\r
+ * an IN, OUT or FEATURE item into the HIDReportInfo structure. To save on RAM, we are able to filter out items\r
+ * we aren't interested in (preventing us from being able to extract them later on, but saving on the RAM they would\r
+ * have occupied).\r
+ *\r
+ * \param CurrentItemAttributes Pointer to the attrbutes of the item the HID report parser is currently working with\r
+ *\r
+ * \return Boolean true if the item should be stored into the HID report structure, false if it should be discarded\r
+ */\r
+bool CALLBACK_HIDParser_FilterHIDReportItem(HID_ReportItem_Attributes_t* CurrentItemAttributes)\r
+{\r
+ /* Check the attributes of the current item - see if we are interested in it or not */\r
+ if ((CurrentItemAttributes->Usage.Page == USAGE_PAGE_BUTTON) ||\r
+ (CurrentItemAttributes->Usage.Page == USAGE_PAGE_GENERIC_DCTRL))\r
+ {\r
+ /* Only store BUTTON and GENERIC_DESKTOP_CONTROL items into the Processed HID Report structure to save RAM */\r
+ return true;\r
+ }\r
+ else\r
+ {\r
+ return false;\r
+ }\r
+}\r