aboutsummaryrefslogtreecommitdiffstats
path: root/LUFA
diff options
context:
space:
mode:
Diffstat (limited to 'LUFA')
-rw-r--r--LUFA/Drivers/USB/Class/Common/HID.h1
-rw-r--r--LUFA/Drivers/USB/Class/Common/HIDParser.c (renamed from LUFA/Drivers/USB/Class/Host/HIDParser.c)66
-rw-r--r--LUFA/Drivers/USB/Class/Common/HIDParser.h (renamed from LUFA/Drivers/USB/Class/Host/HIDParser.h)0
-rw-r--r--LUFA/Drivers/USB/Class/Common/HIDReportData.h118
-rw-r--r--LUFA/Drivers/USB/Class/Device/HID.h1
-rw-r--r--LUFA/Drivers/USB/Class/Host/HID.h3
-rw-r--r--LUFA/Drivers/USB/Class/Host/HIDReportData.h142
-rw-r--r--LUFA/ManPages/ChangeLog.txt3
-rw-r--r--LUFA/ManPages/FutureChanges.txt1
-rw-r--r--LUFA/makefile2
10 files changed, 155 insertions, 182 deletions
diff --git a/LUFA/Drivers/USB/Class/Common/HID.h b/LUFA/Drivers/USB/Class/Common/HID.h
index b0b2d9c82..da2b64ef4 100644
--- a/LUFA/Drivers/USB/Class/Common/HID.h
+++ b/LUFA/Drivers/USB/Class/Common/HID.h
@@ -52,6 +52,7 @@
/* Includes: */
#include "../../HighLevel/StdDescriptors.h"
+ #include "HIDParser.h"
#include <string.h>
diff --git a/LUFA/Drivers/USB/Class/Host/HIDParser.c b/LUFA/Drivers/USB/Class/Common/HIDParser.c
index cd0741d7e..7b13f1a75 100644
--- a/LUFA/Drivers/USB/Class/Host/HIDParser.c
+++ b/LUFA/Drivers/USB/Class/Common/HIDParser.c
@@ -29,9 +29,6 @@
*/
#define __INCLUDE_FROM_USB_DRIVER
-#include "../../HighLevel/USBMode.h"
-#if defined(USB_CAN_BE_HOST)
-
#define __INCLUDE_FROM_HID_DRIVER
#include "HIDParser.h"
@@ -61,28 +58,28 @@ uint8_t USB_ProcessHIDReport(const uint8_t* ReportData,
ReportData++;
ReportSize--;
- switch (HIDReportItem & DATA_SIZE_MASK)
+ switch (HIDReportItem & HID_RI_DATA_SIZE_MASK)
{
- case DATA_SIZE_4:
+ case HID_RI_DATA_BITS_32:
ReportItemData = *((uint32_t*)ReportData);
ReportSize -= 4;
ReportData += 4;
break;
- case DATA_SIZE_2:
+ case HID_RI_DATA_BITS_16:
ReportItemData = *((uint16_t*)ReportData);
ReportSize -= 2;
ReportData += 2;
break;
- case DATA_SIZE_1:
+ case HID_RI_DATA_BITS_8:
ReportItemData = *((uint8_t*)ReportData);
ReportSize -= 1;
ReportData += 1;
break;
}
- switch (HIDReportItem & (TYPE_MASK | TAG_MASK))
+ switch (HIDReportItem & (HID_RI_TYPE_MASK | HID_RI_TAG_MASK))
{
- case (TYPE_GLOBAL | TAG_GLOBAL_PUSH):
+ case HID_RI_PUSH(0):
if (CurrStateTable == &StateTable[HID_STATETABLE_STACK_DEPTH - 1])
return HID_PARSE_HIDStackOverflow;
@@ -92,40 +89,40 @@ uint8_t USB_ProcessHIDReport(const uint8_t* ReportData,
CurrStateTable++;
break;
- case (TYPE_GLOBAL | TAG_GLOBAL_POP):
+ case HID_RI_POP(0):
if (CurrStateTable == &StateTable[0])
return HID_PARSE_HIDStackUnderflow;
CurrStateTable--;
break;
- case (TYPE_GLOBAL | TAG_GLOBAL_USAGEPAGE):
+ case HID_RI_USAGE_PAGE(0):
CurrStateTable->Attributes.Usage.Page = ReportItemData;
break;
- case (TYPE_GLOBAL | TAG_GLOBAL_LOGICALMIN):
+ case HID_RI_LOGICAL_MINIMUM(0):
CurrStateTable->Attributes.Logical.Minimum = ReportItemData;
break;
- case (TYPE_GLOBAL | TAG_GLOBAL_LOGICALMAX):
+ case HID_RI_LOGICAL_MAXIMUM(0):
CurrStateTable->Attributes.Logical.Maximum = ReportItemData;
break;
- case (TYPE_GLOBAL | TAG_GLOBAL_PHYSMIN):
+ case HID_RI_PHYSICAL_MINIMUM(0):
CurrStateTable->Attributes.Physical.Minimum = ReportItemData;
break;
- case (TYPE_GLOBAL | TAG_GLOBAL_PHYSMAX):
+ case HID_RI_PHYSICAL_MAXIMUM(0):
CurrStateTable->Attributes.Physical.Maximum = ReportItemData;
break;
- case (TYPE_GLOBAL | TAG_GLOBAL_UNITEXP):
+ case HID_RI_UNIT_EXPONENT(0):
CurrStateTable->Attributes.Unit.Exponent = ReportItemData;
break;
- case (TYPE_GLOBAL | TAG_GLOBAL_UNIT):
+ case HID_RI_UNIT(0):
CurrStateTable->Attributes.Unit.Type = ReportItemData;
break;
- case (TYPE_GLOBAL | TAG_GLOBAL_REPORTSIZE):
+ case HID_RI_REPORT_SIZE(0):
CurrStateTable->Attributes.BitSize = ReportItemData;
break;
- case (TYPE_GLOBAL | TAG_GLOBAL_REPORTCOUNT):
+ case HID_RI_REPORT_COUNT(0):
CurrStateTable->ReportCount = ReportItemData;
break;
- case (TYPE_GLOBAL | TAG_GLOBAL_REPORTID):
+ case HID_RI_REPORT_ID(0):
CurrStateTable->ReportID = ReportItemData;
if (ParserData->UsingReportIDs)
@@ -155,19 +152,19 @@ uint8_t USB_ProcessHIDReport(const uint8_t* ReportData,
CurrReportIDInfo->ReportID = CurrStateTable->ReportID;
break;
- case (TYPE_LOCAL | TAG_LOCAL_USAGE):
+ case HID_RI_USAGE(0):
if (UsageListSize == HID_USAGE_STACK_DEPTH)
return HID_PARSE_UsageListOverflow;
UsageList[UsageListSize++] = ReportItemData;
break;
- case (TYPE_LOCAL | TAG_LOCAL_USAGEMIN):
+ case HID_RI_USAGE_MINIMUM(0):
UsageMinMax.Minimum = ReportItemData;
break;
- case (TYPE_LOCAL | TAG_LOCAL_USAGEMAX):
+ case HID_RI_USAGE_MAXIMUM(0):
UsageMinMax.Maximum = ReportItemData;
break;
- case (TYPE_MAIN | TAG_MAIN_COLLECTION):
+ case HID_RI_COLLECTION(0):
if (CurrCollectionPath == NULL)
{
CurrCollectionPath = &ParserData->CollectionPaths[0];
@@ -207,15 +204,15 @@ uint8_t USB_ProcessHIDReport(const uint8_t* ReportData,
}
break;
- case (TYPE_MAIN | TAG_MAIN_ENDCOLLECTION):
+ case HID_RI_END_COLLECTION(0):
if (CurrCollectionPath == NULL)
return HID_PARSE_UnexpectedEndCollection;
CurrCollectionPath = CurrCollectionPath->Parent;
break;
- case (TYPE_MAIN | TAG_MAIN_INPUT):
- case (TYPE_MAIN | TAG_MAIN_OUTPUT):
- case (TYPE_MAIN | TAG_MAIN_FEATURE):
+ case HID_RI_INPUT(0):
+ case HID_RI_OUTPUT(0):
+ case HID_RI_FEATURE(0):
for (uint8_t ReportItemNum = 0; ReportItemNum < CurrStateTable->ReportCount; ReportItemNum++)
{
HID_ReportItem_t NewReportItem;
@@ -242,11 +239,11 @@ uint8_t USB_ProcessHIDReport(const uint8_t* ReportData,
NewReportItem.Attributes.Usage.Usage = UsageMinMax.Minimum++;
}
- uint8_t ItemTag = (HIDReportItem & TAG_MASK);
+ uint8_t ItemTypeTag = (HIDReportItem & (HID_RI_TYPE_MASK | HID_RI_TAG_MASK));
- if (ItemTag == TAG_MAIN_INPUT)
+ if (ItemTypeTag == HID_RI_INPUT(0))
NewReportItem.ItemType = HID_REPORT_ITEM_In;
- else if (ItemTag == TAG_MAIN_OUTPUT)
+ else if (ItemTypeTag == HID_RI_OUTPUT(0))
NewReportItem.ItemType = HID_REPORT_ITEM_Out;
else
NewReportItem.ItemType = HID_REPORT_ITEM_Feature;
@@ -258,7 +255,7 @@ uint8_t USB_ProcessHIDReport(const uint8_t* ReportData,
if (ParserData->LargestReportSizeBits < NewReportItem.BitOffset)
ParserData->LargestReportSizeBits = NewReportItem.BitOffset;
- if (!(ReportItemData & IOF_CONSTANT) && CALLBACK_HIDParser_FilterHIDReportItem(&NewReportItem))
+ if (!(ReportItemData & HID_IOF_CONSTANT) && CALLBACK_HIDParser_FilterHIDReportItem(&NewReportItem))
{
if (ParserData->TotalReportItems == HID_MAX_REPORTITEMS)
return HID_PARSE_InsufficientReportItems;
@@ -273,7 +270,7 @@ uint8_t USB_ProcessHIDReport(const uint8_t* ReportData,
break;
}
- if ((HIDReportItem & TYPE_MASK) == TYPE_MAIN)
+ if ((HIDReportItem & HID_RI_TYPE_MASK) == HID_RI_TYPE_MAIN)
{
UsageMinMax.Minimum = 0;
UsageMinMax.Maximum = 0;
@@ -356,6 +353,3 @@ uint16_t USB_GetHIDReportSize(HID_ReportInfo_t* const ParserData,
return 0;
}
-
-#endif
-
diff --git a/LUFA/Drivers/USB/Class/Host/HIDParser.h b/LUFA/Drivers/USB/Class/Common/HIDParser.h
index e5b4f9b5f..e5b4f9b5f 100644
--- a/LUFA/Drivers/USB/Class/Host/HIDParser.h
+++ b/LUFA/Drivers/USB/Class/Common/HIDParser.h
diff --git a/LUFA/Drivers/USB/Class/Common/HIDReportData.h b/LUFA/Drivers/USB/Class/Common/HIDReportData.h
new file mode 100644
index 000000000..f1effb2a1
--- /dev/null
+++ b/LUFA/Drivers/USB/Class/Common/HIDReportData.h
@@ -0,0 +1,118 @@
+/*
+ LUFA Library
+ Copyright (C) Dean Camera, 2011.
+
+ dean [at] fourwalledcubicle [dot] com
+ www.lufa-lib.org
+*/
+
+/*
+ Copyright 2011 Dean Camera (dean [at] fourwalledcubicle [dot] com)
+
+ Permission to use, copy, modify, distribute, and sell this
+ software and its documentation for any purpose is hereby granted
+ without fee, provided that the above copyright notice appear in
+ all copies and that both that the copyright notice and this
+ permission notice and warranty disclaimer appear in supporting
+ documentation, and that the name of the author not be used in
+ advertising or publicity pertaining to distribution of the
+ software without specific, written prior permission.
+
+ The author disclaim all warranties with regard to this
+ software, including all implied warranties of merchantability
+ and fitness. In no event shall the author be liable for any
+ special, indirect or consequential damages or any damages
+ whatsoever resulting from loss of use, data or profits, whether
+ in an action of contract, negligence or other tortious action,
+ arising out of or in connection with the use or performance of
+ this software.
+*/
+
+/** \file
+ * \brief Constants for HID report item attributes.
+ *
+ * HID report item constants for report item attributes. Refer to the HID specification for
+ * details on each flag's meaning when applied to an IN, OUT or FEATURE item.
+ */
+
+/** \ingroup Group_HIDParser
+ * @defgroup Group_HIDIOFConst Input/Output/Feature Masks
+ *
+ * Masks indicating the type of Input, Output of Feature HID report item.
+ *
+ * @{
+ */
+
+#ifndef __HIDREPORTDATA_H__
+#define __HIDREPORTDATA_H__
+
+ /* Private Interface - For use in library only: */
+ #if !defined(__DOXYGEN__)
+ /* Macros: */
+ #define HID_RI_DATA_SIZE_MASK 0x03
+ #define HID_RI_TYPE_MASK 0x0C
+ #define HID_RI_TAG_MASK 0xF0
+
+ #define HID_RI_TYPE_MAIN 0x00
+ #define HID_RI_TYPE_GLOBAL 0x04
+ #define HID_RI_TYPE_LOCAL 0x08
+
+ #define HID_RI_DATA_BITS_0 0x00
+ #define HID_RI_DATA_BITS_8 0x01
+ #define HID_RI_DATA_BITS_16 0x02
+ #define HID_RI_DATA_BITS_32 0x03
+ #define HID_RI_DATA_BITS(DataBits) HID_RI_DATA_BITS_ ## DataBits
+ #endif
+
+ /* Public Interface - May be used in end-application: */
+ /* Macros: */
+ /** \name HID Input, Output and Feature Report Descriptor Item Flags */
+ //@{
+ #define HID_IOF_CONSTANT (1 << 0)
+ #define HID_IOF_DATA (0 << 0)
+ #define HID_IOF_VARIABLE (1 << 1)
+ #define HID_IOF_ARRAY (0 << 1)
+ #define HID_IOF_RELATIVE (1 << 2)
+ #define HID_IOF_ABSOLUTE (0 << 2)
+ #define HID_IOF_WRAP (1 << 3)
+ #define HID_IOF_NO_WRAP (0 << 3)
+ #define HID_IOF_NON_LINEAR (1 << 4)
+ #define HID_IOF_LINEAR (0 << 4)
+ #define HID_IOF_NO_PREFERRED_STATE (1 << 5)
+ #define HID_IOF_PREFERRED_STATE (0 << 5)
+ #define HID_IOF_NULLSTATE (1 << 6)
+ #define HID_IOF_NO_NULL_POSITION (0 << 6)
+ #define HID_IOF_VOLATILE (1 << 7)
+ #define HID_IOF_NON_VOLATILE (0 << 7)
+ #define HID_IOF_BUFFERED_BYTES (1 << 8)
+ #define HID_IOF_BITFIELD (0 << 8)
+ //@}
+
+ /** \name HID Report Descriptor Item Macros */
+ //@{
+ #define HID_RI_INPUT(DataBits) (HID_RI_TYPE_MAIN | 0x80 | HID_RI_DATA_BITS(DataBits))
+ #define HID_RI_OUTPUT(DataBits) (HID_RI_TYPE_MAIN | 0x90 | HID_RI_DATA_BITS(DataBits))
+ #define HID_RI_COLLECTION(DataBits) (HID_RI_TYPE_MAIN | 0xA0 | HID_RI_DATA_BITS(DataBits))
+ #define HID_RI_FEATURE(DataBits) (HID_RI_TYPE_MAIN | 0xB0 | HID_RI_DATA_BITS(DataBits))
+ #define HID_RI_END_COLLECTION(DataBits) (HID_RI_TYPE_MAIN | 0xC0 | HID_RI_DATA_BITS(DataBits))
+ #define HID_RI_USAGE_PAGE(DataBits) (HID_RI_TYPE_GLOBAL | 0x00 | HID_RI_DATA_BITS(DataBits))
+ #define HID_RI_LOGICAL_MINIMUM(DataBits) (HID_RI_TYPE_GLOBAL | 0x10 | HID_RI_DATA_BITS(DataBits))
+ #define HID_RI_LOGICAL_MAXIMUM(DataBits) (HID_RI_TYPE_GLOBAL | 0x20 | HID_RI_DATA_BITS(DataBits))
+ #define HID_RI_PHYSICAL_MINIMUM(DataBits) (HID_RI_TYPE_GLOBAL | 0x30 | HID_RI_DATA_BITS(DataBits))
+ #define HID_RI_PHYSICAL_MAXIMUM(DataBits) (HID_RI_TYPE_GLOBAL | 0x40 | HID_RI_DATA_BITS(DataBits))
+ #define HID_RI_UNIT_EXPONENT(DataBits) (HID_RI_TYPE_GLOBAL | 0x50 | HID_RI_DATA_BITS(DataBits))
+ #define HID_RI_UNIT(DataBits) (HID_RI_TYPE_GLOBAL | 0x60 | HID_RI_DATA_BITS(DataBits))
+ #define HID_RI_REPORT_SIZE(DataBits) (HID_RI_TYPE_GLOBAL | 0x70 | HID_RI_DATA_BITS(DataBits))
+ #define HID_RI_REPORT_ID(DataBits) (HID_RI_TYPE_GLOBAL | 0x80 | HID_RI_DATA_BITS(DataBits))
+ #define HID_RI_REPORT_COUNT(DataBits) (HID_RI_TYPE_GLOBAL | 0x90 | HID_RI_DATA_BITS(DataBits))
+ #define HID_RI_PUSH(DataBits) (HID_RI_TYPE_GLOBAL | 0xA0 | HID_RI_DATA_BITS(DataBits))
+ #define HID_RI_POP(DataBits) (HID_RI_TYPE_GLOBAL | 0xB0 | HID_RI_DATA_BITS(DataBits))
+ #define HID_RI_USAGE(DataBits) (HID_RI_TYPE_LOCAL | 0x00 | HID_RI_DATA_BITS(DataBits))
+ #define HID_RI_USAGE_MINIMUM(DataBits) (HID_RI_TYPE_LOCAL | 0x10 | HID_RI_DATA_BITS(DataBits))
+ #define HID_RI_USAGE_MAXIMUM(DataBits) (HID_RI_TYPE_LOCAL | 0x20 | HID_RI_DATA_BITS(DataBits))
+ //@}
+
+/** @} */
+
+#endif
+
diff --git a/LUFA/Drivers/USB/Class/Device/HID.h b/LUFA/Drivers/USB/Class/Device/HID.h
index 631b191b5..bca531abf 100644
--- a/LUFA/Drivers/USB/Class/Device/HID.h
+++ b/LUFA/Drivers/USB/Class/Device/HID.h
@@ -43,6 +43,7 @@
* \section Sec_Dependencies Module Source Dependencies
* The following files must be built with any user project that uses this module:
* - LUFA/Drivers/USB/Class/Device/HID.c <i>(Makefile source module name: LUFA_SRC_USBCLASS)</i>
+ * - LUFA/Drivers/USB/Class/Common/HIDParser.c <i>(Makefile source module name: LUFA_SRC_USB)</i>
*
* \section Sec_ModDescription Module Description
* Device Mode USB Class driver framework interface, for the HID USB Class driver.
diff --git a/LUFA/Drivers/USB/Class/Host/HID.h b/LUFA/Drivers/USB/Class/Host/HID.h
index 14ba24bce..901832476 100644
--- a/LUFA/Drivers/USB/Class/Host/HID.h
+++ b/LUFA/Drivers/USB/Class/Host/HID.h
@@ -43,7 +43,7 @@
* \section Sec_Dependencies Module Source Dependencies
* The following files must be built with any user project that uses this module:
* - LUFA/Drivers/USB/Class/Host/HID.c <i>(Makefile source module name: LUFA_SRC_USBCLASS)</i>
- * - LUFA/Drivers/USB/Class/Host/HIDParser.c <i>(Makefile source module name: LUFA_SRC_USB)</i>
+ * - LUFA/Drivers/USB/Class/Common/HIDParser.c <i>(Makefile source module name: LUFA_SRC_USB)</i>
*
* \section Sec_ModDescription Module Description
* Host Mode USB Class driver framework interface, for the HID USB Class driver.
@@ -57,7 +57,6 @@
/* Includes: */
#include "../../USB.h"
#include "../Common/HID.h"
- #include "HIDParser.h"
/* Enable C linkage for C++ Compilers: */
#if defined(__cplusplus)
diff --git a/LUFA/Drivers/USB/Class/Host/HIDReportData.h b/LUFA/Drivers/USB/Class/Host/HIDReportData.h
deleted file mode 100644
index 35dd46efa..000000000
--- a/LUFA/Drivers/USB/Class/Host/HIDReportData.h
+++ /dev/null
@@ -1,142 +0,0 @@
-/*
- LUFA Library
- Copyright (C) Dean Camera, 2011.
-
- dean [at] fourwalledcubicle [dot] com
- www.lufa-lib.org
-*/
-
-/*
- Copyright 2011 Dean Camera (dean [at] fourwalledcubicle [dot] com)
-
- Permission to use, copy, modify, distribute, and sell this
- software and its documentation for any purpose is hereby granted
- without fee, provided that the above copyright notice appear in
- all copies and that both that the copyright notice and this
- permission notice and warranty disclaimer appear in supporting
- documentation, and that the name of the author not be used in
- advertising or publicity pertaining to distribution of the
- software without specific, written prior permission.
-
- The author disclaim all warranties with regard to this
- software, including all implied warranties of merchantability
- and fitness. In no event shall the author be liable for any
- special, indirect or consequential damages or any damages
- whatsoever resulting from loss of use, data or profits, whether
- in an action of contract, negligence or other tortious action,
- arising out of or in connection with the use or performance of
- this software.
-*/
-
-/** \file
- * \brief Constants for HID report item attributes.
- *
- * HID report item constants for report item attributes. Refer to the HID specification for
- * details on each flag's meaning when applied to an IN, OUT or FEATURE item.
- */
-
-/** \ingroup Group_HIDParser
- * @defgroup Group_HIDIOFConst Input/Output/Feature Masks
- *
- * Masks indicating the type of Input, Output of Feature HID report item.
- *
- * @{
- */
-
-#ifndef __HIDREPORTDATA_H__
-#define __HIDREPORTDATA_H__
-
- /* Public Interface - May be used in end-application: */
- /* Macros: */
- /** \ref HID_ReportItem_t.ItemFlags flag for constant data. */
- #define IOF_CONSTANT (1 << 0)
-
- /** \ref HID_ReportItem_t.ItemFlags flag for data. */
- #define IOF_DATA (0 << 0)
-
- /** \ref HID_ReportItem_t.ItemFlags flag for variable data. */
- #define IOF_VARIABLE (1 << 1)
-
- /** \ref HID_ReportItem_t.ItemFlags flag for array data. */
- #define IOF_ARRAY (0 << 1)
-
- /** \ref HID_ReportItem_t.ItemFlags flag for relative data. */
- #define IOF_RELATIVE (1 << 2)
-
- /** \ref HID_ReportItem_t.ItemFlags flag for absolute data. */
- #define IOF_ABSOLUTE (0 << 2)
-
- /** \ref HID_ReportItem_t.ItemFlags flag for wrapped value data. */
- #define IOF_WRAP (1 << 3)
-
- /** \ref HID_ReportItem_t.ItemFlags flag for non-wrapped value data. */
- #define IOF_NOWRAP (0 << 3)
-
- /** \ref HID_ReportItem_t.ItemFlags flag for non linear data. */
- #define IOF_NONLINEAR (1 << 4)
-
- /** \ref HID_ReportItem_t.ItemFlags flag for linear data. */
- #define IOF_LINEAR (0 << 4)
-
- /** \ref HID_ReportItem_t.ItemFlags flag for no preferred state. */
- #define IOF_NOPREFERRED (1 << 5)
-
- /** \ref HID_ReportItem_t.ItemFlags flag for preferred state items. */
- #define IOF_PREFERREDSTATE (0 << 5)
-
- /** \ref HID_ReportItem_t.ItemFlags flag for null state items. */
- #define IOF_NULLSTATE (1 << 6)
-
- /** \ref HID_ReportItem_t.ItemFlags flag for no null position data. */
- #define IOF_NONULLPOSITION (0 << 6)
-
- /** \ref HID_ReportItem_t.ItemFlags flag for buffered bytes. */
- #define IOF_BUFFEREDBYTES (1 << 8)
-
- /** \ref HID_ReportItem_t.ItemFlags flag for bit field data. */
- #define IOF_BITFIELD (0 << 8)
-
- /* Private Interface - For use in library only: */
- #if !defined(__DOXYGEN__)
- /* Macros: */
- #define DATA_SIZE_MASK 0x03
- #define TYPE_MASK 0x0C
- #define TAG_MASK 0xF0
-
- #define DATA_SIZE_0 0x00
- #define DATA_SIZE_1 0x01
- #define DATA_SIZE_2 0x02
- #define DATA_SIZE_4 0x03
-
- #define TYPE_MAIN 0x00
- #define TYPE_GLOBAL 0x04
- #define TYPE_LOCAL 0x08
-
- #define TAG_MAIN_INPUT 0x80
- #define TAG_MAIN_OUTPUT 0x90
- #define TAG_MAIN_COLLECTION 0xA0
- #define TAG_MAIN_FEATURE 0xB0
- #define TAG_MAIN_ENDCOLLECTION 0xC0
-
- #define TAG_GLOBAL_USAGEPAGE 0x00
- #define TAG_GLOBAL_LOGICALMIN 0x10
- #define TAG_GLOBAL_LOGICALMAX 0x20
- #define TAG_GLOBAL_PHYSMIN 0x30
- #define TAG_GLOBAL_PHYSMAX 0x40
- #define TAG_GLOBAL_UNITEXP 0x50
- #define TAG_GLOBAL_UNIT 0x60
- #define TAG_GLOBAL_REPORTSIZE 0x70
- #define TAG_GLOBAL_REPORTID 0x80
- #define TAG_GLOBAL_REPORTCOUNT 0x90
- #define TAG_GLOBAL_PUSH 0xA0
- #define TAG_GLOBAL_POP 0xB0
-
- #define TAG_LOCAL_USAGE 0x00
- #define TAG_LOCAL_USAGEMIN 0x10
- #define TAG_LOCAL_USAGEMAX 0x20
- #endif
-
-/** @} */
-
-#endif
-
diff --git a/LUFA/ManPages/ChangeLog.txt b/LUFA/ManPages/ChangeLog.txt
index 26b3a9a38..9ae408416 100644
--- a/LUFA/ManPages/ChangeLog.txt
+++ b/LUFA/ManPages/ChangeLog.txt
@@ -17,6 +17,7 @@
* - Added basic driver example use code to the library documentation
* - Added new Endpoint_Null_Stream() and Pipe_Null_stream() functions
* - Added new ADC_GET_CHANNEL_MASK() convenience macro
+ * - New HID report item macros (with HID_RI_ prefix) to allow for easy creation and editing of HID report descriptors
* - Library Applications:
* - Added ability to write protect Mass Storage disk write operations from the host OS
*
@@ -32,6 +33,8 @@
* where the number of bytes in the transfer that have been completed can be stored (or NULL if entire transaction
* should be performed in one chunk)
* - The NO_STREAM_CALLBACKS compile time option has now been removed due to the new partial stream transfer feature
+ * - Changed over all project and demo HID report descriptors to use the new HID report item macros
+ * - Moved the HIDParser.c source file to the LUFA/Drivers/USB/Class/Common/ directory from the LUFA/Drivers/USB/Class/Host/
* - Library Applications:
* - Changed the XPLAINBridge software UART to use the regular timer CTC mode instead of the alternative CTC mode
* via the Input Capture register, to reduce user confusion
diff --git a/LUFA/ManPages/FutureChanges.txt b/LUFA/ManPages/FutureChanges.txt
index 319c4c991..2cb485aad 100644
--- a/LUFA/ManPages/FutureChanges.txt
+++ b/LUFA/ManPages/FutureChanges.txt
@@ -18,7 +18,6 @@
* -# Add ability to get number of bytes not written with pipe/endpoint write routines after an error
* -# Change makefiles to allow for absolute LUFA location to be used
* -# Re-add interrupt Pipe/Endpoint support
- * -# Add HID report macros to make HID report editing easier
* -# Investigate dynamically created device descriptors
* - Known Bugs
* -# No wakeup when plugged into hub, and hub plugged into host
diff --git a/LUFA/makefile b/LUFA/makefile
index 9ac381871..3c85d40ab 100644
--- a/LUFA/makefile
+++ b/LUFA/makefile
@@ -30,7 +30,7 @@ LUFA_SRC_USB = $(LUFA_ROOT_PATH)/Drivers/USB/LowLevel/Device.c
$(LUFA_ROOT_PATH)/Drivers/USB/HighLevel/HostStandardReq.c \
$(LUFA_ROOT_PATH)/Drivers/USB/HighLevel/PipeStream.c \
$(LUFA_ROOT_PATH)/Drivers/USB/HighLevel/USBTask.c \
- $(LUFA_ROOT_PATH)/Drivers/USB/Class/Host/HIDParser.c
+ $(LUFA_ROOT_PATH)/Drivers/USB/Class/Common/HIDParser.c
LUFA_SRC_USBCLASS = $(LUFA_ROOT_PATH)/Drivers/USB/Class/Device/Audio.c \
$(LUFA_ROOT_PATH)/Drivers/USB/Class/Device/CDC.c \
$(LUFA_ROOT_PATH)/Drivers/USB/Class/Device/HID.c \