*/\r
#define ENDPOINT_USAGE_IMPLICIT_FEEDBACK (2 << 4)\r
\r
- /** Gives a void pointer to the specified descriptor (of any type). */\r
- #define DESCRIPTOR_ADDRESS(Descriptor) ((void*)&Descriptor)\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 \ref USB_GetDescriptor()\r
- * routine is not hooked in the user application to properly return descriptors to the library.\r
- *\r
- * \see \ref Group_Events for more information on this event.\r
- */\r
- RAISES_EVENT(USB_DeviceError);\r
- #endif\r
- \r
/* Enums: */\r
/** Enum for the possible standard descriptor types, as given in each descriptor's header. */\r
enum USB_DescriptorTypes_t\r
#endif\r
} USB_Descriptor_String_t;\r
\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 \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
- * lower byte (when more than one descriptor of the given type exists, such as the\r
- * case of string descriptors). The type may be one of the standard types defined\r
- * in the DescriptorTypes_t enum, or may be a class-specific descriptor type value.\r
- * \param wIndex The language ID of the string to return if the wValue type indicates DTYPE_String,\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 \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
- * allow the descriptors to be changed dynamically at runtime) either the USE_RAM_DESCRIPTORS or the \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 \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
/* Private Interface - For use in library only: */\r
#if !defined(__DOXYGEN__)\r
/* Macros: */\r