Commit 9257f4ab authored by Dean Camera's avatar Dean Camera
Browse files

Add briefs for the library core structures.

parent 05576760
...@@ -31,6 +31,8 @@ ...@@ -31,6 +31,8 @@
/** \file /** \file
* \brief Common definitions and declarations for the library USB Mass Storage Class driver. * \brief Common definitions and declarations for the library USB Mass Storage Class driver.
* *
* Common definitions and declarations for the library USB Mass Storage Class driver.
*
* \note This file should not be included directly. It is automatically included as needed by the class driver * \note This file should not be included directly. It is automatically included as needed by the class driver
* dispatch header located in LUFA/Drivers/USB/Class/MassStorage.h. * dispatch header located in LUFA/Drivers/USB/Class/MassStorage.h.
*/ */
...@@ -204,7 +206,9 @@ ...@@ -204,7 +206,9 @@
#define SCSI_ASENSEQ_OPERATION_IN_PROGRESS 0x07 #define SCSI_ASENSEQ_OPERATION_IN_PROGRESS 0x07
/* Type defines: */ /* Type defines: */
/** Type define for a Command Block Wrapper, used in the Mass Storage Bulk-Only Transport protocol. */ /** \brief Mass Storage Class Command Block Wrapper.
*
* Type define for a Command Block Wrapper, used in the Mass Storage Bulk-Only Transport protocol. */
typedef struct typedef struct
{ {
uint32_t Signature; /**< Command block signature, must be CBW_SIGNATURE to indicate a valid Command Block */ uint32_t Signature; /**< Command block signature, must be CBW_SIGNATURE to indicate a valid Command Block */
...@@ -216,7 +220,10 @@ ...@@ -216,7 +220,10 @@
uint8_t SCSICommandData[16]; /**< Issued SCSI command in the Command Block */ uint8_t SCSICommandData[16]; /**< Issued SCSI command in the Command Block */
} MS_CommandBlockWrapper_t; } MS_CommandBlockWrapper_t;
/** Type define for a Command Status Wrapper, used in the Mass Storage Bulk-Only Transport protocol. */ /** \brief Mass Storage Class Command Status Wrapper.
*
* Type define for a Command Status Wrapper, used in the Mass Storage Bulk-Only Transport protocol.
*/
typedef struct typedef struct
{ {
uint32_t Signature; /**< Status block signature, must be CSW_SIGNATURE to indicate a valid Command Status */ uint32_t Signature; /**< Status block signature, must be CSW_SIGNATURE to indicate a valid Command Status */
...@@ -225,7 +232,9 @@ ...@@ -225,7 +232,9 @@
uint8_t Status; /**< Status code of the issued command - a value from the MassStorage_CommandStatusCodes_t enum */ uint8_t Status; /**< Status code of the issued command - a value from the MassStorage_CommandStatusCodes_t enum */
} MS_CommandStatusWrapper_t; } MS_CommandStatusWrapper_t;
/** Type define for a SCSI Sense structure. Structures of this type are filled out by the /** \brief Mass Storage Class SCSI Sense Structure
*
* Type define for a SCSI Sense structure. Structures of this type are filled out by the
* device via the MassStore_RequestSense() function, indicating the current sense data of the * device via the MassStore_RequestSense() function, indicating the current sense data of the
* device (giving explicit error codes for the last issued command). For details of the * device (giving explicit error codes for the last issued command). For details of the
* structure contents, refer to the SCSI specifications. * structure contents, refer to the SCSI specifications.
...@@ -251,7 +260,9 @@ ...@@ -251,7 +260,9 @@
uint8_t SenseKeySpecific[3]; uint8_t SenseKeySpecific[3];
} SCSI_Request_Sense_Response_t; } SCSI_Request_Sense_Response_t;
/** Type define for a SCSI Inquiry structure. Structures of this type are filled out by the /** \brief Mass Storage Class SCSI Inquiry Structure.
*
* Type define for a SCSI Inquiry structure. Structures of this type are filled out by the
* device via the MassStore_Inquiry() function, retrieving the attached device's information. * device via the MassStore_Inquiry() function, retrieving the attached device's information.
* For details of the structure contents, refer to the SCSI specifications. * For details of the structure contents, refer to the SCSI specifications.
*/ */
......
...@@ -31,6 +31,8 @@ ...@@ -31,6 +31,8 @@
/** \file /** \file
* \brief Common definitions and declarations for the library USB Printer Class driver. * \brief Common definitions and declarations for the library USB Printer Class driver.
* *
* Common definitions and declarations for the library USB Printer Class driver.
*
* \note This file should not be included directly. It is automatically included as needed by the class driver * \note This file should not be included directly. It is automatically included as needed by the class driver
* dispatch header located in LUFA/Drivers/USB/Class/Printer.h. * dispatch header located in LUFA/Drivers/USB/Class/Printer.h.
*/ */
......
...@@ -31,6 +31,8 @@ ...@@ -31,6 +31,8 @@
/** \file /** \file
* \brief Common definitions and declarations for the library USB RNDIS Class driver. * \brief Common definitions and declarations for the library USB RNDIS Class driver.
* *
* Common definitions and declarations for the library USB RNDIS Class driver.
*
* \note This file should not be included directly. It is automatically included as needed by the class driver * \note This file should not be included directly. It is automatically included as needed by the class driver
* dispatch header located in LUFA/Drivers/USB/Class/RNDIS.h. * dispatch header located in LUFA/Drivers/USB/Class/RNDIS.h.
*/ */
...@@ -110,13 +112,19 @@ ...@@ -110,13 +112,19 @@
}; };
/* Type Defines: */ /* Type Defines: */
/** Type define for a physical MAC address of a device on a network */ /** \brief MAC Address Structure.
*
* Type define for a physical MAC address of a device on a network
*/
typedef struct typedef struct
{ {
uint8_t Octets[6]; /**< Individual bytes of a MAC address */ uint8_t Octets[6]; /**< Individual bytes of a MAC address */
} MAC_Address_t; } MAC_Address_t;
/** Type define for an Ethernet frame buffer. */ /** \brief RNDIS Ethernet Frame Packet Information Structure.
*
* Type define for an Ethernet frame buffer data and information structure.
*/
typedef struct typedef struct
{ {
uint8_t FrameData[ETHERNET_FRAME_SIZE_MAX]; /**< Ethernet frame contents */ uint8_t FrameData[ETHERNET_FRAME_SIZE_MAX]; /**< Ethernet frame contents */
...@@ -124,14 +132,20 @@ ...@@ -124,14 +132,20 @@
bool FrameInBuffer; /**< Indicates if a frame is currently stored in the buffer */ bool FrameInBuffer; /**< Indicates if a frame is currently stored in the buffer */
} Ethernet_Frame_Info_t; } Ethernet_Frame_Info_t;
/** Type define for a RNDIS message header, sent before RNDIS messages */ /** \brief RNDIS Common Message Header Structure.
*
* Type define for a RNDIS message header, sent before RNDIS messages.
*/
typedef struct typedef struct
{ {
uint32_t MessageType; /**< RNDIS message type, a REMOTE_NDIS_*_MSG constant */ uint32_t MessageType; /**< RNDIS message type, a REMOTE_NDIS_*_MSG constant */
uint32_t MessageLength; /**< Total length of the RNDIS message, in bytes */ uint32_t MessageLength; /**< Total length of the RNDIS message, in bytes */
} RNDIS_Message_Header_t; } RNDIS_Message_Header_t;
/** Type define for a RNDIS packet message, used to encapsulate Ethernet packets sent to and from the adapter */ /** \brief RNDIS Message Structure.
*
* Type define for a RNDIS packet message, used to encapsulate Ethernet packets sent to and from the adapter.
*/
typedef struct typedef struct
{ {
uint32_t MessageType; uint32_t MessageType;
...@@ -147,7 +161,10 @@ ...@@ -147,7 +161,10 @@
uint32_t Reserved; uint32_t Reserved;
} RNDIS_Packet_Message_t; } RNDIS_Packet_Message_t;
/** Type define for a RNDIS Initialize command message */ /** \brief RNDIS Initialization Message Structure.
*
* Type define for a RNDIS Initialize command message.
*/
typedef struct typedef struct
{ {
uint32_t MessageType; uint32_t MessageType;
...@@ -159,7 +176,10 @@ ...@@ -159,7 +176,10 @@
uint32_t MaxTransferSize; uint32_t MaxTransferSize;
} RNDIS_Initialize_Message_t; } RNDIS_Initialize_Message_t;
/** Type define for a RNDIS Initialize complete response message */ /** \brief RNDIS Initialize Complete Message Structure.
*
* Type define for a RNDIS Initialize Complete response message.
*/
typedef struct typedef struct
{ {
uint32_t MessageType; uint32_t MessageType;
...@@ -178,7 +198,10 @@ ...@@ -178,7 +198,10 @@
uint32_t AFListSize; uint32_t AFListSize;
} RNDIS_Initialize_Complete_t; } RNDIS_Initialize_Complete_t;
/** Type define for a RNDIS Keepalive command message */ /** \brief RNDIS Keep Alive Message Structure.
*
* Type define for a RNDIS Keep Alive command message.
*/
typedef struct typedef struct
{ {
uint32_t MessageType; uint32_t MessageType;
...@@ -186,7 +209,10 @@ ...@@ -186,7 +209,10 @@
uint32_t RequestId; uint32_t RequestId;
} RNDIS_KeepAlive_Message_t; } RNDIS_KeepAlive_Message_t;
/** Type define for a RNDIS Keepalive complete message */ /** \brief RNDIS Keep Alive Complete Message Structure.
*
* Type define for a RNDIS Keep Alive Complete response message.
*/
typedef struct typedef struct
{ {
uint32_t MessageType; uint32_t MessageType;
...@@ -195,7 +221,10 @@ ...@@ -195,7 +221,10 @@
uint32_t Status; uint32_t Status;
} RNDIS_KeepAlive_Complete_t; } RNDIS_KeepAlive_Complete_t;
/** Type define for a RNDIS Reset complete message */ /** \brief RNDIS Reset Complete Message Structure.
*
* Type define for a RNDIS Reset Complete response message.
*/
typedef struct typedef struct
{ {
uint32_t MessageType; uint32_t MessageType;
...@@ -205,7 +234,10 @@ ...@@ -205,7 +234,10 @@
uint32_t AddressingReset; uint32_t AddressingReset;
} RNDIS_Reset_Complete_t; } RNDIS_Reset_Complete_t;
/** Type define for a RNDIS Set command message */ /** \brief RNDIS OID Property Set Message Structure.
*
* Type define for a RNDIS OID Property Set command message.
*/
typedef struct typedef struct
{ {
uint32_t MessageType; uint32_t MessageType;
...@@ -218,7 +250,10 @@ ...@@ -218,7 +250,10 @@
uint32_t DeviceVcHandle; uint32_t DeviceVcHandle;
} RNDIS_Set_Message_t; } RNDIS_Set_Message_t;
/** Type define for a RNDIS Set complete response message */ /** \brief RNDIS OID Property Set Complete Message Structure.
*
* Type define for a RNDIS OID Property Set Complete response message.
*/
typedef struct typedef struct
{ {
uint32_t MessageType; uint32_t MessageType;
...@@ -227,7 +262,10 @@ ...@@ -227,7 +262,10 @@
uint32_t Status; uint32_t Status;
} RNDIS_Set_Complete_t; } RNDIS_Set_Complete_t;
/** Type define for a RNDIS Query command message */ /** \brief RNDIS OID Property Query Message Structure.
*
* Type define for a RNDIS OID Property Query command message.
*/
typedef struct typedef struct
{ {
uint32_t MessageType; uint32_t MessageType;
...@@ -240,7 +278,10 @@ ...@@ -240,7 +278,10 @@
uint32_t DeviceVcHandle; uint32_t DeviceVcHandle;
} RNDIS_Query_Message_t; } RNDIS_Query_Message_t;
/** Type define for a RNDIS Query complete response message */ /** \brief RNDIS OID Property Query Complete Message Structure.
*
* Type define for a RNDIS OID Property Query Complete response message.
*/
typedef struct typedef struct
{ {
uint32_t MessageType; uint32_t MessageType;
......
...@@ -31,6 +31,8 @@ ...@@ -31,6 +31,8 @@
/** \file /** \file
* \brief Common RNDIS class constant definitions. * \brief Common RNDIS class constant definitions.
* *
* Common RNDIS class constant definitions.
*
* \note This file should not be included directly. It is automatically included as needed by the class driver * \note This file should not be included directly. It is automatically included as needed by the class driver
* dispatch header located in LUFA/Drivers/USB/Class/Audio.h. * dispatch header located in LUFA/Drivers/USB/Class/Audio.h.
*/ */
......
...@@ -31,6 +31,8 @@ ...@@ -31,6 +31,8 @@
/** \file /** \file
* \brief Common definitions and declarations for the library USB Still Image Class driver. * \brief Common definitions and declarations for the library USB Still Image Class driver.
* *
* Common definitions and declarations for the library USB Still Image Class driver.
*
* \note This file should not be included directly. It is automatically included as needed by the class driver * \note This file should not be included directly. It is automatically included as needed by the class driver
* dispatch header located in LUFA/Drivers/USB/Class/StillImage.h. * dispatch header located in LUFA/Drivers/USB/Class/StillImage.h.
*/ */
...@@ -120,7 +122,9 @@ ...@@ -120,7 +122,9 @@
}; };
/* Type Defines: */ /* Type Defines: */
/** Type define for a PIMA container, use to send commands and receive responses to and from an /** \brief PIMA Still Image Device Command/Response Container.
*
* Type define for a PIMA container, use to send commands and receive responses to and from an
* attached Still Image device. * attached Still Image device.
*/ */
typedef struct typedef struct
......
...@@ -31,6 +31,8 @@ ...@@ -31,6 +31,8 @@
/** \file /** \file
* \brief Device mode driver for the library USB Audio Class driver. * \brief Device mode driver for the library USB Audio Class driver.
* *
* Device mode driver for the library USB Audio Class driver.
*
* \note This file should not be included directly. It is automatically included as needed by the class driver * \note This file should not be included directly. It is automatically included as needed by the class driver
* dispatch header located in LUFA/Drivers/USB/Class/Audio.h. * dispatch header located in LUFA/Drivers/USB/Class/Audio.h.
*/ */
...@@ -68,8 +70,10 @@ ...@@ -68,8 +70,10 @@
#endif #endif
/* Public Interface - May be used in end-application: */ /* Public Interface - May be used in end-application: */
/* Type Defines: */ /* Type Defines: */
/** Class state structure. An instance of this structure should be made for each Audio interface /** \brief Audio Class Device Mode Configuration and State Structure.
*
* Class state structure. An instance of this structure should be made for each Audio interface
* within the user application, and passed to each of the Audio class driver functions as the * within the user application, and passed to each of the Audio class driver functions as the
* AudioInterfaceInfo parameter. This stores each Audio interface's configuration and state information. * AudioInterfaceInfo parameter. This stores each Audio interface's configuration and state information.
*/ */
......
...@@ -31,6 +31,8 @@ ...@@ -31,6 +31,8 @@
/** \file /** \file
* \brief Device mode driver for the library USB CDC Class driver. * \brief Device mode driver for the library USB CDC Class driver.
* *
* Device mode driver for the library USB CDC Class driver.
*
* \note This file should not be included directly. It is automatically included as needed by the class driver * \note This file should not be included directly. It is automatically included as needed by the class driver
* dispatch header located in LUFA/Drivers/USB/Class/CDC.h. * dispatch header located in LUFA/Drivers/USB/Class/CDC.h.
*/ */
...@@ -87,7 +89,9 @@ ...@@ -87,7 +89,9 @@
/* Public Interface - May be used in end-application: */ /* Public Interface - May be used in end-application: */
/* Type Defines: */ /* Type Defines: */
/** Class state structure. An instance of this structure should be made for each CDC interface /** \brief CDC Class Device Mode Configuration and State Structure.
*
* Class state structure. An instance of this structure should be made for each CDC interface
* within the user application, and passed to each of the CDC class driver functions as the * within the user application, and passed to each of the CDC class driver functions as the
* CDCInterfaceInfo parameter. This stores each CDC interface's configuration and state information. * CDCInterfaceInfo parameter. This stores each CDC interface's configuration and state information.
*/ */
......
...@@ -31,6 +31,8 @@ ...@@ -31,6 +31,8 @@
/** \file /** \file
* \brief Device mode driver for the library USB HID Class driver. * \brief Device mode driver for the library USB HID Class driver.
* *
* Device mode driver for the library USB HID Class driver.
*
* \note This file should not be included directly. It is automatically included as needed by the class driver * \note This file should not be included directly. It is automatically included as needed by the class driver
* dispatch header located in LUFA/Drivers/USB/Class/HID.h. * dispatch header located in LUFA/Drivers/USB/Class/HID.h.
*/ */
...@@ -69,7 +71,9 @@ ...@@ -69,7 +71,9 @@
/* Public Interface - May be used in end-application: */ /* Public Interface - May be used in end-application: */
/* Type Defines: */ /* Type Defines: */
/** Class state structure. An instance of this structure should be made for each HID interface /** \brief HID Class Device Mode Configuration and State Structure.
*
* Class state structure. An instance of this structure should be made for each HID interface
* within the user application, and passed to each of the HID class driver functions as the * within the user application, and passed to each of the HID class driver functions as the
* HIDInterfaceInfo parameter. This stores each HID interface's configuration and state information. * HIDInterfaceInfo parameter. This stores each HID interface's configuration and state information.
* *
......
...@@ -31,6 +31,8 @@ ...@@ -31,6 +31,8 @@
/** \file /** \file
* \brief Device mode driver for the library USB MIDI Class driver. * \brief Device mode driver for the library USB MIDI Class driver.
* *
* Device mode driver for the library USB MIDI Class driver.
*
* \note This file should not be included directly. It is automatically included as needed by the class driver * \note This file should not be included directly. It is automatically included as needed by the class driver
* dispatch header located in LUFA/Drivers/USB/Class/MIDI.h. * dispatch header located in LUFA/Drivers/USB/Class/MIDI.h.
*/ */
...@@ -69,7 +71,9 @@ ...@@ -69,7 +71,9 @@
/* Public Interface - May be used in end-application: */ /* Public Interface - May be used in end-application: */
/* Type Define: */ /* Type Define: */
/** Class state structure. An instance of this structure should be made for each MIDI interface /** \brief MIDI Class Device Mode Configuration and State Structure.
*
* Class state structure. An instance of this structure should be made for each MIDI interface
* within the user application, and passed to each of the MIDI class driver functions as the * within the user application, and passed to each of the MIDI class driver functions as the
* MIDIInterfaceInfo parameter. This stores each MIDI interface's configuration and state information. * MIDIInterfaceInfo parameter. This stores each MIDI interface's configuration and state information.
*/ */
......
...@@ -31,6 +31,8 @@ ...@@ -31,6 +31,8 @@
/** \file /** \file
* \brief Device mode driver for the library USB Mass Storage Class driver. * \brief Device mode driver for the library USB Mass Storage Class driver.
* *
* Device mode driver for the library USB Mass Storage Class driver.
*
* \note This file should not be included directly. It is automatically included as needed by the class driver * \note This file should not be included directly. It is automatically included as needed by the class driver
* dispatch header located in LUFA/Drivers/USB/Class/MassStorage.h. * dispatch header located in LUFA/Drivers/USB/Class/MassStorage.h.
*/ */
...@@ -69,7 +71,9 @@ ...@@ -69,7 +71,9 @@
/* Public Interface - May be used in end-application: */ /* Public Interface - May be used in end-application: */
/* Type Defines: */ /* Type Defines: */
/** Class state structure. An instance of this structure should be made for each Mass Storage interface /** \brief Mass Storage Class Device Mode Configuration and State Structure.
*
* Class state structure. An instance of this structure should be made for each Mass Storage interface
* within the user application, and passed to each of the Mass Storage class driver functions as the * within the user application, and passed to each of the Mass Storage class driver functions as the
* MSInterfaceInfo parameter. This stores each Mass Storage interface's configuration and state information. * MSInterfaceInfo parameter. This stores each Mass Storage interface's configuration and state information.
*/ */
......
...@@ -31,6 +31,8 @@ ...@@ -31,6 +31,8 @@
/** \file /** \file
* \brief Device mode driver for the library USB RNDIS Class driver. * \brief Device mode driver for the library USB RNDIS Class driver.
* *
* Device mode driver for the library USB RNDIS Class driver.
*
* \note This file should not be included directly. It is automatically included as needed by the class driver * \note This file should not be included directly. It is automatically included as needed by the class driver
* dispatch header located in LUFA/Drivers/USB/Class/RNDIS.h. * dispatch header located in LUFA/Drivers/USB/Class/RNDIS.h.
*/ */
...@@ -69,7 +71,9 @@ ...@@ -69,7 +71,9 @@
/* Public Interface - May be used in end-application: */ /* Public Interface - May be used in end-application: */
/* Type Defines: */ /* Type Defines: */
/** Class state structure. An instance of this structure should be made for each RNDIS interface /** \brief RNDIS Class Device Mode Configuration and State Structure.
*
* Class state structure. An instance of this structure should be made for each RNDIS interface
* within the user application, and passed to each of the RNDIS class driver functions as the * within the user application, and passed to each of the RNDIS class driver functions as the
* RNDISInterfaceInfo parameter. This stores each RNDIS interface's configuration and state information. * RNDISInterfaceInfo parameter. This stores each RNDIS interface's configuration and state information.
*/ */
......
...@@ -31,6 +31,8 @@ ...@@ -31,6 +31,8 @@
/** \file /** \file
* \brief Master include file for the library USB HID Class driver. * \brief Master include file for the library USB HID Class driver.
* *
* Master include file for the library USB HID Class driver, for both host and device modes, where available.
*
* This file should be included in all user projects making use of this optional class driver, instead of * This file should be included in all user projects making use of this optional class driver, instead of
* including any headers in the USB/ClassDriver/Device, USB/ClassDriver/Host or USB/ClassDriver/Common subdirectories. * including any headers in the USB/ClassDriver/Device, USB/ClassDriver/Host or USB/ClassDriver/Common subdirectories.
*/ */
......
...@@ -29,10 +29,12 @@ ...@@ -29,10 +29,12 @@
*/ */
/** \file /** \file
* \brief Host mode driver for the library USB Audio Class driver. * \brief Host mode driver for the library USB CDC Class driver.
*
* Host mode driver for the library USB CDC Class driver.
* *
* \note This file should not be included directly. It is automatically included as needed by the class driver * \note This file should not be included directly. It is automatically included as needed by the class driver
* dispatch header located in LUFA/Drivers/USB/Class/Audio.h. * dispatch header located in LUFA/Drivers/USB/Class/CDC.h.
*/ */
/** \ingroup Group_USBClassCDC /** \ingroup Group_USBClassCDC
...@@ -70,7 +72,9 @@ ...@@ -70,7 +72,9 @@
/* Public Interface - May be used in end-application: */ /* Public Interface - May be used in end-application: */
/* Type Defines: */ /* Type Defines: */
/** Class state structure. An instance of this structure should be made within the user application, /** \brief CDC Class Host Mode Configuration and State Structure.
*
* Class state structure. An instance of this structure should be made within the user application,
* and passed to each of the CDC class driver functions as the CDCInterfaceInfo parameter. This * and passed to each of the CDC class driver functions as the CDCInterfaceInfo parameter. This
* stores each CDC interface's configuration and state information. * stores each CDC interface's configuration and state information.
*/ */
......
...@@ -31,6 +31,8 @@ ...@@ -31,6 +31,8 @@
/** \file /** \file
* \brief Host mode driver for the library USB HID Class driver. * \brief Host mode driver for the library USB HID Class driver.
* *
* Host mode driver for the library USB HID Class driver.
*
* \note This file should not be included directly. It is automatically included as needed by the class driver * \note This file should not be included directly. It is automatically included as needed by the class driver
* dispatch header located in LUFA/Drivers/USB/Class/HID.h. * dispatch header located in LUFA/Drivers/USB/Class/HID.h.
*/ */
...@@ -73,7 +75,9 @@ ...@@ -73,7 +75,9 @@
#define HID_ERROR_LOGICAL 0x80 #define HID_ERROR_LOGICAL 0x80
/* Type Defines: */ /* Type Defines: */
/** Class state structure. An instance of this structure should be made within the user application, /** \brief HID Class Host Mode Configuration and State Structure.
*
* Class state structure. An instance of this structure should be made within the user application,
* and passed to each of the HID class driver functions as the HIDInterfaceInfo parameter. This * and passed to each of the HID class driver functions as the HIDInterfaceInfo parameter. This
* stores each HID interface's configuration and state information. * stores each HID interface's configuration and state information.
*/ */
......
...@@ -31,8 +31,8 @@ ...@@ -31,8 +31,8 @@
/** \file /** \file
* \brief USB Human Interface Device (HID) Class report descriptor parser. * \brief USB Human Interface Device (HID) Class report descriptor parser.
* *
* This file allows for the easy parsing of the complex HID report descriptor, which describes the data that * This file allows for the easy parsing of complex HID report descriptors, which describes the data that
* the device transmits to the host. It also provides an easy API for extracting and processing the data * a HID device transmits to the host. It also provides an easy API for extracting and processing the data
* elements inside a HID report sent from an attached HID device.