#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
- /** 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
- /** 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
- /** 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
- /** 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
- /** 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
- /** 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
- /** 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
- /** 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
- /** 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
- /** 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
- /** 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
- /** 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
\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
{\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
* 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
\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
#endif\r
} USB_Descriptor_Interface_t;\r
\r
- /** Type define for a standard interface association descriptor.\r
+ /** Type define for a standard Interface Association 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
} 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
/* 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
* 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
* 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