projects
/
pub
/
lufa.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
More minor renaming of library enums and events to try to create a consistent API.
[pub/lufa.git]
/
LUFA
/
Drivers
/
USB
/
HighLevel
/
StdDescriptors.h
diff --git
a/LUFA/Drivers/USB/HighLevel/StdDescriptors.h
b/LUFA/Drivers/USB/HighLevel/StdDescriptors.h
index
a1a0518
..
caa0fb0
100644
(file)
--- a/
LUFA/Drivers/USB/HighLevel/StdDescriptors.h
+++ b/
LUFA/Drivers/USB/HighLevel/StdDescriptors.h
@@
-28,7
+28,8
@@
this software.
\r
*/
\r
\r
this software.
\r
*/
\r
\r
-/** \file
\r
+/** \ingroup Group_USB
\r
+ * @defgroup Group_Descriptors USB Descriptors
\r
*
\r
* Standard USB device descriptor defines and retrieval routines, for USB devices. This module contains
\r
* structures and macros for the easy creation of standard USB descriptors in USB device projects.
\r
*
\r
* Standard USB device descriptor defines and retrieval routines, for USB devices. This module contains
\r
* structures and macros for the easy creation of standard USB descriptors in USB device projects.
\r
@@
-42,12
+43,6
@@
* descriptors will contain elements named identically to the official USB specification. The alternately
\r
* named descriptor elements are placed in the same order inside the descriptor structures as their officially
\r
* named counterparts, thus they can be correlated easily with the official USB specification.
\r
* descriptors will contain elements named identically to the official USB specification. The alternately
\r
* named descriptor elements are placed in the same order inside the descriptor structures as their officially
\r
* named counterparts, thus they can be correlated easily with the official USB specification.
\r
- */
\r
-
\r
-/** \ingroup Group_USB
\r
- * @defgroup Group_Descriptors USB Descriptors
\r
- *
\r
- * Functions, macros, variables, enums and types related to standard USB descriptors.
\r
*
\r
* @{
\r
*/
\r
*
\r
* @{
\r
*/
\r
@@
-95,85
+90,85
@@
#define VERSION_BCD(x) ((((VERSION_TENS(x) << 4) | VERSION_ONES(x)) << 8) | \
\r
((VERSION_TENTHS(x) << 4) | VERSION_HUNDREDTHS(x)))
\r
\r
#define VERSION_BCD(x) ((((VERSION_TENS(x) << 4) | VERSION_ONES(x)) << 8) | \
\r
((VERSION_TENTHS(x) << 4) | VERSION_HUNDREDTHS(x)))
\r
\r
- /** String language ID for the English language. Should be used in
USB_Descriptor_Language
_t descriptors
\r
+ /** String language ID for the English language. Should be used in
\ref USB_Descriptor_String
_t descriptors
\r
* to indicate that the English language is supported by the device in its string descriptors.
\r
*/
\r
#define LANGUAGE_ID_ENG 0x0409
\r
\r
* to indicate that the English language is supported by the device in its string descriptors.
\r
*/
\r
#define LANGUAGE_ID_ENG 0x0409
\r
\r
- /** Can be masked with an endpoint address for a USB_Descriptor_Endpoint_t endpoint descriptor's
\r
+ /** Can be masked with an endpoint address for a
\ref
USB_Descriptor_Endpoint_t endpoint descriptor's
\r
* EndpointAddress value to indicate to the host that the endpoint is of the IN direction (i.e, from
\r
* device to host).
\r
*/
\r
#define ENDPOINT_DESCRIPTOR_DIR_IN 0x80
\r
\r
* EndpointAddress value to indicate to the host that the endpoint is of the IN direction (i.e, from
\r
* device to host).
\r
*/
\r
#define ENDPOINT_DESCRIPTOR_DIR_IN 0x80
\r
\r
- /** Can be masked with an endpoint address for a USB_Descriptor_Endpoint_t endpoint descriptor's
\r
+ /** Can be masked with an endpoint address for a
\ref
USB_Descriptor_Endpoint_t endpoint descriptor's
\r
* EndpointAddress value to indicate to the host that the endpoint is of the OUT direction (i.e, from
\r
* host to device).
\r
*/
\r
#define ENDPOINT_DESCRIPTOR_DIR_OUT 0x00
\r
\r
* EndpointAddress value to indicate to the host that the endpoint is of the OUT direction (i.e, from
\r
* host to device).
\r
*/
\r
#define ENDPOINT_DESCRIPTOR_DIR_OUT 0x00
\r
\r
- /** Can be masked with other configuration descriptor attributes for a USB_Descriptor_Configuration_Header_t
\r
+ /** Can be masked with other configuration descriptor attributes for a
\ref
USB_Descriptor_Configuration_Header_t
\r
* descriptor's ConfigAttributes value to indicate that the specified configuration can draw its power
\r
* from the host's VBUS line.
\r
*/
\r
#define USB_CONFIG_ATTR_BUSPOWERED 0x80
\r
\r
* descriptor's ConfigAttributes value to indicate that the specified configuration can draw its power
\r
* from the host's VBUS line.
\r
*/
\r
#define USB_CONFIG_ATTR_BUSPOWERED 0x80
\r
\r
- /** Can be masked with other configuration descriptor attributes for a USB_Descriptor_Configuration_Header_t
\r
+ /** Can be masked with other configuration descriptor attributes for a
\ref
USB_Descriptor_Configuration_Header_t
\r
* descriptor's ConfigAttributes value to indicate that the specified configuration can draw its power
\r
* from the device's own power source.
\r
*/
\r
#define USB_CONFIG_ATTR_SELFPOWERED 0xC0
\r
\r
* descriptor's ConfigAttributes value to indicate that the specified configuration can draw its power
\r
* from the device's own power source.
\r
*/
\r
#define USB_CONFIG_ATTR_SELFPOWERED 0xC0
\r
\r
- /** Can be masked with other configuration descriptor attributes for a USB_Descriptor_Configuration_Header_t
\r
+ /** Can be masked with other configuration descriptor attributes for a
\ref
USB_Descriptor_Configuration_Header_t
\r
* descriptor's ConfigAttributes value to indicate that the specified configuration supports the
\r
* remote wakeup feature of the USB standard, allowing a suspended USB device to wake up the host upon
\r
* request.
\r
*/
\r
#define USB_CONFIG_ATTR_REMOTEWAKEUP 0xA0
\r
\r
* descriptor's ConfigAttributes value to indicate that the specified configuration supports the
\r
* remote wakeup feature of the USB standard, allowing a suspended USB device to wake up the host upon
\r
* request.
\r
*/
\r
#define USB_CONFIG_ATTR_REMOTEWAKEUP 0xA0
\r
\r
- /** Can be masked with other endpoint descriptor attributes for a USB_Descriptor_Endpoint_t descriptor's
\r
+ /** Can be masked with other endpoint descriptor attributes for a
\ref
USB_Descriptor_Endpoint_t descriptor's
\r
* Attributes value to indicate that the specified endpoint is not synchronized.
\r
*
\r
* \see The USB specification for more details on the possible Endpoint attributes.
\r
*/
\r
#define ENDPOINT_ATTR_NO_SYNC (0 << 2)
\r
\r
* Attributes value to indicate that the specified endpoint is not synchronized.
\r
*
\r
* \see The USB specification for more details on the possible Endpoint attributes.
\r
*/
\r
#define ENDPOINT_ATTR_NO_SYNC (0 << 2)
\r
\r
- /** Can be masked with other endpoint descriptor attributes for a USB_Descriptor_Endpoint_t descriptor's
\r
+ /** Can be masked with other endpoint descriptor attributes for a
\ref
USB_Descriptor_Endpoint_t descriptor's
\r
* Attributes value to indicate that the specified endpoint is asynchronous.
\r
*
\r
* \see The USB specification for more details on the possible Endpoint attributes.
\r
*/
\r
#define ENDPOINT_ATTR_ASYNC (1 << 2)
\r
\r
* Attributes value to indicate that the specified endpoint is asynchronous.
\r
*
\r
* \see The USB specification for more details on the possible Endpoint attributes.
\r
*/
\r
#define ENDPOINT_ATTR_ASYNC (1 << 2)
\r
\r
- /** Can be masked with other endpoint descriptor attributes for a USB_Descriptor_Endpoint_t descriptor's
\r
+ /** Can be masked with other endpoint descriptor attributes for a
\ref
USB_Descriptor_Endpoint_t descriptor's
\r
* Attributes value to indicate that the specified endpoint is adaptive.
\r
*
\r
* \see The USB specification for more details on the possible Endpoint attributes.
\r
*/
\r
#define ENDPOINT_ATTR_ADAPTIVE (2 << 2)
\r
\r
* Attributes value to indicate that the specified endpoint is adaptive.
\r
*
\r
* \see The USB specification for more details on the possible Endpoint attributes.
\r
*/
\r
#define ENDPOINT_ATTR_ADAPTIVE (2 << 2)
\r
\r
- /** Can be masked with other endpoint descriptor attributes for a USB_Descriptor_Endpoint_t descriptor's
\r
+ /** Can be masked with other endpoint descriptor attributes for a
\ref
USB_Descriptor_Endpoint_t descriptor's
\r
* Attributes value to indicate that the specified endpoint is synchronized.
\r
*
\r
* \see The USB specification for more details on the possible Endpoint attributes.
\r
*/
\r
#define ENDPOINT_ATTR_SYNC (3 << 2)
\r
\r
* Attributes value to indicate that the specified endpoint is synchronized.
\r
*
\r
* \see The USB specification for more details on the possible Endpoint attributes.
\r
*/
\r
#define ENDPOINT_ATTR_SYNC (3 << 2)
\r
\r
- /** Can be masked with other endpoint descriptor attributes for a USB_Descriptor_Endpoint_t descriptor's
\r
+ /** Can be masked with other endpoint descriptor attributes for a
\ref
USB_Descriptor_Endpoint_t descriptor's
\r
* Attributes value to indicate that the specified endpoint is used for data transfers.
\r
*
\r
* \see The USB specification for more details on the possible Endpoint usage attributes.
\r
*/
\r
#define ENDPOINT_USAGE_DATA (0 << 4)
\r
\r
* Attributes value to indicate that the specified endpoint is used for data transfers.
\r
*
\r
* \see The USB specification for more details on the possible Endpoint usage attributes.
\r
*/
\r
#define ENDPOINT_USAGE_DATA (0 << 4)
\r
\r
- /** Can be masked with other endpoint descriptor attributes for a USB_Descriptor_Endpoint_t descriptor's
\r
+ /** Can be masked with other endpoint descriptor attributes for a
\ref
USB_Descriptor_Endpoint_t descriptor's
\r
* Attributes value to indicate that the specified endpoint is used for feedback.
\r
*
\r
* \see The USB specification for more details on the possible Endpoint usage attributes.
\r
*/
\r
#define ENDPOINT_USAGE_FEEDBACK (1 << 4)
\r
\r
* Attributes value to indicate that the specified endpoint is used for feedback.
\r
*
\r
* \see The USB specification for more details on the possible Endpoint usage attributes.
\r
*/
\r
#define ENDPOINT_USAGE_FEEDBACK (1 << 4)
\r
\r
- /** Can be masked with other endpoint descriptor attributes for a USB_Descriptor_Endpoint_t descriptor's
\r
+ /** Can be masked with other endpoint descriptor attributes for a
\ref
USB_Descriptor_Endpoint_t descriptor's
\r
* Attributes value to indicate that the specified endpoint is used for implicit feedback.
\r
*
\r
* \see The USB specification for more details on the possible Endpoint usage attributes.
\r
* Attributes value to indicate that the specified endpoint is used for implicit feedback.
\r
*
\r
* \see The USB specification for more details on the possible Endpoint usage attributes.
\r
@@
-185,7
+180,7
@@
\r
/* Events: */
\r
#if defined(USB_CAN_BE_DEVICE) || defined(__DOXYGEN__)
\r
\r
/* Events: */
\r
#if defined(USB_CAN_BE_DEVICE) || defined(__DOXYGEN__)
\r
- /** This module raises the Device Error event while in device mode, if the USB_GetDescriptor()
\r
+ /** This module raises the Device Error event while in device mode, if the
\ref
USB_GetDescriptor()
\r
* routine is not hooked in the user application to properly return descriptors to the library.
\r
*
\r
* \see Events.h for more information on this event.
\r
* routine is not hooked in the user application to properly return descriptors to the library.
\r
*
\r
* \see Events.h for more information on this event.
\r
@@
-220,7
+215,7
@@
{
\r
#if defined(USE_NONSTANDARD_DESCRIPTOR_NAMES) || defined(__DOXYGEN__)
\r
uint8_t Size; /**< Size of the descriptor, in bytes. */
\r
{
\r
#if defined(USE_NONSTANDARD_DESCRIPTOR_NAMES) || defined(__DOXYGEN__)
\r
uint8_t Size; /**< Size of the descriptor, in bytes. */
\r
- uint8_t Type; /**< Type of the descriptor, either a value in DescriptorTypes_t or a value
\r
+ uint8_t Type; /**< Type of the descriptor, either a value in
\ref USB_
DescriptorTypes_t or a value
\r
* given by the specific class.
\r
*/
\r
#else
\r
* given by the specific class.
\r
*/
\r
#else
\r
@@
-256,7
+251,7
@@
* host will request this string via a separate
\r
* control request for the string descriptor.
\r
*
\r
* host will request this string via a separate
\r
* control request for the string descriptor.
\r
*
\r
- * \note If no string supplied, use NO_DESCRIPTOR.
\r
+ * \note If no string supplied, use
\ref
NO_DESCRIPTOR.
\r
*/
\r
uint8_t ProductStrIndex; /**< String index for the product name/details.
\r
*
\r
*/
\r
uint8_t ProductStrIndex; /**< String index for the product name/details.
\r
*
\r
@@
-314,7
+309,7
@@
*/
\r
\r
uint8_t MaxPowerConsumption; /**< Maximum power consumption of the device while in the
\r
*/
\r
\r
uint8_t MaxPowerConsumption; /**< Maximum power consumption of the device while in the
\r
- * current configuration, calculated by the USB_CONFIG_POWER_MA()
\r
+ * current configuration, calculated by the
\ref
USB_CONFIG_POWER_MA()
\r
* macro.
\r
*/
\r
#else
\r
* macro.
\r
*/
\r
#else
\r
@@
-369,7
+364,7
@@
#endif
\r
} USB_Descriptor_Interface_t;
\r
\r
#endif
\r
} USB_Descriptor_Interface_t;
\r
\r
- /** Type define for a standard
interface a
ssociation descriptor.
\r
+ /** Type define for a standard
Interface A
ssociation descriptor.
\r
*
\r
* This descriptor has been added as a supplement to the USB2.0 standard, in the ECN located at
\r
* <a>http://www.usb.org/developers/docs/InterfaceAssociationDescriptor_ecn.pdf</a>. It allows compound
\r
*
\r
* This descriptor has been added as a supplement to the USB2.0 standard, in the ECN located at
\r
* <a>http://www.usb.org/developers/docs/InterfaceAssociationDescriptor_ecn.pdf</a>. It allows compound
\r
@@
-447,7
+442,7
@@
} USB_Descriptor_Endpoint_t;
\r
\r
/** Type define for a standard string descriptor. Unlike other standard descriptors, the length
\r
} USB_Descriptor_Endpoint_t;
\r
\r
/** Type define for a standard string descriptor. Unlike other standard descriptors, the length
\r
- * of the descriptor for placement in the descriptor header must be determined by the USB_STRING_LEN()
\r
+ * of the descriptor for placement in the descriptor header must be determined by the
\ref
USB_STRING_LEN()
\r
* macro rather than by the size of the descriptor structure, as the length is not fixed.
\r
*
\r
* This structure should also be used for string index 0, which contains the supported language IDs for
\r
* macro rather than by the size of the descriptor structure, as the length is not fixed.
\r
*
\r
* This structure should also be used for string index 0, which contains the supported language IDs for
\r
@@
-484,7
+479,7
@@
/* Function Prototypes: */
\r
/** Function to retrieve a given descriptor's size and memory location from the given descriptor type value,
\r
* index and language ID. This function MUST be overridden in the user application (added with full, identical
\r
/* Function Prototypes: */
\r
/** Function to retrieve a given descriptor's size and memory location from the given descriptor type value,
\r
* index and language ID. This function MUST be overridden in the user application (added with full, identical
\r
- * prototype and name except for the ATTR_WEAK attribute) so that the library can call it to retrieve descriptor
\r
+ * prototype and name except for the
\ref
ATTR_WEAK attribute) so that the library can call it to retrieve descriptor
\r
* data.
\r
*
\r
* \param wValue The type of the descriptor to retrieve in the upper byte, and the index in the
\r
* data.
\r
*
\r
* \param wValue The type of the descriptor to retrieve in the upper byte, and the index in the
\r
@@
-495,7
+490,7
@@
* otherwise zero for standard descriptors, or as defined in a class-specific
\r
* standards.
\r
* \param DescriptorAddress Pointer to the descriptor in memory. This should be set by the routine to
\r
* otherwise zero for standard descriptors, or as defined in a class-specific
\r
* standards.
\r
* \param DescriptorAddress Pointer to the descriptor in memory. This should be set by the routine to
\r
- * the location of the descriptor, found by the
DESCRIPTOR_ADDRESS
macro.
\r
+ * the location of the descriptor, found by the
\ref DESCRIPTOR_ADDRESS()
macro.
\r
*
\r
* \note By default, the library expects all descriptors to be located in flash memory via the PROGMEM attribute.
\r
* If descriptors should be located in RAM or EEPROM instead (to speed up access in the case of RAM, or to
\r
*
\r
* \note By default, the library expects all descriptors to be located in flash memory via the PROGMEM attribute.
\r
* If descriptors should be located in RAM or EEPROM instead (to speed up access in the case of RAM, or to
\r
@@
-503,7
+498,7
@@
* USE_EEPROM_DESCRIPTORS tokens may be defined in the project makefile and passed to the compiler by the -D
\r
* switch.
\r
*
\r
* USE_EEPROM_DESCRIPTORS tokens may be defined in the project makefile and passed to the compiler by the -D
\r
* switch.
\r
*
\r
- * \return Size in bytes of the descriptor if it exists, zero or NO_DESCRIPTOR otherwise
\r
+ * \return Size in bytes of the descriptor if it exists, zero or
\ref
NO_DESCRIPTOR otherwise
\r
*/
\r
uint16_t USB_GetDescriptor(const uint16_t wValue, const uint8_t wIndex, void** const DescriptorAddress)
\r
ATTR_WARN_UNUSED_RESULT ATTR_WEAK ATTR_NON_NULL_PTR_ARG(3);
\r
*/
\r
uint16_t USB_GetDescriptor(const uint16_t wValue, const uint8_t wIndex, void** const DescriptorAddress)
\r
ATTR_WARN_UNUSED_RESULT ATTR_WEAK ATTR_NON_NULL_PTR_ARG(3);
\r