+ \r
+ #if !defined(HID_MAX_REPORT_IDS) || defined(__DOXYGEN__)\r
+ /** Constant indicating the maximum number of unique report IDs that can be processed in the report item\r
+ * descriptor for the report size information array in the user HID Report Info structure. A large value\r
+ * allows for more report ID report sizes to be stored, but consumes more memory. By default this is set\r
+ * to 5 items, but this can be overridden by defining HID_MAX_REPORT_IDS to another value in the user project\r
+ * makefile, and passing the define to the compiler using the -D compiler switch. Note that IN, OUT and FEATURE\r
+ * items sharing the same report ID consume only one size item in the array.\r
+ */\r
+ #define HID_MAX_REPORT_IDS 10\r
+ #endif\r
+\r
+ /** Returns the value a given HID report item (once its value has been fetched via \ref USB_GetHIDReportItemInfo())\r
+ * left-aligned to the given data type. This allows for signed data to be interpreted correctly, by shifting the data\r
+ * leftwards until the data's sign bit is in the correct position.\r
+ *\r
+ * \param[in] reportitem HID Report Item whose retrieved value is to be aligned\r
+ * \param[in] type Data type to align the HID report item's value to\r
+ *\r
+ * \return Left-aligned data of the given report item's pre-retrived value for the given datatype\r
+ */\r
+ #define HID_ALIGN_DATA(reportitem, type) ((type)(reportitem->Value << (sizeof(type) - reportitem->Attributes.BitSize)))\r